private static CacheSettings newCacheSettings() throws InvocationTargetException, IllegalAccessException { return new CacheSettingsBuilder() .replicateViaInvalidation() .expireAfterWrite(DEFAULT_CACHE_EXPIRY_IN_SECONDS, TimeUnit.SECONDS) .build(); }
private Cache<String, Boolean> getSettingsCache(CacheManager cacheManager) { // Use a <String, Boolean> Cache instead of a <Key, Boolean> cache to prevent classloader issues (at least in // Bitbucket Server) CacheLoader<String, Boolean> cacheLoader = new CacheLoader<String, Boolean>() { @Override public Boolean load(@Nonnull String key) { return getBooleanSetting(Key.valueOf(key)); } }; CacheSettings cacheSettings = new CacheSettingsBuilder(). remote(). replicateAsynchronously(). replicateViaInvalidation(). build(); return cacheManager.getCache(CACHE_KEY, cacheLoader, cacheSettings); }
protected CacheSettingsBuilder settingsBuilder(boolean statsEnabled) { final CacheSettingsBuilder bob = new CacheSettingsBuilder(); if (statsEnabled) { bob.statisticsEnabled(); } else { bob.statisticsDisabled(); } if (cacheType == CacheType.LOCAL) { bob.local(); } else if (cacheType == CacheType.REMOTE) { bob.remote(); } else if (cacheType == CacheType.HYBRID) { bob.remote().replicateViaInvalidation(); } return bob; }