Author: kayyagari
Date: Thu May  2 14:25:03 2013
New Revision: 1478383

URL: http://svn.apache.org/r1478383
Log:
o fixed some miscellaneous issues
o added a new method to return a new managed btree
o modified RecordManager tests to utilize the new changes

Modified:
    
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
    
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/RecordManagerPrivateMethodTest.java
    
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/RecordManagerTest.java

Modified: 
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
URL: 
http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java?rev=1478383&r1=1478382&r2=1478383&view=diff
==============================================================================
--- 
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
 (original)
+++ 
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/RecordManager.java
 Thu May  2 14:25:03 2013
@@ -35,6 +35,7 @@ import java.util.Set;
 import org.apache.mavibot.btree.exception.BTreeAlreadyManagedException;
 import org.apache.mavibot.btree.exception.EndOfFileExceededException;
 import org.apache.mavibot.btree.exception.KeyNotFoundException;
+import org.apache.mavibot.btree.serializer.ElementSerializer;
 import org.apache.mavibot.btree.serializer.IntSerializer;
 import org.apache.mavibot.btree.serializer.LongArraySerializer;
 import org.apache.mavibot.btree.serializer.LongSerializer;
@@ -57,9 +58,6 @@ public class RecordManager
     /** The LoggerFactory used by this class */
     protected static final Logger LOG = LoggerFactory.getLogger( 
RecordManager.class );
 
-    /** The file name */
-    private String fileName;
-
     /** The associated file */
     private File file;
 
@@ -114,13 +112,13 @@ public class RecordManager
     private static final int DEFAULT_PAGE_SIZE = 4 * 1024;
 
     /** The RecordManager underlying page size. */
-    private int pageSize = -1;
+    private int pageSize = DEFAULT_PAGE_SIZE;
 
     /** A buffer used to read a page */
     private ByteBuffer blockBuffer;
 
     /** The set of managed BTrees */
-    private Map<String, BTree<?, ?>> managedBTrees = new LinkedHashMap<String, 
BTree<?, ?>>();
+    private Map<String, BTree<?, ?>> managedBTrees;
 
     /** The offset on the last added BTree */
     private long lastAddedBTreeOffset = NO_PAGE;
@@ -132,6 +130,10 @@ public class RecordManager
     private static final LongSerializer OFFSET_SERIALIZER = new 
LongSerializer();
 
 
+    private static final String REVISION_B_TREE_NAME = "_revisionBTree_";
+
+    private static final String COPIED_PAGE_B_TREE_NAME = "_copiedPageBTree_";
+
     /**
      * Create a Record manager which will either create the underlying file
      * or load an existing one. If a folder is provided, then we will create
@@ -144,7 +146,6 @@ public class RecordManager
         this( fileName, DEFAULT_PAGE_SIZE );
     }
 
-
     /**
      * Create a Record manager which will either create the underlying file
      * or load an existing one. If a folder is provider, then we will create
@@ -155,8 +156,8 @@ public class RecordManager
      */
     public RecordManager( String fileName, int pageSize )
     {
-        this.fileName = fileName;
-
+        managedBTrees = new LinkedHashMap<String, BTree<?, ?>>();
+        
         // Open the file or create it
         File tmpFile = new File( fileName );
         boolean isNewFile = false;
@@ -172,6 +173,7 @@ public class RecordManager
                 try
                 {
                     mavibotFile.createNewFile();
+                    isNewFile = true;
                 }
                 catch ( IOException ioe )
                 {
@@ -225,6 +227,7 @@ public class RecordManager
         {
             LOG.error( "Error while initializing the RecordManager : {}", 
e.getMessage() );
             LOG.error( "", e );
+            throw new RuntimeException( e );
         }
     }
 
@@ -264,10 +267,10 @@ public class RecordManager
         endOfFileOffset = fileChannel.size();
 
         // Now, initialize the Copied Page BTree
-        copiedPageBTree = new BTree<Integer, long[]>( "copiedPageBTree", new 
IntSerializer(), new LongArraySerializer() );
+        copiedPageBTree = new BTree<Integer, long[]>( COPIED_PAGE_B_TREE_NAME, 
new IntSerializer(), new LongArraySerializer() );
 
         // and initialize the Revision BTree
-        revisionBTree = new BTree<RevisionName, Long>( "revisionBTree", new 
RevisionNameSerializer(),
+        revisionBTree = new BTree<RevisionName, Long>( REVISION_B_TREE_NAME, 
new RevisionNameSerializer(),
             new LongSerializer() );
 
         // Inject these BTrees into the RecordManager
@@ -339,6 +342,7 @@ public class RecordManager
             loadBTree( pageIos, revisionBTree );
             nextBtreeOffset = revisionBTree.getNextBTreeOffset();
 
+
             // Then process the next ones
             for ( int i = 2; i < nbBtree; i++ )
             {
@@ -446,16 +450,9 @@ public class RecordManager
         byte[] btreeNameBytes = readBytes( pageIos, dataPos );
         dataPos += INT_SIZE;
 
-        if ( btreeNameBytes != null )
-        {
-            dataPos += btreeNameBytes.length;
-            String btreeName = Strings.utf8ToString( btreeNameBytes );
-            BTreeFactory.setName( btree, btreeName );
-        }
-        else
-        {
-            BTreeFactory.setName( btree, "" );
-        }
+        dataPos += btreeNameBytes.length;
+        String btreeName = Strings.utf8ToString( btreeNameBytes );
+        BTreeFactory.setName( btree, btreeName );
 
         // The keySerializer FQCN
         byte[] keySerializerBytes = readBytes( pageIos, dataPos );
@@ -836,7 +833,7 @@ public class RecordManager
      *  
      * @param btree The new BTree to manage.
      */
-    public synchronized void manage( BTree<?, ?> btree ) throws 
BTreeAlreadyManagedException, IOException
+    private synchronized void manage( BTree<?, ?> btree ) throws 
BTreeAlreadyManagedException, IOException
     {
         BTreeFactory.setRecordManager( btree, this );
 
@@ -1786,6 +1783,11 @@ public class RecordManager
     {
         // TODO : we must wait for the last write to finish
 
+        for( BTree tree : managedBTrees.values() )
+        {
+            tree.close();
+        }
+        
         // Write the data
         fileChannel.force( true );
 
@@ -1863,13 +1865,11 @@ public class RecordManager
      */
     public Set<String> getManagedTrees()
     {
-        Set<String> btrees = new HashSet<String>();
-
-        for ( String btree : managedBTrees.keySet() )
-        {
-            btrees.add( btree );
-        }
-
+        Set<String> btrees = new HashSet<String>( managedBTrees.keySet() );
+        
+        btrees.remove( COPIED_PAGE_B_TREE_NAME );
+        btrees.remove( REVISION_B_TREE_NAME );
+        
         return btrees;
     }
 
@@ -1927,4 +1927,33 @@ public class RecordManager
     {
         return managedBTrees.get( name );
     }
+    
+    
+    /**
+     * Creates a BTree and automatically adds it to the list of managed btrees
+     * 
+     * @param name the name of the BTree
+     * @param keySerializer key serializer
+     * @param valueSerializer value serializer
+     * @param allowDuplicates flag for allowing duplicate keys 
+     * @return a managed BTree
+     * @throws IOException
+     * @throws BTreeAlreadyManagedException
+     */
+    @SuppressWarnings("all")
+    public BTree addBTree( String name, ElementSerializer<?> keySerializer, 
ElementSerializer<?> valueSerializer, boolean allowDuplicates ) throws 
IOException, BTreeAlreadyManagedException
+    {
+        BTreeConfiguration config = new BTreeConfiguration();
+        
+        config.setName( name );
+        config.setKeySerializer( keySerializer );
+        config.setValueSerializer( valueSerializer );
+        config.setAllowDuplicates( allowDuplicates );
+        config.setType( BTreeTypeEnum.MANAGED );
+        
+        BTree btree = new BTree( config );
+        manage( btree );
+        
+        return btree;
+    }
 }

Modified: 
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/RecordManagerPrivateMethodTest.java
URL: 
http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/RecordManagerPrivateMethodTest.java?rev=1478383&r1=1478382&r2=1478383&view=diff
==============================================================================
--- 
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/RecordManagerPrivateMethodTest.java
 (original)
+++ 
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/RecordManagerPrivateMethodTest.java
 Thu May  2 14:25:03 2013
@@ -26,10 +26,15 @@ import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.UUID;
 
-import org.apache.mavibot.btree.PageIO;
-import org.apache.mavibot.btree.RecordManager;
+import org.apache.mavibot.btree.serializer.LongSerializer;
+import org.apache.mavibot.btree.serializer.StringSerializer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
 
 
 /**
@@ -38,6 +43,37 @@ import org.junit.Test;
  */
 public class RecordManagerPrivateMethodTest
 {
+    
+    private BTree<Long, String> btree = null;
+
+    private RecordManager recordManager = null;
+
+    @Rule
+    public TemporaryFolder tempFolder = new TemporaryFolder();
+
+    private File dataDir = null;
+
+
+    @Before
+    public void createRecordManager() throws Exception
+    {
+        dataDir = tempFolder.newFolder( UUID.randomUUID().toString() );
+        
+        // Now, try to reload the file back
+        recordManager = new RecordManager( dataDir.getAbsolutePath(), 32 );
+
+        // Create a new BTree
+        btree = ( BTree<Long, String> ) recordManager.addBTree( "test", new 
LongSerializer(), new StringSerializer(), false );
+    }
+
+
+    @After
+    public void closeBTree() throws IOException
+    {
+        recordManager.close();
+    }
+    
+    
     /**
      * Test the getFreePageIOs method
      */
@@ -45,11 +81,6 @@ public class RecordManagerPrivateMethodT
     public void testGetFreePageIos() throws IOException, 
NoSuchMethodException, InvocationTargetException,
         IllegalAccessException
     {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
-
-        RecordManager recordManager = new RecordManager( tempFileName, 32 );
         Method getFreePageIOsMethod = RecordManager.class.getDeclaredMethod( 
"getFreePageIOs", int.class );
         getFreePageIOsMethod.setAccessible( true );
 
@@ -74,6 +105,8 @@ public class RecordManagerPrivateMethodT
             pages = (org.apache.mavibot.btree.PageIO[] ) 
getFreePageIOsMethod.invoke( recordManager, i );
             assertEquals( 3, pages.length );
         }
+        
+        btree.close();
     }
 
 
@@ -84,11 +117,6 @@ public class RecordManagerPrivateMethodT
     public void testComputeNbPages() throws IOException, SecurityException, 
NoSuchMethodException,
         IllegalArgumentException, IllegalAccessException, 
InvocationTargetException
     {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
-
-        RecordManager recordManager = new RecordManager( tempFileName, 32 );
         Method computeNbPagesMethod = RecordManager.class.getDeclaredMethod( 
"computeNbPages", int.class );
         computeNbPagesMethod.setAccessible( true );
 
@@ -108,5 +136,7 @@ public class RecordManagerPrivateMethodT
         {
             assertEquals( 3, ( ( Integer ) computeNbPagesMethod.invoke( 
recordManager, i ) ).intValue() );
         }
+        
+        btree.close();
     }
 }

Modified: 
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/RecordManagerTest.java
URL: 
http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/RecordManagerTest.java?rev=1478383&r1=1478382&r2=1478383&view=diff
==============================================================================
--- 
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/RecordManagerTest.java
 (original)
+++ 
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/RecordManagerTest.java
 Thu May  2 14:25:03 2013
@@ -32,13 +32,17 @@ import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.UUID;
 
 import org.apache.mavibot.btree.exception.BTreeAlreadyManagedException;
 import org.apache.mavibot.btree.exception.KeyNotFoundException;
 import org.apache.mavibot.btree.serializer.LongSerializer;
 import org.apache.mavibot.btree.serializer.StringSerializer;
+import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
 
 
 /**
@@ -47,32 +51,66 @@ import org.junit.Test;
  */
 public class RecordManagerTest
 {
-    /**
-     * Test the creation of a RecordManager, and that we can read it back.  
-     */
-    @Test
-    public void testRecordManager() throws IOException, 
BTreeAlreadyManagedException
-    {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
+    private BTree<Long, String> btree = null;
 
-        RecordManager recordManager = new RecordManager( tempFileName, 32 );
+    private RecordManager recordManager1 = null;
 
-        assertNotNull( recordManager );
+    @Rule
+    public TemporaryFolder tempFolder = new TemporaryFolder();
 
-        // Create a new BTree
-        BTree<Long, String> btree = new BTree<Long, String>( "test", new 
LongSerializer(), new StringSerializer() );
+    private File dataDir = null;
 
-        // And make it managed by the RM
-        recordManager.manage( btree );
 
-        // Close the recordManager
-        recordManager.close();
+    @Before
+    public void createBTree()
+    {
+        dataDir = tempFolder.newFolder( UUID.randomUUID().toString() );
+        
+        openRecordManagerAndBtree();
 
-        // Now, try to reload the file back
-        RecordManager recordManager1 = new RecordManager( tempFileName );
+        try
+        {
+            // Create a new BTree
+            btree = ( BTree<Long, String> ) recordManager1.addBTree( "test", 
new LongSerializer(), new StringSerializer(), false );
+        }
+        catch( Exception e )
+        {
+            throw new RuntimeException( e );
+        }
+    }
+
+
+    private void openRecordManagerAndBtree()
+    {
+        try
+        {
+            if( recordManager1 != null )
+            {
+                recordManager1.close();
+            }
+            
+            // Now, try to reload the file back
+            recordManager1 = new RecordManager( dataDir.getAbsolutePath() );
+            
+            // load the last created btree
+            if( btree != null )
+            {
+                btree = recordManager1.getManagedTree( btree.getName() );
+            }
+        }
+        catch( Exception e )
+        {
+            throw new RuntimeException( e );
+        }
+    }
 
+
+    /**
+     * Test the creation of a RecordManager, and that we can read it back.  
+     */
+    @Test
+    public void testRecordManager() throws IOException, 
BTreeAlreadyManagedException
+    {
         assertEquals( 1, recordManager1.getNbManagedTrees() );
 
         Set<String> managedBTrees = recordManager1.getManagedTrees();
@@ -91,8 +129,6 @@ public class RecordManagerTest
         assertEquals( btree.getPageSize(), btree1.getPageSize() );
         assertEquals( btree.getRevision(), btree1.getRevision() );
         assertEquals( btree.getValueSerializer().getClass().getName(), 
btree1.getValueSerializer().getClass().getName() );
-
-        recordManager1.close();
     }
 
 
@@ -102,30 +138,13 @@ public class RecordManagerTest
     @Test
     public void testRecordManagerWithBTree() throws IOException, 
BTreeAlreadyManagedException, KeyNotFoundException
     {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
-
-        RecordManager recordManager = new RecordManager( tempFileName, 32 );
-
-        assertNotNull( recordManager );
-
-        // Create a new BTree
-        BTree<Long, String> btree = new BTree<Long, String>( "test", new 
LongSerializer(), new StringSerializer() );
-
-        // And make it managed by the RM
-        recordManager.manage( btree );
-
         // Now, add some elements in the BTree
         btree.insert( 3L, "V3" );
         btree.insert( 1L, "V1" );
         btree.insert( 5L, "V5" );
 
-        // Close the recordManager
-        recordManager.close();
-
         // Now, try to reload the file back
-        RecordManager recordManager1 = new RecordManager( tempFileName );
+        openRecordManagerAndBtree();
 
         assertEquals( 1, recordManager1.getNbManagedTrees() );
 
@@ -163,31 +182,14 @@ public class RecordManagerTest
     public void testRecordManagerWithBTreeLeafNode() throws IOException, 
BTreeAlreadyManagedException,
         KeyNotFoundException
     {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
-
-        RecordManager recordManager = new RecordManager( tempFileName, 32 );
-
-        assertNotNull( recordManager );
-
-        // Create a new BTree
-        BTree<Long, String> btree = new BTree<Long, String>( "test", new 
LongSerializer(), new StringSerializer(), 4 );
-
-        // And make it managed by the RM
-        recordManager.manage( btree );
-
         // Now, add some elements in the BTree
         for ( long i = 1L; i < 32L; i++ )
         {
             btree.insert( i, "V" + i );
         }
 
-        // Close the recordManager
-        recordManager.close();
-
         // Now, try to reload the file back
-        RecordManager recordManager1 = new RecordManager( tempFileName );
+        openRecordManagerAndBtree();
 
         assertEquals( 1, recordManager1.getNbManagedTrees() );
 
@@ -225,21 +227,6 @@ public class RecordManagerTest
     public void testRecordManagerWithBTreeLeafNode100K() throws IOException, 
BTreeAlreadyManagedException,
         KeyNotFoundException
     {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
-
-        RecordManager recordManager = new RecordManager( tempFileName, 512 );
-
-        assertNotNull( recordManager );
-
-        // Create a new BTree
-        BTree<Long, String> btree = new BTree<Long, String>( "test", new 
LongSerializer(), new StringSerializer(), 32 );
-
-        // And make it managed by the RM
-        recordManager.manage( btree );
-
         // Now, add some elements in the BTree
         long t0 = System.currentTimeMillis();
         for ( long i = 0L; i < 100000L; i++ )
@@ -248,13 +235,10 @@ public class RecordManagerTest
         }
         long t1 = System.currentTimeMillis();
 
-        // Close the recordManager
-        recordManager.close();
-
         System.out.println( "Time taken to write 100 000 elements : " + ( t1 - 
t0 ) );
 
         // Now, try to reload the file back
-        RecordManager recordManager1 = new RecordManager( tempFileName );
+        openRecordManagerAndBtree();
 
         assertEquals( 1, recordManager1.getNbManagedTrees() );
 
@@ -294,8 +278,6 @@ public class RecordManagerTest
         }
         long t5 = System.currentTimeMillis();
         System.out.println( "Time taken to verify 100 000 elements : " + ( t5 
- t4 ) );
-
-        System.out.println( "File size : " + tempFile.length() );
     }
 
 
@@ -371,21 +353,8 @@ public class RecordManagerTest
     public void testRecordManagerBrowseWithKeepRevisions() throws IOException, 
BTreeAlreadyManagedException,
         KeyNotFoundException
     {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
-
-        RecordManager recordManager = new RecordManager( tempFileName, 32 );
-
-        assertNotNull( recordManager );
-
-        // Create a new BTree
-        BTree<Long, String> btree = new BTree<Long, String>( "test", new 
LongSerializer(), new StringSerializer() );
         btree.setKeepRevisions( true );
 
-        // And make it managed by the RM
-        recordManager.manage( btree );
-
         // Now, add some elements in the BTree
         btree.insert( 3L, "V3" );
         long rev1 = btree.getRevision();
@@ -407,7 +376,7 @@ public class RecordManagerTest
         checkBTreeRevisionBrowse( btree, rev3, 1L, 3L, 5L );
 
         // Now, try to reload the file back
-        RecordManager recordManager1 = new RecordManager( tempFileName );
+        openRecordManagerAndBtree();
 
         assertEquals( 1, recordManager1.getNbManagedTrees() );
 
@@ -456,21 +425,8 @@ public class RecordManagerTest
     public void testRecordManagerBrowseFromWithRevision() throws IOException, 
BTreeAlreadyManagedException,
         KeyNotFoundException
     {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
-
-        RecordManager recordManager = new RecordManager( tempFileName, 32 );
-
-        assertNotNull( recordManager );
-
-        // Create a new BTree
-        BTree<Long, String> btree = new BTree<Long, String>( "test", new 
LongSerializer(), new StringSerializer() );
         btree.setKeepRevisions( true );
 
-        // And make it managed by the RM
-        recordManager.manage( btree );
-
         // Now, add some elements in the BTree
         btree.insert( 3L, "V3" );
         long rev1 = btree.getRevision();
@@ -492,7 +448,7 @@ public class RecordManagerTest
         checkBTreeRevisionBrowseFrom( btree, rev3, 3L, 3L, 5L );
 
         // Now, try to reload the file back
-        RecordManager recordManager1 = new RecordManager( tempFileName );
+        openRecordManagerAndBtree();
 
         assertEquals( 1, recordManager1.getNbManagedTrees() );
 
@@ -540,21 +496,8 @@ public class RecordManagerTest
     public void testGetWithRevision() throws IOException, 
BTreeAlreadyManagedException,
         KeyNotFoundException
     {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
-
-        RecordManager recordManager = new RecordManager( tempFileName, 32 );
-
-        assertNotNull( recordManager );
-
-        // Create a new BTree
-        BTree<Long, String> btree = new BTree<Long, String>( "test", new 
LongSerializer(), new StringSerializer() );
         btree.setKeepRevisions( true );
 
-        // And make it managed by the RM
-        recordManager.manage( btree );
-
         // Now, add some elements in the BTree
         btree.insert( 3L, "V3" );
         long rev1 = btree.getRevision();
@@ -597,7 +540,7 @@ public class RecordManagerTest
         }
 
         // Now, try to reload the file back
-        RecordManager recordManager1 = new RecordManager( tempFileName );
+        openRecordManagerAndBtree();
 
         assertEquals( 1, recordManager1.getNbManagedTrees() );
 
@@ -661,21 +604,8 @@ public class RecordManagerTest
     public void testContainWithRevision() throws IOException, 
BTreeAlreadyManagedException,
         KeyNotFoundException
     {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
-
-        RecordManager recordManager = new RecordManager( tempFileName, 32 );
-
-        assertNotNull( recordManager );
-
-        // Create a new BTree
-        BTree<Long, String> btree = new BTree<Long, String>( "test", new 
LongSerializer(), new StringSerializer() );
         btree.setKeepRevisions( true );
 
-        // And make it managed by the RM
-        recordManager.manage( btree );
-
         // Now, add some elements in the BTree
         btree.insert( 3L, "V3" );
         long rev1 = btree.getRevision();
@@ -712,7 +642,7 @@ public class RecordManagerTest
         assertTrue( btree.contains( rev4, 5L, "V5" ) );
 
         // Now, try to reload the file back
-        RecordManager recordManager1 = new RecordManager( tempFileName );
+        openRecordManagerAndBtree();
 
         assertEquals( 1, recordManager1.getNbManagedTrees() );
 
@@ -770,21 +700,8 @@ public class RecordManagerTest
     public void testHasKeyWithRevision() throws IOException, 
BTreeAlreadyManagedException,
         KeyNotFoundException
     {
-        File tempFile = File.createTempFile( "mavibot", ".db" );
-        String tempFileName = tempFile.getAbsolutePath();
-        tempFile.deleteOnExit();
-
-        RecordManager recordManager = new RecordManager( tempFileName, 32 );
-
-        assertNotNull( recordManager );
-
-        // Create a new BTree
-        BTree<Long, String> btree = new BTree<Long, String>( "test", new 
LongSerializer(), new StringSerializer() );
         btree.setKeepRevisions( true );
 
-        // And make it managed by the RM
-        recordManager.manage( btree );
-
         // Now, add some elements in the BTree
         btree.insert( 3L, "V3" );
         long rev1 = btree.getRevision();
@@ -821,7 +738,7 @@ public class RecordManagerTest
         assertTrue( btree.hasKey( rev4, 5L ) );
 
         // Now, try to reload the file back
-        RecordManager recordManager1 = new RecordManager( tempFileName );
+        openRecordManagerAndBtree();
 
         assertEquals( 1, recordManager1.getNbManagedTrees() );
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to