private RegionAttributesType getRegionAttribute(RegionConfig config) { if (config.getRegionAttributes() == null) { config.setRegionAttributes(new RegionAttributesType()); } return config.getRegionAttributes(); }
private RegionAttributesType getRegionAttribute(RegionConfig config) { if (config.getRegionAttributes() == null) { config.setRegionAttributes(new RegionAttributesType()); } return config.getRegionAttributes(); }
@Before public void before() throws Exception { regionAttributes = new RegionAttributesType(); expirationAttributes = new RegionAttributesType.ExpirationAttributesType(); }
@Before public void setUp() throws Exception { function = spy(RegionAlterFunction.class); config = new RegionConfig(); regionAttributes = new RegionAttributesType(); config.setRegionAttributes(regionAttributes); internalCache = mock(InternalCache.class); cache = mock(InternalCacheForClientAccess.class); mutator = mock(AttributesMutator.class); evictionMutator = mock(EvictionAttributesMutator.class); when(mutator.getEvictionAttributesMutator()).thenReturn(evictionMutator); region = mock(AbstractRegion.class); context = mock(FunctionContext.class); when(context.getCache()).thenReturn(internalCache); when(internalCache.getCacheForProcessingClientRequests()).thenReturn(cache); when(context.getArguments()).thenReturn(config); when(context.getMemberName()).thenReturn("member"); when(cache.getRegion(any())).thenReturn(region); when(region.getAttributesMutator()).thenReturn(mutator); }
@Test public void alterWithNoCacheListener() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --cache-listener=''"); List<DeclarableType> cacheListeners = deltaConfig.getRegionAttributes().getCacheListeners(); assertThat(cacheListeners).hasSize(1); assertThat(cacheListeners.get(0)).isEqualTo(DeclarableType.EMPTY); RegionAttributesType existingAttributes = new RegionAttributesType(); existingAttributes.getCacheListeners().add(new DeclarableType("ghi")); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); List<DeclarableType> updatedCacheListeners = existingRegionConfig.getRegionAttributes().getCacheListeners(); assertThat(updatedCacheListeners).hasSize(0); }
@Test public void alterWithCacheListener() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --cache-listener=abc,def"); List<DeclarableType> cacheListeners = deltaConfig.getRegionAttributes().getCacheListeners(); assertThat(cacheListeners).hasSize(2); assertThat(cacheListeners.get(0).getClassName()).isEqualTo("abc"); assertThat(cacheListeners.get(1).getClassName()).isEqualTo("def"); // check that the combined the configuration is created as expected RegionAttributesType existingAttributes = new RegionAttributesType(); existingAttributes.getCacheListeners().add(new DeclarableType("ghi")); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); List<DeclarableType> updatedCacheListeners = existingRegionConfig.getRegionAttributes().getCacheListeners(); assertThat(updatedCacheListeners).hasSize(2); assertThat(updatedCacheListeners.get(0).getClassName()).isEqualTo("abc"); assertThat(updatedCacheListeners.get(1).getClassName()).isEqualTo("def"); assertThat(existingRegionConfig.getRegionAttributes().getEntryIdleTime()).isNull(); }
@Test public void alterWithAsyncEventQueueIds() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --async-event-queue-id=abc,def"); assertThat(deltaConfig.getRegionAttributes().getAsyncEventQueueIds()).isEqualTo("abc,def"); assertThat(deltaConfig.getRegionAttributes().getGatewaySenderIds()).isNull(); RegionAttributesType existingAttributes = new RegionAttributesType(); existingRegionConfig.setRegionAttributes(existingAttributes); existingAttributes.setAsyncEventQueueIds("xyz"); existingAttributes.setGatewaySenderIds("xyz"); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); assertThat(existingAttributes.getGatewaySenderIds()).isEqualTo("xyz"); assertThat(existingAttributes.getAsyncEventQueueIds()).isEqualTo("abc,def"); }
@Test public void alterWithNoAsyncEventQueueIds() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --async-event-queue-id=''"); assertThat(deltaConfig.getRegionAttributes().getAsyncEventQueueIds()).isEqualTo(""); assertThat(deltaConfig.getRegionAttributes().getGatewaySenderIds()).isNull(); RegionAttributesType existingAttributes = new RegionAttributesType(); existingRegionConfig.setRegionAttributes(existingAttributes); existingAttributes.setAsyncEventQueueIds("xyz"); existingAttributes.setGatewaySenderIds("xyz"); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); assertThat(existingAttributes.getGatewaySenderIds()).isEqualTo("xyz"); assertThat(existingAttributes.getAsyncEventQueueIds()).isEqualTo(""); assertThat(existingAttributes.getAsyncEventQueueIdsAsSet()).isNotNull().isEmpty(); }
@Test public void alterWithNoCacheLoader() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --cache-loader=''"); RegionAttributesType deltaAttributes = deltaConfig.getRegionAttributes(); assertThat(deltaAttributes.getCacheLoader()).isEqualTo(DeclarableType.EMPTY); RegionAttributesType existingAttributes = new RegionAttributesType(); existingAttributes.setCacheLoader(new DeclarableType("def")); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); // after the update the cache loader is null assertThat(existingAttributes.getCacheLoader()).isNull(); }
@Test public void alterWithEntryIdleTimeOutCustomExpiry() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --entry-idle-time-custom-expiry=abc"); RegionAttributesType.ExpirationAttributesType entryIdleTime = deltaConfig.getRegionAttributes().getEntryIdleTime(); assertThat(entryIdleTime).isNotNull(); assertThat(entryIdleTime.getTimeout()).isNull(); assertThat(entryIdleTime.getCustomExpiry().getClassName()).isEqualTo("abc"); assertThat(entryIdleTime.getAction()).isNull(); // check that the combined the configuration is created as expected RegionAttributesType existingAttributes = new RegionAttributesType(); RegionAttributesType.ExpirationAttributesType expirationAttributesType = new RegionAttributesType.ExpirationAttributesType(10, ExpirationAction.INVALIDATE, null, null); existingAttributes.setEntryIdleTime(expirationAttributesType); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); RegionAttributesType.ExpirationAttributesType combinedExpirationAttributes = existingRegionConfig.getRegionAttributes().getEntryIdleTime(); assertThat(combinedExpirationAttributes.getTimeout()).isEqualTo("10"); assertThat(combinedExpirationAttributes.getAction()).isEqualTo("invalidate"); assertThat(combinedExpirationAttributes.getCustomExpiry().getClassName()).isEqualTo("abc"); }
@Test public void alterWithEmptyEntryIdleTimeOutCustomExpiry() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --entry-idle-time-custom-expiry=''"); RegionAttributesType.ExpirationAttributesType entryIdleTime = deltaConfig.getRegionAttributes().getEntryIdleTime(); assertThat(entryIdleTime).isNotNull(); assertThat(entryIdleTime.getTimeout()).isNull(); assertThat(entryIdleTime.getCustomExpiry()).isEqualTo(DeclarableType.EMPTY); assertThat(entryIdleTime.getAction()).isNull(); // check that the combined the configuration is created as expected RegionAttributesType existingAttributes = new RegionAttributesType(); RegionAttributesType.ExpirationAttributesType expirationAttributesType = new RegionAttributesType.ExpirationAttributesType(10, ExpirationAction.INVALIDATE, null, null); existingAttributes.setEntryIdleTime(expirationAttributesType); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); RegionAttributesType.ExpirationAttributesType combinedExpirationAttributes = existingRegionConfig.getRegionAttributes().getEntryIdleTime(); assertThat(combinedExpirationAttributes.getTimeout()).isEqualTo("10"); assertThat(combinedExpirationAttributes.getAction()).isEqualTo("invalidate"); assertThat(combinedExpirationAttributes.getCustomExpiry()).isNull(); }
@Test public void alterWithCacheLoader() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --cache-loader=abc"); RegionAttributesType deltaAttributes = deltaConfig.getRegionAttributes(); assertThat(deltaAttributes.getCacheWriter()).isNull(); assertThat(deltaAttributes.getCacheLoader().getClassName()).isEqualTo("abc"); assertThat(deltaAttributes.getCacheListeners()).isNotNull().isEmpty(); RegionAttributesType existingAttributes = new RegionAttributesType(); existingAttributes.getCacheListeners().add(new DeclarableType("def")); existingAttributes.setCacheLoader(new DeclarableType("def")); existingAttributes.setCacheWriter(new DeclarableType("def")); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); // after update, the cache listeners remains the same assertThat(existingAttributes.getCacheListeners()).hasSize(1); assertThat(existingAttributes.getCacheListeners().get(0).getClassName()).isEqualTo("def"); // after update the cache writer remains the same assertThat(existingAttributes.getCacheWriter().getClassName()).isEqualTo("def"); // after update the cache loader is changed assertThat(existingAttributes.getCacheLoader().getClassName()).isEqualTo("abc"); }
@Test public void alterWithEntryIdleTimeOut() { // check that the deltaConfig is created as expected RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --entry-idle-time-expiration=7"); RegionAttributesType.ExpirationAttributesType entryIdleTime = deltaConfig.getRegionAttributes().getEntryIdleTime(); assertThat(entryIdleTime).isNotNull(); assertThat(entryIdleTime.getTimeout()).isEqualTo("7"); assertThat(entryIdleTime.getCustomExpiry()).isNull(); assertThat(entryIdleTime.getAction()).isNull(); // check that the combined the configuration is created as expected RegionAttributesType existingAttributes = new RegionAttributesType(); RegionAttributesType.ExpirationAttributesType expirationAttributesType = new RegionAttributesType.ExpirationAttributesType(10, ExpirationAction.DESTROY, null, null); existingAttributes.setEntryIdleTime(expirationAttributesType); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); RegionAttributesType.ExpirationAttributesType combinedExpirationAttributes = existingRegionConfig.getRegionAttributes().getEntryIdleTime(); assertThat(combinedExpirationAttributes.getTimeout()).isEqualTo("7"); assertThat(combinedExpirationAttributes.getAction()).isEqualTo("destroy"); assertThat(combinedExpirationAttributes.getCustomExpiry()).isNull(); }
@Test public void alterWithEntryIdleTimeOutAction() { RegionConfig deltaConfig = getDeltaRegionConfig( "alter region --name=regionA --entry-idle-time-expiration-action=destroy"); RegionAttributesType.ExpirationAttributesType entryIdleTime = deltaConfig.getRegionAttributes().getEntryIdleTime(); assertThat(entryIdleTime).isNotNull(); assertThat(entryIdleTime.getTimeout()).isNull(); assertThat(entryIdleTime.getCustomExpiry()).isNull(); assertThat(entryIdleTime.getAction()).isEqualTo("destroy"); // check that the combined the configuration is created as expected RegionAttributesType existingAttributes = new RegionAttributesType(); RegionAttributesType.ExpirationAttributesType expirationAttributesType = new RegionAttributesType.ExpirationAttributesType(10, ExpirationAction.INVALIDATE, null, null); existingAttributes.setEntryIdleTime(expirationAttributesType); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); RegionAttributesType.ExpirationAttributesType combinedExpirationAttributes = existingRegionConfig.getRegionAttributes().getEntryIdleTime(); assertThat(combinedExpirationAttributes.getTimeout()).isEqualTo("10"); assertThat(combinedExpirationAttributes.getAction()).isEqualTo("destroy"); assertThat(combinedExpirationAttributes.getCustomExpiry()).isNull(); }
@Test public void regionConfig() { cacheConfig = new CacheConfig("1.0"); RegionConfig regionConfig = new RegionConfig(); regionConfig.setName("test"); regionConfig.setType("REPLICATE"); RegionAttributesType attributes = new RegionAttributesType(); attributes.setCacheLoader(new DeclarableType("abc.Foo")); regionConfig.setRegionAttributes(attributes); cacheConfig.getRegions().add(regionConfig); // make sure the xml marshed by this config can be validated with xsd String xml = service.marshall(cacheConfig); CacheConfig newCache = service.unMarshall(xml); assertThat(cacheConfig).isEqualToComparingFieldByFieldRecursively(newCache); }
@Test public void alterWithEvictionMaxWithExistingLruHeapPercentage() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --eviction-max=20"); // we are saving the eviction-max as a lruEntryCount's maximum value RegionAttributesType.EvictionAttributes.LruEntryCount lruEntryCount = deltaConfig.getRegionAttributes().getEvictionAttributes().getLruEntryCount(); assertThat(lruEntryCount.getMaximum()).isEqualTo("20"); // when there is no eviction attributes at all RegionAttributesType existingAttributes = new RegionAttributesType(); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); assertThat(existingAttributes.getEvictionAttributes()).isNull(); // when there is lruHeapPercentage eviction RegionAttributesType.EvictionAttributes evictionAttributes = new RegionAttributesType.EvictionAttributes(); evictionAttributes .setLruHeapPercentage(new RegionAttributesType.EvictionAttributes.LruHeapPercentage()); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); assertThat(evictionAttributes.getLruEntryCount()).isNull(); assertThat(evictionAttributes.getLruMemorySize()).isNull(); }
@Test public void alterWithEvictionMaxWithExistingLruEntryCount() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --eviction-max=20"); // we are saving the eviction-max as a lruEntryCount's maximum value RegionAttributesType.EvictionAttributes.LruEntryCount lruEntryCount = deltaConfig.getRegionAttributes().getEvictionAttributes().getLruEntryCount(); assertThat(lruEntryCount.getMaximum()).isEqualTo("20"); // when there is no eviction attributes at all RegionAttributesType existingAttributes = new RegionAttributesType(); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); assertThat(existingAttributes.getEvictionAttributes()).isNull(); // when there is lruHeapPercentage eviction RegionAttributesType.EvictionAttributes evictionAttributes = new RegionAttributesType.EvictionAttributes(); existingAttributes.setEvictionAttributes(evictionAttributes); RegionAttributesType.EvictionAttributes.LruEntryCount existingEntryCount = new RegionAttributesType.EvictionAttributes.LruEntryCount(); existingEntryCount.setMaximum("100"); existingEntryCount.setAction(EnumActionDestroyOverflow.LOCAL_DESTROY); evictionAttributes.setLruEntryCount(existingEntryCount); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); assertThat(evictionAttributes.getLruEntryCount().getMaximum()).isEqualTo("20"); assertThat(evictionAttributes.getLruEntryCount().getAction()) .isEqualTo(EnumActionDestroyOverflow.LOCAL_DESTROY); }
@Test public void alterWithEvictionMaxWithExistingLruMemory() { RegionConfig deltaConfig = getDeltaRegionConfig("alter region --name=regionA --eviction-max=20"); // we are saving the eviction-max as a lruEntryCount's maximum value RegionAttributesType.EvictionAttributes.LruEntryCount lruEntryCount = deltaConfig.getRegionAttributes().getEvictionAttributes().getLruEntryCount(); assertThat(lruEntryCount.getMaximum()).isEqualTo("20"); // when there is no eviction attributes at all RegionAttributesType existingAttributes = new RegionAttributesType(); existingRegionConfig.setRegionAttributes(existingAttributes); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); assertThat(existingAttributes.getEvictionAttributes()).isNull(); // when there is lruHeapPercentage eviction RegionAttributesType.EvictionAttributes evictionAttributes = new RegionAttributesType.EvictionAttributes(); existingAttributes.setEvictionAttributes(evictionAttributes); RegionAttributesType.EvictionAttributes.LruMemorySize existingMemorySize = new RegionAttributesType.EvictionAttributes.LruMemorySize(); existingMemorySize.setMaximum("100"); existingMemorySize.setAction(EnumActionDestroyOverflow.LOCAL_DESTROY); evictionAttributes.setLruMemorySize(existingMemorySize); command.updateConfigForGroup("cluster", cacheConfig, deltaConfig); assertThat(evictionAttributes.getLruMemorySize().getMaximum()).isEqualTo("20"); assertThat(evictionAttributes.getLruMemorySize().getAction()) .isEqualTo(EnumActionDestroyOverflow.LOCAL_DESTROY); }
RegionAttributesType regionAttributesType = new RegionAttributesType(); deltaConfig.setRegionAttributes(regionAttributesType); regionAttributesType.setEntryIdleTime(getExpirationAttributes(entryExpirationIdleTime,
private void setShortcutAttributes() { if (regionAttributes == null) { regionAttributes = new RegionAttributesType();