jetty.project/jetty-websocket
Greg Wilkins 8f383faf78
Issue #3872 Javax Websocket Packaging (#3873)
* Issue #3872 Javax Websocket Packaging

Moved JaxaxWebSocketConfiguration and SCI to config package.
Limited classpath exposure in JavaxConfiguration (more needed)
Updated tests with work around for those that needs more classes exposed

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Issue #3872 Javax Websocket Packaging

Moved all remaining classes from org.eclipse.jetty.websocket.javax.server
to org.eclipse.jetty.websocket.javax.server.internal.

This works when running on the classpath, but the tests fail when running
on the modulepath (eg in commandline mvn run).   The issue appears to be
that the tests don't load test classes from WEB-INF/lib or WEB-INF/classes.
Instead the test classes were themselves in  org.eclipse.jetty.websocket.javax.server,
which is no longer exported from module-info.java.

The hacked "fix" for this has been to create a org.eclipse.jetty.websocket.javax.server.tests
package which is exported and to move all the tests to that.  A better fix is needed.

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Issue #3872 Javax Websocket Packaging

improve comments
tighten exposed classes more

Signed-off-by: Greg Wilkins <gregw@webtide.com>

* Issue #3872 - fixing tests

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>

* Issue #3872 - move ContainerDefaultConfigurator to config package

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>

* Issue #3873 - fix javax websocket test classloader issues

move websocket endpoints for test webapps to com.acme.websocket package

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2019-08-28 10:03:46 +10:00
..
javax-websocket-client Merge branch `jetty-9.4.x` into `jetty-10.0.x` 2019-08-22 17:02:19 -05:00
javax-websocket-common Updating to version 10.0.0-SNAPSHOT 2019-07-12 06:54:56 +10:00
javax-websocket-server Issue #3872 Javax Websocket Packaging (#3873) 2019-08-28 10:03:46 +10:00
javax-websocket-tests Issue #3872 Javax Websocket Packaging (#3873) 2019-08-28 10:03:46 +10:00
jetty-websocket-api Updating to version 10.0.0-SNAPSHOT 2019-07-12 06:54:56 +10:00
jetty-websocket-client Updating to version 10.0.0-SNAPSHOT 2019-07-12 06:54:56 +10:00
jetty-websocket-common fix to PartialListenerTest from merge 2019-08-02 15:15:57 +10:00
jetty-websocket-server Issue #3872 Javax Websocket Packaging (#3873) 2019-08-28 10:03:46 +10:00
jetty-websocket-tests Merge branch 'jetty-9.4.x' into jetty-10.0.x 2019-08-22 20:45:57 +10:00
websocket-core checkstyle fixes. 2019-08-23 13:09:15 +10:00
websocket-servlet fix checkstyle in test sources (#4013) 2019-08-22 19:56:41 +10:00
README.TXT
pom.xml Updating to version 9.4.21-SNAPSHOT 2019-08-13 17:34:20 -05:00

README.TXT


This is the jetty websocket module that provides a websocket server and the skeleton of a websocket client.

By default websockets is included with a jetty release (with these classes either being in the jetty-websocket jar or in
an aggregate jar (see below).


In order to accept a websocket connection, the websocket handshake request is first routed to normal HTTP request
handling, which must respond with a 101 response and an instance of WebSocketConnection set as the
"org.eclipse.jetty.io.Connection" request attribute.   The accepting behaviour is provided by WebSocketHandler or the
WebSocketServlet class, both of which delegate to the WebSocketFactory class.

A TestServer and TestClient class are available, and can be run either directly from an IDE (if jetty source is
imported), or from the command line with


  java -cp jetty-aggregate/jetty-all/target/jetty-all-7.x.y.jar:jetty-distribution/target/distribution/lib/servlet-api-2.5.jar
  org.eclipse.jetty.websocket.TestServer  --help 

  java -cp jetty-aggregate/jetty-all/target/jetty-all-7.x.y.jar:jetty-distribution/target/distribution/lib/servlet-api-2.5.jar
  org.eclipse.jetty.websocket.TestClient --help


Without a protocol specified, the client will just send/receive websocket PING/PONG packets.    A protocol can be specified for testing other
aspects of websocket.  Specifically the server and client understand the following protocols:

    org.ietf.websocket.test-echo
        Websocket messages are sent by the client and the server will echo every frame.

    org.ietf.websocket.test-echo-broadcast
        Websocket messages are sent by the client and the server will echo every frame to every connection.

    org.ietf.websocket.test-echo-assemble
        Websocket messages are sent by the client and the server will echo assembled messages as a single frame.

    org.ietf.websocket.test-echo-fragment
        Websocket messages are sent and the server will echo each message fragmented into 2 frames.