@Test(timeOut = 20000) void testIndividuallyDeletedMessages1() throws Exception { ManagedLedger ledger = factory.open("testIndividuallyDeletedMessages1"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("entry-0".getBytes(Encoding)); ledger.addEntry("entry-1".getBytes(Encoding)); ledger.addEntry("entry-2".getBytes(Encoding)); ledger.addEntry("entry-3".getBytes(Encoding)); ledger.addEntry("entry-4".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.delete(entries.get(1).getPosition()); c1.markDelete(entries.get(3).getPosition()); entries.forEach(e -> e.release()); assertTrue(c1.isIndividuallyDeletedEntriesEmpty()); }
@Test(timeOut = 20000) void testIndividuallyDeletedMessages2() throws Exception { ManagedLedger ledger = factory.open("testIndividuallyDeletedMessages2"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("entry-0".getBytes(Encoding)); ledger.addEntry("entry-1".getBytes(Encoding)); ledger.addEntry("entry-2".getBytes(Encoding)); ledger.addEntry("entry-3".getBytes(Encoding)); ledger.addEntry("entry-4".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(2).getPosition()); c1.delete(entries.get(0).getPosition()); entries.forEach(e -> e.release()); assertTrue(c1.isIndividuallyDeletedEntriesEmpty()); }
@Test(timeOut = 20000) void testIndividuallyDeletedMessages() throws Exception { ManagedLedger ledger = factory.open("testIndividuallyDeletedMessages"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("entry-0".getBytes(Encoding)); ledger.addEntry("entry-1".getBytes(Encoding)); ledger.addEntry("entry-2".getBytes(Encoding)); ledger.addEntry("entry-3".getBytes(Encoding)); ledger.addEntry("entry-4".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(2).getPosition()); c1.markDelete(entries.get(3).getPosition()); entries.forEach(e -> e.release()); assertTrue(c1.isIndividuallyDeletedEntriesEmpty()); }
@Test(timeOut = 20000) void testIndividuallyDeletedMessages3() throws Exception { ManagedLedger ledger = factory.open("testIndividuallyDeletedMessages3"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("entry-0".getBytes(Encoding)); ledger.addEntry("entry-1".getBytes(Encoding)); ledger.addEntry("entry-2".getBytes(Encoding)); ledger.addEntry("entry-3".getBytes(Encoding)); ledger.addEntry("entry-4".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(2).getPosition()); c1.markDelete(entries.get(0).getPosition()); entries.forEach(e -> e.release()); assertTrue(c1.isIndividuallyDeletedEntriesEmpty()); }
@Test(timeOut = 20000) void testFindNewestMatchingEdgeCase7() throws Exception { ManagedLedger ledger = factory.open("testFindNewestMatchingEdgeCase7"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); Position lastPosition = ledger.addEntry("expired".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.markDelete(entries.get(0).getPosition()); c1.delete(entries.get(2).getPosition()); entries.forEach(e -> e.release()); assertEquals( c1.findNewestMatching(entry -> Arrays.equals(entry.getDataAndRelease(), "expired".getBytes(Encoding))), lastPosition); }
@Test(timeOut = 20000) void testFindNewestMatchingEdgeCase6() throws Exception { ManagedLedger ledger = factory.open("testFindNewestMatchingEdgeCase6", new ManagedLedgerConfig().setMaxEntriesPerLedger(3)); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); Position newPosition = ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("not-expired".getBytes(Encoding)); List<Entry> entries = c1.readEntries(3); c1.markDelete(entries.get(2).getPosition()); entries.forEach(e -> e.release()); assertEquals( c1.findNewestMatching(entry -> Arrays.equals(entry.getDataAndRelease(), "expired".getBytes(Encoding))), newPosition); }
@Test(timeOut = 20000) void testFindNewestMatchingEdgeCase9() throws Exception { ManagedLedger ledger = factory.open("testFindNewestMatchingEdgeCase9"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); Position lastPosition = ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("not-expired".getBytes(Encoding)); List<Entry> entries = c1.readEntries(5); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(3).getPosition()); entries.forEach(e -> e.release()); assertEquals( c1.findNewestMatching(entry -> Arrays.equals(entry.getDataAndRelease(), "expired".getBytes(Encoding))), lastPosition); }
@Test(timeOut = 20000) void testFindNewestMatchingEdgeCase8() throws Exception { ManagedLedger ledger = factory.open("testFindNewestMatchingEdgeCase8"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); Position lastPosition = ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("not-expired".getBytes(Encoding)); List<Entry> entries = c1.readEntries(4); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(2).getPosition()); entries.forEach(e -> e.release()); assertEquals( c1.findNewestMatching(entry -> Arrays.equals(entry.getDataAndRelease(), "expired".getBytes(Encoding))), lastPosition); }
@Test(timeOut = 20000) void testFindNewestMatchingEdgeCase10() throws Exception { ManagedLedger ledger = factory.open("testFindNewestMatchingEdgeCase10"); ManagedCursorImpl c1 = (ManagedCursorImpl) ledger.openCursor("c1"); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("expired".getBytes(Encoding)); Position lastPosition = ledger.addEntry("expired".getBytes(Encoding)); ledger.addEntry("not-expired".getBytes(Encoding)); List<Entry> entries = c1.readEntries(7); c1.delete(entries.get(1).getPosition()); c1.delete(entries.get(3).getPosition()); c1.delete(entries.get(6).getPosition()); entries.forEach(e -> e.release()); assertEquals( c1.findNewestMatching(entry -> Arrays.equals(entry.getDataAndRelease(), "expired".getBytes(Encoding))), lastPosition); }
List<Entry> entries = c1.readEntries(totalAddEntries); assertEquals(entries.size(), totalAddEntries / 2);
List<Entry> entries = c1.readEntries(totalAddEntries); assertEquals(entries.size(), totalAddEntries / 2);
assertEquals(cacheManager.mlFactoryMBean.getNumberOfCacheEvictions(), 0); List<Entry> entries = c1.readEntries(10); assertEquals(entries.size(), 10); entries.forEach(e -> e.release()); assertEquals(cacheManager.mlFactoryMBean.getNumberOfCacheEvictions(), 0); entries = c2.readEntries(10); assertEquals(entries.size(), 10);
List<Entry> entries = c1.readEntries(3); c1.markDelete(entries.get(2).getPosition()); c1.close();