Author: ivaynberg
Date: Tue Mar  2 01:07:40 2010
New Revision: 917829

URL: http://svn.apache.org/viewvc?rev=917829&view=rev
Log:
always output expires and last-mod headers for resources even if they were not 
modified since

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/AbstractResource.java
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/AbstractResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/AbstractResource.java?rev=917829&r1=917828&r2=917829&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/AbstractResource.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/resource/AbstractResource.java
 Tue Mar  2 01:07:40 2010
@@ -337,6 +337,18 @@
                WebRequest request = (WebRequest)attributes.getRequest();
                WebResponse response = (WebResponse)attributes.getResponse();
 
+
+               // 1. Last Modified
+               Date lastModified = data.getLastModified();
+               if (lastModified != null)
+               {
+                       response.setLastModifiedTime(lastModified.getTime());
+               }
+
+               // 2. Caching
+
+               configureCache(request, response, data, attributes);
+
                if (!data.dataNeedsToBeWritten(attributes))
                {
                        response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
@@ -358,7 +370,7 @@
                        ContentDisposition disposition = 
data.getContentDisposition();
                        String mimeType = data.getContentType();
                        String encoding = null;
-                       Date lastModified = data.getLastModified();
+
 
                        if (mimeType != null && mimeType.indexOf("text") != -1)
                        {
@@ -367,7 +379,7 @@
 
                        long contentLength = data.getContentLength();
 
-                       // 1. Content Disposition
+                       // 3. Content Disposition
 
                        if (ContentDisposition.ATTACHMENT == disposition)
                        {
@@ -378,7 +390,7 @@
                                response.setInlineHeader(fileName);
                        }
 
-                       // 2. Mime Type (+ encoding)
+                       // 4. Mime Type (+ encoding)
 
                        if (mimeType != null)
                        {
@@ -392,16 +404,6 @@
                                }
                        }
 
-                       // 3. Last Modified
-
-                       if (lastModified != null)
-                       {
-                               
response.setLastModifiedTime(lastModified.getTime());
-                       }
-
-                       // 4. Caching
-
-                       configureCache(request, response, data, attributes);
 
                        // 5. Content Length
 

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java?rev=917829&r1=917828&r2=917829&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WebExternalResourceTest.java
 Tue Mar  2 01:07:40 2010
@@ -45,11 +45,10 @@
                Streams.copy(in, out);
                in.close();
                out.close();
-               tester = new WicketTester(new DummyWebApplication(), 
tempDir.getPath());
-               tester.setupRequestAndResponse();
+               tester = new WicketTester(tempDir.getPath());
                // We fake the browser URL, otherwise Wicket doesn't know the 
requested URL and cannot guess
                // the Content-Type
-               tester.getServletRequest().setPath("/index.html");
+               tester.getRequest().setPath("/index.html");
        }
 
        /**

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java?rev=917829&r1=917828&r2=917829&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java
 Tue Mar  2 01:07:40 2010
@@ -92,12 +92,19 @@
                                {
                                        throw new 
UnsupportedOperationException("Not implemented");
                                }
+
+                               @Override
+                               protected ResourceResponse 
newResourceResponse(Attributes attributes)
+                               {
+                                       ResourceResponse response = 
super.newResourceResponse(attributes);
+                                       response.setCacheable(true);
+                                       return response;
+                               }
                        };
-                       // resource.setCacheable(true);
                        application.getSharedResources().add("foo.gif", 
resource);
                        MockHttpServletRequest request = new 
MockHttpServletRequest(application, null, null);
-                       request.setURL(request.getContextPath() + "/app/" + 
"resources/" +
-                               Application.class.getName() + "/foo.gif");
+                       request.setURL(request.getContextPath() + 
request.getServletPath() +
+                               "/wicket/resource/" + 
Application.class.getName() + "/foo.gif");
                        setIfModifiedSinceToNextWeek(request);
                        MockHttpServletResponse response = new 
MockHttpServletResponse(request);
                        filter.doFilter(request, response, new FilterChain()
@@ -107,7 +114,7 @@
                                {
                                }
                        });
-                       assertEquals(HttpServletResponse.SC_NOT_MODIFIED, 
response.getStatus());
+                       
assertEquals((Integer)HttpServletResponse.SC_NOT_MODIFIED, 
response.getStatus());
                        String responseExpiresHeader = 
response.getHeader("Expires");
                        assertNotNull("Expires header must be set on not 
modified response",
                                responseExpiresHeader);
@@ -169,7 +176,7 @@
                {
                        initParameters.put(WicketFilter.APP_FACT_PARAM,
                                
FilterTestingApplicationFactory.class.getName());
-                       initParameters.put(WicketFilter.FILTER_MAPPING_PARAM, 
"/app/*");
+                       initParameters.put(WicketFilter.FILTER_MAPPING_PARAM, 
"/servlet/*");
                        
initParameters.put(ContextParamWebApplicationFactory.APP_CLASS_PARAM,
                                MockApplication.class.getName());
                }


Reply via email to