Author: ivaynberg
Date: Sun Nov 14 07:14:24 2010
New Revision: 1034946

URL: http://svn.apache.org/viewvc?rev=1034946&view=rev
Log:
some more cleanup, mainly better naming
Issue: WICKET-3161

Added:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IMetaDataBufferingWebResponse.java
      - copied, changed from r1034939, 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/ICookieSavingResponse.java
Removed:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/ICookieSavingResponse.java
Modified:
    
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java

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=1034946&r1=1034945&r2=1034946&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
 Sun Nov 14 07:14:24 2010
@@ -32,6 +32,7 @@ import org.apache.wicket.util.time.Durat
  */
 public abstract class WebResponse extends Response
 {
+       /** Recommended value for cache duration */
        // one year, maximum recommended cache duration in RFC-2616
        public static final Duration MAX_CACHE_DURATION = Duration.days(365);
 
@@ -173,14 +174,14 @@ public abstract class WebResponse extend
 
        /**
         * Make this response cacheable
-        *
+        * 
         * @param duration
-        *            maximum duration before the response must be invalidated 
by any caches.
-        *            It should not exceed one year, based on
-        *            <a 
href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html";>RFC-2616</a>.
+        *            maximum duration before the response must be invalidated 
by any caches. It should
+        *            not exceed one year, based on <a
+        *            
href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html";>RFC-2616</a>.
         * @param scope
         *            controls which caches are allowed to cache the response
-        *
+        * 
         * @see WebResponse#MAX_CACHE_DURATION
         */
        public void enableCaching(Duration duration, WebResponse.CacheScope 
scope)
@@ -189,7 +190,7 @@ public abstract class WebResponse extend
                Args.notNull(scope, "scope");
 
                // do not exceed the maximum recommended value from RFC-2616
-               if(duration.compareTo(MAX_CACHE_DURATION) > 0)
+               if (duration.compareTo(MAX_CACHE_DURATION) > 0)
                        duration = MAX_CACHE_DURATION;
 
                // Get current time
@@ -208,30 +209,29 @@ public abstract class WebResponse extend
        /**
         * caching scope for data
         * <p/>
-        * Unless the data is confidential, session-specific or user-specific 
the general advice is
-        * to prefer value <code>PUBLIC</code> for best network performance.
+        * Unless the data is confidential, session-specific or user-specific 
the general advice is to
+        * prefer value <code>PUBLIC</code> for best network performance.
         * <p/>
-        * This value will basically affect the header [Cache-Control]. Details 
can be found
-        *  <a 
href="http://palisade.plynt.com/issues/2008Jul/cache-control-attributes";>here</a>
-        * or in <a 
href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html";>RFC-2616</a>.
+        * This value will basically affect the header [Cache-Control]. Details 
can be found <a
+        * 
href="http://palisade.plynt.com/issues/2008Jul/cache-control-attributes";>here</a>
 or in <a
+        * 
href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html";>RFC-2616</a>.
         */
-       public static enum CacheScope
-       {
+       public static enum CacheScope {
                /**
                 * use all caches (private + public)
                 * <p/>
-                * Use this value for caching if the data is not confidential 
or session-specific. It will allow
-                * public caches to cache the data. In some versions of Firefox 
this will enable caching
-                * of resources over SSL (details can be found
-                * <a 
href="http://blog.pluron.com/2008/07/why-you-should.html";>here</a>).
+                * Use this value for caching if the data is not confidential 
or session-specific. It will
+                * allow public caches to cache the data. In some versions of 
Firefox this will enable
+                * caching of resources over SSL (details can be found <a
+                * 
href="http://blog.pluron.com/2008/07/why-you-should.html";>here</a>).
                 */
-                PUBLIC("public"),
-                /**
-                *      only use non-public caches
-                 * <p/>
-                 * Use this setting if the response is session-specific or 
confidential and you don't
-                 * want it to be cached on public caches or proxies. On some 
versions of Firefox this
-                 * will disable caching of any resources in over SSL 
connections.
+               PUBLIC("public"),
+               /**
+                * only use non-public caches
+                * <p/>
+                * Use this setting if the response is session-specific or 
confidential and you don't want
+                * it to be cached on public caches or proxies. On some 
versions of Firefox this will
+                * disable caching of any resources in over SSL connections.
                 */
                PRIVATE("private");
 

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java?rev=1034946&r1=1034945&r2=1034946&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
 Sun Nov 14 07:14:24 2010
@@ -36,7 +36,7 @@ import org.apache.wicket.util.lang.Args;
  * 
  * @author Matej Knopp
  */
-public class BufferedWebResponse extends WebResponse implements 
ICookieSavingResponse
+public class BufferedWebResponse extends WebResponse implements 
IMetaDataBufferingWebResponse
 {
        private final transient WebResponse originalResponse;
 
@@ -47,27 +47,27 @@ public class BufferedWebResponse extends
         */
        public BufferedWebResponse(WebResponse originalResponse)
        {
-               // if original response eventually had some cookies set
-               // we should transfer them to the current response
-               if(originalResponse instanceof ICookieSavingResponse)
-                       ((ICookieSavingResponse) 
originalResponse).transferCookies(this);
-
+               // if original response had some metadata set
+               // we should transfer it to the current response
+               if (originalResponse instanceof IMetaDataBufferingWebResponse)
+               {
+                       
((IMetaDataBufferingWebResponse)originalResponse).writeMetaData(this);
+               }
                this.originalResponse = originalResponse;
        }
 
        /**
         * transfer cookie operations (add, clear) to given web response
-        *
-        * @param response web response that should receive the current cookie 
operation
+        * 
+        * @param response
+        *            web response that should receive the current cookie 
operation
         */
-       public void transferCookies(WebResponse response)
+       public void writeMetaData(WebResponse response)
        {
                for (Action action : actions)
                {
-                       if (action instanceof AddCookieAction)
+                       if (action instanceof MetaDataAction)
                                action.invoke(response);
-                       else if (action instanceof ClearCookieAction)
-                       action.invoke(response);
                }
        }
 
@@ -90,6 +90,16 @@ public class BufferedWebResponse extends
                protected abstract void invoke(WebResponse response);
        };
 
+       /**
+        * Actions not related directly to the content of the response, eg 
setting cookies, headers.
+        * 
+        * @author igor
+        */
+       private static abstract class MetaDataAction extends Action
+       {
+       };
+
+
        private static class WriteCharSequenceAction extends Action
        {
                private final StringBuilder builder = new StringBuilder(4096);
@@ -148,7 +158,7 @@ public class BufferedWebResponse extends
                }
        };
 
-       private static class AddCookieAction extends Action
+       private static class AddCookieAction extends MetaDataAction
        {
                private final Cookie cookie;
 
@@ -164,7 +174,7 @@ public class BufferedWebResponse extends
                }
        };
 
-       private static class ClearCookieAction extends Action
+       private static class ClearCookieAction extends MetaDataAction
        {
                private final Cookie cookie;
 
@@ -180,7 +190,7 @@ public class BufferedWebResponse extends
                }
        };
 
-       private static class SetHeaderAction extends Action
+       private static class SetHeaderAction extends MetaDataAction
        {
                private final String name;
                private final String value;
@@ -198,7 +208,7 @@ public class BufferedWebResponse extends
                }
        }
 
-       private static class SetDateHeaderAction extends Action
+       private static class SetDateHeaderAction extends MetaDataAction
        {
                private final String name;
                private final long value;
@@ -248,7 +258,7 @@ public class BufferedWebResponse extends
                }
        };
 
-       private static class SetStatusAction extends Action
+       private static class SetStatusAction extends MetaDataAction
        {
                private final int sc;
 

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java?rev=1034946&r1=1034945&r2=1034946&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
 Sun Nov 14 07:14:24 2010
@@ -33,7 +33,7 @@ import org.apache.wicket.request.http.We
  * 
  * @author Matej Knopp
  */
-class HeaderBufferingWebResponse extends WebResponse implements 
ICookieSavingResponse
+class HeaderBufferingWebResponse extends WebResponse implements 
IMetaDataBufferingWebResponse
 {
        private final WebResponse originalResponse;
        private final BufferedWebResponse bufferedResponse;
@@ -176,8 +176,8 @@ class HeaderBufferingWebResponse extends
                bufferedWritten = false;
        }
 
-       public void transferCookies(WebResponse webResponse)
+       public void writeMetaData(WebResponse webResponse)
        {
-               bufferedResponse.transferCookies(webResponse);
+               bufferedResponse.writeMetaData(webResponse);
        }
 }

Copied: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IMetaDataBufferingWebResponse.java
 (from r1034939, 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/ICookieSavingResponse.java)
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IMetaDataBufferingWebResponse.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IMetaDataBufferingWebResponse.java&p1=wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/ICookieSavingResponse.java&r1=1034939&r2=1034946&rev=1034946&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/ICookieSavingResponse.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IMetaDataBufferingWebResponse.java
 Sun Nov 14 07:14:24 2010
@@ -19,16 +19,19 @@ package org.apache.wicket.protocol.http;
 import org.apache.wicket.request.http.WebResponse;
 
 /**
- * any kind of response that is capable of remembering the cookies that were 
set
- * <p/>
- * this is for example needed to save the cookies during a redirect to buffer 
operation
+ * Any kind of response that buffers meta data such as cookies and headers and 
can unbuffer it into
+ * another response
+ * <p>
+ * This is, for example, needed to save the cookies during a redirect to 
buffer operation
+ * </p>
  */
-public interface ICookieSavingResponse
+public interface IMetaDataBufferingWebResponse
 {
        /**
         * transfer cookies to given web response
-        *
-        * @param webResponse web response that should receive the current 
cookies
+        * 
+        * @param webResponse
+        *            web response that should receive the current cookies
         */
-       void transferCookies(WebResponse webResponse);
+       void writeMetaData(WebResponse webResponse);
 }

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java?rev=1034946&r1=1034945&r2=1034946&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletResponse.java
 Sun Nov 14 07:14:24 2010
@@ -36,7 +36,7 @@ import javax.servlet.ServletOutputStream
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.wicket.protocol.http.ICookieSavingResponse;
+import org.apache.wicket.protocol.http.IMetaDataBufferingWebResponse;
 import org.apache.wicket.request.http.WebResponse;
 import org.apache.wicket.util.value.ValueMap;
 
@@ -47,7 +47,7 @@ import org.apache.wicket.util.value.Valu
  * 
  * @author Chris Turner
  */
-public class MockHttpServletResponse implements HttpServletResponse, 
ICookieSavingResponse
+public class MockHttpServletResponse implements HttpServletResponse, 
IMetaDataBufferingWebResponse
 {
        private static final int MODE_BINARY = 1;
 
@@ -818,9 +818,16 @@ public class MockHttpServletResponse imp
                return Collections.singletonList(headers.get(name).toString());
        }
 
-       public void transferCookies(WebResponse webResponse)
+       public void writeMetaData(WebResponse webResponse)
        {
                for (Cookie cookie : cookies)
+               {
                        webResponse.addCookie(cookie);
+               }
+               for (String name : headers.keySet())
+               {
+                       webResponse.setHeader(name, 
headers.get(name).toString());
+               }
+               webResponse.setStatus(status);
        }
 }
\ No newline at end of file

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?rev=1034946&r1=1034945&r2=1034946&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
 Sun Nov 14 07:14:24 2010
@@ -76,7 +76,7 @@ import org.apache.wicket.mock.MockReques
 import org.apache.wicket.mock.MockSessionStore;
 import org.apache.wicket.page.IPageManager;
 import org.apache.wicket.page.IPageManagerContext;
-import org.apache.wicket.protocol.http.ICookieSavingResponse;
+import org.apache.wicket.protocol.http.IMetaDataBufferingWebResponse;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.protocol.http.WicketFilter;
 import org.apache.wicket.protocol.http.mock.MockHttpServletRequest;
@@ -2078,11 +2078,14 @@ public class BaseWicketTester
                }
        }
 
-       private class WicketTesterServletWebResponse extends ServletWebResponse 
implements ICookieSavingResponse
+       private class WicketTesterServletWebResponse extends ServletWebResponse
+               implements
+                       IMetaDataBufferingWebResponse
        {
                private List<Cookie> cookies = new ArrayList<Cookie>();
 
-               public WicketTesterServletWebResponse(ServletWebRequest 
request, MockHttpServletResponse response)
+               public WicketTesterServletWebResponse(ServletWebRequest request,
+                       MockHttpServletResponse response)
                {
                        super(request, response);
                }
@@ -2101,10 +2104,13 @@ public class BaseWicketTester
                        cookies.add(cookie);
                }
 
-               public void transferCookies(WebResponse webResponse)
+               public void writeMetaData(WebResponse webResponse)
                {
                        for (Cookie cookie : cookies)
+                       {
                                webResponse.addCookie(cookie);
+                       }
+
                }
 
                @Override


Reply via email to