@Test public void testBothExpireHintsSpecified() { CacheSettings required = new CacheSettingsBuilder() .expireAfterAccess(60, TimeUnit.SECONDS) .expireAfterWrite(30, TimeUnit.SECONDS) .build(); Cache<String, String> cache = factory.getCache("fruity", null, required); assertThat(cache, not(nullValue())); } }
private static CacheSettings newCacheSettings() throws InvocationTargetException, IllegalAccessException { return new CacheSettingsBuilder() .replicateViaInvalidation() .expireAfterWrite(DEFAULT_CACHE_EXPIRY_IN_SECONDS, TimeUnit.SECONDS) .build(); }
public ClusterMonitoredTaskExecutor(CacheFactory cacheFactory, String name, int maxThreads) { super(name, maxThreads); clusterMonitors = cacheFactory.getCache(TASK_MONITOR_PREFIX + name, null, new CacheSettingsBuilder() // entries should be removed when the local monitor expires, but let's be paranoid .expireAfterWrite(2, TimeUnit.HOURS) .remote() .build()); }
public ClusterLogScanCache(CacheManager cacheManager) { lastScan = cacheManager.getCache("com.atlassian.stp.lastLogScan", null, new CacheSettingsBuilder() .expireAfterWrite(CACHE_EXPIRY_DURATION_MS, TimeUnit.MILLISECONDS) .local() .build()); }
@Test public void testOnEvict() throws Exception { Supplier<String> supplier = mock(Supplier.class); when(supplier.get()).thenReturn("EVICT"); CachedReference<String> reference = factory.getCachedReference("evict", supplier, settingsBuilder().expireAfterAccess(1, TimeUnit.SECONDS).expireAfterWrite(1, TimeUnit.SECONDS).build()); CachedReferenceListener listener = mock(CachedReferenceListener.class); reference.addListener(listener, true); reference.get(); Thread.sleep(EXPIRY_TIMEOUT); reference.get(); ArgumentCaptor<CachedReferenceEvent> captor = ArgumentCaptor.forClass(CachedReferenceEvent.class); verify(listener, timeout(EXPIRY_TIMEOUT).atLeastOnce()).onEvict(captor.capture()); CachedReferenceEvent<String> event = captor.getValue(); assertEquals("EVICT", event.getValue()); }
@Override public boolean updateExpireAfterWrite(long expireAfter, TimeUnit timeUnit) { CacheSettings newCacheSettings = new CacheSettingsBuilder(getCacheSettings()).expireAfterWrite(expireAfter, timeUnit).build(); return cacheManager.updateCacheSettings(getHazelcastMapName(), newCacheSettings); }
@Test public void testOnEvict() throws Exception { CacheLoader<String, String> cacheLoader = mock(CacheLoader.class); when(cacheLoader.load("evict")).thenReturn("EVICT"); Cache<String, String> cache = factory.getCache("EVICT_CACHE", cacheLoader, settingsBuilder().expireAfterAccess(1, TimeUnit.SECONDS).expireAfterWrite(1, TimeUnit.SECONDS).build()); CacheEntryListener<String,String> listener = mock(CacheEntryListener.class); cache.addListener(listener, true); cache.get("evict"); Thread.sleep(2000); cache.get("evict"); ArgumentCaptor<CacheEntryEvent> captor = ArgumentCaptor.forClass(CacheEntryEvent.class); verify(listener, timeout(2000).atLeastOnce()).onEvict(captor.capture()); CacheEntryEvent<String, String> event = captor.getValue(); assertEquals("evict", event.getKey()); if (supportsEvictOldValue()) { assertEquals("EVICT", event.getOldValue()); } else { assertNull(event.getOldValue()); } assertNull(event.getValue()); }
DefaultApplicationRoleManager.class.getName() + ".activeUsersCountForLicense", new ActiveUserCountLoader(), new CacheSettingsBuilder().expireAfterWrite(2, TimeUnit.HOURS).build()); new CacheSettingsBuilder().expireAfterWrite(2, TimeUnit.HOURS).build());