/** * Subscribes to all remote caches. * <p> * @param listener The feature to be added to the CacheListener attribute * @throws IOException */ @Override public <KK, VV> void addCacheListener( ICacheListener<KK, VV> listener ) throws IOException { for (String cacheName : cacheListenersMap.keySet()) { addCacheListener( cacheName, listener ); if ( log.isDebugEnabled() ) { log.debug( "Adding listener for cache [" + cacheName + "]" ); } } }
/** * Subscribes to all remote caches. * <p> * @param listener The feature to be added to the CacheListener attribute * @throws IOException */ @Override public <KK, VV> void addCacheListener( ICacheListener<KK, VV> listener ) throws IOException { for (String cacheName : cacheListenersMap.keySet()) { addCacheListener( cacheName, listener ); if ( log.isDebugEnabled() ) { log.debug( "Adding listener for cache [" + cacheName + "]" ); } } }
/** * Register a listener and then verify that it is called when we put using a different listener * id. * @throws Exception */ public void testSimpleRegisterListenerAndRemove() throws Exception { MockRemoteCacheListener<String, String> mockListener = new MockRemoteCacheListener<String, String>(); String cacheName = "testSimpleRegisterListenerAndPut"; server.addCacheListener( cacheName, mockListener ); // DO WORK int numToPut = 10; for ( int i = 0; i < numToPut; i++ ) { // use a junk listener id server.remove( cacheName, String.valueOf( i ), 9999 ); } Thread.sleep( 100 ); Thread.yield(); Thread.sleep( 100 ); // VERIFY assertEquals( "Wrong number of items removed from listener.", numToPut, mockListener.removedKeys.size() ); for ( int i = 0; i < numToPut; i++ ) { assertEquals( "Wrong key.", String.valueOf( i ), mockListener.removedKeys.get( i ) ); } }
/** * Register a listener and then verify that it is called when we put using a different listener * id. * @throws Exception */ public void testSimpleRegisterListenerAndRemove() throws Exception { MockRemoteCacheListener<String, String> mockListener = new MockRemoteCacheListener<String, String>(); String cacheName = "testSimpleRegisterListenerAndPut"; server.addCacheListener( cacheName, mockListener ); // DO WORK int numToPut = 10; for ( int i = 0; i < numToPut; i++ ) { // use a junk listener id server.remove( cacheName, String.valueOf( i ), 9999 ); } Thread.sleep( 100 ); Thread.yield(); Thread.sleep( 100 ); // VERIFY assertEquals( "Wrong number of items removed from listener.", numToPut, mockListener.removedKeys.size() ); for ( int i = 0; i < numToPut; i++ ) { assertEquals( "Wrong key.", String.valueOf( i ), mockListener.removedKeys.get( i ) ); } }
server.addCacheListener( cacheName, mockListener );
server.addCacheListener( cacheName, mockListener );
server.addCacheListener( cacheName, clusterListener ); server.addCacheListener( cacheName, localListener );
server.addCacheListener( cacheName, clusterListener ); server.addCacheListener( cacheName, localListener );
/** * Add a listener. Pass the id of 0, verify that the server sets a new listener id. Do another * and verify that the second gets an id of 2. Call remove Listener and verify that it is * removed. * <p> * @throws Exception */ public void testAddListener_ToAllThenRemove() throws Exception { MockRemoteCacheListener<String, String> mockListener1 = new MockRemoteCacheListener<String, String>(); MockRemoteCacheListener<String, String> mockListener2 = new MockRemoteCacheListener<String, String>(); String cacheName = "testAddListenerToAllThenRemove"; // DO WORK server.addCacheListener( cacheName, mockListener1 ); server.addCacheListener( cacheName, mockListener2 ); // VERIFY assertEquals( "Wrong number of listeners.", 2, server.getCacheListeners( cacheName ).eventQMap.size() ); assertEquals( "Wrong listener id.", 1, mockListener1.getListenerId() ); assertEquals( "Wrong listener id.", 2, mockListener2.getListenerId() ); // DO WORK server.removeCacheListener( cacheName, mockListener1.getListenerId() ); assertEquals( "Wrong number of listeners.", 1, server.getCacheListeners( cacheName ).eventQMap.size() ); }
/** * Add a listener. Pass the id of 0, verify that the server sets a new listener id. Do another * and verify that the second gets an id of 2. Call remove Listener and verify that it is * removed. * <p> * @throws Exception */ public void testAddListener_ToAllThenRemove() throws Exception { MockRemoteCacheListener<String, String> mockListener1 = new MockRemoteCacheListener<String, String>(); MockRemoteCacheListener<String, String> mockListener2 = new MockRemoteCacheListener<String, String>(); String cacheName = "testAddListenerToAllThenRemove"; // DO WORK server.addCacheListener( cacheName, mockListener1 ); server.addCacheListener( cacheName, mockListener2 ); // VERIFY assertEquals( "Wrong number of listeners.", 2, server.getCacheListeners( cacheName ).eventQMap.size() ); assertEquals( "Wrong listener id.", 1, mockListener1.getListenerId() ); assertEquals( "Wrong listener id.", 2, mockListener2.getListenerId() ); // DO WORK server.removeCacheListener( cacheName, mockListener1.getListenerId() ); assertEquals( "Wrong number of listeners.", 1, server.getCacheListeners( cacheName ).eventQMap.size() ); }
/** * Add a listener. Pass the id of 0, verify that the server sets a new listener id. Do another * and verify that the second gets an id of 2. * <p> * @throws Exception */ public void testAddListenerToCache_LOCALtype() throws Exception { MockRemoteCacheListener<String, String> mockListener1 = new MockRemoteCacheListener<String, String>(); mockListener1.remoteType = RemoteType.LOCAL; mockListener1.localAddress = expectedIp1; MockRemoteCacheListener<String, String> mockListener2 = new MockRemoteCacheListener<String, String>(); mockListener1.remoteType = RemoteType.LOCAL; mockListener2.localAddress = expectedIp2; String cacheName = "testAddListener"; // DO WORK server.addCacheListener( cacheName, mockListener1 ); server.addCacheListener( cacheName, mockListener2 ); // VERIFY assertEquals( "Wrong listener id.", 1, mockListener1.getListenerId() ); assertEquals( "Wrong listener id.", 2, mockListener2.getListenerId() ); assertEquals( "Wrong ip.", expectedIp1, server.getExtraInfoForRequesterId( 1 ) ); assertEquals( "Wrong ip.", expectedIp2, server.getExtraInfoForRequesterId( 2 ) ); }
/** * Add a listener. Pass the id of 0, verify that the server sets a new listener id. Do another * and verify that the second gets an id of 2. * <p> * @throws Exception */ public void testAddListenerToCache_CLUSTERtype() throws Exception { MockRemoteCacheListener<String, String> mockListener1 = new MockRemoteCacheListener<String, String>(); mockListener1.remoteType = RemoteType.CLUSTER; mockListener1.localAddress = expectedIp1; MockRemoteCacheListener<String, String> mockListener2 = new MockRemoteCacheListener<String, String>(); mockListener1.remoteType = RemoteType.CLUSTER; mockListener2.localAddress = expectedIp2; String cacheName = "testAddListener"; // DO WORK server.addCacheListener( cacheName, mockListener1 ); server.addCacheListener( cacheName, mockListener2 ); // VERIFY assertEquals( "Wrong listener id.", 1, mockListener1.getListenerId() ); assertEquals( "Wrong listener id.", 2, mockListener2.getListenerId() ); assertEquals( "Wrong ip.", expectedIp1, server.getExtraInfoForRequesterId( 1 ) ); assertEquals( "Wrong ip.", expectedIp2, server.getExtraInfoForRequesterId( 2 ) ); }
/** * Add a listener. Pass the id of 0, verify that the server sets a new listener id. Do another * and verify that the second gets an id of 2. * <p> * @throws Exception */ public void testAddListenerToCache_CLUSTERtype() throws Exception { MockRemoteCacheListener<String, String> mockListener1 = new MockRemoteCacheListener<String, String>(); mockListener1.remoteType = RemoteType.CLUSTER; mockListener1.localAddress = expectedIp1; MockRemoteCacheListener<String, String> mockListener2 = new MockRemoteCacheListener<String, String>(); mockListener1.remoteType = RemoteType.CLUSTER; mockListener2.localAddress = expectedIp2; String cacheName = "testAddListener"; // DO WORK server.addCacheListener( cacheName, mockListener1 ); server.addCacheListener( cacheName, mockListener2 ); // VERIFY assertEquals( "Wrong listener id.", 1, mockListener1.getListenerId() ); assertEquals( "Wrong listener id.", 2, mockListener2.getListenerId() ); assertEquals( "Wrong ip.", expectedIp1, server.getExtraInfoForRequesterId( 1 ) ); assertEquals( "Wrong ip.", expectedIp2, server.getExtraInfoForRequesterId( 2 ) ); }
/** * Add a listener. Pass the id of 0, verify that the server sets a new listener id. Do another * and verify that the second gets an id of 2. * <p> * @throws Exception */ public void testAddListenerToCache_LOCALtype() throws Exception { MockRemoteCacheListener<String, String> mockListener1 = new MockRemoteCacheListener<String, String>(); mockListener1.remoteType = RemoteType.LOCAL; mockListener1.localAddress = expectedIp1; MockRemoteCacheListener<String, String> mockListener2 = new MockRemoteCacheListener<String, String>(); mockListener1.remoteType = RemoteType.LOCAL; mockListener2.localAddress = expectedIp2; String cacheName = "testAddListener"; // DO WORK server.addCacheListener( cacheName, mockListener1 ); server.addCacheListener( cacheName, mockListener2 ); // VERIFY assertEquals( "Wrong listener id.", 1, mockListener1.getListenerId() ); assertEquals( "Wrong listener id.", 2, mockListener2.getListenerId() ); assertEquals( "Wrong ip.", expectedIp1, server.getExtraInfoForRequesterId( 1 ) ); assertEquals( "Wrong ip.", expectedIp2, server.getExtraInfoForRequesterId( 2 ) ); }
/** * Add a listener. Pass the id of 0, verify that the server sets a new listener id. Do another * and verify that the second gets an id of 2. Call remove Listener and verify that it is * removed. * <p> * @throws Exception */ public void testAddListener_ToAllThenRemove_clusterType() throws Exception { MockRemoteCacheListener<String, String> mockListener1 = new MockRemoteCacheListener<String, String>(); mockListener1.remoteType = RemoteType.CLUSTER; MockRemoteCacheListener<String, String> mockListener2 = new MockRemoteCacheListener<String, String>(); mockListener2.remoteType = RemoteType.CLUSTER; String cacheName = "testAddListenerToAllThenRemove"; // DO WORK server.addCacheListener( cacheName, mockListener1 ); server.addCacheListener( cacheName, mockListener2 ); // VERIFY assertEquals( "Wrong number of listeners.", 0, server.getCacheListeners( cacheName ).eventQMap.size() ); assertEquals( "Wrong number of listeners.", 2, server.getClusterListeners( cacheName ).eventQMap.size() ); assertEquals( "Wrong listener id.", 1, mockListener1.getListenerId() ); assertEquals( "Wrong listener id.", 2, mockListener2.getListenerId() ); // DO WORK server.removeCacheListener( cacheName, mockListener1.getListenerId() ); assertEquals( "Wrong number of listeners.", 1, server.getClusterListeners( cacheName ).eventQMap.size() ); assertNull( "Should be no entry in the ip map.", server.getExtraInfoForRequesterId( 1 ) ); }
/** * Add a listener. Pass the id of 0, verify that the server sets a new listener id. Do another * and verify that the second gets an id of 2. Call remove Listener and verify that it is * removed. * <p> * @throws Exception */ public void testAddListener_ToAllThenRemove_clusterType() throws Exception { MockRemoteCacheListener<String, String> mockListener1 = new MockRemoteCacheListener<String, String>(); mockListener1.remoteType = RemoteType.CLUSTER; MockRemoteCacheListener<String, String> mockListener2 = new MockRemoteCacheListener<String, String>(); mockListener2.remoteType = RemoteType.CLUSTER; String cacheName = "testAddListenerToAllThenRemove"; // DO WORK server.addCacheListener( cacheName, mockListener1 ); server.addCacheListener( cacheName, mockListener2 ); // VERIFY assertEquals( "Wrong number of listeners.", 0, server.getCacheListeners( cacheName ).eventQMap.size() ); assertEquals( "Wrong number of listeners.", 2, server.getClusterListeners( cacheName ).eventQMap.size() ); assertEquals( "Wrong listener id.", 1, mockListener1.getListenerId() ); assertEquals( "Wrong listener id.", 2, mockListener2.getListenerId() ); // DO WORK server.removeCacheListener( cacheName, mockListener1.getListenerId() ); assertEquals( "Wrong number of listeners.", 1, server.getClusterListeners( cacheName ).eventQMap.size() ); assertNull( "Should be no entry in the ip map.", server.getExtraInfoForRequesterId( 1 ) ); }
server.addCacheListener(regionName, listener);
server.addCacheListener(cache.getCacheName(), listener);
server.addCacheListener(regionName, listener);
server.addCacheListener(cache.getCacheName(), listener);