public class CacheResponseWrapper
extends javax.servlet.http.HttpServletResponseWrapper
getBufferedContent()
. Once the threshold is reached either a tmp file is created which
can be retrieved with getContentFile()
or the content/headers are made transparent to
the original response if serveIfThresholdReached
is true.Modifier and Type | Field and Description |
---|---|
static String |
ATTRIBUTE_IN_MEMORY_THRESHOLD
Set this request attribute to an positive
Integer if you want to raise DEFAULT_THRESHOLD for time consuming resources. |
static String |
CACHE_TEMP_FILE_PREFIX |
static int |
DEFAULT_THRESHOLD |
SC_ACCEPTED, SC_BAD_GATEWAY, SC_BAD_REQUEST, SC_CONFLICT, SC_CONTINUE, SC_CREATED, SC_EXPECTATION_FAILED, SC_FORBIDDEN, SC_FOUND, SC_GATEWAY_TIMEOUT, SC_GONE, SC_HTTP_VERSION_NOT_SUPPORTED, SC_INTERNAL_SERVER_ERROR, SC_LENGTH_REQUIRED, SC_METHOD_NOT_ALLOWED, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_MULTIPLE_CHOICES, SC_NO_CONTENT, SC_NON_AUTHORITATIVE_INFORMATION, SC_NOT_ACCEPTABLE, SC_NOT_FOUND, SC_NOT_IMPLEMENTED, SC_NOT_MODIFIED, SC_OK, SC_PARTIAL_CONTENT, SC_PAYMENT_REQUIRED, SC_PRECONDITION_FAILED, SC_PROXY_AUTHENTICATION_REQUIRED, SC_REQUEST_ENTITY_TOO_LARGE, SC_REQUEST_TIMEOUT, SC_REQUEST_URI_TOO_LONG, SC_REQUESTED_RANGE_NOT_SATISFIABLE, SC_RESET_CONTENT, SC_SEE_OTHER, SC_SERVICE_UNAVAILABLE, SC_SWITCHING_PROTOCOLS, SC_TEMPORARY_REDIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY
Constructor and Description |
---|
CacheResponseWrapper(javax.servlet.http.HttpServletResponse response,
int threshold,
boolean serveIfThresholdReached) |
CacheResponseWrapper(javax.servlet.http.HttpServletResponse response,
int threshold,
boolean serveIfThresholdReached,
info.magnolia.module.cache.filter.AbstractThresholdingCacheOutputStream stream) |
Modifier and Type | Method and Description |
---|---|
void |
addDateHeader(String name,
long date) |
void |
addHeader(String name,
String value) |
void |
addIntHeader(String name,
int value) |
void |
cleanUp() |
boolean |
containsHeader(String name) |
void |
flush() |
void |
flushBuffer() |
byte[] |
getBufferedContent() |
File |
getContentFile() |
int |
getContentLength() |
org.apache.commons.collections.MultiMap |
getHeaders() |
long |
getLastModified() |
javax.servlet.ServletOutputStream |
getOutputStream() |
String |
getRedirectionLocation() |
int |
getStatus() |
org.apache.commons.io.output.ThresholdingOutputStream |
getThresholdingOutputStream() |
int |
getTimeToLiveInSeconds()
Returns the number of seconds the response can be cached, where 0 means that it must not be cached and -1 means
that it there is no indication on how long it can be cached for.
|
PrintWriter |
getWriter() |
boolean |
isError() |
boolean |
isThresholdExceeded() |
void |
replay(javax.servlet.http.HttpServletResponse target) |
void |
replayContent(javax.servlet.http.HttpServletResponse target,
boolean setContentLength) |
void |
replayHeadersAndStatus(javax.servlet.http.HttpServletResponse target) |
void |
reset() |
void |
resetBuffer() |
void |
sendError(int status) |
void |
sendError(int status,
String errorMsg) |
void |
sendRedirect(String location) |
void |
setContentLength(int len) |
void |
setDateHeader(String name,
long date) |
void |
setHeader(String name,
String value) |
void |
setIntHeader(String name,
int value) |
void |
setResponseExpirationDetectionEnabled()
Enables expiration detection, response headers are then intercepted and suppressed from the response and used
internally to calculate when the response expires (its time to live value).
|
void |
setStatus(int status) |
void |
setStatus(int status,
String string) |
protected OutputStream |
thresholdReached(OutputStream out) |
addCookie, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL
getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, setBufferSize, setCharacterEncoding, setContentType, setLocale, setResponse
public static final int DEFAULT_THRESHOLD
public static final String ATTRIBUTE_IN_MEMORY_THRESHOLD
Integer
if you want to raise DEFAULT_THRESHOLD
for time consuming resources.public static final String CACHE_TEMP_FILE_PREFIX
public CacheResponseWrapper(javax.servlet.http.HttpServletResponse response, int threshold, boolean serveIfThresholdReached)
public CacheResponseWrapper(javax.servlet.http.HttpServletResponse response, int threshold, boolean serveIfThresholdReached, info.magnolia.module.cache.filter.AbstractThresholdingCacheOutputStream stream)
public boolean isThresholdExceeded()
public byte[] getBufferedContent()
public File getContentFile()
public javax.servlet.ServletOutputStream getOutputStream() throws IOException
getOutputStream
in interface javax.servlet.ServletResponse
getOutputStream
in class javax.servlet.ServletResponseWrapper
IOException
public org.apache.commons.io.output.ThresholdingOutputStream getThresholdingOutputStream() throws IOException
IOException
public PrintWriter getWriter() throws IOException
getWriter
in interface javax.servlet.ServletResponse
getWriter
in class javax.servlet.ServletResponseWrapper
IOException
public void flushBuffer() throws IOException
flushBuffer
in interface javax.servlet.ServletResponse
flushBuffer
in class javax.servlet.ServletResponseWrapper
IOException
public void flush() throws IOException
IOException
public void reset()
reset
in interface javax.servlet.ServletResponse
reset
in class javax.servlet.ServletResponseWrapper
public void resetBuffer()
resetBuffer
in interface javax.servlet.ServletResponse
resetBuffer
in class javax.servlet.ServletResponseWrapper
public void cleanUp()
public int getStatus()
public boolean isError()
public org.apache.commons.collections.MultiMap getHeaders()
public long getLastModified()
public void setResponseExpirationDetectionEnabled()
getTimeToLiveInSeconds()
to get the calculated value. See ResponseExpirationCalculator
for more details on how the calculation
is performed.public int getTimeToLiveInSeconds()
public String getRedirectionLocation()
public void setDateHeader(String name, long date)
setDateHeader
in interface javax.servlet.http.HttpServletResponse
setDateHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void addDateHeader(String name, long date)
addDateHeader
in interface javax.servlet.http.HttpServletResponse
addDateHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void setHeader(String name, String value)
setHeader
in interface javax.servlet.http.HttpServletResponse
setHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void addHeader(String name, String value)
addHeader
in interface javax.servlet.http.HttpServletResponse
addHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void setIntHeader(String name, int value)
setIntHeader
in interface javax.servlet.http.HttpServletResponse
setIntHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void addIntHeader(String name, int value)
addIntHeader
in interface javax.servlet.http.HttpServletResponse
addIntHeader
in class javax.servlet.http.HttpServletResponseWrapper
public boolean containsHeader(String name)
containsHeader
in interface javax.servlet.http.HttpServletResponse
containsHeader
in class javax.servlet.http.HttpServletResponseWrapper
public void setStatus(int status)
setStatus
in interface javax.servlet.http.HttpServletResponse
setStatus
in class javax.servlet.http.HttpServletResponseWrapper
public void setStatus(int status, String string)
setStatus
in interface javax.servlet.http.HttpServletResponse
setStatus
in class javax.servlet.http.HttpServletResponseWrapper
public void sendRedirect(String location) throws IOException
sendRedirect
in interface javax.servlet.http.HttpServletResponse
sendRedirect
in class javax.servlet.http.HttpServletResponseWrapper
IOException
public void sendError(int status, String errorMsg) throws IOException
sendError
in interface javax.servlet.http.HttpServletResponse
sendError
in class javax.servlet.http.HttpServletResponseWrapper
IOException
public void sendError(int status) throws IOException
sendError
in interface javax.servlet.http.HttpServletResponse
sendError
in class javax.servlet.http.HttpServletResponseWrapper
IOException
public void setContentLength(int len)
setContentLength
in interface javax.servlet.ServletResponse
setContentLength
in class javax.servlet.ServletResponseWrapper
public int getContentLength()
public void replay(javax.servlet.http.HttpServletResponse target) throws IOException
IOException
public void replayHeadersAndStatus(javax.servlet.http.HttpServletResponse target) throws IOException
IOException
public void replayContent(javax.servlet.http.HttpServletResponse target, boolean setContentLength) throws IOException
IOException
protected OutputStream thresholdReached(OutputStream out) throws IOException
IOException
Copyright © 2015 Magnolia International Ltd.. All rights reserved.