Package com.mobixess.jodb.core

Examples of com.mobixess.jodb.core.JODBSessionContainer


        File testFileDir = new File(_testPath+"/testData/");
        testFileDir.mkdirs();
        File testFile = new File(testFileDir,SimpleAddTest.class.getSimpleName()+(_testCounter++)+".jdb");
        testFile.delete();
       
        JODBSessionContainer sessionContainer = getContainerForFile(testFile);
        for (int i = 0; i < 0x300; i++) {
            System.err.println("sizeIncreaseTest "+i);
            byte[] array = new byte[i];
            sessionContainer.set(array);
            sessionContainer.commit();
            List classes = sessionContainer.getAllObjects();
            if(classes.size() != i+1){
                throw new RuntimeException();
            }
            boolean found = false;
            for (int j = classes.size()-1; j >=0; --j) {
                byte[] arr = (byte[]) classes.get(j);
                if(arr.length == array.length){
                    found = true;
                    break;
                }
            }
            if(!found){
                throw new RuntimeException();
            }
        }
        sessionContainer.close();
    }
View Full Code Here


    public void transientTest() throws Exception{
        File testFileDir = new File(_testPath+"/testData/");
        testFileDir.mkdirs();
        File testFile = new File(testFileDir,SimpleAddTest.class.getSimpleName()+(_testCounter++)+".jdb");
        testFile.delete();
        JODBSessionContainer sessionContainer = getContainerForFile(testFile);
        ObjectWithTransientID objectWithTransientID = new ObjectWithTransientID();
        objectWithTransientID._memb1 = 1;
        objectWithTransientID._memb2 = 2;
        objectWithTransientID._memb3 = objectWithTransientID;
        sessionContainer.set(objectWithTransientID);
        sessionContainer.close();
       
        sessionContainer = getContainerForFile(testFile);
        List list = sessionContainer.getAllObjects();
        objectWithTransientID = (ObjectWithTransientID) list.get(0);
        if(objectWithTransientID._memb1 != 1 || objectWithTransientID._memb2!=0 || objectWithTransientID._memb3!=null){
            throw new RuntimeException();
        }
        sessionContainer.close();
    }
View Full Code Here

    private void transientNativeTest0() throws Exception{
        File testFileDir = new File(_testPath+"/testData/");
        testFileDir.mkdirs();
        File testFile = new File(testFileDir,SimpleAddTest.class.getSimpleName()+(_testCounter++)+".jdb");
        testFile.delete();
        JODBSessionContainer sessionContainer = getContainerForFile(testFile);
        ObjectWithNativeTransientID objectWithTransientID = new ObjectWithNativeTransientID();
        objectWithTransientID._memb1 = 1;
        objectWithTransientID._memb2 = 2;
        objectWithTransientID._memb3 = objectWithTransientID;
        sessionContainer.set(objectWithTransientID);
        sessionContainer.close();
       
        sessionContainer = getContainerForFile(testFile);
        List list = sessionContainer.getAllObjects();
        objectWithTransientID = (ObjectWithNativeTransientID) list.get(0);
        if(objectWithTransientID._memb1 != 1 || objectWithTransientID._memb2!=0 || objectWithTransientID._memb3!=null){
            throw new RuntimeException();
        }
        sessionContainer.close();
    }
View Full Code Here

    public void sizeAndPositioningTest1() throws Exception{
        File testFileDir = new File(_testPath+"/testData/");
        testFileDir.mkdirs();
        File testFile = new File(testFileDir,SimpleAddTest.class.getSimpleName()+(_testCounter++)+".jdb");
        testFile.delete();
        JODBSessionContainer sessionContainer = getContainerForFile(testFile);
        Object firstObject = new Object();
        sessionContainer.set(firstObject);
        sessionContainer.commit();
       
        ObjectD testObjectD = new ObjectD();
        testObjectD._obj0 = firstObject;
        sessionContainer.set(testObjectD);
        sessionContainer.commit();
        //sessionContainer.printFileMap();
       
        testObjectD._obj0 = null;
        sessionContainer.set(testObjectD);
        sessionContainer.commit();
        //sessionContainer.printFileMap();
       
        if(sessionContainer.getPersistenceStatistics(testObjectD).getTotalRecords()!=1){
            throw new RuntimeException();
        }
       
        testObjectD._obj0 = firstObject;
        sessionContainer.set(testObjectD);
        sessionContainer.commit();
        //sessionContainer.printFileMap();
        if(sessionContainer.getPersistenceStatistics(testObjectD).getTotalRecords()!=1){
            throw new RuntimeException();
        }
       
        testObjectD._obj1 = testObjectD;
        sessionContainer.set(testObjectD);
        sessionContainer.commit();
        //sessionContainer.printFileMap();
        if(sessionContainer.getPersistenceStatistics(testObjectD).getTotalRecords()!=2){
            throw new RuntimeException();
        }
       
        testObjectD._member1 = 10;
        sessionContainer.set(testObjectD);
        sessionContainer.commit();
        //sessionContainer.printFileMap();
        if(sessionContainer.getPersistenceStatistics(testObjectD).getTotalRecords()!=2){
            throw new RuntimeException();
        }
       
        testObjectD._obj0 = null;
        sessionContainer.set(testObjectD);
        sessionContainer.commit();
        //sessionContainer.printFileMap();
        if(sessionContainer.getPersistenceStatistics(testObjectD).getTotalRecords()!=1){
            throw new RuntimeException();
        }
       
        testObjectD._obj1 = null;
        sessionContainer.set(testObjectD);
        sessionContainer.commit();
        //sessionContainer.printFileMap();
        if(sessionContainer.getPersistenceStatistics(testObjectD).getTotalRecords()!=1){
            throw new RuntimeException();
        }
       
        testObjectD._obj0 =  testObjectD._obj1 = testObjectD;
        sessionContainer.set(testObjectD);
        sessionContainer.commit();
        //sessionContainer.printFileMap();
        if(sessionContainer.getPersistenceStatistics(testObjectD).getTotalRecords()!=2){
            throw new RuntimeException();
        }
       
        testObjectD._obj0 =  testObjectD._obj1 = null;
        sessionContainer.set(testObjectD);
        sessionContainer.commit();
        //sessionContainer.printFileMap();
        if(sessionContainer.getPersistenceStatistics(testObjectD).getTotalRecords()!=1){
            throw new RuntimeException();
        }
       
        List list = sessionContainer.getAllObjects();
        if(list.size()!=2){
            throw new IOException();
        }
       
       
        Object[] array = new Object[3];
        array[0] = firstObject;
        array[1] = firstObject;
        sessionContainer.set(testObjectD);
        sessionContainer.commit();
       
       
        array[2] = array[2];
        sessionContainer.set(array);
        sessionContainer.commit();
       
        //sessionContainer.printFileMap();
        if(sessionContainer.getPersistenceStatistics(testObjectD).getTotalRecords()!=1){
            throw new RuntimeException();
        }
       
        int inCache = sessionContainer.getCachedObjectsCount();
        System.gc();
        Thread.sleep(1000);
        array = null;
        System.gc();
        Thread.sleep(1000);
        if(inCache == sessionContainer.getCachedObjectsCount()){
            throw new RuntimeException("test flow error");
        }
        //sessionContainer.printFileMap();
        list = sessionContainer.getAllObjects();
        for (int i = 0; i < list.size(); i++) {
            Object obj = list.get(i);
            if(obj.getClass().isArray()){
                array = (Object[]) obj;
            }
        }
       
        if(array[0]!=firstObject || array[1]!=firstObject || array[2]!=null){
            throw new RuntimeException();
        }
       
       
        array[2] = array;
        sessionContainer.set(array);
        sessionContainer.commit();
       
        //sessionContainer.printFileMap();
        if(sessionContainer.getPersistenceStatistics(testObjectD).getTotalRecords()!=1){
            throw new RuntimeException();
        }
       
        inCache = sessionContainer.getCachedObjectsCount();
        System.gc();
        Thread.sleep(500);
        array = null;
        System.gc();
        Thread.sleep(500);
        if(inCache == sessionContainer.getCachedObjectsCount()){
            throw new RuntimeException("test flow error");
        }
       
        list = sessionContainer.getAllObjects();
        for (int i = 0; i < list.size(); i++) {
            Object obj = list.get(i);
            if(obj.getClass().isArray()){
                array = (Object[]) obj;
            }
        }
       
        if(array[0]!=firstObject || array[1]!=firstObject || array[2]!=array){
            throw new RuntimeException();
        }
       
        sessionContainer.close();
    }
View Full Code Here

       
        WriteIntersectingFactory factory = new WriteIntersectingFactory();
        JODBConfig.setRandomAccessBufferFactory(factory);
       
       
        JODBSessionContainer sessionContainer = getContainerForFile(testFile);
        InnerClassObject innerClassObject = new InnerClassObject();
        sessionContainer.set(innerClassObject);
        sessionContainer.commit();
       
        if(closeAfterCommit){
            sessionContainer.close();
            sessionContainer = getContainerForFile(testFile);
        }
       
        Query query = sessionContainer.query();
       
        query.constrain(innerClassObject.getInnerClass().getClass());
       
        List list = query.execute();
       
View Full Code Here

        File testFileDir = new File(_testPath+"/testData/");
        testFileDir.mkdirs();
        File testFile = new File(testFileDir,SimpleAddTest.class.getSimpleName()+(_testCounter++)+".jdb");
        testFile.delete();
       
        JODBSessionContainer sessionContainer = getContainerForFile(testFile);
        ObjectA objectA = new ObjectA((byte)1,(short)2,null);
        ObjectB objectB = new ObjectB();
        int[] array = new int[]{10,20,30};
       
        sessionContainer.set(objectB);
        sessionContainer.set(array);
        sessionContainer.set(objectA);
       
       
        sessionContainer.commit();
        sessionContainer.close();
       
        sessionContainer = getContainerForFile(testFile);
        sessionContainer.printFileMap();
        List classes = sessionContainer.getAllObjects();
        if(classes.size()!=3){
            throw new RuntimeException();
        }
        Object arrayObj = null;
        for (int i = 0; i < classes.size(); i++) {
            if(classes.get(i).getClass().isArray()){
                arrayObj = classes.get(i);
            }
        }
        int[] array1 = (int[]) arrayObj;

        if(!Arrays.equals(array, array1)){
            throw new RuntimeException();
        }
        int index = classes.indexOf(objectA);
        if(index == -1){
            throw new RuntimeException();
        }
        ObjectA objectA2 = (ObjectA) classes.get(index);
       
       
        index = classes.indexOf(objectB);
        if(index == -1){
            throw new RuntimeException();
        }
       
        ObjectB objectB2 = (ObjectB) classes.get(index);
       
        array1[0] = 100;
       
        objectA2.setVal3(objectB2);
        objectB2._val3 = objectA2;
       
        sessionContainer.set(objectB2);
        sessionContainer.set(objectA2);
        sessionContainer.set(arrayObj);
       
        sessionContainer.close();
       
        sessionContainer = getContainerForFile(testFile);
        sessionContainer.printFileMap();
       
        classes = sessionContainer.getAllObjects();
        if(classes.size()!=3){
            throw new RuntimeException();
        }
        arrayObj = null;
        for (int i = 0; i < classes.size(); i++) {
            if(classes.get(i).getClass().isArray()){
                arrayObj = classes.get(i);
            }
        }
        int[] array2 = (int[]) arrayObj;

        if(!Arrays.equals(array2, array1)){
            throw new RuntimeException();
        }
        index = classes.indexOf(objectA);
        if(index == -1){
            throw new RuntimeException();
        }
        objectA2 = (ObjectA) classes.get(index);
       
       
        index = classes.indexOf(objectB);
        if(index == -1){
            throw new RuntimeException();
        }
       
        objectB2 = (ObjectB) classes.get(index);
       
        sessionContainer.close();
       
    }
View Full Code Here

        File testFileDir = new File(_testPath+"/testData/");
        testFileDir.mkdirs();
        File testFile = new File(testFileDir,SimpleAddTest.class.getSimpleName()+(_testCounter++)+".jdb");
        testFile.delete();
       
        JODBSessionContainer sessionContainer = getContainerForFile(testFile);
        sessionContainer.close();
       
        WriteIntersectingFactory factory = new WriteIntersectingFactory();
        JODBConfig.setRandomAccessBufferFactory(factory);
        factory.intersectionInit(null, Integer.MAX_VALUE, false);
       
        sessionContainer = getContainerForFile(testFile);
        //factory.setIntersectEnabled(true);
        ObjectA objectA = new ObjectA((byte)1,(short)2,null);
        ObjectB objectB = new ObjectB();
        int[] array = new int[]{10,20,30};
       
       
        sessionContainer.set(objectB);
        //sessionContainer.set(array);
        sessionContainer.set(objectA);
        sessionContainer.close();
       
        sessionContainer = getContainerForFile(testFile);
        factory.setIntersectEnabled(true);
        sessionContainer.set(array);
        sessionContainer.close();
       
        Vector verificationObjects = new Vector();
        verificationObjects.add(objectA);
        verificationObjects.add(objectB);
       
        int maxOperationsCount = factory.getCounter();
       
        testFile = new File(testFileDir,SimpleAddTest.class.getSimpleName()+(_testCounter++)+".jdb");
       
        for (int i = 0; i < maxOperationsCount; i++) {
            System.err.println("Iteration ="+i);
            //System.gc();
//            try {
//                Thread.sleep(200);
//            } catch (InterruptedException e1) {
//            }
            factory.intersectionInit(null, i, true);
            testFile.delete();
            if(testFile.exists()){
                throw new RuntimeException();
            }
           
            sessionContainer = getContainerForFile(testFile);
            sessionContainer.set(objectB);
            sessionContainer.set(objectA);
           
            sessionContainer.close();
           
//            testFile.delete();
//            if(testFile.exists()){
//                System.err.println();
//            }
           
            factory.setIntersectEnabled(true);
            sessionContainer = getContainerForFile(testFile);
           
            sessionContainer.set(array);
           
            try {
                sessionContainer.close();
                throw new RuntimeException("Test Framework Error");
            } catch (Exception e) {
//                if(i==25){
//                    factory.printUnclosedBuffers();
//                }
                e.printStackTrace();
            }
           
//            testFile.delete();
//            if(testFile.exists()){
//                System.err.println();
//            }
           
            factory.setIntersectEnabled(false);
            if (factory._bufferedType == BUFFER_TYPE.MAIN) {
                byte[] incompleteTransaction = factory.getBuffer();
                verifyDataReadable(incompleteTransaction, verificationObjects,2,3);
            }           
            sessionContainer = getContainerForFile(testFile);
           
            List classes = sessionContainer.getAllObjects();
            if(classes.size()!=2){
                throw new RuntimeException(""+classes.size()+"  "+i);
            }
//            Object arrayObj = null;
//            for (int j = 0; j < classes.size(); j++) {
//                if(classes.get(j).getClass().isArray()){
//                    arrayObj = classes.get(j);
//                }
//            }
//            int[] array1 = (int[]) arrayObj;
//
//            if(!Arrays.equals(array, array1)){
//                throw new RuntimeException();
//            }
            int index = classes.indexOf(objectA);
            if(index == -1){
                throw new RuntimeException();
            }
            ObjectA objectA2 = (ObjectA) classes.get(index);
           
           
            index = classes.indexOf(objectB);
            if(index == -1){
                throw new RuntimeException();
            }
            ObjectB objectB2 = (ObjectB) classes.get(index);
            sessionContainer.close();
        }
       
    }
View Full Code Here

        }
        File file = File.createTempFile("incompleteTransaction", "");
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(data);
        fos.close();
        JODBSessionContainer sessionContainer = (JODBSessionContainer) JodbMini.open(file);
        List classes = sessionContainer.getAllObjects();
        //sessionContainer.printFileMap();
        if(classes.size() < minObjects || classes.size() > maxObjects){
            throw new RuntimeException();
        }
        for (int i = 0; verificationObjects!=null && i < verificationObjects.size(); i++) {
            if(classes.indexOf(verificationObjects.elementAt(i))==-1){
                throw new RuntimeException();
            }
        }
        sessionContainer.close();
        file.deleteOnExit();
        file.delete();
    }
View Full Code Here

        File testFileDir = new File(_testPath+"/testData/");
        testFileDir.mkdirs();
        File testFile = new File(testFileDir,SimpleAddTest.class.getSimpleName()+(_testCounter++)+".jdb");
        testFile.delete();
       
        JODBSessionContainer sessionContainer = getContainerForFile(testFile);
       
        RandomAccessFile randomAccessFile = new RandomAccessFile(testFile,"rw");
        byte[] result = new byte[(int) randomAccessFile.length()];
        ByteBuffer buffer = ByteBuffer.wrap(result);
        try {
            randomAccessFile.getChannel().read(buffer, 0);
            FileLock fileLock = randomAccessFile.getChannel().tryLock(0,1,false);//read(buffer, 0);
            if(fileLock!=null){
                throw new IOException();
            }
        } catch (Exception e) {
            sessionContainer.close();
            return;
        }finally{
            sessionContainer.close();
        }
        throw new IOException();
    }
View Full Code Here

        File testFileDir = new File(_testPath+"/testData/");
        testFileDir.mkdirs();
        File testFile = new File(testFileDir,SimpleAddTest.class.getSimpleName()+(_testCounter++)+".jdb");
        testFile.delete();
       
        JODBSessionContainer sessionContainer = getContainerForFile(testFile);
        ObjectC objectC = new ObjectC();
        sessionContainer.set(objectC);
        sessionContainer.commit();
        sessionContainer.close();
       
        sessionContainer = getContainerForFile(testFile);
        List classes = sessionContainer.getAllObjects();
        if(classes.size()!=1){
            throw new RuntimeException(""+classes.size());
        }
        Object obj = classes.get(0);
        if(obj.getClass() != objectC.getClass()){
            throw new RuntimeException();
        }
        sessionContainer.close();
    }
View Full Code Here

TOP

Related Classes of com.mobixess.jodb.core.JODBSessionContainer

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.