You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2010/11/14 08:14:24 UTC
svn commit: r1034946 - in /wicket/trunk:
wicket-request/src/main/java/org/apache/wicket/request/http/
wicket/src/main/java/org/apache/wicket/protocol/http/
wicket/src/main/java/org/apache/wicket/protocol/http/mock/
wicket/src/main/java/org/apache/wicke...
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