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