private void createFile(Configuration config, String fileName) throws IOException { ObjectContainer oc = Db4o.openFile(config, fileName); try { populate(oc); } finally { oc.close(); } File4.copy(fileName, fileName + "0"); }
/** @deprecated using deprecated api */ public void test() throws Exception { int originalActivationDepth = ((Config4Impl) Db4o.configure()).activationDepth(); Db4o.configure().activationDepth(0); ObjectServer server = Db4oClientServer.openServer(tempFile(), -1); try { server.grantAccess("db4o", "db4o"); ObjectContainer oc = Db4oClientServer.openClient("localhost", server.ext().port(), "db4o", "db4o"); oc.close(); } finally { Db4o.configure().activationDepth(originalActivationDepth); server.close(); } }
private void checkFiles(boolean useLogFile, String fileName, String infix, int count) { for (int i = 1; i <= count; i++) { String versionedFileName = fileName + infix + i; if (VERBOSE) { System.out.println("Checking " + versionedFileName); } ObjectContainer oc = Db4o.openFile(baseConfig(useLogFile), versionedFileName); try { if (!stateBeforeCommit(oc)) { if (!stateAfterFirstCommit(oc)) { Assert.isTrue(stateAfterSecondCommit(oc)); } } } finally { oc.close(); } } }
public void test() { final Collection4 expected = new Collection4(new Object[] {"PING", Boolean.TRUE, new Integer(42)}); final MessageCollector recipient = new MessageCollector(); final ObjectServer server = openServerWith(recipient); try { final ObjectContainer client = openClient("client", server); try { final MessageSender sender = messageSender(client); sendAll(expected, sender); } finally { client.close(); } } finally { server.close(); } Assert.areEqual(expected.toString(), recipient.messages.toString()); }
private boolean expect(ObjectContainer container, String[] names) { Collection4 expected = new Collection4(names); ObjectSet actual = container.query(CrashData.class); while (actual.hasNext()) { CrashData current = (CrashData) actual.next(); if (!expected.remove(current._name)) { return false; } } return expected.isEmpty(); }
private void start() { ObjectContainer oc = com.db4o.cs.Db4oClientServer.openClient( Db4oNetworking.HOST, _port, Db4oNetworking.USERNAME, Db4oNetworking.PASSWORD); oc.store(new Item(0)); oc.commit(); print("[0]"); print(CLIENT_STARTED_OK); for (int i = 1; i < ITEM_COUNT; i++) { oc.store(new Item(i)); oc.commit(); print("[" + i + "]"); } oc.close(); print(CLIENT_COMPLETED_OK); }
private void populate(ObjectContainer container) { for (int i = 0; i < 10; i++) { container.store(new Item("delme")); } CrashData one = new CrashData(null, "one"); CrashData two = new CrashData(one, "two"); CrashData three = new CrashData(one, "three"); container.store(one); container.store(two); container.store(three); container.commit(); ObjectSet objectSet = container.query(Item.class); while (objectSet.hasNext()) { container.delete(objectSet.next()); } }
/** @sharpen.remove */ public void test() throws IOException { boolean cached = USE_CACHE.value().booleanValue(); boolean useLogFile = USE_LOGFILE.value().booleanValue(); boolean writeTrash = WRITE_TRASH.value().booleanValue(); if (cached && writeTrash) { System.err.println( "DISABLED CrashSimulatingTestCase: combination of write trash and cache"); // The cache may touch more bytes than the ones we modified. // We should be safe even if we don't get this test to pass. return; } if (useLogFile && writeTrash) { System.err.println( "DISABLED CrashSimulatingTestCase: combination of write trash and use log file"); // The log file is not a public API yet anyway. // It's only needed for the PointerBasedIdSystem // With the new BTreeIdSystem it's not likely to become important // so we can safely ignore the failing write trash case. return; } if (Platform4.needsLockFileThread()) { System.out.println( "CrashSimulatingTestCase is ignored on platforms with lock file thread."); return; } String path = Path4.combine(Path4.getTempPath(), "crashSimulate"); String fileName = Path4.combine(path, "cs"); File4.delete(fileName); File4.mkdirs(path); createFile(baseConfig(useLogFile), fileName); CrashSimulatingStorage crashSimulatingStorage = new CrashSimulatingStorage(new FileStorage(), fileName); Storage storage = cached ? (Storage) new CachingStorage(crashSimulatingStorage) : crashSimulatingStorage; Configuration recordConfig = baseConfig(useLogFile); recordConfig.storage(storage); ObjectContainer oc = Db4o.openFile(recordConfig, fileName); ObjectSet objectSet = oc.queryByExample(new CrashData(null, "three")); oc.delete(objectSet.next()); oc.store(new CrashData(null, "four")); oc.store(new CrashData(null, "five")); oc.store(new CrashData(null, "six")); oc.store(new CrashData(null, "seven")); oc.store(new CrashData(null, "eight")); oc.store(new CrashData(null, "nine")); oc.store(new CrashData(null, "10")); oc.store(new CrashData(null, "11")); oc.store(new CrashData(null, "12")); oc.store(new CrashData(null, "13")); oc.store(new CrashData(null, "14")); oc.commit(); Query q = oc.query(); q.constrain(CrashData.class); objectSet = q.execute(); while (objectSet.hasNext()) { CrashData cData = (CrashData) objectSet.next(); if (!(cData._name.equals("10") || cData._name.equals("13"))) { oc.delete(cData); } } oc.commit(); oc.close(); int count = crashSimulatingStorage._batch.writeVersions(fileName, writeTrash); checkFiles(useLogFile, fileName, "R", crashSimulatingStorage._batch.numSyncs()); checkFiles(useLogFile, fileName, "W", count); if (VERBOSE) { System.out.println("Total versions: " + count); } }