Search in sources :

Example 16 with BasicComponentRegistry

use of org.infinispan.factories.impl.BasicComponentRegistry in project infinispan by infinispan.

the class CounterModuleLifecycle method cacheStarting.

@Override
public void cacheStarting(ComponentRegistry cr, Configuration configuration, String cacheName) {
    if (COUNTER_CACHE_NAME.equals(cacheName) && configuration.clustering().cacheMode().isClustered()) {
        BasicComponentRegistry bcr = cr.getComponent(BasicComponentRegistry.class);
        CounterInterceptor counterInterceptor = new CounterInterceptor();
        bcr.registerComponent(CounterInterceptor.class, counterInterceptor, true);
        bcr.addDynamicDependency(AsyncInterceptorChain.class.getName(), CounterInterceptor.class.getName());
        bcr.getComponent(AsyncInterceptorChain.class).wired().addInterceptorAfter(counterInterceptor, EntryWrappingInterceptor.class);
    }
}
Also used : BasicComponentRegistry(org.infinispan.factories.impl.BasicComponentRegistry) CounterInterceptor(org.infinispan.counter.impl.interceptor.CounterInterceptor) AsyncInterceptorChain(org.infinispan.interceptors.AsyncInterceptorChain)

Example 17 with BasicComponentRegistry

use of org.infinispan.factories.impl.BasicComponentRegistry in project infinispan by infinispan.

the class AnchoredKeysModule method cacheStarting.

@Override
public void cacheStarting(ComponentRegistry cr, Configuration configuration, String cacheName) {
    BasicComponentRegistry bcr = cr.getComponent(BasicComponentRegistry.class);
    AnchoredKeysConfiguration anchoredKeysConfiguration = configuration.module(AnchoredKeysConfiguration.class);
    if (anchoredKeysConfiguration == null || !anchoredKeysConfiguration.enabled())
        return;
    assert configuration.clustering().cacheMode().isReplicated();
    assert !configuration.clustering().stateTransfer().awaitInitialTransfer();
    assert configuration.clustering().partitionHandling().whenSplit() == PartitionHandling.ALLOW_READ_WRITES;
    assert configuration.clustering().partitionHandling().mergePolicy() == MergePolicy.PREFERRED_NON_NULL;
    if (!globalConfiguration.features().isAvailable(ANCHORED_KEYS_FEATURE))
        throw CONFIG.featureDisabled(ANCHORED_KEYS_FEATURE);
    bcr.registerComponent(AnchorManager.class, new AnchorManager(), true);
    AsyncInterceptorChain interceptorChain = bcr.getComponent(AsyncInterceptorChain.class).wired();
    // Replace the clustering interceptor with our custom interceptor
    ClusteringInterceptor oldDistInterceptor = interceptorChain.findInterceptorExtending(ClusteringInterceptor.class);
    AnchoredDistributionInterceptor distInterceptor = new AnchoredDistributionInterceptor();
    bcr.registerComponent(AnchoredDistributionInterceptor.class, distInterceptor, true);
    boolean interceptorAdded = interceptorChain.addInterceptorBefore(distInterceptor, oldDistInterceptor.getClass());
    assert interceptorAdded;
    interceptorChain.removeInterceptor(oldDistInterceptor.getClass());
    // Add a separate interceptor to fetch the actual values
    // AnchoredDistributionInterceptor cannot do it because it extends NonTxDistributionInterceptor
    AnchoredFetchInterceptor<?, ?> fetchInterceptor = new AnchoredFetchInterceptor<>();
    bcr.registerComponent(AnchoredFetchInterceptor.class, fetchInterceptor, true);
    interceptorAdded = interceptorChain.addInterceptorAfter(fetchInterceptor, AnchoredDistributionInterceptor.class);
    assert interceptorAdded;
    bcr.replaceComponent(StateProvider.class.getName(), new AnchoredStateProvider(), true);
    bcr.replaceComponent(EntryFactory.class.getName(), new AnchoredEntryFactory(), true);
    bcr.replaceComponent(CacheNotifier.class.getName(), new AnchoredCacheNotifier<>(), true);
    bcr.rewire();
}
Also used : EntryFactory(org.infinispan.container.impl.EntryFactory) AnchoredEntryFactory(org.infinispan.anchored.impl.AnchoredEntryFactory) AnchoredDistributionInterceptor(org.infinispan.anchored.impl.AnchoredDistributionInterceptor) StateProvider(org.infinispan.statetransfer.StateProvider) AnchoredStateProvider(org.infinispan.anchored.impl.AnchoredStateProvider) AsyncInterceptorChain(org.infinispan.interceptors.AsyncInterceptorChain) AnchorManager(org.infinispan.anchored.impl.AnchorManager) AnchoredKeysConfiguration(org.infinispan.anchored.configuration.AnchoredKeysConfiguration) AnchoredStateProvider(org.infinispan.anchored.impl.AnchoredStateProvider) BasicComponentRegistry(org.infinispan.factories.impl.BasicComponentRegistry) CacheNotifier(org.infinispan.notifications.cachelistener.CacheNotifier) AnchoredCacheNotifier(org.infinispan.anchored.impl.AnchoredCacheNotifier) AnchoredFetchInterceptor(org.infinispan.anchored.impl.AnchoredFetchInterceptor) ClusteringInterceptor(org.infinispan.interceptors.impl.ClusteringInterceptor) AnchoredEntryFactory(org.infinispan.anchored.impl.AnchoredEntryFactory)

Example 18 with BasicComponentRegistry

use of org.infinispan.factories.impl.BasicComponentRegistry in project infinispan by infinispan.

the class ClusterTopologyManagerImplTest method testClusterStartupWith2Nodes.

/**
 * Start two nodes and make both join the cache.
 */
public void testClusterStartupWith2Nodes() throws Exception {
    // Create global component registry with dependencies
    GlobalConfiguration gc = GlobalConfigurationBuilder.defaultClusteredBuilder().build();
    EmbeddedCacheManager cacheManager = mock(EmbeddedCacheManager.class);
    GlobalComponentRegistry gcr = new GlobalComponentRegistry(gc, cacheManager, Collections.emptySet(), TestModuleRepository.defaultModuleRepository(), mock(ConfigurationManager.class));
    BasicComponentRegistry gbcr = gcr.getComponent(BasicComponentRegistry.class);
    CacheManagerNotifierImpl managerNotifier = new CacheManagerNotifierImpl();
    gbcr.replaceComponent(CacheManagerNotifier.class.getName(), managerNotifier, false);
    managerNotifier.start();
    MockTransport transport = new MockTransport(A);
    gbcr.replaceComponent(Transport.class.getName(), transport, false);
    PersistentUUIDManager persistentUUIDManager = new PersistentUUIDManagerImpl();
    gbcr.replaceComponent(PersistentUUIDManager.class.getName(), persistentUUIDManager, false);
    gbcr.replaceComponent(KnownComponentNames.NON_BLOCKING_EXECUTOR, executor, false);
    gbcr.replaceComponent(KnownComponentNames.TIMEOUT_SCHEDULE_EXECUTOR, scheduledExecutor, false);
    MockLocalTopologyManager ltm = new MockLocalTopologyManager(CACHE_NAME);
    gbcr.replaceComponent(LocalTopologyManager.class.getName(), ltm, false);
    // Initial conditions
    transport.init(1, singletonList(A));
    ltm.init(null, null, null, null);
    // Component under test: ClusterTopologyManagerImpl on the coordinator (A)
    ClusterTopologyManagerImpl ctm = new ClusterTopologyManagerImpl();
    gbcr.replaceComponent(ClusterTopologyManager.class.getName(), ctm, false);
    gcr.rewire();
    ctm.start();
    // CTMI becomes coordinator and fetches the cluster status
    transport.expectCommand(CacheStatusRequestCommand.class).finish();
    // No caches, so no topology update is expected here
    Thread.sleep(1);
    transport.verifyNoErrors();
    // First node joins the cache
    CacheStatusResponse joinResponseA = CompletionStages.join(ctm.handleJoin(CACHE_NAME, A, joinInfoA, 1));
    assertEquals(1, joinResponseA.getCacheTopology().getTopologyId());
    assertCHMembers(joinResponseA.getCacheTopology().getCurrentCH(), A);
    assertNull(joinResponseA.getCacheTopology().getPendingCH());
    // LTMI normally updates the topology when receiving the join response
    ltm.handleTopologyUpdate(CACHE_NAME, joinResponseA.getCacheTopology(), joinResponseA.getAvailabilityMode(), 1, A);
    ltm.expectTopology(1, singletonList(A), null, CacheTopology.Phase.NO_REBALANCE);
    // CTMI replies to the initial stable topology broadcast
    transport.expectCommand(TopologyUpdateStableCommand.class, c -> {
        assertCHMembers(c.getCurrentCH(), A);
        assertNull(c.getPendingCH());
    }).finish();
    // Add a second node
    transport.updateView(2, asList(A, B));
    managerNotifier.notifyViewChange(asList(A, B), singletonList(A), A, 2);
    // CTMI confirms availability
    transport.expectHeartBeatCommand().finish();
    // Second node tries to join with old view and is rejected
    CacheStatusResponse joinResponseB1 = CompletionStages.join(ctm.handleJoin(CACHE_NAME, B, joinInfoB, 1));
    assertNull(joinResponseB1);
    // Second node joins the cache with correct view id, receives the initial topology
    CacheStatusResponse joinResponseB = CompletionStages.join(ctm.handleJoin(CACHE_NAME, B, joinInfoB, 2));
    assertEquals(1, joinResponseB.getCacheTopology().getTopologyId());
    assertCHMembers(joinResponseB.getCacheTopology().getCurrentCH(), A);
    assertNull(joinResponseB.getCacheTopology().getPendingCH());
    verifyRebalance(transport, ltm, ctm, 2, 1, singletonList(A), asList(A, B));
    transport.verifyNoErrors();
    gcr.stop();
}
Also used : MockTransport(org.infinispan.remoting.transport.MockTransport) TestModuleRepository(org.infinispan.manager.TestModuleRepository) GlobalConfiguration(org.infinispan.configuration.global.GlobalConfiguration) KnownComponentNames(org.infinispan.factories.KnownComponentNames) CompletionStages(org.infinispan.util.concurrent.CompletionStages) Test(org.testng.annotations.Test) AssertJUnit.assertTrue(org.testng.AssertJUnit.assertTrue) Collections.singletonList(java.util.Collections.singletonList) CacheManagerNotifierImpl(org.infinispan.notifications.cachemanagerlistener.CacheManagerNotifierImpl) BasicComponentRegistry(org.infinispan.factories.impl.BasicComponentRegistry) EmbeddedCacheManager(org.infinispan.manager.EmbeddedCacheManager) AbstractInfinispanTest(org.infinispan.test.AbstractInfinispanTest) Arrays.asList(java.util.Arrays.asList) ReplicatedConsistentHashFactory(org.infinispan.distribution.ch.impl.ReplicatedConsistentHashFactory) AssertJUnit.assertNull(org.testng.AssertJUnit.assertNull) CacheStatusRequestCommand(org.infinispan.commands.topology.CacheStatusRequestCommand) ExecutorService(java.util.concurrent.ExecutorService) Address(org.infinispan.remoting.transport.Address) ConfigurationManager(org.infinispan.configuration.ConfigurationManager) AfterClass(org.testng.annotations.AfterClass) Transport(org.infinispan.remoting.transport.Transport) ConsistentHash(org.infinispan.distribution.ch.ConsistentHash) GlobalComponentRegistry(org.infinispan.factories.GlobalComponentRegistry) GlobalConfigurationBuilder(org.infinispan.configuration.global.GlobalConfigurationBuilder) TopologyUpdateCommand(org.infinispan.commands.topology.TopologyUpdateCommand) TopologyUpdateStableCommand(org.infinispan.commands.topology.TopologyUpdateStableCommand) Executors(java.util.concurrent.Executors) CacheManagerNotifier(org.infinispan.notifications.cachemanagerlistener.CacheManagerNotifier) TimeUnit(java.util.concurrent.TimeUnit) ConsistentHashFactory(org.infinispan.distribution.ch.ConsistentHashFactory) List(java.util.List) CacheMode(org.infinispan.configuration.cache.CacheMode) RebalanceStartCommand(org.infinispan.commands.topology.RebalanceStartCommand) SuccessfulResponse(org.infinispan.remoting.responses.SuccessfulResponse) Optional(java.util.Optional) AssertJUnit.assertEquals(org.testng.AssertJUnit.assertEquals) Collections(java.util.Collections) RebalanceStatusRequestCommand(org.infinispan.commands.topology.RebalanceStatusRequestCommand) TestAddress(org.infinispan.distribution.TestAddress) AvailabilityMode(org.infinispan.partitionhandling.AvailabilityMode) Mockito.mock(org.mockito.Mockito.mock) TopologyUpdateStableCommand(org.infinispan.commands.topology.TopologyUpdateStableCommand) GlobalConfiguration(org.infinispan.configuration.global.GlobalConfiguration) CacheManagerNotifier(org.infinispan.notifications.cachemanagerlistener.CacheManagerNotifier) GlobalComponentRegistry(org.infinispan.factories.GlobalComponentRegistry) EmbeddedCacheManager(org.infinispan.manager.EmbeddedCacheManager) CacheManagerNotifierImpl(org.infinispan.notifications.cachemanagerlistener.CacheManagerNotifierImpl) BasicComponentRegistry(org.infinispan.factories.impl.BasicComponentRegistry) MockTransport(org.infinispan.remoting.transport.MockTransport) CacheStatusRequestCommand(org.infinispan.commands.topology.CacheStatusRequestCommand) MockTransport(org.infinispan.remoting.transport.MockTransport) Transport(org.infinispan.remoting.transport.Transport) ConfigurationManager(org.infinispan.configuration.ConfigurationManager)

Example 19 with BasicComponentRegistry

use of org.infinispan.factories.impl.BasicComponentRegistry in project infinispan by infinispan.

the class ClusterTopologyManagerImplTest method testCoordinatorLostDuringRebalance.

/**
 * Assume there are already 2 nodes and the coordinator leaves during rebalance
 */
public void testCoordinatorLostDuringRebalance() throws Exception {
    // Create global component registry with dependencies
    GlobalConfiguration gc = GlobalConfigurationBuilder.defaultClusteredBuilder().build();
    EmbeddedCacheManager cacheManager = mock(EmbeddedCacheManager.class);
    GlobalComponentRegistry gcr = new GlobalComponentRegistry(gc, cacheManager, Collections.emptySet(), TestModuleRepository.defaultModuleRepository(), mock(ConfigurationManager.class));
    BasicComponentRegistry gbcr = gcr.getComponent(BasicComponentRegistry.class);
    CacheManagerNotifierImpl managerNotifier = new CacheManagerNotifierImpl();
    gbcr.replaceComponent(CacheManagerNotifier.class.getName(), managerNotifier, false);
    managerNotifier.start();
    MockTransport transport = new MockTransport(B);
    gbcr.replaceComponent(Transport.class.getName(), transport, false);
    PersistentUUIDManager persistentUUIDManager = new PersistentUUIDManagerImpl();
    gbcr.replaceComponent(PersistentUUIDManager.class.getName(), persistentUUIDManager, false);
    gbcr.replaceComponent(KnownComponentNames.NON_BLOCKING_EXECUTOR, executor, false);
    gbcr.replaceComponent(KnownComponentNames.TIMEOUT_SCHEDULE_EXECUTOR, scheduledExecutor, false);
    MockLocalTopologyManager ltm = new MockLocalTopologyManager(CACHE_NAME);
    gbcr.replaceComponent(LocalTopologyManager.class.getName(), ltm, false);
    // Initial conditions (rebalance in phase 3, READ_NEW_WRITE_ALL)
    transport.init(2, asList(A, B));
    ConsistentHash stableCH = replicatedChf.create(joinInfoA.getNumOwners(), joinInfoA.getNumSegments(), singletonList(A), null);
    ConsistentHash pendingCH = replicatedChf.create(joinInfoA.getNumOwners(), joinInfoA.getNumSegments(), asList(A, B), null);
    CacheTopology initialTopology = new CacheTopology(4, 2, stableCH, pendingCH, CacheTopology.Phase.READ_NEW_WRITE_ALL, asList(A, B), asList(joinInfoA.getPersistentUUID(), joinInfoB.getPersistentUUID()));
    CacheTopology stableTopology = new CacheTopology(1, 1, stableCH, null, CacheTopology.Phase.NO_REBALANCE, singletonList(A), singletonList(joinInfoA.getPersistentUUID()));
    ltm.init(joinInfoA, initialTopology, stableTopology, AvailabilityMode.AVAILABLE);
    // Normally LocalTopologyManagerImpl.start()/doHandleTopologyUpdate() registers the persistent UUIDs
    // TODO Write test with asymmetric caches leaving the PersistentUUIDManager cache incomplete
    persistentUUIDManager.addPersistentAddressMapping(A, joinInfoA.getPersistentUUID());
    persistentUUIDManager.addPersistentAddressMapping(B, joinInfoB.getPersistentUUID());
    // Component under test: ClusterTopologyManagerImpl on the new coordinator (B)
    ClusterTopologyManagerImpl ctm = new ClusterTopologyManagerImpl();
    gbcr.replaceComponent(ClusterTopologyManager.class.getName(), ctm, false);
    gcr.rewire();
    // When CTMI starts as regular member it requests the rebalancing status from the coordinator
    runConcurrently(ctm::start, () -> transport.expectCommand(RebalanceStatusRequestCommand.class).singleResponse(A, SuccessfulResponse.create(true)));
    // Wait for the initial view update in CTMI to finish
    eventuallyEquals(ClusterTopologyManager.ClusterManagerStatus.REGULAR_MEMBER, ctm::getStatus);
    // The coordinator (node A) leaves the cluster
    transport.updateView(3, singletonList(B));
    managerNotifier.notifyViewChange(singletonList(B), asList(A, B), B, 3);
    // Node B becomes coordinator and CTMI tries to recover the cluster status
    transport.expectCommand(CacheStatusRequestCommand.class).finish();
    // CTMI gets a single cache topology with READ_NEW and broadcasts a new topology with only the read CH
    ltm.expectTopology(5, asList(A, B), null, CacheTopology.Phase.NO_REBALANCE);
    transport.expectCommand(TopologyUpdateCommand.class, c -> {
        assertEquals(5, c.getTopologyId());
        assertCHMembers(c.getCurrentCH(), A, B);
        assertNull(c.getPendingCH());
    });
    transport.expectCommand(TopologyUpdateStableCommand.class, c -> {
        assertEquals(1, c.getTopologyId());
        assertCHMembers(c.getCurrentCH(), A);
        assertNull(c.getPendingCH());
    });
    // CTMI broadcasts a new cache topology with only node B
    ltm.expectTopology(6, singletonList(B), null, CacheTopology.Phase.NO_REBALANCE);
    transport.expectCommand(TopologyUpdateCommand.class, c -> {
        assertEquals(6, c.getTopologyId());
        assertCHMembers(c.getCurrentCH(), B);
        assertNull(c.getPendingCH());
    });
    // The new topology doesn't need rebalancing, so CTMI updates the stable topology
    transport.expectCommand(TopologyUpdateStableCommand.class, c -> {
        assertEquals(6, c.getTopologyId());
        assertCHMembers(c.getCurrentCH(), B);
        assertNull(c.getPendingCH());
    });
    // Shouldn't send any more commands here
    Thread.sleep(1);
    transport.verifyNoErrors();
    // Node A restarts
    transport.updateView(4, asList(B, A));
    managerNotifier.notifyViewChange(asList(B, A), singletonList(B), A, 4);
    // CTMI confirms members are available in case it needs to starts a rebalance
    transport.expectHeartBeatCommand().finish();
    // Node A rejoins
    ctm.handleJoin(CACHE_NAME, A, joinInfoA, 4);
    verifyRebalance(transport, ltm, ctm, 7, 4, singletonList(B), asList(B, A));
    transport.verifyNoErrors();
    gcr.stop();
}
Also used : ConsistentHash(org.infinispan.distribution.ch.ConsistentHash) GlobalConfiguration(org.infinispan.configuration.global.GlobalConfiguration) CacheManagerNotifier(org.infinispan.notifications.cachemanagerlistener.CacheManagerNotifier) GlobalComponentRegistry(org.infinispan.factories.GlobalComponentRegistry) EmbeddedCacheManager(org.infinispan.manager.EmbeddedCacheManager) CacheManagerNotifierImpl(org.infinispan.notifications.cachemanagerlistener.CacheManagerNotifierImpl) BasicComponentRegistry(org.infinispan.factories.impl.BasicComponentRegistry) MockTransport(org.infinispan.remoting.transport.MockTransport) CacheStatusRequestCommand(org.infinispan.commands.topology.CacheStatusRequestCommand) MockTransport(org.infinispan.remoting.transport.MockTransport) Transport(org.infinispan.remoting.transport.Transport) ConfigurationManager(org.infinispan.configuration.ConfigurationManager)

Example 20 with BasicComponentRegistry

use of org.infinispan.factories.impl.BasicComponentRegistry in project infinispan by infinispan.

the class PersistenceMockUtil method mockCache.

private static Cache mockCache(String nodeName, Configuration configuration, TimeService timeService, ClassAllowList allowList, ScheduledExecutorService timeoutScheduledExecutor) {
    String cacheName = "mock-cache";
    AdvancedCache cache = mock(AdvancedCache.class, RETURNS_DEEP_STUBS);
    GlobalConfiguration gc = new GlobalConfigurationBuilder().transport().nodeName(nodeName).build();
    Set<String> cachesSet = new HashSet<>();
    EmbeddedCacheManager cm = mock(EmbeddedCacheManager.class);
    when(cm.getCacheManagerConfiguration()).thenReturn(gc);
    when(cm.getClassAllowList()).thenReturn(new ClassAllowList());
    GlobalComponentRegistry gcr = new GlobalComponentRegistry(gc, cm, cachesSet, TestModuleRepository.defaultModuleRepository(), mock(ConfigurationManager.class));
    BasicComponentRegistry gbcr = gcr.getComponent(BasicComponentRegistry.class);
    gbcr.replaceComponent(TimeService.class.getName(), timeService, true);
    gbcr.replaceComponent(KnownComponentNames.TIMEOUT_SCHEDULE_EXECUTOR, timeoutScheduledExecutor, false);
    ComponentRegistry registry = new ComponentRegistry(cacheName, configuration, cache, gcr, configuration.getClass().getClassLoader());
    when(cache.getCacheManager().getGlobalComponentRegistry()).thenReturn(gcr);
    when(cache.getClassLoader()).thenReturn(PersistenceMockUtil.class.getClassLoader());
    when(cache.getCacheManager().getCacheManagerConfiguration()).thenReturn(gc);
    when(cache.getCacheManager().getClassAllowList()).thenReturn(allowList);
    when(cache.getName()).thenReturn(cacheName);
    when(cache.getAdvancedCache()).thenReturn(cache);
    when(cache.getComponentRegistry()).thenReturn(registry);
    when(cache.getStatus()).thenReturn(ComponentStatus.RUNNING);
    when(cache.getCacheConfiguration()).thenReturn(configuration);
    return cache;
}
Also used : GlobalConfigurationBuilder(org.infinispan.configuration.global.GlobalConfigurationBuilder) GlobalConfiguration(org.infinispan.configuration.global.GlobalConfiguration) TimeService(org.infinispan.commons.time.TimeService) GlobalComponentRegistry(org.infinispan.factories.GlobalComponentRegistry) EmbeddedCacheManager(org.infinispan.manager.EmbeddedCacheManager) BasicComponentRegistry(org.infinispan.factories.impl.BasicComponentRegistry) ComponentRegistry(org.infinispan.factories.ComponentRegistry) BasicComponentRegistry(org.infinispan.factories.impl.BasicComponentRegistry) GlobalComponentRegistry(org.infinispan.factories.GlobalComponentRegistry) ClassAllowList(org.infinispan.commons.configuration.ClassAllowList) AdvancedCache(org.infinispan.AdvancedCache) ConfigurationManager(org.infinispan.configuration.ConfigurationManager) HashSet(java.util.HashSet)

Aggregations

BasicComponentRegistry (org.infinispan.factories.impl.BasicComponentRegistry)30 EmbeddedCacheManager (org.infinispan.manager.EmbeddedCacheManager)11 AsyncInterceptorChain (org.infinispan.interceptors.AsyncInterceptorChain)7 AdvancedCache (org.infinispan.AdvancedCache)6 Cache (org.infinispan.Cache)5 GlobalConfiguration (org.infinispan.configuration.global.GlobalConfiguration)5 GlobalComponentRegistry (org.infinispan.factories.GlobalComponentRegistry)5 InternalCacheRegistry (org.infinispan.registry.InternalCacheRegistry)4 HashMap (java.util.HashMap)3 List (java.util.List)3 Map (java.util.Map)3 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)3 TimeUnit (java.util.concurrent.TimeUnit)3 ConfigurationManager (org.infinispan.configuration.ConfigurationManager)3 GlobalConfigurationBuilder (org.infinispan.configuration.global.GlobalConfigurationBuilder)3 Collections (java.util.Collections)2 ConcurrentMap (java.util.concurrent.ConcurrentMap)2 Executors (java.util.concurrent.Executors)2 CacheStatusRequestCommand (org.infinispan.commands.topology.CacheStatusRequestCommand)2 TimeService (org.infinispan.commons.time.TimeService)2