Skip to main content

[websocket-spec~source-code-repository:57] [maven-release-plugin] copy for tag javax.net.websocket-api-1.0-b08

  • From:
  • To:
  • Subject: [websocket-spec~source-code-repository:57] [maven-release-plugin] copy for tag javax.net.websocket-api-1.0-b08
  • Date: Mon, 19 Nov 2012 14:30:41 +0000

Project:    websocket-spec
Repository: source-code-repository
Revision:   57
Author:     tyrusrobot
Date:       2012-11-19 14:30:39 UTC
Link:       

Log Message:
------------
[maven-release-plugin]  copy for tag javax.net.websocket-api-1.0-b08


Revisions:
----------
57


Added Paths:
------------
tags/javax.net.websocket-api-1.0-b08


Diffs:
------
Index: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/ServerEndpointConfiguration.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/ServerEndpointConfiguration.java
 (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/ServerEndpointConfiguration.java
 (revision 57)
@@ -0,0 +1,117 @@
+/*
+ * 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.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, the empty list if none. See <a 
href="http://tools.ietf.org/html/rfc6455#section-9.1";>Negotiating 
Extensions</a>
+     *
+     * @param requestedExtensions the requested extentions, in order.
+     * @return the list of extensions negotiated
+     */
+    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 whether the check passed or not
+     */
+    boolean checkOrigin(String originHeaderValue);
+
+    /**
+     * Answers whether the current configuration matches the given path. 
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 whether there was a match
+     */
+
+    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);
+
+    /**
+     * Return the path for this endpoint configuration. The path
+     * is the URI or URI-template relative to the websocket root of the 
server to which the endpoint
+     * using this configuration will be mapped. The path always begins with 
a leading "/". A trailing "/" will be
+     * ignored.
+     *
+     * @return the relative path for this configuration.
+     */
+    String getPath();
+}
Index: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/DeploymentException.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/DeploymentException.java
 (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/DeploymentException.java
 (revision 57)
@@ -0,0 +1,70 @@
+/*
+ * 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.websocket;
+
+/**
+ * Checked exception indicating some kind of failure either to publish
+ * an endpoint on its server, or a failure to connect a client to its server.
+ *
+ * @author dannycoward
+ */
+public class DeploymentException extends Exception {
+
+    /**
+     * Creates a deployment exception with the given reason for the 
deployment
+     * failure.
+     *
+     * @param message the reason for the failure.
+     */
+    public DeploymentException(String message) {
+        super(message);
+    }
+
+    /**
+     * Creates a deployment exception with the given reason for the 
deployment
+     * failure and wrapped cause of the failure.
+     *
+     * @param message the reason for the failure.
+     * @param cause   the cause of the problem.
+     */
+    public DeploymentException(String message, Throwable cause) {
+        super(message, cause);
+    }
+}
Index: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/HandshakeRequest.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/HandshakeRequest.java
    (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/HandshakeRequest.java
    (revision 57)
@@ -0,0 +1,107 @@
+/*
+ * 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.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.
+ *
+ * @author dannycoward
+ * @since DRAFT 003
+ */
+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 the query string≥
+     */
+    String getQueryString();
+}
Index: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/WebSocketError.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/WebSocketError.java
      (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/WebSocketError.java
      (revision 57)
@@ -0,0 +1,64 @@
+/*
+ * 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.websocket;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * This method level annotation can be used to decorate a Java method that 
wishes to be called in order
+ * to handle errors. <br><br>
+ * <p/>
+ * The method may only take the following parameters:-<br><br>
+ * - optional Session parameter<br>
+ * - a Throwable  parameter<br>
+ * - Zero to n String parameters annotated with the @WebSocketPathParam 
annotation.<br>
+ * in any order.
+ * <br>
+ *
+ * @author dannycoward
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface WebSocketError {
+
+}
Index: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/PingMessage.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/PingMessage.java
 (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/PingMessage.java
 (revision 57)
@@ -0,0 +1,60 @@
+/*
+ * 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.websocket;
+
+import java.nio.ByteBuffer;
+
+/**
+ * The PingMessage interface represents a web socket ping. PingMessages may 
be received by using
+ * a MessageHandler.Basic<PingMessage>. The payload of the PingMessage is 
the application data sent by the peer.
+ *
+ * @author dannycoward
+ * @since v008
+ */
+public interface PingMessage {
+
+    /**
+     * The application data inside the ping message from the peer.
+     *
+     * @return the application data.
+     */
+    public ByteBuffer getApplicationData();
+
+}
Index: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/DecodeException.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/DecodeException.java
     (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/DecodeException.java
     (revision 57)
@@ -0,0 +1,111 @@
+/*
+ * 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.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.
+     * @param bb the byte buffer with the data that could not be decoded
+     * @param message the reason for the failure
+     * @param cause the cause of the error.
+     */
+    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.
+     * @param encodedString the string that could not be decoded
+     * @param message the reason for the failure
+     * @param cause the cause of the error.
+     */
+    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 the byte buffer with the data that could not be decoded
+     * @param message TODO
+     */
+    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 encodedString TODO
+     * @param message the reason for the failure
+     */
+    public DecodeException(String encodedString, String message) {
+        super(message);
+        this.encodedString = encodedString;
+    }
+    /** 
+     * Return the ByteBuffer that cannot be decoded.
+     * @return the data not decoded.
+     */
+    public ByteBuffer getBytes() {return this.bb;}
+    /** 
+     * Return the encoded string that cannot be decoded. 
+     * @return the text not decoded.
+     */
+    public String getText() {return this.encodedString;}
+}
Index: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/DefaultServerConfiguration.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/DefaultServerConfiguration.java
  (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/DefaultServerConfiguration.java
  (revision 57)
@@ -0,0 +1,219 @@
+/*
+ * 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.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 path
+     *
+     * @param path the URI or URI template.
+     */
+    public DefaultServerConfiguration(String path) {
+        this.path = path;
+    }
+
+    /**
+     * Sets all the encoders that this configuration will support.
+     *
+     * @param encoders the encoders supported
+     * @return this server configuration instance.
+     */
+    public DefaultServerConfiguration setEncoders(List<Encoder> encoders) {
+        this.encoders = encoders;
+        return this;
+    }
+
+    /**
+     * Sets all the decoders that this configuration will support.
+     *
+     * @param decoders the encoders supported
+     * @return this server configuration instance.
+     */
+    public DefaultServerConfiguration setDecoders(List<Decoder> decoders) {
+        this.decoders = decoders;
+        return this;
+    }
+
+    /**
+     * Sets all the subprotocols that this configuration will support.
+     *
+     * @param subprotocols the encoders supported
+     * @return this server configuration instance.
+     */
+    public DefaultServerConfiguration setSubprotocols(List<String> 
subprotocols) {
+        this.subprotocols = subprotocols;
+        return this;
+    }
+
+    /**
+     * Sets all the extensions that this configuration will support.
+     *
+     * @param extensions the encoders supported
+     * @return this server configuration instance.
+     */
+    public DefaultServerConfiguration setExtensions(List<String> extensions) 
{
+        this.extensions = extensions;
+        return this;
+    }
+
+    /**
+     * Return the Encoder implementations configured. These
+     * will be used by the container to encode outgoing messages.
+     *
+     * @return the encoders.
+     */
+    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 MessageHandler
+     * callbacks.
+     *
+     * @return the encoders.
+     */
+    public List<Decoder> getDecoders() {
+        return this.decoders;
+    }
+
+    /**
+     * Return the path of this server configuration. The path is a relative 
URI
+     * or URI-template.
+     *
+     * @return the path
+     */
+    @Override
+    public String getPath() {
+        return path;
+    }
+
+
+    /**
+     * The default implementation of this method returns, the first 
subprotocol in the list sent by the client that
+     * the server supports, or null if there isn't one none. Subclasses may 
provide custom algorithms based on other factors.
+     *
+     * @param requestedSubprotocols TODO
+     * @return the negotiated subprotocol.
+     */
+    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, the empty list if none. Subclasses may provide custom 
algorithms based on other factors.
+     *
+     * @param requestedExtensions TODO
+     * @return the list of extensions.
+     */
+
+    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 following the recommendation at: 
http://tools.ietf.org/html/rfc6455#section-4.2 ;.
+     *
+     * @param originHeaderValue TODO
+     * @return whether the check passed or not.
+     */
+    public boolean checkOrigin(String originHeaderValue) {
+        throw new RuntimeException("To implement");
+    }
+
+    /**
+     * This default implementation matches the incoming path to the 
configuration's URI or URI template if and only if
+     * it is an exact match in the case the configuration is a URI, and if 
and only if it is a valid
+     * expansion of the configuration URI template, in the case where the 
configuration is a URI template. Subclasses may override this method to 
provide
+     * different matching policies.
+     *
+     * @param uri the URL of the incoming request
+     * @return whether it matched this configuration or not.
+     */
+    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  the handshake request from the client
+     * @param response the handshake response formulated by the container.
+     */
+    public void modifyHandshake(HandshakeRequest request, HandshakeResponse 
response) {
+    }
+
+
+}
Index: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/Decoder.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/Decoder.java
     (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/Decoder.java
     (revision 57)
@@ -0,0 +1,114 @@
+/*
+ * 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.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.
+         * @param 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.
+         * @return the decoded object
+         * @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 s 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: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/HandshakeResponse.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/HandshakeResponse.java
   (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/HandshakeResponse.java
   (revision 57)
@@ -0,0 +1,59 @@
+/*
+ * 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.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: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/ClientEndpointConfiguration.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/ClientEndpointConfiguration.java
 (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/ClientEndpointConfiguration.java
 (revision 57)
@@ -0,0 +1,76 @@
+/*
+ * 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.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, the empty list if there are none.
+     * 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 the preferred subprotocols
+     */
+    List<String> getPreferredSubprotocols();
+
+    /**
+     * http://java.net/jira/browse/WEBSOCKET_SPEC-45
+     * Return the list of all the extensions that this client supports, the 
empty list if there are none. 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: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/WebSocketOpen.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/WebSocketOpen.java
       (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/WebSocketOpen.java
       (revision 57)
@@ -0,0 +1,63 @@
+/*
+ * 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.websocket;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * This method level annotation can be used to decorate a Java method that 
wishes to be called when a new
+ * web socket session is open. <br><br>
+ * <p/>
+ * <br> The method may only take the following parameters:-<br><br>
+ * - optional Session parameter<br>
+ * - Zero to n String parameters annotated with the @WebSocketPathParam 
annotation.<br>
+ * in any order.
+ *
+ * @author dannycoward
+ * @since Draft 002
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface WebSocketOpen {
+
+}
Index: 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/EndpointConfiguration.java
===================================================================
--- 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/EndpointConfiguration.java
       (revision 0)
+++ 
tags/javax.net.websocket-api-1.0-b08/src/main/java/javax/websocket/EndpointConfiguration.java
       (revision 57)
@@ -0,0 +1,73 @@
+/*
+ * 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.websocket;
+
+import java.util.List;
+
+/**
+ * The endpoint configuration contains all the information needed durin
[truncated due to length]



[websocket-spec~source-code-repository:57] [maven-release-plugin] copy for tag javax.net.websocket-api-1.0-b08

tyrusrobot 11/19/2012
 
 
Close
loading
Please Confirm
Close