Author: pete
Date: Tue May  3 20:52:02 2011
New Revision: 1099238

URL: http://svn.apache.org/viewvc?rev=1099238&view=rev
Log:
replace occurrences of unix long timestamps and java.util.Date, mostly in date 
header processing parts and last modification code for wicket's resources

Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebRequest.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebResponse.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/DynamicImageResource.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
    
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebRequest.java
    
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebRequest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebRequest.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebRequest.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebRequest.java
 Tue May  3 20:52:02 2011
@@ -31,6 +31,7 @@ import org.apache.wicket.request.Url;
 import org.apache.wicket.request.Url.QueryParameter;
 import org.apache.wicket.request.http.WebRequest;
 import org.apache.wicket.util.string.UrlUtils;
+import org.apache.wicket.util.time.Time;
 
 /**
  * Mutable mock {@link WebRequest}.
@@ -137,22 +138,22 @@ public class MockWebRequest extends WebR
 
 
        @Override
-       public long getDateHeader(String name)
+       public Time getDateHeader(String name)
        {
                List<Object> dates = headers.get(name);
                if (dates == null || dates.isEmpty())
                {
-                       return -1;
+                       return null;
                }
 
                Object date = dates.get(0);
 
-               if (date instanceof Long == false)
+               if (date instanceof Time == false)
                {
                        throw new WicketRuntimeException("Date header with name 
'" + name +
-                               "' is not a valid long.");
+                               "' is not a valid Time.");
                }
-               return (Long)date;
+               return (Time)date;
        }
 
        private void addHeaderObject(String name, Object value)
@@ -172,7 +173,7 @@ public class MockWebRequest extends WebR
         * @param name
         * @param value
         */
-       public void setDateHeader(String name, long value)
+       public void setDateHeader(String name, Time value)
        {
                removeHeader(name);
                addHeaderObject(name, value);
@@ -184,7 +185,7 @@ public class MockWebRequest extends WebR
         * @param name
         * @param value
         */
-       public void addDateHeader(String name, long value)
+       public void addDateHeader(String name, Time value)
        {
                addHeaderObject(name, value);
        }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebResponse.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebResponse.java
 Tue May  3 20:52:02 2011
@@ -29,6 +29,8 @@ import javax.servlet.http.Cookie;
 
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.request.http.WebResponse;
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.time.Time;
 
 /**
  * Mocked {@link WebResponse}.
@@ -128,8 +130,9 @@ public class MockWebResponse extends Web
        private final Map<String, Object> headers = new HashMap<String, 
Object>();
 
        @Override
-       public void setDateHeader(String name, long date)
+       public void setDateHeader(String name, Time date)
        {
+               Args.notNull(date, "date");
                headers.put(name, date);
        }
 
@@ -138,20 +141,20 @@ public class MockWebResponse extends Web
         * 
         * @return date header with specified name
         */
-       public long getDateHeader(String name)
+       public Time getDateHeader(String name)
        {
                Object value = headers.get(name);
                if (value == null)
                {
                        throw new WicketRuntimeException("Date header '" + name 
+ "' is not set.");
                }
-               else if (value instanceof Long == false)
+               else if (value instanceof Time == false)
                {
                        throw new WicketRuntimeException("Header '" + name + "' 
is not date type.");
                }
                else
                {
-                       return (Long)value;
+                       return (Time)value;
                }
        }
 

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
 Tue May  3 20:52:02 2011
@@ -32,6 +32,7 @@ import org.apache.wicket.request.http.We
 import org.apache.wicket.response.filter.IResponseFilter;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.AppendingStringBuffer;
+import org.apache.wicket.util.time.Time;
 
 /**
  * Subclass of {@link WebResponse} that buffers the actions and performs those 
on another response.
@@ -253,9 +254,9 @@ public class BufferedWebResponse extends
        private static class SetDateHeaderAction extends MetaDataAction
        {
                private final String name;
-               private final long value;
+               private final Time value;
 
-               public SetDateHeaderAction(String name, long value)
+               public SetDateHeaderAction(String name, Time value)
                {
                        this.name = name;
                        this.value = value;
@@ -397,9 +398,9 @@ public class BufferedWebResponse extends
        }
 
        @Override
-       public void setDateHeader(String name, long date)
+       public void setDateHeader(String name, Time date)
        {
-               actions.add(new SetDateHeaderAction(name, date));
+               actions.add(new SetDateHeaderAction(name, Args.notNull(date, 
"date")));
        }
 
        @Override

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
 Tue May  3 20:52:02 2011
@@ -20,6 +20,8 @@ import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.wicket.request.http.WebResponse;
+import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.time.Time;
 
 /**
  * Response that keeps headers in buffers but writes the content directly to 
the response.
@@ -126,8 +128,9 @@ class HeaderBufferingWebResponse extends
        }
 
        @Override
-       public void setDateHeader(String name, long date)
+       public void setDateHeader(String name, Time date)
        {
+               Args.notNull(date, "date");
                checkHeader();
                bufferedResponse.setDateHeader(name, date);
        }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
 Tue May  3 20:52:02 2011
@@ -43,6 +43,7 @@ import org.apache.wicket.util.string.Pre
 import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.string.UrlUtils;
+import org.apache.wicket.util.time.Time;
 import org.apache.wicket.util.upload.FileItemFactory;
 import org.apache.wicket.util.upload.FileUploadException;
 import org.slf4j.Logger;
@@ -208,9 +209,9 @@ public class ServletWebRequest extends W
        }
 
        @Override
-       public long getDateHeader(String name)
+       public Time getDateHeader(String name)
        {
-               return httpServletRequest.getDateHeader(name);
+               return Time.valueOf(httpServletRequest.getDateHeader(name));
        }
 
        @Override

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java
 Tue May  3 20:52:02 2011
@@ -29,6 +29,7 @@ import org.apache.wicket.request.Url;
 import org.apache.wicket.request.http.WebResponse;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.Strings;
+import org.apache.wicket.util.time.Time;
 
 /**
  * WebResponse that wraps a {@link ServletWebResponse}.
@@ -82,9 +83,10 @@ public class ServletWebResponse extends 
        }
 
        @Override
-       public void setDateHeader(String name, long date)
+       public void setDateHeader(String name, Time date)
        {
-               httpServletResponse.setDateHeader(name, date);
+               Args.notNull(date, "date");
+               httpServletResponse.setDateHeader(name, date.getMilliseconds());
        }
 
        @Override

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
 Tue May  3 20:52:02 2011
@@ -19,7 +19,6 @@ package org.apache.wicket.request.resour
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.Date;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -32,6 +31,7 @@ import org.apache.wicket.settings.IResou
 import org.apache.wicket.util.io.Streams;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.time.Duration;
+import org.apache.wicket.util.time.Time;
 
 /**
  * Convenience resource implementation. The subclass must implement
@@ -73,7 +73,7 @@ public abstract class AbstractResource i
                private String contentType = null;
                private String textEncoding;
                private long contentLength = -1;
-               private Date lastModified = null;
+               private Time lastModified = null;
                private WriteCallback writeCallback;
                private Duration cacheDuration;
                private WebResponse.CacheScope cacheScope;
@@ -246,17 +246,17 @@ public abstract class AbstractResource i
                 * to client.
                 * 
                 * @param lastModified
-                *            last modification date
+                *            last modification timestamp
                 */
-               public void setLastModified(Date lastModified)
+               public void setLastModified(Time lastModified)
                {
                        this.lastModified = lastModified;
                }
 
                /**
-                * @return last modified date
+                * @return last modification timestamp
                 */
-               public Date getLastModified()
+               public Time getLastModified()
                {
                        return lastModified;
                }
@@ -264,7 +264,7 @@ public abstract class AbstractResource i
                /**
                 * Check to determine if the resource data needs to be written. 
This method checks the
                 * <code>If-Modified-Since</code> request header and compares 
it to lastModified property.
-                * In order for this method to work {@link 
#setLastModified(Date)} has to be called first.
+                * In order for this method to work {@link 
#setLastModified(Time)} has to be called first.
                 * 
                 * @param attributes
                 *            request attributes
@@ -274,19 +274,18 @@ public abstract class AbstractResource i
                public boolean dataNeedsToBeWritten(Attributes attributes)
                {
                        WebRequest request = 
(WebRequest)attributes.getRequest();
-                       Date ifModifiedSince = 
request.getIfModifiedSinceHeader();
-                       Date lastModified = getLastModified();
+                       Time ifModifiedSince = 
request.getIfModifiedSinceHeader();
 
-                       if (ifModifiedSince != null && lastModified != null)
+                       if (ifModifiedSince != null && this.lastModified != 
null)
                        {
                                // [Last-Modified] headers have a maximum 
precision of one second
                                // so we have to truncate the milliseconds part 
for a proper compare.
                                // that's stupid, since changes within one 
second will not be reliably
                                // detected by the client ... any hint or 
clarification to improve this
                                // situation will be appreciated...
-                               long modified = this.lastModified.getTime() / 
1000 * 1000;
+                               Time roundedLastModified = 
Time.valueOf(this.lastModified.getMilliseconds() / 1000 * 1000);
 
-                               return ifModifiedSince.getTime() < modified;
+                               return 
ifModifiedSince.before(roundedLastModified);
                        }
                        else
                        {
@@ -437,10 +436,10 @@ public abstract class AbstractResource i
                WebResponse response = (WebResponse)attributes.getResponse();
 
                // 1. Last Modified
-               Date lastModified = data.getLastModified();
+               Time lastModified = data.getLastModified();
                if (lastModified != null)
                {
-                       response.setLastModifiedTime(lastModified.getTime());
+                       response.setLastModifiedTime(lastModified);
                }
 
                // 2. Caching
@@ -521,7 +520,7 @@ public abstract class AbstractResource i
         * 
         * @author Matej Knopp
         */
-       public static abstract class WriteCallback
+       public abstract static class WriteCallback
        {
                /**
                 * Write the resource data to response.
@@ -565,7 +564,7 @@ public abstract class AbstractResource i
                                        }
                                        else
                                        {
-                                               byte copy[] = new byte[len];
+                                               byte[] copy = new byte[len];
                                                System.arraycopy(b, off, copy, 
0, len);
                                                write(copy);
                                        }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ByteArrayResource.java
 Tue May  3 20:52:02 2011
@@ -101,7 +101,7 @@ public class ByteArrayResource extends A
                final ResourceResponse response = new ResourceResponse();
 
                response.setContentType(contentType);
-               response.setLastModified(lastModified.toDate());
+               response.setLastModified(lastModified);
 
                if (response.dataNeedsToBeWritten(attributes))
                {

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
 Tue May  3 20:52:02 2011
@@ -72,7 +72,7 @@ public class ContextRelativeResource ext
                                path);
 
                        
resourceResponse.setContentType(webExternalResourceStream.getContentType());
-                       
resourceResponse.setLastModified(webExternalResourceStream.lastModifiedTime().toDate());
+                       
resourceResponse.setLastModified(webExternalResourceStream.lastModifiedTime());
                        resourceResponse.setFileName(path);
                        resourceResponse.setWriteCallback(new WriteCallback()
                        {

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/DynamicImageResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/DynamicImageResource.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/DynamicImageResource.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/DynamicImageResource.java
 Tue May  3 20:52:02 2011
@@ -135,11 +135,11 @@ public abstract class DynamicImageResour
 
                if (lastModifiedTime != null)
                {
-                       response.setLastModified(lastModifiedTime.toDate());
+                       response.setLastModified(lastModifiedTime);
                }
                else
                {
-                       response.setLastModified(new Date());
+                       response.setLastModified(Time.now());
                }
 
                if (response.dataNeedsToBeWritten(attributes))

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java
 Tue May  3 20:52:02 2011
@@ -209,7 +209,7 @@ public class PackageResource extends Abs
                        final Time lastModified = 
resourceStream.lastModifiedTime();
 
                        if (lastModified != null)
-                               
resourceResponse.setLastModified(lastModified.toDate());
+                               resourceResponse.setLastModified(lastModified);
 
                        try
                        {

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/resource/ResourceStreamResource.java
 Tue May  3 20:52:02 2011
@@ -94,7 +94,7 @@ public class ResourceStreamResource exte
                Time lastModifiedTime = stream.lastModifiedTime();
                if (lastModifiedTime != null)
                {
-                       data.setLastModified(lastModifiedTime.toDate());
+                       data.setLastModified(lastModifiedTime);
                }
 
                // performance check; don't bother to do anything if the 
resource is still cached by client

Modified: 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebRequest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebRequest.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebRequest.java
 (original)
+++ 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebRequest.java
 Tue May  3 20:52:02 2011
@@ -17,7 +17,6 @@
 package org.apache.wicket.request.http;
 
 import java.nio.charset.Charset;
-import java.util.Date;
 import java.util.List;
 import java.util.Locale;
 
@@ -27,7 +26,7 @@ import org.apache.wicket.request.IReques
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.util.string.Strings;
-
+import org.apache.wicket.util.time.Time;
 
 /**
  * Base class for request that provides additional web-related information.
@@ -89,26 +88,18 @@ public abstract class WebRequest extends
         * as <code>If-Modified-Since</code>.
         * 
         * @param name
-        * @return date value of request header
+        * @return date value of request header or <code>null</code> if not 
found
         */
-       public abstract long getDateHeader(String name);
+       public abstract Time getDateHeader(String name);
 
        /**
         * Convenience method for retrieving If-Modified-Since header.
         * 
         * @return date representing the header or <code>null</code> if not set
         */
-       public final Date getIfModifiedSinceHeader()
+       public final Time getIfModifiedSinceHeader()
        {
-               final long header = getDateHeader("If-Modified-Since");
-               if (header >= 0)
-               {
-                       return new Date(header);
-               }
-               else
-               {
-                       return null;
-               }
+               return getDateHeader("If-Modified-Since");
        }
 
 
@@ -173,7 +164,7 @@ public abstract class WebRequest extends
                        }
 
                        @Override
-                       public long getDateHeader(final String name)
+                       public Time getDateHeader(final String name)
                        {
                                return WebRequest.this.getDateHeader(name);
                        }

Modified: 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.java?rev=1099238&r1=1099237&r2=1099238&view=diff
==============================================================================
--- 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.java
 (original)
+++ 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.java
 Tue May  3 20:52:02 2011
@@ -24,6 +24,7 @@ import org.apache.wicket.request.Respons
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.time.Duration;
+import org.apache.wicket.util.time.Time;
 
 /**
  * Base class for web-related responses.
@@ -66,7 +67,7 @@ public abstract class WebResponse extend
         * @param name
         * @param date
         */
-       public abstract void setDateHeader(String name, long date);
+       public abstract void setDateHeader(String name, Time date);
 
        /**
         * Set the content length on the response, if appropriate in the 
subclass. This default
@@ -90,9 +91,9 @@ public abstract class WebResponse extend
         * Set the contents last modified time, if appropriate in the subclass.
         * 
         * @param time
-        *            The last modified time in milliseconds
+        *            The last modified time
         */
-       public void setLastModifiedTime(final long time)
+       public void setLastModifiedTime(final Time time)
        {
                setDateHeader("Last-Modified", time);
        }
@@ -166,8 +167,8 @@ public abstract class WebResponse extend
         */
        public void disableCaching()
        {
-               setDateHeader("Date", System.currentTimeMillis());
-               setDateHeader("Expires", 0);
+               setDateHeader("Date", Time.now());
+               setDateHeader("Expires", Time.START_OF_UNIX_TIME);
                setHeader("Pragma", "no-cache");
                setHeader("Cache-Control", "no-cache, no-store");
        }
@@ -196,13 +197,13 @@ public abstract class WebResponse extend
                }
 
                // Get current time
-               long now = System.currentTimeMillis();
+               Time now = Time.now();
 
                // Time of message generation
                setDateHeader("Date", now);
 
                // Time for cache expiry = now + duration
-               setDateHeader("Expires", now + duration.getMilliseconds());
+               setDateHeader("Expires", now.add(duration));
 
                // Enable caching and set max age
                setHeader("Cache-Control", scope.cacheControl + ", max-age=" + 
duration.getMilliseconds());


Reply via email to