You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by vi...@apache.org on 2014/09/24 22:06:02 UTC

svn commit: r1627409 - in /tomcat/tc7.0.x/trunk: ./ java/javax/websocket/Session.java java/org/apache/tomcat/websocket/Util.java java/org/apache/tomcat/websocket/WsSession.java res/META-INF/websocket-api.jar.manifest webapps/docs/changelog.xml

Author: violetagg
Date: Wed Sep 24 20:06:01 2014
New Revision: 1627409

URL: http://svn.apache.org/r1627409
Log:
Merged revision 1626765 from tomcat/trunk:
Update WebSocket implementation to version 1.1 of the spec

Modified:
    tomcat/tc7.0.x/trunk/   (props changed)
    tomcat/tc7.0.x/trunk/java/javax/websocket/Session.java
    tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Util.java
    tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsSession.java
    tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest
    tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
  Merged /tomcat/trunk:r1626765

Modified: tomcat/tc7.0.x/trunk/java/javax/websocket/Session.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/javax/websocket/Session.java?rev=1627409&r1=1627408&r2=1627409&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/javax/websocket/Session.java (original)
+++ tomcat/tc7.0.x/trunk/java/javax/websocket/Session.java Wed Sep 24 20:06:01 2014
@@ -31,8 +31,22 @@ public interface Session extends Closeab
      */
     WebSocketContainer getContainer();
 
-    void addMessageHandler(MessageHandler listener)
-            throws IllegalStateException;
+    /**
+     * Registers a {@link MessageHandler} for incoming messages. Only one
+     * {@link MessageHandler} may be registered for each message type (text,
+     * binary, pong). The message type will be derived at runtime from the
+     * provided {@link MessageHandler} instance. It is not always possible to do
+     * this so it is better to use
+     * {@link #addMessageHandler(Class, javax.websocket.MessageHandler.Partial)}
+     * or
+     * {@link #addMessageHandler(Class, javax.websocket.MessageHandler.Whole)}.
+     *
+     * @param listener  The message handler for a incoming message
+     *
+     * @throws IllegalStateException  If a message handler has already been
+     *                                registered for the associated message type
+     */
+    void addMessageHandler(MessageHandler listener) throws IllegalStateException;
 
     Set<MessageHandler> getMessageHandlers();
 
@@ -126,4 +140,34 @@ public interface Session extends Closeab
      * this session is associated with.
      */
     Set<Session> getOpenSessions();
+
+    /**
+     * Registers a {@link MessageHandler} for partial incoming messages. Only
+     * one {@link MessageHandler} may be registered for each message type (text
+     * or binary, pong messages are never presented as partial messages).
+     *
+     * @param clazz     The type of message that the given handler is intended
+     *                  for
+     * @param listener  The message handler for a incoming message
+     *
+     * @throws IllegalStateException  If a message handler has already been
+     *                                registered for the associated message type
+     */
+    <T> void addMessageHandler(Class<T> clazz, MessageHandler.Partial<T> handler)
+            throws IllegalStateException;
+
+    /**
+     * Registers a {@link MessageHandler} for whole incoming messages. Only
+     * one {@link MessageHandler} may be registered for each message type (text,
+     * binary, pong).
+     *
+     * @param clazz     The type of message that the given handler is intended
+     *                  for
+     * @param listener  The message handler for a incoming message
+     *
+     * @throws IllegalStateException  If a message handler has already been
+     *                                registered for the associated message type
+     */
+    <T> void addMessageHandler(Class<T> clazz, MessageHandler.Whole<T> handler)
+            throws IllegalStateException;
 }

Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Util.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Util.java?rev=1627409&r1=1627408&r2=1627409&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Util.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Util.java Wed Sep 24 20:06:01 2014
@@ -358,12 +358,10 @@ public class Util {
     }
 
 
-    static Set<MessageHandlerResult> getMessageHandlers(
+    static Set<MessageHandlerResult> getMessageHandlers(Class<?> target,
             MessageHandler listener, EndpointConfig endpointConfig,
             Session session) {
 
-        Class<?> target = Util.getMessageType(listener);
-
         // Will never be more than 2 types
         Set<MessageHandlerResult> results = new HashSet<MessageHandlerResult>(2);
 

Modified: tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsSession.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1627409&r1=1627408&r2=1627409&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsSession.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsSession.java Wed Sep 24 20:06:01 2014
@@ -37,6 +37,8 @@ import javax.websocket.Endpoint;
 import javax.websocket.EndpointConfig;
 import javax.websocket.Extension;
 import javax.websocket.MessageHandler;
+import javax.websocket.MessageHandler.Partial;
+import javax.websocket.MessageHandler.Whole;
 import javax.websocket.PongMessage;
 import javax.websocket.RemoteEndpoint;
 import javax.websocket.SendResult;
@@ -164,10 +166,29 @@ public class WsSession implements Sessio
     }
 
 
-    @SuppressWarnings("unchecked")
     @Override
     public void addMessageHandler(MessageHandler listener) {
+        Class<?> target = Util.getMessageType(listener);
+        doAddMessageHandler(target, listener);
+    }
+
+
+    @Override
+    public <T> void addMessageHandler(Class<T> clazz, Partial<T> handler)
+            throws IllegalStateException {
+        doAddMessageHandler(clazz, handler);
+    }
 
+
+    @Override
+    public <T> void addMessageHandler(Class<T> clazz, Whole<T> handler)
+            throws IllegalStateException {
+        doAddMessageHandler(clazz, handler);
+    }
+
+
+    @SuppressWarnings("unchecked")
+    private void doAddMessageHandler(Class<?> target, MessageHandler listener) {
         checkState();
 
         // Message handlers that require decoders may map to text messages,
@@ -181,7 +202,7 @@ public class WsSession implements Sessio
         // just as easily.
 
         Set<MessageHandlerResult> mhResults =
-                Util.getMessageHandlers(listener, endpointConfig, this);
+                Util.getMessageHandlers(target, listener, endpointConfig, this);
 
         for (MessageHandlerResult mhResult : mhResults) {
             switch (mhResult.getType()) {

Modified: tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest?rev=1627409&r1=1627408&r2=1627409&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest (original)
+++ tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest Wed Sep 24 20:06:01 2014
@@ -4,8 +4,8 @@ X-Compile-Target-JDK: @target.jdk@
 
 Name: javax/el/
 Specification-Title: WebSocket
-Specification-Version: 1.0
+Specification-Version: 1.1
 Specification-Vendor: Oracle, Inc.
 Implementation-Title: javax.net.websocket
-Implementation-Version: 1.0.@websocket.revision@
+Implementation-Version: 1.1.@websocket.revision@
 Implementation-Vendor: Apache Software Foundation

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1627409&r1=1627408&r2=1627409&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Sep 24 20:06:01 2014
@@ -276,6 +276,10 @@
         <bug>56982</bug>: Return the actual negotiated extensions rather than an
         empty list for <code>Session.getNegotiatedExtensions()</code>. (markt)
       </fix>
+      <update>
+        Update the WebSocket implementation to support the Java WebSocket
+        specification version 1.1. (markt)
+      </update>
     </changelog>
   </subsection>
   <subsection name="Web applications">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r1627409 - in /tomcat/tc7.0.x/trunk: ./ java/javax/websocket/Session.java java/org/apache/tomcat/websocket/Util.java java/org/apache/tomcat/websocket/WsSession.java res/META-INF/websocket-api.jar.manifest webapps/docs/changelog.xml

Posted by Violeta Georgieva <mi...@gmail.com>.
2014-09-24 23:37 GMT+03:00 Konstantin Kolinko <kn...@gmail.com>:
>
> 2014-09-25 0:06 GMT+04:00  <vi...@apache.org>:
> > Author: violetagg
> > Date: Wed Sep 24 20:06:01 2014
> > New Revision: 1627409
> >
> > URL: http://svn.apache.org/r1627409
> > Log:
> > Merged revision 1626765 from tomcat/trunk:
> > Update WebSocket implementation to version 1.1 of the spec
> >
> > Modified:
> >     tomcat/tc7.0.x/trunk/   (props changed)
> >     tomcat/tc7.0.x/trunk/java/javax/websocket/Session.java
> >     tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Util.java
> >     tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsSession.java
> >     tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest
> >     tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
> >
> > Propchange: tomcat/tc7.0.x/trunk/
> >
------------------------------------------------------------------------------
> >   Merged /tomcat/trunk:r1626765
>
> > Modified: tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest
> > URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest?rev=1627409&r1=1627408&r2=1627409&view=diff
> >
==============================================================================
> > --- tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest
(original)
> > +++ tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest Wed
Sep 24 20:06:01 2014
> > @@ -4,8 +4,8 @@ X-Compile-Target-JDK: @target.jdk@
> >
> >  Name: javax/el/
>
> There have been two commits just before r1626765 that fixed typos in
> manifest files.
> For example, the above line in this manifest file is wrong.

I back-ported the additional changes.

Thanks
Violeta

>
> >  Specification-Title: WebSocket
> > -Specification-Version: 1.0
> > +Specification-Version: 1.1
> >  Specification-Vendor: Oracle, Inc.
> >  Implementation-Title: javax.net.websocket
> > -Implementation-Version: 1.0.@websocket.revision@
> > +Implementation-Version: 1.1.@websocket.revision@
> >  Implementation-Vendor: Apache Software Foundation
> >
> > Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
> > URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1627409&r1=1627408&r2=1627409&view=diff
> >
==============================================================================
> > --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
> > +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Sep 24 20:06:01
2014
> > @@ -276,6 +276,10 @@
> >          <bug>56982</bug>: Return the actual negotiated extensions
rather than an
> >          empty list for <code>Session.getNegotiatedExtensions()</code>.
(markt)
> >        </fix>
> > +      <update>
> > +        Update the WebSocket implementation to support the Java
WebSocket
> > +        specification version 1.1. (markt)
> > +      </update>
> >      </changelog>
> >    </subsection>
> >    <subsection name="Web applications">
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: dev-help@tomcat.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>

Re: svn commit: r1627409 - in /tomcat/tc7.0.x/trunk: ./ java/javax/websocket/Session.java java/org/apache/tomcat/websocket/Util.java java/org/apache/tomcat/websocket/WsSession.java res/META-INF/websocket-api.jar.manifest webapps/docs/changelog.xml

Posted by Konstantin Kolinko <kn...@gmail.com>.
2014-09-25 0:06 GMT+04:00  <vi...@apache.org>:
> Author: violetagg
> Date: Wed Sep 24 20:06:01 2014
> New Revision: 1627409
>
> URL: http://svn.apache.org/r1627409
> Log:
> Merged revision 1626765 from tomcat/trunk:
> Update WebSocket implementation to version 1.1 of the spec
>
> Modified:
>     tomcat/tc7.0.x/trunk/   (props changed)
>     tomcat/tc7.0.x/trunk/java/javax/websocket/Session.java
>     tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/Util.java
>     tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/WsSession.java
>     tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest
>     tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
>
> Propchange: tomcat/tc7.0.x/trunk/
> ------------------------------------------------------------------------------
>   Merged /tomcat/trunk:r1626765

> Modified: tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest
> URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest?rev=1627409&r1=1627408&r2=1627409&view=diff
> ==============================================================================
> --- tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest (original)
> +++ tomcat/tc7.0.x/trunk/res/META-INF/websocket-api.jar.manifest Wed Sep 24 20:06:01 2014
> @@ -4,8 +4,8 @@ X-Compile-Target-JDK: @target.jdk@
>
>  Name: javax/el/

There have been two commits just before r1626765 that fixed typos in
manifest files.
For example, the above line in this manifest file is wrong.

>  Specification-Title: WebSocket
> -Specification-Version: 1.0
> +Specification-Version: 1.1
>  Specification-Vendor: Oracle, Inc.
>  Implementation-Title: javax.net.websocket
> -Implementation-Version: 1.0.@websocket.revision@
> +Implementation-Version: 1.1.@websocket.revision@
>  Implementation-Vendor: Apache Software Foundation
>
> Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
> URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1627409&r1=1627408&r2=1627409&view=diff
> ==============================================================================
> --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
> +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Sep 24 20:06:01 2014
> @@ -276,6 +276,10 @@
>          <bug>56982</bug>: Return the actual negotiated extensions rather than an
>          empty list for <code>Session.getNegotiatedExtensions()</code>. (markt)
>        </fix>
> +      <update>
> +        Update the WebSocket implementation to support the Java WebSocket
> +        specification version 1.1. (markt)
> +      </update>
>      </changelog>
>    </subsection>
>    <subsection name="Web applications">
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org