X-Git-Url: https://juplo.de/gitweb/?p=percentcodec;a=blobdiff_plain;f=cachecontrol%2Fsrc%2Fmain%2Fjava%2Fde%2Fhalbekunst%2Fjuplo%2Fcachecontrol%2FAcceleratorFilter.java;h=7c250a24f47988721b73e2340db392d57cc222ea;hp=f76c7132cfd1c3b0de341011d23e2d3bf8b0c1d2;hb=7b440f7f3568028e63280646cfb071652bd81e94;hpb=1bb1a0f0e1d347538ae93c23395bba172cd87342 diff --git a/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/AcceleratorFilter.java b/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/AcceleratorFilter.java index f76c7132..7c250a24 100644 --- a/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/AcceleratorFilter.java +++ b/cachecontrol/src/main/java/de/halbekunst/juplo/cachecontrol/AcceleratorFilter.java @@ -1,6 +1,5 @@ package de.halbekunst.juplo.cachecontrol; -import de.halbekunst.juplo.cachecontrol.CacheControl.CacheMethodHandle; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; @@ -38,18 +37,11 @@ import org.springframework.beans.factory.annotation.Configurable; public class AcceleratorFilter implements Filter { private final static Logger log = LoggerFactory.getLogger(AcceleratorFilter.class); - private final static Map ADDITIONAL_HEADERS_NONE = Collections.unmodifiableMap(new HashMap()); - private final static Map ADDITIONAL_HEADERS_GZIP; + private final static Map EMPTY = Collections.unmodifiableMap(new HashMap()); 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 map = new HashMap(1); - map.put(Headers.HEADER_CONTENT_ENCODING, "gzip"); - ADDITIONAL_HEADERS_GZIP = Collections.unmodifiableMap(map); - } - @Autowired CacheControl cacheControl; @Autowired(required=true) Integer buffer; @@ -99,7 +91,8 @@ public class AcceleratorFilter implements Filter { 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; @@ -358,6 +351,11 @@ public class AcceleratorFilter implements Filter { + @Override + public boolean isZipped() { + return zipped && out != null && !out.empty; + } + @Override public long getTimestamp() { return now; @@ -395,13 +393,10 @@ public class AcceleratorFilter implements Filter { @Override public Map 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; } @@ -574,7 +569,7 @@ public class AcceleratorFilter implements Filter { @Override public void close() throws IOException { try { - AcceleratorFilter.this.cacheControl.decorate(AccelerationWrapper.this.request, response, buffer); + AcceleratorFilter.this.cacheControl.decorate(AccelerationWrapper.this.request, response, AccelerationWrapper.this); } catch (Exception e) { log.error("Error while guessing Cache-Header's", e); @@ -589,7 +584,7 @@ public class AcceleratorFilter implements Filter { @Override public void flush() throws IOException { try { - AcceleratorFilter.this.cacheControl.decorate(AccelerationWrapper.this.request, response, buffer); + AcceleratorFilter.this.cacheControl.decorate(AccelerationWrapper.this.request, response, AccelerationWrapper.this); } catch (Exception e) { log.error("Error while guessing Cache-Header's", e);