public ExpirationAttributesType(Integer timeout, ExpirationAction action, String expiry, Properties iniProps) { expirationAttributes.setTimeout(Objects.toString(timeout, null)); if (action != null) { expirationAttributes.setAction(action.toXmlString()); } if (expiry != null) { expirationAttributes.setCustomExpiry(new DeclarableType(expiry, iniProps)); } }
public static RegionAttributesType.ExpirationAttributesType getExpirationAttributes( Integer timeout, ExpirationAction action, ClassName<CustomExpiry> expiry) { if (timeout == null && action == null && expiry == null) { return null; } RegionAttributesType.ExpirationAttributesType attributesType = new RegionAttributesType.ExpirationAttributesType(); attributesType.setTimeout(Objects.toString(timeout, "0")); if (action == null) { action = ExpirationAction.INVALIDATE; } attributesType.setAction(action.toXmlString()); if (expiry != null) { attributesType.setCustomExpiry(new DeclarableType(expiry.getClassName())); } return attributesType; }
@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"); }
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; }