Kai Moritz [Sat, 26 Nov 2011 23:03:33 +0000 (00:03 +0100)]
AcceleratorFilter implementiert
Der Filter belauscht das Setzen der Header und konfiguriert CacheControl
entsprechend. Auf diesem Weg lassen sich Java-Webanwendungen mit
verbessertem Caching-Verhalten ausstatten, ohne dass dafür an der Anwendung
selbst etwas geändert werden müsste.
Kai Moritz [Wed, 12 Oct 2011 22:23:27 +0000 (00:23 +0200)]
Modul "test" hinzugefügt, das Hilfsklassen für JUnit-Tests enthält
Das Modul enthält zunächst nur eine von stackoverflow.com entlehnte
klasse, die es ermöglicht, Beans mit dem Scope "request" in Spring-JUnit-
Testsfällen zu verwenden.
Kai Moritz [Wed, 3 Aug 2011 16:35:17 +0000 (18:35 +0200)]
Verhalten bei Seiten mit in die URL's enkodierter Session-ID korrigiert
Es macht zwar tatsächlich keinen Sinn, dass Proxies diese Seiten cachen
("Cache-Control: private"), aber Browser dürfen die Inhalte ruhig vorhalten
("Cache-Control: max-age=0" geht über das Ziel hinaus!).
Kai Moritz [Thu, 14 Jul 2011 11:51:18 +0000 (13:51 +0200)]
Fehler bei der Berechnung des Expires-Headers behoben
Wenn der Integer-Wert cacheSeconds zu groß war, kam es zu einem überlauf,
wodurch das Berechnete Datum für den Expires-Header dann 1 Sekunde vor dem
Auslieferungs-Datum lag. Durch einen Cast des Integer-Wertes zu Long vor
der Berechnung wurde dieser Fehler behoben.
Kai Moritz [Thu, 23 Jun 2011 16:00:30 +0000 (18:00 +0200)]
Fehler bei ungültigem If-Modified-Since in CacheControlInterceptor behoben
* Wenn die Implementierung von Cacheable einen ungültigen (d.h. negativen)
Zeitstempel für Last-Modified geliefert hat, hat CacheControlInterceptor
fälschlich stets mit 304 Not-Modified geantwortet.
* Exception abgefangen, die CacheControlInterceptor geworfen hat, wenn der
Request für If-Modified-Since eine Zeitangabe vor dem 1.1.1970 enthalten
hat.
Kai Moritz [Sun, 20 Jun 2010 18:17:07 +0000 (20:17 +0200)]
CachingInterceptor implementiert
* Interface Cacheable eingeführt.
* CachingInterceptor implementiert und konfiguriert, der die
HTTP/1.1-Caching-Header wie gewünscht setzt, wenn der Handler
das Interface Cacheable implementiert.