public void testKillWhileSaving() throws RepositoryException { System.setProperty(NodeIdFactory.SEQUENTIAL_NODE_ID, "true"); NodeIdFactory f = new NodeIdFactory(factoryDir); f.open(); assertTrue(f.newNodeId().toString().endsWith("-0000-000000000000")); f.close(); File id = new File(factoryDir, "nodeId.properties"); assertTrue(id.exists()); File idTemp = new File(factoryDir, "nodeId.properties.temp"); id.renameTo(idTemp); f = new NodeIdFactory(factoryDir); f.open(); assertTrue(f.newNodeId().toString().endsWith("-0000-000000000001")); assertFalse(idTemp.exists()); f.close(); }
public void testNormalUsage() throws RepositoryException { System.setProperty(NodeIdFactory.SEQUENTIAL_NODE_ID, "true"); NodeIdFactory f = new NodeIdFactory(factoryDir); f.open(); assertTrue(f.newNodeId().toString().endsWith("-0000-000000000000")); f.close(); f = new NodeIdFactory(factoryDir); f.open(); assertTrue(f.newNodeId().toString().endsWith("-0000-000000000001")); f.close(); }
public void testOffset() throws RepositoryException { System.setProperty(NodeIdFactory.SEQUENTIAL_NODE_ID, "ab/0"); NodeIdFactory f = new NodeIdFactory(factoryDir); f.open(); assertEquals("00000000-0000-00ab-0000-000000000000", f.newNodeId().toString()); f.close(); f = new NodeIdFactory(factoryDir); f.open(); assertEquals("00000000-0000-00ab-0000-000000000001", f.newNodeId().toString()); f.close(); }
public void testRandomVersusSequential() throws RepositoryException { NodeIdFactory f = new NodeIdFactory(factoryDir); f.open(); NodeId id = f.newNodeId(); assertTrue(id.getLeastSignificantBits() != 0); f.close(); System.setProperty(NodeIdFactory.SEQUENTIAL_NODE_ID, "true"); f = new NodeIdFactory(factoryDir); f.open(); id = f.newNodeId(); assertTrue(id.getLeastSignificantBits() == 0); f.close(); }
public void testKillRepository() throws RepositoryException { System.setProperty(NodeIdFactory.SEQUENTIAL_NODE_ID, "true"); int cacheSize = 8; for (int i = 1; i < 40; i++) { File id = new File(factoryDir, "nodeId.properties"); id.delete(); NodeIdFactory f = new NodeIdFactory(factoryDir); f.setCacheSize(cacheSize); f.open(); NodeId last = null; for (int j = 0; j < i; j++) { last = f.newNodeId(); } // don't close the factory - this is the same as killing the process // f.close(); f = new NodeIdFactory(factoryDir); f.setCacheSize(cacheSize); f.open(); NodeId n = f.newNodeId(); assertTrue("now: " + n + " last: " + last, n.compareTo(last) > 0); long diff = n.getLeastSignificantBits() - last.getLeastSignificantBits(); assertTrue("diff: " + diff, diff > 0 && diff <= cacheSize); f.close(); } }
/** * Test that the version field is reset (0), and that all other MSB bits are * 1 at some point. This also tests the LSB bits. */ public void testUUIDVersionFieldReset() throws Exception { System.setProperty(NodeIdFactory.SEQUENTIAL_NODE_ID, "true"); long msbOr = 0, msbAnd = -1, lsbOr = 0, lsbAnd = -1; for (int i = 0; i < 0x1f; i++) { FileUtils.deleteDirectory(new File(factoryDir)); NodeIdFactory f = new NodeIdFactory(factoryDir); f.open(); for (int j = 0; j < 8; j++) { NodeId x = f.newNodeId(); msbOr |= x.getMostSignificantBits(); msbAnd &= x.getMostSignificantBits(); lsbAnd &= x.getLeastSignificantBits(); lsbOr |= x.getLeastSignificantBits(); } f.close(); } assertEquals(0xffffffffffff0fffL, msbOr); assertEquals(0, msbAnd); assertEquals(7, lsbOr); assertEquals(0, lsbAnd); }
nodeIdFactory = new NodeIdFactory(repConfig.getHomeDir()); nodeIdFactory.open(); context.setNodeIdFactory(nodeIdFactory);
nodeIdFactory = new NodeIdFactory(repConfig.getHomeDir()); nodeIdFactory.open(); context.setNodeIdFactory(nodeIdFactory);