use of com.adobe.acs.commons.httpcache.keys.CacheKey in project acs-aem-commons by Adobe-Consulting-Services.
the class EntryNodeToCacheKeyHandler method get.
public CacheKey get() throws RepositoryException, IOException, ClassNotFoundException {
if (entryNode != null) {
final Property cacheKeyProperty = entryNode.getProperty(JCRHttpCacheStoreConstants.PN_CACHEKEY);
final InputStream inputStream = cacheKeyProperty.getBinary().getStream();
final ClassLoader dynamicClassLoader = dynamicClassLoaderManager.getDynamicClassLoader();
final DynamicObjectInputStream dynamicObjectInputStream = new DynamicObjectInputStream(inputStream, dynamicClassLoader);
return (CacheKey) dynamicObjectInputStream.readObject();
}
return null;
}
use of com.adobe.acs.commons.httpcache.keys.CacheKey in project acs-aem-commons by Adobe-Consulting-Services.
the class InvalidateByCacheConfigVisitor method leaving.
protected void leaving(final Node node, int level) throws RepositoryException {
if (isCacheEntryNode(node)) {
// check and remove nodes that are expired.
try {
final CacheKey key = getCacheKey(node);
if (cacheConfig.knows(key)) {
node.remove();
persistSession();
}
} catch (Exception e) {
log.error("Exception occured in retrieving the CacheKey from the entry node", e);
throw new RepositoryException(e);
}
} else if (isEmptyBucketNode(node)) {
// cleanup empty bucket nodes.
node.remove();
persistSession();
}
super.leaving(node, level);
}
use of com.adobe.acs.commons.httpcache.keys.CacheKey in project acs-aem-commons by Adobe-Consulting-Services.
the class HttpCacheEngineImpl method cacheResponse.
@Override
public void cacheResponse(SlingHttpServletRequest request, SlingHttpServletResponse response, HttpCacheConfig cacheConfig) throws HttpCacheKeyCreationException, HttpCacheDataStreamException, HttpCachePersistenceException {
// TODO - This can be made asynchronous to avoid performance penalty on response cache.
CacheContent cacheContent = null;
try {
// Construct the cache content.
HttpCacheServletResponseWrapper responseWrapper = null;
if (response instanceof HttpCacheServletResponseWrapper) {
responseWrapper = (HttpCacheServletResponseWrapper) response;
} else {
throw new AssertionError("Programming error.");
}
CacheKey cacheKey = cacheConfig.buildCacheKey(request);
cacheContent = new CacheContent().build(responseWrapper);
// Persist in cache.
if (isRequestCachableAccordingToHandlingRules(request, response, cacheConfig, cacheContent)) {
getCacheStore(cacheConfig).put(cacheKey, cacheContent);
log.debug("Response for the URI cached - {}", request.getRequestURI());
}
} finally {
// Close the temp sink input stream.
if (null != cacheContent) {
IOUtils.closeQuietly(cacheContent.getInputDataStream());
}
}
}
Aggregations