Author: markt
Date: Thu Jan 31 12:15:23 2013
New Revision: 1440926
URL: http://svn.apache.org/viewvc?rev=1440926&view=rev
Log:
Update WebSocket API to latest EG version (between v011 and v012)
Removed:
tomcat/trunk/test/javax/websocket/
Modified:
tomcat/trunk/java/javax/websocket/ClientEndpointConfiguration.java
tomcat/trunk/java/javax/websocket/ContainerProvider.java
tomcat/trunk/java/javax/websocket/DefaultClientConfiguration.java
tomcat/trunk/java/javax/websocket/Extension.java
tomcat/trunk/java/javax/websocket/RemoteEndpoint.java
tomcat/trunk/java/javax/websocket/Session.java
tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
Modified: tomcat/trunk/java/javax/websocket/ClientEndpointConfiguration.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/ClientEndpointConfiguration.java?rev=1440926&r1=1440925&r2=1440926&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/ClientEndpointConfiguration.java
(original)
+++ tomcat/trunk/java/javax/websocket/ClientEndpointConfiguration.java Thu Jan
31 12:15:23 2013
@@ -23,7 +23,7 @@ public interface ClientEndpointConfigura
List<String> getPreferredSubprotocols();
- List<String> getExtensions();
+ List<Extension> getExtensions();
/**
* Provides the client with a mechanism to inspect and/or modify the
headers
Modified: tomcat/trunk/java/javax/websocket/ContainerProvider.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/ContainerProvider.java?rev=1440926&r1=1440925&r2=1440926&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/ContainerProvider.java (original)
+++ tomcat/trunk/java/javax/websocket/ContainerProvider.java Thu Jan 31
12:15:23 2013
@@ -16,21 +16,12 @@
*/
package javax.websocket;
-import java.util.Map;
-import java.util.WeakHashMap;
-
/**
* Provides access to the implementation. This version of the API is hard-coded
* to use the Apache Tomcat WebSocket implementation.
*/
public class ContainerProvider {
- // Needs to be a WeakHashMap to prevent memory leaks when a context is
- // stopped
- private static Map<ClassLoader,WebSocketContainer> classLoaderContainerMap
=
- new WeakHashMap<>();
- private static Object classLoaderContainerMapLock = new Object();
-
private static final String DEFAULT_PROVIDER_CLASS_NAME =
"org.apache.tomcat.websocket.WsWebSocketContainer";
@@ -46,22 +37,15 @@ public class ContainerProvider {
}
/**
- * Obtain a reference to the per class loader ClientContainer used to
create
- * outgoing WebSocket connections.
+ * Create a new ClientContainer used to create outgoing WebSocket
+ * connections.
*/
- public static WebSocketContainer getClientContainer() {
- ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ public static WebSocketContainer createClientContainer() {
WebSocketContainer result = null;
- synchronized (classLoaderContainerMapLock) {
- result = classLoaderContainerMap.get(tccl);
- if (result == null) {
- try {
- result = clazz.newInstance();
- } catch (InstantiationException | IllegalAccessException e) {
- throw new IllegalArgumentException(e);
- }
- classLoaderContainerMap.put(tccl, result);
- }
+ try {
+ result = clazz.newInstance();
+ } catch (InstantiationException | IllegalAccessException e) {
+ throw new IllegalArgumentException(e);
}
return result;
}
Modified: tomcat/trunk/java/javax/websocket/DefaultClientConfiguration.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/DefaultClientConfiguration.java?rev=1440926&r1=1440925&r2=1440926&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/DefaultClientConfiguration.java (original)
+++ tomcat/trunk/java/javax/websocket/DefaultClientConfiguration.java Thu Jan
31 12:15:23 2013
@@ -22,7 +22,7 @@ import java.util.Map;
public class DefaultClientConfiguration implements ClientEndpointConfiguration
{
private List<String> preferredSubprotocols = new ArrayList<>();
- private List<String> extensions = new ArrayList<>();
+ private List<Extension> extensions = new ArrayList<>();
private List<Encoder> encoders = new ArrayList<>();
private List<Decoder> decoders = new ArrayList<>();
@@ -38,12 +38,12 @@ public class DefaultClientConfiguration
}
@Override
- public List<String> getExtensions() {
+ public List<Extension> getExtensions() {
return extensions;
}
public ClientEndpointConfiguration setExtensions(
- List<String> extensions) {
+ List<Extension> extensions) {
this.extensions = extensions;
return this;
}
Modified: tomcat/trunk/java/javax/websocket/Extension.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/Extension.java?rev=1440926&r1=1440925&r2=1440926&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/Extension.java (original)
+++ tomcat/trunk/java/javax/websocket/Extension.java Thu Jan 31 12:15:23 2013
@@ -16,9 +16,14 @@
*/
package javax.websocket;
-import java.util.Map;
+import java.util.List;
public interface Extension {
String getName();
- Map<String,String> getParameters();
+ List<Parameter> getParameters();
+
+ interface Parameter {
+ String getName();
+ String getValue();
+ }
}
Modified: tomcat/trunk/java/javax/websocket/RemoteEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/RemoteEndpoint.java?rev=1440926&r1=1440925&r2=1440926&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/RemoteEndpoint.java (original)
+++ tomcat/trunk/java/javax/websocket/RemoteEndpoint.java Thu Jan 31 12:15:23
2013
@@ -80,8 +80,8 @@ public interface RemoteEndpoint {
void sendObjectByCompletion(Object obj, SendHandler completion);
- void sendPing(ByteBuffer applicationData) throws IOException;
+ void sendPing(ByteBuffer applicationData) throws IOException,
IllegalArgumentException;
- void sendPong(ByteBuffer applicationData) throws IOException;
+ void sendPong(ByteBuffer applicationData) throws IOException,
IllegalArgumentException;
}
Modified: tomcat/trunk/java/javax/websocket/Session.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/Session.java?rev=1440926&r1=1440925&r2=1440926&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/Session.java (original)
+++ tomcat/trunk/java/javax/websocket/Session.java Thu Jan 31 12:15:23 2013
@@ -16,6 +16,7 @@
*/
package javax.websocket;
+import java.io.Closeable;
import java.io.IOException;
import java.net.URI;
import java.security.Principal;
@@ -23,7 +24,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-public interface Session {
+public interface Session extends Closeable {
/**
* Returns the container that created this session.
@@ -41,7 +42,7 @@ public interface Session {
String getNegotiatedSubprotocol();
- List<String> getNegotiatedExtensions();
+ List<Extension> getNegotiatedExtensions();
boolean isSecure();
@@ -66,6 +67,7 @@ public interface Session {
*
* @throws IOException
*/
+ @Override
void close() throws IOException;
Modified: tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java?rev=1440926&r1=1440925&r2=1440926&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsSession.java Thu Jan 31
12:15:23 2013
@@ -33,6 +33,7 @@ import java.util.concurrent.ConcurrentHa
import javax.websocket.CloseReason;
import javax.websocket.CloseReason.CloseCodes;
import javax.websocket.Endpoint;
+import javax.websocket.Extension;
import javax.websocket.MessageHandler;
import javax.websocket.PongMessage;
import javax.websocket.RemoteEndpoint;
@@ -174,7 +175,7 @@ public class WsSession implements Sessio
@Override
- public List<String> getNegotiatedExtensions() {
+ public List<Extension> getNegotiatedExtensions() {
// TODO Auto-generated method stub
return null;
}
Modified:
tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java?rev=1440926&r1=1440925&r2=1440926&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
(original)
+++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
Thu Jan 31 12:15:23 2013
@@ -78,7 +78,8 @@ public class TestWsWebSocketContainer ex
tomcat.start();
- WebSocketContainer wsContainer =
ContainerProvider.getClientContainer();
+ WebSocketContainer wsContainer =
+ ContainerProvider.createClientContainer();
Session wsSession = wsContainer.connectToServer(TesterEndpoint.class,
new DefaultClientConfiguration(), new URI("http://localhost:" +
getPort() + EchoConfig.PATH_ASYNC));
@@ -107,7 +108,8 @@ public class TestWsWebSocketContainer ex
tomcat.start();
- WebSocketContainer wsContainer =
ContainerProvider.getClientContainer();
+ WebSocketContainer wsContainer =
+ ContainerProvider.createClientContainer();
wsContainer.connectToServer(TesterEndpoint.class,
new DefaultClientConfiguration(), new URI("ftp://localhost:" +
getPort() + EchoConfig.PATH_ASYNC));
@@ -124,7 +126,8 @@ public class TestWsWebSocketContainer ex
tomcat.start();
- WebSocketContainer wsContainer =
ContainerProvider.getClientContainer();
+ WebSocketContainer wsContainer =
+ ContainerProvider.createClientContainer();
wsContainer.connectToServer(TesterEndpoint.class,
new DefaultClientConfiguration(),
new URI("http://" + EchoConfig.PATH_ASYNC));
@@ -188,13 +191,8 @@ public class TestWsWebSocketContainer ex
tomcat.addContext("", System.getProperty("java.io.tmpdir"));
ctx.addApplicationListener(EchoConfig.class.getName());
- WebSocketContainer wsContainer =
ContainerProvider.getClientContainer();
-
- // Reset client buffer size as client container is retained between
- // tests
-
- wsContainer.setMaxBinaryMessageBufferSize(8192);
- wsContainer.setMaxTextMessageBufferSize(8192);
+ WebSocketContainer wsContainer =
+ ContainerProvider.createClientContainer();
if (isServerBuffer) {
if (isTextBuffer) {
@@ -277,13 +275,8 @@ public class TestWsWebSocketContainer ex
tomcat.addContext("", System.getProperty("java.io.tmpdir"));
ctx.addApplicationListener(BlockingConfig.class.getName());
- WebSocketContainer wsContainer =
ContainerProvider.getClientContainer();
-
- // Reset client buffer size as client container is retained between
- // tests
- wsContainer.setMaxBinaryMessageBufferSize(8192);
- wsContainer.setMaxTextMessageBufferSize(8192);
-
+ WebSocketContainer wsContainer =
+ ContainerProvider.createClientContainer();
// Set the async timeout
if (setTimeoutOnContainer) {
@@ -367,12 +360,8 @@ public class TestWsWebSocketContainer ex
ctx.addApplicationListener(WsListener.class.getName());
ctx.addApplicationListener(ConstantTxConfig.class.getName());
- WebSocketContainer wsContainer =
ContainerProvider.getClientContainer();
-
- // Reset client buffer size as client container is retained between
- // tests
- wsContainer.setMaxBinaryMessageBufferSize(8192);
- wsContainer.setMaxTextMessageBufferSize(8192);
+ WebSocketContainer wsContainer =
+ ContainerProvider.createClientContainer();
tomcat.start();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]