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