package de.halbekunst.juplo.cachecontrol;
-import de.halbekunst.juplo.cachecontrol.CacheControl.CacheMethodHandle;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
public class AcceleratorFilter implements Filter {
private final static Logger log = LoggerFactory.getLogger(AcceleratorFilter.class);
- private final static Map<String,String> ADDITIONAL_HEADERS_NONE = Collections.unmodifiableMap(new HashMap<String,String>());
- private final static Map<String,String> ADDITIONAL_HEADERS_GZIP;
+ private final static Map<String,String> EMPTY = Collections.unmodifiableMap(new HashMap<String,String>());
public final static String REQUEST_URI_ATTRIBUTE = "javax.servlet.include.request_uri";
public final static String RESPONSE_WRAPPER = AcceleratorFilter.class.getName() + ".RESPONSE_WRAPPER";
- static {
- Map<String,String> map = new HashMap<String,String>(1);
- map.put(Headers.HEADER_CONTENT_ENCODING, "gzip");
- ADDITIONAL_HEADERS_GZIP = Collections.unmodifiableMap(map);
- }
-
@Autowired CacheControl cacheControl;
@Autowired(required=true) Integer buffer;
private final HttpServletRequest request;
private final HttpServletResponse response;
- private boolean zipped;
+ boolean zipped; // CacheControll greift direkt auf dieses Flag zu!
+
private int buffer;
private GZIPServletOutputStream out;
private ServletOutputStream stream;
+ @Override
+ public boolean isZipped() {
+ return zipped && out != null && !out.empty;
+ }
+
@Override
public long getTimestamp() {
return now;
@Override
public Map<String,String> getAdditionalHeaders(HttpServletRequest request) {
- if (zipped && !out.empty)
- return ADDITIONAL_HEADERS_GZIP;
- else
- return ADDITIONAL_HEADERS_NONE;
+ return EMPTY;
}
- public void guessingFinished() {
+ public void supressGuessing() {
guessing = false;
}