You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2010/11/13 11:53:57 UTC

svn commit: r1034726 - in /wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http: BufferedWebResponse.java HeaderBufferingWebResponse.java IBufferedWebResponse.java

Author: pete
Date: Sat Nov 13 10:53:57 2010
New Revision: 1034726

URL: http://svn.apache.org/viewvc?rev=1034726&view=rev
Log:
transfer-buffered-cookie-operations

Added:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java
Modified:
    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

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=1034726&r1=1034725&r2=1034726&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 Sat Nov 13 10:53:57 2010
@@ -36,7 +36,7 @@ import org.apache.wicket.util.lang.Args;
  * 
  * @author Matej Knopp
  */
-public class BufferedWebResponse extends WebResponse
+public class BufferedWebResponse extends WebResponse implements IBufferedWebResponse
 {
 	private final transient WebResponse originalResponse;
 
@@ -47,9 +47,30 @@ public class BufferedWebResponse extends
 	 */
 	public BufferedWebResponse(WebResponse originalResponse)
 	{
+		// if original response had some cookies set we should not forget to transfer them
+		if(originalResponse instanceof IBufferedWebResponse)
+			((IBufferedWebResponse) originalResponse).transferCookies(this);
+
 		this.originalResponse = originalResponse;
 	}
 
+	/**
+	 * transfer cookie operations (add, clear) to given web response
+	 *
+	 * @param response web response that should receive the current cookie operation
+	 */
+	public void transferCookies(WebResponse response)
+	{
+		for (Action action : actions)
+		{
+			if (action instanceof AddCookieAction)
+				action.invoke(response);
+			else if (action instanceof ClearCookieAction)
+			action.invoke(response);
+		}
+	}
+
+
 	@Override
 	public String encodeURL(CharSequence url)
 	{

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=1034726&r1=1034725&r2=1034726&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 Sat Nov 13 10:53:57 2010
@@ -33,7 +33,7 @@ import org.apache.wicket.request.http.We
  * 
  * @author Matej Knopp
  */
-class HeaderBufferingWebResponse extends WebResponse
+class HeaderBufferingWebResponse extends WebResponse implements IBufferedWebResponse
 {
 	private final WebResponse originalResponse;
 	private final BufferedWebResponse bufferedResponse;
@@ -175,4 +175,9 @@ class HeaderBufferingWebResponse extends
 		bufferedResponse.reset();
 		bufferedWritten = false;
 	}
+
+	public void transferCookies(WebResponse webResponse)
+	{
+		bufferedResponse.transferCookies(webResponse);
+	}
 }

Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java?rev=1034726&view=auto
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java (added)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java Sat Nov 13 10:53:57 2010
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.protocol.http;
+
+import org.apache.wicket.request.http.WebResponse;
+
+interface IBufferedWebResponse
+{
+	void transferCookies(WebResponse webResponse);
+}