int existingTimeout = existingAttributes.getTimeout(); ExpirationAction existingAction = existingAttributes.getAction(); if (newAttributes.getTimeout() != null) { existingTimeout = Integer.parseInt(newAttributes.getTimeout());
@Test public void constructorWithParameter() { expirationAttributes = new RegionAttributesType.ExpirationAttributesType(null, ExpirationAction.DESTROY, null, null); assertThat(expirationAttributes.getAction()).isEqualTo("destroy"); assertThat(expirationAttributes.getTimeout()).isNull(); assertThat(expirationAttributes.getCustomExpiry()).isNull(); assertThat(expirationAttributes.hasTimoutOrAction()).isTrue(); assertThat(expirationAttributes.hasCustomExpiry()).isFalse(); expirationAttributes = new RegionAttributesType.ExpirationAttributesType(10, null, null, null); assertThat(expirationAttributes.getAction()).isNull(); assertThat(expirationAttributes.getTimeout()).isEqualTo("10"); assertThat(expirationAttributes.getCustomExpiry()).isNull(); assertThat(expirationAttributes.hasTimoutOrAction()).isTrue(); assertThat(expirationAttributes.hasCustomExpiry()).isFalse(); expirationAttributes = new RegionAttributesType.ExpirationAttributesType(null, null, "abc", null); assertThat(expirationAttributes.getAction()).isNull(); assertThat(expirationAttributes.getTimeout()).isNull(); assertThat(expirationAttributes.getCustomExpiry()).isNotNull(); assertThat(expirationAttributes.hasTimoutOrAction()).isFalse(); assertThat(expirationAttributes.hasCustomExpiry()).isTrue(); }
RegionAttributesType.ExpirationAttributesType entryTimeToLive = regionConfig.getRegionAttributes().getEntryTimeToLive(); assertThat(entryTimeToLive.getTimeout()).isEqualTo("10"); assertThat(entryTimeToLive.getAction()).isEqualTo("destroy"); assertThat(entryTimeToLive.getCustomExpiry().getClassName()).isEqualTo("foo"); RegionAttributesType.ExpirationAttributesType regionTimeToLive = regionConfig.getRegionAttributes().getRegionTimeToLive(); assertThat(regionTimeToLive.getTimeout()).isEqualTo("20"); assertThat(regionTimeToLive.getAction()).isEqualTo("invalidate"); assertThat(regionTimeToLive.getCustomExpiry().getClassName()).isEqualTo("bar");
RegionAttributesType.ExpirationAttributesType eitl = regionAttributes.getEntryIdleTime(); ((RegionFactory<Object, Object>) factory).setEntryIdleTimeout( new ExpirationAttributes(Integer.valueOf(eitl.getTimeout()), ExpirationAction.fromXmlString(eitl.getAction()))); RegionAttributesType.ExpirationAttributesType ettl = regionAttributes.getEntryTimeToLive(); ((RegionFactory<Object, Object>) factory).setEntryTimeToLive( new ExpirationAttributes(Integer.valueOf(ettl.getTimeout()), ExpirationAction.fromXmlString(ettl.getAction()))); RegionAttributesType.ExpirationAttributesType ritl = regionAttributes.getRegionIdleTime(); ((RegionFactory<Object, Object>) factory).setRegionIdleTimeout( new ExpirationAttributes(Integer.valueOf(ritl.getTimeout()), ExpirationAction.fromXmlString(ritl.getAction()))); RegionAttributesType.ExpirationAttributesType rttl = regionAttributes.getRegionTimeToLive(); ((RegionFactory<Object, Object>) factory).setRegionTimeToLive( new ExpirationAttributes(Integer.valueOf(rttl.getTimeout()), ExpirationAction.fromXmlString(rttl.getAction())));
@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 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 generatesWithExpirationIdleTimeAttributes() { regionExpirationTTL = 10; regionExpirationTTLAction = ExpirationAction.DESTROY; regionExpirationIdleTime = 3; regionExpirationIdleAction = ExpirationAction.INVALIDATE; entryExpirationTTL = 1; entryExpirationTTLAction = ExpirationAction.LOCAL_DESTROY; entryExpirationIdleTime = 12; entryExpirationIdleAction = ExpirationAction.LOCAL_DESTROY; entryIdleTimeCustomExpiry = new ClassName<>("java.lang.String"); generate(); RegionAttributesType.ExpirationAttributesType regionTimeToLive = config.getRegionAttributes().getRegionTimeToLive(); assertThat(regionTimeToLive.getTimeout()).isEqualTo("10"); RegionAttributesType.ExpirationAttributesType entryTimeToLive = config.getRegionAttributes().getEntryTimeToLive(); assertThat(entryTimeToLive.getAction()) .isEqualTo(ExpirationAction.LOCAL_DESTROY.toXmlString()); RegionAttributesType.ExpirationAttributesType entryIdleTime = config.getRegionAttributes().getEntryIdleTime(); DeclarableType customExpiry = entryIdleTime.getCustomExpiry(); assertThat(customExpiry.getClassName()).isEqualTo("java.lang.String"); assertThat(entryIdleTime.getAction()) .isEqualTo(ExpirationAction.LOCAL_DESTROY.toXmlString()); assertThat(entryIdleTime.getTimeout()) .isEqualTo("12"); }
@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 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(); }
ExpirationAttributesType combine(ExpirationAttributesType existing, ExpirationAttributesType delta) { if (delta == null) { return existing; } if (existing == null) { existing = new ExpirationAttributesType(); existing.setAction(ExpirationAction.INVALIDATE.toXmlString()); existing.setTimeout("0"); } if (delta.getTimeout() != null) { existing.setTimeout(delta.getTimeout()); } if (delta.getAction() != null) { existing.setAction(delta.getAction()); } if (delta.getCustomExpiry() != null) { if (delta.getCustomExpiry().equals(DeclarableType.EMPTY)) { existing.setCustomExpiry(null); } else { existing.setCustomExpiry(delta.getCustomExpiry()); } } return existing; }
@Test public void emptyConstructor() { expirationAttributes = new RegionAttributesType.ExpirationAttributesType(); assertThat(expirationAttributes.getAction()).isNull(); assertThat(expirationAttributes.getTimeout()).isNull(); assertThat(expirationAttributes.getCustomExpiry()).isNull(); }
/** * @return true if timeout or action is specified */ public boolean hasTimoutOrAction() { return (getTimeout() != null || getAction() != null); }