use of com.adobe.acs.commons.httpcache.store.jcr.impl.handler.BucketNodeHandler in project acs-aem-commons by Adobe-Consulting-Services.
the class JCRHttpCacheStoreImpl method getIfPresent.
@Override
public CacheContent getIfPresent(final CacheKey key) {
final long currentTime = System.currentTimeMillis();
incrementRequestCount();
return withSession(new Function<Session, CacheContent>() {
@Override
public CacheContent apply(Session session) throws Exception {
final BucketNodeFactory factory = new BucketNodeFactory(session, cacheRootPath, key, bucketTreeDepth);
final Node bucketNode = factory.getBucketNode();
if (bucketNode != null) {
final Node entryNode = new BucketNodeHandler(bucketNode, dclm).getEntryIfExists(key);
final CacheContent content = new EntryNodeToCacheContentHandler(entryNode).get();
if (content != null) {
incrementTotalLookupTime(System.currentTimeMillis() - currentTime);
incrementHitCount();
return content;
}
}
incrementTotalLookupTime(System.currentTimeMillis() - currentTime);
incrementMissCount();
return null;
}
});
}
use of com.adobe.acs.commons.httpcache.store.jcr.impl.handler.BucketNodeHandler in project acs-aem-commons by Adobe-Consulting-Services.
the class JCRHttpCacheStoreImpl method put.
@Override
public void put(final CacheKey key, final CacheContent content) throws HttpCacheDataStreamException {
final long currentTime = System.currentTimeMillis();
incrementLoadCount();
withSession(new Consumer<Session>() {
@Override
public void accept(Session session) throws Exception {
final BucketNodeFactory factory = new BucketNodeFactory(session, cacheRootPath, key, bucketTreeDepth);
final Node bucketNode = factory.getBucketNode();
final Node entryNode = new BucketNodeHandler(bucketNode, dclm).createOrRetrieveEntryNode(key);
new EntryNodeWriter(session, entryNode, key, content, expireTimeInSeconds).write();
session.save();
incrementLoadSuccessCount();
incrementTotalLoadTime(System.currentTimeMillis() - currentTime);
}
}, new Consumer<Exception>() {
@Override
public void accept(Exception e) throws Exception {
incrementLoadExceptionCount();
}
});
}
use of com.adobe.acs.commons.httpcache.store.jcr.impl.handler.BucketNodeHandler in project acs-aem-commons by Adobe-Consulting-Services.
the class JCRHttpCacheStoreImpl method contains.
@Override
public boolean contains(final CacheKey key) {
final long currentTime = System.currentTimeMillis();
incrementRequestCount();
return withSession(new Function<Session, Boolean>() {
@Override
public Boolean apply(Session session) throws Exception {
final BucketNodeFactory factory = new BucketNodeFactory(session, cacheRootPath, key, bucketTreeDepth);
final Node bucketNode = factory.getBucketNode();
if (bucketNode != null) {
Node entryNode = new BucketNodeHandler(bucketNode, dclm).getEntryIfExists(key);
if (entryNode != null) {
incrementTotalLookupTime(System.currentTimeMillis() - currentTime);
incrementHitCount();
return true;
}
}
incrementTotalLookupTime(System.currentTimeMillis() - currentTime);
incrementMissCount();
return false;
}
});
}
Aggregations