/** * Stops a listener. This is used to deregister a failover after primary reconnection. * <p> * @param cacheName * @throws IOException */ public void removeRemoteCacheListener( String cacheName ) throws IOException { synchronized ( caches ) { RemoteCacheNoWait<?, ?> cache = caches.get( cacheName ); if ( cache != null ) { IRemoteCacheClient<?, ?> rc = cache.getRemoteCache(); if ( log.isDebugEnabled() ) { log.debug( "Found cache for [" + cacheName + "], deregistering listener." ); } // could also store the listener for a server in the manager. IRemoteCacheListener<?, ?> listener = rc.getListener(); remoteWatch.removeCacheListener( cacheName, listener ); } } }
private void removeListenerFromCache(RemoteCacheNoWait<?, ?> cache) throws IOException { IRemoteCacheClient<?, ?> rc = cache.getRemoteCache(); if ( log.isDebugEnabled() ) { log.debug( "Found cache for [" + cache.getCacheName() + "], deregistering listener." ); } // could also store the listener for a server in the manager. IRemoteCacheListener<?, ?> listener = rc.getListener(); remoteWatch.removeCacheListener( cache.getCacheName(), listener ); }
/** * Constructs with the given remote cache, and fires events to any listeners. * <p> * @param noWaits * @param rca * @param cacheMgr * @param cacheEventLogger * @param elementSerializer * @deprecated Unused parameter cacheMgr scheduled for removal */ @Deprecated public AbstractRemoteCacheNoWaitFacade( List<ICache<K, V>> noWaits, RemoteCacheAttributes rca, ICompositeCacheManager cacheMgr, ICacheEventLogger cacheEventLogger, IElementSerializer elementSerializer ) { if ( log.isDebugEnabled() ) { log.debug( "CONSTRUCTING NO WAIT FACADE" ); } this.remoteCacheAttributes = rca; setCacheEventLogger( cacheEventLogger ); setElementSerializer( elementSerializer ); this.noWaits = new ArrayList<RemoteCacheNoWait<K,V>>(); for (ICache<K, V> nw : noWaits) { RemoteCacheNoWait<K,V> rcnw = (RemoteCacheNoWait<K,V>)nw; ((RemoteCache<K, V>)rcnw.getRemoteCache()).setFacade(this); this.noWaits.add(rcnw); } }
/** * Constructs with the given remote cache, and fires events to any listeners. * <p> * @param noWaits * @param rca * @param cacheEventLogger * @param elementSerializer */ public AbstractRemoteCacheNoWaitFacade( List<RemoteCacheNoWait<K,V>> noWaits, IRemoteCacheAttributes rca, ICacheEventLogger cacheEventLogger, IElementSerializer elementSerializer ) { if ( log.isDebugEnabled() ) { log.debug( "CONSTRUCTING NO WAIT FACADE" ); } this.remoteCacheAttributes = rca; setCacheEventLogger( cacheEventLogger ); setElementSerializer( elementSerializer ); this.noWaits = new ArrayList<RemoteCacheNoWait<K,V>>(noWaits); for (RemoteCacheNoWait<K,V> nw : this.noWaits) { // FIXME: This cast is very brave. Remove this. ((RemoteCache<K, V>)nw.getRemoteCache()).setFacade(this); } }
if ( cache != null ) IRemoteCacheClient<?, ?> rc = cache.getRemoteCache(); if ( log.isDebugEnabled() )
/** * Verify that we can add an item. */ public void testAddNoWait_InList() { // SETUP List<RemoteCacheNoWait<String, String>> noWaits = new ArrayList<RemoteCacheNoWait<String,String>>(); IRemoteCacheAttributes cattr = new RemoteCacheAttributes(); cattr.setCacheName( "testCache1" ); RemoteCache<String, String> client = new RemoteCache<String, String>(cattr, null, null, null); RemoteCacheNoWait<String, String> noWait = new RemoteCacheNoWait<String, String>( client ); noWaits.add( noWait ); RemoteCacheNoWaitFacade<String, String> facade = new RemoteCacheNoWaitFacade<String, String>(noWaits, cattr, null, null, null ); // VERIFY assertEquals( "Should have one entry.", 1, facade.noWaits.size() ); assertTrue( "Should be in the list.", facade.noWaits.contains( noWait ) ); assertSame( "Should have same facade.", facade, ((RemoteCache<String, String>)facade.noWaits.get(0).getRemoteCache()).getFacade() ); } }