package org.infinispan.notifications.cachelistener.cluster; import org.infinispan.configuration.cache.CacheMode; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.notifications.Listener; import org.infinispan.notifications.cachelistener.annotation.CacheEntryCreated; import org.infinispan.notifications.cachelistener.event.CacheEntryEvent; import org.infinispan.test.SingleCacheManagerTest; import org.infinispan.test.fwk.TestCacheManagerFactory; import org.testng.annotations.Test; /** * This tests is to make sure that a cluster listener may not be used with invalidation. The reason being is that * we don't have a single owner to guarantee ordering. * * @author wburns * @since 7.0 */ @Test(groups = "functional", testName = "notifications.cachelistener.cluster.ClusterListenerInvalTest") public class ClusterListenerInvalTest extends SingleCacheManagerTest { @Override protected EmbeddedCacheManager createCacheManager() throws Exception { // start a single cache instance ConfigurationBuilder c = getDefaultClusteredCacheConfig(CacheMode.INVALIDATION_SYNC); return TestCacheManagerFactory.createClusteredCacheManager(c); } @Listener(clustered = true) private static class ClusterListener { @CacheEntryCreated public void created(CacheEntryEvent event) { } } @Test(expectedExceptions = UnsupportedOperationException.class) public void testEnsureClusterListenerNotSupportedForInvalidation() { cache.addListener(new ClusterListener()); } }