Package jdbm

Examples of jdbm.RecordManager


     */
    public RecordManager createRecordManager( String name,
                                              Properties options )
        throws IOException
    {
        RecordManager  recman;
        String         value;
        int            cacheSize;

        recman = new BaseRecordManager( name );

View Full Code Here


                File lgFile = new File( getDatabaseName() + ".lg" );

                // Create temporary store
                File tempDatabase = Files.createTemporayFileOf( dbFile );

                final RecordManager recordManager = RecordManagerFactory.createRecordManager( tempDatabase.getAbsolutePath(), new Properties() );
                ByteArrayComparator comparator = new ByteArrayComparator();
                final BTree index = BTree.createInstance( recordManager, comparator, serializer, DefaultSerializer.INSTANCE, 16 );
                recordManager.setNamedObject( "index", index.getRecid() );
                recordManager.commit();

                try
                {
                    sender.sendTo( new Receiver<String, IOException>()
                    {
                        int counter = 0;

                        @Override
                        public void receive( String item )
                            throws IOException
                        {
                            // Commit one batch
                            if( ( counter++ % 1000 ) == 0 )
                            {
                                recordManager.commit();
                            }

                            String id = item.substring( "{\"identity\":\"".length() );
                            id = id.substring( 0, id.indexOf( '"' ) );

                            // Insert
                            byte[] stateArray = item.getBytes( "UTF-8" );
                            long stateIndex = recordManager.insert( stateArray, serializer );
                            index.insert( id.getBytes( "UTF-8" ), stateIndex, false );
                        }
                    } );
                }
                catch( IOException e )
                {
                    recordManager.close();
                    tempDatabase.delete();
                    throw e;
                }
                catch( Throwable senderThrowableType )
                {
                    recordManager.close();
                    tempDatabase.delete();
                    throw (SenderThrowableType) senderThrowableType;
                }

                // Import went ok - continue
                recordManager.commit();
                // close file handles otherwise Microsoft Windows will fail to rename database files.
                recordManager.close();

                lock.writeLock().lock();
                try
                {
                    // Replace old database with new
View Full Code Here

     *  Basic tests
     */
    @Test
    public void testStreamCorrupted() throws IOException
    {
        RecordManager  recman;
        BTree<String, Integer>          btree;
        int            iterations;

        iterations = 100; // 23 works :-(((((

        // open database
        recman = RecordManagerFactory.createRecordManager( testFileName );

        // create a new B+Tree data structure
        btree = new BTree<String, Integer>( recman, new StringComparator() );
        recman.setNamedObject( "testbtree", btree.getRecordId() );

        // action:
        // insert data
        for( int count = 0; count < iterations; count++ )
        {
            btree.insert( "num" + count, Integer.valueOf( count ), true );
        }

        // delete data
        for( int count = 0; count < iterations; count++ )
        {
            btree.remove( "num" + count );
        }

        // close database
        recman.close();
        recman = null;
    }
View Full Code Here

     *  Basic tests
     */
    @Test
    public void testBasics() throws IOException
    {
        RecordManager recman;
        BTree<byte[], byte[]> tree;
        byte[] test0 = "test0".getBytes();
        byte[] test1 = "test1".getBytes();
        byte[] test2 = "test2".getBytes();
        byte[] test3 = "test3".getBytes();
        byte[] value1 = "value1".getBytes();
        byte[] value2 = "value2".getBytes();

        recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testBasics" ) );
        tree = new BTree<byte[], byte[]>( recman, new ByteArrayComparator() );

        tree.insert( test1, value1, false );
        tree.insert( test2, value2, false );
        byte[] result = tree.find( test0 );

        assertNull( result );

        result = tree.find( test1 );

        assertNotNull( result );
        assertEquals( 0, ByteArrayComparator.compareByteArray( result, value1 ) );

        result = tree.find( test2 );

        assertNotNull( result );
        assertEquals( 0, ByteArrayComparator.compareByteArray( result, value2 ) );

        result = tree.find( test3 );
        assertNull( result );

        recman.close();
    }
View Full Code Here

     *  Basic tests, just use the simple test possibilities of junit (cdaller)
     */
    @Test
    public void testBasics2() throws IOException
    {
        RecordManager recman;
        BTree<byte[], byte[]> tree;
        byte[] test0 = "test0".getBytes();
        byte[] test1 = "test1".getBytes();
        byte[] test2 = "test2".getBytes();
        byte[] test3 = "test3".getBytes();
        byte[] value1 = "value1".getBytes();
        byte[] value2 = "value2".getBytes();

        recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testBasics2" ) );
        tree = new BTree<byte[], byte[]>( recman, new ByteArrayComparator() );

        tree.insert( test1, value1, false );
        tree.insert( test2, value2, false );

        assertEquals( null, tree.find( test0 ) );
        assertEquals( 0, ByteArrayComparator.compareByteArray( value1, ( byte[] ) tree.find( test1 ) ) );
        assertEquals( 0, ByteArrayComparator.compareByteArray( value2, ( byte[] ) tree.find( test2 ) ) );
        assertEquals( null, ( byte[] ) tree.find( test3 ) );

        recman.close();
    }
View Full Code Here

     * (cdaller)
     */
    @Test
    public void testClose() throws IOException
    {
        RecordManager recman;
        BTree<byte[], byte[]> tree;
        byte[] test0 = "test0".getBytes();
        byte[] test1 = "test1".getBytes();
        byte[] test2 = "test2".getBytes();
        byte[] test3 = "test3".getBytes();
        byte[] value1 = "value1".getBytes();
        byte[] value2 = "value2".getBytes();

        recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testClose" ) );
        tree = new BTree<byte[], byte[]>( recman, new ByteArrayComparator() );

        tree.insert( test1, value1, false );
        tree.insert( test2, value2, false );

        assertEquals( null, tree.find( test0 ) );
        assertEquals( 0, ByteArrayComparator.compareByteArray( value1, ( byte[] ) tree.find( test1 ) ) );
        assertEquals( 0, ByteArrayComparator.compareByteArray( value2, ( byte[] ) tree.find( test2 ) ) );
        assertEquals( null, ( byte[] ) tree.find( test3 ) );

        recman.close();

        try
        {
            tree.browse();
            fail( "Should throw an IllegalStateException on access on not opened btree" );
View Full Code Here

     *  Test to insert different objects into one btree. (cdaller)
     */
    @Test
    public void testInsert() throws IOException
    {
        RecordManager recman;
        BTree<String, Object> tree;

        recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testInsert" ) );
        tree = new BTree<String, Object>( recman, new StringComparator() );

        // insert different objects and retrieve them
        tree.insert( "test1", "value1", false );
        tree.insert( "test2", "value2", false );
        tree.insert( "one", Integer.valueOf( 1 ), false );
        tree.insert( "two", Long.valueOf( 2 ), false );
        tree.insert( "myownobject", new ObjectStore( Integer.valueOf( 234 ) ), false );

        assertEquals( "value2", tree.find( "test2" ) );
        assertEquals( "value1", tree.find( "test1" ) );
        assertEquals( Integer.valueOf( 1 ), tree.find( "one" ) );
        assertEquals( Long.valueOf( 2 ), tree.find( "two" ) );

        // what happens here? must not be replaced, does it return anything?
        // probably yes!
        assertEquals( "value1", tree.insert( "test1", "value11", false ) );
        assertEquals( "value1", tree.find( "test1" ) ); // still the old value?
        assertEquals( "value1", tree.insert( "test1", "value11", true ) );
        assertEquals( "value11", tree.find( "test1" ) ); // now the new value!

        ObjectStore expectedObj = new ObjectStore( Integer.valueOf( 234 ) );
        ObjectStore btreeObj = ( ObjectStore ) tree.find( "myownobject" );

        assertEquals( expectedObj, btreeObj );

        recman.close();
    }
View Full Code Here

    @Test
    public void testInsertMany() throws IOException
    {
        BTree<String, String> tree;

        RecordManager recordManager = RecordManagerFactory.createRecordManager( getTemporaryFile( "testInsertMany" ) );
        tree = new BTree<String, String>( recordManager, new StringComparator() );
        tree.setPageSize( 4 );

        // insert different objects and retrieve them
        tree.insert( "test1", "value1", false );
        tree.insert( "test2", "value2", false );
        tree.insert( "test3", "value3", false );
        tree.insert( "test4", "value4", false );
        tree.insert( "test5", "value5", false );
        tree.insert( "test6", "value6", false );

        assertEquals( "value2", tree.find( "test2" ) );
        assertEquals( "value1", tree.find( "test1" ) );

        recordManager.close();
    }
View Full Code Here

     *                                      implementation.
     * @throws IllegalArgumentException if some options are invalid.
     */
    public RecordManager createRecordManager( String name, Properties options ) throws IOException
    {
        RecordManager  recman;
        String         value;
        int            cacheSize;

        recman = new BaseRecordManager( name );

View Full Code Here

     *  Test to remove  objects from the btree. (cdaller)
     */
    @Test
    public void testRemove() throws IOException
    {
        RecordManager recman;
        BTree<String, Object> tree;

        recman = RecordManagerFactory.createRecordManager( getTemporaryFile( "testRemove" ) );
        tree = new BTree<String, Object>( recman, new StringComparator() );

        tree.insert( "test1", "value1", false );
        tree.insert( "test2", "value2", false );

        assertEquals( "value1", tree.find( "test1" ) );
        assertEquals( "value2", tree.find( "test2" ) );

        tree.remove( "test1" );

        assertEquals( null, tree.find( "test1" ) );
        assertEquals( "value2", tree.find( "test2" ) );

        tree.remove( "test2" );

        assertEquals( null, tree.find( "test2" ) );

        int iterations = 1000;

        for ( int count = 0; count < iterations; count++ )
        {
            tree.insert( "num" + count, Integer.valueOf( count ), false );
        }

        assertEquals( iterations, tree.size() );

        for ( int count = 0; count < iterations; count++ )
        {
            assertEquals( Integer.valueOf( count ), tree.find( "num" + count ) );
        }

        for ( int count = 0; count < iterations; count++ )
        {
            tree.remove( "num" + count );
        }

        assertEquals( 0, tree.size() );

        recman.close();
    }
View Full Code Here

TOP

Related Classes of jdbm.RecordManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.