@Test public void updateWithCustomExpiry() { RegionAttributesType.ExpirationAttributesType expiration = new RegionAttributesType.ExpirationAttributesType(); regionAttributes.setEntryIdleTime(expiration); DeclarableType mockExpiry = mock(DeclarableType.class); when(mockExpiry.getClassName()).thenReturn(MyCustomExpiry.class.getName()); expiration.setCustomExpiry(mockExpiry); function.alterRegion(cache, config); verify(mutator, times(0)).setEntryIdleTimeout(any()); verify(mutator).setCustomEntryIdleTimeout(notNull()); }
@Test public void deleteCustomExpiry() { RegionAttributesType.ExpirationAttributesType expiration = new RegionAttributesType.ExpirationAttributesType(); regionAttributes.setEntryIdleTime(expiration); expiration.setCustomExpiry(DeclarableType.EMPTY); function.alterRegion(cache, config); verify(mutator, times(0)).setEntryIdleTimeout(any()); verify(mutator).setCustomEntryIdleTimeout(null); }
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; }
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; }