[jboss-cvs] JBoss Messaging SVN: r7467 - in branches/clebert_temp_expirement: tests/src/org/jboss/messaging/tests/unit/core/journal/impl and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jun 25 11:08:44 EDT 2009
Author: clebert.suconic at jboss.com
Date: 2009-06-25 11:08:43 -0400 (Thu, 25 Jun 2009)
New Revision: 7467
Modified:
branches/clebert_temp_expirement/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java
branches/clebert_temp_expirement/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestUnit.java
Log:
changes
Modified: branches/clebert_temp_expirement/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java
===================================================================
--- branches/clebert_temp_expirement/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java 2009-06-25 12:19:21 UTC (rev 7466)
+++ branches/clebert_temp_expirement/src/main/org/jboss/messaging/core/journal/impl/JournalImpl.java 2009-06-25 15:08:43 UTC (rev 7467)
@@ -290,7 +290,7 @@
ChannelBuffer bb = newBuffer(size);
- writeAddRecord(id, -1, recordType, record, size, bb); // fileID will be filled later
+ writeAddRecord(-1, id, recordType, record, size, bb); // fileID will be filled later
callback = getSyncCallback(sync);
@@ -456,20 +456,11 @@
try
{
- int recordLength = record.getEncodeSize();
+ int size = SIZE_ADD_RECORD_TX + record.getEncodeSize();
- int size = SIZE_ADD_RECORD_TX + recordLength;
-
ChannelBuffer bb = newBuffer(size);
- bb.writeByte(ADD_RECORD_TX);
- bb.writeInt(-1); // skip ID part
- bb.writeLong(txID);
- bb.writeLong(id);
- bb.writeInt(recordLength);
- bb.writeByte(recordType);
- record.encode(bb);
- bb.writeInt(size);
+ writeAddRecordTX(-1, txID, id, recordType, record, size, bb);
lock.acquire();
try
@@ -921,8 +912,7 @@
{
readJournalFile(file, compactor);
}
-
-
+
compactor.flushBuffer();
writeLockCompact.lock();
@@ -946,9 +936,9 @@
SequentialFile sequentialFile;
int fileID;
-
+
ByteBuffer bufferWrite;
-
+
ChannelBuffer channelWrapper;
int nextOrderingID;
@@ -1014,13 +1004,15 @@
if (recordsSnapshot.get(info.id) != null)
{
int size = SIZE_ADD_RECORD + info.data.length;
-
+
checkSize(size);
-
- writeAddRecord(info.id, fileID, info.getUserRecordType(), new ByteArrayEncoding(info.data), size, channelWrapper);
-
- System.out.println("Record " + info.id + " to be out on compacted file");
+ writeAddRecord(fileID,
+ info.id,
+ info.getUserRecordType(),
+ new ByteArrayEncoding(info.data),
+ size,
+ channelWrapper);
}
}
@@ -1029,6 +1021,14 @@
if (recordsSnapshot.get(info.id) != null)
{
System.out.println("RecordTX " + info.id + " to be out on compacted file");
+
+ writeAddRecordTX(fileID,
+ transactionID,
+ info.id,
+ info.getUserRecordType(),
+ new ByteArrayEncoding(info.data),
+ SIZE_ADD_RECORD_TX + info.data.length,
+ channelWrapper);
}
}
@@ -2204,8 +2204,8 @@
* @param size
* @param bb
*/
- private void writeAddRecord(final long id,
- final int fileId,
+ private void writeAddRecord(final int fileId,
+ final long id,
final byte recordType,
final EncodingSupport record,
int size,
@@ -2220,6 +2220,33 @@
bb.writeInt(size);
}
+ /**
+ * @param txID
+ * @param id
+ * @param recordType
+ * @param record
+ * @param recordLength
+ * @param size
+ * @param bb
+ */
+ private void writeAddRecordTX(final int fileID,
+ final long txID,
+ final long id,
+ final byte recordType,
+ final EncodingSupport record,
+ int size,
+ ChannelBuffer bb)
+ {
+ bb.writeByte(ADD_RECORD_TX);
+ bb.writeInt(fileID);
+ bb.writeLong(txID);
+ bb.writeLong(id);
+ bb.writeInt(record.getEncodeSize());
+ bb.writeByte(recordType);
+ record.encode(bb);
+ bb.writeInt(size);
+ }
+
private boolean isTransaction(final byte recordType)
{
return recordType == ADD_RECORD_TX || recordType == UPDATE_RECORD_TX ||
@@ -3151,5 +3178,4 @@
}
}
-
}
Modified: branches/clebert_temp_expirement/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestUnit.java
===================================================================
--- branches/clebert_temp_expirement/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestUnit.java 2009-06-25 12:19:21 UTC (rev 7466)
+++ branches/clebert_temp_expirement/tests/src/org/jboss/messaging/tests/unit/core/journal/impl/JournalImplTestUnit.java 2009-06-25 15:08:43 UTC (rev 7467)
@@ -24,10 +24,20 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.Executor;
+import org.jboss.messaging.core.asyncio.BufferCallback;
+import org.jboss.messaging.core.asyncio.impl.AsynchronousFileImpl;
import org.jboss.messaging.core.journal.EncodingSupport;
import org.jboss.messaging.core.journal.RecordInfo;
+import org.jboss.messaging.core.journal.SequentialFile;
+import org.jboss.messaging.core.journal.SequentialFileFactory;
+import org.jboss.messaging.core.journal.impl.AIOSequentialFile;
+import org.jboss.messaging.core.journal.impl.JournalFile;
+import org.jboss.messaging.core.journal.impl.JournalFileImpl;
import org.jboss.messaging.core.journal.impl.JournalImpl;
+import org.jboss.messaging.core.journal.impl.JournalReader;
+import org.jboss.messaging.core.journal.impl.NIOSequentialFile;
import org.jboss.messaging.core.logging.Logger;
import org.jboss.messaging.tests.unit.core.journal.impl.fakes.SimpleEncoding;
@@ -3124,6 +3134,78 @@
journal.compact();
+ for (String fileName: fileFactory.listFiles("cmp"))
+ {
+ System.out.println("File = " + fileName);
+
+ SequentialFile readFile = fileFactory.createSequentialFile(fileName, 1);
+
+ ;
+ ((JournalImpl)journal).readJournalFile(new JournalFileImpl(readFile, 1, 1), new JournalReader()
+ {
+ public void addRecord(RecordInfo info) throws Exception
+ {
+ System.out.println("recordID = " + info.id);
+ }
+
+ public void addRecordTX(long transactionID, RecordInfo recordInfo) throws Exception
+ {
+ System.out.println("RecordIDTX = " + transactionID + ", recordID=" + recordInfo.id);
+ }
+
+ public void commitRecord(long transactionID, int numberOfRecords) throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void deleteRecord(long recordID) throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void deleteRecordTX(long transactionID, RecordInfo recordInfo) throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void markAsDataFile(JournalFile file)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void prepareRecord(long transactionID, byte[] extraData, int numberOfRecords) throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void rollbackRecord(long transactionID) throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void updateRecord(RecordInfo recordInfo) throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void updateRecordTX(long transactionID, RecordInfo recordInfo) throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ });
+ }
+
+
+
}
protected abstract int getAlignment();
More information about the jboss-cvs-commits
mailing list