@Override public void close() { instance.processors.remove(windowId); region.getAttributesMutator().removeCacheListener(crash); permits.release(MAX_PERMITS); }
@Override @SuppressWarnings("rawtypes") public void removeCacheListener() { AttributesMutator mutator = this.region.getAttributesMutator(); CacheListener[] listeners = this.region.getAttributes().getCacheListeners(); for (int i = 0; i < listeners.length; i++) { if (listeners[i] instanceof SerialSecondaryGatewayListener) { mutator.removeCacheListener(listeners[i]); break; } } }
@Test public void updateWithEmptyCacheListeners() { // suppose region has on listener, and we want to delete that one CacheListener oldOne = mock(CacheListener.class); when(region.getCacheListeners()).thenReturn(new CacheListener[] {oldOne}); regionAttributes.getCacheListeners().add(DeclarableType.EMPTY); function.alterRegion(cache, config); verify(mutator).removeCacheListener(oldOne); verify(mutator, times(0)).addCacheListener(any()); }
@Test public void updateWithCacheListeners() { // suppose region has one cacheListener, and we want to replace the oldOne one with the new one CacheListener oldOne = mock(CacheListener.class); when(region.getCacheListeners()).thenReturn(new CacheListener[] {oldOne}); DeclarableType newCacheListenerType = mock(DeclarableType.class); when(newCacheListenerType.getClassName()).thenReturn(MyCacheListener.class.getName()); regionAttributes.getCacheListeners().add(newCacheListenerType); ArgumentCaptor<CacheListener> argument = ArgumentCaptor.forClass(CacheListener.class); function.alterRegion(cache, config); verify(mutator).removeCacheListener(oldOne); verify(mutator).addCacheListener(argument.capture()); assertThat(argument.getValue()).isInstanceOf(MyCacheListener.class); }
mutator.removeCacheListener(oldCacheListener);
@Override protected void doStop() { if (this.logger.isInfoEnabled()) { this.logger.info("removing MessageProducingCacheListener from GemFire Region '" + this.region.getName() + "'"); } try { this.region.getAttributesMutator().removeCacheListener(this.listener); } catch (CacheClosedException e) { if (this.logger.isDebugEnabled()) { this.logger.debug(e.getMessage(), e); } } }
.when(mockAttributesMutator).removeCacheListener(any(CacheListener.class));