Author: pedro
Date: Mon Mar 21 18:45:16 2011
New Revision: 1083895

URL: http://svn.apache.org/viewvc?rev=1083895&view=rev
Log:
merging WebResponse#disableCache be used in the ComponentRequestTarget 
preventing cached responses in the AJAX with prototype example
Issue: WICKET-3466

Modified:
    
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java

Modified: 
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java?rev=1083895&r1=1083894&r2=1083895&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
 Mon Mar 21 18:45:16 2011
@@ -22,9 +22,9 @@ import org.apache.wicket.markup.html.bas
 import org.apache.wicket.markup.html.link.ILinkListener;
 import org.apache.wicket.markup.html.link.Link;
 import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.protocol.http.WebResponse;
 import org.apache.wicket.request.target.component.ComponentRequestTarget;
 import org.apache.wicket.util.string.AppendingStringBuffer;
+import org.apache.wicket.util.value.ValueMap;
 
 
 /**
@@ -60,20 +60,8 @@ public class Index extends WicketExample
                        {
                                // Increment count
                                count++;
-
                                // The response should refresh the label 
displaying the counter.
-                               getRequestCycle().setRequestTarget(new 
ComponentRequestTarget(counter)
-                               {
-                                       @Override
-                                       public void respond(RequestCycle 
requestCycle)
-                                       {
-                                               super.respond(requestCycle);
-                                               WebResponse response = 
(WebResponse)requestCycle.getResponse();
-                                               response.setHeader("Pragma", 
"no-cache");
-                                               
response.setHeader("Cache-Control",
-                                                       "no-cache, no-store, 
max-age=0, must-revalidate");
-                                       }
-                               });
+                               getRequestCycle().setRequestTarget(new 
ComponentRequestTarget(counter));
                        }
 
                        /**
@@ -83,8 +71,10 @@ public class Index extends WicketExample
                        @Override
                        protected String getOnClickScript(String url)
                        {
+                               ValueMap valueMap = new ValueMap();
+                               valueMap.add("anticache", "" + Math.random());
                                return new AppendingStringBuffer("new 
Ajax.Updater('counter', '").append(
-                                       urlFor(ILinkListener.INTERFACE))
+                                       RequestCycle.get().urlFor(this, 
ILinkListener.INTERFACE, valueMap))
                                        .append("', {method:'get'}); return 
false;")
                                        .toString();
                        }

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java?rev=1083895&r1=1083894&r2=1083895&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
 Mon Mar 21 18:45:16 2011
@@ -497,4 +497,15 @@ public class WebResponse extends Respons
        {
                this.ajax = ajax;
        }
+
+       /**
+        * Make this response non-cacheable
+        */
+       public void disableCaching()
+       {
+               setDateHeader("Date", System.currentTimeMillis());
+               setDateHeader("Expires", 0);
+               setHeader("Pragma", "no-cache");
+               setHeader("Cache-Control", "no-cache, no-store");
+       }
 }

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java?rev=1083895&r1=1083894&r2=1083895&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java
 Mon Mar 21 18:45:16 2011
@@ -19,6 +19,7 @@ package org.apache.wicket.request.target
 import org.apache.wicket.Component;
 import org.apache.wicket.Page;
 import org.apache.wicket.RequestCycle;
+import org.apache.wicket.protocol.http.WebResponse;
 
 /**
  * Default implementation of
@@ -74,6 +75,12 @@ public class ComponentRequestTarget impl
                                // Render the component
                                component.renderComponent();
                        }
+                       // preventing the response to component from being 
cached
+                       if (requestCycle.getResponse() instanceof WebResponse)
+                       {
+                               WebResponse response = 
(WebResponse)requestCycle.getResponse();
+                               response.disableCaching();
+                       }
                }
                finally
                {


Reply via email to