Package net.sf.joafip.service

Examples of net.sf.joafip.service.IDataAccessSession


      FilePersistenceInvalidClassException,
      FilePersistenceDataCorruptedException,
      FilePersistenceNotSerializableException,
      FilePersistenceTooBigForSerializationException {

    final IDataAccessSession session = filePersistence
        .createDataAccessSession();

    session.open();
    SubstitutionContainerSerializable bobContainer = new SubstitutionContainerSerializable();
    final SubstitutedBobSerialize1 bob = new SubstitutedBobSerialize1(1);
    bobContainer.setObject(bob);
    session.setObject(KEY, bobContainer);
    session.close(EnumFilePersistenceCloseAction.SAVE);

    session.open();
    bobContainer = (SubstitutionContainerSerializable) session
        .getObject(KEY);
    assertNotNull(BAD_BOB_CONTAINER_OBJECT1, bobContainer.getObject());
    final SubstitutedBobSerialize1 bobRead = (SubstitutedBobSerialize1) bobContainer
        .getObject();
    assertEquals(BAD_BOB_IDENTIFIER, 1, bob.getIdentifier());
    assertSame(READ_OBJECT_MUST_BE_THE_WROTE_OBJECT, bob, bobRead);
    session.close(EnumFilePersistenceCloseAction.SAVE);

    filePersistence.close();
  }
View Full Code Here


      builder.setProxyMode(true);
      builder.setRemoveFiles(true);
      builder.setGarbageManagement(GARBAGE);
      builder.setCrashSafeMode(CRASH_SAFE_MODE);
      final IFilePersistence filePersistence = builder.build();
      final IDataAccessSession session = filePersistence
          .createDataAccessSession();
      session.open();
      session.setObject("key", new EmptyClass());
      session.close(EnumFilePersistenceCloseAction.SAVE);

      printState(filePersistence);

      filePersistence.garbageSweep("runtime/set");

      printState(filePersistence);

      session.open();
      session.getObject("key");
      session.close(EnumFilePersistenceCloseAction.SAVE);

      filePersistence.close();

    } catch (final FilePersistenceException exception) {
      exception.printStackTrace();// NOPMD
View Full Code Here

      FilePersistenceTooBigForSerializationException {

    filePersistence.setSubstituteObjectManager(SubstitutedBob.class,
        SubstitutionBob.class, new SubstituteObjectManager1());

    final IDataAccessSession session = filePersistence
        .createDataAccessSession();

    session.open();
    BobContainer bobContainer = new BobContainer();
    SubstitutedBob bob = new SubstitutedBob(1);
    bob.setObject1(HELLO);
    bobContainer.setObject1(bob);
    session.setObject(KEY, bobContainer);
    session.close(EnumFilePersistenceCloseAction.SAVE);

    session.open();
    bobContainer = (BobContainer) session.getObject(KEY);
    assertNotNull(BAD_BOB_CONTAINER_OBJECT1, bobContainer.getObject1());
    bob = (SubstitutedBob) bobContainer.getObject1();
    assertEquals(BAD_BOB_IDENTIFIER, 1, bob.getIdentifier());
    assertEquals(BAD_BOB_OBJECT, HELLO, bob.getObject1());
    assertNull(BAD_BOB_CONTAINER_OBJECT2, bobContainer.getObject2());
    if (!javaAgentTransformerInstalled()) {
      assertFalse("must not be proxied",
          ProxyManager2.isProxyOrEnhanced(bob));
    }

    bobContainer.setObject2("abracadaba");
    session.close(EnumFilePersistenceCloseAction.SAVE);

    session.open();
    bobContainer = (BobContainer) session.getObject(KEY);
    assertNotNull(BAD_BOB_CONTAINER_OBJECT1, bobContainer.getObject1());
    bob = (SubstitutedBob) bobContainer.getObject1();
    assertEquals(BAD_BOB_IDENTIFIER, 1, bob.getIdentifier());
    assertEquals(BAD_BOB_OBJECT, HELLO, bob.getObject1());
    assertNotNull(BAD_BOB_CONTAINER_OBJECT2, bobContainer.getObject2());
    assertEquals(BAD_BOB_CONTAINER_OBJECT2, "abracadaba",
        bobContainer.getObject2());

    SubstitutedBob substitutedBob = new SubstitutedBob(2);
    substitutedBob.setObject1(BONJOUR);
    bobContainer.setObject2(substitutedBob);
    session.close(EnumFilePersistenceCloseAction.SAVE);

    session.open();
    bobContainer = (BobContainer) session.getObject(KEY);
    assertNotNull(BAD_BOB_CONTAINER_OBJECT1, bobContainer.getObject1());
    bob = (SubstitutedBob) bobContainer.getObject1();
    assertEquals(BAD_BOB_IDENTIFIER, 1, bob.getIdentifier());
    assertEquals(BAD_BOB_OBJECT, HELLO, bob.getObject1());
    assertNotNull(BAD_BOB_CONTAINER_OBJECT2, bobContainer.getObject2());
    bob = (SubstitutedBob) bobContainer.getObject2();
    assertEquals(BAD_BOB_IDENTIFIER, 2, bob.getIdentifier());
    assertEquals(BAD_BOB_OBJECT, "bonjour", bob.getObject1());

    substitutedBob = new SubstitutedBob(2);
    substitutedBob.setObject1(BONJOUR);
    bobContainer.setObject2(substitutedBob);
    session.close(EnumFilePersistenceCloseAction.SAVE);

    filePersistence.close();
  }
View Full Code Here

        classLoader);
    assertTrue("must be instance of ClassLoader",
        ClassLoader.class.isAssignableFrom(classLoader.getClass()));
    filePersistence.keptInMemory("classLoader", classLoader);

    final IDataAccessSession dataAccessSession = filePersistence
        .createDataAccessSession();
    dataAccessSession.open();
    dataAccessSession.setObject(KEY, classLoader);
    dataAccessSession.close(EnumFilePersistenceCloseAction.SAVE);

    dataAccessSession.open();
    final ClassLoader readClassLoader = (ClassLoader) dataAccessSession
        .getObject(KEY);
    assertSame("should not change", classLoader, readClassLoader);
    final URL url = readClassLoader
        .getResource("net/sf/joafip/service/rel300/dummy.properties");
    assertNotNull("must found 'joafip.properties'", url);
    dataAccessSession.close(EnumFilePersistenceCloseAction.SAVE);
  }
View Full Code Here

      IOException, FilePersistenceTooBigForSerializationException {
    initialize(pathName, dataManager, useCache);
    long maxSearchTime = Long.MIN_VALUE;
    long minSearchTime = Long.MAX_VALUE;
    final long startTime = System.currentTimeMillis();
    final IDataAccessSession session = filePersistence
        .createDataAccessSession();
    session.open();
    initializeByItemDuration();
    int missingCount = 0;
    final List<Integer> missingList = new LinkedList<Integer>();
    int misMatchCount = 0;
    final List<String> misMatchList = new LinkedList<String>();
    final InputStream inputStream = new FileInputStream(insertLogFilePath);
    final BufferedReader reader = new BufferedReader(new InputStreamReader(
        inputStream));
    int count = 0;
    String line;
    while ((line = reader.readLine()) != null) { // NOPMD
      count++;
      final int identifier = Integer.parseInt(line);
      final ItemList itemList = getItemList(session);
      final long startSearchTime = System.currentTimeMillis();
      final Item item = itemList.get(identifier);
      if (item == null) {
        // throw new
        // IllegalStateException("missing item for identifier "
        // + identifier);
        logger.info("missing item for identifier " + identifier);
        missingCount++;
        if (missingCount < 40) {
          missingList.add(identifier);
        }
      } else {
        if (item.getIdentifier() != identifier) {
          misMatchCount++;
          if (misMatchCount < 40) {
            misMatchList.add(item.getIdentifier() + " for "
                + identifier);
          }
        }
      }
      final long currentTime = System.currentTimeMillis();
      final long searchDuration = currentTime - startSearchTime;
      if (searchDuration > maxSearchTime) {
        maxSearchTime = searchDuration;
      }
      if (searchDuration < minSearchTime) {
        minSearchTime = searchDuration;
      }
      if (count % BATCH_SIZE == BATCH_SIZE - 1) {
        session.close(EnumFilePersistenceCloseAction.DO_NOT_SAVE);
        session.open();
        final long duration = (currentTime - startTime);
        final long byItem = duration * 1000 / (identifier + 1);
        byItemDuration[byItemIndex++] = (int) byItem;
        logger.info(duration + " mS " + count + " found, by item "
            + byItem + " uS");
      }
    }
    reader.close();
    session.close(EnumFilePersistenceCloseAction.DO_NOT_SAVE);
    final long endTime = System.currentTimeMillis();
    logger.info("min search time " + minSearchTime);
    logger.info("max search time " + maxSearchTime);
    logger.info((endTime - startTime) + " mS for " + NUMBER_OF_ITEM
        + " items");
View Full Code Here

    pageSetSize = 0;
    readCacheMapSize = 0;
    writeCacheMapSize = 0;
    freePageRootNodeSize = 0;
    usedPageRootNodeSize = 0;
    final IDataAccessSession session = filePersistence
        .createDataAccessSession();
    initMemInspector();
    session.open();
    initializeByItemDuration();
    boolean objectAddedInMemory = false;
    long duration = 0;
    final PrintWriter insertLogWriter = new PrintWriter(insertLogFilePath);
    final InputStream inputStream = getClass().getResourceAsStream(
        "/all.txt");
    final BufferedReader reader = new BufferedReader(new InputStreamReader(
        inputStream));
    final long insertStartTime = System.currentTimeMillis();
    int count;
    for (count = 0; (System.currentTimeMillis() - insertStartTime) < 5 * 60 * 1000
        && !objectAddedInMemory && count < numberOfItem + 1; count++) {
      // final ItemTemplateList itemTemplateList =
      // getItemTemplateList(session);
      // final ItemTemplate itemTemplate;
      // switch (identifier % 3) {
      // case 0:
      // itemTemplate = itemTemplateList.getItemTemplate(1);
      // break;
      // case 1:
      // itemTemplate = itemTemplateList.getItemTemplate(2);
      // break;
      // case 2:
      // itemTemplate = itemTemplateList.getItemTemplate(3);
      // break;
      // default:
      // itemTemplate = null;
      // }
      final int identifier = Integer.parseInt(reader.readLine());

      addItem(session, identifier);
      // consistencyCheck();
      insertLogWriter.println(identifier);

      if (count % BATCH_SIZE == BATCH_SIZE - 1) {

        final long startTime = System.currentTimeMillis();
        session.closeAndWait(EnumFilePersistenceCloseAction.SAVE);
        final long currentTime = System.currentTimeMillis();
        System.gc();
        objectAddedInMemory = checkObjectAddedInMemory(byItemIndex);
        duration += (currentTime - startTime);
        final long byItem = duration * 1000 / (count + 1);
        final long memUse = runtime.totalMemory()
            - runtime.freeMemory();
        byItemMem[byItemIndex] = (int) (memUse / 1024);
        if (memUse > maxMemUse) {
          maxMemUse = memUse;
        }
        byItemDuration[byItemIndex] = (int) byItem;
        final StringBuilder builder = new StringBuilder();
        builder.append('\n');
        builder.append(duration);
        builder.append(" mS ");
        builder.append(count + 1);
        builder.append(" appened, by item ");
        builder.append(byItem);
        builder.append(" µS\nmem used=");
        builder.append(mem(memUse));
        builder.append("\nmax=     ");
        builder.append(mem(maxMemUse));
        if (OBJ_MEM_SIZE) {
          final long memUse2 = memInspectorForMemory
              .memoryUsed(filePersistence);
          if (memUse2 > maxMemUse2) {// NOPMD
            maxMemUse2 = memUse2;
          }
          byItemMem2[byItemIndex] = (int) (memUse2 / 1024);
          builder.append("\n\nuse=     ");
          builder.append(mem(memUse2));
          builder.append("\nmax=     ");
          builder.append(mem(maxMemUse2));
        }
        if (useCache != null && useCache.booleanValue()) {
          builder.append("\npageSet size=");
          builder.append(pageSetSize);
          builder.append('/');
          builder.append(NUMBER_OF_PAGE);
          builder.append("\nreadCacheMapSize size=");
          builder.append(readCacheMapSize);
          builder.append("\nwriteCacheMapSize size=");
          builder.append(writeCacheMapSize);
          builder.append("\nfreePageRootNodeSize size=");
          builder.append(freePageRootNodeSize);
          builder.append("\nusedPageRootNodeSize size=");
          builder.append(usedPageRootNodeSize);
        }
        builder.append("\nWO SIZE=");
        builder.append(StaticProxyCallBack.size());
        logger.info(builder.toString());
        byItemIndex++;

        session.open();
        consistencyCheck();
      }
    }
    reader.close();
    insertLogWriter.close();
    session.closeAndWait(EnumFilePersistenceCloseAction.SAVE);

    session.open();
    final ItemList itemList = getItemList(session);
    itemList.removeItem(NUMBER_OF_ITEM);
    session.closeAndWait(EnumFilePersistenceCloseAction.SAVE);

    FILE_FOR_LUC.delete();

    logSize(count, -1, duration);

View Full Code Here

      FilePersistenceNotSerializableException,
      FilePersistenceTooBigForSerializationException {
    final ItemTemplate itemTemplate1 = new ItemTemplate(1, "template1");
    final ItemTemplate itemTemplate2 = new ItemTemplate(2, "template2");
    final ItemTemplate itemTemplate3 = new ItemTemplate(3, "template3");
    final IDataAccessSession session = filePersistence
        .createDataAccessSession();
    session.open();
    final ItemTemplateList itemTemplateList = getItemTemplateList(session);
    itemTemplateList.addItemTemplate(itemTemplate1);
    itemTemplateList.addItemTemplate(itemTemplate2);
    itemTemplateList.addItemTemplate(itemTemplate3);
    session.closeAndWait(EnumFilePersistenceCloseAction.SAVE);
  }
View Full Code Here

    BobContainer bobContainer = new BobContainer();
    bobContainer.setObject1(keptInMemoryMap);
    Map<String, String> storedmap = new PTreeMap<String, String>();
    storedmap.put("key2", "value2");
    bobContainer.setObject2(storedmap);
    final IDataAccessSession dataAccessSession = filePersistence
        .createDataAccessSession();

    dataAccessSession.open();
    dataAccessSession.setObject(KEY1, bobContainer);
    dataAccessSession.close(EnumFilePersistenceCloseAction.SAVE);
    storedmap.clear();

    dataAccessSession.open();
    bobContainer = (BobContainer) dataAccessSession.getObject(KEY1);
    assertSame(MUST_BE_SAME_INSTANCE, keptInMemoryMap,
        bobContainer.getObject1());
    storedmap = (Map<String, String>) bobContainer.getObject2();
    assertEquals("bad content", "value2", storedmap.get("key2"));
    dataAccessSession.close(EnumFilePersistenceCloseAction.SAVE);
  }
View Full Code Here

    // /**/false /* pas de gestion garbage */,
    // /**/crashSafeMode/* crash safe mode activé */);
    filePersistence = builder.build();
    filePersistence.setRecordSaveActions(true);

    final IDataAccessSession dataAccessSession = filePersistence
        .createDataAccessSession();

    dataAccessSession.open();
    dataAccessSession.closeAndWait(EnumFilePersistenceCloseAction.SAVE);
    logWrote();

    filePersistence.storedMutableEnum(EnumOrderType2.class);

    dataAccessSession.open();
    dataAccessSession.closeAndWait(EnumFilePersistenceCloseAction.SAVE);
    logWrote();

    dataAccessSession.open();
    dataAccessSession.closeAndWait(EnumFilePersistenceCloseAction.SAVE);
    logWrote();

    filePersistence.close();
  }
View Full Code Here

      FilePersistenceClassNotFoundException,
      FilePersistenceInvalidClassException,
      FilePersistenceDataCorruptedException,
      FilePersistenceNotSerializableException,
      FilePersistenceTooBigForSerializationException {
    final IDataAccessSession dataAccessSession = filePersistence
        .createDataAccessSession();
    dataAccessSession.open();
    final ClassOne301b classOne301b = (ClassOne301b) dataAccessSession
        .getObject("object1");
    assertNotNull("must be defined", classOne301b);
    final Object field = classOne301b.getField();
    assertEquals("bad field value", "field1", field);
    assertEquals("bad field2 value", "field2", classOne301b.getField2());
    assertEquals("bad transient field value", "transientField1",
        classOne301b.getTransientField());
    assertEquals("bad transient field2 value", "transientField2",
        classOne301b.getTransientField2());

    final ClassTwo301bReplacement classTwo301bReplacement = (ClassTwo301bReplacement) dataAccessSession
        .getObject("object2");
    assertEquals("bad firstField value", "f1",
        classTwo301bReplacement.getFirstField());
    assertEquals("bad field2 value", "f2",
        classTwo301bReplacement.getField2());
    assertEquals("bad firstTransientField value", "t1",
        classTwo301bReplacement.getFirstTransientField());
    assertEquals("bad firstTransientField2 value", "t2",
        classTwo301bReplacement.getTransientField2());

    dataAccessSession.close(EnumFilePersistenceCloseAction.SAVE);
  }
View Full Code Here

TOP

Related Classes of net.sf.joafip.service.IDataAccessSession

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.