@Test public void testCacheListenerCopying() { RegisteredEventListeners registeredEventListeners = _ehcachePortalCache.ehcache.getCacheEventNotificationService(); Set<CacheEventListener> cacheEventListeners = registeredEventListeners.getCacheEventListeners(); Assert.assertEquals(1, cacheEventListeners.size()); Iterator<CacheEventListener> iterator = cacheEventListeners.iterator(); CacheEventListener cacheEventListener = iterator.next(); Assert.assertTrue(cacheEventListener instanceof PortalCacheCacheEventListener); PortalCacheCacheEventListener<Serializable, Serializable> portalCacheCacheEventListener = (PortalCacheCacheEventListener<Serializable, Serializable>) cacheEventListener; Assert.assertSame(_defaultCacheListener, portalCacheCacheEventListener.getCacheListener()); Assert.assertSame(_ehcachePortalCache, portalCacheCacheEventListener.getPortalCache()); String newCacheName = "newCache"; _cacheManager.addCache(newCacheName); Cache newCache = _cacheManager.getCache(newCacheName); _ehcachePortalCache.setEhcache(newCache); registeredEventListeners = newCache.getCacheEventNotificationService(); Assert.assertEquals(1, cacheEventListeners.size()); iterator = cacheEventListeners.iterator(); cacheEventListener = iterator.next(); Assert.assertTrue(cacheEventListener instanceof PortalCacheCacheEventListener); portalCacheCacheEventListener = (PortalCacheCacheEventListener<Serializable, Serializable>) cacheEventListener; Assert.assertSame(_defaultCacheListener, portalCacheCacheEventListener.getCacheListener()); Assert.assertSame(_ehcachePortalCache, portalCacheCacheEventListener.getPortalCache()); }
@Override protected void runTest(Cache cache, Toolkit toolkit) throws Throwable { cache.getCacheEventNotificationService().registerListener(new ThrowingListener()); for (int i = 0; i < 5000; i++) { cache.put(new Element(i, i)); if (i % 1000 == 0) { // Force flush the RemoteObjectManager by faulting some stuff in. for (int j = 0; j < 200 && j < i; j++) { cache.get(j); } } } for (int i = 0; i < 10000; i++) { Element e = cache.get(i); if (e != null) { assertEquals(Integer.valueOf(i), e.getObjectValue()); } } }
@Override protected void runTest(Cache cache, ClusteringToolkit clusteringToolkit) throws Throwable { final int index = waitForAllClients(); Assert.assertEquals(0, cache.getSize()); waitForAllClients(); cache.put(new Element("key" + index, "value" + index)); cache.put(new Element("key" + index, "valueUpdated" + index)); cache.remove("key" + index); waitForAllClients(); cache.removeAll(); waitForAllClients(); Thread.sleep(10000); EhcacheTerracottaEventListener listener = null; Set<CacheEventListener> listeners = cache.getCacheEventNotificationService().getCacheEventListeners(); for (CacheEventListener l : listeners) { if (l instanceof EhcacheTerracottaEventListener) { listener = (EhcacheTerracottaEventListener) l; break; } } Assert.assertNotNull(listener); Assert.assertEquals(1, listener.getPut().size()); Assert.assertEquals(1, listener.getUpdate().size()); Assert.assertEquals(1, listener.getRemove().size()); Assert.assertEquals(1, listener.getRemoveAll()); }
/** Are all of the CachePeers for replicated caches bound to the listener and working? */ @Test public void testBoundListenerPeersAfterProgrammaticCacheAdd() throws RemoteException { String[] boundCachePeers = ((RMICacheManagerPeerListener) manager1.getCachePeerListener("RMI")) .listBoundRMICachePeers(); assertEquals(1, boundCachePeers.length); validateBoundCachePeer(boundCachePeers); // Add from default which is has a CacheReplicator configured. RMICacheReplicatorFactory factory = new RMICacheReplicatorFactory(); CacheEventListener replicatingListener = factory.createCacheEventListener(null); Cache cache = new Cache(new CacheConfiguration().name("programmaticallyAdded").maxEntriesLocalHeap(0)); cache.getCacheEventNotificationService().registerListener(replicatingListener); manager1.addCache(cache); boundCachePeers = ((RMICacheManagerPeerListener) manager1.getCachePeerListener("RMI")) .listBoundRMICachePeers(); assertEquals(2, boundCachePeers.length); validateBoundCachePeer(boundCachePeers); }
public RegisteredEventListeners getCacheEventNotificationService() { return cache.getCacheEventNotificationService(); }