Updated Branches:
  refs/heads/wicket-6.x b1b450f97 -> cf99053f8

Minor improvements

(cherry picked from commit efce377cfdbbe0bc1ca58cde66f29c2b2c0d531f)


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

Branch: refs/heads/wicket-6.x
Commit: cf99053f87e8350bf5991ddc98cef272a8896014
Parents: b1b450f
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Thu Jan 30 09:22:33 2014 +0100
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Thu Jan 30 09:36:12 2014 +0100

----------------------------------------------------------------------
 .../protocol/ws/AbstractUpgradeFilter.java      |  8 +--
 .../ws/api/AbstractWebSocketProcessor.java      |  8 ++-
 .../protocol/ws/api/BaseWebSocketBehavior.java  |  3 +
 .../wicket/protocol/ws/api/HttpSessionCopy.java | 67 ++++++++++++--------
 .../protocol/ws/api/ServletRequestCopy.java     | 15 ++---
 .../ws/api/res/js/wicket-websocket-jquery.js    |  7 +-
 .../api/res/js/wicket-websocket-setup.js.tmpl   |  2 +-
 7 files changed, 63 insertions(+), 47 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/cf99053f/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/AbstractUpgradeFilter.java
----------------------------------------------------------------------
diff --git 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/AbstractUpgradeFilter.java
 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/AbstractUpgradeFilter.java
index 005e0e0..489b10d 100644
--- 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/AbstractUpgradeFilter.java
+++ 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/AbstractUpgradeFilter.java
@@ -79,20 +79,20 @@ public class AbstractUpgradeFilter extends WicketFilter
                String key;
                String subProtocol = null;
 
-               if (!headerContainsToken(req, "upgrade", "websocket"))
+               if (!headerContainsToken(req, "Upgrade", "websocket"))
                {
                        return false;
                }
 
-               if (!headerContainsToken(req, "connection", "upgrade"))
+               if (!headerContainsToken(req, "Connection", "upgrade"))
                {
                        resp.sendError(HttpServletResponse.SC_BAD_REQUEST);
                        return false;
                }
 
-               if (!headerContainsToken(req, "sec-websocket-version", "13"))
+               if (!headerContainsToken(req, "Sec-websocket-version", "13"))
                {
-                       resp.setStatus(426);
+                       resp.setStatus(HttpServletResponse.SC_BAD_REQUEST); // 
http://tools.ietf.org/html/rfc6455#section-4.4
                        resp.setHeader("Sec-WebSocket-Version", "13");
                        return false;
                }

http://git-wip-us.apache.org/repos/asf/wicket/blob/cf99053f/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
----------------------------------------------------------------------
diff --git 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
index 07b8c83..6a98ccd 100644
--- 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
+++ 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java
@@ -86,13 +86,15 @@ public abstract class AbstractWebSocketProcessor implements 
IWebSocketProcessor
                try
                {
                        GET_FILTER_PATH_METHOD = 
WicketFilter.class.getDeclaredMethod("getFilterPath", new Class[]{});
-               } catch (Exception e)
+               }
+               catch (Exception e)
                {
                        throw new RuntimeException(e);
                }
                GET_FILTER_PATH_METHOD.setAccessible(true);
        }
 
+
        private final WebRequest webRequest;
        private final int pageId;
        private final String resourceName;
@@ -146,13 +148,15 @@ public abstract class AbstractWebSocketProcessor 
implements IWebSocketProcessor
                try
                {
                        filterPath = (String) 
GET_FILTER_PATH_METHOD.invoke(wicketFilter);
-               } catch (Exception e)
+               }
+               catch (Exception e)
                {
                        throw new RuntimeException(e);
                }
                return filterPath;
        }
 
+
        @Override
        public void onMessage(final String message)
        {

http://git-wip-us.apache.org/repos/asf/wicket/blob/cf99053f/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/BaseWebSocketBehavior.java
----------------------------------------------------------------------
diff --git 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/BaseWebSocketBehavior.java
 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/BaseWebSocketBehavior.java
index e9e2406..1810953 100644
--- 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/BaseWebSocketBehavior.java
+++ 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/BaseWebSocketBehavior.java
@@ -101,6 +101,9 @@ public class BaseWebSocketBehavior extends Behavior
                String contextPath = component.getRequest().getContextPath();
                variables.put("contextPath", contextPath);
 
+               // preserve the application name for JSR356 based impl
+               variables.put("applicationName", 
component.getApplication().getName());
+
                String webSocketSetupScript = 
webSocketSetupTemplate.asString(variables);
 
                
response.render(OnDomReadyHeaderItem.forScript(webSocketSetupScript));

http://git-wip-us.apache.org/repos/asf/wicket/blob/cf99053f/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/HttpSessionCopy.java
----------------------------------------------------------------------
diff --git 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/HttpSessionCopy.java
 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/HttpSessionCopy.java
index 2d5fed1..e7a770b 100644
--- 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/HttpSessionCopy.java
+++ 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/HttpSessionCopy.java
@@ -37,12 +37,14 @@ public class HttpSessionCopy implements HttpSession
        private final ServletContext servletContext;
        private int maxInactiveInterval;
 
-       public HttpSessionCopy(final HttpSession originalSession) {
+       public HttpSessionCopy(final HttpSession originalSession)
+       {
                this.sessionId = originalSession.getId();
                this.servletContext = originalSession.getServletContext();
                this.creationTime = originalSession.getCreationTime();
-
                this.attributes = new ConcurrentHashMap<String, Object>();
+
+               @SuppressWarnings("unchecked")
                Enumeration<String> attributeNames = 
originalSession.getAttributeNames();
                while (attributeNames.hasMoreElements())
                {
@@ -53,93 +55,106 @@ public class HttpSessionCopy implements HttpSession
 
        }
 
-       public void destroy(){
-               attributes.clear();
-       }
-
        @Override
-       public long getCreationTime() {
+       public long getCreationTime()
+       {
                return creationTime;
        }
 
        @Override
-       public String getId() {
+       public String getId()
+       {
                return sessionId;
        }
 
-       // TODO: Not supported for now. Must update on every WebSocket Message
        @Override
-       public long getLastAccessedTime() {
+       public long getLastAccessedTime()
+       {
                return 0;
        }
 
        @Override
-       public ServletContext getServletContext() {
+       public ServletContext getServletContext()
+       {
                return servletContext;
        }
 
        @Override
-       public void setMaxInactiveInterval(int interval) {
+       public void setMaxInactiveInterval(int interval)
+       {
                this.maxInactiveInterval = interval;
        }
 
        @Override
-       public int getMaxInactiveInterval() {
+       public int getMaxInactiveInterval()
+       {
                return maxInactiveInterval;
        }
 
        @Override
-       public HttpSessionContext getSessionContext() {
+       public HttpSessionContext getSessionContext()
+       {
                return null;
        }
 
        @Override
-       public Object getAttribute(String name) {
+       public Object getAttribute(String name)
+       {
                return attributes.get(name);
        }
 
        @Override
-       public Object getValue(String name) {
+       public Object getValue(String name)
+       {
                return attributes.get(name);
        }
 
        @Override
-       public Enumeration<String> getAttributeNames() {
+       public Enumeration<String> getAttributeNames()
+       {
                return attributes.keys();
        }
 
        @Override
-       public String[] getValueNames() {
-               return (String[]) Collections.list(attributes.keys()).toArray();
+       public String[] getValueNames()
+       {
+               return (String[])Collections.list(attributes.keys()).toArray();
        }
 
        @Override
-       public void setAttribute(String name, Object value) {
+       public void setAttribute(String name, Object value)
+       {
                attributes.put(name, value);
        }
 
        @Override
-       public void putValue(String name, Object value) {
+       public void putValue(String name, Object value)
+       {
                attributes.put(name, value);
        }
 
        @Override
-       public void removeAttribute(String name) {
+       public void removeAttribute(String name)
+       {
                attributes.remove(name);
        }
 
        @Override
-       public void removeValue(String name) {
+       public void removeValue(String name)
+       {
                attributes.remove(name);
        }
 
-       // TODO: Not supported for now.
        @Override
-       public void invalidate() {
+       public void invalidate()
+       {
+               attributes.clear();
        }
 
        @Override
-       public boolean isNew() {
+       public boolean isNew()
+       {
                return false;
        }
+
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/cf99053f/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java
----------------------------------------------------------------------
diff --git 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java
 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java
index 02bad1a..e51bcfe 100644
--- 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java
+++ 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java
@@ -68,33 +68,26 @@ public class ServletRequestCopy implements 
HttpServletRequest
                HttpSession session = request.getSession(true);
                httpSession = new HttpSessionCopy(session);
 
-               Enumeration<String> e = request.getHeaderNames();
                String s;
-               while (e.hasMoreElements()) {
+               Enumeration<String> e = request.getHeaderNames();
+               while (e != null && e.hasMoreElements()) {
                        s = e.nextElement();
                        headers.put(s, request.getHeader(s));
                }
 
                e = request.getAttributeNames();
-               while (e.hasMoreElements()) {
+               while (e != null && e.hasMoreElements()) {
                        s = e.nextElement();
                        attributes.put(s, request.getAttribute(s));
                }
 
                e = request.getParameterNames();
-               while (e.hasMoreElements()) {
+               while (e != null && e.hasMoreElements()) {
                        s = e.nextElement();
                        parameters.put(s, request.getParameterValues(s));
                }
        }
 
-       public void destroy() {
-               attributes.clear();
-               headers.clear();
-               parameters.clear();
-               httpSession.destroy();
-       }
-
        @Override
        public String getServerName() {
                return serverName;

http://git-wip-us.apache.org/repos/asf/wicket/blob/cf99053f/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-jquery.js
----------------------------------------------------------------------
diff --git 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-jquery.js
 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-jquery.js
index 5c07a44..22df796 100644
--- 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-jquery.js
+++ 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-jquery.js
@@ -47,12 +47,13 @@
                                url = protocol + '//' + document.location.host 
+ Wicket.WebSocket.contextPath + '/wicket/websocket';
 
                                if (Wicket.WebSocket.pageId !== false) {
-                                       url += '?pageId=' + 
Wicket.WebSocket.pageId;
+                                       url += '?pageId=' + 
encodeURIComponent(Wicket.WebSocket.pageId);
                                } else if (Wicket.WebSocket.resourceName) {
-                                       url += '?resourceName=' + 
Wicket.WebSocket.resourceName;
+                                       url += '?resourceName=' + 
encodeURIComponent(Wicket.WebSocket.resourceName);
                                }
 
-                               url += '&wicket-ajax-baseurl=' + 
Wicket.WebSocket.baseUrl;
+                               url += '&wicket-ajax-baseurl=' + 
encodeURIComponent(Wicket.WebSocket.baseUrl);
+                               url += '&wicket-app-name=' + 
encodeURIComponent(Wicket.WebSocket.appName);
                                self.ws = new WebSocket(url);
 
                                self.ws.onopen = function (evt) {

http://git-wip-us.apache.org/repos/asf/wicket/blob/cf99053f/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-setup.js.tmpl
----------------------------------------------------------------------
diff --git 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-setup.js.tmpl
 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-setup.js.tmpl
index fe81fdc..b5b3ae7 100644
--- 
a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-setup.js.tmpl
+++ 
b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/res/js/wicket-websocket-setup.js.tmpl
@@ -3,7 +3,7 @@
 
        if (!Wicket.WebSocket.key) {
                jQuery.extend(Wicket.WebSocket, { pageId: ${pageId}, 
resourceName: '${resourceName}',
-                       baseUrl: '${baseUrl}', contextPath: '${contextPath}' });
+                       baseUrl: '${baseUrl}', contextPath: '${contextPath}', 
appName: '${applicationName}' });
                Wicket.WebSocket.createDefaultConnection();
        }
 })();

Reply via email to