Changeset d34a7ca8 in vaadin
- Timestamp:
- 11/09/11 08:48:21 (19 months ago)
- Branches:
- master, 7.0, f7f1e3ece5206c335487ce25f4e709370024109d
- Children:
- 6d2cd8be
- Parents:
- 3159f002
- git-author:
- Leif Åstrand <leif@…> (11/09/11 08:48:21)
- git-committer:
- Leif Åstrand <leif@…> (11/09/11 08:48:21)
- Location:
- src/com/vaadin/terminal
- Files:
-
- 4 edited
-
WrappedResponse.java (modified) (1 diff)
-
gwt/server/ApplicationResourceHandler.java (modified) (3 diffs)
-
gwt/server/WrappedHttpServletResponse.java (modified) (1 diff)
-
gwt/server/WrappedPortletResponse.java (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/com/vaadin/terminal/WrappedResponse.java
r14c7c17f rd34a7ca8 13 13 public void setHeader(String name, String value); 14 14 15 public void setDateHeader(String name, long timestamp); 16 15 17 public OutputStream getOutputStream() throws IOException; 16 18 17 19 public PrintWriter getWriter() throws IOException; 18 20 21 /** 22 * Sets time in milliseconds, -1 means no cache at all. All required headers 23 * related to caching in the response are set based on the time. 24 * 25 * @param milliseconds 26 * Cache time in milliseconds 27 */ 28 public void setCacheTime(long milliseconds); 29 19 30 } -
src/com/vaadin/terminal/gwt/server/ApplicationResourceHandler.java
r14c7c17f rd34a7ca8 4 4 import java.io.InputStream; 5 5 import java.io.OutputStream; 6 import java.text.DateFormat;7 import java.text.SimpleDateFormat;8 import java.util.Date;9 6 import java.util.Iterator; 10 import java.util.Locale;11 import java.util.TimeZone;12 7 import java.util.regex.Matcher; 13 8 import java.util.regex.Pattern; … … 23 18 24 19 public class ApplicationResourceHandler implements RequestHandler { 25 private static final DateFormat HTTP_DATE_FORMAT = new SimpleDateFormat(26 "EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH);27 static {28 HTTP_DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT"));29 }30 20 private static final Pattern APP_RESOURCE_PATTERN = Pattern 31 21 .compile("/APP/(\\d+)/.*"); … … 72 62 73 63 // Sets cache headers 74 final long cacheTime = stream.getCacheTime(); 75 if (cacheTime <= 0) { 76 response.setHeader("Cache-Control", "no-cache"); 77 response.setHeader("Pragma", "no-cache"); 78 response.setHeader("Expires", 79 HTTP_DATE_FORMAT.format(new Date(0))); 80 } else { 81 response.setHeader("Cache-Control", "max-age=" + cacheTime 82 / 1000); 83 response.setHeader( 84 "Expires", 85 HTTP_DATE_FORMAT.format(new Date(System 86 .currentTimeMillis() + cacheTime))); 87 // Required to apply caching in some Tomcats 88 response.setHeader("Pragma", "cache"); 89 } 64 response.setCacheTime(stream.getCacheTime()); 90 65 91 66 // Copy download stream parameters directly -
src/com/vaadin/terminal/gwt/server/WrappedHttpServletResponse.java
r427ca954 rd34a7ca8 46 46 } 47 47 48 public void setCacheTime(long milliseconds) { 49 doSetCacheTime(this, milliseconds); 50 } 51 52 // Implementation shared with WrappedPortletResponse 53 static void doSetCacheTime(WrappedResponse response, long milliseconds) { 54 if (milliseconds <= 0) { 55 response.setHeader("Cache-Control", "no-cache"); 56 response.setHeader("Pragma", "no-cache"); 57 response.setDateHeader("Expires", 0); 58 } else { 59 response.setHeader("Cache-Control", "max-age=" + milliseconds 60 / 1000); 61 response.setDateHeader("Expires", System.currentTimeMillis() 62 + milliseconds); 63 // Required to apply caching in some Tomcats 64 response.setHeader("Pragma", "cache"); 65 } 66 } 67 68 public void setDateHeader(String name, long timestamp) { 69 response.setDateHeader(name, timestamp); 70 } 48 71 } -
src/com/vaadin/terminal/gwt/server/WrappedPortletResponse.java
r04b52d9b rd34a7ca8 4 4 import java.io.OutputStream; 5 5 import java.io.PrintWriter; 6 import java.text.DateFormat; 7 import java.text.SimpleDateFormat; 8 import java.util.Date; 9 import java.util.Locale; 10 import java.util.TimeZone; 6 11 7 12 import javax.portlet.MimeResponse; … … 12 17 13 18 public class WrappedPortletResponse implements WrappedResponse { 19 private static final DateFormat HTTP_DATE_FORMAT = new SimpleDateFormat( 20 "EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH); 21 static { 22 HTTP_DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT")); 23 } 14 24 15 25 private final PortletResponse response; … … 43 53 response.setProperty(name, value); 44 54 } 55 56 public void setDateHeader(String name, long timestamp) { 57 response.setProperty(name, HTTP_DATE_FORMAT.format(new Date(timestamp))); 58 } 59 60 public void setCacheTime(long milliseconds) { 61 WrappedHttpServletResponse.doSetCacheTime(this, milliseconds); 62 } 45 63 }
Note: See TracChangeset
for help on using the changeset viewer.
