Here are the examples of the java api class org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl taken from open source projects.
1. PageCursorStressTest#addMessages()
Project: activemq-artemis
File: PageCursorStressTest.java
File: PageCursorStressTest.java
private int addMessages(final int start, final int numMessages, final int messageSize) throws Exception { PagingStoreImpl pageStore = lookupPageStore(ADDRESS); pageStore.startPaging(); RoutingContext ctx = generateCTX(); for (int i = start; i < start + numMessages; i++) { if (i % 100 == 0) System.out.println("Paged " + i); ActiveMQBuffer buffer = RandomUtil.randomBuffer(messageSize, i + 1L); ServerMessage msg = new ServerMessageImpl(i, buffer.writerIndex()); msg.putIntProperty("key", i); // to be used on tests that are validating filters msg.putBooleanProperty("even", i % 2 == 0); msg.getBodyBuffer().writeBytes(buffer, 0, buffer.writerIndex()); Assert.assertTrue(pageStore.page(msg, ctx.getTransaction(), ctx.getContextListing(ADDRESS), lock)); } return pageStore.getNumberOfPages(); }
2. PagingStoreImplTest#testDepageMultiplePages()
Project: activemq-artemis
File: PagingStoreImplTest.java
File: PagingStoreImplTest.java
@Test public void testDepageMultiplePages() throws Exception { SequentialFileFactory factory = new FakeSequentialFileFactory(); SimpleString destination = new SimpleString("test"); PagingStoreFactory storeFactory = new FakeStoreFactory(factory); PagingStoreImpl store = new PagingStoreImpl(PagingStoreImplTest.destinationTestName, null, 100, createMockManager(), createStorageManagerMock(), factory, storeFactory, PagingStoreImplTest.destinationTestName, new AddressSettings().setAddressFullMessagePolicy(AddressFullMessagePolicy.PAGE), getExecutorFactory().getExecutor(), true); store.start(); Assert.assertEquals(0, store.getNumberOfPages()); store.startPaging(); Assert.assertEquals(1, store.getNumberOfPages()); List<ActiveMQBuffer> buffers = new ArrayList<>(); for (int i = 0; i < 10; i++) { ActiveMQBuffer buffer = createRandomBuffer(i + 1L, 10); buffers.add(buffer); if (i == 5) { store.forceAnotherPage(); } ServerMessage msg = createMessage(i, store, destination, buffer); final RoutingContextImpl ctx = new RoutingContextImpl(null); Assert.assertTrue(store.page(msg, ctx.getTransaction(), ctx.getContextListing(store.getStoreName()), lock)); } Assert.assertEquals(2, store.getNumberOfPages()); store.sync(); int sequence = 0; for (int pageNr = 0; pageNr < 2; pageNr++) { Page page = store.depage(); System.out.println("numberOfPages = " + store.getNumberOfPages()); page.open(); List<PagedMessage> msg = page.read(new NullStorageManager()); page.close(); Assert.assertEquals(5, msg.size()); for (int i = 0; i < 5; i++) { Assert.assertEquals(sequence++, msg.get(i).getMessage().getMessageID()); ActiveMQTestBase.assertEqualsBuffers(18, buffers.get(pageNr * 5 + i), msg.get(i).getMessage().getBodyBuffer()); } } Assert.assertEquals(1, store.getNumberOfPages()); Assert.assertTrue(store.isPaging()); ServerMessage msg = createMessage(1, store, destination, buffers.get(0)); final RoutingContextImpl ctx = new RoutingContextImpl(null); Assert.assertTrue(store.page(msg, ctx.getTransaction(), ctx.getContextListing(store.getStoreName()), lock)); Page newPage = store.depage(); newPage.open(); Assert.assertEquals(1, newPage.read(new NullStorageManager()).size()); newPage.delete(null); Assert.assertEquals(1, store.getNumberOfPages()); Assert.assertTrue(store.isPaging()); Assert.assertNull(store.depage()); Assert.assertFalse(store.isPaging()); { final RoutingContextImpl ctx2 = new RoutingContextImpl(null); Assert.assertFalse(store.page(msg, ctx2.getTransaction(), ctx2.getContextListing(store.getStoreName()), lock)); } store.startPaging(); { final RoutingContextImpl ctx2 = new RoutingContextImpl(null); Assert.assertTrue(store.page(msg, ctx2.getTransaction(), ctx2.getContextListing(store.getStoreName()), lock)); } Page page = store.depage(); page.open(); List<PagedMessage> msgs = page.read(new NullStorageManager()); Assert.assertEquals(1, msgs.size()); Assert.assertEquals(1L, msgs.get(0).getMessage().getMessageID()); ActiveMQTestBase.assertEqualsBuffers(18, buffers.get(0), msgs.get(0).getMessage().getBodyBuffer()); Assert.assertEquals(1, store.getNumberOfPages()); Assert.assertTrue(store.isPaging()); Assert.assertNull(store.depage()); Assert.assertEquals(0, store.getNumberOfPages()); page.open(); }
3. PagingStoreImplTest#testDepageOnCurrentPage()
Project: activemq-artemis
File: PagingStoreImplTest.java
File: PagingStoreImplTest.java
@Test public void testDepageOnCurrentPage() throws Exception { SequentialFileFactory factory = new FakeSequentialFileFactory(); SimpleString destination = new SimpleString("test"); PagingStoreFactory storeFactory = new FakeStoreFactory(factory); PagingStoreImpl storeImpl = new PagingStoreImpl(PagingStoreImplTest.destinationTestName, null, 100, createMockManager(), createStorageManagerMock(), factory, storeFactory, PagingStoreImplTest.destinationTestName, new AddressSettings().setAddressFullMessagePolicy(AddressFullMessagePolicy.PAGE), getExecutorFactory().getExecutor(), true); storeImpl.start(); Assert.assertEquals(0, storeImpl.getNumberOfPages()); storeImpl.startPaging(); List<ActiveMQBuffer> buffers = new ArrayList<>(); int numMessages = 10; for (int i = 0; i < numMessages; i++) { ActiveMQBuffer buffer = createRandomBuffer(i + 1L, 10); buffers.add(buffer); ServerMessage msg = createMessage(i, storeImpl, destination, buffer); final RoutingContextImpl ctx = new RoutingContextImpl(null); Assert.assertTrue(storeImpl.page(msg, ctx.getTransaction(), ctx.getContextListing(storeImpl.getStoreName()), lock)); } Assert.assertEquals(1, storeImpl.getNumberOfPages()); storeImpl.sync(); Page page = storeImpl.depage(); page.open(); List<PagedMessage> msg = page.read(new NullStorageManager()); Assert.assertEquals(numMessages, msg.size()); Assert.assertEquals(1, storeImpl.getNumberOfPages()); page = storeImpl.depage(); Assert.assertNull(page); Assert.assertEquals(0, storeImpl.getNumberOfPages()); for (int i = 0; i < numMessages; i++) { ActiveMQBuffer horn1 = buffers.get(i); ActiveMQBuffer horn2 = msg.get(i).getMessage().getBodyBuffer(); horn1.resetReaderIndex(); horn2.resetReaderIndex(); for (int j = 0; j < horn1.writerIndex(); j++) { Assert.assertEquals(horn1.readByte(), horn2.readByte()); } } }
4. PageCursorStressTest#testConsumeLivePage()
Project: activemq-artemis
File: PageCursorStressTest.java
File: PageCursorStressTest.java
@Test public void testConsumeLivePage() throws Exception { PagingStoreImpl pageStore = lookupPageStore(ADDRESS); pageStore.startPaging(); final int NUM_MESSAGES = 100; final int messageSize = 1024 * 1024; PageCursorProvider cursorProvider = this.server.getPagingManager().getPageStore(ADDRESS).getCursorProvider(); System.out.println("cursorProvider = " + cursorProvider); PageSubscription cursor = this.server.getPagingManager().getPageStore(ADDRESS).getCursorProvider().getSubscription(queue.getID()); System.out.println("Cursor: " + cursor); RoutingContextImpl ctx = generateCTX(); LinkedListIterator<PagedReference> iterator = cursor.iterator(); for (int i = 0; i < NUM_MESSAGES; i++) { // if (i % 100 == 0) System.out.println("read/written " + i); ActiveMQBuffer buffer = RandomUtil.randomBuffer(messageSize, i + 1L); ServerMessage msg = new ServerMessageImpl(i, buffer.writerIndex()); msg.putIntProperty("key", i); msg.getBodyBuffer().writeBytes(buffer, 0, buffer.writerIndex()); Assert.assertTrue(pageStore.page(msg, ctx.getTransaction(), ctx.getContextListing(ADDRESS), lock)); PagedReference readMessage = iterator.next(); assertNotNull(readMessage); assertEquals(i, readMessage.getMessage().getIntProperty("key").intValue()); assertNull(iterator.next()); } OperationContextImpl.clearContext(); ctx = generateCTX(); pageStore = lookupPageStore(ADDRESS); cursor = this.server.getPagingManager().getPageStore(ADDRESS).getCursorProvider().getSubscription(queue.getID()); iterator = cursor.iterator(); for (int i = 0; i < NUM_MESSAGES * 2; i++) { if (i % 100 == 0) System.out.println("Paged " + i); if (i >= NUM_MESSAGES) { ActiveMQBuffer buffer = RandomUtil.randomBuffer(messageSize, i + 1L); ServerMessage msg = new ServerMessageImpl(i, buffer.writerIndex()); msg.putIntProperty("key", i); msg.getBodyBuffer().writeBytes(buffer, 0, buffer.writerIndex()); Assert.assertTrue(pageStore.page(msg, ctx.getTransaction(), ctx.getContextListing(ADDRESS), lock)); } PagedReference readMessage = iterator.next(); assertNotNull(readMessage); assertEquals(i, readMessage.getMessage().getIntProperty("key").intValue()); } OperationContextImpl.clearContext(); pageStore = lookupPageStore(ADDRESS); cursor = this.server.getPagingManager().getPageStore(ADDRESS).getCursorProvider().getSubscription(queue.getID()); iterator = cursor.iterator(); for (int i = 0; i < NUM_MESSAGES * 3; i++) { if (i % 100 == 0) System.out.println("Paged " + i); if (i >= NUM_MESSAGES * 2 - 1) { ActiveMQBuffer buffer = RandomUtil.randomBuffer(messageSize, i + 1L); ServerMessage msg = new ServerMessageImpl(i, buffer.writerIndex()); msg.putIntProperty("key", i + 1); msg.getBodyBuffer().writeBytes(buffer, 0, buffer.writerIndex()); Assert.assertTrue(pageStore.page(msg, ctx.getTransaction(), ctx.getContextListing(ADDRESS), lock)); } PagedReference readMessage = iterator.next(); assertNotNull(readMessage); cursor.ack(readMessage); assertEquals(i, readMessage.getMessage().getIntProperty("key").intValue()); } PagedReference readMessage = iterator.next(); assertEquals(NUM_MESSAGES * 3, readMessage.getMessage().getIntProperty("key").intValue()); cursor.ack(readMessage); server.getStorageManager().waitOnOperations(); pageStore.flushExecutors(); assertFalse(pageStore.isPaging()); server.stop(); createServer(); assertFalse(pageStore.isPaging()); waitCleanup(); assertFalse(lookupPageStore(ADDRESS).isPaging()); }
5. PageCursorStressTest#testConsumeLivePageMultiThread()
Project: activemq-artemis
File: PageCursorStressTest.java
File: PageCursorStressTest.java
@Test public void testConsumeLivePageMultiThread() throws Exception { final PagingStoreImpl pageStore = lookupPageStore(ADDRESS); pageStore.startPaging(); final int NUM_TX = 100; final int MSGS_TX = 100; final int TOTAL_MSG = NUM_TX * MSGS_TX; final int messageSize = 1024; PageCursorProvider cursorProvider = this.server.getPagingManager().getPageStore(ADDRESS).getCursorProvider(); System.out.println("cursorProvider = " + cursorProvider); PageSubscription cursor = this.server.getPagingManager().getPageStore(ADDRESS).getCursorProvider().getSubscription(queue.getID()); System.out.println("Cursor: " + cursor); final StorageManager storage = this.server.getStorageManager(); final AtomicInteger exceptions = new AtomicInteger(0); Thread t1 = new Thread() { @Override public void run() { try { int count = 0; for (int txCount = 0; txCount < NUM_TX; txCount++) { Transaction tx = null; if (txCount % 2 == 0) { tx = new TransactionImpl(storage); } RoutingContext ctx = generateCTX(tx); for (int i = 0; i < MSGS_TX; i++) { //System.out.println("Sending " + count); ActiveMQBuffer buffer = RandomUtil.randomBuffer(messageSize, count); ServerMessage msg = new ServerMessageImpl(i, buffer.writerIndex()); msg.putIntProperty("key", count++); msg.getBodyBuffer().writeBytes(buffer, 0, buffer.writerIndex()); Assert.assertTrue(pageStore.page(msg, ctx.getTransaction(), ctx.getContextListing(ADDRESS), lock)); } if (tx != null) { tx.commit(); } } } catch (Throwable e) { e.printStackTrace(); exceptions.incrementAndGet(); } } }; t1.start(); LinkedListIterator<PagedReference> iterator = cursor.iterator(); for (int i = 0; i < TOTAL_MSG; i++) { assertEquals(0, exceptions.get()); PagedReference ref = null; for (int repeat = 0; repeat < 5; repeat++) { ref = iterator.next(); if (ref == null) { Thread.sleep(1000); } else { break; } } assertNotNull(ref); ref.acknowledge(); assertNotNull(ref); System.out.println("Consuming " + ref.getMessage().getIntProperty("key")); //assertEquals(i, ref.getMessage().getIntProperty("key").intValue()); } assertEquals(0, exceptions.get()); }
6. PageCursorStressTest#testLazyCommit()
Project: activemq-artemis
File: PageCursorStressTest.java
File: PageCursorStressTest.java
@Test public void testLazyCommit() throws Exception { PagingStoreImpl pageStore = lookupPageStore(ADDRESS); pageStore.startPaging(); final int NUM_MESSAGES = 100; final int messageSize = 100 * 1024; PageCursorProvider cursorProvider = this.server.getPagingManager().getPageStore(ADDRESS).getCursorProvider(); System.out.println("cursorProvider = " + cursorProvider); PageSubscription cursor = this.server.getPagingManager().getPageStore(ADDRESS).getCursorProvider().getSubscription(queue.getID()); LinkedListIterator<PagedReference> iterator = cursor.iterator(); System.out.println("Cursor: " + cursor); StorageManager storage = this.server.getStorageManager(); long pgtxLazy = storage.generateID(); Transaction txLazy = pgMessages(storage, pageStore, pgtxLazy, 0, NUM_MESSAGES, messageSize); addMessages(100, NUM_MESSAGES, messageSize); System.out.println("Number of pages - " + pageStore.getNumberOfPages()); // First consume what's already there without any tx as nothing was committed for (int i = 100; i < 200; i++) { PagedReference pos = iterator.next(); assertNotNull("Null at position " + i, pos); assertEquals(i, pos.getMessage().getIntProperty("key").intValue()); cursor.ack(pos); } assertNull(iterator.next()); txLazy.commit(); storage.waitOnOperations(); for (int i = 0; i < 100; i++) { PagedReference pos = iterator.next(); assertNotNull("Null at position " + i, pos); assertEquals(i, pos.getMessage().getIntProperty("key").intValue()); cursor.ack(pos); } assertNull(iterator.next()); waitCleanup(); server.stop(); createServer(); waitCleanup(); assertEquals(1, lookupPageStore(ADDRESS).getNumberOfPages()); }
7. PagingStoreImplTest#testStore()
Project: activemq-artemis
File: PagingStoreImplTest.java
File: PagingStoreImplTest.java
@Test public void testStore() throws Exception { SequentialFileFactory factory = new FakeSequentialFileFactory(); PagingStoreFactory storeFactory = new FakeStoreFactory(factory); AddressSettings addressSettings = new AddressSettings().setAddressFullMessagePolicy(AddressFullMessagePolicy.PAGE); PagingStore storeImpl = new PagingStoreImpl(PagingStoreImplTest.destinationTestName, null, 100, createMockManager(), createStorageManagerMock(), factory, storeFactory, PagingStoreImplTest.destinationTestName, addressSettings, getExecutorFactory().getExecutor(), true); storeImpl.start(); Assert.assertEquals(0, storeImpl.getNumberOfPages()); storeImpl.startPaging(); Assert.assertEquals(1, storeImpl.getNumberOfPages()); List<ActiveMQBuffer> buffers = new ArrayList<>(); ActiveMQBuffer buffer = createRandomBuffer(0, 10); buffers.add(buffer); SimpleString destination = new SimpleString("test"); ServerMessage msg = createMessage(1, storeImpl, destination, buffer); Assert.assertTrue(storeImpl.isPaging()); final RoutingContextImpl ctx = new RoutingContextImpl(null); Assert.assertTrue(storeImpl.page(msg, ctx.getTransaction(), ctx.getContextListing(storeImpl.getStoreName()), lock)); Assert.assertEquals(1, storeImpl.getNumberOfPages()); storeImpl.sync(); storeImpl = new PagingStoreImpl(PagingStoreImplTest.destinationTestName, null, 100, createMockManager(), createStorageManagerMock(), factory, storeFactory, PagingStoreImplTest.destinationTestName, addressSettings, getExecutorFactory().getExecutor(), true); storeImpl.start(); Assert.assertEquals(1, storeImpl.getNumberOfPages()); }