Author: markt
Date: Wed Mar  6 14:18:57 2013
New Revision: 1453340

URL: http://svn.apache.org/r1453340
Log:
Refactoring towards v014 API (not yet complete)

Added:
    tomcat/trunk/java/javax/websocket/SessionException.java   (with props)
Modified:
    tomcat/trunk/java/javax/websocket/WebSocketContainer.java
    tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java

Added: tomcat/trunk/java/javax/websocket/SessionException.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/SessionException.java?rev=1453340&view=auto
==============================================================================
--- tomcat/trunk/java/javax/websocket/SessionException.java (added)
+++ tomcat/trunk/java/javax/websocket/SessionException.java Wed Mar  6 14:18:57 
2013
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.websocket;
+
+public class SessionException extends Exception {
+
+    private static final long serialVersionUID = 1L;
+
+    private final Session session;
+
+
+    public SessionException(String message, Throwable cause, Session session) {
+        super(message, cause);
+        this.session = session;
+    }
+
+
+    public Session getSession() {
+        return session;
+    }
+}

Propchange: tomcat/trunk/java/javax/websocket/SessionException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: tomcat/trunk/java/javax/websocket/WebSocketContainer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/WebSocketContainer.java?rev=1453340&r1=1453339&r2=1453340&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/WebSocketContainer.java (original)
+++ tomcat/trunk/java/javax/websocket/WebSocketContainer.java Wed Mar  6 
14:18:57 2013
@@ -34,6 +34,9 @@ public interface WebSocketContainer {
      */
     void setAsyncSendTimeout(long timeout);
 
+    Session connectToServer(Object endpoint, URI path)
+            throws DeploymentException, IOException;
+
     Session connectToServer(Class<?> annotatedEndpointClass, URI path)
             throws DeploymentException, IOException;
 
@@ -41,6 +44,25 @@ public interface WebSocketContainer {
      * Creates a new connection to the WebSocket.
      *
      * @param endpoint
+     *            The endpoint instance that will handle responses from the
+     *            server
+     * @param clientEndpointConfiguration
+     *            Used to configure the new connection
+     * @param path
+     *            The full URL of the WebSocket endpoint to connect to
+     *
+     * @return The WebSocket session for the connection
+     *
+     * @throws DeploymentException  If the connection can not be established
+     */
+    Session connectToServer(Endpoint endpoint,
+            ClientEndpointConfig clientEndpointConfiguration, URI path)
+            throws DeploymentException, IOException;
+
+    /**
+     * Creates a new connection to the WebSocket.
+     *
+     * @param endpoint
      *            An instance of this class will be created to handle responses
      *            from the server
      * @param clientEndpointConfiguration

Modified: 
tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java?rev=1453340&r1=1453339&r2=1453340&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java 
(original)
+++ tomcat/trunk/java/org/apache/tomcat/websocket/WsWebSocketContainer.java Wed 
Mar  6 14:18:57 2013
@@ -69,6 +69,16 @@ public class WsWebSocketContainer
     private int backgroundProcessCount = 0;
     private int processPeriod = 10;
 
+
+
+    @Override
+    public Session connectToServer(Object pojo, URI path)
+            throws DeploymentException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+
     @Override
     public Session connectToServer(Class<?> annotatedEndpointClass, URI path)
             throws DeploymentException {
@@ -82,6 +92,24 @@ public class WsWebSocketContainer
             ClientEndpointConfig clientEndpointConfiguration, URI path)
             throws DeploymentException {
 
+        Endpoint endpoint;
+        try {
+            endpoint = clazz.newInstance();
+        } catch (InstantiationException | IllegalAccessException e) {
+            throw new DeploymentException(sm.getString(
+                    "wsWebSocketContainer.endpointCreateFail", 
clazz.getName()),
+                    e);
+        }
+
+        return connectToServer(endpoint, clientEndpointConfiguration, path);
+    }
+
+
+    @Override
+    public Session connectToServer(Endpoint endpoint,
+            ClientEndpointConfig clientEndpointConfiguration, URI path)
+            throws DeploymentException {
+
         String scheme = path.getScheme();
         if (!("http".equalsIgnoreCase(scheme) ||
                 "https".equalsIgnoreCase(scheme))) {
@@ -165,20 +193,12 @@ public class WsWebSocketContainer
         WsRemoteEndpointImplClient wsRemoteEndpointClient =
                 new WsRemoteEndpointImplClient(channel);
 
-        Endpoint endpoint;
-        try {
-            endpoint = clazz.newInstance();
-        } catch (InstantiationException | IllegalAccessException e) {
-            throw new DeploymentException(sm.getString(
-                    "wsWebSocketContainer.endpointCreateFail", 
clazz.getName()),
-                    e);
-        }
 
         WsSession wsSession = new WsSession(endpoint, wsRemoteEndpointClient,
                 this, null, subProtocol, Collections.EMPTY_MAP, false,
                 clientEndpointConfiguration.getEncoders());
         endpoint.onOpen(wsSession, clientEndpointConfiguration);
-        registerSession(clazz, wsSession);
+        registerSession(endpoint.getClass(), wsSession);
 
         // Object creation will trigger input processing
         @SuppressWarnings("unused")



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

Reply via email to