Author: ivaynberg
Date: Sat Jul  9 18:13:29 2011
New Revision: 1144713

URL: http://svn.apache.org/viewvc?rev=1144713&view=rev
Log:
break out encodeRedirectURL method so its easier to override redirect url 
encoding

Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebResponse.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebResponse.java?rev=1144713&r1=1144712&r2=1144713&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockWebResponse.java
 Sat Jul  9 18:13:29 2011
@@ -58,7 +58,7 @@ public class MockWebResponse extends Web
 
        /** current octets in response body */
        private ByteArrayOutputStream binaryResponse;
-       
+
        /** http response status */
        private Integer status;
 
@@ -185,9 +185,9 @@ public class MockWebResponse extends Web
         * set content type if it is specified
         * 
         * @param name
-        *         header name
+        *            header name
         * @param value
-        *         header value
+        *            header value
         */
        private void internalSetContentType(String name, String value)
        {
@@ -249,6 +249,12 @@ public class MockWebResponse extends Web
        }
 
        @Override
+       public String encodeRedirectURL(CharSequence url)
+       {
+               return url.toString();
+       }
+
+       @Override
        public void write(CharSequence sequence)
        {
                if (binaryResponse != null)

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java?rev=1144713&r1=1144712&r2=1144713&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java
 Sat Jul  9 18:13:29 2011
@@ -90,6 +90,19 @@ public class BufferedWebResponse extends
                }
        }
 
+       @Override
+       public String encodeRedirectURL(CharSequence url)
+       {
+               if (originalResponse != null)
+               {
+                       return originalResponse.encodeRedirectURL(url);
+               }
+               else
+               {
+                       return url != null ? url.toString() : null;
+               }
+       }
+
        private static abstract class Action implements Comparable<Action>
        {
                protected abstract void invoke(WebResponse response);

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java?rev=1144713&r1=1144712&r2=1144713&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
 Sat Jul  9 18:13:29 2011
@@ -162,6 +162,12 @@ class HeaderBufferingWebResponse extends
        }
 
        @Override
+       public String encodeRedirectURL(CharSequence url)
+       {
+               return originalResponse.encodeRedirectURL(url);
+       }
+
+       @Override
        public void write(CharSequence sequence)
        {
                writeBuffered();

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java?rev=1144713&r1=1144712&r2=1144713&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java
 Sat Jul  9 18:13:29 2011
@@ -213,15 +213,15 @@ public class ServletWebResponse extends 
                        Url append = Url.parse(url, charset);
                        current.concatSegments(append.getSegments());
                        Url result = new Url(current.getSegments(), 
append.getQueryParameters());
-                       
+
                        String path = result.toString();
-                       
+
                        // replace redirect to empty path with '/'
-                       if(Strings.isEmpty(path))
+                       if (Strings.isEmpty(path))
                        {
                                path = "/";
                        }
-                       
+
                        return Strings.join("/", getAbsolutePrefix(), 
httpServletRequest.getContextPath(),
                                webRequest.getFilterPrefix(), path);
                }
@@ -230,13 +230,19 @@ public class ServletWebResponse extends 
        private boolean redirect = false;
 
        @Override
+       public String encodeRedirectURL(CharSequence url)
+       {
+               return httpServletResponse.encodeRedirectURL(url.toString());
+       }
+
+       @Override
        public void sendRedirect(String url)
        {
                try
                {
                        redirect = true;
                        url = getAbsoluteURL(url);
-                       url = httpServletResponse.encodeRedirectURL(url);
+                       url = encodeRedirectURL(url);
 
                        // wicket redirects should never be cached
                        disableCaching();


Reply via email to