@Override
public void addDependency(final String cacheKey, final String dependencyKey) {
if (!isEnabled()) {
return;
}
if (!dependencyCacheExists()) {
LOG.error("Cache configuration is invalid! NOT Caching. Check EH Cache configuration.");
return;
}
LOG.debug("Add dependency from key: {} to key: {}", dependencyKey, cacheKey);
if (dependencyCache.containsKey(dependencyKey)) {
CacheElement<ConcurrentSkipListSet<String>> dependencyElement = dependencyCache.get(dependencyKey);
if (dependencyElement != null && dependencyElement.getPayload() != null) {
ConcurrentSkipListSet<String> cacheSet = dependencyElement.getPayload();
if (!cacheSet.contains(cacheKey)) {
LOG.info("Adding cachekey: {} to dependent key: {}", cacheKey, dependencyKey);
cacheSet.add(cacheKey);
}
dependencyElement.setExpired(false);
dependencyCache.replace(dependencyKey, dependencyElement);
} else {
addNewDependencyCacheElement(cacheKey, dependencyKey);
}
} else {
addNewDependencyCacheElement(cacheKey, dependencyKey);
}
LOG.info("Added or replaced cache element with dependency key: {} and dependent key: {}", dependencyKey,
cacheKey);
}