Repository: wicket
Updated Branches:
  refs/heads/wicket-7.x 3ae55ea92 -> e0502b880


WICKET-6064 WebSocketResponse.sendRedirect could be supported with 
<ajax-response><redirect>...</></>


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e0502b88
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e0502b88
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e0502b88

Branch: refs/heads/wicket-7.x
Commit: e0502b8805df634237f421a9873db8e8b637909f
Parents: 3ae55ea
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Sun Jan 10 20:03:28 2016 +0100
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Sun Jan 10 20:06:05 2016 +0100

----------------------------------------------------------------------
 .../protocol/ws/api/WebSocketResponse.java       | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/e0502b88/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java
----------------------------------------------------------------------
diff --git 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java
 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java
index fee187f..1296325 100644
--- 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java
+++ 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java
@@ -47,6 +47,8 @@ public class WebSocketResponse extends WebResponse
 
        private ByteArrayOutputStream binary;
 
+       private boolean isRedirect = false;
+
        public WebSocketResponse(final IWebSocketConnection conn)
        {
                this.connection = conn;
@@ -109,10 +111,7 @@ public class WebSocketResponse extends WebResponse
        @Override
        public void reset()
        {
-               if (text != null)
-               {
-                       text = null;
-               }
+               text = null;
                if (binary != null)
                {
                        try
@@ -124,6 +123,7 @@ public class WebSocketResponse extends WebResponse
                        }
                        binary = null;
                }
+               isRedirect = false;
                super.reset();
        }
 
@@ -200,24 +200,27 @@ public class WebSocketResponse extends WebResponse
        @Override
        public String encodeRedirectURL(CharSequence url)
        {
-               throw new UnsupportedOperationException();
+               return url.toString();
        }
 
        @Override
        public void sendRedirect(String url)
        {
-               throw new UnsupportedOperationException();
+               isRedirect = true;
+               url = encodeRedirectURL(url);
+
+               String ajaxRedirect = "<ajax-response><redirect><![CDATA[" + 
url + "]]></redirect></ajax-response>";
+               write(ajaxRedirect);
        }
 
        @Override
        public boolean isRedirect()
        {
-               return false;
+               return isRedirect;
        }
 
        @Override
        public void flush()
        {
-               throw new UnsupportedOperationException();
        }
 }

Reply via email to