@Test public void testCleanup() throws Exception { ManagedLedger ledger = factory.open("my_test_ledger"); ledger.openCursor("c1"); ledger.addEntry("data".getBytes(Encoding)); assertEquals(bkc.getLedgers().size(), 2); ledger.delete(); assertEquals(bkc.getLedgers().size(), 0); }
@Test(timeOut = 20000) public void testAsyncCleanup() throws Exception { ManagedLedger ledger = factory.open("my_test_ledger"); ledger.openCursor("c1"); ledger.addEntry("data".getBytes(Encoding)); assertEquals(bkc.getLedgers().size(), 2); final CountDownLatch latch = new CountDownLatch(1); ledger.asyncDelete(new DeleteLedgerCallback() { @Override public void deleteLedgerFailed(ManagedLedgerException exception, Object ctx) { fail("should have succeeded"); } @Override public void deleteLedgerComplete(Object ctx) { latch.countDown(); } }, null); latch.await(); assertEquals(bkc.getLedgers().size(), 0); }
@Test(timeOut = 20000) public void testReopenAndCleanup() throws Exception { ManagedLedger ledger = factory.open("my_test_ledger"); ledger.openCursor("c1"); ledger.addEntry("data".getBytes(Encoding)); ledger.close(); Thread.sleep(100); assertEquals(bkc.getLedgers().size(), 1); factory.shutdown(); factory = new ManagedLedgerFactoryImpl(bkc, bkc.getZkHandle()); ledger = factory.open("my_test_ledger"); ledger.openCursor("c1"); Thread.sleep(100); assertEquals(bkc.getLedgers().size(), 2); ledger.close(); factory.open("my_test_ledger", new ManagedLedgerConfig()).delete(); Thread.sleep(100); assertEquals(bkc.getLedgers().size(), 0); factory.shutdown(); }
@Test public void removingCursor() throws Exception { ManagedLedger ledger = factory.open("my_test_ledger"); ManagedCursor c1 = ledger.openCursor("c1"); assertEquals(zkc.exists("/managed-ledgers/my_test_ledger/c1", false) != null, true); zkc.failNow(Code.BADVERSION); try { c1.close(); fail("should fail"); } catch (ManagedLedgerException e) { // ok } bkc.failNow(BKException.Code.NoSuchLedgerExistsException); // Cursor ledger deletion will fail, but that should not prevent the deleteCursor to fail ledger.deleteCursor("c1"); assertEquals(zkc.exists("/managed-ledgers/my_test_ledger/c1", false) != null, false); assertEquals(bkc.getLedgers().size(), 2); }
.map(e -> e.getLedgerId()).collect(Collectors.toSet()), offloader.offloadedLedgers()); Assert.assertTrue(bkc.getLedgers().contains(firstLedgerId)); ledger.internalTrimConsumedLedgers(promise); promise.join(); Assert.assertTrue(bkc.getLedgers().contains(firstLedgerId)); assertEventuallyTrue(() -> !bkc.getLedgers().contains(firstLedgerId)); assertEventuallyTrue(() -> offloader.deletedOffloads().contains(firstLedgerId));
.map(e -> e.getLedgerId()).collect(Collectors.toSet()), offloader.offloadedLedgers()); Assert.assertTrue(bkc.getLedgers().contains(firstLedgerId)); ledger.internalTrimConsumedLedgers(promise); promise.join(); Assert.assertTrue(bkc.getLedgers().contains(firstLedgerId)); assertEventuallyTrue(() -> !bkc.getLedgers().contains(firstLedgerId));
.map(e -> e.getLedgerId()).collect(Collectors.toSet()), offloader.offloadedLedgers()); Assert.assertTrue(bkc.getLedgers().contains(firstLedgerId)); ledger.internalTrimConsumedLedgers(promise); promise.join(); Assert.assertTrue(bkc.getLedgers().contains(firstLedgerId)); assertEventuallyTrue(() -> !bkc.getLedgers().contains(firstLedgerId));