@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());
  }
Beispiel #2
0
    @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());
    }
Beispiel #4
0
  /** 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();
 }