[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