X-Git-Url: https://juplo.de/gitweb/?p=percentcodec;a=blobdiff_plain;f=utils%2Fcachecontrol%2Fsrc%2Fmain%2Fjava%2Fde%2Fhalbekunst%2Futils%2Fcachecontrol%2FCacheable.java;fp=utils%2Fcachecontrol%2Fsrc%2Fmain%2Fjava%2Fde%2Fhalbekunst%2Futils%2Fcachecontrol%2FCacheable.java;h=0000000000000000000000000000000000000000;hp=c24e79fc00fc23dc86f7ad9c54222d873223f1ae;hb=f3ec05942f7f5cbf3417bf71b5727b9007739bfd;hpb=c3556bca6ffcc6556393d77fa773b2703e9ad99b diff --git a/utils/cachecontrol/src/main/java/de/halbekunst/utils/cachecontrol/Cacheable.java b/utils/cachecontrol/src/main/java/de/halbekunst/utils/cachecontrol/Cacheable.java deleted file mode 100644 index c24e79fc..00000000 --- a/utils/cachecontrol/src/main/java/de/halbekunst/utils/cachecontrol/Cacheable.java +++ /dev/null @@ -1,153 +0,0 @@ -package de.halbekunst.utils.cachecontrol; - - -import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - - -/** - * Wenn ein Handler (i.A. eine Impelementierung von {@Controller}), - * dieses Interface implementiert, dann schreibt - * {@link CachingInterceptor} HTTP/1.1-Caching-Header nach - * {@linkplain http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html RFC 2616} - * in den Response. - * - * @see CachingInterceptor - * @author kai - */ -public interface Cacheable { - public boolean accepts(HttpServletRequest request); - - /** - * Wenn die Methode false zurückliefert, werden von - * {@link CachingDispatcherServlet#isRessourceModified(HttpServletRequest, HttpServletResponse, Cacheable)} - * keinerlei HTTP/1.1-Cache-Header in den Response eingebaut. - *

- * Über diese Methode kann z.B. gesteuert werden, dass für eine bestimmte - * HTTP-Methode (z.B. POST) keine Cache-Header generiert werden. - * - * @see CachingDispatcherServlet - * @param request - * Der aktuelle HTTP-Request - * @return true, wenn Caching-Header in den Response geschrieben - * werden sollen, sonst false. - * @throws IllegalArgumentException - * Wenn zu dem Request keine Ressource existiert. - */ - public boolean isGenerateCacheHeaders(HttpServletRequest request) throws IllegalArgumentException; - - /** - * Diese Methode ermöglicht eine einfache, zentrale Steuerung des - * Caching-Verhaltens. - *

- *

- * Zu beachten: Wenn die Methode - * {@link #getCacheControl(javax.servlet.http.HttpServletRequest)} weitere - * Schlüssel-Wert-Paare für den Cache-Control-Header liefert, - * werden diese ergänzt. Wenn in der Rückgabe ein Wert für - * max-age enthalten ist, wir er allerdings von dem durch diese - * Methode vorgegebenen Wert überschrieben! - * - * @see #getLastModified(javax.servlet.http.HttpServletRequest) - * @see #getCacheControl(javax.servlet.http.HttpServletRequest) - * @param request - * Der aktuelle HTTP-Request - * @return Die gewünschte Cache-Zeit in Sekunden, oder 0, wenn - * Caching aktiv unterbunden werden soll bzw. einen Wert kleiner - * 0, wenn kein Expires-Header generiert - * werden soll. - * @throws IllegalArgumentException - * Wenn zu dem Request keine Ressource existiert. - */ - public int getCacheSeconds(HttpServletRequest request) throws IllegalArgumentException; - - /** - * Zeitpunkt, zu dem die Ressource zuletzt verändert wurde. Erwartet wird eine - * Zeitangabe in Millisekunden seit dem Unix-0-Zeitpunkt, wie sie von - * {@link HttpServletResponse#setDateHeader(String, long)} erwartet wird. - *

- * Zu beachten: - *

- * - * @see #getCacheSeconds(javax.servlet.http.HttpServletRequest) - * @param request - * Der aktuelle HTTP-Request - * @return Zeitstempel, zu dem die Ressource zuletzt modifiziert wurde. - * @throws IllegalArgumentException - * Wenn zu dem Request keine Ressource existiert. - */ - public long getLastModified(HttpServletRequest request) throws IllegalArgumentException; - - /** - * Frei wählbares ETag nach {@linkplain http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19 RFC 2616, - * Abschnitt 14.19 ETag}. Der ETag wird unverändert übernommen und muss den - * Bedingungen aus dem RFC 2616 entsprechen. Beispiele für erlaubte Werte: - * - * Merke: Der wert ist immer in doppelte Anführungszeichen - * einzuschließen! - *

- * Zu beachten: - *

- * - * @see #getCacheSeconds(javax.servlet.http.HttpServletRequest) - * @param request - * Der aktuelle HTTP-Request - * @return Das zu verwendende ETag, oder null, wenn der Header - * nicht generiert werden soll. - * @throws IllegalArgumentException - * Wenn zu dem Request keine Ressource existiert. - */ - public String getETag(HttpServletRequest request) throws IllegalArgumentException; - - /** - * Diese Methode liefert eine Map mit Schlüssel-Wert-Paaren für den - * HTTP/1.1-Header Cache-Control (s. {@plainlink - * http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3 RFC2616, - * Abschnitt 14.9.3}). - *

- * Zu beachten: - *

- * - * @see #getCacheSeconds(javax.servlet.http.HttpServletRequest) - * @param request - * Der aktuelle HTTP-Request - * @return Eine Map mit den Schlüssel-Wert-Paaren für den - * Cache-Control-Header. - * @throws IllegalArgumentException - * Wenn zu dem Request keine Ressource existiert. - */ - public Map getCacheControl(HttpServletRequest request) throws IllegalArgumentException; -}