in jetcache-core/src/main/java/com/alicp/jetcache/SimpleCacheManager.java [151:188]
private Cache buildRemote(QuickConfig config) {
ExternalCacheBuilder cacheBuilder = (ExternalCacheBuilder) cacheBuilderTemplate
.getCacheBuilder(1, config.getArea());
if (cacheBuilder == null) {
throw new CacheConfigException("no remote cache builder: " + config.getArea());
}
if (config.getExpire() != null && config.getExpire().toMillis() > 0) {
cacheBuilder.expireAfterWrite(config.getExpire().toMillis(), TimeUnit.MILLISECONDS);
}
String prefix;
if (config.getUseAreaInPrefix() != null && config.getUseAreaInPrefix()) {
prefix = config.getArea() + "_" + config.getName();
} else {
prefix = config.getName();
}
if (cacheBuilder.getConfig().getKeyPrefixSupplier() != null) {
Supplier<String> supplier = cacheBuilder.getConfig().getKeyPrefixSupplier();
cacheBuilder.setKeyPrefixSupplier(() -> supplier.get() + prefix);
} else {
cacheBuilder.setKeyPrefix(prefix);
}
if (config.getKeyConvertor() != null) {
cacheBuilder.getConfig().setKeyConvertor(config.getKeyConvertor());
}
if (config.getValueEncoder() != null) {
cacheBuilder.getConfig().setValueEncoder(config.getValueEncoder());
}
if (config.getValueDecoder() != null) {
cacheBuilder.getConfig().setValueDecoder(config.getValueDecoder());
}
cacheBuilder.setCacheNullValue(config.getCacheNullValue() != null ?
config.getCacheNullValue() : DEFAULT_CACHE_NULL_VALUE);
return cacheBuilder.buildCache();
}