Groovy Documentation

[Groovy] Class GrailsFragmentCachingFilter

java.lang.Object
  net.sf.ehcache.constructs.web.filter.Filter
      net.sf.ehcache.constructs.web.filter.CachingFilter
          net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter
              GrailsFragmentCachingFilter

class GrailsFragmentCachingFilter
extends net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter

Field Summary
private java.lang.ThreadLocal contextHolder

private java.lang.Object log

private java.lang.Object timingLog

 
Fields inherited from class net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter
NO_FILTER
 
Fields inherited from class net.sf.ehcache.constructs.web.filter.CachingFilter
NO_FILTER
 
Fields inherited from class net.sf.ehcache.constructs.web.filter.Filter
NO_FILTER
 
Property Summary
static java.lang.String X_SPRINGCACHE_CACHED

net.sf.ehcache.CacheManager cacheManager

SpringcacheService springcacheService

 
Constructor Summary
GrailsFragmentCachingFilter()

 
Method Summary
protected boolean acceptsGzipEncoding(javax.servlet.http.HttpServletRequest request)

protected net.sf.ehcache.constructs.web.PageInfo buildPage(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain)

Overrides buildPage in PageFragmentCachingFilter to use different cache depending on target controller and to do special handling for Grails include requests.

protected net.sf.ehcache.constructs.web.PageInfo buildPageInfo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain)

Overrides buildPageInfo in PageFragmentCachingFilter to use different cache depending on target controller rather than having the cache wired into the filter.

protected java.lang.String calculateKey(javax.servlet.http.HttpServletRequest request)

private void destroyContext()

private int determineResponseStatus(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, net.sf.ehcache.constructs.web.PageInfo pageInfo)

protected void doFilter(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain)

Overrides doFilter in PageFragmentCachingFilter to handle flushing and caching behaviour selectively depending on annotations on target controller.

void doInit(javax.servlet.FilterConfig filterConfig)

Overrides doInit in CachingFilter to be a no-op.

protected net.sf.ehcache.CacheManager getCacheManager()

private java.lang.String getCachedUri(javax.servlet.http.HttpServletRequest request)

private FilterContext getContext()

private void handleFlush(javax.servlet.http.HttpServletRequest request)

private void initContext()

private void logRequestDetails(javax.servlet.http.HttpServletRequest request, FilterContext context, java.lang.String message)

private void releaseCacheLock(net.sf.ehcache.constructs.blocking.BlockingCache cache, java.lang.String key)

protected void writeResponse(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, net.sf.ehcache.constructs.web.PageInfo pageInfo)

Overrides writeResponse in CachingFilter to 1 - only set status, contentType, cookies, etc. if this is the "main" request and not an include. 2 - send a status code 304 if appropriate.

 
Methods inherited from class net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter
net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#doInit(javax.servlet.FilterConfig), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#init(javax.servlet.FilterConfig), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#destroy(), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#getFilterConfig(), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#wait(), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#wait(long), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#wait(long, int), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#equals(java.lang.Object), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#toString(), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#hashCode(), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#getClass(), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#notify(), net.sf.ehcache.constructs.web.filter.PageFragmentCachingFilter#notifyAll()
 
Methods inherited from class net.sf.ehcache.constructs.web.filter.CachingFilter
net.sf.ehcache.constructs.web.filter.CachingFilter#doInit(javax.servlet.FilterConfig), net.sf.ehcache.constructs.web.filter.CachingFilter#init(javax.servlet.FilterConfig), net.sf.ehcache.constructs.web.filter.CachingFilter#destroy(), net.sf.ehcache.constructs.web.filter.CachingFilter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain), net.sf.ehcache.constructs.web.filter.CachingFilter#getFilterConfig(), net.sf.ehcache.constructs.web.filter.CachingFilter#wait(), net.sf.ehcache.constructs.web.filter.CachingFilter#wait(long), net.sf.ehcache.constructs.web.filter.CachingFilter#wait(long, int), net.sf.ehcache.constructs.web.filter.CachingFilter#equals(java.lang.Object), net.sf.ehcache.constructs.web.filter.CachingFilter#toString(), net.sf.ehcache.constructs.web.filter.CachingFilter#hashCode(), net.sf.ehcache.constructs.web.filter.CachingFilter#getClass(), net.sf.ehcache.constructs.web.filter.CachingFilter#notify(), net.sf.ehcache.constructs.web.filter.CachingFilter#notifyAll()
 
Methods inherited from class net.sf.ehcache.constructs.web.filter.Filter
net.sf.ehcache.constructs.web.filter.Filter#init(javax.servlet.FilterConfig), net.sf.ehcache.constructs.web.filter.Filter#destroy(), net.sf.ehcache.constructs.web.filter.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain), net.sf.ehcache.constructs.web.filter.Filter#getFilterConfig(), net.sf.ehcache.constructs.web.filter.Filter#wait(), net.sf.ehcache.constructs.web.filter.Filter#wait(long), net.sf.ehcache.constructs.web.filter.Filter#wait(long, int), net.sf.ehcache.constructs.web.filter.Filter#equals(java.lang.Object), net.sf.ehcache.constructs.web.filter.Filter#toString(), net.sf.ehcache.constructs.web.filter.Filter#hashCode(), net.sf.ehcache.constructs.web.filter.Filter#getClass(), net.sf.ehcache.constructs.web.filter.Filter#notify(), net.sf.ehcache.constructs.web.filter.Filter#notifyAll()
 
Methods inherited from class java.lang.Object
java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Field Detail

contextHolder

private final java.lang.ThreadLocal contextHolder


log

private final java.lang.Object log


timingLog

private final java.lang.Object timingLog


 
Property Detail

X_SPRINGCACHE_CACHED

static final java.lang.String X_SPRINGCACHE_CACHED


cacheManager

net.sf.ehcache.CacheManager cacheManager


springcacheService

SpringcacheService springcacheService


 
Constructor Detail

GrailsFragmentCachingFilter

GrailsFragmentCachingFilter()


 
Method Detail

acceptsGzipEncoding

@Override
protected boolean acceptsGzipEncoding(javax.servlet.http.HttpServletRequest request)


buildPage

@Override
protected net.sf.ehcache.constructs.web.PageInfo buildPage(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain)
Overrides buildPage in PageFragmentCachingFilter to use different cache depending on target controller and to do special handling for Grails include requests.


buildPageInfo

@Override
protected net.sf.ehcache.constructs.web.PageInfo buildPageInfo(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain)
Overrides buildPageInfo in PageFragmentCachingFilter to use different cache depending on target controller rather than having the cache wired into the filter.


calculateKey

@Override
protected java.lang.String calculateKey(javax.servlet.http.HttpServletRequest request)


destroyContext

private void destroyContext()


determineResponseStatus

private int determineResponseStatus(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, net.sf.ehcache.constructs.web.PageInfo pageInfo)


doFilter

@Override
protected void doFilter(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain)
Overrides doFilter in PageFragmentCachingFilter to handle flushing and caching behaviour selectively depending on annotations on target controller.


doInit

@Override
void doInit(javax.servlet.FilterConfig filterConfig)
Overrides doInit in CachingFilter to be a no-op. The superclass initializes a single cache that is used for all intercepted requests but we will select a cache at runtime based on the target controller/action.


getCacheManager

@Override
protected net.sf.ehcache.CacheManager getCacheManager()


getCachedUri

private java.lang.String getCachedUri(javax.servlet.http.HttpServletRequest request)


getContext

private FilterContext getContext()


handleFlush

private void handleFlush(javax.servlet.http.HttpServletRequest request)


initContext

private void initContext()


logRequestDetails

private void logRequestDetails(javax.servlet.http.HttpServletRequest request, FilterContext context, java.lang.String message)


releaseCacheLock

private void releaseCacheLock(net.sf.ehcache.constructs.blocking.BlockingCache cache, java.lang.String key)


writeResponse

@Override
protected void writeResponse(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, net.sf.ehcache.constructs.web.PageInfo pageInfo)
Overrides writeResponse in CachingFilter to 1 - only set status, contentType, cookies, etc. if this is the "main" request and not an include. 2 - send a status code 304 if appropriate.


 

Groovy Documentation