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); }