Skip to main content

[websocket-spec~source-code-repository:48] Various API tweaks: http://java.net/projects/websocket-spec/lists/jsr356-

  • From:
  • To:
  • Subject: [websocket-spec~source-code-repository:48] Various API tweaks: http://java.net/projects/websocket-spec/lists/jsr356-
  • Date: Fri, 9 Nov 2012 23:43:52 +0000

Project:    websocket-spec
Repository: source-code-repository
Revision:   48
Author:     dannycoward
Date:       2012-11-09 23:43:50 UTC
Link:       

Log Message:
------------
Various API tweaks: 
http://java.net/projects/websocket-spec/lists/jsr356-experts/archive/2012-11/message/16
TYRUS-12, and TYRUS-34


Revisions:
----------
48


Added Paths:
------------
trunk/api/src/main/java/javax/websocket/WebSocketMessage.java
trunk/api/src/main/java/javax/websocket/Encoder.java
trunk/api/src/main/java/javax/websocket/RemoteEndpoint.java
trunk/api/src/main/java/javax/websocket/EndpointConfiguration.java
trunk/api/src/main/java/javax/websocket/WebSocketEndpoint.java
trunk/api/src/main/java/javax/websocket/HandshakeRequest.java
trunk/api/src/main/java/javax/websocket/WebSocketOpen.java
trunk/api/src/main/java/javax/websocket/ServerConfiguration.java
trunk/api/src/main/java/javax/websocket/DefaultServerConfiguration.java
trunk/api/src/main/java/javax/websocket/ClientContainer.java
trunk/api/src/main/java/javax/websocket/ContainerProvider.java
trunk/api/src/main/java/javax/websocket
trunk/api/src/main/java/javax/websocket/ClientEndpointConfiguration.java
trunk/api/src/main/java/javax/websocket/EncodeException.java
trunk/api/src/main/java/javax/websocket/CloseReason.java
trunk/api/src/main/java/javax/websocket/Decoder.java
trunk/api/src/main/java/javax/websocket/ServerContainer.java
trunk/api/src/main/java/javax/websocket/Session.java
trunk/api/src/main/java/javax/websocket/SendHandler.java
trunk/api/src/main/java/javax/websocket/PongMessage.java
trunk/api/src/main/java/javax/websocket/HandshakeResponse.java
trunk/api/src/main/java/javax/websocket/DecodeException.java
trunk/api/src/main/java/javax/websocket/ServerEndpointConfiguration.java
trunk/api/src/main/java/javax/websocket/DeploymentException.java
trunk/api/src/main/java/javax/websocket/WebSocketError.java
trunk/api/src/main/java/javax/websocket/DefaultClientConfiguration.java
trunk/api/src/main/java/javax/websocket/WebSocketClose.java
trunk/api/src/main/java/javax/websocket/WebSocketPathParam.java
trunk/api/src/main/java/javax/websocket/MessageHandler.java
trunk/api/src/main/java/javax/websocket/Endpoint.java
trunk/api/src/main/java/javax/websocket/SendResult.java


Diffs:
------
Index: 
trunk/api/src/main/java/javax/net/websocket/ServerEndpointConfiguration.java
===================================================================
--- 
trunk/api/src/main/java/javax/net/websocket/ServerEndpointConfiguration.java  
      (revision 47)
+++ 
trunk/api/src/main/java/javax/net/websocket/ServerEndpointConfiguration.java  
      (revision 48)
@@ -1,99 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-import java.net.URI;
-import java.util.List;
-
-/**
- * The ServerEndpointConfiguration is a special kind of endpoint 
configuration object that contains
- * web socket configuration information specific only to server endpoints.
- * @author dannycoward
- * @since DRAFT 001
- */
-public interface ServerEndpointConfiguration extends EndpointConfiguration {
-
-    /** Return the subprotocol this server endpoint has chosen from the 
requested
-     * list supplied by a client who wishes to connect, or none if there 
wasn't one
-     * this server endpoint liked. See <a 
href="http://tools.ietf.org/html/rfc6455#section-4.2.2";>Sending the Server's 
Opening Handshake</a>
-     * @param requestedSubprotocols the requested subprotocols.
-     * @return the negotiated subprotocol.
-     */
-     String getNegotiatedSubprotocol(List<String> requestedSubprotocols);
-
-    /** http://java.net/jira/browse/WEBSOCKET_SPEC-45
-     * Return the ordered list of extensions that this server will support 
given the requested
-     * extension list passed in. See <a 
href="http://tools.ietf.org/html/rfc6455#section-9.1";>Negotiating 
Extensions</a>
-     * @param requestedExtensions the requested extentions, in order.
-     * @return
-     */
-     List<String> getNegotiatedExtensions(List<String> requestedExtensions);
-
-    /** Check the value of the Origin header (<a 
href="http://tools.ietf.org/html/rfc6454";>See definition</a>) the client 
passed during the opening
-     * handshake.
-     *
-     * @param originHeaderValue the value of the origin header.
-     * @return
-     */
-     boolean checkOrigin(String originHeaderValue);
-
-    /**
-     * Answers whether the current configuration matches the given URI. This 
method may be overridden
-     * by implementations with any number of algorithms for determining a 
match.
-     * @param uri the uri of the incoming handshake.
-     * @return
-     */
-
-     boolean matchesURI(URI uri);
-
-
-   /** Called by the container after it has formulated a handshake response 
resulting from
-    * a well-formed handshake request. The container has already has already 
checked that this configuration
-    * has a matching URI, determined the validity of the origin using the 
checkOrigin method, and filled
-    * out the negotiated subprotocols and extensions based on this 
configuration.
-    * Custom configurations may override this method in order to inspect
-    * the request parameters and modify the handshake response.
-     * and the URI checking also.
-     * @param request the opening handshake request.
-     * @param response the proposed opening handshake response
-     */
-     void modifyHandshake(HandshakeRequest request, HandshakeResponse 
response);
-
-}
Index: trunk/api/src/main/java/javax/net/websocket/DeploymentException.java
===================================================================
--- trunk/api/src/main/java/javax/net/websocket/DeploymentException.java      
  (revision 47)
+++ trunk/api/src/main/java/javax/net/websocket/DeploymentException.java      
  (revision 48)
@@ -1,56 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-/**
- *  http://java.net/jira/browse/WEBSOCKET_SPEC-47
- * @author dannycoward
- */
-public class DeploymentException extends Exception {
-
-
-    public DeploymentException(String message) {
-        super(message);
-    }
-
-    public DeploymentException(String message, Throwable cause) {
-        super(message, cause);
-    }
-}
Index: trunk/api/src/main/java/javax/net/websocket/HandshakeRequest.java
===================================================================
--- trunk/api/src/main/java/javax/net/websocket/HandshakeRequest.java   
(revision 47)
+++ trunk/api/src/main/java/javax/net/websocket/HandshakeRequest.java   
(revision 48)
@@ -1,87 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-import java.net.URI;
-import java.security.Principal;
-import java.util.List;
-import java.util.Map;
-
-/**
- * The handshake request represents the web socket defined Http request that 
for the opening
- * handshake of a web socket session.
- * @since DRAFT 003
- * @author dannycoward
- */
-public interface HandshakeRequest {
-    /** Return the read only Map of Http Headers that came with the 
handshake request. The header names
-     * are case insensitive.
-     * @return the list of headers.
-     */
-     Map<String,List<String>> getHeaders();
-    /** Return the authenticated user or null if no user is authenticated 
for this handshake.
-     @ @return the user principal.
-     */
-     Principal getUserPrincipal();
-    /** Return the request URI of the handshake request.
-     * @return the request uri of the handshake request.
-     */
-     URI getRequestURI();
-    /** Checks whether the current user is in the given role.
-     * @param role the role being checked
-     * @return whether the user is in the role
-     */
-     boolean isUserInRole(String role);
-    /** Return a reference to the HttpSession that the web socket handshake 
that started this
-     * conversation was part of, if applicable.
-     * @return the http session.
-     */
-     Object getSession();
-
-     /** Return the request parameters associated with the request.
-     * @return the unmodifiable map of the request parameters.
-     */
-     Map<String, String[]> getParameterMap();
-
-    /** Return the query string associated with the request.
-     * @return
-     */
-     String getQueryString();
-}
Index: trunk/api/src/main/java/javax/net/websocket/DecodeException.java
===================================================================
--- trunk/api/src/main/java/javax/net/websocket/DecodeException.java    
(revision 47)
+++ trunk/api/src/main/java/javax/net/websocket/DecodeException.java    
(revision 48)
@@ -1,95 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-import java.nio.*;
-
-/**
- * A general exception that occurs when trying to decode a custom object 
from a text or binary message.
- * @author dannycoward
- * @since DRAFT 002
- */
-public class DecodeException extends Exception {
-    private ByteBuffer bb;
-    private String encodedString;
-    private static final long serialVersionUID = 006;
-
-        /* Constructor with the data being decoded, and the reason why it 
failed to be, and the cause. The buffer may represent the whole message,
-     * or part of the message, depending whether the application is using one
-     * of the streaming methods or not.*/
-    public DecodeException(ByteBuffer bb, String message, Throwable cause) {
-        super(message, cause);
-        this.bb = bb;
-    }
-
-            /* Constructor with the data being decoded, and the reason why 
it failed to be, and the cause. The encoded string may represent the whole 
message,
-     * or part of the message, depending whether the application is using one
-     * of the streaming methods or not.*/
-    public DecodeException(String encodedString, String message, Throwable 
cause) {
-        super(message, cause);
-        this.encodedString = encodedString;
-    }
-
-    /** Constructs a DecodedException with the given ByteBuffer that cannot
-     * be decoded, and reason why. The buffer may represent the whole 
message,
-     * or part of the message, depending whether the application is using one
-     * of the streaming methods or not.
-     * @param bb
-     * @param message
-     */
-    public DecodeException(ByteBuffer bb, String message) {
-        super(message);
-        this.bb = bb;
-    }
-    /** Constructs a DecodedException with the given encoded string that 
cannot
-     * be decoded, and reason why. The encoded string may represent the 
whole message,
-     * or part of the message, depending whether the application is using one
-     * of the streaming methods or not.
-     * @param bb
-     * @param message
-     */
-    public DecodeException(String encodedString, String message) {
-        super(message);
-        this.encodedString = encodedString;
-    }
-    /** Return the ByteBuffer that cannot be decoded. */
-    public ByteBuffer getBytes() {return this.bb;}
-    /** Return the encoded string that cannot be decoded. */
-    public String getText() {return this.encodedString;}
-}
Index: 
trunk/api/src/main/java/javax/net/websocket/DefaultServerConfiguration.java
===================================================================
--- 
trunk/api/src/main/java/javax/net/websocket/DefaultServerConfiguration.java 
(revision 47)
+++ 
trunk/api/src/main/java/javax/net/websocket/DefaultServerConfiguration.java 
(revision 48)
@@ -1,167 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-/**
- * The DefaultServerConfiguration is a concrete class that embodies all the 
configuration
- * parameters for an endpoint that is to be published as a server endpoint. 
Developers may
- * subclass this class in order to override the configuration behavior.
- * @author dannycoward
- */
-public class DefaultServerConfiguration implements 
ServerEndpointConfiguration {
-    private String path;
-    private List<String> subprotocols = new ArrayList<String>();
-    private List<String> extensions = new ArrayList<String>();
-    private List<Encoder> encoders = new ArrayList<Encoder>();
-    private List<Decoder> decoders = new ArrayList<Decoder>();
-
-    /** For subclass implementations. */
-    protected DefaultServerConfiguration() {
-
-    }
-    /** Creates a server configuration with the given URI. */
-    public DefaultServerConfiguration(String path) {
-        this.path = path;
-    }
-    /* Sets all the encoders that this configuration will support.*/
-    public DefaultServerConfiguration setEncoders(List<Encoder> encoders) {
-        this.encoders = encoders;
-        return this;
-    }
-
-    /** Sets all the decoders that this configuration will support. */
-    public DefaultServerConfiguration setDecoders(List<Decoder> decoders) {
-        this.decoders = decoders;
-        return this;
-    }
-
-    /** Sets all the subprotocols that this configuration will support. */
-    public DefaultServerConfiguration setSubprotocols(List<String> 
subprotocols) {
-        this.subprotocols = subprotocols;
-        return this;
-    }
-
-    /** Sets all the extensions that this configuration will support.
-     */
-    public DefaultServerConfiguration setExtensions(List<String> extensions) 
{
-        this.extensions = extensions;
-        return this;
-    }
-    /** Return the Decoder implementations configured. These
-     will be used by the container to decode incoming messages
-     * into the expected custom objects on MessageListener.onMessage()
-     * callbacks.
-     */
-    public List<Encoder> getEncoders() {
-        return this.encoders;
-    }
-     /** Return the Decoder implementations configured. These
-     will be used by the container to decode incoming messages
-     * into the expected custom objects on MessageListener.onMessage()
-     * callbacks.
-     */
-    public List<Decoder> getDecoders() {
-        return this.decoders;
-    }
-
-    @Override
-    public String getPath() {
-        return path;
-    }
-
-
-    /** Return the subprotocol this server endpoint has chosen from the 
requested
-     * list supplied by a client who wishes to connect, or none if there 
wasn't one
-     * this server endpoint liked. See <a 
href="http://tools.ietf.org/html/rfc6455#section-4.2.2";>Sending the Server's 
Opening Handshake</a>
-     * @param requestedSubprotocols
-     * @return
-     */
-    public String getNegotiatedSubprotocol(List<String> 
requestedSubprotocols) {
-        throw new RuntimeException("To implement");
-    }
-
-    /** Provides a simple algorithm to return the list of extensions this 
server will
-     * use for the web socket session: the configuration returns a list 
containing all of the requested
-     * extensions passed to this method that it supports, using the order in 
the requested
-     * extensions. Subclasses may provide custom algorithms based on other 
factors.
-     * @param requestedExtensions
-     * @return
-     */
-
-    public List<String> getNegotiatedExtensions(List<String> 
requestedExtensions) {
-        throw new RuntimeException("To implement");
-    }
-
-    /** Makes a check of the validity of the Origin header sent along with 
the opening
-     * handshake.
-     *
-     * @param originHeaderValue
-     * @return
-     */
-    public boolean checkOrigin(String originHeaderValue) {
-        throw new RuntimeException("To implement");
-    }
-
-    /** A URI is a match if and only if it is an exact match (.equals()) the 
URI used
-     * to create this configuration. Subclasses may override this method to 
provide
-     * different matching policies.
-     * @param uri
-     * @return
-     */
-    public boolean matchesURI(URI uri) {
-        return this.path.equals(uri.toString());
-    }
-
-
-    /** The default server configuration does not make any changes to the 
response. Subclasses may
-     * override this method in order to inspect the Http request headers of 
the openinghandshake, for example to track cookies
-     * sent by the client. Additionally subclasses may choose to override 
this method to modify the outgoing
-     * handshake response.
-     * the outgoing handshake response
-     * @param request
-     * @param response
-     */
-    public void modifyHandshake(HandshakeRequest request, HandshakeResponse 
response) {}
-
-
-}
Index: trunk/api/src/main/java/javax/net/websocket/Decoder.java
===================================================================
--- trunk/api/src/main/java/javax/net/websocket/Decoder.java    (revision 47)
+++ trunk/api/src/main/java/javax/net/websocket/Decoder.java    (revision 48)
@@ -1,110 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-import java.util.Iterator;
-import java.io.*;
-import java.nio.*;
-
-/**
- * The Decoder interface holds member interfaces that define how a developer 
can provide
- * the web socket container a way web socket messages into developer defined 
custom objects.
- * @author dannycoward
- * @since DRAFT 002
- */
-public interface Decoder {
-
-     /** This interface defines how a custom object (of type T) is decoded 
from a web socket message in
-     * the form of a byte buffer.
-     */
-     interface Binary<T> extends Decoder {
-
-        /** Decode the given bytes into an object of type T.
-         @param bytes the bytes to be decoded.
-         * @return the decoded object
-         */
-         T decode(ByteBuffer bytes) throws DecodeException;
-        /** Answer whether the given bytes can be decoded into an object of 
type T.
-         * @bytes the bytes to be decoded.
-         * @return whether or not the bytes can be decoded by this decoder.
-         */
-         boolean willDecode(ByteBuffer bytes);
-    }
-
-    /** This interface defines how a custom object is decoded from a web 
socket message in
-     * the form of a binary stream.
-     */
-     interface BinaryStream<T> extends Decoder {
-
-        /**
-         * Decode the given bytes read from the input stream into an object 
of type T.
-         * @param is the input stream carrying the bytes
-         */
-         T decode(InputStream is) throws DecodeException, IOException;
-    }
-
-     /** This interface defines how a custom object is decoded from a web 
socket message in
-     * the form of a string. */
-     interface Text<T> extends Decoder {
-        /** Decode the given String into an object of type T.
-         * @param the string to be decoded.
-         * @return the decoded message as an object of type T
-         */
-         T decode(String s) throws DecodeException;
-        /** Answer whether the given String can be decoded into an object of 
type T.
-         *
-         * @param s the string being tested for decodability
-         * @return whether this decoder can decoded the supplied string.
-         */
-         boolean willDecode(String s);
-    }
-     /** This interface defines how a custom object of type T is decoded 
from a web socket message in
-     * the form of a character stream. */
-     interface TextStream<T> extends Decoder {
-        /** Reads the websocket message from the implementation provided
-         * Reader and decodes it into an instance of the supplied object 
type.
-         * @param reader the reader from which to read the web socket 
message.
-         * @return the instance of the object that is the decoded web socket 
message.
-         */
-         T decode(Reader reader) throws DecodeException, IOException;
-    }
-
-
-}
Index: trunk/api/src/main/java/javax/net/websocket/HandshakeResponse.java
===================================================================
--- trunk/api/src/main/java/javax/net/websocket/HandshakeResponse.java  
(revision 47)
+++ trunk/api/src/main/java/javax/net/websocket/HandshakeResponse.java  
(revision 48)
@@ -1,56 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * The handshake response represents the web socket defined http response 
that will be
- * sent by the web socket server during the opening handshake.
- * @author dannycoward
- */
-public interface HandshakeResponse {
-    /** Return the list of Http Headers that came with the handshake request.
-     * @return the headers.
-     *
-     */
-     Map<String,List<String>> getHeaders();
-}
Index: 
trunk/api/src/main/java/javax/net/websocket/ClientEndpointConfiguration.java
===================================================================
--- 
trunk/api/src/main/java/javax/net/websocket/ClientEndpointConfiguration.java  
      (revision 47)
+++ 
trunk/api/src/main/java/javax/net/websocket/ClientEndpointConfiguration.java  
      (revision 48)
@@ -1,76 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-import java.util.List;
-
-/**
- * The ClientEndpointConfiguration is a special kind of endpoint 
configuration object that contains
- * web socket configuration information specific only to client endpoints.
- *
- * @author dannycoward
- * @since DRAFT 001
- */
-public interface ClientEndpointConfiguration extends EndpointConfiguration {
-
-    /**
-     * The ordered list of sub protocols a client endpoint would like to use.
-     * This list is used to generate the Sec-WebSocket-Protocol header in 
the opening
-     * handshake for clients using this configuration. The first protocol 
name is the most preferred.
-     * See <a href="http://tools.ietf.org/html/rfc6455#section-4.1";>Client 
Opening Handshake</a>
-     *
-     * @return a list of subprotocols
-     */
-     List<String> getPreferredSubprotocols();
-
-    /**
-     * http://java.net/jira/browse/WEBSOCKET_SPEC-45
-     * Return the list of all the extensions that this client supports. 
These are the extensions that will
-     * be used to populate the Sec-WebSocket-Extensions header in the 
opening handshake for clients
-     * using this configuration. The first extension in the list is the most 
preferred extension.
-     * See <a 
href="http://tools.ietf.org/html/rfc6455#section-9.1";>Negotiating 
Extensions</a>
-     *
-     * @return a list of extensions
-     */
-     List<String> getExtensions();
-
-}
-
-
Index: trunk/api/src/main/java/javax/net/websocket/EndpointConfiguration.java
===================================================================
--- trunk/api/src/main/java/javax/net/websocket/EndpointConfiguration.java    
  (revision 47)
+++ trunk/api/src/main/java/javax/net/websocket/EndpointConfiguration.java    
  (revision 48)
@@ -1,72 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-import java.util.List;
-
-/**
- * The endpoint configuration contains all the information needed during the 
handshake process
- * for this end point. All endpoints specify, for example, a URI. In the 
case of a server endpoint,
- * the URI signifies the URI to which the endpoint will be mapped. In the 
case of a client application
- * the URI signifies the URI of the server to which the client endpoint will 
attempt to connect.
- * @author dannycoward
- * @since DRAFT 001
- */
-public interface EndpointConfiguration {
-
-    /** Return the Encoder implementations configured. These
-     will be used by the container to encode custom objects passed into
-     * the send() methods on remote endpoints.
-     * @return the list of encoders.
-     */
-     List<Encoder> getEncoders();
-     /** Return the Decoder implementations configured. These
-     will be used by the container to decode incoming messages
-     * into the expected custom objects on MessageListener.onMessage()
-     * callbacks.
-     * @return the list of decoders.
-     */
-     List<Decoder> getDecoders();
-    /**
-     * see http://java.net/jira/browse/WEBSOCKET_SPEC-46
-     */
-     String getPath();
-
-}
Index: trunk/api/src/main/java/javax/net/websocket/ServerContainer.java
===================================================================
--- trunk/api/src/main/java/javax/net/websocket/ServerContainer.java    
(revision 47)
+++ trunk/api/src/main/java/javax/net/websocket/ServerContainer.java    
(revision 48)
@@ -1,57 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-/**
- * The ServerContainer is an implementation provided object that, in addition
- * to being able to initiate web socket connections (client), can register 
endpoints
- * that can handle incoming connection requests.
- * @author dannycoward
- * @since DRAFT 001
- */
-public interface ServerContainer extends ClientContainer {
-    /** Publish the given endpoint with the provided configuration
-     * information.
-     * @param endpoint the endpoint to be deployed.
-     * @param ilc the endpoint configuration that the runtime should use
-     * to deploy the endpoint.
-     */
-     void publishServer(Endpoint endpoint, ServerEndpointConfiguration ilc) 
throws DeploymentException;
-}
Index: 
trunk/api/src/main/java/javax/net/websocket/DefaultClientConfiguration.java
===================================================================
--- 
trunk/api/src/main/java/javax/net/websocket/DefaultClientConfiguration.java 
(revision 47)
+++ 
trunk/api/src/main/java/javax/net/websocket/DefaultClientConfiguration.java 
(revision 48)
@@ -1,126 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * The DefaultClientConfiguration is a concrete implementation of a client 
configuration. Developers
- * may subclass this class in order to provide their own custom 
configuration behaviors.
- * @author dannycoward
- */
-public class DefaultClientConfiguration implements 
ClientEndpointConfiguration {
-    private String path;
-    private List<String> preferredSubprotocols = new ArrayList<String>();
-    private List<String> extensions = new ArrayList<String>();
-    private List<Encoder> encoders = new ArrayList<Encoder>();
-    private List<Decoder> decoders = new ArrayList<Decoder>();
-    /** Creates a client configuration that will attempt
-     * to connect to the given URI.
-     * @param uri
-     */
-    public DefaultClientConfiguration(String uri) {
-        this.path = uri;
-    }
-
-    public String getPath() {
-        return path;
-    }
-
-    /** Return the protocols, in order of preference, favorite first, that 
this client would
-     * like to use for its sessions.
-     * @return
-     */
-    public List<String> getPreferredSubprotocols() {
-        return this.preferredSubprotocols;
-    }
-
-    /** Assign the List of preferred subprotocols that this client would 
like to
-     * use.
-     * @return
-     */
-    public DefaultClientConfiguration setPreferredSubprotocols(List<String> 
preferredSubprotocols) {
-        this.preferredSubprotocols = preferredSubprotocols;
-        return this;
-    }
-
-    /** Return the extensions, in order of preference, favorite first, that 
this client would
-     * like to use for its sessions.
-     * @return
-     */
-    public List<String> getExtensions() {
-        this.extensions = extensions;
-        return null;
-    }
-
-    /** Assign the List of preferred subprotocols that this client would 
like to
-     * use.
-     * @return
-     */
-    public ClientEndpointConfiguration setExtensions(List<String> 
extensions) {
-        this.extensions = extensions;
-        return this;
-    }
-
-    /** Assign the list of encoders this client will use.
-     * @return
-     */
-    public List<Encoder> getEncoders() {
-        return this.encoders;
-    }
-    /** Assign the list of encoders this client will use. */
-     public ClientEndpointConfiguration setEncoders(List<Encoder> encoders) {
-         this.encoders = encoders;
-        return this;
-    }
-    /** Assign the list of decoders this client will use.
-     * @return
-     */
-    public List<Decoder> getDecoders() {
-        return this.decoders;
-    }
-
-        /** Assign the list of decoders this client will use. */
-     public ClientEndpointConfiguration setDecoders(List<Decoder> decoders) {
-         this.decoders = decoders;
-        return this;
-    }
-}
Index: trunk/api/src/main/java/javax/net/websocket/EncodeException.java
===================================================================
--- trunk/api/src/main/java/javax/net/websocket/EncodeException.java    
(revision 47)
+++ trunk/api/src/main/java/javax/net/websocket/EncodeException.java    
(revision 48)
@@ -1,66 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either the GNU
- * General Public License Version 2 only ("GPL") or the Common Development
- * and Distribution License("CDDL") (collectively, the "License").  You
- * may not use this file except in compliance with the License.  You can
- * obtain a copy of the License at
- * http://glassfish.java.net/public/CDDL+GPL_1_1.html
- * or packager/legal/LICENSE.txt.  See the License for the specific
- * language governing permissions and limitations under the License.
- *
- * When distributing the software, include this License Header Notice in each
- * file and include the License file at packager/legal/LICENSE.txt.
- *
- * GPL Classpath Exception:
- * Oracle designates this particular file as subject to the "Classpath"
- * exception as provided by Oracle in the GPL Version 2 section of the 
License
- * file that accompanied this code.
- *
- * Modifications:
- * If applicable, add the following below the License Header, with the fields
- * enclosed by brackets [] replaced by your own identifying information:
- * "Portions Copyright [year] [name of copyright owner]"
- *
- * Contributor(s):
- * If you wish your version of this file to be governed by only the CDDL or
- * only the GPL Version 2, indicate your decision by adding "[Contributor]
- * elects to include this software in this distribution under the [CDDL or 
GPL
- * Version 2] license."  If you don't indicate a single choice of license, a
- * recipient has the option to distribute your version of this file under
- * either the CDDL, the GPL Version 2 or to extend the choice of license to
- * its licensees as provided above.  However, if you add GPL Version 2 code
- * and therefore, elected the GPL Version 2 license, then the option applies
- * only if the new code is made subject to such option by the copyright
- * holder.
- */
-package javax.net.websocket;
-
-/**
- * A general exception that occurs when trying to encode a custom object to 
a string or binary message.
- * @author dannycoward
- * @since DRAFT 002
- */
-public class EncodeException extends Exception {
-    private Object object;
-        private static final long serialVersionUID = 006;
-
-    /* Constructor with the object being encoded, and the reason why it 
failed to be.*/
-    public EncodeException(Object object, String message) {
-        super(message);
-        this.object = object;
-    }
-    /* Constructor with the object being encoded, and the reason why it 
failed to be, and the cause.*/
-    public EncodeException(Object object, String message, Throwable cause) {
-        super(message, cause);
-        this.object = object;
-    }
-
-
-    /* Object being encoded. */
-
-    public Object getObject() { return this.object;}
-}
Index: trunk/api/src/main/java/javax/net/websocket/CloseReason.java
===================================================================
--- trunk/api/src/main/java/javax/net/websocket/CloseReason.java        
(revision 47)
+++ trunk/api/src/main/java/javax/net/websocket/CloseReason.java        
(revision 48)
@@ -1,137 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
- *
- * The contents of this file are subject to the terms of either 
[truncated due to length]



[websocket-spec~source-code-repository:48] Various API tweaks: http://java.net/projects/websocket-spec/lists/jsr356-

dannycoward 11/09/2012
 
 
Close
loading
Please Confirm
Close