Search in sources :

Example 6 with HierarchicalObjectRepository

use of org.apache.activemq.artemis.core.settings.impl.HierarchicalObjectRepository in project activemq-artemis by apache.

the class PrintData method printPages.

private static void printPages(File pageDirectory, DescribeJournal describeJournal, PrintStream out, boolean safe) {
    try {
        ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(1, ActiveMQThreadFactory.defaultThreadFactory());
        final ExecutorService executor = Executors.newFixedThreadPool(10, ActiveMQThreadFactory.defaultThreadFactory());
        ExecutorFactory execfactory = new ExecutorFactory() {

            @Override
            public ArtemisExecutor getExecutor() {
                return ArtemisExecutor.delegate(executor);
            }
        };
        final StorageManager sm = new NullStorageManager();
        PagingStoreFactory pageStoreFactory = new PagingStoreFactoryNIO(sm, pageDirectory, 1000L, scheduled, execfactory, false, null);
        HierarchicalRepository<AddressSettings> addressSettingsRepository = new HierarchicalObjectRepository<>();
        addressSettingsRepository.setDefault(new AddressSettings());
        PagingManager manager = new PagingManagerImpl(pageStoreFactory, addressSettingsRepository);
        printPages(describeJournal, sm, manager, out, safe);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : AddressSettings(org.apache.activemq.artemis.core.settings.impl.AddressSettings) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) PagingManager(org.apache.activemq.artemis.core.paging.PagingManager) StorageManager(org.apache.activemq.artemis.core.persistence.StorageManager) NullStorageManager(org.apache.activemq.artemis.core.persistence.impl.nullpm.NullStorageManager) HierarchicalObjectRepository(org.apache.activemq.artemis.core.settings.impl.HierarchicalObjectRepository) NullStorageManager(org.apache.activemq.artemis.core.persistence.impl.nullpm.NullStorageManager) PagingStoreFactoryNIO(org.apache.activemq.artemis.core.paging.impl.PagingStoreFactoryNIO) ExecutorFactory(org.apache.activemq.artemis.utils.ExecutorFactory) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) ExecutorService(java.util.concurrent.ExecutorService) PagingStoreFactory(org.apache.activemq.artemis.core.paging.PagingStoreFactory) PagingManagerImpl(org.apache.activemq.artemis.core.paging.impl.PagingManagerImpl)

Example 7 with HierarchicalObjectRepository

use of org.apache.activemq.artemis.core.settings.impl.HierarchicalObjectRepository in project activemq-artemis by apache.

the class PagingManagerImplTest method testPagingManager.

@Test
public void testPagingManager() throws Exception {
    HierarchicalRepository<AddressSettings> addressSettings = new HierarchicalObjectRepository<>();
    addressSettings.setDefault(new AddressSettings().setAddressFullMessagePolicy(AddressFullMessagePolicy.PAGE));
    final StorageManager storageManager = new NullStorageManager();
    PagingStoreFactoryNIO storeFactory = new PagingStoreFactoryNIO(storageManager, getPageDirFile(), 100, null, getOrderedExecutor(), true, null);
    PagingManagerImpl managerImpl = new PagingManagerImpl(storeFactory, addressSettings);
    managerImpl.start();
    PagingStore store = managerImpl.getPageStore(new SimpleString("simple-test"));
    ICoreMessage msg = createMessage(1L, new SimpleString("simple-test"), createRandomBuffer(10));
    final RoutingContextImpl ctx = new RoutingContextImpl(null);
    Assert.assertFalse(store.page(msg, ctx.getTransaction(), ctx.getContextListing(store.getStoreName()), lock));
    store.startPaging();
    Assert.assertTrue(store.page(msg, ctx.getTransaction(), ctx.getContextListing(store.getStoreName()), lock));
    Page page = store.depage();
    page.open();
    List<PagedMessage> msgs = page.read(new NullStorageManager());
    page.close();
    Assert.assertEquals(1, msgs.size());
    ActiveMQTestBase.assertEqualsByteArrays(msg.getBodyBuffer().writerIndex(), msg.getBodyBuffer().toByteBuffer().array(), (msgs.get(0).getMessage()).toCore().getBodyBuffer().toByteBuffer().array());
    Assert.assertTrue(store.isPaging());
    Assert.assertNull(store.depage());
    final RoutingContextImpl ctx2 = new RoutingContextImpl(null);
    Assert.assertFalse(store.page(msg, ctx2.getTransaction(), ctx2.getContextListing(store.getStoreName()), lock));
}
Also used : AddressSettings(org.apache.activemq.artemis.core.settings.impl.AddressSettings) PagedMessage(org.apache.activemq.artemis.core.paging.PagedMessage) StorageManager(org.apache.activemq.artemis.core.persistence.StorageManager) NullStorageManager(org.apache.activemq.artemis.core.persistence.impl.nullpm.NullStorageManager) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) Page(org.apache.activemq.artemis.core.paging.impl.Page) HierarchicalObjectRepository(org.apache.activemq.artemis.core.settings.impl.HierarchicalObjectRepository) RoutingContextImpl(org.apache.activemq.artemis.core.server.impl.RoutingContextImpl) ICoreMessage(org.apache.activemq.artemis.api.core.ICoreMessage) NullStorageManager(org.apache.activemq.artemis.core.persistence.impl.nullpm.NullStorageManager) PagingStoreFactoryNIO(org.apache.activemq.artemis.core.paging.impl.PagingStoreFactoryNIO) PagingManagerImpl(org.apache.activemq.artemis.core.paging.impl.PagingManagerImpl) PagingStore(org.apache.activemq.artemis.core.paging.PagingStore) Test(org.junit.Test)

Aggregations

HierarchicalObjectRepository (org.apache.activemq.artemis.core.settings.impl.HierarchicalObjectRepository)7 Test (org.junit.Test)5 PagingManagerImpl (org.apache.activemq.artemis.core.paging.impl.PagingManagerImpl)4 PagingStoreFactoryNIO (org.apache.activemq.artemis.core.paging.impl.PagingStoreFactoryNIO)4 AddressSettings (org.apache.activemq.artemis.core.settings.impl.AddressSettings)4 StorageManager (org.apache.activemq.artemis.core.persistence.StorageManager)3 NullStorageManager (org.apache.activemq.artemis.core.persistence.impl.nullpm.NullStorageManager)3 ExecutorService (java.util.concurrent.ExecutorService)2 SimpleString (org.apache.activemq.artemis.api.core.SimpleString)2 WildcardConfiguration (org.apache.activemq.artemis.core.config.WildcardConfiguration)2 PagingStore (org.apache.activemq.artemis.core.paging.PagingStore)2 PagingStoreFactory (org.apache.activemq.artemis.core.paging.PagingStoreFactory)2 OrderedExecutorFactory (org.apache.activemq.artemis.utils.actors.OrderedExecutorFactory)2 ScheduledExecutorService (java.util.concurrent.ScheduledExecutorService)1 ScheduledThreadPoolExecutor (java.util.concurrent.ScheduledThreadPoolExecutor)1 ThreadFactory (java.util.concurrent.ThreadFactory)1 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)1 ICoreMessage (org.apache.activemq.artemis.api.core.ICoreMessage)1 PagedMessage (org.apache.activemq.artemis.core.paging.PagedMessage)1 PagingManager (org.apache.activemq.artemis.core.paging.PagingManager)1