Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x ed9cbb23a -> 01b7de0c6


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/01b7de0c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/01b7de0c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/01b7de0c

Branch: refs/heads/wicket-6.x
Commit: 01b7de0c68c1f2e8e7be7c04676c59c89f1ffb73
Parents: ed9cbb2
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:11:44 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/01b7de0c/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