From 09cbc3dff3a1deae1775d84c1556a95753ccb30e Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Sun, 13 Jan 2013 09:28:24 +0000 Subject: [PATCH] Images and other media have expire date 6 months from date sent. --- .../lotro/async/LotroHttpRequestHandler.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/LotroHttpRequestHandler.java b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/LotroHttpRequestHandler.java index 1a95c4afa..2cf5dee30 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/LotroHttpRequestHandler.java +++ b/gemp-lotr/gemp-lotr-async/src/main/java/com/gempukku/lotro/async/LotroHttpRequestHandler.java @@ -23,11 +23,14 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.*; import java.lang.reflect.Type; +import java.text.SimpleDateFormat; import java.util.Collections; +import java.util.Date; import java.util.HashMap; import java.util.Map; public class LotroHttpRequestHandler extends SimpleChannelUpstreamHandler { + private final static long SIX_MONTHS = 1000L*60L*60L*24L*30L*6L; private Logger _log = Logger.getLogger(LotroHttpRequestHandler.class); private Map _objects; @@ -135,6 +138,8 @@ public class LotroHttpRequestHandler extends SimpleChannelUpstreamHandler { private Map getHeadersForFile(Map headers, File file) { Map fileHeaders = new HashMap(headers); + boolean cache = false; + String fileName = file.getName(); String contentType; if (fileName.endsWith(".html")) { @@ -147,16 +152,27 @@ public class LotroHttpRequestHandler extends SimpleChannelUpstreamHandler { } else if (fileName.endsWith(".css")) { contentType = "text/css; charset=UTF-8"; } else if (fileName.endsWith(".jpg")) { + cache = true; contentType = "image/jpeg"; } else if (fileName.endsWith(".png")) { + cache = true; contentType = "image/png"; } else if (fileName.endsWith(".gif")) { + cache = true; contentType = "image/gif"; } else if (fileName.endsWith(".wav")) { + cache = true; contentType = "audio/wav"; } else { contentType = "application/octet-stream"; } + + if (cache) { + SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz"); + long sixMonthsFromNow = System.currentTimeMillis()+SIX_MONTHS; + fileHeaders.put(EXPIRES, dateFormat.format(new Date(sixMonthsFromNow))); + } + fileHeaders.put(CONTENT_TYPE, contentType); return fileHeaders; }