/** * Changes the CustomExpiry for idleTimeout for values in the region * * @param custom the new CustomExpiry * @return the old CustomExpiry */ @Override public CustomExpiry setCustomEntryIdleTimeout(CustomExpiry custom) { CustomExpiry expiry = super.setCustomEntryIdleTimeout(custom); // Set to Bucket regions as well dataStore.lockBucketCreationAndVisit( (bucketId, r) -> r.getAttributesMutator().setCustomEntryIdleTimeout(custom)); return expiry; }
@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); }
@Test public void updateWithEntryIdleTime_TimeoutOnly() { RegionAttributesType.ExpirationAttributesType expiration = new RegionAttributesType.ExpirationAttributesType(); regionAttributes.setEntryIdleTime(expiration); expiration.setTimeout("10"); ExpirationAttributes existing = new ExpirationAttributes(20, ExpirationAction.DESTROY); when(region.getEntryIdleTimeout()).thenReturn(existing); function.alterRegion(cache, config); ArgumentCaptor<ExpirationAttributes> updatedCaptor = ArgumentCaptor.forClass(ExpirationAttributes.class); verify(mutator).setEntryIdleTimeout(updatedCaptor.capture()); assertThat(updatedCaptor.getValue().getTimeout()).isEqualTo(10); assertThat(updatedCaptor.getValue().getAction()).isEqualTo(ExpirationAction.DESTROY); verify(mutator, times(0)).setCustomEntryIdleTimeout(any()); }
@Test public void updateWithEntryIdleTime_timeoutAndAction() { RegionAttributesType.ExpirationAttributesType expiration = new RegionAttributesType.ExpirationAttributesType(); regionAttributes.setEntryIdleTime(expiration); expiration.setTimeout("10"); expiration.setAction("invalidate"); ExpirationAttributes existing = new ExpirationAttributes(); when(region.getEntryIdleTimeout()).thenReturn(existing); function.alterRegion(cache, config); ArgumentCaptor<ExpirationAttributes> updatedCaptor = ArgumentCaptor.forClass(ExpirationAttributes.class); verify(mutator).setEntryIdleTimeout(updatedCaptor.capture()); assertThat(updatedCaptor.getValue().getTimeout()).isEqualTo(10); assertThat(updatedCaptor.getValue().getAction()).isEqualTo(ExpirationAction.INVALIDATE); verify(mutator, times(0)).setCustomEntryIdleTimeout(any()); }
p -> mutator.setCustomEntryIdleTimeout(p)); updateExpirationAttributes(cache, regionAttributes.getEntryTimeToLive(), region.getEntryTimeToLive(), p -> mutator.setEntryTimeToLive(p),
mutt.setCustomEntryIdleTimeout(new TestExpiry(key1, expire2)); eet = region.getEntryExpiryTask(key1); final long secondExpiryTime = eet.getExpirationTime(); mutt.setCustomEntryIdleTimeout(new TestExpiry(key1, expire3)); eet = region.getEntryExpiryTask(key1); final long thirdExpiryTime = eet.getExpirationTime(); mutt = region.getAttributesMutator(); ExpirationAttributes expire4 = new ExpirationAttributes(1, INVALIDATE); mutt.setCustomEntryIdleTimeout(new TestExpiry(key1, expire4)); WaitCriterion wc = new WaitCriterion() { @Override
mutator.setCustomEntryIdleTimeout(attrs.getCustomEntryIdleTimeout());
.when(mockAttributesMutator).setCustomEntryIdleTimeout(any(CustomExpiry.class));