From f7024fc2d96913f90a76b8f3fc3db6584792c5e9 Mon Sep 17 00:00:00 2001 From: Gurunandan Rao Date: Mon, 12 Feb 2024 15:38:26 +0530 Subject: [PATCH] websocket tck bundle, documentation and signature test. Signed-off-by: Gurunandan Rao --- glassfish-runner/pom.xml | 8 +- glassfish-runner/websocket-tck/pom.xml | 198 +- user_guides/pom.xml | 1 - websocket/common/pom.xml | 70 + .../tests/websocket/common/TCKExtension.java | 0 .../AnnotatedByteBufferClientEndpoint.java | 0 .../client/AnnotatedClientEndpoint.java | 0 .../client/AnnotatedStringClientEndpoint.java | 0 .../common/client/ApacheRequestAdapter.java | 0 .../common/client/ApacheResponseAdapter.java | 0 .../client/BinaryAndTextClientEndpoint.java | 0 .../client/ByteBufferClientEndpoint.java | 0 .../common/client/ClientEndpoint.java | 0 .../common/client/EndpointCallback.java | 0 .../common/client/SendMessageCallback.java | 0 .../common/client/StringClientEndpoint.java | 0 .../websocket/common/client/TextCaser.java | 0 .../common/client/WebSocketCommonClient.java | 0 .../common/client/WebSocketTestCase.java | 0 .../sun/ts/tests/websocket/common/common.xml | 0 .../common/impl/ClientConfigurator.java | 0 .../websocket/common/impl/ExtensionImpl.java | 0 .../common/impl/ExtensionParameterImpl.java | 0 .../common/impl/StringPingMessage.java | 0 .../common/impl/StringPongMessage.java | 0 .../common/impl/WaitingSendHandler.java | 0 .../common/io/StringInputStream.java | 0 .../websocket/common/io/StringReader.java | 0 .../common/stringbean/StringBean.java | 0 .../stringbean/StringBeanBinaryDecoder.java | 0 .../stringbean/StringBeanBinaryEncoder.java | 0 .../StringBeanBinaryStreamDecoder.java | 0 .../StringBeanBinaryStreamEncoder.java | 0 .../stringbean/StringBeanClientEndpoint.java | 0 .../stringbean/StringBeanTextDecoder.java | 0 .../stringbean/StringBeanTextEncoder.java | 0 .../StringBeanTextStreamDecoder.java | 0 .../StringBeanTextStreamEncoder.java | 0 .../websocket/common/util/BooleanDecoder.java | 0 .../websocket/common/util/BooleanEncoder.java | 0 .../websocket/common/util/ByteDecoder.java | 0 .../websocket/common/util/ErrorEncoder.java | 0 .../tests/websocket/common/util/IOUtil.java | 0 .../common/util/MessageValidator.java | 0 .../websocket/common/util/SessionUtil.java | 0 .../websocket/common/util/StringUtil.java | 0 websocket/docs/README.txt | 84 + websocket/docs/TCK-Exclude-List.txt | 20 + .../docs/WebSocketJavadocAssertions.html | 1988 +++++++++++++++++ .../docs/WebSocketTCK2.2-ReleaseNotes.html | 100 + websocket/docs/index.html | 68 + websocket/docs/userguide/README.md | 77 + websocket/docs/userguide/pom.xml | 99 + .../userguide/src/main/jbake/assets/README.md | 4 + .../src/main/jbake/assets/_config.yml | 14 + .../src/main/jbake/assets/css/style.css | 313 +++ .../img/eclipse_foundation_logo_tiny.png | Bin 0 -> 3612 bytes .../userguide/src/main/jbake/content/README | 77 + .../src/main/jbake/content/attributes.conf | 35 + .../src/main/jbake/content/config.adoc | 47 + .../src/main/jbake/content/config.inc | 290 +++ .../src/main/jbake/content/debug-tips.inc | 0 .../src/main/jbake/content/debug.adoc | 78 + .../src/main/jbake/content/defns.inc | 46 + .../userguide/src/main/jbake/content/faq.adoc | 55 + .../main/jbake/content/install-server-vi.inc | 2 + .../src/main/jbake/content/install-server.inc | 11 + .../src/main/jbake/content/install.adoc | 79 + .../src/main/jbake/content/intro.adoc | 309 +++ .../src/main/jbake/content/intro.inc | 0 .../src/main/jbake/content/packages.inc | 3 + .../src/main/jbake/content/platforms.inc | 2 + .../src/main/jbake/content/preface.adoc | 141 ++ .../src/main/jbake/content/rebuild.adoc | 20 + .../src/main/jbake/content/rebuild.inc | 188 ++ .../src/main/jbake/content/req-software.inc | 11 + .../src/main/jbake/content/rules.adoc | 401 ++++ .../src/main/jbake/content/rules.inc | 78 + .../src/main/jbake/content/tck-packages.inc | 7 + .../src/main/jbake/content/title.adoc | 42 + .../src/main/jbake/content/title.inc | 11 + .../src/main/jbake/content/using-examples.inc | 50 + .../src/main/jbake/content/using.adoc | 146 ++ .../src/main/jbake/content/using.inc | 0 .../userguide/src/main/jbake/jbake.properties | 24 + .../src/main/jbake/templates/footer.ftl | 44 + .../src/main/jbake/templates/header.ftl | 54 + .../src/main/jbake/templates/menu.ftl | 1 + .../src/main/jbake/templates/page.ftl | 8 + .../userguide/src/theme/jakartaee-theme.yml | 299 +++ websocket/platform-tests/pom.xml | 77 + .../websocket/platform/cdi/WSClientIT.java | 0 .../platform/cdi/WSConstructorServer.java | 0 .../websocket/platform/cdi/WSFieldServer.java | 0 .../platform/cdi/WSInjectableServer.java | 0 .../platform/cdi/WSMethodServer.java | 0 .../authenticated/AppConfig.java | 0 .../GetUserPrincipalConfigurator.java | 0 .../IsUserInRoleConfigurator.java | 0 .../authenticated/WSCClientIT.java | 0 .../WSCGetUserPrincipalServer.java | 0 .../authenticated/WSCIsUserInRoleServer.java | 0 .../WSCPostUnauthEchoServer.java | 0 .../authenticated/WSCUnauthEchoServer.java | 0 .../CloseHttpSessionConfigurator.java | 0 .../TCKRequestListener.java | 0 .../authenticatedlogoff/WSCClientIT.java | 0 .../WSCCloseHttpSessionServer.java | 0 .../authenticatedssl/AppConfig.java | 0 .../GetUserPrincipalConfigurator.java | 0 .../IsUserInRoleConfigurator.java | 0 .../authenticatedssl/WSCClientIT.java | 0 .../WSCGetUserPrincipalServer.java | 0 .../WSCIsUserInRoleServer.java | 0 .../session/GetHttpSessionConfigurator.java | 0 .../session/TCKRequestListener.java | 0 .../handshakerequest/session/WSCClientIT.java | 0 .../session/WSCGetHttpSessionServer.java | 0 .../ts/tests/websocket/platform/cdi/beans.xml | 0 .../handshakerequest/authenticated/web.xml | 0 ...response_authenticated_web.war.sun-web.xml | 0 .../authenticatedlogoff/web.xml | 0 ...e_authenticated_logoff_web.war.sun-web.xml | 0 .../handshakerequest/authenticatedssl/web.xml | 0 ..._handshakeresponse_ssl_web.war.sun-web.xml | 0 websocket/pom.xml | 141 +- websocket/spec-tests/pom.xml | 117 + .../clientendpointconfig/WSClientIT.java | 0 .../websocket/closereason/WSClientIT.java | 0 .../websocket/decodeexception/WSClientIT.java | 0 .../deploymentException/WSClientIT.java | 0 .../websocket/encodeexception/WSClientIT.java | 0 .../serverendpointconfig/TCKEndpoint.java | 0 .../serverendpointconfig/WSClientIT.java | 0 .../websocketcontainer/WSClientIT.java | 0 .../tests/websocket/common/TCKExtension.java | 86 + .../AnnotatedByteBufferClientEndpoint.java | 30 + .../client/AnnotatedClientEndpoint.java | 83 + .../client/AnnotatedStringClientEndpoint.java | 25 + .../common/client/ApacheRequestAdapter.java | 39 + .../common/client/ApacheResponseAdapter.java | 81 + .../client/BinaryAndTextClientEndpoint.java | 44 + .../client/ByteBufferClientEndpoint.java | 29 + .../common/client/ClientEndpoint.java | 209 ++ .../common/client/EndpointCallback.java | 66 + .../common/client/SendMessageCallback.java | 128 ++ .../common/client/StringClientEndpoint.java | 24 + .../websocket/common/client/TextCaser.java | 47 + .../common/client/WebSocketCommonClient.java | 1007 +++++++++ .../common/client/WebSocketTestCase.java | 517 +++++ .../sun/ts/tests/websocket/common/common.xml | 60 + .../common/impl/ClientConfigurator.java | 100 + .../websocket/common/impl/ExtensionImpl.java | 162 ++ .../common/impl/ExtensionParameterImpl.java | 94 + .../common/impl/StringPingMessage.java | 32 + .../common/impl/StringPongMessage.java | 39 + .../common/impl/WaitingSendHandler.java | 60 + .../common/io/StringInputStream.java | 26 + .../websocket/common/io/StringReader.java | 27 + .../common/stringbean/StringBean.java | 44 + .../stringbean/StringBeanBinaryDecoder.java | 45 + .../stringbean/StringBeanBinaryEncoder.java | 40 + .../StringBeanBinaryStreamDecoder.java | 44 + .../StringBeanBinaryStreamEncoder.java | 41 + .../stringbean/StringBeanClientEndpoint.java | 26 + .../stringbean/StringBeanTextDecoder.java | 43 + .../stringbean/StringBeanTextEncoder.java | 38 + .../StringBeanTextStreamDecoder.java | 44 + .../StringBeanTextStreamEncoder.java | 41 + .../websocket/common/util/BooleanDecoder.java | 46 + .../websocket/common/util/BooleanEncoder.java | 42 + .../websocket/common/util/ByteDecoder.java | 46 + .../websocket/common/util/ErrorEncoder.java | 41 + .../tests/websocket/common/util/IOUtil.java | 76 + .../common/util/MessageValidator.java | 75 + .../websocket/common/util/SessionUtil.java | 41 + .../websocket/common/util/StringUtil.java | 191 ++ ...tConfiguratorHolderClientConfigurator.java | 0 .../GetNegotiatedSubprotocolConfigurator.java | 0 .../jakarta/websocket/clientendpoint/OPS.java | 0 .../WSCCloseClientEndpoint.java | 0 .../WSCConfiguratedClientEndpoint.java | 0 .../clientendpoint/WSCEchoServer.java | 0 .../WSCErrorClientEndpoint.java | 0 .../WSCMatchedSubprotocolClientEndpoint.java | 0 .../clientendpoint/WSCSubprotocolServer.java | 0 ...WSCUnmatchedSubprotocolClientEndpoint.java | 0 .../websocket/clientendpoint/WSClientIT.java | 0 .../clientendpointconfig/WSClientIT.java | 0 .../clientendpointconfig/WSTestServer.java | 0 .../clientendpointonmessage/OPS.java | 0 ...BinaryDecoderAndSessionClientEndpoint.java | 0 .../WSBinaryDecoderClientEndpoint.java | 0 ...StreamDecoderAndSessionClientEndpoint.java | 0 .../WSBinaryStreamDecoderClientEndpoint.java | 0 .../WSByteArrayAndSessionClientEndpoint.java | 0 .../WSByteArrayClientEndpoint.java | 0 ...eArrayPartialAndSessionClientEndpoint.java | 0 .../WSByteArrayPartialClientEndpoint.java | 0 .../WSByteBufferAndSessionClientEndpoint.java | 0 .../WSByteBufferClientEndpoint.java | 0 ...BufferPartialAndSessionClientEndpoint.java | 0 .../WSByteBufferPartialClientEndpoint.java | 0 .../clientendpointonmessage/WSCServer.java | 0 .../clientendpointonmessage/WSClientIT.java | 0 .../WSDefaultMaxLengthClientEndpoint.java | 0 ...WSFullBooleanAndSessionClientEndpoint.java | 0 .../WSFullBooleanClientEndpoint.java | 0 .../WSFullByteAndSessionClientEndpoint.java | 0 .../WSFullByteClientEndpoint.java | 0 .../WSFullCharAndSessionClientEndpoint.java | 0 .../WSFullCharClientEndpoint.java | 0 .../WSFullDoubleAndSessionClientEndpoint.java | 0 .../WSFullDoubleClientEndpoint.java | 0 .../WSFullFloatAndSessionClientEndpoint.java | 0 .../WSFullFloatClientEndpoint.java | 0 .../WSFullIntAndSessionClientEndpoint.java | 0 .../WSFullIntClientEndpoint.java | 0 .../WSFullLongAndSessionClientEndpoint.java | 0 .../WSFullLongClientEndpoint.java | 0 .../WSFullShortAndSessionClientEndpoint.java | 0 .../WSFullShortClientEndpoint.java | 0 ...WSInputStreamAndSessionClientEndpoint.java | 0 .../WSInputStreamClientEndpoint.java | 0 .../WSMaxLengthClientEndpoint.java | 0 ...WSPongMessageAndSessionClientEndpoint.java | 0 .../WSPongMessageClientEndpoint.java | 0 ...mitiveBooleanAndSessionClientEndpoint.java | 0 .../WSPrimitiveBooleanClientEndpoint.java | 0 ...PrimitiveByteAndSessionClientEndpoint.java | 0 .../WSPrimitiveByteClientEndpoint.java | 0 ...PrimitiveCharAndSessionClientEndpoint.java | 0 .../WSPrimitiveCharClientEndpoint.java | 0 ...imitiveDoubleAndSessionClientEndpoint.java | 0 .../WSPrimitiveDoubleClientEndpoint.java | 0 ...rimitiveFloatAndSessionClientEndpoint.java | 0 .../WSPrimitiveFloatClientEndpoint.java | 0 ...SPrimitiveIntAndSessionClientEndpoint.java | 0 .../WSPrimitiveIntClientEndpoint.java | 0 ...PrimitiveLongAndSessionClientEndpoint.java | 0 .../WSPrimitiveLongClientEndpoint.java | 0 ...rimitiveShortAndSessionClientEndpoint.java | 0 .../WSPrimitiveShortClientEndpoint.java | 0 .../WSReaderAndSessionClientEndpoint.java | 0 .../WSReaderClientEndpoint.java | 0 .../WSStringAndSessionClientEndpoint.java | 0 .../WSStringClientEndpoint.java | 0 ...StringPartialAndSessionClientEndpoint.java | 0 .../WSStringPartialClientEndpoint.java | 0 ...WSTextDecoderAndSessionClientEndpoint.java | 0 .../WSTextDecoderClientEndpoint.java | 0 ...StreamDecoderAndSessionClientEndpoint.java | 0 .../WSTextStreamDecoderClientEndpoint.java | 0 .../WSCBinaryEncoderClientEndpoint.java | 0 .../WSCBinaryStreamEncoderClientEndpoint.java | 0 .../WSCByteArrayClientEndpoint.java | 0 .../WSCByteBufferClientEndpoint.java | 0 .../WSCFullBooleanClientEndpoint.java | 0 .../WSCFullByteClientEndpoint.java | 0 .../WSCFullCharClientEndpoint.java | 0 .../WSCFullDoubleClientEndpoint.java | 0 .../WSCFullFloatClientEndpoint.java | 0 .../WSCFullIntClientEndpoint.java | 0 .../WSCFullLongClientEndpoint.java | 0 .../WSCFullShortClientEndpoint.java | 0 .../WSCPrimitiveBooleanClientEndpoint.java | 0 .../WSCPrimitiveByteClientEndpoint.java | 0 .../WSCPrimitiveCharClientEndpoint.java | 0 .../WSCPrimitiveDoubleClientEndpoint.java | 0 .../WSCPrimitiveFloatClientEndpoint.java | 0 .../WSCPrimitiveIntClientEndpoint.java | 0 .../WSCPrimitiveLongClientEndpoint.java | 0 .../WSCPrimitiveShortClientEndpoint.java | 0 .../clientendpointreturntype/WSCServer.java | 0 .../WSCTextEncoderClientEndpoint.java | 0 .../WSCTextStreamEncoderClientEndpoint.java | 0 .../clientendpointreturntype/WSClientIT.java | 0 .../coder/InitDestroyBinaryDecoder.java | 0 .../coder/InitDestroyBinaryEncoder.java | 0 .../coder/InitDestroyBinaryStreamDecoder.java | 0 .../coder/InitDestroyBinaryStreamEncoder.java | 0 .../coder/InitDestroyTextDecoder.java | 0 .../coder/InitDestroyTextEncoder.java | 0 .../coder/InitDestroyTextStreamDecoder.java | 0 .../coder/InitDestroyTextStreamEncoder.java | 0 .../ee/jakarta/websocket/coder/Logger.java | 0 .../coder/WSCEndpointWithBinaryDecoder.java | 0 .../coder/WSCEndpointWithBinaryDecoders.java | 0 .../coder/WSCEndpointWithBinaryEncoder.java | 0 .../WSCEndpointWithBinaryStreamDecoder.java | 0 .../WSCEndpointWithBinaryStreamEncoder.java | 0 .../coder/WSCEndpointWithTextDecoder.java | 0 .../coder/WSCEndpointWithTextDecoders.java | 0 .../coder/WSCEndpointWithTextEncoder.java | 0 .../WSCEndpointWithTextStreamDecoder.java | 0 .../WSCEndpointWithTextStreamEncoder.java | 0 .../coder/WSCIDBinaryDecoderServer.java | 0 .../coder/WSCIDBinaryEncoderServer.java | 0 .../coder/WSCIDBinaryStreamDecoderServer.java | 0 .../coder/WSCIDBinaryStreamEncoderServer.java | 0 .../coder/WSCIDTextDecoderServer.java | 0 .../coder/WSCIDTextStreamDecoderServer.java | 0 .../coder/WSCIDTextStreamEncoderServer.java | 0 .../websocket/coder/WSCLoggerServer.java | 0 .../coder/WSCSimpleBinaryEchoServer.java | 0 .../websocket/coder/WSCSimpleEchoServer.java | 0 .../jakarta/websocket/coder/WSClientIT.java | 0 .../coder/WSIDTextEncoderServer.java | 0 .../WSWillDecodeBinaryDecoderServer.java | 0 .../coder/WSWillDecodeTextDecoderServer.java | 0 .../coder/WillDecodeFirstBinaryDecoder.java | 0 .../coder/WillDecodeFirstTextDecoder.java | 0 .../coder/WillDecodeSecondBinaryDecoder.java | 0 .../coder/WillDecodeSecondTextDecoder.java | 0 .../metainf/LibrariedQuestionaire.java | 0 .../metainf/TCKClassLoader.java | 0 .../metainf/TCKContainerProvider.java | 0 .../metainf/TCKWebSocketContainer.java | 0 .../containerprovider/metainf/WSCServer.java | 0 .../containerprovider/metainf/WSClientIT.java | 4 +- .../containerprovider/vi/WSCServer.java | 0 .../containerprovider/vi/WSClientIT.java | 0 .../websocket/endpoint/client/OPS.java | 0 .../client/WSCCloseClientEndpoint.java | 0 .../endpoint/client/WSCEchoServer.java | 0 .../client/WSCErrorClientEndpoint.java | 0 .../websocket/endpoint/client/WSClientIT.java | 0 .../websocket/endpoint/server/AppConfig.java | 0 .../server/WSCCloseServerEndpoint.java | 0 .../server/WSCErrorServerEndpoint.java | 0 .../endpoint/server/WSCMsgServer.java | 0 .../websocket/endpoint/server/WSClientIT.java | 0 .../handshakeresponse/EchoConfigurator.java | 0 .../SetHeadersConfigurator.java | 0 .../handshakeresponse/WSCClientIT.java | 0 .../handshakeresponse/WSCEchoServer.java | 0 .../WSCSetHeadersServer.java | 0 .../websocket/programaticcoder/AppConfig.java | 0 .../BinaryDecoderEndpointConfig.java | 0 .../BinaryEncoderEndpointConfig.java | 0 .../BinaryStreamDecoderEndpointConfig.java | 0 .../BinaryStreamEncoderEndpointConfig.java | 0 .../TextDecoderEndpointConfig.java | 0 .../TextEncoderEndpointConfig.java | 0 .../TextStreamDecoderEndpointConfig.java | 0 .../TextStreamEncoderEndpointConfig.java | 0 .../WSCBinaryDecoderServer.java | 0 .../WSCBinaryEncoderServer.java | 0 .../WSCBinaryStreamDecoderServer.java | 0 .../WSCBinaryStreamEncoderServer.java | 0 .../WSCTextDecoderServer.java | 0 .../WSCTextEncoderServer.java | 0 .../WSCTextStreamDecoderServer.java | 0 .../WSCTextStreamEncoderServer.java | 0 .../WSCWillDecodeBinaryDecoderServer.java | 0 .../WSCWillDecodeTextDecoderServer.java | 0 .../WSProgramaticClientIT.java | 0 ...WillDecodeBinaryDecoderEndpointConfig.java | 0 .../WillDecodeTextDecoderEndpointConfig.java | 0 .../PongMessageClientEndpoint.java | 0 .../async/AsyncEndpointCallback.java | 0 .../websocket/remoteendpoint/async/OPS.java | 0 .../async/PokingEndpointCallback.java | 0 .../async/ThrowingBinaryCoder.java | 0 .../async/ThrowingStringBean.java | 0 .../async/ThrowingStringBeanEncoder.java | 0 .../async/ThrowingTextCoder.java | 0 .../async/WSCOtherSideServer.java | 0 .../async/WSCServerSideServer.java | 0 .../async/WSCThrowingServerSideServer.java | 0 .../remoteendpoint/async/WSClientIT.java | 0 .../basic/BasicEndpointCallback.java | 0 .../basic/HolderForThrowingEncoder.java | 0 .../websocket/remoteendpoint/basic/OPS.java | 0 .../basic/PokingEndpointCallback.java | 0 .../remoteendpoint/basic/ThrowingEncoder.java | 0 .../basic/WSCOtherSideServer.java | 0 .../basic/WSCServerSideServer.java | 0 .../remoteendpoint/basic/WSClientIT.java | 0 .../usercoder/BinaryCoderBool.java | 0 .../usercoder/BinaryCoderByte.java | 0 .../usercoder/BinaryCoderChar.java | 0 .../usercoder/BinaryCoderDouble.java | 0 .../usercoder/BinaryCoderFloat.java | 0 .../usercoder/BinaryCoderInt.java | 0 .../usercoder/BinaryCoderLong.java | 0 .../usercoder/BinaryCoderShort.java | 0 .../usercoder/BinaryStreamCoderBool.java | 0 .../usercoder/BinaryStreamCoderByte.java | 0 .../usercoder/BinaryStreamCoderChar.java | 0 .../usercoder/BinaryStreamCoderDouble.java | 0 .../usercoder/BinaryStreamCoderFloat.java | 0 .../usercoder/BinaryStreamCoderInt.java | 0 .../usercoder/BinaryStreamCoderLong.java | 0 .../usercoder/BinaryStreamCoderShort.java | 0 .../usercoder/CoderSuperClass.java | 0 .../usercoder/CoderSuperClassBinary.java | 0 .../CoderSuperClassBinaryStream.java | 0 .../usercoder/CoderSuperClassText.java | 0 .../usercoder/CoderSuperClassTextStream.java | 0 .../remoteendpoint/usercoder/OPS.java | 0 .../usercoder/TextCoderBool.java | 0 .../usercoder/TextCoderByte.java | 0 .../usercoder/TextCoderChar.java | 0 .../usercoder/TextCoderDouble.java | 0 .../usercoder/TextCoderFloat.java | 0 .../usercoder/TextCoderInt.java | 0 .../usercoder/TextCoderLong.java | 0 .../usercoder/TextCoderShort.java | 0 .../usercoder/TextStreamCoderBool.java | 0 .../usercoder/TextStreamCoderByte.java | 0 .../usercoder/TextStreamCoderChar.java | 0 .../usercoder/TextStreamCoderDouble.java | 0 .../usercoder/TextStreamCoderFloat.java | 0 .../usercoder/TextStreamCoderInt.java | 0 .../usercoder/TextStreamCoderLong.java | 0 .../usercoder/TextStreamCoderShort.java | 0 .../usercoder/WSCBinaryClientEndpoint.java | 0 .../WSCBinaryStreamClientEndpoint.java | 0 .../usercoder/WSCEchoServer.java | 0 .../usercoder/WSCSuperEndpoint.java | 0 .../usercoder/WSCTextClientEndpoint.java | 0 .../WSCTextStreamClientEndpoint.java | 0 .../async/AsyncEndpointCallback.java | 0 .../usercoder/async/WSCBinaryServer.java | 0 .../async/WSCBinaryStreamServer.java | 0 .../usercoder/async/WSCCommonServer.java | 0 .../usercoder/async/WSCTextServer.java | 0 .../usercoder/async/WSCTextStreamServer.java | 0 .../usercoder/async/WSClientIT.java | 0 .../AsyncEndpointCallback.java | 0 .../asyncwithhandler/WSCBinaryServer.java | 0 .../WSCBinaryStreamServer.java | 0 .../asyncwithhandler/WSCCommonServer.java | 0 .../asyncwithhandler/WSCTextServer.java | 0 .../asyncwithhandler/WSCTextStreamServer.java | 0 .../asyncwithhandler/WSClientIT.java | 0 .../usercoder/basic/WSCBinaryServer.java | 0 .../basic/WSCBinaryStreamServer.java | 0 .../usercoder/basic/WSCCommonServer.java | 0 .../usercoder/basic/WSCTextServer.java | 0 .../usercoder/basic/WSCTextStreamServer.java | 0 .../usercoder/basic/WSClientIT.java | 0 ...aseInsensitiveHeaderNamesConfigurator.java | 0 .../GetQueryStringConfigurator.java | 0 .../GetRequestUriConfigurator.java | 0 ...PrincipalNotAuthenticatedConfigurator.java | 0 ...serInRoleNotAuthenticatedConfigurator.java | 0 .../PathParamConfigurator.java | 0 .../ReadonlyGetHeadersConfigurator.java | 0 .../ReadonlyGetParamsConfigurator.java | 0 .../WSCCaseInsensitiveHeaderNamesServer.java | 0 .../server/handshakerequest/WSCClientIT.java | 0 .../WSCGetOneParamServer.java | 0 .../WSCGetQueryStringServer.java | 0 .../WSCGetTwoParamsServer.java | 0 .../WSCGetUserPrincipalServer.java | 0 .../WSCIsUserInRoleServer.java | 0 .../WSCReadOnlyGetHeadersServer.java | 0 .../WSCReadOnlyGetParameterMapServer.java | 0 .../handshakerequest/WSCRequestUriServer.java | 0 .../websocket/server/pathparam/OPS.java | 0 .../pathparam/WS0StringPathParamServer.java | 0 .../pathparam/WS10StringPathParamServer.java | 0 .../pathparam/WS11StringPathParamServer.java | 0 .../pathparam/WS1StringPathParamServer.java | 0 .../WS2DifferentPathParamsServer.java | 0 .../WS2FullDifferentPathParamsServer.java | 0 .../pathparam/WS2StringPathParamServer.java | 0 .../pathparam/WS3StringPathParamServer.java | 0 .../pathparam/WS4StringPathParamServer.java | 0 .../pathparam/WS5StringPathParamServer.java | 0 .../pathparam/WS6StringPathParamServer.java | 0 .../pathparam/WS7StringPathParamServer.java | 0 .../pathparam/WS8StringPathParamServer.java | 0 .../pathparam/WS9StringPathParamServer.java | 0 .../server/pathparam/WSClientIT.java | 0 .../WSDirectLongPathParamServer.java | 0 .../pathparam/WSOnClosePathParamServer.java | 0 .../serverapplicationconfig/AppConfig.java | 0 .../OtherAppConfig.java | 0 .../UnusedServerEndpointConfig.java | 0 .../UsedServerEndpointConfig.java | 0 .../serverapplicationconfig/WSClientIT.java | 0 .../WSConfiguredServer.java | 0 .../WSOtherUsedServer.java | 0 .../WSUnusedServer.java | 0 .../serverapplicationconfig/WSUsedServer.java | 0 .../AppConfig.java | 0 .../OtherAppConfig.java | 0 .../WSLibClientIT.java | 0 .../serverendpoint/CountingConfigurator.java | 0 .../serverendpoint/SimpleConfigurator.java | 0 .../serverendpoint/WSAbstractServer.java | 0 .../server/serverendpoint/WSClientIT.java | 0 .../serverendpoint/WSConfiguredServer.java | 0 ...CountConfiguratorInstancesFirstServer.java | 0 ...ountConfiguratorInstancesSecondServer.java | 0 .../serverendpoint/WSDecodedServer.java | 0 .../serverendpoint/WSDefaultServer.java | 0 .../serverendpoint/WSEncodedServer.java | 0 .../serverendpoint/WSSubprotocoledServer.java | 0 .../serverendpointconfig/AppConfig.java | 0 .../ConfiguratorServerEndpointConfig.java | 0 .../ExtensionsServerEndpointConfig.java | 0 .../ServerEndpointConfigConfigurator.java | 0 .../SubprotocolsServerEndpointConfig.java | 0 .../UserPropertiesConfigurator.java | 0 .../UserPropertiesServerEndpointConfig.java | 0 .../WSAnnotatedConfiguratorServer.java | 0 .../WSAnnotatedSubprotocolsServer.java | 0 .../serverendpointconfig/WSClientIT.java | 0 .../WSProgramaticConfiguratorServer.java | 0 .../WSProgramaticExtensionsServer.java | 0 .../WSProgramaticSubprotocolsServer.java | 0 .../WSProgramaticUserPropertiesServer.java | 0 .../builder/AppConfig.java | 0 .../builder/WSClientIT.java | 0 .../builder/WSCommonServer.java | 0 .../configurator/AppConfig.java | 0 .../ContainerDefaultConfiguratorA.java | 0 .../ContainerDefaultConfiguratorB.java | 0 .../configurator/ExtensionsConfigurator.java | 0 .../ExtensionsServerEndpointConfig.java | 0 .../GetEndpointInstanceConfigurator.java | 0 .../GetNegotiatedSubprotocolConfigurator.java | 0 .../ModifyHandshakeConfigurator.java | 0 .../configurator/OriginConfigurator.java | 0 .../OriginConfiguratorReturningFalse.java | 0 .../SubprotocolsServerEndpointConfig.java | 0 .../configurator/WSCClientIT.java | 0 .../configurator/WSCExtensionsServer.java | 0 ...etContainerDefaultConfiguratorServerA.java | 0 ...etContainerDefaultConfiguratorServerB.java | 0 .../WSCGetEndpointInstanceServer.java | 0 .../WSCModifyHandshakeServer.java | 0 .../configurator/WSCOriginServer.java | 0 .../WSCOriginServerReturningFalse.java | 0 ...riginServerReturningFalseConfigurator.java | 0 .../configurator/WSCSubprotocolServer.java | 0 .../jakarta/websocket/session/WSClientIT.java | 0 .../websocket/session/WSCloseTestServer.java | 0 .../websocket/session/WSCloseTestServer1.java | 0 .../websocket/session/WSCloseTestServer2.java | 0 .../websocket/session/WSTestServer.java | 0 .../websocket/session/WSTestServerByte.java | 0 .../session/WSTestServerPathParam.java | 0 .../websocket/session/WSTestServerString.java | 0 .../client/AnnotatedBinaryClient.java | 0 .../session11/client/AnnotatedTextClient.java | 0 .../client/AnnotatedThrowingClient.java | 0 .../client/ByteArrayMessageHandler.java | 0 .../ByteArrayPartialMessageHandler.java | 0 .../client/ByteBufferMessageHandler.java | 0 .../ByteBufferPartialMessageHandler.java | 0 .../client/InputStreamMessageHandler.java | 0 .../LinkedListHashSetMessageHandler.java | 0 .../client/MixedProgramaticEndpoint.java | 0 .../session11/client/PongMessageHandler.java | 0 .../client/ReaderMessageHandler.java | 0 .../client/StringBeanMessageHandler.java | 0 .../client/StringListWholeMessageHandler.java | 0 .../client/StringPartialMessageHandler.java | 0 .../client/StringTextMessageHandler.java | 0 .../client/WSCBinaryEchoServerEndpoint.java | 0 .../session11/client/WSCClientIT.java | 0 .../client/WSCEchoServerEndpoint.java | 0 .../common/AlternativeInputStreamDecoder.java | 0 .../common/AlternativeReaderDecoder.java | 0 .../common/LinkedListHashSetTextDecoder.java | 0 .../common/ListHashSetTextEncoder.java | 0 .../session11/common/StringLinkedList.java | 0 .../session11/common/StringList.java | 0 .../common/StringListTextDecoder.java | 0 .../websocket/session11/common/TypeEnum.java | 0 .../websocket/session11/server/AppConfig.java | 0 .../server/ByteArrayMessageHandler.java | 0 .../ByteArrayPartialMessageHandler.java | 0 .../server/ByteBufferMessageHandler.java | 0 .../ByteBufferPartialMessageHandler.java | 0 .../server/InputStreamMessageHandler.java | 0 .../LinkedListHashSetMessageHandler.java | 0 .../session11/server/PongMessageHandler.java | 0 .../server/ReaderMessageHandler.java | 0 .../server/StringBeanMessageHandler.java | 0 .../server/StringListWholeMessageHandler.java | 0 .../server/StringPartialMessageHandler.java | 0 .../server/StringWholeMessageHandler.java | 0 .../WSCAnnotatedBinaryServerEndpoint.java | 0 .../WSCAnnotatedMixedServerEndpoint.java | 0 .../WSCAnnotatedTextServerEndpoint.java | 0 .../session11/server/WSCClientIT.java | 0 .../session11/server/WSCServerEndpoint.java | 0 .../sessionexception/WSClientIT.java | 0 .../sessionexception/WSTestServer.java | 0 .../throwingcoder/ThrowingBinaryDecoder.java | 0 .../throwingcoder/ThrowingBinaryEncoder.java | 0 .../ThrowingBinaryStreamDecoder.java | 0 .../ThrowingBinaryStreamEncoder.java | 0 .../ThrowingIOBinaryStreamDecoder.java | 0 .../ThrowingIOBinaryStreamEncoder.java | 0 .../ThrowingIOTextStreamDecoder.java | 0 .../ThrowingIOTextStreamEncoder.java | 0 .../throwingcoder/ThrowingTextDecoder.java | 0 .../throwingcoder/ThrowingTextEncoder.java | 0 .../ThrowingTextStreamDecoder.java | 0 .../ThrowingTextStreamEncoder.java | 0 .../annotated/WSCBinaryDecoderServer.java | 0 .../annotated/WSCBinaryEncoderServer.java | 0 .../WSCBinaryStreamDecoderServer.java | 0 .../WSCBinaryStreamEncoderServer.java | 0 .../WSCClientEndpointWithBinaryDecoder.java | 0 .../WSCClientEndpointWithBinaryEncoder.java | 0 ...ClientEndpointWithBinaryStreamDecoder.java | 0 ...ClientEndpointWithBinaryStreamEncoder.java | 0 ...ientEndpointWithIOBinaryStreamDecoder.java | 0 ...ientEndpointWithIOBinaryStreamEncoder.java | 0 ...ClientEndpointWithIOTextStreamDecoder.java | 0 ...ClientEndpointWithIOTextStreamEncoder.java | 0 .../WSCClientEndpointWithTextDecoder.java | 0 .../WSCClientEndpointWithTextEncoder.java | 0 ...SCClientEndpointWithTextStreamDecoder.java | 0 ...SCClientEndpointWithTextStreamEncoder.java | 0 .../WSCIOBinaryStreamDecoderServer.java | 0 .../WSCIOBinaryStreamEncoderServer.java | 0 .../WSCIOTextStreamDecoderServer.java | 0 .../WSCIOTextStreamEncoderServer.java | 0 .../WSCReturningBinaryEncoderServer.java | 0 ...WSCReturningBinaryStreamEncoderServer.java | 0 ...urningClientEndpointWithBinaryEncoder.java | 0 ...ClientEndpointWithBinaryStreamEncoder.java | 0 ...ientEndpointWithIOBinaryStreamEncoder.java | 0 ...ClientEndpointWithIOTextStreamEncoder.java | 0 ...eturningClientEndpointWithTextEncoder.java | 0 ...ngClientEndpointWithTextStreamEncoder.java | 0 ...CReturningIOBinaryStreamEncoderServer.java | 0 ...WSCReturningIOTextStreamEncoderServer.java | 0 .../WSCReturningTextEncoderServer.java | 0 .../WSCReturningTextStreamEncoderServer.java | 0 .../annotated/WSCSimpleBinaryEchoServer.java | 0 .../annotated/WSCSimpleEchoServer.java | 0 .../annotated/WSCTextDecoderServer.java | 0 .../annotated/WSCTextEncoderServer.java | 0 .../annotated/WSCTextStreamDecoderServer.java | 0 .../annotated/WSCTextStreamEncoderServer.java | 0 .../throwingcoder/annotated/WSClientIT.java | 0 .../websocketcontainer/WSClientIT.java | 0 .../websocketcontainer/WSTestServer.java | 0 .../WSBinaryDecoderAndPathParamServer.java | 0 ...ryDecoderAndSessionAndPathParamServer.java | 0 .../WSBinaryDecoderAndSessionServer.java | 0 .../WSBinaryDecoderServer.java | 0 ...BinaryStreamDecoderAndPathParamServer.java | 0 ...amDecoderAndSessionAndPathParamServer.java | 0 ...WSBinaryStreamDecoderAndSessionServer.java | 0 .../WSBinaryStreamDecoderServer.java | 0 .../WSByteArrayAndPathParamServer.java | 0 ...ByteArrayAndSessionAndPathParamServer.java | 0 .../WSByteArrayAndSessionServer.java | 0 .../WSByteArrayPartialAndPathParamServer.java | 0 ...ayPartialAndSessionAndPathParamServer.java | 0 .../WSByteArrayPartialAndSessionServer.java | 0 .../WSByteArrayPartialServer.java | 0 .../websocketmessage/WSByteArrayServer.java | 0 .../WSByteBufferAndPathParamServer.java | 0 ...yteBufferAndSessionAndPathParamServer.java | 0 .../WSByteBufferAndSessionServer.java | 0 ...WSByteBufferPartialAndPathParamServer.java | 0 ...erPartialAndSessionAndPathParamServer.java | 0 .../WSByteBufferPartialAndSessionServer.java | 0 .../WSByteBufferPartialServer.java | 0 .../websocketmessage/WSByteBufferServer.java | 0 .../websocketmessage/WSClientIT.java | 0 .../WSDefaultMaxLengthServer.java | 0 .../WSFullBooleanAndPathParamServer.java | 0 ...llBooleanAndSessionAndPathParamServer.java | 0 .../WSFullBooleanAndSessionServer.java | 0 .../websocketmessage/WSFullBooleanServer.java | 0 .../WSFullByteAndPathParamServer.java | 0 ...SFullByteAndSessionAndPathParamServer.java | 0 .../WSFullByteAndSessionServer.java | 0 .../websocketmessage/WSFullByteServer.java | 0 .../WSFullCharAndPathParamServer.java | 0 ...SFullCharAndSessionAndPathParamServer.java | 0 .../WSFullCharAndSessionServer.java | 0 .../websocketmessage/WSFullCharServer.java | 0 .../WSFullDoubleAndPathParamServer.java | 0 ...ullDoubleAndSessionAndPathParamServer.java | 0 .../WSFullDoubleAndSessionServer.java | 0 .../websocketmessage/WSFullDoubleServer.java | 0 .../WSFullFloatAndPathParamServer.java | 0 ...FullFloatAndSessionAndPathParamServer.java | 0 .../WSFullFloatAndSessionServer.java | 0 .../websocketmessage/WSFullFloatServer.java | 0 .../WSFullIntAndPathParamServer.java | 0 ...WSFullIntAndSessionAndPathParamServer.java | 0 .../WSFullIntAndSessionServer.java | 0 .../websocketmessage/WSFullIntServer.java | 0 .../WSFullLongAndPathParamServer.java | 0 ...SFullLongAndSessionAndPathParamServer.java | 0 .../WSFullLongAndSessionServer.java | 0 .../websocketmessage/WSFullLongServer.java | 0 .../WSFullShortAndPathParamServer.java | 0 ...FullShortAndSessionAndPathParamServer.java | 0 .../WSFullShortAndSessionServer.java | 0 .../websocketmessage/WSFullShortServer.java | 0 .../WSInputStreamAndPathParamServer.java | 0 ...putStreamAndSessionAndPathParamServer.java | 0 .../WSInputStreamAndSessionServer.java | 0 .../websocketmessage/WSInputStreamServer.java | 0 .../websocketmessage/WSMaxLengthServer.java | 0 .../WSPongMessageAndPathParamServer.java | 0 ...ngMessageAndSessionAndPathParamServer.java | 0 .../WSPongMessageAndSessionServer.java | 0 .../websocketmessage/WSPongMessageServer.java | 0 .../WSPrimitiveBooleanAndPathParamServer.java | 0 ...veBooleanAndSessionAndPathParamServer.java | 0 .../WSPrimitiveBooleanAndSessionServer.java | 0 .../WSPrimitiveBooleanServer.java | 0 .../WSPrimitiveByteAndPathParamServer.java | 0 ...itiveByteAndSessionAndPathParamServer.java | 0 .../WSPrimitiveByteAndSessionServer.java | 0 .../WSPrimitiveByteServer.java | 0 .../WSPrimitiveCharAndPatahParamServer.java | 0 ...itiveCharAndSessionAndPathParamServer.java | 0 .../WSPrimitiveCharAndSessionServer.java | 0 .../WSPrimitiveCharServer.java | 0 .../WSPrimitiveDoubleAndPathParamServer.java | 0 ...iveDoubleAndSessionAndPathParamServer.java | 0 .../WSPrimitiveDoubleAndSessionServer.java | 0 .../WSPrimitiveDoubleServer.java | 0 .../WSPrimitiveFloatAndPathParamServer.java | 0 ...tiveFloatAndSessionAndPathParamServer.java | 0 .../WSPrimitiveFloatAndSessionServer.java | 0 .../WSPrimitiveFloatServer.java | 0 .../WSPrimitiveIntAndPathParamServer.java | 0 ...mitiveIntAndSessionAndPathParamServer.java | 0 .../WSPrimitiveIntAndSessionServer.java | 0 .../WSPrimitiveIntServer.java | 0 .../WSPrimitiveLongAndPathParamServer.java | 0 ...itiveLongAndSessionAndPathParamServer.java | 0 .../WSPrimitiveLongAndSessionServer.java | 0 .../WSPrimitiveLongServer.java | 0 .../WSPrimitiveShortAndPathParamServer.java | 0 ...tiveShortAndSessionAndPathParamServer.java | 0 .../WSPrimitiveShortAndSessionServer.java | 0 .../WSPrimitiveShortServer.java | 0 .../WSReaderAndPathParamServer.java | 0 .../WSReaderAndSessionAndPathParamServer.java | 0 .../WSReaderAndSessionServer.java | 0 .../websocketmessage/WSReaderServer.java | 0 .../WSStringAndPathParamServer.java | 0 .../WSStringAndSessionAndPathParamServer.java | 0 .../WSStringAndSessionServer.java | 0 .../WSStringPartialAndPathParamServer.java | 0 ...ngPartialAndSessionAndPathParamServer.java | 0 .../WSStringPartialAndSessionServer.java | 0 .../WSStringPartialServer.java | 0 .../websocketmessage/WSStringServer.java | 0 .../WSTextDecoderAndPathParamServer.java | 0 ...xtDecoderAndSessionAndPathParamServer.java | 0 .../WSTextDecoderAndSessionServer.java | 0 .../websocketmessage/WSTextDecoderServer.java | 0 ...WSTextStreamDecoderAndPathParamServer.java | 0 ...amDecoderAndSessionAndPathParamServer.java | 0 .../WSTextStreamDecoderAndSessionServer.java | 0 .../WSTextStreamDecoderServer.java | 0 .../WSBinaryEncoderServer.java | 0 .../WSBinaryStreamEncoderServer.java | 0 .../WSByteArrayServer.java | 0 .../WSByteBufferServer.java | 0 .../WSClientIT.java | 0 .../WSDirectByteBufferServer.java | 0 .../WSFullBooleanServer.java | 0 .../WSFullByteServer.java | 0 .../WSFullCharServer.java | 0 .../WSFullDoubleServer.java | 0 .../WSFullFloatServer.java | 0 .../WSFullIntServer.java | 0 .../WSFullLongServer.java | 0 .../WSFullShortServer.java | 0 .../WSPrimitiveBooleanServer.java | 0 .../WSPrimitiveByteServer.java | 0 .../WSPrimitiveCharServer.java | 0 .../WSPrimitiveDoubleServer.java | 0 .../WSPrimitiveFloatServer.java | 0 .../WSPrimitiveIntServer.java | 0 .../WSPrimitiveLongServer.java | 0 .../WSPrimitiveShortServer.java | 0 .../WSTextEncoderServer.java | 0 .../WSTextStreamEncoderServer.java | 0 .../implementation/sun/common/SunRIURL.java | 0 .../websocket/negdep/EchoServerEndpoint.java | 0 .../negdep/NegativeDeploymentClient.java | 0 .../tests/websocket/negdep/StringHolder.java | 0 .../pasrv/onclose/AppConfig.java | 0 .../OnCloseStringHolderServerEndpoint.java | 0 .../pasrv/onclose/TestListener.java | 0 .../pasrv/onclose/WSCClientIT.java | 0 .../pasrv/onerror/AppConfig.java | 0 .../pasrv/onerror/OnErrorServerEndpoint.java | 0 .../pasrv/onerror/TestListener.java | 0 .../pasrv/onerror/WSCClientIT.java | 0 .../pasrv/onmessage/AppConfig.java | 0 .../onmessage/OnMessageServerEndpoint.java | 0 .../pasrv/onmessage/TestListener.java | 0 .../pasrv/onmessage/WSCClientIT.java | 0 .../pasrv/onopen/AppConfig.java | 0 .../pasrv/onopen/OnOpenServerEndpoint.java | 0 .../pasrv/onopen/TestListener.java | 0 .../pasrv/onopen/WSCClientIT.java | 0 .../OnCloseStringHolderServerEndpoint.java | 0 .../srv/onclose/WSCClientIT.java | 0 .../OnErrorStringHolderServerEndpoint.java | 0 .../srv/onerror/WSCClientIT.java | 0 .../OnMessageStringHolderServerEndpoint.java | 0 .../srv/onmessage/WSCClientIT.java | 0 .../OnOpenStringHolderServerEndpoint.java | 0 .../srv/onopen/WSCClientIT.java | 0 .../MalformedPathServerEndpoint.java | 0 .../negdep/malformedpath/WSCClientIT.java | 0 .../SamePathServerEndpoint1.java | 0 .../SamePathServerEndpoint2.java | 0 .../negdep/multiplepaths/WSCClientIT.java | 0 .../AnnotatedOnCloseClientEndpoint.java | 0 .../onclose/client/duplicate/WSCClientIT.java | 0 .../AnnotatedOnCloseClientEndpoint.java | 0 .../client/toomanyargs/WSCClientIT.java | 0 .../srv/duplicate/OnCloseServerEndpoint.java | 0 .../onclose/srv/duplicate/WSCClientIT.java | 0 .../toomanyargs/OnCloseServerEndpoint.java | 0 .../onclose/srv/toomanyargs/WSCClientIT.java | 0 .../AnnotatedOnErrorClientEndpoint.java | 0 .../onerror/client/duplicate/WSCClientIT.java | 0 .../AnnotatedOnErrorClientEndpoint.java | 0 .../client/toomanyargs/WSCClientIT.java | 0 .../srv/duplicate/OnErrorServerEndpoint.java | 0 .../onerror/srv/duplicate/WSCClientIT.java | 0 .../toomanyargs/OnErrorServerEndpoint.java | 0 .../onerror/srv/toomanyargs/WSCClientIT.java | 0 .../OnMessageClientEndpoint.java | 0 .../binarybytebufferint/WSCClientIT.java | 0 .../OnMessageClientEndpoint.java | 0 .../client/binaryduplicate/WSCClientIT.java | 0 .../OnMessageClientEndpoint.java | 0 .../binaryinputstreamboolean/WSCClientIT.java | 0 .../nodecoder/OnMessageClientEndpoint.java | 0 .../client/nodecoder/WSCClientIT.java | 0 .../pongboolean/OnMessageClientEndpoint.java | 0 .../client/pongboolean/WSCClientIT.java | 0 .../OnMessageClientEndpoint.java | 0 .../client/pongduplicate/WSCClientIT.java | 0 .../OnMessageClientEndpoint.java | 0 .../client/textbigdecimal/WSCClientIT.java | 0 .../OnMessageClientEndpoint.java | 0 .../client/textduplicate/WSCClientIT.java | 0 .../OnMessageClientEndpoint.java | 0 .../client/textreaderboolean/WSCClientIT.java | 0 .../OnMessageClientEndpoint.java | 0 .../client/textstringint/WSCClientIT.java | 0 .../pasrv/nomoreendpoints/AppConfig.java | 0 .../OnMessageServerEndpoint.java | 0 .../pasrv/nomoreendpoints/TestListener.java | 0 .../pasrv/nomoreendpoints/WSCClientIT.java | 0 .../ppsrv/nomoreendpoints/AppConfig.java | 0 .../nomoreendpoints/EchoServerConfig.java | 0 .../nomoreendpoints/EchoServerEndpoint.java | 0 .../OnMessageServerEndpoint.java | 0 .../ppsrv/nomoreendpoints/TestListener.java | 0 .../ppsrv/nomoreendpoints/WSCClientIT.java | 0 .../OnMessageServerEndpoint.java | 0 .../srv/binarybytebufferint/WSCClientIT.java | 0 .../OnMessageServerEndpoint.java | 0 .../srv/binaryduplicate/WSCClientIT.java | 0 .../OnMessageServerEndpoint.java | 0 .../binaryinputstreamboolean/WSCClientIT.java | 0 .../OnMessageServerEndpoint.java | 0 .../srv/binarynodecoder/WSCClientIT.java | 0 .../pongboolean/OnMessageServerEndpoint.java | 0 .../srv/pongboolean/WSCClientIT.java | 0 .../OnMessageServerEndpoint.java | 0 .../srv/pongduplicate/WSCClientIT.java | 0 .../OnMessageServerEndpoint.java | 0 .../srv/textbigdecimal/WSCClientIT.java | 0 .../OnMessageServerEndpoint.java | 0 .../srv/textduplicate/WSCClientIT.java | 0 .../OnMessageServerEndpoint.java | 0 .../srv/textnodecoder/WSCClientIT.java | 0 .../OnMessageServerEndpoint.java | 0 .../srv/textreaderboolean/WSCClientIT.java | 0 .../OnMessageServerEndpoint.java | 0 .../srv/textstringint/WSCClientIT.java | 0 .../AnnotatedOnOpenClientEndpoint.java | 0 .../onopen/client/duplicate/WSCClientIT.java | 0 .../AnnotatedOnOpenClientEndpoint.java | 0 .../client/toomanyargs/WSCClientIT.java | 0 .../srv/duplicate/OnOpenServerEndpoint.java | 0 .../onopen/srv/duplicate/WSCClientIT.java | 0 .../srv/toomanyargs/OnOpenServerEndpoint.java | 0 .../onopen/srv/toomanyargs/WSCClientIT.java | 0 .../signaturetest/WebSocketSigTestIT.java | 252 +++ ...intSubclassWithOverrideAndAnnotations.java | 0 ...ientEndpointSuperclassWithAnnotations.java | 0 ...ndpointWithMultipleOnCloseAnnotations.java | 0 ...ndpointWithMultipleOnErrorAnnotations.java | 0 ...pointWithMultipleOnMessageAnnotations.java | 0 ...EndpointWithMultipleOnOpenAnnotations.java | 0 ...tedSubclassEndpointWithoutAnnotations.java | 0 .../annotation/inheritance/EchoServer.java | 0 .../annotation/inheritance/WSCClientIT.java | 0 .../spec/application/closing/WSCClientIT.java | 0 .../closing/WSCCloseSessionServer.java | 0 .../application/containers/WSCServer.java | 0 .../application/containers/WSClientIT.java | 0 .../application/lifecycle/InnerEndpoint.java | 0 .../application/lifecycle/OuterEndpoint.java | 0 .../application/lifecycle/WSCClientIT.java | 0 .../lifecycle/WSCServerLifecycleServer.java | 0 .../configuration/urimatching/WSClientIT.java | 0 .../urimatching/WSL1ExactServer.java | 0 .../urimatching/WSL1ParamServer.java | 0 .../urimatching/WSL2CParamDServer.java | 0 .../urimatching/WSL2DParamCServer.java | 0 .../urimatching/WSL2ExactCDServer.java | 0 .../urimatching/WSL2ParamCDServer.java | 0 .../urimatching/WSL3ACDExactServer.java | 0 .../urimatching/WSL3ACParamDServer.java | 0 .../urimatching/WSL3ADParamCServer.java | 0 .../urimatching/WSL3AParamCDServer.java | 0 .../urimatching/WSL3CDParamAServer.java | 0 .../urimatching/WSL3CParamADServer.java | 0 .../urimatching/WSL3DParamACServer.java | 0 .../urimatching/WSL3ParamACDServer.java | 0 .../addendpoint/AppConfig.java | 0 .../TCKWebSocketContainerInitializer.java | 0 .../addendpoint/TestListener.java | 0 .../addendpoint/WSClientIT.java | 4 +- .../addendpoint/WSCloseTestServer.java | 0 .../addendpoint/WSCloseTestServer1.java | 0 .../addendpoint/WSCloseTestServer2.java | 0 .../addendpoint/WSTestServer.java | 0 .../addendpoint/WSTestServerByte.java | 0 .../addendpoint/WSTestServerPathParam.java | 0 .../addendpoint/WSTestServerString.java | 0 .../upgradehttptowebsocket/WSClientIT.java | 0 .../upgradehttptowebsocket/WSTestServer.java | 0 .../upgradehttptowebsocket/WSTestServlet.java | 0 .../spec/session/sessionid/WSClientIT.java | 0 .../spec/session/sessionid/WSTestServer.java | 0 .../websocket/clientendpointconfig/web.xml | 0 .../jakarta.websocket.ContainerProvider | 0 .../ee/jakarta/websocket/session/web.xml | 0 .../websocket/sessionexception/web.xml | 0 .../websocket/websocketcontainer/web.xml | 0 .../signaturetest/jakarta.websocket.sig_2.2 | 518 +++++ .../signaturetest/sig-test-pkg-list.txt | 26 + .../websocket/signaturetest/sig-test.map | 20 + ...akarta.servlet.ServletContainerInitializer | 0 .../websocket/spec/session/sessionid/web.xml | 0 websocket/tck-dist/pom.xml | 131 ++ .../tck-dist/src/main/assembly/assembly.xml | 77 + .../src/main/resources/LICENSE_EFTL.md | 83 + .../src/main/resources/LICENSE_EPL.md | 637 ++++++ 963 files changed, 11434 insertions(+), 235 deletions(-) create mode 100644 websocket/common/pom.xml rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/TCKExtension.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedByteBufferClientEndpoint.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedClientEndpoint.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedStringClientEndpoint.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheRequestAdapter.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheResponseAdapter.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/BinaryAndTextClientEndpoint.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/ByteBufferClientEndpoint.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/ClientEndpoint.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/EndpointCallback.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/SendMessageCallback.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/StringClientEndpoint.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/TextCaser.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketCommonClient.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketTestCase.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/common.xml (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/impl/ClientConfigurator.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionImpl.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionParameterImpl.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPingMessage.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPongMessage.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/impl/WaitingSendHandler.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/io/StringInputStream.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/io/StringReader.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBean.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryDecoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryEncoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamDecoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamEncoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanClientEndpoint.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextDecoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextEncoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamDecoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamEncoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanDecoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanEncoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/util/ByteDecoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/util/ErrorEncoder.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/util/IOUtil.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/util/MessageValidator.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/util/SessionUtil.java (100%) rename websocket/{ => common}/src/main/java/com/sun/ts/tests/websocket/common/util/StringUtil.java (100%) create mode 100755 websocket/docs/README.txt create mode 100644 websocket/docs/TCK-Exclude-List.txt create mode 100644 websocket/docs/WebSocketJavadocAssertions.html create mode 100644 websocket/docs/WebSocketTCK2.2-ReleaseNotes.html create mode 100644 websocket/docs/index.html create mode 100644 websocket/docs/userguide/README.md create mode 100644 websocket/docs/userguide/pom.xml create mode 100644 websocket/docs/userguide/src/main/jbake/assets/README.md create mode 100644 websocket/docs/userguide/src/main/jbake/assets/_config.yml create mode 100644 websocket/docs/userguide/src/main/jbake/assets/css/style.css create mode 100644 websocket/docs/userguide/src/main/jbake/assets/img/eclipse_foundation_logo_tiny.png create mode 100644 websocket/docs/userguide/src/main/jbake/content/README create mode 100644 websocket/docs/userguide/src/main/jbake/content/attributes.conf create mode 100644 websocket/docs/userguide/src/main/jbake/content/config.adoc create mode 100644 websocket/docs/userguide/src/main/jbake/content/config.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/debug-tips.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/debug.adoc create mode 100644 websocket/docs/userguide/src/main/jbake/content/defns.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/faq.adoc create mode 100644 websocket/docs/userguide/src/main/jbake/content/install-server-vi.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/install-server.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/install.adoc create mode 100644 websocket/docs/userguide/src/main/jbake/content/intro.adoc create mode 100644 websocket/docs/userguide/src/main/jbake/content/intro.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/packages.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/platforms.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/preface.adoc create mode 100644 websocket/docs/userguide/src/main/jbake/content/rebuild.adoc create mode 100644 websocket/docs/userguide/src/main/jbake/content/rebuild.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/req-software.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/rules.adoc create mode 100644 websocket/docs/userguide/src/main/jbake/content/rules.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/tck-packages.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/title.adoc create mode 100644 websocket/docs/userguide/src/main/jbake/content/title.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/using-examples.inc create mode 100644 websocket/docs/userguide/src/main/jbake/content/using.adoc create mode 100644 websocket/docs/userguide/src/main/jbake/content/using.inc create mode 100644 websocket/docs/userguide/src/main/jbake/jbake.properties create mode 100644 websocket/docs/userguide/src/main/jbake/templates/footer.ftl create mode 100644 websocket/docs/userguide/src/main/jbake/templates/header.ftl create mode 100644 websocket/docs/userguide/src/main/jbake/templates/menu.ftl create mode 100644 websocket/docs/userguide/src/main/jbake/templates/page.ftl create mode 100644 websocket/docs/userguide/src/theme/jakartaee-theme.yml create mode 100644 websocket/platform-tests/pom.xml rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSClientIT.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSConstructorServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSFieldServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSInjectableServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSMethodServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/AppConfig.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/GetUserPrincipalConfigurator.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/IsUserInRoleConfigurator.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCClientIT.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCGetUserPrincipalServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCIsUserInRoleServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCPostUnauthEchoServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCUnauthEchoServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/CloseHttpSessionConfigurator.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/TCKRequestListener.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/WSCClientIT.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/WSCCloseHttpSessionServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/AppConfig.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/GetUserPrincipalConfigurator.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/IsUserInRoleConfigurator.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCClientIT.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCGetUserPrincipalServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCIsUserInRoleServer.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/GetHttpSessionConfigurator.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/TCKRequestListener.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/WSCClientIT.java (100%) rename websocket/{ => platform-tests}/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/WSCGetHttpSessionServer.java (100%) rename websocket/{ => platform-tests}/src/main/resources/com/sun/ts/tests/websocket/platform/cdi/beans.xml (100%) rename websocket/{ => platform-tests}/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/web.xml (100%) rename websocket/{ => platform-tests}/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/wsc_platform_jakarta_websocket_handshakeresponse_authenticated_web.war.sun-web.xml (100%) rename websocket/{ => platform-tests}/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/web.xml (100%) rename websocket/{ => platform-tests}/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/wsc_platform_jakarta_websocket_handshakeresponse_authenticated_logoff_web.war.sun-web.xml (100%) rename websocket/{ => platform-tests}/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/web.xml (100%) rename websocket/{ => platform-tests}/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/wsc_platform_jakarta_websocket_handshakeresponse_ssl_web.war.sun-web.xml (100%) create mode 100644 websocket/spec-tests/pom.xml rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/clientendpointconfig/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/closereason/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/decodeexception/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/deploymentException/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/encodeexception/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/server/serverendpointconfig/TCKEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/server/serverendpointconfig/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/websocketcontainer/WSClientIT.java (100%) create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/TCKExtension.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedByteBufferClientEndpoint.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedClientEndpoint.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedStringClientEndpoint.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheRequestAdapter.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheResponseAdapter.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/BinaryAndTextClientEndpoint.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ByteBufferClientEndpoint.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ClientEndpoint.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/EndpointCallback.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/SendMessageCallback.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/StringClientEndpoint.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/TextCaser.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketCommonClient.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketTestCase.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/common.xml create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ClientConfigurator.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionImpl.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionParameterImpl.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPingMessage.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPongMessage.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/WaitingSendHandler.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/io/StringInputStream.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/io/StringReader.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBean.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryDecoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryEncoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamDecoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamEncoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanClientEndpoint.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextDecoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextEncoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamDecoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamEncoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanDecoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanEncoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/ByteDecoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/ErrorEncoder.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/IOUtil.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/MessageValidator.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/SessionUtil.java create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/StringUtil.java rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/ClientConfiguratorHolderClientConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/GetNegotiatedSubprotocolConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/OPS.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCCloseClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCConfiguratedClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCEchoServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCErrorClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCMatchedSubprotocolClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCSubprotocolServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCUnmatchedSubprotocolClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/WSTestServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/OPS.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryDecoderAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryDecoderClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryStreamDecoderAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryStreamDecoderClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayPartialAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayPartialClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferPartialAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferPartialClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSCServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSDefaultMaxLengthClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullBooleanAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullBooleanClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullByteAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullByteClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullCharAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullCharClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullDoubleAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullDoubleClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullFloatAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullFloatClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullIntAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullIntClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullLongAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullLongClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullShortAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullShortClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSInputStreamAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSInputStreamClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSMaxLengthClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPongMessageAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPongMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveBooleanAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveBooleanClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveByteAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveByteClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveCharAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveCharClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveDoubleAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveDoubleClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveFloatAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveFloatClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveIntAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveIntClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveLongAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveLongClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveShortAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveShortClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSReaderAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSReaderClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringPartialAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringPartialClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextDecoderAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextDecoderClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextStreamDecoderAndSessionClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextStreamDecoderClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCBinaryEncoderClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCBinaryStreamEncoderClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCByteArrayClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCByteBufferClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullBooleanClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullByteClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullCharClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullDoubleClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullFloatClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullIntClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullLongClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullShortClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveBooleanClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveByteClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveCharClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveDoubleClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveFloatClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveIntClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveLongClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveShortClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCTextEncoderClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCTextStreamEncoderClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/Logger.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryDecoders.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextDecoders.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryStreamDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextStreamDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCLoggerServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCSimpleBinaryEchoServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCSimpleEchoServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSIDTextEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSWillDecodeBinaryDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSWillDecodeTextDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeFirstBinaryDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeFirstTextDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeSecondBinaryDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeSecondTextDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/LibrariedQuestionaire.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKClassLoader.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKContainerProvider.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKWebSocketContainer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSCServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSClientIT.java (96%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/vi/WSCServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/vi/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/OPS.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCCloseClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCEchoServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCErrorClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCCloseServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCErrorServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCMsgServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/EchoConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/SetHeadersConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCEchoServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCSetHeadersServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryDecoderEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryEncoderEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryStreamDecoderEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryStreamEncoderEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextDecoderEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextEncoderEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextStreamDecoderEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextStreamEncoderEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryStreamDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextStreamDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCWillDecodeBinaryDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCWillDecodeTextDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSProgramaticClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WillDecodeBinaryDecoderEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WillDecodeTextDecoderEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/PongMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/AsyncEndpointCallback.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/OPS.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/PokingEndpointCallback.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingBinaryCoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingStringBean.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingStringBeanEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingTextCoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCOtherSideServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCServerSideServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCThrowingServerSideServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/BasicEndpointCallback.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/HolderForThrowingEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/OPS.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/PokingEndpointCallback.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/ThrowingEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSCOtherSideServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSCServerSideServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderBool.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderByte.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderChar.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderDouble.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderFloat.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderInt.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderLong.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderShort.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderBool.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderByte.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderChar.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderDouble.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderFloat.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderInt.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderLong.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderShort.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClass.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassBinary.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassBinaryStream.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassText.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassTextStream.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/OPS.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderBool.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderByte.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderChar.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderDouble.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderFloat.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderInt.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderLong.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderShort.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderBool.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderByte.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderChar.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderDouble.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderFloat.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderInt.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderLong.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderShort.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCBinaryClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCBinaryStreamClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCEchoServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCSuperEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCTextClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCTextStreamClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/AsyncEndpointCallback.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCBinaryServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCBinaryStreamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCCommonServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCTextServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCTextStreamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/AsyncEndpointCallback.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCBinaryServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCBinaryStreamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCCommonServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCTextServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCTextStreamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCBinaryServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCBinaryStreamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCCommonServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCTextServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCTextStreamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/CaseInsensitiveHeaderNamesConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetQueryStringConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetRequestUriConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetUserPrincipalNotAuthenticatedConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/IsUserInRoleNotAuthenticatedConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/PathParamConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/ReadonlyGetHeadersConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/ReadonlyGetParamsConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCCaseInsensitiveHeaderNamesServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetOneParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetQueryStringServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetTwoParamsServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetUserPrincipalServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCIsUserInRoleServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCReadOnlyGetHeadersServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCReadOnlyGetParameterMapServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCRequestUriServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/OPS.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS0StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS10StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS11StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS1StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2DifferentPathParamsServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2FullDifferentPathParamsServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS3StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS4StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS5StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS6StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS7StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS8StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS9StringPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSDirectLongPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSOnClosePathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/OtherAppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/UnusedServerEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/UsedServerEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSConfiguredServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSOtherUsedServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSUnusedServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSUsedServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/OtherAppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/WSLibClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/CountingConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/SimpleConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSAbstractServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSConfiguredServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSCountConfiguratorInstancesFirstServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSCountConfiguratorInstancesSecondServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSDecodedServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSDefaultServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSEncodedServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSSubprotocoledServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ConfiguratorServerEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ExtensionsServerEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ServerEndpointConfigConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/SubprotocolsServerEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/UserPropertiesConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/UserPropertiesServerEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSAnnotatedConfiguratorServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSAnnotatedSubprotocolsServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticConfiguratorServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticExtensionsServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticSubprotocolsServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticUserPropertiesServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/WSCommonServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ContainerDefaultConfiguratorA.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ContainerDefaultConfiguratorB.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ExtensionsConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ExtensionsServerEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/GetEndpointInstanceConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/GetNegotiatedSubprotocolConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ModifyHandshakeConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/OriginConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/OriginConfiguratorReturningFalse.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/SubprotocolsServerEndpointConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCExtensionsServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetContainerDefaultConfiguratorServerA.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetContainerDefaultConfiguratorServerB.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetEndpointInstanceServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCModifyHandshakeServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServerReturningFalse.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServerReturningFalseConfigurator.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCSubprotocolServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer1.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer2.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerByte.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerPathParam.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerString.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedBinaryClient.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedTextClient.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedThrowingClient.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteArrayMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteArrayPartialMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteBufferMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteBufferPartialMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/InputStreamMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/LinkedListHashSetMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/MixedProgramaticEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/PongMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ReaderMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringBeanMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringListWholeMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringPartialMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringTextMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCBinaryEchoServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCEchoServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/AlternativeInputStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/AlternativeReaderDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/LinkedListHashSetTextDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/ListHashSetTextEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringLinkedList.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringList.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringListTextDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/TypeEnum.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteArrayMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteArrayPartialMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteBufferMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteBufferPartialMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/InputStreamMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/LinkedListHashSetMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/PongMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ReaderMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringBeanMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringListWholeMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringPartialMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringWholeMessageHandler.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedBinaryServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedMixedServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedTextServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/WSTestServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOBinaryStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOBinaryStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOTextStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOTextStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryStreamDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOBinaryStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOBinaryStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOTextStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOTextStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextStreamDecoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOBinaryStreamDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOBinaryStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOTextStreamDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOTextStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningBinaryEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningBinaryStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithBinaryEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithBinaryStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithIOBinaryStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithIOTextStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithTextEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithTextStreamEncoder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningIOBinaryStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningIOTextStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningTextEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningTextStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCSimpleBinaryEchoServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCSimpleEchoServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextStreamDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/WSTestServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSDefaultMaxLengthServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSMaxLengthServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndPatahParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndSessionAndPathParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSBinaryEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSBinaryStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSByteArrayServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSByteBufferServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSDirectByteBufferServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullBooleanServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullByteServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullCharServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullDoubleServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullFloatServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullIntServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullLongServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullShortServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveBooleanServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveByteServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveCharServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveDoubleServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveFloatServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveIntServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveLongServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveShortServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSTextEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSTextStreamEncoderServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/lib/implementation/sun/common/SunRIURL.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/EchoServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/NegativeDeploymentClient.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/StringHolder.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/OnCloseStringHolderServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/TestListener.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/OnErrorServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/TestListener.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/TestListener.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/OnOpenServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/TestListener.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onclose/OnCloseStringHolderServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onclose/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onerror/OnErrorStringHolderServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onerror/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onmessage/OnMessageStringHolderServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onmessage/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onopen/OnOpenStringHolderServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onopen/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/malformedpath/MalformedPathServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/malformedpath/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/SamePathServerEndpoint1.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/SamePathServerEndpoint2.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/duplicate/AnnotatedOnCloseClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/duplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/toomanyargs/AnnotatedOnCloseClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/toomanyargs/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/duplicate/OnCloseServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/duplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/toomanyargs/OnCloseServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/toomanyargs/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/duplicate/AnnotatedOnErrorClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/duplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/toomanyargs/AnnotatedOnErrorClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/toomanyargs/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/duplicate/OnErrorServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/duplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/toomanyargs/OnErrorServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/toomanyargs/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binarybytebufferint/OnMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binarybytebufferint/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryduplicate/OnMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryduplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryinputstreamboolean/OnMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryinputstreamboolean/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/nodecoder/OnMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/nodecoder/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongboolean/OnMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongboolean/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongduplicate/OnMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongduplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textbigdecimal/OnMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textbigdecimal/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textduplicate/OnMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textduplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textreaderboolean/OnMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textreaderboolean/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textstringint/OnMessageClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textstringint/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/TestListener.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/EchoServerConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/EchoServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/TestListener.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryduplicate/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryduplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryinputstreamboolean/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryinputstreamboolean/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarynodecoder/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarynodecoder/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongboolean/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongboolean/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongduplicate/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongduplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textbigdecimal/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textbigdecimal/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textduplicate/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textduplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textnodecoder/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textnodecoder/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textreaderboolean/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textreaderboolean/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textstringint/OnMessageServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textstringint/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/duplicate/AnnotatedOnOpenClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/duplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/toomanyargs/AnnotatedOnOpenClientEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/toomanyargs/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/duplicate/OnOpenServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/duplicate/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/toomanyargs/OnOpenServerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/toomanyargs/WSCClientIT.java (100%) create mode 100644 websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/signaturetest/WebSocketSigTestIT.java rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointSubclassWithOverrideAndAnnotations.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointSuperclassWithAnnotations.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnCloseAnnotations.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnErrorAnnotations.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnMessageAnnotations.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnOpenAnnotations.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedSubclassEndpointWithoutAnnotations.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/EchoServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/application/closing/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/application/closing/WSCCloseSessionServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/application/containers/WSCServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/application/containers/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/InnerEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/OuterEndpoint.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/WSCClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/WSCServerLifecycleServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL1ExactServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL1ParamServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2CParamDServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2DParamCServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2ExactCDServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2ParamCDServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ACDExactServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ACParamDServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ADParamCServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3AParamCDServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3CDParamAServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3CParamADServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3DParamACServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ParamACDServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/AppConfig.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/TCKWebSocketContainerInitializer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/TestListener.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSClientIT.java (99%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer1.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer2.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerByte.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerPathParam.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerString.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSTestServer.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSTestServlet.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/session/sessionid/WSClientIT.java (100%) rename websocket/{ => spec-tests}/src/main/java/com/sun/ts/tests/websocket/spec/session/sessionid/WSTestServer.java (100%) rename websocket/{ => spec-tests}/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/web.xml (100%) rename websocket/{ => spec-tests}/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/jakarta.websocket.ContainerProvider (100%) rename websocket/{ => spec-tests}/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/web.xml (100%) rename websocket/{ => spec-tests}/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/web.xml (100%) rename websocket/{ => spec-tests}/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/web.xml (100%) create mode 100644 websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/jakarta.websocket.sig_2.2 create mode 100644 websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/sig-test-pkg-list.txt create mode 100644 websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/sig-test.map rename websocket/{ => spec-tests}/src/main/resources/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/jakarta.servlet.ServletContainerInitializer (100%) rename websocket/{ => spec-tests}/src/main/resources/com/sun/ts/tests/websocket/spec/session/sessionid/web.xml (100%) create mode 100644 websocket/tck-dist/pom.xml create mode 100644 websocket/tck-dist/src/main/assembly/assembly.xml create mode 100644 websocket/tck-dist/src/main/resources/LICENSE_EFTL.md create mode 100644 websocket/tck-dist/src/main/resources/LICENSE_EPL.md diff --git a/glassfish-runner/pom.xml b/glassfish-runner/pom.xml index acb7e92770..bce715ede7 100644 --- a/glassfish-runner/pom.xml +++ b/glassfish-runner/pom.xml @@ -49,10 +49,6 @@ - - jakarta-snapshots - https://jakarta.oss.sonatype.org/content/repositories/staging/ - central https://repo1.maven.org/maven2 @@ -61,6 +57,10 @@ jboss https://repository.jboss.org/nexus/content/repositories/releases/ + + jakarta-snapshots + https://jakarta.oss.sonatype.org/content/repositories/staging/ + diff --git a/glassfish-runner/websocket-tck/pom.xml b/glassfish-runner/websocket-tck/pom.xml index eb2fef4285..e185b5c774 100644 --- a/glassfish-runner/websocket-tck/pom.xml +++ b/glassfish-runner/websocket-tck/pom.xml @@ -16,21 +16,18 @@ --> - jakarta + jakarta.tck glassfish.websocket-tck 11.0.0-SNAPSHOT jar 4.0.0 - - org.glassfish - standalone-tck - 10.0.0 - ../pom.xml - - jakarta.websocket-tck - 2.1.0 + websocket-tck-spec-tests + 2.2.0 1.7.0.Alpha10 + 5.9.1 + 8.0.0-M1 + glassfish7 @@ -50,14 +47,19 @@ ${junit.jupiter.version} - jakarta.tck + ${project.groupId} common ${project.version} - jakarta.tck - websocket-tck - 11.0.0-SNAPSHOT + ${project.groupId} + websocket-tck-common + ${tck.version} + + + ${project.groupId} + ${tck.artifactId} + ${tck.version} org.jboss.arquillian.container @@ -81,6 +83,16 @@ 1.2 test + + jakarta.tck + signaturetest + 11.0.0-SNAPSHOT + + + org.netbeans.tools + sigtest-maven-plugin + 1.7 + @@ -125,155 +137,6 @@ - - - - - exec-maven-plugin - org.codehaus.mojo - - - StopDomain1 - pre-integration-test - - exec - - - ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin - - stop-domain - - - - - StartDomain1 - pre-integration-test - - exec - - - ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin - - start-domain - - - - - Enable Trace requests - pre-integration-test - - exec - - - ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin - - set - server-config.network-config.protocols.protocol.http-listener-1.http.trace-enabled=true - - - - - Delete User j2ee - pre-integration-test - - exec - - - ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin - - --passwordfile - ${project.basedir}/j2ee.pass - delete-file-user - j2ee - - - 0 - 1 - - - - - Add User j2ee - pre-integration-test - - exec - - - ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin - - --passwordfile - ${project.basedir}/j2ee.pass - create-file-user - --groups - staff:mgr - j2ee - - - - - Delete User javajoe - pre-integration-test - - exec - - - ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin - - --passwordfile - ${project.basedir}/javajoe.pass - delete-file-user - javajoe - - - 0 - 1 - - - - - Add User javajoe - pre-integration-test - - exec - - - ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin - - --passwordfile - ${project.basedir}/javajoe.pass - create-file-user - --groups - guest - javajoe - - - - - list users - pre-integration-test - - exec - - - ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin - - list-file-users - - - - - StopDomain - pre-integration-test - - exec - - - ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin - - stop-domain - - - @@ -287,9 +150,6 @@ verify - - **/platform/** - ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.websocket-api.jar ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.websocket-client-api.jar @@ -306,18 +166,16 @@ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/tyrus-container-grizzly-client.jar ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/tyrus-spi.jar - jakarta.tck:websocket-tck + ${project.groupId}:${tck.artifactId} ${project.build.directory}/${glassfish.toplevel.dir} ${project.build.directory}/${glassfish.toplevel.dir} 5 websockettck true - j2ee - j2ee - javajoe - javajoe com.sun.ts.tests.websocket.lib.implementation.sun.common.SunRIURL + ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.websocket-api.jar:${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.websocket-client-api.jar:${project.build.directory}/jdk11-bundle/java.base:${project.build.directory}/jdk11-bundle/java.rmi:${project.build.directory}/jdk11-bundle/java.sql:${project.build.directory}/jdk11-bundle/java.naming + ${project.build.directory}/jdk11-bundle ${project.build.directory}/${glassfish.toplevel.dir} diff --git a/user_guides/pom.xml b/user_guides/pom.xml index 0e93a58f1b..faa584317d 100644 --- a/user_guides/pom.xml +++ b/user_guides/pom.xml @@ -42,7 +42,6 @@ parent platform saaj - websocket diff --git a/websocket/common/pom.xml b/websocket/common/pom.xml new file mode 100644 index 0000000000..0c0702c148 --- /dev/null +++ b/websocket/common/pom.xml @@ -0,0 +1,70 @@ + + + + 4.0.0 + + jakarta.tck + websocket-tck + 2.2.0 + + websocket-tck-common + jar + + + + org.apache.maven.plugins + maven-javadoc-plugin + + none + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + + src/main/java + + **/*.xml + **/*.map + **/*.txt + **/*.sig* + + + + + + + + diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/TCKExtension.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/TCKExtension.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/TCKExtension.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/TCKExtension.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedByteBufferClientEndpoint.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedByteBufferClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedByteBufferClientEndpoint.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedByteBufferClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedClientEndpoint.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedClientEndpoint.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedStringClientEndpoint.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedStringClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedStringClientEndpoint.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedStringClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheRequestAdapter.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheRequestAdapter.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheRequestAdapter.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheRequestAdapter.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheResponseAdapter.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheResponseAdapter.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheResponseAdapter.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheResponseAdapter.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/BinaryAndTextClientEndpoint.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/BinaryAndTextClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/BinaryAndTextClientEndpoint.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/BinaryAndTextClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/ByteBufferClientEndpoint.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/ByteBufferClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/ByteBufferClientEndpoint.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/ByteBufferClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/ClientEndpoint.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/ClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/ClientEndpoint.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/ClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/EndpointCallback.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/EndpointCallback.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/EndpointCallback.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/EndpointCallback.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/SendMessageCallback.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/SendMessageCallback.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/SendMessageCallback.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/SendMessageCallback.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/StringClientEndpoint.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/StringClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/StringClientEndpoint.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/StringClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/TextCaser.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/TextCaser.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/TextCaser.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/TextCaser.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketCommonClient.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketCommonClient.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketCommonClient.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketCommonClient.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketTestCase.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketTestCase.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketTestCase.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketTestCase.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/common.xml b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/common.xml similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/common.xml rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/common.xml diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/ClientConfigurator.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/ClientConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/ClientConfigurator.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/ClientConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionImpl.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionImpl.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionImpl.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionImpl.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionParameterImpl.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionParameterImpl.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionParameterImpl.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionParameterImpl.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPingMessage.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPingMessage.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPingMessage.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPingMessage.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPongMessage.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPongMessage.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPongMessage.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPongMessage.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/WaitingSendHandler.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/WaitingSendHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/impl/WaitingSendHandler.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/impl/WaitingSendHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/io/StringInputStream.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/io/StringInputStream.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/io/StringInputStream.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/io/StringInputStream.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/io/StringReader.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/io/StringReader.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/io/StringReader.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/io/StringReader.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBean.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBean.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBean.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBean.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryDecoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryDecoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryEncoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryEncoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamDecoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamDecoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamEncoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamEncoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanClientEndpoint.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanClientEndpoint.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextDecoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextDecoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextEncoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextEncoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamDecoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamDecoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamEncoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamEncoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanDecoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanDecoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanEncoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanEncoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/util/ByteDecoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/ByteDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/util/ByteDecoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/ByteDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/util/ErrorEncoder.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/ErrorEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/util/ErrorEncoder.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/ErrorEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/util/IOUtil.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/IOUtil.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/util/IOUtil.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/IOUtil.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/util/MessageValidator.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/MessageValidator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/util/MessageValidator.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/MessageValidator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/util/SessionUtil.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/SessionUtil.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/util/SessionUtil.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/SessionUtil.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/common/util/StringUtil.java b/websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/StringUtil.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/common/util/StringUtil.java rename to websocket/common/src/main/java/com/sun/ts/tests/websocket/common/util/StringUtil.java diff --git a/websocket/docs/README.txt b/websocket/docs/README.txt new file mode 100755 index 0000000000..aee55bde9d --- /dev/null +++ b/websocket/docs/README.txt @@ -0,0 +1,84 @@ +Simple README file with instructions to quickly install, setup, configure, +and run the WebSocket TCK 2.2 and related software against the WebSocket 2.2 CI. For +more detailed instructions please refer to the WebSocket 2.2 Users Guide. + +----------------------- +Installing the Software +----------------------- +Before you can run the WebSocket TCK tests, you need to install +and set up the following software components: + +1) Java 11 +2) WebSocket CI Version 2.2 +3) WebSocket TCK Version 2.2 + +1. Download and install Java SE 8 software. + + mkdir /java + cd /java + unzip + + +2. Download and install the WebSocket 2.1 Compatible Implementation/jarfile. + + mkdir /ci + cd /ci + + +3. Download and install the WebSocket TCK 2.2 software. + + mkdir /tck + cd /tck + unzip websockettck.zip + +----------------------------------------- +Setup and Configuration of the WebSocket TCK +----------------------------------------- +1. Configure the WebSocket TCK to run against the WebSocket CI. Set the following + variables in your shell environment. + + setenv JAVA_HOME /java + setenv PATH $JAVA_HOME/bin:$ANT_HOME/bin:$PATH + +2. Edit the $TS_HOME/bin/ts.jte file and set the following properties: + + web.home=/ci/glassfish6/glassfish + webServerHost=localhost + webServerPort=8080 + impl.vi=glassfish + impl.vi.deploy.dir=${web.home}/domains/domain1/autodeploy + +------------------------------ +Executing the WebSocket TCK Tests +------------------------------ +At this point we are ready to run the WebSocket TCK tests against the WebSocket 2.1 +Reference Implementation. + +1. Start WebSocket 2.2 Reference Implementation: + + cd /ci/glassfish8/glassfish/bin + ./asadmin start-domain + +2. Deploy all WebSocket TCK tests. + + cd $TS_HOME/bin + ant deploy.all + + This will deploy all the WebSocket TCK tests including the signature tests. + +3. Execute and run the WebSocket TCK tests. + + cd $TS_HOME/bin + ant run.all + +4. Another way to execute and run the WebSocket TCK tests. + + Run just one the websocket tree of tests: + + cd $TS_HOME/src/com/sun/ts/tests/websocket/api + ant runclient + + Run just the websocket signature tests: + + cd $TS_HOME/src/com/sun/ts/tests/signaturetests/websocket + ant runclient diff --git a/websocket/docs/TCK-Exclude-List.txt b/websocket/docs/TCK-Exclude-List.txt new file mode 100644 index 0000000000..084f47313c --- /dev/null +++ b/websocket/docs/TCK-Exclude-List.txt @@ -0,0 +1,20 @@ +# +# Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License v. 2.0, which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# This Source Code may also be made available under the following Secondary +# Licenses when the conditions for such availability set forth in the +# Eclipse Public License v. 2.0 are satisfied: GNU General Public License, +# version 2 with the GNU Classpath Exception, which is available at +# https://www.gnu.org/software/classpath/license.html. +# +# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 +# + +# This file lists the excluded tests from Jakarta REST TCK. +# This is intended only for documentation purpose and is not used to exclude any tests. +# The tests are excluded from the test source using @Disabled tag in JUnit framework. +# diff --git a/websocket/docs/WebSocketJavadocAssertions.html b/websocket/docs/WebSocketJavadocAssertions.html new file mode 100644 index 0000000000..5c2f214983 --- /dev/null +++ b/websocket/docs/WebSocketJavadocAssertions.html @@ -0,0 +1,1988 @@ + + + + + +JavaDoc Assertion Detail + + +
+
+

Jakarta API for WebSocket
WebSocket - 2.1
+ JavaDoc Assertion Detail +

+
+ + + + + + + + + + + +
TotalsTotalActiveDeprecatedRemoved
+ # of Assertions + 21321300
+ # of Required Assertions + 20920900
+ # of Optional Assertions + 4400
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDReturnMethod/FieldDescriptionRequiredDeprecatedTestable
WebSocket:JAVADOC:1Classjakarta.websocket.ClientEndpoint.configurator
+
An optional custom configurator class that the developer would like to use to provide custom configuration of new instances of this endpoint. The implementation creates a new instance of the configurator per logical endpoint.true +
+
true
WebSocket:JAVADOC:2Class[]jakarta.websocket.ClientEndpoint.decoders
+
The array of Java classes that are to act as Decoders for messages coming into the client.true +
+
true
WebSocket:JAVADOC:3Class[]jakarta.websocket.ClientEndpoint.encoders
+
The array of Java classes that are to act as Encoders for messages sent by the client.true +
+
true
WebSocket:JAVADOC:4String[]jakarta.websocket.ClientEndpoint.subprotocols
+
The names of the subprotocols this client supports.true +
+
true
WebSocket:JAVADOC:5Configuratorjakarta.websocket.ClientEndpointConfig.getConfigurator
+
Return the custom configurator for this configuration. If the developer did not provide one, the platform default configurator is returned.true +
+
true
WebSocket:JAVADOC:6Listjakarta.websocket.ClientEndpointConfig.getExtensions
+
Return the extensions, in order of preference, favorite first, that this client would like to use for its sessions. 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 Negotiating Extensions.true +
+
true
WebSocket:JAVADOC:7Listjakarta.websocket.ClientEndpointConfig.getPreferredSubprotocols
+
Return the ordered list of sub protocols a client endpoint would like to use, in order of preference, favorite first that this client would like to use for its sessions. 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 Client Opening Handshake.true +
+
true
WebSocket:JAVADOC:8ClientEndpointConfigjakarta.websocket.ClientEndpointConfig.Builder.build
+
Builds a configuration object using the attributes set on this builder.true +
+
true
WebSocket:JAVADOC:9Builderjakarta.websocket.ClientEndpointConfig.Builder.configurator
+ + ( + Configurator + ) +
Sets the configurator object for the configuration this builder will build.true +
+
true
WebSocket:JAVADOC:10Builderjakarta.websocket.ClientEndpointConfig.Builder.create
+
Creates a new builder object with no subprotocols, extensions, encoders, decoders and a null configurator.true +
+
true
WebSocket:JAVADOC:11Builderjakarta.websocket.ClientEndpointConfig.Builder.decoders
+ + ( + List + ) +
Assign the list of decoder implementation classes the client will use.true +
+
true
WebSocket:JAVADOC:12Builderjakarta.websocket.ClientEndpointConfig.Builder.encoders
+ + ( + List + ) +
Assign the list of encoder implementation classes the client will use.true +
+
true
WebSocket:JAVADOC:13Builderjakarta.websocket.ClientEndpointConfig.Builder.extensions
+ + ( + List + ) +
Set the extensions for the configuration this builder will build. The list is treated in order of preference, favorite first, that the client would like to use for its sessions.true +
+
true
WebSocket:JAVADOC:14Builderjakarta.websocket.ClientEndpointConfig.Builder.preferredSubprotocols
+ + ( + List + ) +
Set the preferred sub protocols for the configuration this builder will build. The list is treated in order of preference, favorite first, that this client would like to use for its sessions.true +
+
true
WebSocket:JAVADOC:15voidjakarta.websocket.ClientEndpointConfig.Configurator.afterResponse
+ + ( + HandshakeResponse + ) +
This method is called by the implementation after it has received a handshake response from the server as a result of a handshake interaction it initiated. The developer may implement this method in order to inspect the returning handshake response.true +
+
true
WebSocket:JAVADOC:16voidjakarta.websocket.ClientEndpointConfig.Configurator.beforeRequest
+ + ( + Map + ) +
This method is called by the implementation after it has formulated the handshake request that will be used to initiate the connection to the server, but before it has sent any part of the request. This allows the developer to inspect and modify the handshake request headers prior to the start of the handshake interaction.true +
+
true
WebSocket:JAVADOC:17Configuratorjakarta.websocket.ClientEndpointConfig.Configurator.ClientEndpointConfig.Configurator
+
+
+
true +
+
true
WebSocket:JAVADOC:18CloseReasonjakarta.websocket.CloseReason.CloseReason
+ + ( + CloseCode + ,
String + ) +
Creates a reason for closing a web socket connection with the given code and reason phrase.true +
+
true
WebSocket:JAVADOC:19CloseCodejakarta.websocket.CloseReason.getCloseCode
+
The Close code associated with this CloseReason.true +
+
true
WebSocket:JAVADOC:20Stringjakarta.websocket.CloseReason.getReasonPhrase
+
The reason phrase associated with this CloseReason.true +
+
true
WebSocket:JAVADOC:21Stringjakarta.websocket.CloseReason.toString
+
Converts the CloseReason to a debug-friendly string. The exact format is not defined by the specification and may change in future releases.true +
+
false
WebSocket:JAVADOC:22intjakarta.websocket.CloseReason.CloseCode.getCode
+
Returns the code number, for example the integer '1000' for normal closure.true +
+
true
WebSocket:JAVADOC:23CloseCodejakarta.websocket.CloseReason.CloseCodes.getCloseCode
+ + ( + int + ) +
Creates a CloseCode from the given int code number. This method throws an IllegalArgumentException if the int is not one of thetrue +
+
true
WebSocket:JAVADOC:24intjakarta.websocket.CloseReason.CloseCodes.getCode
+
Return the code number of this status code.true +
+
true
WebSocket:JAVADOC:25CloseCodesjakarta.websocket.CloseReason.CloseCodes.valueOf
+ + ( + String + ) +
+
+
true +
+
true
WebSocket:JAVADOC:26CloseCodes[]jakarta.websocket.CloseReason.CloseCodes.values
+
+
+
true +
+
true
WebSocket:JAVADOC:27ContainerProviderjakarta.websocket.ContainerProvider.ContainerProvider
+
+
+
true +
+
true
WebSocket:JAVADOC:28WebSocketContainerjakarta.websocket.ContainerProvider.getWebSocketContainer
+
Obtain a new instance of a WebSocketContainer. The method looks for the ContainerProvider implementation class in the order listed in the META-INF/services/jakarta.websocket.ContainerProvider file, returning the WebSocketContainer implementation from the ContainerProvider implementation that is not null.true +
+
true
WebSocket:JAVADOC:29DecodeExceptionjakarta.websocket.DecodeException.DecodeException
+ + ( + ByteBuffer + ,
String + ,
Throwable + ) +
Constructor with the binary data that could not be decoded, and the reason why it failed to be, and the cause. The buffer may represent the whole message, or the part of the message most relevant to the decoding error, depending whether the application is using one of the streaming methods or not.true +
+
true
WebSocket:JAVADOC:30DecodeExceptionjakarta.websocket.DecodeException.DecodeException
+ + ( + String + ,
String + ,
Throwable + ) +
Constructor with the text data that could not be decoded, and the reason why it failed to be, and the cause. The encoded string may represent the whole message, or the part of the message most relevant to the decoding error, depending whether the application is using one of the streaming methods or not.true +
+
true
WebSocket:JAVADOC:31DecodeExceptionjakarta.websocket.DecodeException.DecodeException
+ + ( + ByteBuffer + ,
String + ) +
Constructs a DecodedException with the given ByteBuffer that cannot be decoded, and reason why. The buffer may represent the whole message, or the part of the message most relevant to the decoding error, depending whether the application is using one of the streaming methods or not.true +
+
true
WebSocket:JAVADOC:32DecodeExceptionjakarta.websocket.DecodeException.DecodeException
+ + ( + String + ,
String + ) +
Constructs a DecodedException with the given encoded string that cannot be decoded, and reason why. The encoded string may represent the whole message, or the part of the message most relevant to the decoding error, depending whether the application is using one of the streaming methods or not.true +
+
true
WebSocket:JAVADOC:33ByteBufferjakarta.websocket.DecodeException.getBytes
+
Return the ByteBuffer containing either the whole message, or the partial message, that could not be decoded, or null if this exception arose from a failure to decode a text message. if this exception arose from a failure to decode a text message.true +
+
true
WebSocket:JAVADOC:34Stringjakarta.websocket.DecodeException.getText
+
Return the encoded string that is either the whole message, or the partial message that could not be decoded, or null if this exception arose from a failure to decode a binary message.. if this exception arose from a failure to decode a binary message..true +
+
true
WebSocket:JAVADOC:35voidjakarta.websocket.Decoder.destroy
+
This method is called when the decoder is about to be removed from service in order that any resources the encoder used may be closed gracefully.true +
+
true
WebSocket:JAVADOC:36voidjakarta.websocket.Decoder.init
+ + ( + EndpointConfig + ) +
This method is called with the endpoint configuration object of the endpoint this decoder is intended for when it is about to be brought into service.true +
+
true
WebSocket:JAVADOC:37Objectjakarta.websocket.Decoder.Binary.decode
+ + ( + ByteBuffer + ) +
Decode the given bytes into an object of type T.true +
+
true
WebSocket:JAVADOC:38Objectjakarta.websocket.Decoder.Binary.decode
+ + ( + ByteBuffer + ) +
throws + DecodeException
+
+
+
true +
+
true
WebSocket:JAVADOC:39booleanjakarta.websocket.Decoder.Binary.willDecode
+ + ( + ByteBuffer + ) +
Answer whether the given bytes can be decoded into an object of type T.true +
+
true
WebSocket:JAVADOC:40Objectjakarta.websocket.Decoder.BinaryStream.decode
+ + ( + InputStream + ) +
Decode the given bytes read from the input stream into an object of type T.true +
+
true
WebSocket:JAVADOC:41Objectjakarta.websocket.Decoder.BinaryStream.decode
+ + ( + InputStream + ) +
throws + DecodeException
+
+
+
true +
+
true
WebSocket:JAVADOC:42Objectjakarta.websocket.Decoder.BinaryStream.decode
+ + ( + InputStream + ) +
throws + IOException
+
+
+
true +
+
true
WebSocket:JAVADOC:43Objectjakarta.websocket.Decoder.Text.decode
+ + ( + String + ) +
Decode the given String into an object of type T.true +
+
true
WebSocket:JAVADOC:44Objectjakarta.websocket.Decoder.Text.decode
+ + ( + String + ) +
throws + DecodeException
+
+
+
true +
+
true
WebSocket:JAVADOC:45booleanjakarta.websocket.Decoder.Text.willDecode
+ + ( + String + ) +
Answer whether the given String can be decoded into an object of type T.true +
+
true
WebSocket:JAVADOC:46Objectjakarta.websocket.Decoder.TextStream.decode
+ + ( + Reader + ) +
Reads the websocket message from the implementation provided Reader and decodes it into an instance of the supplied object type.true +
+
true
WebSocket:JAVADOC:47Objectjakarta.websocket.Decoder.TextStream.decode
+ + ( + Reader + ) +
throws + DecodeException
+
+
+
true +
+
true
WebSocket:JAVADOC:48Objectjakarta.websocket.Decoder.TextStream.decode
+ + ( + Reader + ) +
throws + IOException
+
+
+
true +
+
true
WebSocket:JAVADOC:49DeploymentExceptionjakarta.websocket.DeploymentException.DeploymentException
+ + ( + String + ) +
Creates a deployment exception with the given reason for the deployment failure.true +
+
true
WebSocket:JAVADOC:50DeploymentExceptionjakarta.websocket.DeploymentException.DeploymentException
+ + ( + String + ,
Throwable + ) +
Creates a deployment exception with the given reason for the deployment failure and wrapped cause of the failure.true +
+
true
WebSocket:JAVADOC:51EncodeExceptionjakarta.websocket.EncodeException.EncodeException
+ + ( + Object + ,
String + ) +
Constructor with the object being encoded, and the reason why it failed to be.true +
+
true
WebSocket:JAVADOC:52EncodeExceptionjakarta.websocket.EncodeException.EncodeException
+ + ( + Object + ,
String + ,
Throwable + ) +
Constructor with the object being encoded, and the reason why it failed to be, and the cause.true +
+
true
WebSocket:JAVADOC:53Objectjakarta.websocket.EncodeException.getObject
+
Return the Object that could not be encoded.true +
+
true
WebSocket:JAVADOC:54voidjakarta.websocket.Encoder.destroy
+
This method is called when the encoder is about to be removed from service in order that any resources the encoder used may be closed gracefully.true +
+
true
WebSocket:JAVADOC:55voidjakarta.websocket.Encoder.init
+ + ( + EndpointConfig + ) +
This method is called with the endpoint configuration object of the endpoint this encoder is intended for when it is about to be brought into service.true +
+
true
WebSocket:JAVADOC:56ByteBufferjakarta.websocket.Encoder.Binary.encode
+ + ( + Object + ) +
Encode the given object into a byte array.true +
+
true
WebSocket:JAVADOC:57ByteBufferjakarta.websocket.Encoder.Binary.encode
+ + ( + Object + ) +
throws + EncodeException
+
+
+
true +
+
true
WebSocket:JAVADOC:58voidjakarta.websocket.Encoder.BinaryStream.encode
+ + ( + Object + ,
OutputStream + ) +
Encode the given object into a binary stream written to the implementation provided OutputStream.true +
+
true
WebSocket:JAVADOC:59voidjakarta.websocket.Encoder.BinaryStream.encode
+ + ( + Object + ,
OutputStream + ) +
throws + EncodeException
+
+
+
true +
+
true
WebSocket:JAVADOC:60voidjakarta.websocket.Encoder.BinaryStream.encode
+ + ( + Object + ,
OutputStream + ) +
throws + IOException
+
+
+
true +
+
true
WebSocket:JAVADOC:61Stringjakarta.websocket.Encoder.Text.encode
+ + ( + Object + ) +
Encode the given object into a String.true +
+
true
WebSocket:JAVADOC:62Stringjakarta.websocket.Encoder.Text.encode
+ + ( + Object + ) +
throws + EncodeException
+
+
+
true +
+
true
WebSocket:JAVADOC:63voidjakarta.websocket.Encoder.TextStream.encode
+ + ( + Object + ,
Writer + ) +
Encode the given object to a character stream writing it to the supplied Writer. Implementations of this method may use the EncodeException to indicate a failure to convert the supplied object to an encoded form, and may use the IOException to indicate a failure to write the data to the supplied stream.true +
+
true
WebSocket:JAVADOC:64voidjakarta.websocket.Encoder.TextStream.encode
+ + ( + Object + ,
Writer + ) +
throws + EncodeException
+
if there was an error encoding the object due to its state.true +
+
true
WebSocket:JAVADOC:65voidjakarta.websocket.Encoder.TextStream.encode
+ + ( + Object + ,
Writer + ) +
throws + IOException
+
if there was an exception writing to the writer.true +
+
true
WebSocket:JAVADOC:66Endpointjakarta.websocket.Endpoint.Endpoint
+
+
+
true +
+
true
WebSocket:JAVADOC:67voidjakarta.websocket.Endpoint.onClose
+ + ( + Session + ,
CloseReason + ) +
This method is called immediately prior to the session with the remote peer being closed. It is called whether the session is being closed because the remote peer initiated a close and sent a close frame, or whether the local websocket container or this endpoint requests to close the session. The developer may take this last opportunity to retrieve session attributes such as the ID, or any application data it holds before it becomes unavailable after the completion of the method. Developers should not attempt to modify the session from within this method, or send new messages from this call as the underlying connection will not be able to send them at this stage.true +
+
true
WebSocket:JAVADOC:68voidjakarta.websocket.Endpoint.onError
+ + ( + Session + ,
Throwable + ) +
Developers may implement this method when the web socket session creates some kind of error that is not modeled in the web socket protocol. This may for example be a notification that an incoming message is too big to handle, or that the incoming message could not be encoded. There are a number of categories of exception that this method is (currently) defined to handle: connection problems, for example, a socket failure that occurs before the web socket connection can be formally closed. These are modeled as SessionExceptions runtime errors thrown by developer created message handlers calls. conversion errors encoding incoming messages before any message handler has been called. These are modeled as DecodeExceptionstrue +
+
true
WebSocket:JAVADOC:69voidjakarta.websocket.Endpoint.onOpen
+ + ( + Session + ,
EndpointConfig + ) +
Developers must implement this method to be notified when a new conversation has just begun.true +
+
true
WebSocket:JAVADOC:70Listjakarta.websocket.EndpointConfig.getDecoders
+
Return the Decoder implementation classes configured. These will be instantiated by the container to decode incoming messages into the expected custom objects on MessageHandler.Whole#onMessage(Object) callbacks.true +
+
true
WebSocket:JAVADOC:71Listjakarta.websocket.EndpointConfig.getEncoders
+
Return the Encoder implementation classes configured. These will be instantiated by the container to encode custom objects passed into the send() methods on remote endpoints.true +
+
true
WebSocket:JAVADOC:72Mapjakarta.websocket.EndpointConfig.getUserProperties
+
This method returns a modifiable Map that the developer may use to store application specific information relating to the endpoint that uses this configuration instance. Web socket applications running on distributed implementations of the web container should make any application specific objects stored here java.io.Serializable, or the object may not be recreated after a failover.true +
+
true
WebSocket:JAVADOC:73Stringjakarta.websocket.Extension.getName
+
The name of the extension.true +
+
true
WebSocket:JAVADOC:74Listjakarta.websocket.Extension.getParameters
+
The extension parameters for this extension in the order they appear in the http headers.true +
+
true
WebSocket:JAVADOC:75Stringjakarta.websocket.Extension.Parameter.getName
+
Return the name of the extension parameter.true +
+
true
WebSocket:JAVADOC:76Stringjakarta.websocket.Extension.Parameter.getValue
+
Return the value of the extension parameter.true +
+
true
WebSocket:JAVADOC:77Mapjakarta.websocket.HandshakeResponse.getHeaders
+
Return the list of Http headers sent by the web socket server.true +
+
true
WebSocket:JAVADOC:78voidjakarta.websocket.MessageHandler.Partial.onMessage
+ + ( + Object + ,
boolean + ) +
Called when the next part of a message has been fully received.true +
+
true
WebSocket:JAVADOC:79voidjakarta.websocket.MessageHandler.Whole.onMessage
+ + ( + Object + ) +
Called when the message has been fully received.true +
+
true
WebSocket:JAVADOC:80longjakarta.websocket.OnMessage.maxMessageSize
+
Specifies the maximum size of message in bytes that the method this annotates will be able to process, or -1 to indicate that there is no maximum. The default is -1. This attribute only applies when the annotation is used to process whole messages, not to those methods that process messages in parts or use a stream or reader parameter to handle the incoming message. If the incoming whole message exceeds this limit, then the implementation generates an error and closes the connection using the reason that the message was too big.true +
+
true
WebSocket:JAVADOC:81ByteBufferjakarta.websocket.PongMessage.getApplicationData
+
The application data inside the pong message from the peer.true +
+
true
WebSocket:JAVADOC:82voidjakarta.websocket.RemoteEndpoint.flushBatch
+
This method is only used when batching is allowed for this RemoteEndpint. Calling this method forces the implementation to send any unsent messages it has been batching.false +
+
true
WebSocket:JAVADOC:83voidjakarta.websocket.RemoteEndpoint.flushBatch
+
throws + IOException
+
+
+
false +
+
true
WebSocket:JAVADOC:84booleanjakarta.websocket.RemoteEndpoint.getBatchingAllowed
+
Return whether the implementation is allowed to batch outgoing messages before sending. The default mode for RemoteEndpoints is false. The value may be changed by calling #setBatchingAllowed(boolean) setBatchingAllowed.true +
+
true
WebSocket:JAVADOC:85voidjakarta.websocket.RemoteEndpoint.sendPing
+ + ( + ByteBuffer + ) +
Send a Ping message containing the given application data to the remote endpoint. The corresponding Pong message may be picked up using the MessageHandler.Pong handler.true +
+
true
WebSocket:JAVADOC:86voidjakarta.websocket.RemoteEndpoint.sendPing
+ + ( + ByteBuffer + ) +
throws + IOException
+
if the ping failed to be senttrue +
+
true
WebSocket:JAVADOC:87voidjakarta.websocket.RemoteEndpoint.sendPing
+ + ( + ByteBuffer + ) +
throws + IllegalArgumentException
+
if the applicationData exceeds the maximum allowed payload of 125 bytestrue +
+
true
WebSocket:JAVADOC:88voidjakarta.websocket.RemoteEndpoint.sendPong
+ + ( + ByteBuffer + ) +
Allows the developer to send an unsolicited Pong message containing the given application data in order to serve as a unidirectional heartbeat for the session.true +
+
true
WebSocket:JAVADOC:89voidjakarta.websocket.RemoteEndpoint.sendPong
+ + ( + ByteBuffer + ) +
throws + IOException
+
if the pong failed to be senttrue +
+
true
WebSocket:JAVADOC:90voidjakarta.websocket.RemoteEndpoint.sendPong
+ + ( + ByteBuffer + ) +
throws + IllegalArgumentException
+
if the applicationData exceeds the maximum allowed payload of 125 bytestrue +
+
true
WebSocket:JAVADOC:91voidjakarta.websocket.RemoteEndpoint.setBatchingAllowed
+ + ( + boolean + ) +
Indicate to the implementation that it is allowed to batch outgoing messages before sending. Not all implementations support batching of outgoing messages. The default mode for RemoteEndpoints is false. If the developer has indicated that batching of outgoing messages is permitted, then the developer must call flushBatch() in order to be sure that all the messages passed into the send methods of this RemoteEndpoint are sent. When batching is allowed, the implementations send operations are considered to have completed if the message has been written to the local batch, in the case when there is still room in the batch for the message, and are considered to have completed if the batch has been send to the peer and the remainder written to the new batch, in the case when writing the message causes the batch to need to be sent. The blocking and asynchronous send methods use this notion of completion in order to complete blocking calls, notify SendHandlers and complete Futures respectively. When batching is allowed, if the developer has called send methods on this RemoteEndpoint without calling flushBatch(), then the implementation may not have sent all the messages the developer has asked to be sent. If the parameter value is false and the implementation has a batch of unsent messages, then the implementation must immediately send the batch of unsent messages.false +
+
true
WebSocket:JAVADOC:92voidjakarta.websocket.RemoteEndpoint.setBatchingAllowed
+ + ( + boolean + ) +
throws + IOException
+
if batching is being disabled and there are unsent messages this error may be thrown as the implementation sends the batch of unsent messages if there is a problem.false +
+
true
WebSocket:JAVADOC:93longjakarta.websocket.RemoteEndpoint.Async.getSendTimeout
+
Return the number of milliseconds the implementation will timeout attempting to send a websocket message. A non-positive number indicates the implementation will not timeout attempting to send a websocket message asynchronously. This value overrides the default value assigned in the WebSocketContainer.true +
+
true
WebSocket:JAVADOC:94Futurejakarta.websocket.RemoteEndpoint.Async.sendBinary
+ + ( + ByteBuffer + ) +
Initiates the asynchronous transmission of a binary message. This method returns before the message is transmitted. Developers use the returned Future object to track progress of the transmission. The Future's get() method returns null upon successful completion. Errors in transmission are wrapped in the java.util.concurrent.ExecutionException thrown when querying the Future object.true +
+
true
WebSocket:JAVADOC:95voidjakarta.websocket.RemoteEndpoint.Async.sendBinary
+ + ( + ByteBuffer + ,
SendHandler + ) +
Initiates the asynchronous transmission of a binary message. This method returns before the message is transmitted. Developers provide a callback to be notified when the message has been transmitted. Errors in transmission are given to the developer in the SendResult object.true +
+
true
WebSocket:JAVADOC:96Futurejakarta.websocket.RemoteEndpoint.Async.sendObject
+ + ( + Object + ) +
Initiates the asynchronous transmission of a custom developer object. The developer will have provided an encoder for this object type in the endpoint configuration. Containers will by default be able to encode java primitive types and their object equivalents, otherwise the developer must have provided an encoder for the object type in the endpoint configuration. Progress may be tracked using the Future object. The Future's get() methods return null upon successful completion. Errors in transmission are wrapped in the java.util.concurrent.ExecutionException thrown when querying the Future object.true +
+
true
WebSocket:JAVADOC:97voidjakarta.websocket.RemoteEndpoint.Async.sendObject
+ + ( + Object + ,
SendHandler + ) +
Initiates the asynchronous transmission of a custom developer object. Containers will by default be able to encode java primitive types and their object equivalents, otherwise the developer must have provided an encoder for the object type in the endpoint configuration. Developers are notified when transmission is complete through the supplied callback object.true +
+
true
WebSocket:JAVADOC:98voidjakarta.websocket.RemoteEndpoint.Async.sendText
+ + ( + String + ,
SendHandler + ) +
Initiates the asynchronous transmission of a text message. This method returns before the message is transmitted. Developers provide a callback to be notified when the message has been transmitted. Errors in transmission are given to the developer in the SendResult object.true +
+
true
WebSocket:JAVADOC:99Futurejakarta.websocket.RemoteEndpoint.Async.sendText
+ + ( + String + ) +
Initiates the asynchronous transmission of a text message. This method returns before the message is transmitted. Developers use the returned Future object to track progress of the transmission. The Future's get() method returns null upon successful completion. Errors in transmission are wrapped in the java.util.concurrent.ExecutionException thrown when querying the Future object.true +
+
true
WebSocket:JAVADOC:100voidjakarta.websocket.RemoteEndpoint.Async.setSendTimeout
+ + ( + long + ) +
Sets the number of milliseconds the implementation will timeout attempting to send a websocket message. A non-positive number indicates the implementation will not timeout attempting to send a websocket message asynchronously. This value overrides the default value assigned in the WebSocketContainer.true +
+
true
WebSocket:JAVADOC:101OutputStreamjakarta.websocket.RemoteEndpoint.Basic.getSendStream
+
Opens an output stream on which a binary message may be sent. The developer must close the output stream in order to indicate that the complete message has been placed into the output stream.true +
+
true
WebSocket:JAVADOC:102OutputStreamjakarta.websocket.RemoteEndpoint.Basic.getSendStream
+
throws + IOException
+
if there is a problem obtaining the OutputStream to write the binary message.true +
+
true
WebSocket:JAVADOC:103Writerjakarta.websocket.RemoteEndpoint.Basic.getSendWriter
+
Opens an character stream on which a text message may be sent. The developer must close the writer in order to indicate that the complete message has been placed into the character stream.true +
+
true
WebSocket:JAVADOC:104Writerjakarta.websocket.RemoteEndpoint.Basic.getSendWriter
+
throws + IOException
+
if there is a problem obtaining the Writer to write the text message.true +
+
true
WebSocket:JAVADOC:105voidjakarta.websocket.RemoteEndpoint.Basic.sendBinary
+ + ( + ByteBuffer + ) +
Send a binary message, returning when all of the message has been transmitted.true +
+
true
WebSocket:JAVADOC:106voidjakarta.websocket.RemoteEndpoint.Basic.sendBinary
+ + ( + ByteBuffer + ) +
throws + IOException
+
if there is a problem delivering the message.true +
+
true
WebSocket:JAVADOC:107voidjakarta.websocket.RemoteEndpoint.Basic.sendBinary
+ + ( + ByteBuffer + ,
boolean + ) +
Send a binary message in parts, blocking until all of the message has been transmitted. The runtime reads the message in order. Non-final parts are sent with isLast set to false. The final piece must be sent with isLast set to true.true +
+
true
WebSocket:JAVADOC:108voidjakarta.websocket.RemoteEndpoint.Basic.sendBinary
+ + ( + ByteBuffer + ,
boolean + ) +
throws + IOException
+
if there is a problem delivering the partial message.true +
+
true
WebSocket:JAVADOC:109voidjakarta.websocket.RemoteEndpoint.Basic.sendObject
+ + ( + Object + ) +
Sends a custom developer object, blocking until it has been transmitted. Containers will by default be able to encode java primitive types and their object equivalents, otherwise the developer must have provided an encoder for the object type in the endpoint configuration. A developer-provided encoder for a Java primitive type overrides the container default encoder.true +
+
true
WebSocket:JAVADOC:110voidjakarta.websocket.RemoteEndpoint.Basic.sendObject
+ + ( + Object + ) +
throws + IOException
+
if there is a communication error sending the message object.true +
+
true
WebSocket:JAVADOC:111voidjakarta.websocket.RemoteEndpoint.Basic.sendObject
+ + ( + Object + ) +
throws + EncodeException
+
if there was a problem encoding the message object into the form of a native websocket message.true +
+
true
WebSocket:JAVADOC:112voidjakarta.websocket.RemoteEndpoint.Basic.sendText
+ + ( + String + ) +
Send a text message, blocking until all of the message has been transmitted.true +
+
true
WebSocket:JAVADOC:113voidjakarta.websocket.RemoteEndpoint.Basic.sendText
+ + ( + String + ) +
throws + IOException
+
if there is a problem delivering the message.true +
+
true
WebSocket:JAVADOC:114voidjakarta.websocket.RemoteEndpoint.Basic.sendText
+ + ( + String + ,
boolean + ) +
Send a text message in parts, blocking until all of the message has been transmitted. The runtime reads the message in order. Non-final parts of the message are sent with isLast set to false. The final part must be sent with isLast set to true.true +
+
true
WebSocket:JAVADOC:115voidjakarta.websocket.RemoteEndpoint.Basic.sendText
+ + ( + String + ,
boolean + ) +
throws + IOException
+
if there is a problem delivering the message fragment.true +
+
true
WebSocket:JAVADOC:116voidjakarta.websocket.SendHandler.onResult
+ + ( + SendResult + ) +
Called once the message has been transmitted.true +
+
true
WebSocket:JAVADOC:117Throwablejakarta.websocket.SendResult.getException
+
The problem sending the message.true +
+
true
WebSocket:JAVADOC:118booleanjakarta.websocket.SendResult.isOK
+
Determines if this result is ok or not.true +
+
true
WebSocket:JAVADOC:119SendResultjakarta.websocket.SendResult.SendResult
+ + ( + Throwable + ) +
Construct a SendResult carrying an exception.true +
+
true
WebSocket:JAVADOC:120SendResultjakarta.websocket.SendResult.SendResult
+
Construct a SendResult signifying a successful send carrying no exception.true +
+
true
WebSocket:JAVADOC:121voidjakarta.websocket.Session.addMessageHandler
+ + ( + MessageHandler + ) +
Register to handle to incoming messages in this conversation. A maximum of one message handler per native websocket message type (text, binary, pong) may be added to each Session. I.e. a maximum of one message handler to handle incoming text messages a maximum of one message handler for handling incoming binary messages, and a maximum of one for handling incoming pong messages. For further details of which message handlers handle which of the native websocket message types please see MessageHandler.Whole and MessageHandler.Partial. Adding more than one of any one type will result in a runtime exception. This method is not safe to use unless you are providing an anonymous class derived directly from jakarta.websocket.MessageHandler.Whole or jakarta.websocket.MessageHandler.Partial. In all other cases (Lambda Expressions, more complex inheritance or generic type arrangements), one of the following methods have to be used: #addMessageHandler(Class, jakarta.websocket.MessageHandler.Whole) or #addMessageHandler(Class, jakarta.websocket.MessageHandler.Partial).true +
+
true
WebSocket:JAVADOC:122voidjakarta.websocket.Session.addMessageHandler
+ + ( + MessageHandler + ) +
throws + IllegalStateException
+
if there is already a MessageHandler registered for the same native websocket message type as this handler.true +
+
true
WebSocket:JAVADOC:123voidjakarta.websocket.Session.close
+
Close the current conversation with a normal status code and no reason phrase.true +
+
true
WebSocket:JAVADOC:124voidjakarta.websocket.Session.close
+
throws + IOException
+
if there was a connection error closing the connection.true +
+
true
WebSocket:JAVADOC:125voidjakarta.websocket.Session.close
+ + ( + CloseReason + ) +
Close the current conversation, giving a reason for the closure. The close call causes the implementation to attempt notify the client of the close as soon as it can. This may cause the sending of unsent messages immediately prior to the close notification. After the close notification has been sent the implementation notifies the endpoint's onClose method. Note the websocket specification defines the acceptable uses of status codes and reason phrases. If the application cannot determine a suitable close code to use for the closeReason, it is recommended to use CloseReason.CloseCodes#NO_STATUS_CODE.true +
+
true
WebSocket:JAVADOC:126voidjakarta.websocket.Session.close
+ + ( + CloseReason + ) +
throws + IOException
+
if there was a connection error closing the connectiontrue +
+
true
WebSocket:JAVADOC:127Asyncjakarta.websocket.Session.getAsyncRemote
+
Return a reference a RemoteEndpoint object representing the peer of this conversation that is able to send messages asynchronously to the peer.true +
+
true
WebSocket:JAVADOC:128Basicjakarta.websocket.Session.getBasicRemote
+
Return a reference a RemoteEndpoint object representing the peer of this conversation that is able to send messages synchronously to the peer.true +
+
true
WebSocket:JAVADOC:129WebSocketContainerjakarta.websocket.Session.getContainer
+
Return the container that this session is part of.true +
+
true
WebSocket:JAVADOC:130Stringjakarta.websocket.Session.getId
+
Returns a string containing the unique identifier assigned to this session. The identifier is assigned by the web socket implementation and is implementation dependent.true +
+
true
WebSocket:JAVADOC:131intjakarta.websocket.Session.getMaxBinaryMessageBufferSize
+
The maximum length of incoming binary messages that this Session can buffer. If the implementation receives a binary message that it cannot buffer because it is too large, it must close the session with a close code of CloseReason.CloseCodes#TOO_BIG.true +
+
true
WebSocket:JAVADOC:132longjakarta.websocket.Session.getMaxIdleTimeout
+
Return the number of milliseconds before this conversation may be closed by the container if it is inactive, i.e. no messages are either sent or received in that time.true +
+
true
WebSocket:JAVADOC:133intjakarta.websocket.Session.getMaxTextMessageBufferSize
+
The maximum length of incoming text messages that this Session can buffer. If the implementation receives a text message that it cannot buffer because it is too large, it must close the session with a close code of CloseReason.CloseCodes#TOO_BIG.true +
+
true
WebSocket:JAVADOC:134Setjakarta.websocket.Session.getMessageHandlers
+
Return an unmodifiable copy of the set of MessageHandlers for this Session.true +
+
true
WebSocket:JAVADOC:135Listjakarta.websocket.Session.getNegotiatedExtensions
+
Return the list of extensions currently in use for this conversation.true +
+
true
WebSocket:JAVADOC:136Stringjakarta.websocket.Session.getNegotiatedSubprotocol
+
Return the sub protocol agreed during the websocket handshake for this conversation.true +
+
true
WebSocket:JAVADOC:137Setjakarta.websocket.Session.getOpenSessions
+
Return a copy of the Set of all the open web socket sessions that represent connections to the same endpoint to which this session represents a connection. The Set includes the session this method is called on. These sessions may not still be open at any point after the return of this method. For example, iterating over the set at a later time may yield one or more closed sessions. Developers should use session.isOpen() to check.true +
+
true
WebSocket:JAVADOC:138Mapjakarta.websocket.Session.getPathParameters
+
Return a map of the path parameter names and values used associated with the request this session was opened under.true +
+
true
WebSocket:JAVADOC:139Stringjakarta.websocket.Session.getProtocolVersion
+
Returns the version of the websocket protocol currently being used. This is taken as the value of the Sec-WebSocket-Version header used in the opening handshake. i.e. "13".true +
+
true
WebSocket:JAVADOC:140Stringjakarta.websocket.Session.getQueryString
+
Return the query string associated with the request this session was opened under.true +
+
true
WebSocket:JAVADOC:141Mapjakarta.websocket.Session.getRequestParameterMap
+
Return the request parameters associated with the request this session was opened under.true +
+
true
WebSocket:JAVADOC:142URIjakarta.websocket.Session.getRequestURI
+
Return the URI under which this session was opened, including the query string if there is one.true +
+
true
WebSocket:JAVADOC:143Principaljakarta.websocket.Session.getUserPrincipal
+
Return the authenticated user for this Session or null if no user is authenticated for this session.true +
+
true
WebSocket:JAVADOC:144Mapjakarta.websocket.Session.getUserProperties
+
While the session is open, this method returns a Map that the developer may use to store application specific information relating to this session instance. The developer may retrieve information from this Map at any time between the opening of the session and during the onClose() method. But outside that time, any information stored using this Map may no longer be kept by the container. Web socket applications running on distributed implementations of the web container should make any application specific objects stored here java.io.Serializable, or the object may not be recreated after a failover.true +
+
true
WebSocket:JAVADOC:145booleanjakarta.websocket.Session.isOpen
+
Return true if and only if the underlying socket is open.true +
+
true
WebSocket:JAVADOC:146booleanjakarta.websocket.Session.isSecure
+
Return true if and only if the underlying socket is using a secure transport.true +
+
true
WebSocket:JAVADOC:147voidjakarta.websocket.Session.removeMessageHandler
+ + ( + MessageHandler + ) +
Remove the given MessageHandler from the set belonging to this session. This method may block if the given handler is processing a message until it is no longer in use.true +
+
true
WebSocket:JAVADOC:148voidjakarta.websocket.Session.setMaxBinaryMessageBufferSize
+ + ( + int + ) +
Sets the maximum length of incoming binary messages that this Session can buffer.true +
+
true
WebSocket:JAVADOC:149voidjakarta.websocket.Session.setMaxIdleTimeout
+ + ( + long + ) +
Set the non-zero number of milliseconds before this session will be closed by the container if it is inactive, ie no messages are either sent or received. A value that is 0 or negative indicates the session will never timeout due to inactivity.true +
+
true
WebSocket:JAVADOC:150voidjakarta.websocket.Session.setMaxTextMessageBufferSize
+ + ( + int + ) +
Sets the maximum length of incoming text messages that this Session can buffer.true +
+
true
WebSocket:JAVADOC:151Sessionjakarta.websocket.SessionException.getSession
+
Return the Session on which the problem occurred.true +
+
true
WebSocket:JAVADOC:152SessionExceptionjakarta.websocket.SessionException.SessionException
+ + ( + String + ,
Throwable + ,
Session + ) +
Creates a new instance of this exception with the given message, the wrapped cause of the exception and the session with which the problem is associated.true +
+
true
WebSocket:JAVADOC:153Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Object + ,
URI + ) +
Connect the supplied annotated endpoint instance to its server. The supplied object must be a class decorated with the class level jakarta.websocket.server.ServerEndpoint annotation. This method blocks until the connection is established, or throws an error if either the connection could not be made or there was a problem with the supplied endpoint class. If the developer uses this method to deploy the client endpoint, services like dependency injection that are supported, for example, when the implementation is part of the Java EE platform may not be available. If the client endpoint uses dependency injection, use WebSocketContainer#connectToServer(java.lang.Class, java.net.URI) instead.true +
+
true
WebSocket:JAVADOC:154Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Object + ,
URI + ) +
throws + DeploymentException
+
if the annotated endpoint instance is not valid.true +
+
true
WebSocket:JAVADOC:155Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Object + ,
URI + ) +
throws + IOException
+
if there was a network or protocol problem that prevented the client endpoint being connected to its server.true +
+
true
WebSocket:JAVADOC:156Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Class + ,
URI + ) +
Connect the supplied annotated endpoint to its server. The supplied object must be a class decorated with the class level jakarta.websocket.server.ServerEndpoint annotation. This method blocks until the connection is established, or throws an error if either the connection could not be made or there was a problem with the supplied endpoint class.true +
+
true
WebSocket:JAVADOC:157Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Class + ,
URI + ) +
throws + DeploymentException
+
if the class is not a valid annotated endpoint class.true +
+
true
WebSocket:JAVADOC:158Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Class + ,
URI + ) +
throws + IOException
+
if there was a network or protocol problem that prevented the client endpoint being connected to its server.true +
+
true
WebSocket:JAVADOC:159Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Endpoint + ,
ClientEndpointConfig + ,
URI + ) +
Connect the supplied programmatic client endpoint instance to its server with the given configuration. This method blocks until the connection is established, or throws an error if the connection could not be made. If the developer uses this method to deploy the client endpoint, services like dependency injection that are supported, for example, when the implementation is part of the Java EE platform may not be available. If the client endpoint uses dependency injection, use WebSocketContainer#connectToServer(java.lang.Class, jakarta.websocket.ClientEndpointConfig, java.net.URI) instead.true +
+
true
WebSocket:JAVADOC:160Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Endpoint + ,
ClientEndpointConfig + ,
URI + ) +
throws + DeploymentException
+
if the configuration is not validtrue +
+
true
WebSocket:JAVADOC:161Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Endpoint + ,
ClientEndpointConfig + ,
URI + ) +
throws + IOException
+
if there was a network or protocol problem that prevented the client endpoint being connected to its servertrue +
+
true
WebSocket:JAVADOC:162Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Class + ,
ClientEndpointConfig + ,
URI + ) +
Connect the supplied programmatic endpoint to its server with the given configuration. This method blocks until the connection is established, or throws an error if the connection could not be made.true +
+
true
WebSocket:JAVADOC:163Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Class + ,
ClientEndpointConfig + ,
URI + ) +
throws + DeploymentException
+
if the configuration is not validtrue +
+
true
WebSocket:JAVADOC:164Sessionjakarta.websocket.WebSocketContainer.connectToServer
+ + ( + Class + ,
ClientEndpointConfig + ,
URI + ) +
throws + IOException
+
if there was a network or protocol problem that prevented the client endpoint being connected to its servertrue +
+
true
WebSocket:JAVADOC:165longjakarta.websocket.WebSocketContainer.getDefaultAsyncSendTimeout
+
Return the number of milliseconds the implementation will timeout attempting to send a websocket message for all RemoteEndpoints associated with this container. A non-positive number indicates the implementation will not timeout attempting to send a websocket message asynchronously. Note this default may be overridden in each RemoteEndpoint.true +
+
true
WebSocket:JAVADOC:166intjakarta.websocket.WebSocketContainer.getDefaultMaxBinaryMessageBufferSize
+
Returns the default maximum size of incoming binary message that this container will buffer. This default may be overridden on a per session basis using Session#setMaxBinaryMessageBufferSize(int)true +
+
true
WebSocket:JAVADOC:167longjakarta.websocket.WebSocketContainer.getDefaultMaxSessionIdleTimeout
+
Return the default time in milliseconds after which any web socket sessions in this container will be closed if it has been inactive. A value that is 0 or negative indicates the sessions will never timeout due to inactivity. The value may be overridden on a per session basis using Session#setMaxIdleTimeout(long)true +
+
true
WebSocket:JAVADOC:168intjakarta.websocket.WebSocketContainer.getDefaultMaxTextMessageBufferSize
+
Returns the default maximum size of incoming text message that this container will buffer. This default may be overridden on a per session basis using Session#setMaxTextMessageBufferSize(int)true +
+
true
WebSocket:JAVADOC:169Setjakarta.websocket.WebSocketContainer.getInstalledExtensions
+
Return the set of Extensions installed in the container.true +
+
true
WebSocket:JAVADOC:170voidjakarta.websocket.WebSocketContainer.setAsyncSendTimeout
+ + ( + long + ) +
Sets the number of milliseconds the implementation will timeout attempting to send a websocket message for all RemoteEndpoints associated with this container. A non-positive number indicates the implementation will not timeout attempting to send a websocket message asynchronously. Note this default may be overridden in each RemoteEndpoint.true +
+
true
WebSocket:JAVADOC:171voidjakarta.websocket.WebSocketContainer.setDefaultMaxBinaryMessageBufferSize
+ + ( + int + ) +
Sets the default maximum size of incoming binary message that this container will buffer.true +
+
true
WebSocket:JAVADOC:172voidjakarta.websocket.WebSocketContainer.setDefaultMaxSessionIdleTimeout
+ + ( + long + ) +
Sets the default time in milliseconds after which any web socket sessions in this container will be closed if it has been inactive. A value that is 0 or negative indicates the sessions will never timeout due to inactivity. The value may be overridden on a per session basis using Session#setMaxIdleTimeout(long)true +
+
true
WebSocket:JAVADOC:173voidjakarta.websocket.WebSocketContainer.setDefaultMaxTextMessageBufferSize
+ + ( + int + ) +
Sets the maximum size of incoming text message that this container will buffer.true +
+
true
WebSocket:JAVADOC:174Mapjakarta.websocket.server.HandshakeRequest.getHeaders
+
Return the read only Map of Http Headers that came with the handshake request. The header names are case insensitive.true +
+
true
WebSocket:JAVADOC:175Objectjakarta.websocket.server.HandshakeRequest.getHttpSession
+
Return a reference to the HttpSession that the web socket handshake that started this conversation was part of, if the implementation is part of a Java EE web container.true +
+
true
WebSocket:JAVADOC:176Mapjakarta.websocket.server.HandshakeRequest.getParameterMap
+
Return the request parameters associated with the request.true +
+
true
WebSocket:JAVADOC:177Stringjakarta.websocket.server.HandshakeRequest.getQueryString
+
Return the query string associated with the request.true +
+
true
WebSocket:JAVADOC:178URIjakarta.websocket.server.HandshakeRequest.getRequestURI
+
Return the request URI of the handshake request.true +
+
true
WebSocket:JAVADOC:179Principaljakarta.websocket.server.HandshakeRequest.getUserPrincipal
+
Return the authenticated user or null if no user is authenticated for this handshake.true +
+
true
WebSocket:JAVADOC:180booleanjakarta.websocket.server.HandshakeRequest.isUserInRole
+ + ( + String + ) +
Checks whether the current user is in the given role. Roles and role membership can be defined using deployment descriptors of the containing WAR file, if running in a Java EE web container. If the user has not been authenticated, the method returns false.true +
+
true
WebSocket:JAVADOC:181Stringjakarta.websocket.server.PathParam.value
+
The name of the variable used in the URI-template. If the name does not match a path variable in the URI-template, the value of the method parameter this annotation annotates is null.true +
+
true
WebSocket:JAVADOC:182Setjakarta.websocket.server.ServerApplicationConfig.getAnnotatedEndpointClasses
+ + ( + Set + ) +
Return a set of annotated endpoint classes that the server container must deploy. The set of classes passed in to this method is the set obtained by scanning the archive containing the implementation of this interface. Therefore, this set passed in contains all the annotated endpoint classes in the JAR or WAR file containing the implementation of this interface. This set passed in may be used the build the set to return to the container for deployment.true +
+
true
WebSocket:JAVADOC:183Setjakarta.websocket.server.ServerApplicationConfig.getEndpointConfigs
+ + ( + Set + ) +
Return a set of ServerEndpointConfig instances that the server container will use to deploy the programmatic endpoints. The set of Endpoint classes passed in to this method is the set obtained by scanning the archive containing the implementation of this ServerApplicationConfig. This set passed in may be used the build the set of ServerEndpointConfig instances to return to the container for deployment.true +
+
true
WebSocket:JAVADOC:184voidjakarta.websocket.server.ServerContainer.addEndpoint
+ + ( + Class + ) +
Deploys the given annotated endpoint into this ServerContainer during the initialization phase of deploying the application.true +
+
true
WebSocket:JAVADOC:185voidjakarta.websocket.server.ServerContainer.addEndpoint
+ + ( + Class + ) +
throws + DeploymentException
+
if the annotated endpoint was badly formed.true +
+
true
WebSocket:JAVADOC:186voidjakarta.websocket.server.ServerContainer.addEndpoint
+ + ( + ServerEndpointConfig + ) +
+
+
true +
+
true
WebSocket:JAVADOC:187voidjakarta.websocket.server.ServerContainer.addEndpoint
+ + ( + ServerEndpointConfig + ) +
throws + DeploymentException
+
if the endpoint was badly formed.true +
+
true
WebSocket:JAVADOC:188Classjakarta.websocket.server.ServerEndpoint.configurator
+
The optional custom configurator class that the developer would like to use to further configure new instances of this endpoint. If no configurator class is provided, the implementation uses its own. The implementation creates a new instance of the configurator per logical endpoint.true +
+
true
WebSocket:JAVADOC:189Class[]jakarta.websocket.server.ServerEndpoint.decoders
+
The ordered array of decoder classes this endpoint will use. For example, if the developer has provided a MysteryObject decoder, this endpoint will be able to receive MysteryObjects as web socket messages. The websocket runtime will use the first decoder in the list able to decode a message, ignoring the remaining decoders.true +
+
true
WebSocket:JAVADOC:190Class[]jakarta.websocket.server.ServerEndpoint.encoders
+
The ordered array of encoder classes this endpoint will use. For example, if the developer has provided a MysteryObject encoder, this class will be able to send web socket messages in the form of MysteryObjects. The websocket runtime will use the first encoder in the list able to encode a message, ignoring the remaining encoders.true +
+
true
WebSocket:JAVADOC:191String[]jakarta.websocket.server.ServerEndpoint.subprotocols
+
The ordered array of web socket protocols this endpoint supports. For example, {"superchat", "chat"}.true +
+
true
WebSocket:JAVADOC:192Stringjakarta.websocket.server.ServerEndpoint.value
+
The URI or URI-template, level-1 (See RFC 6570) where the endpoint will be deployed. The URI us relative to the root of the web socket container and must begin with a leading "/". Trailing "/"'s are ignored. Examples: #64;ServerEndpoint("/chat") #64;ServerEndpoint("/chat/{user}") #64;ServerEndpoint("/booking/{privilege-level}")true +
+
true
WebSocket:JAVADOC:193Configuratorjakarta.websocket.server.ServerEndpointConfig.getConfigurator
+
Return the ServerEndpointConfig.Configurator this configuration is using. If none was set by calling ServerEndpointConfig.Builder#configurator(jakarta.websocket.server.ServerEndpointConfig.Configurator) this methods returns the platform default configurator.true +
+
true
WebSocket:JAVADOC:194Classjakarta.websocket.server.ServerEndpointConfig.getEndpointClass
+
Returns the Class of the endpoint this configuration is configuring. If the endpoint is an annotated endpoint, the value is the class of the Java class annotated with @ServerEndpoint. if the endpoint is a programmatic, the value is the class of the subclass of Endpoint.true +
+
true
WebSocket:JAVADOC:195Listjakarta.websocket.server.ServerEndpointConfig.getExtensions
+
Return the websocket extensions configured.true +
+
true
WebSocket:JAVADOC:196Stringjakarta.websocket.server.ServerEndpointConfig.getPath
+
Return the path for this endpoint configuration. The path is the URI or URI-template (level 1) relative to the websocket root of the server to which the endpoint using this configuration will be mapped. The path is always non-null and always begins with a leading "/".true +
+
true
WebSocket:JAVADOC:197Listjakarta.websocket.server.ServerEndpointConfig.getSubprotocols
+
Return the websocket subprotocols configured.true +
+
true
WebSocket:JAVADOC:198ServerEndpointConfigjakarta.websocket.server.ServerEndpointConfig.Builder.build
+
Builds the configuration object using the current attributes that have been set on this builder object.true +
+
true
WebSocket:JAVADOC:199Builderjakarta.websocket.server.ServerEndpointConfig.Builder.configurator
+ + ( + Configurator + ) +
Sets the custom configurator to use on the configuration object built by this builder.true +
+
true
WebSocket:JAVADOC:200Builderjakarta.websocket.server.ServerEndpointConfig.Builder.create
+ + ( + Class + ,
String + ) +
Creates the builder with the mandatory information of the endpoint class (programmatic or annotated), the relative URI or URI-template to use, and with no subprotocols, extensions, encoders, decoders or custom configurator.true +
+
true
WebSocket:JAVADOC:201Builderjakarta.websocket.server.ServerEndpointConfig.Builder.decoders
+ + ( + List + ) +
Sets the decoder implementation classes to use in the configuration.true +
+
true
WebSocket:JAVADOC:202Builderjakarta.websocket.server.ServerEndpointConfig.Builder.encoders
+ + ( + List + ) +
Sets the list of encoder implementation classes for this builder.true +
+
true
WebSocket:JAVADOC:203Builderjakarta.websocket.server.ServerEndpointConfig.Builder.extensions
+ + ( + List + ) +
Sets the extensions to use in the configuration.true +
+
true
WebSocket:JAVADOC:204Builderjakarta.websocket.server.ServerEndpointConfig.Builder.subprotocols
+ + ( + List + ) +
Sets the subprotocols to use in the configuration.true +
+
true
WebSocket:JAVADOC:205booleanjakarta.websocket.server.ServerEndpointConfig.Configurator.checkOrigin
+ + ( + String + ) +
Check the value of the Origin header (See Origin Header) the client passed during the opening handshake. The platform default implementation of this method makes a check of the validity of the Origin header sent along with the opening handshake following the recommendation at: Sending the Server's Opening Handshake.true +
+
true
WebSocket:JAVADOC:206Objectjakarta.websocket.server.ServerEndpointConfig.Configurator.getEndpointInstance
+ + ( + Class + ) +
This method is called by the container each time a new client connects to the logical endpoint this configurator configures. Developers may override this method to control instantiation of endpoint instances in order to customize the initialization of the endpoint instance, or manage them in some other way. If the developer overrides this method, services like dependency injection that are otherwise supported, for example, when the implementation is part of the Java EE platform may not be available. The platform default implementation of this method returns a new endpoint instance per call, thereby ensuring that there is one endpoint instance per client, the default deployment cardinality.true +
+
true
WebSocket:JAVADOC:207Objectjakarta.websocket.server.ServerEndpointConfig.Configurator.getEndpointInstance
+ + ( + Class + ) +
throws + InstantiationException
+
if there was an error producing the endpoint instance.true +
+
false
WebSocket:JAVADOC:208Listjakarta.websocket.server.ServerEndpointConfig.Configurator.getNegotiatedExtensions
+ + ( + List + ,
List + ) +
Return the ordered list of extensions that t server endpoint will support given the requested extension list passed in, the empty list if none. See Negotiating Extensions The default platform implementation of this method 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.true +
+
true
WebSocket:JAVADOC:209Stringjakarta.websocket.server.ServerEndpointConfig.Configurator.getNegotiatedSubprotocol
+ + ( + List + ,
List + ) +
Return the subprotocol the 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 Sending the Server's Opening Handshake. Subclasses may provide custom algorithms based on other factors. The default platform implementation of this method returns the first subprotocol in the list sent by the client that the server supports, or the empty string if there isn't one.true +
+
true
WebSocket:JAVADOC:210voidjakarta.websocket.server.ServerEndpointConfig.Configurator.modifyHandshake
+ + ( + ServerEndpointConfig + ,
HandshakeRequest + ,
HandshakeResponse + ) +
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 that the server has formulated. and the URI checking also. If the developer does not override this method, no further modification of the request and response are made by the implementation.true +
+
true
WebSocket:JAVADOC:211Configuratorjakarta.websocket.server.ServerEndpointConfig.Configurator.ServerEndpointConfig.Configurator
+
+
+
true +
+
true
WebSocket:JAVADOC:212voidjakarta.websocket.Session.addMessageHandler
+ + ( + Class + ,
Whole + ) +
Register to handle to incoming messages in this conversation. A maximum of one message handler per native websocket message type (text, binary, pong) may be added to each Session. I.e. a maximum of one message handler to handle incoming text messages a maximum of one message handler for handling incoming binary messages, and a maximum of one for handling incoming pong messages. For further details of which message handlers handle which of the native websocket message types please see MessageHandler.Whole and MessageHandler.Partial. Adding more than one of any one type will result in a runtime exception.true +
+
true
WebSocket:JAVADOC:213voidjakarta.websocket.Session.addMessageHandler
+ + ( + Class + ,
Partial + ) +
Register to handle to incoming messages in this conversation. A maximum of one message handler per native websocket message type (text, binary, pong) may be added to each Session. I.e. a maximum of one message handler to handle incoming text messages a maximum of one message handler for handling incoming binary messages, and a maximum of one for handling incoming pong messages. For further details of which message handlers handle which of the native websocket message types please see MessageHandler.Whole and MessageHandler.Partial. Adding more than one of any one type will result in a runtime exception.true +
+
true
+ + diff --git a/websocket/docs/WebSocketTCK2.2-ReleaseNotes.html b/websocket/docs/WebSocketTCK2.2-ReleaseNotes.html new file mode 100644 index 0000000000..8763a3fc29 --- /dev/null +++ b/websocket/docs/WebSocketTCK2.2-ReleaseNotes.html @@ -0,0 +1,100 @@ + + + + + Jakarta WebSocket TCK Release Notes + + + +
+

Jakarta EE WebSocket Technology Compatibility Kit, Version 2.2
+ Release Notes, April 2024

+
+

Kit Contents

+

The Jakarta EE WebSocket, Version 2.2 Technology Compatibility Kit (TCK) + includes the following items:

+
    +
  • Jakarta EE WebSocket TCK tests signature, API, and End-to-End + tests:
  • +
      +
    • Signature test that checks that all of the public + APIs are supported in the Jakarta EE WebSocket Version 2.2 + implementation that is being tested
    • +
    • API tests for the public APIs under the jakarta.websocket + and jakarta.websocket.server packages
    • +
    • Specification tests for testable assertions + required by the Jakarta EE WebSocket 2.2 Specification
    • +
    +
+
+

Jakarta EE WebSocket TCK Facts

+

The test suite bundle contains the following:

+
    +
  • 734 total tests (731 tests, two excluded (skipped), and 1 signature + test)
  • +
+
+

Platform Notes

+

The Jakarta EE WebSocket TCK tests have been built with JDK 8 (1.8) and + tested with JavaTM Platform, Standard + Edition 8 and 11.

+

The Jakarta EE WebSocket TCK tests have been run on the following + platforms:

+
    +
  • CentOS Linux 7
  • +
  • Alpine Linux v3.12
  • +
+

The Jakarta EE WebSocket TCK tests have been run against the following + Jakarta EE WebSocket 2.2 Compatible Implementations:

+
    +
  • Eclipse GlassFish 8.0
  • +
+
+

Installing, Setting Up, and Running the + JavaTM API for WebSocket TCK

+

Refer to the Jakarta + EE WebSocket Technology Compatibility Kit, Version 2.2 User's Guide + (or PDF) + for complete instructions on installing, setting up, and running the + Jakarta EE WebSocket TCK.

+

The online version of the JT Harness version 5.0 documentation is + available here.

+
+

Attributions

+

The Jakarta EE WebSocket 2.2 TCK includes software developed by the + Apache Software Foundation (http://www.apache.org/), + and the JDOMTM Project (http://www.jdom.org/). + The Apache Ant Contrib project is located at http://ant-contrib.sourceforge.net/.

+
+

Copyright © 2013, 2024 Oracle and/or its affiliates. All + rights reserved.

+ + diff --git a/websocket/docs/index.html b/websocket/docs/index.html new file mode 100644 index 0000000000..55ba572c20 --- /dev/null +++ b/websocket/docs/index.html @@ -0,0 +1,68 @@ + + + + + + Welcome to the Jakarta EE WebSocket TCK + + +
+

Welcome to the Jakarta EE WebSocket TCK, Version 2.2

+

Your Starting Point

+
+
+

Guide to Jakarta EE WebSocket TCK 2.2 Documentation

+

The Jakarta EE WebSocket TCK 2.2 documentation includes the following:

+ +
+

+
Copyright © 2014, 2024 Oracle and/or its affiliates and others. All + rights reserved.
+ +

+
+ + diff --git a/websocket/docs/userguide/README.md b/websocket/docs/userguide/README.md new file mode 100644 index 0000000000..a3ec2b697b --- /dev/null +++ b/websocket/docs/userguide/README.md @@ -0,0 +1,77 @@ +# A JBake project template + +## About JBake + +JBake is a static site generator, it's inspired from jekyll and written +in java. The basic idea is to have templates for the structure of the +page, and the body generated from asciidoc content. + +## Pre requisites + +- Maven +- JDK8+ + +Deploying to Github will require password less authentication. + +This is done by exporting your SSH public key into your Github account. + +## Build the site locally + +The site is generated under target/staging. + +Open file:///PATH_TO_PROJECT_DIR/target/staging in a browser to view the site. + +``` +mvn generate-resources +``` + +Or you can invoke the JBake plugin directly. + +``` +mvn jbake:build +``` + +### Rebuild the site on changes + +``` +mvn jbake:watch +``` + +If you keep this command running, changes to the sources will be +detected and the site will be rendered incrementally. + +This is convenient when writing content. + +### Serve the site locally + +``` +mvn jbake:serve +``` + +If a webserver is required (e.g. absolute path are used), this command +will start a webserver (jetty) at http://localhost:8820. It will also +watch for changes and rebuild incrementally. + +## Deploy the site to Github Pages + +``` +mvn deploy +``` + +## Produce a zip file for download + +To produce a zip file containing the generated html files, use: + +``` +mvn package +``` + +When making a release on GitHub, this zip file should be added to the release. + +## Links + +- [JBake maven plugin documentation](https://github.com/Blazebit/jbake-maven-plugin) +- [JBake documentation](http://jbake.org/docs/2.5.1) +- [Freemarker documentation](http://freemarker.org/docs) +- [AsciiDoc User Guide](http://asciidoc.org/userguide.html) +- [Asciidoctor quick reference](http://asciidoctor.org/docs/asciidoc-syntax-quick-reference) diff --git a/websocket/docs/userguide/pom.xml b/websocket/docs/userguide/pom.xml new file mode 100644 index 0000000000..5348c045ce --- /dev/null +++ b/websocket/docs/userguide/pom.xml @@ -0,0 +1,99 @@ + + + + + 4.0.0 + + + jakarta.tck + jakarta.tck.user-guide + 11.0.0-SNAPSHOT + ../../../user_guides/parent/pom.xml + + + jakarta.websocket + jakarta.websocket-tck-user-guide + pom + 2.2.0-SNAPSHOT + Eclipse Foundation Technology Compatibility Kit User's Guide for Jakarta WebSocket for Jakarta EE, Release 2.2 ${project.version} + + + ${project.parent.version} + + WebSocket + + DRAFT + + + + + scm:git:git@github.com:eclipse-ee4j/jakartaee-tck.git + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + build-dist + package + + + + + org.glassfish.doc + glassfish-doc-maven-plugin + + + generate-toc + generate-sources + + + generate-book + generate-sources + + + + + org.jbake + jbake-maven-plugin + + + build-site + generate-resources + + + + + org.asciidoctor + asciidoctor-maven-plugin + + + generate-pdf-doc + generate-resources + + + + + + diff --git a/websocket/docs/userguide/src/main/jbake/assets/README.md b/websocket/docs/userguide/src/main/jbake/assets/README.md new file mode 100644 index 0000000000..f8f962c0ab --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/assets/README.md @@ -0,0 +1,4 @@ +# About + +The {{site.title}} project contains the [AsciiDoc](http://asciidoc.org/) +source code for the ... diff --git a/websocket/docs/userguide/src/main/jbake/assets/_config.yml b/websocket/docs/userguide/src/main/jbake/assets/_config.yml new file mode 100644 index 0000000000..556037a9ae --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/assets/_config.yml @@ -0,0 +1,14 @@ +remote_theme: jakartaee/jekyll-theme-jakarta-ee + +title: [tck_wsk_v1_1] +description: [Eclipse Foundation Technology Compatibility Kit User's Guide for Java API for WebSocket 2.1 for Technology Licensees, Release 2.1.0] + +# sidebar links url +links: + source: https://github.com/javaee/tck_wsk_v1_1 + download: https://github.com/javaee/tck_wsk_v1_1/releases + #mailinglist: https://javaee.groups.io/g/tck_wsk_v1_1 + #javadocs: + docs: https://javaee.github.io/tck_wsk_v1_1 + #faq: + diff --git a/websocket/docs/userguide/src/main/jbake/assets/css/style.css b/websocket/docs/userguide/src/main/jbake/assets/css/style.css new file mode 100644 index 0000000000..182f7559b6 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/assets/css/style.css @@ -0,0 +1,313 @@ +/* CSS */ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ +html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } + +/* HTML5 display definitions ========================================================================== */ +/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } + +/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ +audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } + +/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ +audio:not([controls]) { display: none; height: 0; } + +/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ +[hidden], template { display: none; } + +/* Links ========================================================================== */ +/** Remove the gray background color from active links in IE 10. */ +a { background-color: transparent; } + +/** Improve readability when focused and also mouse hovered in all browsers. */ +a:active, a:hover { outline: 0; } + +/* Text-level semantics ========================================================================== */ +/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ +abbr[title] { border-bottom: 1px dotted; } + +/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ +b, strong { font-weight: bold; } + +/** Address styling not present in Safari and Chrome. */ +dfn { font-style: italic; } + +/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */ +h1 { font-size: 2em; margin: 0.67em 0; } + +/** Address styling not present in IE 8/9. */ +mark { background: #ff0; color: #000; } + +/** Address inconsistent and variable font size in all browsers. */ +small { font-size: 80%; } + +/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } + +sup { top: -0.5em; } + +sub { bottom: -0.25em; } + +/* Embedded content ========================================================================== */ +/** Remove border when inside `a` element in IE 8/9/10. */ +img { border: 0; } + +/** Correct overflow not hidden in IE 9/10/11. */ +svg:not(:root) { overflow: hidden; } + +/* Grouping content ========================================================================== */ +/** Address margin not present in IE 8/9 and Safari. */ +figure { margin: 1em 40px; } + +/** Address differences between Firefox and other browsers. */ +hr { box-sizing: content-box; height: 0; } + +/** Contain overflow in all browsers. */ +pre { overflow: auto; } + +/** Address odd `em`-unit font size rendering in all browsers. */ +code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } + +/* Forms ========================================================================== */ +/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */ +/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */ +button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ } + +/** Address `overflow` set to `hidden` in IE 8/9/10/11. */ +button { overflow: visible; } + +/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */ +button, select { text-transform: none; } + +/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ +button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } + +/** Re-set default cursor for disabled elements. */ +button[disabled], html input[disabled] { cursor: default; } + +/** Remove inner padding and border in Firefox 4+. */ +button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } + +/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ +input { line-height: normal; } + +/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */ +input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } + +/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */ +input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } + +/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */ +input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; } + +/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */ +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +/** Define consistent border, margin, and padding. */ +fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } + +/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ +legend { border: 0; /* 1 */ padding: 0; /* 2 */ } + +/** Remove default vertical scrollbar in IE 8/9/10/11. */ +textarea { overflow: auto; } + +/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ +optgroup { font-weight: bold; } + +/* Tables ========================================================================== */ +/** Remove most spacing between table cells. */ +table { border-collapse: collapse; border-spacing: 0; } + +td, th { padding: 0; } + +/* LAYOUT STYLES */ + +p { margin-top: 0; } + +code, pre { margin-bottom: 30px; font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; font-size: 13px; color: #222; } + +code { padding: 0 3px; background-color: #f2f8fc; border: solid 1px #dbe7f3; } + +pre { padding: 20px; overflow: auto; text-shadow: none; background: #fff; border: solid 1px #f2f2f2; } + +pre code { padding: 0; color: #2879d0; background-color: #fff; border: none; } + +ul, ol, dl { margin-bottom: 20px; } + +/* COMMON STYLES */ + +td.halign-right { text-align: right; } + +td.halign-center { text-align: center; } + +form { padding: 20px; background: #f2f2f2; } + +h2 { + font-size: 2em; + line-height: 1.2em; + font-weight: 200; + letter-spacing: 0; +} + +h3 { + font-size: 1.4em; + line-height: 1.2em; + font-weight: normal; + letter-spacing: 0; +} + +.sect1 { + margin-left: 4%; + margin-right: 4%; + font: 13px/20px Arial, Helvetica, sans-serif +} + +a:link { + text-decoration: none; + color: #09569d; +} + +#preamble hr{ + margin-left: 0%; + margin-right: 0%; +} + +#preamble .sectionbody table { + font-weight: 200; + margin-left: 4%; + margin-right: 4%; +} + +hr { + margin-bottom: 12px; +} + +table.tableblock.frame-all.grid-all.spread { + font-size: 12px; +} + +code { + font-size:.9em; + border: 1px solid #eaeaea; + background-color: #f6f6f6; + border-radius: 3px; + padding: 1px; + padding-left:2px; + padding-right:2px; +} + +pre.prettyprint.highlight { + border: 1px solid #eaeaea; + background-color: #f6f6f6; + border-radius: 4px; + padding: 8px; + padding-top:4px; + padding-bottom:4px; +} + +.language-oac_no_warn { + font-size:.9em; + color:#222; + background-color: transparent; +} + +#doc-title { + margin-left: 4%; +} + +#top-nav { + margin-left: 4%; + font-size: 12px; +} + +#bottom-nav { + margin-left: 4%; + font-size: 12px; +} + +.vector-font { + color:grey; + font-size: 20px; +} + +#copyright { + padding-top: 10px; + padding-bottom: 4px; + display: table; + margin:0 auto; + color: grey; + font-size: 12px; + vertical-align: middle; +} + +.beta {color: #FF0000} + +/* GENERAL ELEMENT TYPE STYLES */ + +/* #Media Queries +================================================== */ +/* Smaller than standard 960 (devices and browsers) */ +/* Tablet Portrait size to standard 960 (devices and browsers) */ +@media only screen and (min-width: 768px) and (max-width: 959px) { .inner { width: 740px; } + header h1, header h2 { width: 340px; } + header h1 { font-size: 60px; } + header h2 { font-size: 30px; } +} +/* All Mobile Sizes (devices and browser) */ +@media only screen and (max-width: 767px) { .inner { width: 93%; } + header { padding: 20px 0; } + header .inner { position: relative; } + header h1, header h2 { width: 100%; } + header h1 { font-size: 48px; } + header h2 { font-size: 24px; } + header a.button { position: relative; display: inline-block; width: auto; height: auto; padding: 5px 10px; margin-top: 15px; font-size: 13px; line-height: 1; color: #2879d0; text-align: center; background-color: #9ddcff; background-image: none; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; } + header a.button small { display: inline; font-size: 13px; } +} +/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ +/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ + +header h1 { padding-top: 14px; font-size: 2em; font-weight: 200; line-height: 1.4; color: #FFFFFF; letter-spacing: 0px; border-bottom: 0px; } + +header h2 { font-size: 1.2em; margin-top: 0; margin-bottom: 0; font-weight: 200; line-height: .8; color: #ec7D11; letter-spacing: 0; } + +//header a.button { background: transparent url(../images/logo.png) 0 0 no-repeat; padding-left: 32px; } + +header a:hover { text-decoration: none; } + +/* Admonition (Note) block */ +.admonitionblock > table { + border: 0; + background: none; + width: 100%; + table-layout: auto; + margin-bottom: 10.5px; +} +.admonitionblock > table td.icon { + text-align: center; + width: 60px; +} +.admonitionblock > table td.icon img { + max-width: none; +} +.admonitionblock > table td.icon .title { + text-transform: uppercase; +} +.admonitionblock > table td.content { + padding-left: 1em; + padding-right: 1em; + border-left: 3px solid #ddd; +} +.admonitionblock > table td.content > :last-child > :last-child { + margin-bottom: 0; +} +.admonitionblock td.icon [class^="fa icon-"]:before { + font-size: 2.5em; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); + cursor: default; +} +.admonitionblock td.icon .icon-note:before { + content: "\f05a"; + color: #5bc0de; +} diff --git a/websocket/docs/userguide/src/main/jbake/assets/img/eclipse_foundation_logo_tiny.png b/websocket/docs/userguide/src/main/jbake/assets/img/eclipse_foundation_logo_tiny.png new file mode 100644 index 0000000000000000000000000000000000000000..ee830aeb9332b27a4b4b16ab4b7b452d3db1b23b GIT binary patch literal 3612 zcmV+%4&(8OP)}6qTo5r>1r>2e8xyQrMLX89RqIk)9c`5wb*#8BBG!#o z#8z#rjJDOfOjQ(G?Lt))663gn3xXRF5s=3s5A+du+pmA*M6P+s@0Z^L3Oeu1WL|z* zZtlHjx#xV(xvxM9g^rG92kP%`Ko4MF;4okyP!F^Ki-1|cOF$E_PP2n{x@fDSLaCdf zqxS`d13v{$0cwGEVeV(Z7s6~!UU7kGz`MXwpr{H=7i~GJNoq2HW(S0hek3p&_`cj; z2s{D!z&pUlnjM6R_jd!n4eTbGy{c=9w=#_uCKoh2D29%H888m$Be%x@j{u7_J7_Is z=H*%esL|}8rE7|}GK#f1boB9|qZj3PH+1y9Lr1StpNpR@)lTxfi?$L5%lRb=ll{=q zcj;o-H-l77Jp#C1e!c~qrP;yaG}GKgU(+=@boAc9gTRTvI^ZzP4&Lly@;6VThYOPd zF5Xm3woIeb_tWm>z1EpFH@2OPnS+fTS1yefFyvm~Y~XF+K+O(XRYuE4yH(hBtLyn~ zSp#rAKmOfIK$!kwVHN-p>A=i_JPceN507G2M8u2A@D6#@TBA1%`;2v(4VFBIjS zc6B^z|I)5org4abse1w4fmOhpz*Da02U+b{rcnb_S2*wMg;zx&j*!}Gh!C!m<-!D@ zEsmuV@%Fk3KX^NES=!(&)6gu_I2yPbFftf2S^6^@Xj3NQN?^P)sO}Z^YaTF2&aVY- zQtk~Ez-Om2!m<*09JoWkp`tRjxSv&)X&eLm0oXHZjx5ud3S8xS{s$?{o}yUVytISN zTX$eCa3pYXl}K4npaFPMvx8!WB-07WN@H?AU=r|D7L$ce1zrHIvrMChG68D4YdX=d z&$Id{LjHMhPdV^o>^1regC&gaR%)0S!Mn_?N7DjeGvVy*51 zo(1ZFXMjO9vOYtERezSFv7$Uz3eT=rCrn{-E$}EXBJuq5z(>;N?!eJ{ufo0eC;BhO`2vG*rr)Pt%M^2_{b!^SumcmQL0I+XJ@%`v5-! zR%NY)n~~Z98j;~8c(~PzfOFRoq!>VVvKM-e{sUXO#}V|+z8wc z{Jl(n?f~vCqhRg83h^OUD%Tg*upuF_w1TWtgX{Tuv|rWc{eT}Sw;lv8a6LavI4+^< z`Kv9{I0dM8J-=xSFgd11*Yg`w9LXmv)7S<0oj6N_g|V~c(cVfM?X_>|~ zL>a$bVi{2w-zID5rg|iatXzHCX{6dIraliwM@fs zJ%4TqW^XG;DcU{@?5Pp%PXmUD)-BI50c*>|);$s$->jfCg}B38xkgt3Gjc$YD}me6 z#^ZYarxG@ewoGG)Ab^8`1AxQD5w4bbe-7BO#C$XpRr6#~w-j8U1LAc*@K>N;4n{Wv zdkBn|7cg0&gk#kbyWjma(CBjXF>tNx`CcM&=pewZ=g$*VE`FxFAbb}KANpCQagyu# z|H$~(4T3hdm9apn!cZd>B{L+BJ|T4UIc3)B0uaWIR!--o%`%O51PG}Dj<8H)pzHYy zGBDoGc%_?z0>KtkbJ!v%;%wki*YoEH5>`~#ak zT8TzF<#nUkK||>1w}^z@q1nOuO%Yxt%-+MYR%wDYUuT)d`62{g;>3xGI?(m}*S8Rp z+XV}skpN8EfTkEnkUkexZI%dQ954Vl%Juw4RalkrR3+xJl(x2amdOA$aonug!NZ}W zj|6T8Mwf}Fhg+txx{PPO$o2eB6e)krGL5Hz(-g0@zhxR1x}HB@odC-;4iFS*U&}Pk zOu&mJz2XW&qFfND>-kG64F3v(a_uU=eakdXjI&e;Ix~S3zFOi_11-}yyo4|m#1DGQ z_57AJ(~ZLHvqMLp5jwh|*?}JeD91h8!JB?M$0SVzu1H)v3)r6xK>snohn8ssz#O@D zFtD@o&Sc9p4stzzPRciSuuP*Iv+s00|I$t>LZOo(*%;s<`MozV-!hGvz)V>Rb^=BU z#2eE**Ylq((e6cZl=Gi<2bQFHmT`G6a(<+&)q`@z)wx0w(W+M9J0d7*HK`8#K#rXg z4&6T!j$c)U{b)_GHd$>Il>1ekVYF!YyVfIRa1b-}pJB*I`-z5@DcX39-jsL8@Si?{Dmn? zOd$Pj$!UGoWP07|4~5z7p`*`IB)&}~vb_S6wnb3K18aGzxwQ-E&)+sFYCc>g)D z-1Yo5DQoOhqO@i)XFrlzv`g4fMUwP07K+1Is{%WfYP9sX8F<7pjsMCR`^eu~2{l)W zrD}*16)Efe1i-0atnK7WHH%npqT1{%upz5Ps$A_Hj^Ch()B6Rc`;CsLanjL&7*Xkuy3)D8` z-j0IEwMw5?0WWBF5QdIkNUM>H#}PXES-=OtD=GWSdIQI%c0b^d;yCnl{ii`<|0`hR81_3iCiz? zXFIT7vx8;{PxFrD1fqJg(=zKO=;gqNa?GdW z?u|B)vH?JKVr|(~)}Jisu1AWgYbznC^_m_0k*Jz<98oQGISe}PPY(evR;76M!^KoD z3myGZqMZ&+$WGJEu!T4VmiAPakhiSmUoJ+A&d%$*t0t0Yt@m z4Zw@ZXhD35UPL866T~Up1~@)+^u0F2?$YVvWj~Ox1e4_NBc-5b%?_RcMv34S%VOP? zfaYoLyFydM1AIJm^!LT<9wyGqxQur$73rK8I{JK~eC`6GeM?D36h+Hp4P6pC`WW$A zv$hjyfU9U@6Ywj|4rV7p!oi{)6E!=yLechqM0>1$E!cJ1H_E}o?aBVhx0i&DemU^x z(9zclj=u*{xz#Am4i;vljMeWwAj`|pjn(KP(awq44%SG*;#}Z$G4WRs?YUl+ z7Vv9!@D@=v=OJ)hF{*bhbVK0000/src/com/sun/ts/tests/signaturetest/websocket +:singleTestDirectoryExample: /src/com/sun/ts/tests/websocket +:subsetTestDirectoryExample: /src/com/sun/ts/tests/websocket +:subsetTestDirectoryExample: com.sun.ts.tests.websocket.negdep.invalidpathparamtype.srv.onmessage +:excludeListFileName: TCK-Exclude-List.txt +// Define this attribute (uncomment it) if the TCK needs the rebuild appendix. +// :rebuild: diff --git a/websocket/docs/userguide/src/main/jbake/content/config.adoc b/websocket/docs/userguide/src/main/jbake/content/config.adoc new file mode 100644 index 0000000000..7ffec789cd --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/config.adoc @@ -0,0 +1,47 @@ +type=page +status=published +title=Setup and Configuration +next=using.html +prev=install.html +~~~~~~ +include::attributes.conf[] +Setup and Configuration +======================= + +[[GBFVV]] + + + +[[setup-and-configuration]] +4 Setup and Configuration +------------------------- + + +[NOTE] +==== +The Jakarta EE Specification process provides for any number of compatible implementations. +As additional implementations become available, refer to project or product documentation from +those vendors for specific TCK setup and operational guidance. + +==== + +This chapter describes how to set up the {TechnologyShortName} TCK and +JavaTest harness software. Before proceeding with the instructions in +this chapter, be sure to install all required software, as described in +link:install.html#GBFTP[Chapter 3, "Installation."] + +After completing the instructions in this chapter, proceed to +link:using.html#GBFWO[Chapter 5, "Executing Tests,"] for instructions on +running the {TechnologyShortName} TCK. + +[NOTE] +==== +The {TechnologyShortName} TCK is not depended on any particular build +tool to run the tests. It will be convenient and advisable to create a +Apache Maven project to setup and run the TCK. +This chapter will henceforth use instructions and steps to provide setup +with Apache Maven as a build tool. +==== + + +include::config.inc[] diff --git a/websocket/docs/userguide/src/main/jbake/content/config.inc b/websocket/docs/userguide/src/main/jbake/content/config.inc new file mode 100644 index 0000000000..c5086bd1a9 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/config.inc @@ -0,0 +1,290 @@ +/////////////////////////////////////////////////////////////////////////////// + + Copyright (c) 2020, 2024 Oracle and/or its affiliates. All rights reserved. + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License v. 2.0, which is available at + http://www.eclipse.org/legal/epl-2.0. + + This Source Code may also be made available under the following Secondary + Licenses when the conditions for such availability set forth in the + Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + version 2 with the GNU Classpath Exception, which is available at + https://www.gnu.org/software/classpath/license.html. + + SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + +/////////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +The following sections should be customized for the technology. +This text was originally from the JAX-RS TCK. Most references +to JAX-RS have been parameterized to serve as a simple starting +point for customization. There are still many details that will +need to be changed or removed. The major sections 4.1, 4.2, and +4.3 should be preserved. If their titles are changed, the links +at the top of config.adoc will need to be changed as well as well +as toc.adoc. +/////////////////////////////////////////////////////////////////////// + +[[GBFVU]][[configuring-your-environment-to-run-the-tck-against-the-reference-implementation]] + +4.1 Configuring Your Environment to Run the TCK Against the Compatible Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +After configuring your environment as described in this section, +continue with the instructions in link:using.html#GBFWO[Chapter 5, "Executing Tests."] + + +[NOTE] +======================================================================= + +In these instructions, variables in angle brackets need to be expanded +for each platform. For example, `` becomes `$JAVA_HOME` on +Solaris/Linux and `%JAVA_HOME%` on Windows. In addition, the forward +slashes (`/`) used in all of the examples need to be replaced with +backslashes (`\`) for Windows. Finally, be sure to use the appropriate +separator for your operating system when specifying multiple path +entries (`;` on Windows, `:` on UNIX/Linux). + +On Windows, you must escape any backslashes with an extra backslash in +path separators used in any of the following properties, or use forward +slashes as a path separator instead. + +======================================================================= + + + +1. Set the following environment variables in your shell environment: + a. `JAVA_HOME` to the directory in which Java SE {SEversion} is installed + b. `M2_HOME` to the directory in which the Apache Maven build tool is installed. + c. +{TechnologyHomeEnv}+ to the directory in which the {TechnologyShortName} + {TechnologyVersion} CI has been installed + d. `PATH` to include the following directories: `JAVA_HOME/bin`, + and `M2_HOME/bin` +2. Set the following System properties: + a. Set the `webServerHost` property to the name of the host on which + Jakarta EE {JakartaEEVersion} CI is running. + + The default setting is `localhost`. + b. Set the `webServerPort` property to the port number of the host on + which Jakarta EE {JakartaEEVersion} CI is running. + + The default setting is `8080`. + c. Set the `web.home` property to the installation directory of Jakarta EE + {JakartaEEVersion} CI. + d. Set the `porting.ts.url.class.1` property to your porting + implementation class that is used for obtaining URLs. + + The default setting for this property is + `com.sun.ts.lib.implementation.sun.common.SunRIURL`. ++ +3. Set the below jars to the classpath + a. JAR file for the {TechnologyShortName} {TechnologyVersion} API. + + eg. `${web.home}/modules/jakarta.ws.rs-api.jar`. + b. Arquillian JAR arquillian-junit5-container + Maven cordinates : ++ +[source,oac_no_warn] +---- + + org.jboss.arquillian.junit5 + arquillian-junit5-container + 1.7.0.Alpha10 + +---- ++ + c. JUnit 5 jars (5.7.2+) + Maven cordinates : ++ +[source,oac_no_warn] +---- + + org.junit + junit-bom + 5.7.2 + pom + import + +---- ++ + d. sigtest-maven-plugin (1.4) to run the signature tests. + Maven cordinates : ++ +[source,oac_no_warn] +---- + + org.netbeans.tools + sigtest-maven-plugin + 1.4 + +---- ++ + e. {TechnologyRI} CI jars + + For eg, if you are using the {TechnologyRI} CI below jars need to be added to Classpath + + ++ +[source,oac_no_warn] +---- +${web.home}/modules/jersey-client.jar: +${web.home}/modules/jersey-common.jar: +${web.home}/modules/jersey-server.jar: +${web.home}/modules/jersey-container-servlet.jar: +${web.home}/modules/jersey-container-servlet-core.jar: +${web.home}/modules/jersey-media-jaxb.jar: +${web.home}/modules/jersey-media-sse.jar: +${web.home}/modules/jersey-hk2.jar: +${web.home}/modules/osgi-resource-locator.jar: +${web.home}/modules/jakarta.inject-api.jar: +${web.home}/modules/guava.jar: +${web.home}/modules/hk2-api.jar: +${web.home}/modules/hk2-locator.jar: +${web.home}/modules/hk2-utils.jar: +${web.home}/modules/cglib.jar: +${web.home}/modules/asm-all-repackaged.jar: +${web.home}/modules/bean-validator.jar: +${web.home}/modules/jakarta.annotation-api.jar: +${web.home}/modules/jakarta.xml.bind-api.jar: +${web.home}/modules/jaxb-osgi.jar: +${web.home}/modules/jakarta.activation.jar: +${web.home}/modules/javassist.jar +---- ++ +4. Provide compatible implementation of the porting package interface +provided with the {TechnologyShortName} TCK. + +The porting package interface, `TSURLInterface.java`, obtains URL +strings for web resources in an implementation-specific manner. API +documentation for the `TSURLInterface.java` porting package interface is +available in the {TechnologyShortName} TCK documentation bundle. + +[[GCLHU]][[configuring-your-environment-to-repackage-and-run-the-tck-against-the-vendor-implementation]] + +4.2 Configuring Your Environment to Repackage and Run the TCK Against the Vendor Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +After configuring your environment as described in this section, +continue with the instructions in link:using.html#GBFWO[Chapter 5, "Executing Tests."] + + +[NOTE] +======================================================================= + +In these instructions, variables in angle brackets need to be expanded +for each platform. For example, `` becomes `$JAVA_HOME` on +Solaris/Linux and `%JAVA_HOME%` on Windows. In addition, the forward +slashes (`/`) used in all of the examples need to be replaced with +backslashes (`\`) for Windows. Finally, be sure to use the appropriate +separator for your operating system when specifying multiple path +entries (`;` on Windows, `:` on UNIX/Linux). + +On Windows, you must escape any backslashes with an extra backslash in +path separators used in any of the following properties, or use forward +slashes as a path separator instead. + +======================================================================= + +[[sthref9]] + +==== Before You Begin + +Decide against which {TechnologyShortName} implementation the tests +will be run and determine to which Servlet–compliant Web server the +{TechnologyShortName} TCK applications will be published. + + +1. Set the following environment variables in your shell environment: + a. `JAVA_HOME` to the directory in which Java SE {SEversion} is installed + b. `M2_HOME` to the directory in which the Apache Maven build tool is installed. + c. +{TechnologyHomeEnv}+ to the directory in which the {TechnologyShortName} + {TechnologyVersion} CI has been installed + d. `PATH` to include the following directories: `JAVA_HOME/bin`, + and `M2_HOME/bin` +2. Set the following System properties: + a. Set the `webServerHost` property to the name of the host on which + Jakarta EE {JakartaEEVersion} CI is running. + + The default setting is `localhost`. + b. Set the `webServerPort` property to the port number of the host on + which Jakarta EE {JakartaEEVersion} CI is running. + + The default setting is `8080`. + c. Set the `web.home` property to the installation directory of Jakarta EE + {JakartaEEVersion} CI. + f. Set the `porting.ts.url.class.1` property to your porting + implementation class that is used for obtaining URLs. + + The default setting for this property is + `com.sun.ts.lib.implementation.sun.common.SunRIURL`. ++ +3. Set the below jars to the classpath + a. JAR file for the {TechnologyShortName} {TechnologyVersion} API. + + eg. `${web.home}/modules/jakarta.ws.rs-api.jar`. + b. Arquillian JAR arquillian-junit5-container + Maven cordinates : ++ +[source,oac_no_warn] +---- + + org.jboss.arquillian.junit5 + arquillian-junit5-container + 1.7.0.Alpha10 + +---- ++ + c. JUnit 5 jars (5.7.2+) + Maven cordinates : ++ +[source,oac_no_warn] +---- + + org.junit + junit-bom + 5.7.2 + pom + import + +---- ++ + d. {TechnologyRI} CI jars + + For eg, if you are using the {TechnologyRI} CI below jars need to be added to Classpath + ++ +[source,oac_no_warn] +---- +${web.home}/modules/jersey-client.jar: +${web.home}/modules/jersey-common.jar: +${web.home}/modules/jersey-server.jar: +${web.home}/modules/jersey-container-servlet.jar: +${web.home}/modules/jersey-container-servlet-core.jar: +${web.home}/modules/jersey-media-jaxb.jar: +${web.home}/modules/jersey-media-sse.jar: +${web.home}/modules/jersey-hk2.jar: +${web.home}/modules/osgi-resource-locator.jar: +${web.home}/modules/jakarta.inject-api.jar: +${web.home}/modules/guava.jar: +${web.home}/modules/hk2-api.jar: +${web.home}/modules/hk2-locator.jar: +${web.home}/modules/hk2-utils.jar: +${web.home}/modules/cglib.jar: +${web.home}/modules/asm-all-repackaged.jar: +${web.home}/modules/bean-validator.jar: +${web.home}/modules/jakarta.annotation-api.jar: +${web.home}/modules/jakarta.xml.bind-api.jar: +${web.home}/modules/jaxb-osgi.jar: +${web.home}/modules/jakarta.activation.jar: +${web.home}/modules/javassist.jar +---- ++ +4. Provide compatible implementation of the porting package interface +provided with the {TechnologyShortName} TCK. + +The porting package interface, `TSURLInterface.java`, obtains URL +strings for web resources in an implementation-specific manner. API +documentation for the `TSURLInterface.java` porting package interface is +available in the {TechnologyShortName} TCK documentation bundle. + + +[[GCRWX]][[deploying-the-java-api-for-websocket-tck-tests]] + +4.3 Deploying the Java API for WebSocket TCK Tests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The {TechnologyShortName} TCK provides an automatic way of deploying +both archives to the configured web +container or containers by using arquillian Shrinkwrap API before the tests are run. + diff --git a/websocket/docs/userguide/src/main/jbake/content/debug-tips.inc b/websocket/docs/userguide/src/main/jbake/content/debug-tips.inc new file mode 100644 index 0000000000..e69de29bb2 diff --git a/websocket/docs/userguide/src/main/jbake/content/debug.adoc b/websocket/docs/userguide/src/main/jbake/content/debug.adoc new file mode 100644 index 0000000000..0ad188a7b5 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/debug.adoc @@ -0,0 +1,78 @@ +type=page +status=published +title=Debugging Test Problems +next=faq.html +prev=using.html +~~~~~~ +include::attributes.conf[] +Debugging Test Problems +======================= + +[[GBFUV]] + + +[[debugging-test-problems]] +6 Debugging Test Problems +------------------------- + +There are a number of reasons that tests can fail to execute properly. +This chapter provides some approaches for dealing with these failures. + +This chapter includes the following topics: + +* link:#GBFYP[Overview] +* link:#GBFVF[Test Information] +* link:#GBFWI[Configuration Failures] + +[[GBFYP]][[overview]] + +6.1 Overview +~~~~~~~~~~~~ + +The goal of a test run is for all tests in the test suite that are not +filtered out to have passing results. If the root test suite folder +contains tests with errors or failing results, you must troubleshoot and +correct the cause to satisfactorily complete the test run. + +* Errors: Tests with errors could not be executed by the Junit +framework. These errors usually occur because the test environment is not +properly configured. +* Failures: Tests that fail were executed but had failing results. + + +For every test run, the Junit framework creates a set of report files +in the target directory. + +[NOTE] +======================================================================= + +You can set `junit.log.traceflag=true` as System property to +get more debugging information. + +======================================================================= + +If a large number of tests failed, you should read +link:#GBFWI[Configuration Failures] to see if a +configuration issue is the cause of the failures. + + +[[GBFVF]][[test-information]] + +6.2 Test Information +~~~~~~~~~~~~~~~~~~~~ + +If you need more information to identify the cause of the error or +failure, use the Junit reports generated after running the tests. + + +[[GBFWI]][[configuration-failures]] + +6.3 Configuration Failures +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Configuration failures are easily recognized because many tests fail the +same way. When all your tests begin to fail, you may want to stop the +run immediately and start viewing individual test output. + + +include::debug-tips.inc[] diff --git a/websocket/docs/userguide/src/main/jbake/content/defns.inc b/websocket/docs/userguide/src/main/jbake/content/defns.inc new file mode 100644 index 0000000000..038db2dda3 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/defns.inc @@ -0,0 +1,46 @@ +// NOTE TO WRITERS: +// Most technologies will only need the compatibility rules in rules.adoc. +// Some technologies will need additional definitions to go with additional +// rules. If they're needed, remove the comment characters below +// and update the definitions as appropriate. +// +// The first block below is additional definitions needed by +// Jakarta XML Web Services. +// +// The second block below is additional defintions needed by +// Jakarta Server Pages. +// +// NOTE: This set of examples is NOT complete, but should be. +// +// +// Jakarta XML Web Services +// +// |Development Kit |A software product that implements or incorporates a +// Compiler, a Schema Compiler, a Schema Generator, a Java-to-WSDL Tool, a +// WSDL-to-Java Tool, and/or an RMI Compiler. +// +// |Java-to-WSDL Output |Output of a Java-to-WSDL Tool that is required for +// Web service deployment and invocation. +// +// |Java-to-WSDL Tool |A software development tool that implements or +// incorporates a function that generates web service endpoint descriptions +// in WSDL and XML schema format from Source Code as specified by the +// Jakarta XML Web Services Specification. +// +// |WSDL-to-Java Output |Output of a WSDL-to-Java tool that is required for +// Web service deployment and invocation. +// +// |WSDL-to-Java Tool |A software development tool that implements or +// incorporates a function that generates web service interfaces for +// clients and endpoints from a WSDL description as specified by the +// Jakarta XML Web Services Specification. +// +// +// Jakarta Server Pages +// +// |Jakarta Server Page |A text-based document that uses Jakarta Server +// Pages technology. +// +// |Jakarta Server Page Implementation Class |A program constructed by +// transforming the Jakarta Server Page text into a Java language program +// using the transformation rules described in the Specifications. diff --git a/websocket/docs/userguide/src/main/jbake/content/faq.adoc b/websocket/docs/userguide/src/main/jbake/content/faq.adoc new file mode 100644 index 0000000000..012bd5860c --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/faq.adoc @@ -0,0 +1,55 @@ +type=page +status=published +title=Appendix A: Frequently Asked Questions +next=rebuild.html +prev=debug.html +~~~~~~ +include::attributes.conf[] +Appendix A: Frequently Asked Questions +====================================== + +[[GBFYD]] + + +[[a-frequently-asked-questions]] +A Frequently Asked Questions +---------------------------- + +This appendix contains the following questions. + +* link:#GBFYQ[Where do I start to debug a test failure?] +* link:#GBFYR[How do I restart a crashed test run?] +* link:#GBFWU[What would cause tests be added to the exclude list?] + +[[GBFYQ]][[a.1-where-do-i-start-to-debug-a-test-failure]] + +A.1 Where do I start to debug a test failure? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +See link:debug.html#GBFUV[Chapter 6, "Debugging Test Problems,"] for more +information. + + +[[GBFYR]][[a.2-how-do-i-restart-a-crashed-test-run]] + +A.2 How do I restart a crashed test run? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you need to restart a test run, you can figure out which test crashed +the test suite by looking at the logs. + +[[GBFWU]][[a.3-what-would-cause-tests-be-added-to-the-exclude-list]] + +A.3 What would cause tests be added to the exclude list? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The exclude file (+{excludeListFileName}+) contains all tests that are not +required to be run. The file is used only for documentation purpose. The tests are excluded using +@Disabled tag in Junit when necessary. The following is a list of reasons for a test to be +included in the Exclude List: + +* An error in a Compatible Implementation that does not allow the test to +execute properly has been discovered. +* An error in the specification that was used as the basis of the test +has been discovered. +* An error in the test has been discovered. diff --git a/websocket/docs/userguide/src/main/jbake/content/install-server-vi.inc b/websocket/docs/userguide/src/main/jbake/content/install-server-vi.inc new file mode 100644 index 0000000000..5637912e12 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/install-server-vi.inc @@ -0,0 +1,2 @@ +. Install a Web server on which the {TechnologyShortName} TCK test +applications can be published for testing the VI. diff --git a/websocket/docs/userguide/src/main/jbake/content/install-server.inc b/websocket/docs/userguide/src/main/jbake/content/install-server.inc new file mode 100644 index 0000000000..9c36f6ee8c --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/install-server.inc @@ -0,0 +1,11 @@ +. Install the Jakarta EE 10 CI software (the servlet Web container used +for running the {TechnologyShortName} TCK with the +{TechnologyShortName} {TechnologyVersion} CI), if it is not already +installed. + +Download and install the Servlet Web container with the +{TechnologyShortName} {TechnologyVersion} CI used for running the +{TechnologyShortName} TCK {TechnologyVersion}, represented by the Jakarta +EE 10 CI. +If you intend to use {TechnologyRI}, you may obtain this software via the +downloads tab from the project website: {TechnologyRIURL}. + diff --git a/websocket/docs/userguide/src/main/jbake/content/install.adoc b/websocket/docs/userguide/src/main/jbake/content/install.adoc new file mode 100644 index 0000000000..342ff58a65 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/install.adoc @@ -0,0 +1,79 @@ +type=page +status=published +title=Installation +next=config.html +prev=rules.html +~~~~~~ +include::attributes.conf[] +Installation +============ + +[[GBFTP]] + + +[[installation]] +3 Installation +-------------- + +This chapter explains how to install the {TechnologyFullName} TCK software. + +After installing the software according to the instructions in this +chapter, proceed to link:config.html#GBFVV[Chapter 4, "Setup and +Configuration,"] for instructions on configuring your test environment. + +[[GBFUD]][[obtaining-the-reference-implementation]] + +3.1 Obtaining a Compatible Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Each compatible implementation (CI) will provide instructions for obtaining +their implementation. +{TechnologyRI} is a compatible implementation which may be obtained +from {TechnologyRIURL} + +[[GBFTS]][[installing-the-software]] + +3.2 Installing the Software +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Before you can run the {TechnologyShortName} TCK tests, you must +install and set up the following software components: + +include::req-software.inc[] +* Java SE {SEversion} +* Any Jupiter API compatible test runner. Eg: Apache Maven {MavenVersion} +* A CI for {TechnologyShortName} {TechnologyVersion}, one example is {TechnologyRI} +* {TechnologyShortName} TCK version {TechnologyVersion}, which includes: +include::tck-packages.inc[] +* The {TechnologyShortName} {TechnologyVersion} Vendor Implementation (VI) + +Follow these steps: + +. Install the Java SE {SEversion} software, if it is not already installed. + +Download and install the Java SE {SEversion} software from +http://www.oracle.com/technetwork/java/javase/downloads/index.html. +Refer to the installation instructions that accompany the software for +additional information. +. Install the Apache Maven {MavenVersion} software, if it is not already installed. + +Download and install Apache Maven {MavenVersion} software from Apache Maven +Project. +. Install the {TechnologyShortName} TCK {TechnologyVersion} software. + a. Copy or download the {TechnologyShortName} TCK software to your + local system. + + You can obtain the {TechnologyShortName} TCK software from the + Jakarta EE site {SpecificationURL}. + b. Use the `unzip` command to extract the bundle in the directory of + your choice: + + +unzip {TCKPackageName}+ + +include::install-server.inc[] +. Install a {TechnologyShortName} {TechnologyVersion} Compatible +Implementation. + +A Compatible Implementation is used to validate your initial +configuration and setup of the {TechnologyShortName} TCK +{TechnologyVersion} tests, which are explained further in +link:config.html#GBFVV[Chapter 4, "Setup and Configuration."] + +The Compatible Implementations for {TechnologyShortName} are listed on +the Jakarta EE Specifications web site: {SpecificationURL}. +include::install-server-vi.inc[] +. Install the {TechnologyShortName} VI to be tested. + +Follow the installation instructions for the particular VI under test. diff --git a/websocket/docs/userguide/src/main/jbake/content/intro.adoc b/websocket/docs/userguide/src/main/jbake/content/intro.adoc new file mode 100644 index 0000000000..9cf80dd1c3 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/intro.adoc @@ -0,0 +1,309 @@ +type=page +status=published +title=Introduction +next=rules.html +prev=preface.html +~~~~~~ +include::attributes.conf[] +Introduction +============ + +[[GBFOW]] + + +[[introduction]] +1 Introduction +-------------- + +This chapter provides an overview of the principles that apply +generally to all Technology Compatibility Kits (TCKs) and describes the +{TechnologyFullName} TCK ({TechnologyShortName} {TechnologyVersion} TCK). +It also includes a high level listing +of what is needed to get up and running with the {TechnologyShortName} +TCK. + +This chapter includes the following topics: + +* link:#GBFTK[Compatibility Testing] +* link:#GBFQR[About the TCK] +* link:#GBFQW[Getting Started With the TCK] + +[[GBFTK]][[compatibility-testing]] + +1.1 Compatibility Testing +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Compatibility testing differs from traditional product testing in a +number of ways. The focus of compatibility testing is to test those +features and areas of an implementation that are likely to differ across +other implementations, such as those features that: + +* Rely on hardware or operating system-specific behavior +* Are difficult to port +* Mask or abstract hardware or operating system behavior + +Compatibility test development for a given feature relies on a complete +specification and compatible implementation (CI) for that feature. +Compatibility testing is not primarily concerned with robustness, +performance, nor ease of use. + +[[GBFQN]][[why-compatibility-testing-is-important]] + +1.1.1 Why Compatibility Testing is Important +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Jakarta platform compatibility is important to different groups involved +with Jakarta technologies for different reasons: + +* Compatibility testing ensures that the Jakarta platform does not become +fragmented as it is ported to different operating systems and hardware +environments. +* Compatibility testing benefits developers working in the Jakarta +programming language, allowing them to write applications once and then +to deploy them across heterogeneous computing environments without +porting. +* Compatibility testing allows application users to obtain applications +from disparate sources and deploy them with confidence. +* Conformance testing benefits Jakarta platform implementors by ensuring a +level playing field for all Jakarta platform ports. + +[[GBFPR]][[tck-compatibility-rules]] + +1.1.2 TCK Compatibility Rules +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Compatibility criteria for all technology implementations are embodied +in the TCK Compatibility Rules that apply to a specified technology. +Each TCK tests for adherence to these Rules as described in +link:rules.html#GBFSN[Chapter 2, "Procedure for Certification."] + +[[GBFPW]][[tck-overview]] + +1.1.3 TCK Overview +^^^^^^^^^^^^^^^^^^ + +A TCK is a set of tools and tests used to verify that a vendor's compatible +implementation of a Jakarta EE technology conforms to the applicable +specification. All tests in the TCK are based on the written +specifications for the Jakarta EE platform. A TCK tests compatibility of a +vendor's compatible implementation of the technology to the applicable +specification of the technology. Compatibility testing is a means of +ensuring correctness, completeness, and consistency across all +implementations developed by technology licensees. + +The set of tests included with each TCK is called the test suite. Most +tests in a TCK's test suite are self-checking, but some tests may +require tester interaction. Most tests return either a Pass or Fail +status. For a given platform to be certified, all of the required tests +must pass. The definition of required tests may change from platform to +platform. + +The definition of required tests will change over time. Before your +final certification test pass, be sure to download the latest version +of this TCK. + +[[GBFPB]][[java-community-process-jcp-program-and-compatibility-testing]] + +1.1.4 Jakarta EE Specification Process (JESP) Program and Compatibility Testing +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The Jakarta EE Specification Process (JESP) program is the formalization of the +open process that has been used since 2019 to develop and revise Jakarta EE +technology specifications in cooperation with the international Jakarta EE +community. The JESP program specifies that the following three major +components must be included as deliverables in a final Jakarta EE technology +release under the direction of the responsible Expert Group: + +* Technology Specification +* Compatible Implementation (CI) +* Technology Compatibility Kit (TCK) + +For further information about the JESP program, go to Jakarta EE Specification +Process community page https://jakarta.ee/specifications. + +[[GBFQR]][[about-the-tck]] + +1.2 About the TCK +~~~~~~~~~~~~~~~~~ + +The {TechnologyShortName} TCK {TechnologyVersion} is designed as a +portable, configurable, automated test suite for verifying the +compatibility of a vendor's implementation of the +{TechnologyShortName} {TechnologyVersion} Specification. + +[[GBFQV]][[tck-specifications-and-requirements]] + +1.2.1 TCK Specifications and Requirements +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This section lists the applicable requirements and specifications. + +* Specification Requirements: Software requirements for a +{TechnologyShortName} implementation are described in detail in the +{TechnologyShortName} {TechnologyVersion} Specification. Links to the +{TechnologyShortName} specification and other product information can +be found at {SpecificationURL}. +* {TechnologyShortName} Version: The {TechnologyShortName} {TechnologyVersion} TCK +is based on the {TechnologyShortName} +Specification, Version {TechnologyVersion}. +* Compatible Implementation: One {TechnologyShortName} +{TechnologyVersion} Compatible Implementation, {TechnologyRI} is +available from the Eclipse EE4J project +(https://projects.eclipse.org/projects/ee4j). See the CI documentation page at +{TechnologyRIURL} for more information. + +See the {TechnologyShortName} TCK Release Notes for more specific +information about Java SE version requirements, supported platforms, +restrictions, and so on. + +[[GBFSQ]][[tck-components]] + +1.2.2 TCK Components +^^^^^^^^^^^^^^^^^^^^ + +The {TechnologyShortName} TCK {TechnologyVersion} includes the +following components: + +* {TechnologyShortName} TCK signature tests; check that all public APIs +are supported and/or defined as specified in the {TechnologyShortName} +Version {TechnologyVersion} implementation under test. +* If applicable, an exclude list, which provides a list of tests that your +implementation is not required to pass. +ifndef::no-api-tests[] +* API tests for all of the {TechnologyShortName} API in all related packages: +include::packages.inc[] +endif::no-api-tests[] +ifdef::end-to-end-tests[] +* End-to-end tests that demonstrate compliance with the {TechnologyFullName} +Specification. +endif::end-to-end-tests[] + +The {TechnologyShortName} TCK tests run on the following platforms: + +include::platforms.inc[] + +[[GBFSA]][[javatest-harness]] + +1.2.3 TCK Compatibility Test Suite +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The test suite is the collection of tests used by the JavaTest harness +to test a particular technology implementation. In this case, it is the +collection of tests used by the {TechnologyShortName} TCK +{TechnologyVersion} to test a {TechnologyShortName} {TechnologyVersion} +implementation. The tests are designed to verify that a vendor's +runtime implementation of the technology complies with the appropriate +specification. The individual tests correspond to assertions of the +specification. + +The tests that make up the TCK compatibility test suite are precompiled +and indexed within the TCK test directory structure. + +[[GBFSH]][[exclude-lists]] + +1.2.4 Exclude Lists +^^^^^^^^^^^^^^^^^^^ + +Each version of a TCK includes an Exclude List contained in a `TCK-Exclude-List.txt` +file. +This is a list of test file URLs that identify tests which do not +have to be run for the specific version of the TCK being used. +Whenever tests are run, the Junit framework automatically excludes +these tests from being executed as those are disabled using '@Disabled' tag in JUnit. + +A vendor's compatible implementation is not required to pass or run any test on the Exclude List. +The Exclude List file, +{excludeListFileName}+, is documented in the +{TechnologyShortName} TCK. Please note this file is not parsed to exclude any test and is only +for documentation purpose. + + +[NOTE] +======================================================================= + +From time to time, updates to the Exclude List are made available. +The exclude list is included in the Jakarta TCK ZIP archive. +Each time an update is approved and released, the version number +will be incremented. +You should always make sure you are using an up-to-date copy of the +Exclude List before running the {TechnologyShortName} TCK to verify your +implementation. + +======================================================================= + + +A test might be in the Exclude List for reasons such as: + +* An error in an underlying implementation API has been discovered which +does not allow the test to execute properly. +* An error in the specification that was used as the basis of the test +has been discovered. +* An error in the test itself has been discovered. +* The test fails due to a bug in the tools (such as the JavaTest +harness, for example). + +In addition, all tests are run against the compatible implementations. +Any tests that fail when run on a compatible Jakarta platform are put on the +Exclude List. Any test that is not specification-based, or for which the +specification is vague, may be excluded. Any test that is found to be +implementation dependent (based on a particular thread scheduling model, +based on a particular file system behavior, and so on) may be excluded. + + +[NOTE] +======================================================================= + +Vendors are not permitted to alter or modify Exclude Lists. Changes to +an Exclude List can only be made by using the procedure described in +link:rules.html#CJAJEAEI[Section 2.3.1, "TCK Test Appeals Steps."] + +======================================================================= + + +[[GBFRR]][[tck-configuration]] + +1.2.5 TCK Configuration +^^^^^^^^^^^^^^^^^^^^^^^ + +You need to set several variables in your test environment, +and run the {TechnologyShortName} tests, as described in +link:config.html#GBFVV[Chapter 4, "Setup and Configuration."] + +include::intro.inc[] + +[[GBFQW]][[getting-started-with-the-tck]] + +[NOTE] +==== +The Jakarta EE Specification Process support multiple compatible implementations. +These instructions explain how to get started with the {TechnologyRI} CI. +If you are using another compatible implementation, refer to material provided +by that implementation for specific instructions and procedures. + +==== + +1.3 Getting Started With the TCK +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section provides an general overview of what needs to be done to +install, set up, test, and use the {TechnologyShortName} TCK. These +steps are explained in more detail in subsequent chapters of this +guide. + +1. Make sure that the following software has been correctly installed +on the system: +include::req-software.inc[] + * Java SE {SEversion} + * Apache Maven {MavenVersion} + * A CI for {TechnologyShortName} {TechnologyVersion}. One example is {TechnologyRI}. + * {TechnologyShortName} TCK version {TechnologyVersion}. + * The {TechnologyShortName} {TechnologyVersion} Vendor Implementation (VI) + + See the documentation for each of these software applications for + installation instructions. See link:install.html#GBFTP[Chapter 3, + "Installation,"] for instructions on installing the {TechnologyShortName} TCK. +2. Set up the {TechnologyShortName} TCK software. + +See link:config.html#GBFVV[Chapter 4, "Setup and Configuration,"] for +details about the following steps. + a. Set up your shell environment. +3. Test the {TechnologyShortName} {TechnologyVersion} implementation. + +Test the {TechnologyShortName} implementation installation by running +the test suite. See link:using.html#GBFWO[Chapter 5, "Executing Tests."] diff --git a/websocket/docs/userguide/src/main/jbake/content/intro.inc b/websocket/docs/userguide/src/main/jbake/content/intro.inc new file mode 100644 index 0000000000..e69de29bb2 diff --git a/websocket/docs/userguide/src/main/jbake/content/packages.inc b/websocket/docs/userguide/src/main/jbake/content/packages.inc new file mode 100644 index 0000000000..4fa2926685 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/packages.inc @@ -0,0 +1,3 @@ +** `jakarta.websocket` + +** `jakarta.websocket.server` diff --git a/websocket/docs/userguide/src/main/jbake/content/platforms.inc b/websocket/docs/userguide/src/main/jbake/content/platforms.inc new file mode 100644 index 0000000000..c1db9d9d41 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/platforms.inc @@ -0,0 +1,2 @@ + +* CentOS Linux 7 \ No newline at end of file diff --git a/websocket/docs/userguide/src/main/jbake/content/preface.adoc b/websocket/docs/userguide/src/main/jbake/content/preface.adoc new file mode 100644 index 0000000000..ebc32fa2f5 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/preface.adoc @@ -0,0 +1,141 @@ +type=page +status=published +title=Preface +next=intro.html +prev=title.html +~~~~~~ +include::attributes.conf[] +Preface +======= + +[[TCJRS00001]][[GBFTI]] + + +[[preface]] +Preface +------- + +This guide describes how to install, configure, and run the Technology +Compatibility Kit (TCK) that is used to test the {TechnologyFullName} +({TechnologyShortName} {TechnologyVersion}) technology. + +The {TechnologyShortName} TCK is a portable, configurable automated +test suite for verifying the compatibility of a vendor's +implementation of the {TechnologyShortName} {TechnologyVersion} +Specification (hereafter referred to as the vendor implementation or VI). + + +[NOTE] +======================================================================= + +Note All references to specific Web URLs are given for the sake of your +convenience in locating the resources quickly. These references are +always subject to changes that are in many cases beyond the control of +the authors of this guide. + +======================================================================= + +Jakarta EE is a community sponsored and community run program. +Organizations contribute, along side individual contributors who use, evolve +and assist others. +Commercial support is not available through the Eclipse Foundation resources. +Please refer to the Eclipse EE4J project site +(https://projects.eclipse.org/projects/ee4j). +There, you will find additional details as well as a list of all the associated sub-projects +(Implementations and APIs), that make up Jakarta EE and define these specifications. +If you have questions about this Specification you may +send inquiries to {SpecificationInquiryList}. +If you have questions about this TCK, you may send inquiries to +{TCKInquiryList}. + +[[TCJRS00034]][[GBFUS]] + + +[[who-should-use-this-book]] +Who Should Use This Book +~~~~~~~~~~~~~~~~~~~~~~~~ + +This guide is for vendors that implement the {TechnologyShortName} +{TechnologyVersion} technology to assist them in running the test suite +that verifies compatibility of their implementation of the +{TechnologyShortName} {TechnologyVersion} Specification. + + +[[TCJRS00035]][[GBFPO]] + + +[[before-you-read-this-book]] +Before You Read This Book +~~~~~~~~~~~~~~~~~~~~~~~~~ + +You should be familiar with the {TechnologyShortName} +{TechnologyVersion}, version {TechnologyVersion} Specification, +which can be found at {SpecificationURL}. + + +[[TCJRS00036]][[GBFWF]] + + +[[typographic-conventions]] +Typographic Conventions +~~~~~~~~~~~~~~~~~~~~~~~ + +The following table describes the typographic conventions that are used +in this book. + +[width="100%",cols="15%,40%,45%",options="header",] +|======================================================================= +|Convention |Meaning |Example +|*Boldface* |Boldface type indicates graphical user interface elements +associated with an action, terms defined in text, or what you type, +contrasted with onscreen computer output. a| +From the *File* menu, select *Open Project*. + +A *cache* is a copy that is stored locally. + +`machine_name% *su*` + +`Password:` + +|`Monospace` |Monospace type indicates the names of files and +directories, commands within a paragraph, URLs, code in examples, text +that appears on the screen, or text that you enter. a| +Edit your `.login` file. + +Use `ls` `-a` to list all files. + +`machine_name% you have mail.` + +|_Italic_ |Italic type indicates book titles, emphasis, or placeholder +variables for which you supply particular values. a| +Read Chapter 6 in the _User's Guide_. + +Do _not_ save the file. + +The command to remove a file is `rm` _filename_. + +|======================================================================= + + +[[TCJRS00037]][[FWBSD]] + + +[[shell-prompts-in-command-examples]] +Shell Prompts in Command Examples +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following table shows the default UNIX system prompt and superuser +prompt for the C shell, Bourne shell, and Korn shell. + +[width="100%",cols="50%,50%",options="header",] +|===================================================== +|Shell |Prompt +|C shell |`machine_name%` +|C shell for superuser |`machine_name#` +|Bourne shell and Korn shell |`$` + +|Bourne shell and Korn shell for superuser |`#` + +|Bash shell |`shell_name-shell_version$` +|Bash shell for superuser |`shell_name-shell_version#` +|===================================================== + + + diff --git a/websocket/docs/userguide/src/main/jbake/content/rebuild.adoc b/websocket/docs/userguide/src/main/jbake/content/rebuild.adoc new file mode 100644 index 0000000000..e4021cfa19 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/rebuild.adoc @@ -0,0 +1,20 @@ +type=page +status=published +title=Appendix B: Rebuild Rules +prev=faq.html +~~~~~~ +include::attributes.conf[] + +Appendix B: Rebuild Rules +========================= + + +ifdef::rebuild[] +include::rebuild.inc[] +endif::rebuild[] +ifndef::rebuild[] + +<<< +Appendix B is not used for the {TechnologyShortName} TCK. + +endif::rebuild[] diff --git a/websocket/docs/userguide/src/main/jbake/content/rebuild.inc b/websocket/docs/userguide/src/main/jbake/content/rebuild.inc new file mode 100644 index 0000000000..060bbb6d66 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/rebuild.inc @@ -0,0 +1,188 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +The following sections should be customized for the technology. +This text was originally from the JAX-RS TCK. Most references +to JAX-RS have been parameterized to serve as a simple starting +point for customization. There are still many details that will +need to be changed or removed. +/////////////////////////////////////////////////////////////////////// + +[[GCLIZ]] + + +[[b-packaging-the-test-applications-in-servlet-compliant-war-files-with-vi-specific-information]] +B Packaging the Test Applications in Servlet-Compliant WAR Files With VI-Specific Information +--------------------------------------------------------------------------------------------- + +The {TechnologyShortName} {TechnologyVersion} specification specifies +how {TechnologyShortName} applications are to be published in a Java SE +environment, JAX-WS endpoint, or Servlet–compliant Web container. + +{TechnologyShortName} TCK test application classes that are to be +published in a Java SE environment are located under +`$TS_HOME/classes`. + +The {TechnologyShortName} TCK comes with prebuilt test WAR files for +deployment on Jakarta EE 10 RI , which provides a Servlet–compliant Web +container. The WAR files are {TechnologyRI}-specific, with {TechnologyRI}'s servlet +class and {TechnologyRI}'s servlet defined in the `web.xml` deployment +descriptor. To run the TCK tests against the VI in a Servlet–compliant +Web container, the tests need to be repackaged to include the +VI-specific servlet, and the VI-specific servlet must be defined in the +deployment descriptor. + +The {TechnologyShortName} TCK makes it easier for the vendor by +including template WAR files that contain all of the necessary files +except for the VI-specific servlet adaptor class. The +{TechnologyShortName} TCK provides a tool to help with the repackaging +task. + +This appendix contains the following sections: + +* link:#GCLIO[Overview] +* link:#GCLLW[Creating the VI-Specific Servlet–Compliant WAR +Files] + +[[GCLIO]][[b.1-overview]] + +B.1 Overview +~~~~~~~~~~~~ + +The set of prebuilt archives and classes that ship with the +{TechnologyShortName} TCK were built using the Reference +Implementation, and must be deployed on Jakarta EE 10 RI and run against +the {TechnologyRI} RI. + +The prebuilt {TechnologyRI}-specific Servlet–compliant WAR files are located +under $TS_HOME`/dist`, and have `jersey` as part of their name; for +example: + +[source,oac_no_warn] +---- +$TS_HOME/dist/com/sun/ts/tests/jaxrs/ee/rs/get/jaxrs_rs_get_web.war.jersey +---- + +The names are made unique by including `jersey` to minimize the chances +that the files will be overwritten or modified. + +The Vendor must create VI-specific Servlet–compliant WAR files if the +Vendor chooses to publish on a Servlet–compliant Web container, so that +the VI-specific Servlet class will be included instead of the +{TechnologyRI}-specific Servlet class. + +[[GCLLW]][[b.2-creating-the-vi-specific-servletcompliant-war-files]] + +B.2 Creating the TCK VI-Specific Servlet–Compliant WAR Files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All resource and application class files are already compiled. The +Vendor needs to package these files. All tests also come with a +`web.xml.template` file to be used for generating deployment descriptor +files with a VI-specific Servlet definition. + +Each test that has a {TechnologyShortName} resource class to publish comes with a +template deployment descriptor file. For example, the file +`$TS_HOME/src/com/sun/ts/tests/jaxrs/ee/rs/get/web.xml.template` +contains the following elements: + +[source,oac_no_warn] +---- + + + + CTSJAX-RSGET + servlet_adaptor + + jakarta.ws.rs.Application + com.sun.ts.tests.jaxrs.ee.rs.get.TSAppConfig + + 1 + + + CTSJAX-RSGET + /* + + + 30 + + +---- + +In this example, the `` element has a value of +`servlet_adaptor`, which is a placeholder for the +implementation-specific Servlet class. A {TechnologyRI}-specific +deployment descriptor also comes with the {TechnologyShortName} TCK, +and has the values for the +`com.sun.jersey.spi.container.servlet.ServletContainer`: + +[source,oac_no_warn] +---- + + + + CTSJAX-RSGET + + org/glassfish/jersey/servlet/ServletContainer + + + jakarta.ws.rs.Application + com.sun.ts.tests.jaxrs.ee.rs.get.TSAppConfig + + 1 + + + CTSJAX-RSGET + /* + + + 30 + + +---- + +The {TechnologyShortName} TCK provides a tool, +`${ts.home}/bin/xml/impl/glassfish/jersey.xml`, for the Jakarta EE 10 RI +that you can use as a model to help you create your own VI-specific Web +test application. + +[[GCLMA]][[b.2.1-to-create-a-vi-specific-deployment-descriptor]] + +B.2.1 To Create a VI-Specific Deployment Descriptor +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Create a VI handler file. + +Create a VI-specific handler file +`$TS_HOME/bin/xml/impl/${`impl.vi`}/`jaxrs_impl_name`.xml` if one does +not already exist. Make sure the `jaxrs_impl_name` property is set in +the +{jteFileName}+, file and that it has a unique name so no file will be +overwritten. +2. Set the VI Servlet class property. + +Set the `servlet_adaptor` property in the +{jteFileName}+ file. This property +will be used to set the value of the `` element in the +deployment descriptor. +3. Create VI Ant tasks. + +Create a `update.jaxrs.wars` target in the VI handler file. Reference +this `update.jaxrs.wars` target in the `jersey.xml` file. + +This target will create a `web.xml.${`jaxrs_impl_name`}` for each test +that has a deployment descriptor template. The +`web.xml.${`jaxrs_impl_name`}` will contain the VI-specific Servlet +class name. It will also create the test WAR files under +`$TS_HOME/dist`; for example: + ++ +[source,oac_no_warn] +---- +ls $TS_HOME/dist/com/sun/ts/tests/jaxrs/ee/rs/get/ +jaxrs_rs_get_web.war.jersey +jaxrs_rs_get_web.war.${impl_name} +---- ++ +4. Change to the `$TS_HOME/bin` directory and execute the +`update.jaxrs.wars` Ant target. + +This creates a `web.xml.`VI_name file for each test based on the VI's +servlet class name and repackage the tests. diff --git a/websocket/docs/userguide/src/main/jbake/content/req-software.inc b/websocket/docs/userguide/src/main/jbake/content/req-software.inc new file mode 100644 index 0000000000..3988db6ce3 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/req-software.inc @@ -0,0 +1,11 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +This is a list of software required in addition to the TCK and the RI. +For many Jakarta EE APIs, the Jakarta EE RI will be required, as described below. +For standalone technologies, no other software may be required, and the +below line can be removed. + +This is used in intro.adoc in section 1.3 and install.adoc in section 3.2. +/////////////////////////////////////////////////////////////////////// + +* A Jakarta EE 10 CI (for example {TechnologyRI}) or, at a minimum, a Web server with a Servlet 6.0 container diff --git a/websocket/docs/userguide/src/main/jbake/content/rules.adoc b/websocket/docs/userguide/src/main/jbake/content/rules.adoc new file mode 100644 index 0000000000..e02739481e --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/rules.adoc @@ -0,0 +1,401 @@ +type=page +status=published +title=Procedure for Certification +next=install.html +prev=intro.html +~~~~~~ +include::attributes.conf[] +Procedure for Certification +=========================== + +[[GBFSN]] + + +[[procedure-for-certification]] +2 Procedure for Certification +----------------------------- + +This chapter describes the compatibility testing procedure and +compatibility requirements for {TechnologyFullName}. +This chapter contains the following sections: + +* link:#CJAFFDGI[Certification Overview] +* link:#CJAFGIGG[Compatibility Requirements] +* link:#CJAIIBDJ[Test Appeals Process] +* link:#CJAJECIE[Specifications for {TechnologyFullName}] +* link:#CJABAHGI[Libraries for {TechnologyFullName}] + +[[CJAFFDGI]][[certification-overview]] + +2.1 Certification Overview +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The certification process for {technologyShortName} {TechnologyVersion} +consists of the following activities: + +* Install the appropriate version of the Technology Compatibility Kit +(TCK) and execute it in accordance with the instructions in this User's +Guide. +* Ensure that you meet the requirements outlined in +link:#CJAFGIGG[Compatibility Requirements] below. +* Certify to the Eclipse Foundation that you have finished +testing and that you meet all of the compatibility requirements, +as required by the Eclipse Foundation TCK License. + +[[CJAFGIGG]][[compatibility-requirements]] + +2.2 Compatibility Requirements +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The compatibility requirements for {TechnologyShortName} +{TechnologyVersion} consist of meeting the requirements set forth by +the rules and associated definitions contained in this section. + +[[sthref4]][[definitions]] + +2.2.1 Definitions +^^^^^^^^^^^^^^^^^ + +These definitions are for use only with these compatibility requirements +and are not intended for any other purpose. + +[[sthref5]][[sthref6]] + +Table 2-1 Definitions  + +[width="100%",cols="25%,75%",options="header",] +|======================================================================= +|Term |Definition +|API Definition Product |A Product for which the only Java class files +contained in the product are those corresponding to the application +programming interfaces defined by the Specifications, and which is +intended only as a means for formally specifying the application +programming interfaces defined by the Specifications. + +|Computational Resource a| +A piece of hardware or software that may vary in quantity, existence, or +version, which may be required to exist in a minimum quantity and/or at +a specific or minimum revision level so as to satisfy the requirements +of the Test Suite. + +Examples of computational resources that may vary in quantity are RAM +and file descriptors. + +Examples of computational resources that may vary in existence (that is, +may or may not exist) are graphics cards and device drivers. + +Examples of computational resources that may vary in version are +operating systems and device drivers. + +|Configuration Descriptor |Any file whose format is well defined by a +specification and which contains configuration information for a set of +Java classes, archive, or other feature defined in the specification. + +|Conformance Tests |All tests in the Test Suite for an indicated +Technology Under Test, as released and distributed by the +Eclipse Foundation, excluding those tests on the +published Exclude List for the Technology Under Test. + +|Container |An implementation of the associated Libraries, as specified +in the Specifications, and a version of a Java Platform, Standard +Edition Runtime Product, as specified in the Specifications, or a later +version of a Java Platform, Standard Edition Runtime Product that also +meets these compatibility requirements. + +|Documented |Made technically accessible and made known to users, +typically by means such as marketing materials, product documentation, +usage messages, or developer support programs. + +|Exclude List |The most current list of tests, released and distributed by the +Eclipse Foundation, that are not required to be passed to certify +conformance. The Jakarta EE Specification Committee may add to the Exclude List for that +Test Suite as needed at any time, in which case the updated TCK version +supplants any previous Exclude Lists for that Test Suite. + +|Libraries a| +The class libraries, as specified through the Jakarta EE Specification Process +(JESP), for the Technology Under Test. + +The Libraries for {TechnologyFullName} are listed at the end of this chapter. + +|Location Resource a| +A location of classes or native libraries that are components of the +test tools or tests, such that these classes or libraries may be +required to exist in a certain location in order to satisfy the +requirements of the test suite. + +For example, classes may be required to exist in directories named in a +CLASSPATH variable, or native libraries may be required to exist in +directories named in a PATH variable. + +|Maintenance Lead |The corresponding Jakarta EE Specification Project +is responsible for maintaining the Specification, and the TCK for the +Technology. The Specification Project Team will propose revisions and +updates to the Jakarta EE Specification Committee which will approve +and release new versions of the specification and TCK. + +|Operating Mode a| +Any Documented option of a Product that can be changed by a user in +order to modify the behavior of the Product. + +For example, an Operating Mode can be binary (enable/disable +optimization), an enumeration (select from a list of protocols), or a +range (set the maximum number of active threads). + +Note that an Operating Mode may be selected by a command line switch, an +environment variable, a GUI user interface element, a configuration or +control file, etc. + +|Product |A vendor's product in which the Technology Under Test is +implemented or incorporated, and that is subject to compatibility +testing. + +|Product Configuration a| +A specific setting or instantiation of an Operating Mode. + +For example, a Product supporting an Operating Mode that permits user +selection of an external encryption package may have a Product +Configuration that links the Product to that encryption package. + +|Rebuildable Tests |Tests that must be built using an +implementation-specific mechanism. This mechanism must produce +specification-defined artifacts. Rebuilding and running these tests +against a known compatible implementation verifies that the mechanism generates +compatible artifacts. + +|Resource |A Computational Resource, a Location Resource, or a Security +Resource. + +|Rules |These definitions and rules in this Compatibility Requirements +section of this User's Guide. + +|Runtime |The Containers specified in the Specifications. + +|Security Resource a| +A security privilege or policy necessary for the proper execution of the +Test Suite. + +For example, the user executing the Test Suite will need the privilege +to access the files and network resources necessary for use of the +Product. + +|Specifications a| +The documents produced through the Jakarta EE Specification Process (JESP) +that define a particular Version of a Technology. + +The Specifications for the Technology Under Test are referenced later in +this chapter. + +|Technology |Specifications and one or more compatible implementations produced +through the Jakarta EE Specification Process (JESP). + +|Technology Under Test |Specifications and a compatible implementation +for {TechnologyFullName} Version {TechnologyVersion}. + +|Test Suite |The requirements, tests, and testing tools distributed by +the Maintenance Lead as applicable to a given Version of the Technology. + +|Version |A release of the Technology, as produced through the +Jakarta EE Specification Process (JESP). + +include::defns.inc[] +|======================================================================= + + +[[sthref7]][[rules-for-products]] + +2.2.2 Rules for {TechnologyFullName} Products +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following rules apply for each version of an operating system, +software component, and hardware platform Documented as supporting the +Product: + +*{techID}1* The Product must be able to satisfy all applicable compatibility +requirements, including passing all Conformance Tests, in every Product +Configuration and in every combination of Product Configurations, except +only as specifically exempted by these Rules. + +For example, if a Product provides distinct Operating Modes to optimize +performance, then that Product must satisfy all applicable compatibility +requirements for a Product in each Product Configuration, and +combination of Product Configurations, of those Operating Modes. + +*{techID}1.1* If an Operating Mode controls a Resource necessary for the +basic execution of the Test Suite, testing may always use a Product +Configuration of that Operating Mode providing that Resource, even if +other Product Configurations do not provide that Resource. +Notwithstanding such exceptions, each Product must have at least one set +of Product Configurations of such Operating Modes that is able to pass +all the Conformance Tests. + +For example, a Product with an Operating Mode that controls a security +policy (i.e., Security Resource) which has one or more Product +Configurations that cause Conformance Tests to fail may be tested using +a Product Configuration that allows all Conformance Tests to pass. + +*{techID}1.2* A Product Configuration of an Operating Mode that causes the +Product to report only version, usage, or diagnostic information is +exempted from these compatibility rules. + +*{techID}1.3* An API Definition Product is exempt from all functional +testing requirements defined here, except the signature tests. + +*{techID}2* Some Conformance Tests may have properties that may be changed. +Properties that can be changed are identified in the configuration +interview. Apart from changing such properties and other allowed +modifications described in this User's Guide (if any), no source or +binary code for a Conformance Test may be altered in any way without +prior written permission. Any such allowed alterations to the +Conformance Tests will be provided via the Jakarta EE Specification Project +website and apply to all vendor compatible implementations. + +*{techID}3* The testing tools supplied as part of the Test Suite or as +updated by the Maintenance Lead must be used to certify compliance. + +*{techID}4* The Exclude List associated with the Test Suite cannot be +modified. + +*{techID}5* The Maintenance Lead can define exceptions to these Rules. Such +exceptions would be made available as above, and will apply to all vendor implementations. + +*{techID}6* All hardware and software component additions, deletions, and +modifications to a Documented supporting hardware/software platform, +that are not part of the Product but required for the Product to satisfy +the compatibility requirements, must be Documented and available to +users of the Product. + +For example, if a patch to a particular version of a supporting +operating system is required for the Product to pass the Conformance +Tests, that patch must be Documented and available to users of the +Product. + +*{techID}7* The Product must contain the full set of public and protected +classes and interfaces for all the Libraries. Those classes and +interfaces must contain exactly the set of public and protected methods, +constructors, and fields defined by the Specifications for those +Libraries. No subsetting, supersetting, or modifications of the public +and protected API of the Libraries are allowed except only as +specifically exempted by these Rules. + +*{techID}7.1* If a Product includes Technologies in addition to the +Technology Under Test, then it must contain the full set of combined +public and protected classes and interfaces. The API of the Product +must contain the union of the included Technologies. No further +modifications to the APIs of the included Technologies are allowed. + +ifdef::subset-allowed[] +*{techID}7.2* The Product may contain a subset of the classes and +interfaces for the Libraries. +endif::subset-allowed[] + +*{techID}8* Except for tests specifically required by this TCK to be rebuilt +(if any), the binary Conformance Tests supplied as part of the Test +Suite or as updated by the Maintenance Lead must be used to certify +compliance. + +*{techID}9* The functional programmatic behavior of any binary class or +interface must be that defined by the Specifications. + +include::rules.inc[] + +[[CJAIIBDJ]][[test-appeals-process]] + +2.3 Test Appeals Process +~~~~~~~~~~~~~~~~~~~~~~~~ + +Jakarta has a well established process for managing challenges to its +TCKs. Any implementor may submit a challenge to one or more tests in the +{TechnologyShortName} TCK as it relates to their implementation. Implementor +means the entity as a whole in charge of producing the final certified release. +*Challenges filed should represent the consensus of that entity*. + +2.3.1 Valid Challenges +^^^^^^^^^^^^^^^^^^^^^^ +Any test case (e.g., test class, @Test method), test case configuration (e.g., deployment descriptor), test beans, annotations, and other resources considered part of the TCK may be challenged. + +The following scenarios are considered in scope for test challenges: + +* Claims that a test assertion conflicts with the specification. +* Claims that a test asserts requirements over and above that of the specification. +* Claims that an assertion of the specification is not sufficiently implementable. +* Claims that a test is not portable or depends on a particular implementation. + +2.3.2 Invalid Challenges +^^^^^^^^^^^^^^^^^^^^^^^^ +The following scenarios are considered out of scope for test challenges and will be immediately closed if filed: + +* Challenging an implementation’s claim of passing a test. Certification is an honor system and these issues must be raised directly with the implementation. +* Challenging the usefulness of a specification requirement. The challenge process cannot be used to bypass the specification process and raise in question the need or relevance of a specification requirement. +* Claims the TCK is inadequate or missing assertions required by the specification. See the Improvement section, which is outside the scope of test challenges. +* Challenges that do not represent a consensus of the implementing community will be closed until such time that the community does agree or agreement cannot be made. The test challenge process is not the place for implementations to initiate their own internal discussions. +* Challenges to tests that are already excluded for any reason. +* Challenges that an excluded test should not have been excluded and should be re-added should be opened as a new enhancement request + +Test challenges must be made in writing via the {TechnologyShortName} specification project issue tracker +as described in link:#CJAJEAEI[Section 2.3.3, "TCK Test Appeals Steps."] + +All tests found to be invalid will be placed on the Exclude List +for that version of the {TechnologyShortName} TCK. + + +[[CJAJEAEI]][[tck-test-appeals-steps]] + +2.3.3 TCK Test Appeals Steps +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Challenges should be filed via the {TechnologyFullName} specification project’s issue tracker using the label `challenge` and include the following information: +* The relevant specification version and section number(s) +* The coordinates of the challenged test(s) +* The exact TCK and exclude list versions +* The implementation being tested, including name and company +* The full test name +* A full description of why the test is invalid and what the correct behavior is believed to be +* Any supporting material; debug logs, test output, test logs, run scripts, etc. + + + +2. Specification project evaluates the challenge. + +Challenges can be resolved by a specification project lead, or a project challenge triage team, after a consensus of the specification project committers is reached or attempts to gain consensus fails. +Specification projects may exercise lazy consensus, voting or any practice that follows the principles of Eclipse Foundation Development Process. +The expected timeframe for a response is two weeks or less. +If consensus cannot be reached by the specification project for a prolonged period of time, the default recommendation is to exclude the tests and address the dispute in a future revision of the specification. + +3. Accepted Challenges. + +A consensus that a test produces invalid results will result in the exclusion of that test from certification requirements, and an immediate update and release of an official distribution of the TCK including the new exclude list. The associated `challenge` issue must be closed with an `accepted` label to indicate it has been resolved. + +4. Rejected Challenges and Remedy. + +When a`challenge` issue is rejected, it must be closed with a label of `invalid` to indicate it has been rejected. +There appeal process for challenges rejected on technical terms is outlined in Escalation Appeal. +If, however, an implementer feels the TCK challenge process was not followed, an appeal issue should be filed with specification project’s TCK issue tracker using the label `challenge-appeal`. +A project lead should escalate the issue with the Jakarta EE Specification Committee via email (jakarta.ee-spec@eclipse.org). +The committee will evaluate the matter purely in terms of due process. +If the appeal is accepted, the original TCK challenge issue will be reopened and a label of `appealed-challenge` added, along with a discussion of the appeal decision, and the `challenge-appeal` issue with be closed. +If the appeal is rejected, the `challenge-appeal` issue should closed with a label of `invalid`. + +5. Escalation Appeal. + +If there is a concern that a TCK process issue has not been resolved satisfactorily, the +https://www.eclipse.org/projects/dev_process/#6_5_Grievance_Handling[Eclipse Development Process Grievance Handling] procedure should be followed to escalate the resolution. Note that this is not a mechanism to attempt to handle implementation specific issues. + + +[[CJAJECIE]][[specifications-for-technology]] + +2.4 Specifications for {TechnologyFullName} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The {TechnologyFullName} specification is available from the specification +project web-site: {SpecificationURL}. + +[[CJABAHGI]][[libraries-for-technology]] + +2.5 Libraries for {TechnologyFullName} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following is a list of the packages comprising the required class +libraries for {TechnologyShortName} {TechnologyVersion}: + +include::packages.inc[] + +For the latest list of packages, also see: + +{SpecificationURL} diff --git a/websocket/docs/userguide/src/main/jbake/content/rules.inc b/websocket/docs/userguide/src/main/jbake/content/rules.inc new file mode 100644 index 0000000000..b5a250f697 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/rules.inc @@ -0,0 +1,78 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +Most technologies will only need the compatibility rules in rules.adoc. +Some technologies will need additional rules. If they're needed, +remove the comment block delimiters below and update the rules as +appropriate. You may need to adjust the rule numbers to avoid gaps. + +The first comment block below is additional rules needed by JPA. + +The second comment block below is additional rules needed by +JSP and Servlet. (And EJB, if it had a standalone TCK.) + +The third comment block below is additional rules that apply +to any technology that defines deployment descriptors. + +The fourth comment block is special rules that apply only to JSP. + +NOTE: This set of examples is NOT complete, but should be. +/////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////// +*{techID}10* The Runtime must report an error when processing a +Configuration Descriptor that does not conform to the Specifications. + +*{techID}11* An error must be reported when processing a configuration +descriptor that includes a Java Persistence QL expression that does not +conform to the Specifications. + +*{techID}12* The presence of an XML comment in a Configuration +Descriptor, when processed by the Runtime, must not cause the +functional programmatic behavior of the Runtime to vary from the +functional programmatic behavior of the Runtime in the absence of that +comment. +/////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////// +*{techID}10* Each Container must make technically accessible all Java SE +Runtime interfaces and functionality, as defined by the Specifications, +to programs running in the Container, except only as specifically +exempted by these Rules. + +*{techID}10.1* Containers may impose security constraints, as defined by +the Specifications. +/////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////// +*{techID}11* A Deployment Tool must report an error when processing a +Configuration Descriptor that does not conform to the Specifications. + +*{techID}12* The presence of an XML comment in a Configuration +Descriptor, when processed by a Deployment Tool, must not cause the +functional programmatic behavior of the Deployment Tool to vary from +the functional programmatic behavior of the Deployment Tool in the +absence of that comment. +/////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////// +*{techID}11* A web Container must report an error, as defined by the +Specifications, when processing a JSP Page that does not conform to the +Specifications. + +*{techID}12* The presence of a Java language comment or Java language +directive in a JSP Page that specifies â€java†as the scripting +language, when processed by a web Container, must not cause the +functional programmatic behavior of that JSP Page to vary from the +functional programmatic behavior of that JSP Page in the absence of +that Java language comment or Java language directive. + +*{techID}13* The contents of any fixed template data (defined by the +Specifications) in a JSP Page, when processed by a web Container, must +not affect the functional programmatic behavior of that JSP Page, +except as defined by the Specifications. + +*{techID}14* The functional programmatic behavior of a JSP Page that +specifies â€java†as the scripting language must be equivalent to the +functional programmatic behavior of the JSP Page Implementation Class +constructed from that JSP Page. +/////////////////////////////////////////////////////////////////////// diff --git a/websocket/docs/userguide/src/main/jbake/content/tck-packages.inc b/websocket/docs/userguide/src/main/jbake/content/tck-packages.inc new file mode 100644 index 0000000000..5ca50031cc --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/tck-packages.inc @@ -0,0 +1,7 @@ +** JDOM 1.1.3 + +** Apache Commons HTTP Client 3.1 + +** Apache Commons Logging 1.1.3 + +** Apache Commons Codec 1.9 diff --git a/websocket/docs/userguide/src/main/jbake/content/title.adoc b/websocket/docs/userguide/src/main/jbake/content/title.adoc new file mode 100644 index 0000000000..232172d727 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/title.adoc @@ -0,0 +1,42 @@ +type=page +status=published +title=TCK User's Guide for Technology Implementors +next=preface.html +prev=toc.html +~~~~~~ +include::attributes.conf[] + +TCK User's Guide for {TechnologyFullName}, Release {TechnologyVersion} for Jakarta EE +===================================================================================== + +[[eclipse-foundation]] +Eclipse Foundation +------------------ + +Technology Compatibility Kit User's Guide for {TechnologyFullName} + +Release {TechnologyVersion} for Jakarta EE + +{ReleaseDate} + +[[sthref1]] + +''''' + +Technology Compatibility Kit User's Guide for {TechnologyFullName}, +Release {TechnologyVersion} for Jakarta EE + +Copyright © {CopyrightDates} Oracle and/or its affiliates. All rights reserved. + +This program and the accompanying materials are made available under +the terms of the Eclipse Public License v. 2.0, which is available at +http://www.eclipse.org/legal/epl-2.0. + +SPDX-License-Identifier: EPL-2.0 + +Oracle and Java are registered trademarks of Oracle and/or its +affiliates. Other names may be trademarks of their respective owners. + +include::title.inc[] + + diff --git a/websocket/docs/userguide/src/main/jbake/content/title.inc b/websocket/docs/userguide/src/main/jbake/content/title.inc new file mode 100644 index 0000000000..25bf47e08d --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/title.inc @@ -0,0 +1,11 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +This is included at the tail end of the Title page. +The following section should be customized for the technology. +This is provided to allow each technology to customize legacy acronym names +that are used in this TCK. +Be sure to customize LegacyAcronym in attributes.conf +Add additional lines as needed for acronyms found in your TCK user guide. +/////////////////////////////////////////////////////////////////////// + +References in this document to {LegacyAcronym} refer to the {TechnologyFullName} unless otherwise noted. diff --git a/websocket/docs/userguide/src/main/jbake/content/using-examples.inc b/websocket/docs/userguide/src/main/jbake/content/using-examples.inc new file mode 100644 index 0000000000..db68a077fd --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/using-examples.inc @@ -0,0 +1,50 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +These CLI examples can be customized as necessary. +/////////////////////////////////////////////////////////////////////// + +Start the Junit tests using the following command: + +-- +[source,oac_no_warn] +---- +mvn verify +---- +-- + + +[[GCMCU]] + +Example 5-1 {TechnologyShortName} TCK Signature Tests + +To run the {TechnologyShortName} TCK signature tests, enter the +following commands: + +[source,subs="attributes"] +---- +mvn verify -Dit.test=ee.jakarta.tck.ws.rs.signaturetest.** +---- + +[[GCMBV]] + + +Example 5-2 Single Test Directory + +To run a single test directory, enter the following commands: + +[source,subs="attributes"] +---- +mvn verify -Dit.test={singleTestDirectoryExample}.** +---- + +[[GCMCA]] + + +Example 5-3 Subset of Test Directories + +To run a subset of test directories, enter the following commands: + +[source,subs="attributes"] +---- +mvn verify -Dit.test={subsetTestDirectoryExample}.** +---- \ No newline at end of file diff --git a/websocket/docs/userguide/src/main/jbake/content/using.adoc b/websocket/docs/userguide/src/main/jbake/content/using.adoc new file mode 100644 index 0000000000..1be3ac9575 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/content/using.adoc @@ -0,0 +1,146 @@ +type=page +status=published +title=Executing Tests +next=debug.html +prev=config.html +~~~~~~ +include::attributes.conf[] +Executing Tests +=============== + +[[GBFWO]] + + +[[executing-tests]] +5 Executing Tests +----------------- + +The {TechnologyShortName} TCK uses the Junit and Jboss Arquillian +frameworks to execute the tests. + +This chapter includes the following topics: + +* link:#GBFUZ[Starting Test] +* link:#GBFWM[Running a Subset of the Tests] +* link:#GBFVK[Test Reports] + + +[NOTE] +======================================================================= + +The {TechnologyShortName} TCK is not depended on any particular build tool to +run the tests. It will be convenient and advisable to create a +Apache Maven project to setup and run the TCK. This chapter will +henceforth use instructions and steps to provide setup with Apache +Maven as a build tool. + +======================================================================= + +ifdef::rebuild[] +As explained in link:rebuild.html#GCLIZ[Appendix B, "Packaging the +Test Applications in Servlet-Compliant WAR +Files With VI-Specific Information,"] the {TechnologyShortName} TCK +introduces the concept of repackaging the TCK tests. +endif::rebuild[] + + +[[GBFUZ]][[starting-test]] + +5.1 Starting the tests +~~~~~~~~~~~~~~~~~~~~~ + + +The {TechnologyShortName} TCK can be run from the command line +in your shell environment by executing the TCK jar. + +[NOTE] +======================================================================= + +The `mvn` command referenced in the following +two procedures and elsewhere in this guide is the Apache Maven +build tool, which will need to be downloaded separately. + +======================================================================= + + + +[[GBFVW]][[to-start-in-command-line-mode]] + +5.1.1 To Start in Command-Line Mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +include::using-examples.inc[] + +[[GBFWM]][[running-a-subset-of-the-tests]] + +5.2 Running a Subset of the Tests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Use the following modes to run a subset of the tests: + +* link:#GBFWK[Section 5.2.1, "To Run a Subset of Tests in Command-Line Mode"] + +[[GBFWK]][[to-run-a-subset-of-tests-in-cmd-mode]] + +5.2.1 To Run a Subset of Tests in Command-Line Mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +Start the test run by executing the following command: + + +[source,subs="attributes"] +---- +mvn verify -Dit.test={subsetTestDirectoryExample} +---- + +The tests in the directory and its subdirectories are run. + + +[[GCLRR]][[running-the-tck-against-the-ri]] + +5.3 Running the TCK Against another CI +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Some test scenarios are designed to ensure that the configuration and deployment of +all the prebuilt {TechnologyShortName} TCK tests against one Compatible +Implementation are successful operating with other compatible implementations, and that the TCK is ready for +compatibility testing against the Vendor and Compatible Implementations. + +1. Verify that you have followed the configuration instructions in +link:config.html#GBFVU[Section 4.1, "Configuring Your Environment to Run +the TCK Against the Compatible Implementation."] +2. If required, verify that you have completed the steps in +link:config.html#GCLIW[Section 4.3.2, "Deploying the Prebuilt Archives."] +3. Run the tests, as described in link:#GBFUZ[Section 5.1, "Starting +the tests,"] and, if desired, link:#GBFWM[Section 5.2, "Running a Subset +of the Tests."] + +[[GCLRZ]][[running-the-tck-against-a-vendors-implementation]] + +5.4 Running the TCK Against a Vendor's Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This test scenario is one of the compatibility test phases that all +Vendors must pass. + +1. Verify that you have followed the configuration instructions in +link:config.html#GCLHU[Section 4.2, "Configuring Your Environment to +Repackage and Run the TCK Against the Vendor Implementation."] +2. If required, verify that you have completed the steps in +link:config.html#GCLIL[Section 4.3.3, "Deploying the +Test Applications Against the Vendor Implementation."] +3. Run the tests, as described in link:#GBFUZ[Section 5.1, "Starting +the tests,"] and, if desired, link:#GBFWM[Section 5.2, "Running a Subset +of the Tests."] + +[[GBFVK]][[test-reports]] + +5.5 Test Reports +~~~~~~~~~~~~~~~~ + +A set of report files is created for every test run. These report files +can be found in the target directory that the test is run. After a test run is +completed, the Junit framework writes reports for the test run. + +include::using.inc[] + diff --git a/websocket/docs/userguide/src/main/jbake/content/using.inc b/websocket/docs/userguide/src/main/jbake/content/using.inc new file mode 100644 index 0000000000..e69de29bb2 diff --git a/websocket/docs/userguide/src/main/jbake/jbake.properties b/websocket/docs/userguide/src/main/jbake/jbake.properties new file mode 100644 index 0000000000..05c7056f0a --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/jbake.properties @@ -0,0 +1,24 @@ +# +# Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License v. 2.0, which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# This Source Code may also be made available under the following Secondary +# Licenses when the conditions for such availability set forth in the +# Eclipse Public License v. 2.0 are satisfied: GNU General Public License, +# version 2 with the GNU Classpath Exception, which is available at +# https://www.gnu.org/software/classpath/license.html. +# +# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 +# + +site.host=http://jbake.org +render.tags=false +render.sitemap=false +render.archive=false +render.feed=false +render.index=false +asciidoctor.option.safe=0 +asciidoctor.attributes.export=true \ No newline at end of file diff --git a/websocket/docs/userguide/src/main/jbake/templates/footer.ftl b/websocket/docs/userguide/src/main/jbake/templates/footer.ftl new file mode 100644 index 0000000000..746cbf1ccd --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/templates/footer.ftl @@ -0,0 +1,44 @@ +<#-- a footer template fragment included in the page template --> +
+ + + + + + + + + <#if content.prev??> + + + + <#if content.next??> + + + + + +
+ + + Previous + + + + + Next + + + + + Contents + +
+ + + Eclipse Foundation Logo  + Copyright © 2017, 2021 Oracle and/or its affiliates. All rights reserved. + + + + diff --git a/websocket/docs/userguide/src/main/jbake/templates/header.ftl b/websocket/docs/userguide/src/main/jbake/templates/header.ftl new file mode 100644 index 0000000000..50b72ae8d0 --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/templates/header.ftl @@ -0,0 +1,54 @@ + +<#-- a header template fragment included in the page template --> + + + + <#if (content.title)??><#escape x as x?xml>${content.title}</#escape></#if> + + + + + + + + + +
+ ${content.title}
+
+
+ + + + + + + + + <#if content.prev??> + + + + <#if content.next??> + + + + + +
+ + + Previous + + + + + Next + + + + + Contents + +
+ diff --git a/websocket/docs/userguide/src/main/jbake/templates/menu.ftl b/websocket/docs/userguide/src/main/jbake/templates/menu.ftl new file mode 100644 index 0000000000..888c03dcff --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/templates/menu.ftl @@ -0,0 +1 @@ +<#-- a menu bar template fragment included in the page template --> \ No newline at end of file diff --git a/websocket/docs/userguide/src/main/jbake/templates/page.ftl b/websocket/docs/userguide/src/main/jbake/templates/page.ftl new file mode 100644 index 0000000000..eca51db35d --- /dev/null +++ b/websocket/docs/userguide/src/main/jbake/templates/page.ftl @@ -0,0 +1,8 @@ +<#-- a top level page layout template --> + +<#include "header.ftl"> +<#include "menu.ftl"> + +${content.body} + +<#include "footer.ftl"> \ No newline at end of file diff --git a/websocket/docs/userguide/src/theme/jakartaee-theme.yml b/websocket/docs/userguide/src/theme/jakartaee-theme.yml new file mode 100644 index 0000000000..6092a2f5c9 --- /dev/null +++ b/websocket/docs/userguide/src/theme/jakartaee-theme.yml @@ -0,0 +1,299 @@ +# +# Following is the asciidoctor-pdf default theme [1], with small +# customizations, mostly for header and footer, marked "EE". +# +# [1] https://github.com/asciidoctor/asciidoctor-pdf/blob/master/data/themes/default-theme.yml +# +font: + catalog: + # Noto Serif supports Latin, Latin-1 Supplement, Latin Extended-A, Greek, Cyrillic, Vietnamese & an assortment of symbols + Noto Serif: + normal: notoserif-regular-subset.ttf + bold: notoserif-bold-subset.ttf + italic: notoserif-italic-subset.ttf + bold_italic: notoserif-bold_italic-subset.ttf + # M+ 1mn supports ASCII and the circled numbers used for conums + M+ 1mn: + normal: mplus1mn-regular-ascii-conums.ttf + bold: mplus1mn-bold-ascii.ttf + italic: mplus1mn-italic-ascii.ttf + bold_italic: mplus1mn-bold_italic-ascii.ttf + # M+ 1p supports Latin, Latin-1 Supplement, Latin Extended, Greek, Cyrillic, Vietnamese, Japanese & an assortment of symbols + # It also provides arrows for ->, <-, => and <= replacements in case these glyphs are missing from font + M+ 1p Fallback: + normal: mplus1p-regular-fallback.ttf + bold: mplus1p-regular-fallback.ttf + italic: mplus1p-regular-fallback.ttf + bold_italic: mplus1p-regular-fallback.ttf + fallbacks: + - M+ 1p Fallback +page: + background_color: ffffff + layout: portrait + margin: [0.5in, 0.67in, 0.67in, 0.67in] + # margin_inner and margin_outer keys are used for recto/verso print margins when media=prepress + margin_inner: 0.75in + margin_outer: 0.59in + #size: A4 # EE + size: Letter # EE +base: + align: justify + # color as hex string (leading # is optional) + font_color: 333333 + # color as RGB array + #font_color: [51, 51, 51] + # color as CMYK array (approximated) + #font_color: [0, 0, 0, 0.92] + #font_color: [0, 0, 0, 92%] + font_family: Noto Serif + # choose one of these font_size/line_height_length combinations + #font_size: 14 + #line_height_length: 20 + #font_size: 11.25 + #line_height_length: 18 + #font_size: 11.2 + #line_height_length: 16 + font_size: 10.5 + #line_height_length: 15 + # correct line height for Noto Serif metrics + line_height_length: 12 + #font_size: 11.25 + #line_height_length: 18 + line_height: $base_line_height_length / $base_font_size + font_size_large: round($base_font_size * 1.25) + font_size_small: round($base_font_size * 0.85) + font_size_min: $base_font_size * 0.75 + font_style: normal + border_color: eeeeee + border_radius: 4 + border_width: 0.5 +# FIXME vertical_rhythm is weird; we should think in terms of ems +#vertical_rhythm: $base_line_height_length * 2 / 3 +# correct line height for Noto Serif metrics (comes with built-in line height) +vertical_rhythm: $base_line_height_length +horizontal_rhythm: $base_line_height_length +# QUESTION should vertical_spacing be block_spacing instead? +vertical_spacing: $vertical_rhythm +link: + font_color: 428bca +# literal is currently used for inline monospaced in prose and table cells +literal: + font_color: b12146 + font_family: M+ 1mn +menu_caret_content: " \u203a " +heading: + align: left + #font_color: 181818 + font_color: $base_font_color + font_family: $base_font_family + font_style: bold + # h1 is used for part titles (book doctype) or the doctitle (article doctype) + #h1_font_size: floor($base_font_size * 2.6) # EE + h1_font_size: floor($base_font_size * 2.5) # EE, squeeze title onto one line + # h2 is used for chapter titles (book doctype only) + h2_font_size: floor($base_font_size * 2.15) + h3_font_size: round($base_font_size * 1.7) + h4_font_size: $base_font_size_large + h5_font_size: $base_font_size + h6_font_size: $base_font_size_small + #line_height: 1.4 + # correct line height for Noto Serif metrics (comes with built-in line height) + line_height: 1 + margin_top: $vertical_rhythm * 0.4 + margin_bottom: $vertical_rhythm * 0.9 +title_page: + align: right + logo: + top: 10% + title: + top: 55% + font_size: $heading_h1_font_size + font_color: 999999 + line_height: 0.9 + subtitle: + font_size: $heading_h3_font_size + font_style: bold_italic + line_height: 1 + authors: + margin_top: $base_font_size * 1.25 + font_size: $base_font_size_large + font_color: 181818 + revision: + margin_top: $base_font_size * 1.25 +block: + margin_top: 0 + margin_bottom: $vertical_rhythm +caption: + align: left + font_size: $base_font_size * 0.95 + font_style: italic + # FIXME perhaps set line_height instead of / in addition to margins? + margin_inside: $vertical_rhythm / 3 + #margin_inside: $vertical_rhythm / 4 + margin_outside: 0 +lead: + font_size: $base_font_size_large + line_height: 1.4 +abstract: + font_color: 5c6266 + font_size: $lead_font_size + line_height: $lead_line_height + font_style: italic + first_line_font_style: bold + title: + align: center + font_color: $heading_font_color + font_family: $heading_font_family + font_size: $heading_h4_font_size + font_style: $heading_font_style +admonition: + column_rule_color: $base_border_color + column_rule_width: $base_border_width + padding: [0, $horizontal_rhythm, 0, $horizontal_rhythm] + #icon: + # tip: + # name: fa-lightbulb-o + # stroke_color: 111111 + # size: 24 + label: + text_transform: uppercase + font_style: bold +blockquote: + font_color: $base_font_color + font_size: $base_font_size_large + border_color: $base_border_color + border_width: 5 + # FIXME disable negative padding bottom once margin collapsing is implemented + padding: [0, $horizontal_rhythm, $block_margin_bottom * -0.75, $horizontal_rhythm + $blockquote_border_width / 2] + cite_font_size: $base_font_size_small + cite_font_color: 999999 +# code is used for source blocks (perhaps change to source or listing?) +code: + font_color: $base_font_color + font_family: $literal_font_family + font_size: ceil($base_font_size) + padding: $code_font_size + line_height: 1.25 + # line_gap is an experimental property to control how a background color is applied to an inline block element + line_gap: 3.8 + background_color: f5f5f5 + border_color: cccccc + border_radius: $base_border_radius + border_width: 0.75 +conum: + font_family: M+ 1mn + font_color: $literal_font_color + font_size: $base_font_size + line_height: 4 / 3 +example: + border_color: $base_border_color + border_radius: $base_border_radius + border_width: 0.75 + background_color: ffffff + # FIXME reenable padding bottom once margin collapsing is implemented + padding: [$vertical_rhythm, $horizontal_rhythm, 0, $horizontal_rhythm] +image: + align: left +prose: + margin_top: $block_margin_top + margin_bottom: $block_margin_bottom +sidebar: + background_color: eeeeee + border_color: e1e1e1 + border_radius: $base_border_radius + border_width: $base_border_width + # FIXME reenable padding bottom once margin collapsing is implemented + padding: [$vertical_rhythm, $vertical_rhythm * 1.25, 0, $vertical_rhythm * 1.25] + title: + align: center + font_color: $heading_font_color + font_family: $heading_font_family + font_size: $heading_h4_font_size + font_style: $heading_font_style +thematic_break: + border_color: $base_border_color + border_style: solid + border_width: $base_border_width + margin_top: $vertical_rhythm * 0.5 + margin_bottom: $vertical_rhythm * 1.5 +description_list: + term_font_style: bold + term_spacing: $vertical_rhythm / 4 + description_indent: $horizontal_rhythm * 1.25 +outline_list: + indent: $horizontal_rhythm * 1.5 + #marker_font_color: 404040 + # NOTE outline_list_item_spacing applies to list items that do not have complex content + item_spacing: $vertical_rhythm / 2 +table: + background_color: $page_background_color + #head_background_color: + #head_font_color: $base_font_color + head_font_style: bold + #body_background_color: + body_stripe_background_color: f9f9f9 + foot_background_color: f0f0f0 + border_color: dddddd + border_width: $base_border_width + cell_padding: 3 +toc: + indent: $horizontal_rhythm + line_height: 1.4 + dot_leader: + #content: ". " + font_color: a9a9a9 + #levels: 2 3 +# NOTE in addition to footer, header is also supported +footer: + font_size: $base_font_size_small + # NOTE if background_color is set, background and border will span width of page + #border_color: dddddd # EE + #border_width: 0.25 # EE + height: $base_line_height_length * 2.5 + line_height: 1 + padding: [$base_line_height_length / 2, 1, 0, 1] + vertical_align: top + #image_vertical_align: or + # additional attributes for content: + # * {page-count} + # * {page-number} + # * {document-title} + # * {document-subtitle} + # * {chapter-title} + # * {section-title} + # * {section-or-chapter-title} + recto: + #columns: "<50% =0% >50%" + right: + #content: '{page-number}' # EE + #content: '{section-or-chapter-title} | {page-number}' + #content: '{document-title} | {page-number}' + content: '{document-title}{nbsp}{nbsp}{nbsp} *{page-number}*' # EE + #center: + # content: '{page-number}' + left: # EE + content: '{status}' # EE + verso: + #columns: $footer_recto_columns + left: + #content: $footer_recto_right_content # EE + #content: '{page-number} | {chapter-title}' + content: '*{page-number}* {nbsp}{nbsp}{nbsp}{document-title}' # EE + #center: + # content: '{page-number}' + right: # EE + content: '{status}' # EE +header: # EE + font_size: $base_font_size_small # EE + border_color: dddddd # EE + border_width: 0.25 # EE + height: $base_line_height_length * 2.5 # EE + line_height: 1 # EE + padding: [$base_line_height_length / 2, 1, 0, 1] # EE + vertical_align: top # EE + recto: # EE + right: # EE + content: '{section-or-chapter-title}' # EE + verso: # EE + left: # EE + content: '{section-or-chapter-title}' # EE diff --git a/websocket/platform-tests/pom.xml b/websocket/platform-tests/pom.xml new file mode 100644 index 0000000000..9689d3a8ed --- /dev/null +++ b/websocket/platform-tests/pom.xml @@ -0,0 +1,77 @@ + + + + 4.0.0 + + jakarta.tck + websocket-tck + 2.2.0 + + websocket-tck-platform-tests + jar + + + ${project.groupId} + websocket-tck-common + ${project.version} + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + none + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + + src/main/java + + **/*.xml + **/*.map + **/*.txt + **/*.sig* + + + + + + + + diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSClientIT.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSClientIT.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSConstructorServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSConstructorServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSConstructorServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSConstructorServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSFieldServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSFieldServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSFieldServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSFieldServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSInjectableServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSInjectableServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSInjectableServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSInjectableServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSMethodServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSMethodServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSMethodServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/cdi/WSMethodServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/AppConfig.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/AppConfig.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/GetUserPrincipalConfigurator.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/GetUserPrincipalConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/GetUserPrincipalConfigurator.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/GetUserPrincipalConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/IsUserInRoleConfigurator.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/IsUserInRoleConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/IsUserInRoleConfigurator.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/IsUserInRoleConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCClientIT.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCClientIT.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCGetUserPrincipalServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCGetUserPrincipalServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCGetUserPrincipalServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCGetUserPrincipalServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCIsUserInRoleServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCIsUserInRoleServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCIsUserInRoleServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCIsUserInRoleServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCPostUnauthEchoServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCPostUnauthEchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCPostUnauthEchoServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCPostUnauthEchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCUnauthEchoServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCUnauthEchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCUnauthEchoServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/WSCUnauthEchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/CloseHttpSessionConfigurator.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/CloseHttpSessionConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/CloseHttpSessionConfigurator.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/CloseHttpSessionConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/TCKRequestListener.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/TCKRequestListener.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/TCKRequestListener.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/TCKRequestListener.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/WSCClientIT.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/WSCClientIT.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/WSCCloseHttpSessionServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/WSCCloseHttpSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/WSCCloseHttpSessionServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/WSCCloseHttpSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/AppConfig.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/AppConfig.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/GetUserPrincipalConfigurator.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/GetUserPrincipalConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/GetUserPrincipalConfigurator.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/GetUserPrincipalConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/IsUserInRoleConfigurator.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/IsUserInRoleConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/IsUserInRoleConfigurator.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/IsUserInRoleConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCClientIT.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCClientIT.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCGetUserPrincipalServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCGetUserPrincipalServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCGetUserPrincipalServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCGetUserPrincipalServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCIsUserInRoleServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCIsUserInRoleServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCIsUserInRoleServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/WSCIsUserInRoleServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/GetHttpSessionConfigurator.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/GetHttpSessionConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/GetHttpSessionConfigurator.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/GetHttpSessionConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/TCKRequestListener.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/TCKRequestListener.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/TCKRequestListener.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/TCKRequestListener.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/WSCClientIT.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/WSCClientIT.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/WSCGetHttpSessionServer.java b/websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/WSCGetHttpSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/WSCGetHttpSessionServer.java rename to websocket/platform-tests/src/main/java/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/session/WSCGetHttpSessionServer.java diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/platform/cdi/beans.xml b/websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/cdi/beans.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/platform/cdi/beans.xml rename to websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/cdi/beans.xml diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/web.xml b/websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/web.xml rename to websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/web.xml diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/wsc_platform_jakarta_websocket_handshakeresponse_authenticated_web.war.sun-web.xml b/websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/wsc_platform_jakarta_websocket_handshakeresponse_authenticated_web.war.sun-web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/wsc_platform_jakarta_websocket_handshakeresponse_authenticated_web.war.sun-web.xml rename to websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticated/wsc_platform_jakarta_websocket_handshakeresponse_authenticated_web.war.sun-web.xml diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/web.xml b/websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/web.xml rename to websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/web.xml diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/wsc_platform_jakarta_websocket_handshakeresponse_authenticated_logoff_web.war.sun-web.xml b/websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/wsc_platform_jakarta_websocket_handshakeresponse_authenticated_logoff_web.war.sun-web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/wsc_platform_jakarta_websocket_handshakeresponse_authenticated_logoff_web.war.sun-web.xml rename to websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedlogoff/wsc_platform_jakarta_websocket_handshakeresponse_authenticated_logoff_web.war.sun-web.xml diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/web.xml b/websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/web.xml rename to websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/web.xml diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/wsc_platform_jakarta_websocket_handshakeresponse_ssl_web.war.sun-web.xml b/websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/wsc_platform_jakarta_websocket_handshakeresponse_ssl_web.war.sun-web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/wsc_platform_jakarta_websocket_handshakeresponse_ssl_web.war.sun-web.xml rename to websocket/platform-tests/src/main/resources/com/sun/ts/tests/websocket/platform/jakarta/websocket/server/handshakerequest/authenticatedssl/wsc_platform_jakarta_websocket_handshakeresponse_ssl_web.war.sun-web.xml diff --git a/websocket/pom.xml b/websocket/pom.xml index 2c6e85c6d6..db08a2f220 100644 --- a/websocket/pom.xml +++ b/websocket/pom.xml @@ -19,19 +19,26 @@ --> 4.0.0 - jakarta.tck project 11.0.0-SNAPSHOT + ../pom.xml - websocket-tck - jar - - websocket + 2.2.0 + pom + websocket tck websocket tck tests - + + + common + platform-tests + spec-tests + tck-dist + 1.7.0.Alpha14 5.9.1 @@ -67,57 +74,79 @@ ${arquillian.junit} - jakarta.tck + ${project.groupId} common - ${project.version} + 11.0.0-SNAPSHOT + + + ${project.groupId} + libutil + 11.0.0-SNAPSHOT + + + ${project.groupId} + signaturetest + 11.0.0-SNAPSHOT + + + ${project.groupId} + runtime + 11.0.0-SNAPSHOT - - - - tck-build - - true - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - org.apache.maven.plugins - maven-surefire-plugin - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - - - src/main/java - - **/*.xml - - - - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - - jar - - - - - - - - + + ${bundle-name}-${project.version} + + + com.diffplug.spotless + spotless-maven-plugin + 2.36.0 + + + + pom.xml + + + 4 + + recommended_2008_06 + + true + + true + + true + + + + + + check-spotless-poms + + check + + validate + + + + + maven-javadoc-plugin + + none + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + + + diff --git a/websocket/spec-tests/pom.xml b/websocket/spec-tests/pom.xml new file mode 100644 index 0000000000..7047e2cf4c --- /dev/null +++ b/websocket/spec-tests/pom.xml @@ -0,0 +1,117 @@ + + + + 4.0.0 + + jakarta.tck + websocket-tck + 2.2.0 + + websocket-tck-spec-tests + jar + + + + org.apache.maven.plugins + maven-javadoc-plugin + + none + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + + + maven-dependency-plugin + + + + copy-dependencies + + prepare-package + + jakarta.tck + ${project.build.directory} + + + + + + com.diffplug.spotless + spotless-maven-plugin + 2.36.0 + + + + pom.xml + + + 4 + + recommended_2008_06 + + true + + true + + true + + + + + + check-spotless-poms + + check + + validate + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.2.0 + + + + src/main/java + + **/*.xml + **/*.map + **/*.txt + **/*.sig* + + + + + + + + diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/clientendpointconfig/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/clientendpointconfig/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/clientendpointconfig/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/clientendpointconfig/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/closereason/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/closereason/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/closereason/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/closereason/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/decodeexception/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/decodeexception/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/decodeexception/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/decodeexception/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/deploymentException/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/deploymentException/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/deploymentException/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/deploymentException/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/encodeexception/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/encodeexception/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/encodeexception/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/encodeexception/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/server/serverendpointconfig/TCKEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/server/serverendpointconfig/TCKEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/server/serverendpointconfig/TCKEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/server/serverendpointconfig/TCKEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/server/serverendpointconfig/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/server/serverendpointconfig/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/server/serverendpointconfig/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/server/serverendpointconfig/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/websocketcontainer/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/websocketcontainer/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/websocketcontainer/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/api/jakarta/websocket/websocketcontainer/WSClientIT.java diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/TCKExtension.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/TCKExtension.java new file mode 100644 index 0000000000..6e6e353c6c --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/TCKExtension.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import jakarta.websocket.Extension; + +public class TCKExtension implements Extension { + + private final String name; + + private final List parameters; + + public TCKExtension(String name) { + this(name, null); + } + + public TCKExtension(String name, List parameters) { + if (name == null || name.length() == 0) { + throw new IllegalArgumentException(); + } + + this.name = name; + if (parameters != null) { + this.parameters = Collections.unmodifiableList(new ArrayList<>(parameters)); + } else { + this.parameters = Collections.unmodifiableList(Collections.emptyList()); + } + } + + @Override + public String getName() { + return name; + } + + @Override + public List getParameters() { + return parameters; + } + + public static class TCKParameter implements Parameter { + + private final String name; + + private final String value; + + /** + * Create {@link Parameter} with name and value. + * + * @param name parameter name. + * @param value parameter value. + */ + public TCKParameter(String name, String value) { + this.name = name; + this.value = value; + } + + @Override + public String getName() { + return name; + } + + @Override + public String getValue() { + return value; + } + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedByteBufferClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedByteBufferClientEndpoint.java new file mode 100644 index 0000000000..24935e67d1 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedByteBufferClientEndpoint.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2015, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import java.nio.ByteBuffer; + +/** + * @since 1.11 + */ +public class AnnotatedByteBufferClientEndpoint extends AnnotatedClientEndpoint { + + public AnnotatedByteBufferClientEndpoint() { + super(new ByteBufferClientEndpoint()); + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedClientEndpoint.java new file mode 100644 index 0000000000..1f0cf9a534 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedClientEndpoint.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import java.util.concurrent.CountDownLatch; + +import jakarta.websocket.CloseReason; +import jakarta.websocket.EndpointConfig; +import jakarta.websocket.OnClose; +import jakarta.websocket.OnError; +import jakarta.websocket.OnMessage; +import jakarta.websocket.OnOpen; +import jakarta.websocket.Session; +import jakarta.websocket.WebSocketContainer; + +/** + * For tests where the annotated client endpoint is to be tested, this + * predefined endpoint can be used. Though merely a bridge to a ClientEndpoint + * which can be used to connect to server using it in + * {@link WebSocketContainer#connectToServer(jakarta.websocket.Endpoint, jakarta.websocket.ClientEndpointConfig, java.net.URI)} + * , this annotated endpoint is used to test the {@link OnMessage}, + * {@link OnError}, {@link OnOpen}, and {@link OnClose} are being called. + * + *

+ * Note that {@link ClientEndpoint} annotation is to be add to subclasses, and + * {@link OnMessage}, {@link OnError}, {@link OnOpen}, and {@link OnClose} are + * to be overridden when convenient. + */ +public abstract class AnnotatedClientEndpoint { + + protected ClientEndpoint clientEndpoint; + + public AnnotatedClientEndpoint(ClientEndpoint endpoint) { + this.clientEndpoint = endpoint; + } + + // @OnOpen + public void onOpen(Session session, EndpointConfig config) { + clientEndpoint.onOpen(session, config, false); + } + + // @OnMessage + public void onMessage(DATATYPE msg) { + clientEndpoint.onMessage(msg); + } + + // @OnClose + public void onClose(Session session, CloseReason closeReason) { + clientEndpoint.onClose(session, closeReason); + } + + // @OnError + public void onError(Session session, Throwable t) { + clientEndpoint.onError(session, t); + } + + public CountDownLatch getCountDownLatch() { + return ClientEndpoint.getCountDownLatch(); + } + + public StringBuffer getMessageBuilder() { + return ClientEndpoint.getMessageBuilder(); + } + + public Throwable getLastError() { + return ClientEndpoint.getLastError(); + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedStringClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedStringClientEndpoint.java new file mode 100644 index 0000000000..6fe37c1682 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/AnnotatedStringClientEndpoint.java @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +public abstract class AnnotatedStringClientEndpoint extends AnnotatedClientEndpoint { + + public AnnotatedStringClientEndpoint() { + super(new StringClientEndpoint()); + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheRequestAdapter.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheRequestAdapter.java new file mode 100644 index 0000000000..a0c9881a89 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheRequestAdapter.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import com.sun.ts.tests.common.webclient.http.HttpRequest; + +public class ApacheRequestAdapter extends HttpRequest { + + public ApacheRequestAdapter(String protocol, String requestLine, String host, int port) { + super("GET " + requestLine.replace(protocol + "://", "http://") + " HTTP/1.1", host, port); + } + + /** + * getRequestPath returns the request path for this particular + * request. + * + * @return String request path + */ + @Override + public String getRequestPath() { + return super.getRequestPath(); + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheResponseAdapter.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheResponseAdapter.java new file mode 100644 index 0000000000..54f0a4604d --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ApacheResponseAdapter.java @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import java.io.IOException; + +import org.apache.commons.httpclient.Header; + +import com.sun.ts.tests.common.webclient.http.HttpResponse; +import com.sun.ts.tests.websocket.common.client.ClientEndpoint.ClientEndpointData; +import com.sun.ts.tests.websocket.common.util.IOUtil; + +public class ApacheResponseAdapter extends HttpResponse { + + public ApacheResponseAdapter(String host, int port) { + super(host, port, port == 443, null, null); + this.caser = TextCaser.NONE; + } + + public ApacheResponseAdapter(String host, int port, TextCaser caser) { + this(host, port); + this.caser = caser; + } + + private TextCaser caser = null; + + /** + * Simulates HTTP status code, 500 on error, 200 on ok + */ + @Override + public String getStatusCode() { + if (ClientEndpointData.getError() != null) + WebSocketTestCase.logMsg("Unexpected error on client endpoint:", + IOUtil.printStackTrace(ClientEndpointData.getError())); + return ClientEndpointData.getError() == null ? "200" : "500"; + } + + @Override + public String getResponseBodyAsString() throws IOException { + return caser.getCasedText(ClientEndpointData.getResponseAsString()); + } + + @Override + public String getResponseBodyAsRawString() throws IOException { + return getResponseBodyAsString(); + } + + @Override + public String getReasonPhrase() { + return null; + } + + @Override + public Header[] getResponseHeaders() { + return new Header[0]; + } + + @Override + public Header getResponseHeader(String headerName) { + return null; + } + + @Override + public String getResponseEncoding() { + return null; + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/BinaryAndTextClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/BinaryAndTextClientEndpoint.java new file mode 100644 index 0000000000..bf4ef35bac --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/BinaryAndTextClientEndpoint.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import java.nio.ByteBuffer; + +import com.sun.ts.tests.websocket.common.util.IOUtil; + +import jakarta.websocket.EndpointConfig; +import jakarta.websocket.MessageHandler; +import jakarta.websocket.Session; + +/** + * Receive any of ByteBuffer (binary) and String (Text) messages, the client + * behaves without making any difference on type of message received. + */ +public class BinaryAndTextClientEndpoint extends ClientEndpoint { + @Override + public void onOpen(Session session, EndpointConfig config) { + super.onOpen(session, config); + session.addMessageHandler(new MessageHandler.Whole() { + @Override + public void onMessage(ByteBuffer message) { + String msg = IOUtil.byteBufferToString(message); + BinaryAndTextClientEndpoint.this.onMessage(msg); + } + }); + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ByteBufferClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ByteBufferClientEndpoint.java new file mode 100644 index 0000000000..da1b853a25 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ByteBufferClientEndpoint.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import java.nio.ByteBuffer; + +import com.sun.ts.tests.websocket.common.util.IOUtil; + +public class ByteBufferClientEndpoint extends ClientEndpoint { + + @Override + protected void appendMessage(ByteBuffer message) { + getMessageBuilder().append(IOUtil.byteBufferToString(message)); + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ClientEndpoint.java new file mode 100644 index 0000000000..8bcab4a0fd --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/ClientEndpoint.java @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +import jakarta.websocket.ClientEndpointConfig; +import jakarta.websocket.CloseReason; +import jakarta.websocket.Endpoint; +import jakarta.websocket.EndpointConfig; +import jakarta.websocket.MessageHandler; +import jakarta.websocket.Session; +import jakarta.websocket.WebSocketContainer; + +public abstract class ClientEndpoint extends Endpoint implements MessageHandler.Whole { + + /** + * This structure is static, because the original API was unable to set an + * instance of endpoint when connecting to server, the only available option as + * an argument of + * {@link WebSocketContainer#connectToServer(Class, ClientEndpointConfig, java.net.URI)} + * was Class. The instance of endpoint was created by websocket API, and no + * information could be injected into the instance. + */ + public static class ClientEndpointData { + protected static volatile StringBuffer sb = new StringBuffer(); + + protected static volatile Throwable websocketError = null; + + protected static EndpointCallback callback; + + protected static volatile CountDownLatch messageLatch; + + protected static volatile Object lastMessage = null; + + protected static final Object LOCK = new Object(); + + protected static volatile CountDownLatch onCloseLatch = null; + + public static Throwable getError() { + return websocketError; + } + + private static void setError(Throwable error) { + websocketError = error; + } + + public static String getResponseAsString() { + WebSocketTestCase.logMsg("Response:", sb.toString()); + return sb.toString(); + } + + public static void resetData() { + synchronized (LOCK) { + WebSocketCommonClient.logTrace("Reseting callback and message", ""); + sb = new StringBuffer(); + websocketError = null; + callback = null; + lastMessage = null; + messageLatch = null; + onCloseLatch = null; + } + } + + public static void newCountDown(int count) { + messageLatch = new CountDownLatch(count); + }; + + public static void awaitCountDown(int seconds) { + try { + messageLatch.await(seconds, TimeUnit.SECONDS); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + + public static void newOnCloseCountDown() { + if (onCloseLatch == null) + onCloseLatch = new CountDownLatch(1); + } + + public static long getCount() { + return messageLatch.getCount(); + } + + public static void awaitOnClose() { + try { + onCloseLatch.await(2000L, TimeUnit.SECONDS); + } catch (InterruptedException e) { + e.printStackTrace(); // If it does not wait, + // the test should still pass + } + } + + public static Object getOriginalMessage() { + return lastMessage; + } + + private static void setOriginalMessage(Object message) { + lastMessage = message; + } + + } + + /** + * Hopefully this approach might be changed when api allows for passing the + * instance instead of class. + */ + + @Override + public void onOpen(Session session, EndpointConfig config) { + onOpen(session, config, true); + } + + public void onOpen(Session session, EndpointConfig config, boolean addMessageHandler) { + WebSocketCommonClient.logTrace("On open on session id", session.getId()); + String uri = session.getRequestURI() == null ? "NULL" : session.getRequestURI().toASCIIString(); + WebSocketCommonClient.logTrace("RequestUri:", uri); + if (session.isOpen()) { + if (addMessageHandler) + session.addMessageHandler(this); + } else + WebSocketCommonClient.logTrace("Session is closed!!!!", ""); + synchronized (ClientEndpointData.LOCK) { + if (ClientEndpointData.callback != null && session.isOpen()) + ClientEndpointData.callback.onOpen(session, config); + } + } + + @Override + public void onError(Session session, Throwable t) { + ClientEndpointData.setError(t); + t.printStackTrace(); + synchronized (ClientEndpointData.LOCK) { + if (ClientEndpointData.callback != null) + ClientEndpointData.callback.onError(session, t); + } + } + + protected void appendMessage(T message) { + ClientEndpointData.sb.append(message.toString()); + } + + @Override + public void onMessage(T message) { + ClientEndpointData.setOriginalMessage(message); + appendMessage(message); + WebSocketCommonClient.logTrace("Received message so far", ClientEndpointData.sb.toString()); + synchronized (ClientEndpointData.LOCK) { + if (ClientEndpointData.callback != null) + ClientEndpointData.callback.onMessage(message); + } + WebSocketTestCase.logTrace("CountDownLatch hit"); + if (ClientEndpointData.messageLatch.getCount() == 0) + throw new IllegalStateException("CountDownLatch.getCount == 0 already"); + ClientEndpointData.messageLatch.countDown(); + } + + @Override + public void onClose(Session session, CloseReason closeReason) { + synchronized (ClientEndpointData.LOCK) { + WebSocketTestCase.logTrace("On close on session id", session.getId(), "reason", closeReason); + if (ClientEndpointData.lastMessage == null) + WebSocketTestCase.logTrace("onClose has been called before a message was received"); + else + WebSocketTestCase.logTrace("onClose has been called"); + if (ClientEndpointData.callback != null) + ClientEndpointData.callback.onClose(session, closeReason); + // onCloseLatch == null when close has not been called by client + if (ClientEndpointData.onCloseLatch == null) + ClientEndpointData.newOnCloseCountDown(); + ClientEndpointData.onCloseLatch.countDown(); + } + } + + public static CountDownLatch getCountDownLatch() { + return ClientEndpointData.messageLatch; + } + + public static StringBuffer getMessageBuilder() { + return ClientEndpointData.sb; + } + + @SuppressWarnings({ "unchecked", "unused" }) + public T getLastMessage(Class messageType) { + return (T) ClientEndpointData.lastMessage; + } + + public static Throwable getLastError() { + return ClientEndpointData.websocketError; + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/EndpointCallback.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/EndpointCallback.java new file mode 100644 index 0000000000..a99f76ba75 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/EndpointCallback.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import java.util.concurrent.CountDownLatch; + +import jakarta.websocket.CloseReason; +import jakarta.websocket.Endpoint; +import jakarta.websocket.EndpointConfig; +import jakarta.websocket.MessageHandler; +import jakarta.websocket.MessageHandler.Partial; +import jakarta.websocket.MessageHandler.Whole; +import jakarta.websocket.Session; + +/** + * Default empty implementation of merged functionality of {@link Endpoint} + * interface with {@link MessageHandler} interface. + *

+ * Depending on what {@link WebSocketCommonClient.Entity} is defined (partial, + * whole), {@link Whole} or {@link Partial} functionality is used with onMessage + */ +public class EndpointCallback { + + @SuppressWarnings("unused") + public void onError(Session session, Throwable t) { + } + + @SuppressWarnings("unused") + public void onMessage(Object o) { + } + + @SuppressWarnings("unused") + public void onOpen(Session session, EndpointConfig config) { + } + + @SuppressWarnings("unused") + public void onClose(Session session, CloseReason closeReason) { + } + + public CountDownLatch getCountDownLatch() { + return ClientEndpoint.getCountDownLatch(); + } + + public StringBuffer getMessageBuilder() { + return ClientEndpoint.getMessageBuilder(); + } + + public Throwable getLastError() { + return ClientEndpoint.getLastError(); + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/SendMessageCallback.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/SendMessageCallback.java new file mode 100644 index 0000000000..98f6e5812e --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/SendMessageCallback.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import static com.sun.ts.tests.websocket.common.client.WebSocketCommonClient.logMsg; +import static com.sun.ts.tests.websocket.common.client.WebSocketCommonClient.logTrace; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import com.sun.ts.tests.websocket.common.client.WebSocketCommonClient.Entity; +import com.sun.ts.tests.websocket.common.impl.StringPingMessage; +import com.sun.ts.tests.websocket.common.util.IOUtil; + +import jakarta.websocket.EndpointConfig; +import jakarta.websocket.PongMessage; +import jakarta.websocket.RemoteEndpoint; +import jakarta.websocket.Session; + +/** + * The default {@link EndpointCallback} that is used in tests. This callback + * sends an entity on onOpen to a server endpoint set by + * {@link WebSocketCommonClient#setEntity(Object...)} or by + * + *
+ * setProperty(Property.CONTENT, ...)
+ * 
+ * + *

+ * Note that no callback is used when no entity is defined to be sent to a + * server side + */ +public class SendMessageCallback extends EndpointCallback { + protected Entity entity; + + public SendMessageCallback(Entity entity) { + super(); + this.entity = entity; + } + + @Override + public void onOpen(Session session, EndpointConfig config) { + super.onOpen(session, config); + logMsg("Sending entity", entity); + RemoteEndpoint.Basic endpoint = session.getBasicRemote(); + try { + if (entity.isInstance(String.class)) + sendString(endpoint, entity, 0); + else if (entity.isInstance(ByteBuffer.class)) + sendBytes(endpoint, entity, 0); + else if (entity.isInstance(PongMessage.class)) + sendPingPong(endpoint, entity.getEntityAt(PongMessage.class, 0)); + else + sendObject(endpoint, entity.getEntityAt(Object.class, 0)); + } catch (Exception i) { + throw new RuntimeException(i); + } + } + + protected void sendString(RemoteEndpoint.Basic endpoint, Entity entity, int index) throws IOException { + String message = entity.getEntityAt(String.class, index); + if (entity.length() - 1 > index) { + endpoint.sendText(message, false); + logTrace("RemoteEndpoint.Basic.sendText(", message, ", false)"); + sendString(endpoint, entity, index + 1); + } else if (index > 0) { + endpoint.sendText(message, true); + logTrace("RemoteEndpoint.Basic.sendText(", message, ", true)"); + } else { + endpoint.sendText(message); + logTrace("RemoteEndpoint.Basic.sendText(", message, ")"); + } + } + + protected void sendBytes(RemoteEndpoint.Basic endpoint, Entity entity, int index) throws IOException { + ByteBuffer msg = entity.getEntityAt(ByteBuffer.class, index); + String bytes = new String(msg.array()); + if (entity.length() - 1 > index) { + endpoint.sendBinary(msg, false); + logTrace("RemoteEndpoint.Basic.sendBinary(", bytes, ", false)"); + sendBytes(endpoint, entity, index + 1); + } else if (index > 0) { + endpoint.sendBinary(msg, true); + logTrace("RemoteEndpoint.Basic.sendBinary(", bytes, ", true)"); + } else { + endpoint.sendBinary(msg); + logTrace("RemoteEndpoint.Basic.sendBinary(", bytes, ")"); + } + } + + protected void sendPingPong(RemoteEndpoint.Basic endpoint, PongMessage pong) throws Exception { + ByteBuffer buffer = pong.getApplicationData(); + String msg = IOUtil.byteBufferToString(buffer); + if (StringPingMessage.class.isInstance(pong)) { + endpoint.sendPing(buffer); + logTrace("RemoteEndpoint.Basic.sendPing(", msg, ")"); + } else { + endpoint.sendPong(buffer); + logTrace("RemoteEndpoint.Basic.sendPong(", msg, ")"); + } + } + + protected void sendObject(RemoteEndpoint.Basic endpoint, Object message) throws Exception { + String entity = null; + if (message.getClass().getName().equals("[B")) + entity = new String((byte[]) message); + else + entity = message.toString(); + logTrace("RemoteEndpoint.Basic.sendObject(", entity, ")"); + endpoint.sendObject(message); + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/StringClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/StringClientEndpoint.java new file mode 100644 index 0000000000..d8d7548fa2 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/StringClientEndpoint.java @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +/** + * WebSockets need concrete class + */ +public class StringClientEndpoint extends ClientEndpoint { + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/TextCaser.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/TextCaser.java new file mode 100644 index 0000000000..4fc964dc08 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/TextCaser.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +/** + * Standard WebTestCase can search strings in an order case sensitive, case + * insensitive or not in order case sensitive. When there is a need to match not + * in order and case insensitive, this class is used. + */ +public enum TextCaser { + UPPER, NONE, LOWER; + + /** + * Get the text upper cased, lower cased, or unchanged, depending on current + * TextCaser value + */ + public final String getCasedText(String text) { + String ret = null; + switch (this) { + case UPPER: + ret = text.toUpperCase(); + break; + case LOWER: + ret = text.toLowerCase(); + break; + case NONE: + ret = text; + break; + } + return ret; + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketCommonClient.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketCommonClient.java new file mode 100644 index 0000000000..414b252765 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketCommonClient.java @@ -0,0 +1,1007 @@ +/* + * Copyright (c) 2013, 2023 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.lang.System.Logger; +import java.net.URL; +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; +import java.util.Arrays; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.stream.Collectors; + +import org.jboss.arquillian.container.test.api.OperateOnDeployment; +import org.jboss.arquillian.test.api.ArquillianResource; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; + +import com.sun.ts.lib.util.BASE64Encoder; +import com.sun.ts.tests.common.webclient.TestFailureException; +import com.sun.ts.tests.common.webclient.validation.CheckOneOfStatusesTokenizedValidator; +import com.sun.ts.tests.websocket.common.client.ClientEndpoint.ClientEndpointData; + +import jakarta.websocket.ClientEndpointConfig; +import jakarta.websocket.ClientEndpointConfig.Configurator; +import jakarta.websocket.Endpoint; +import jakarta.websocket.Session; +import jakarta.websocket.WebSocketContainer; + +/** + * The common client that contains common methods + */ +public abstract class WebSocketCommonClient { + + private static final Logger logger = System.getLogger(WebSocketCommonClient.class.getName()); + + private static final long serialVersionUID = 1L; + + /** + * The property that is set after invoke(), to let know the cleanup of previous + * test should be performed so that more invocations are possible + */ + boolean isTestCaseAfterInvocation; + + @ArquillianResource + @OperateOnDeployment("_DEFAULT_") + protected URL url; + + /** + * Webserver host property + */ + protected static final String SERVLETHOSTPROP = "webServerHost"; + + /** + * Webserver port property + */ + protected static final String SERVLETPORTPROP = "webServerPort"; + + /** + * ws_wait wait for the response. + */ + protected static final String WSWAIT = "ws_wait"; + + /** + * Single invocation incremental test properties + */ + protected Hashtable TEST_PROPS; + + /** + * Context root of target tests + */ + protected String _contextRoot = null; + + /** + * Target webserver hostname + */ + protected String _hostname = null; + + /** + * Target webserver port + */ + protected int _port = 0; + + /** + * The protocol to be used for invoking a request, ws, wss, http, https, ... + */ + protected String requestProtocol = "ws"; + + /** + * Property from ts.jte + */ + protected int _ws_wait = 0; + + /** + * The test case of given specified websocket message type + */ + protected WebSocketTestCase testCase; + + /** + * disable logging stack trace of exception caused on invoke() for the tests + * that expects the exception to be thrown + */ + protected boolean logExceptionOnInvoke = true; + + /** + * Entity of type T, where T is the type of WebSocketTestCase, e.g. String by + * default. As websocket supports partial messages, this Entity is an array of + * objects; For whole message, only one Object in the array is used. When more + * objects are utilized, partial message is being sent. + */ + public class Entity { + private Object[] entities; + + public Entity(Object... partials) { + entities = partials; + } + + public Entity(Object entity) { + this(new Object[] { entity }); + } + + public boolean isInstance(Class clazz) { + return clazz.isInstance(entities[0]); + } + + public int length() { + return entities.length; + } + + @SuppressWarnings("unchecked") + public T getEntityAt(Class clazz, int index) { + if (ByteBuffer.class.isAssignableFrom(clazz)) + return (T) cloneByteBuffer(index); + return (T) entities[index]; + } + + @SuppressWarnings("unchecked") + public T getEntityAt(int index) { + if (ByteBuffer.class.isInstance(entities[index])) + return (T) cloneByteBuffer(index); + return (T) entities[index]; + } + + private ByteBuffer clone(ByteBuffer message) { + byte[] orig = message.array(); + byte[] array = new byte[orig.length]; + System.arraycopy(orig, 0, array, 0, orig.length); + return ByteBuffer.wrap(array); + } + + private ByteBuffer cloneByteBuffer(int index) { + ByteBuffer bb = (ByteBuffer) entities[index]; + return clone(bb); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(entities.length); + if (entities.length == 1) + sb.append(" part: "); + else + sb.append(" parts: "); + sb.append(objectsToStringWithDelimiter(", ", entities)); + return sb.toString(); + } + } + + protected Entity entity; + + /** + * the list of properties to be put into a property table + */ + protected enum Property { + BASIC_AUTH_PASSWD, BASIC_AUTH_USER, // + CONTENT, EXPECTED_HEADERS, // + IGNORE_STATUS_CODE, REQUEST, // + SEARCH_STRING, SEARCH_STRING_IGNORE_CASE, STATUS_CODE, // + UNEXPECTED_HEADERS, UNEXPECTED_RESPONSE_MATCH, // + UNORDERED_SEARCH_STRING; + } + + // //////////////////////////////////////////////////////////////////////// + public String getContextRoot() { + return _contextRoot; + } + + public void setContextRoot(String root) { + logger.log(Logger.Level.TRACE, "[WebSocketCommonClient] Contextroot set at " + root); + _contextRoot = root; + } + + /** + * Set property values to a given key if none exists, or adds all property + * values to a given key when one exists, unless the property is a content + */ + protected void setProperty(Property key, String... values) { + for (String singleValue : values) + setProperty(key, singleValue); + } + + /** + * Set property value to a given key if none exists, or adds a property value to + * a given key when one exists, unless the property is a content. When content, + * only the last single content is sent as a part of request + */ + protected void setProperty(Property key, String value) { + switch (key) { + case CONTENT: + setEntity(value); + break; + default: + String oldValue = TEST_PROPS.get(key); + if (oldValue == null) { + TEST_PROPS.put(key, value); + } else { + int len = value.length() + oldValue.length() + 1; + StringBuilder combinedValue = new StringBuilder(len); + combinedValue.append(oldValue).append("|").append(value); + TEST_PROPS.put(key, combinedValue.toString()); + } + break; + } + } + + protected String buildRequest(String... path) { + StringBuilder sb = new StringBuilder(); + sb.append(getAbsoluteUrl()).append("/"); + for (String segment : path) { + sb.append(segment); + } + return sb.toString(); + } + + protected String getAbsoluteUrl() { + StringBuilder sb = new StringBuilder(); + sb.append(requestProtocol).append("://").append(_hostname).append(":").append(_port).append("/") + .append(getContextRoot()); + return sb.toString(); + } + + /** + * Shortcut to invoke() when endpoint, content, and search is known + * + * @param endpoint the endpoint the request is built to go to. + * @param content the content to be set as setEntity(content.name()) + * @param search a response would be searched for search.name() + * @throws Exception when invocation fails + */ + protected > // + void invoke(String endpoint, Enum content, Enum search) throws Exception { + invoke(endpoint, content.name(), search.name()); + } + + /** + * Shortcut to invoke() when endpoint, content, and search is known + * + * @param endpoint the endpoint the request is built to go to. + * @param content the content to be set as setEntity(content.name()) + * @param search a String the response would be searched for + * @throws Exception when invocation fails + */ + protected// + void invoke(String endpoint, Enum content, String... search) throws Exception { + invoke(endpoint, content.name(), search); + } + + /** + * Shortcut to invoke() when endpoint, content, and search is known + * + * @param endpoint the endpoint the request is built to go to. + * @param content the content to be set as setEntity(content) + * @param search the content of a response to be searched, or "" when does not + * matter + * @throws Exception when invocation fails + */ + protected void // + invoke(String endpoint, Object content, String... search) throws Exception { + invoke(endpoint, content, search, true); + } + + /** + * Shortcut to invoke() when endpoint, content, and search is known + * + * @param endpoint the endpoint the request is built to go to. + * @param content the content to be set as setEntity(content) + * @param search the content of a response to be searched, or "" when does not + * matter + * @param cleanup see {@link #invoke(boolean)} + * @throws Exception when invocation fails + */ + protected void // + invoke(String endpoint, Object content, String[] search, boolean cleanup) throws Exception { + setProperty(Property.REQUEST, buildRequest(endpoint)); + setEntity(content); + setProperty(Property.SEARCH_STRING, search); + invoke(cleanup); + } + + protected void // + invoke(String endpoint, Object content, String search, boolean cleanup) throws Exception { + invoke(endpoint, content, new String[] { search }, cleanup); + } + + /** + * Shortcut to invokeAgain(cleanup) when endpoint, content, and search is known + * + * @param content the content to be set as setEntity(content) + * @param search the content of a response to be searched, or "" when does not + * matter + * @param cleanup see {@link #invokeAgain(boolean)} + * @throws Exception when invocation fails + */ + protected void // + invokeAgain(Object content, String search, boolean cleanup) throws Exception { + setEntity(content); + setProperty(Property.SEARCH_STRING, search); + invokeAgain(cleanup); + } + + /** + *
+	 * Invokes a test based on the properties
+	 * stored in TEST_PROPS.  Once the test has completed,
+	 * the properties in TEST_PROPS will be cleared.
+	 * 
+ * + * @throws Exception If an error occurs during the test run + */ + protected void invoke() throws Exception { + invoke(true); + } + + /** + *
+	 * Invokes a test based on the properties
+	 * stored in TEST_PROPS.  Once the test has completed,
+	 * the properties in TEST_PROPS will be cleared if cleanUp says so.
+	 * 
+ * + * @throws Exception If an error occurs during the test run + * @param cleanUp Defines whether the test has ended + * + */ + protected void invoke(boolean cleanUp) throws Exception { + invoke(cleanUp, false); + } + + /** + * Invoke additional request with new entity and hold open + * {@link jakarta.websocket.Session} to a server {@link Endpoint}, the response + * is caught by client {@link Endpoint} set by current {@link WebSocketTestCase} + *

+ * + * @throws Exception + */ + protected void invokeAgain(boolean cleanUp) throws Exception { + invoke(cleanUp, true); + } + + /** + *

+	 * Invokes a test based on the properties
+	 * stored in TEST_PROPS. The current session is used. Once the test has completed,
+	 * the properties in TEST_PROPS will be cleared if cleanUp says so.
+	 * 
+ * + * @throws Exception If an error occurs during the test run + * @param cleanUp Defines whether the test has ended + * @param again the request to server endpoint is performed on currently + * established session, when the session has not been closed + * after previous {@link #invoke(false)}; + */ + protected void invoke(boolean cleanUp, boolean again) throws Exception { + logger.log(Logger.Level.TRACE, "[WebSocketCommonClient] invoke"); + logger.log(Logger.Level.TRACE, "[WebSocketCommonClient] EXECUTING"); + setTestProperties(getTestCase()); + try { + executeTestCase(again); + testCase.validate(); + assertCountDownLatchCount(); + } catch (TestFailureException tfe) { + dealWithTestFailureException(tfe); + } finally { + isTestCaseAfterInvocation = cleanUp; + if (cleanUp) { + cleanup(); + } + } + } + + /** + * Executes test case for the first time, or once again on existing + * {@link WebSocketTestCase} and existing {@link Session} for a new + * {@link Entity} + * + * @param again + * @throws TestFailureException + */ + protected// + void executeTestCase(boolean again) throws TestFailureException, Exception { + if (again) { + testCase.newCountDown(); + SendMessageCallback callback = new SendMessageCallback(entity); + callback.onOpen(getSession(), null); + testCase.awaitCountDown(); + } else + testCase.execute(); + } + + private// + void dealWithTestFailureException(TestFailureException tfe) throws Exception { + Throwable t = tfe.getRootCause(); + if (t != null && logExceptionOnInvoke) { + logger.log(Logger.Level.ERROR, "Root cause of Failure: " + t.getMessage(), t); + } else + logExceptionOnInvoke = true; + throw new Exception( + tfe.getMessage() + "[WebSocketCommonClient] TestCase failed! Check output for cause of failure.", t); + } + + /** + *
+	 * Sets the appropriate test properties based
+	 * on the values stored in TEST_PROPS
+	 * 
+ */ + protected void setTestProperties(WebSocketTestCase testCase) { + logger.log(Logger.Level.TRACE, "[WebSocketCommonClient] setTestProperties"); + + if (TEST_PROPS.get(Property.STATUS_CODE) == null) + setProperty(Property.STATUS_CODE, "200"); + setWebTestCaseProperties(testCase); + } + + protected void setWebTestCaseProperties(WebSocketTestCase testCase) { + Property key = null; + String value = null; + // process the remainder of the properties + for (Enumeration e = TEST_PROPS.keys(); e.hasMoreElements();) { + key = e.nextElement(); + value = TEST_PROPS.get(key); + switch (key) { + case BASIC_AUTH_USER: + break; + case BASIC_AUTH_PASSWD: + final String user = TEST_PROPS.get(Property.BASIC_AUTH_USER); + final String password = TEST_PROPS.get(Property.BASIC_AUTH_PASSWD); + Configurator configurator = new Configurator() { + @Override + public void beforeRequest(Map> headers) { + headers.putAll(basicAuthenticationAsHeaderMap(user, password)); + super.beforeRequest(headers); + } + }; + addClientConfigurator(configurator); + break; + case CONTENT: + setEntity(value); + break; + case EXPECTED_HEADERS: + testCase.addExpectedHeader(value); + TEST_PROPS.remove(Property.EXPECTED_HEADERS); + break; + case IGNORE_STATUS_CODE: + testCase.setExpectedStatusCode("-1"); + break; + case REQUEST: + break; + case SEARCH_STRING: + value = testCase.getTextCaser().getCasedText(value); + testCase.setResponseSearchString(value); + TEST_PROPS.remove(Property.SEARCH_STRING); + break; + case SEARCH_STRING_IGNORE_CASE: + testCase.setResponseSearchStringIgnoreCase(value); + TEST_PROPS.remove(Property.SEARCH_STRING_IGNORE_CASE); + break; + case STATUS_CODE: + if (value.contains("|")) + testCase.setStrategy(CheckOneOfStatusesTokenizedValidator.class.getName()); + testCase.setExpectedStatusCode(value); + break; + case UNEXPECTED_HEADERS: + testCase.addUnexpectedHeader(value); + TEST_PROPS.remove(Property.UNEXPECTED_HEADERS); + break; + case UNEXPECTED_RESPONSE_MATCH: + testCase.setUnexpectedResponseSearchString(value); + TEST_PROPS.remove(Property.UNEXPECTED_RESPONSE_MATCH); + break; + case UNORDERED_SEARCH_STRING: + value = testCase.getTextCaser().getCasedText(value); + testCase.setUnorderedSearchString(value); + TEST_PROPS.remove(Property.UNORDERED_SEARCH_STRING); + break; + } + } + } + + protected WebSocketTestCase getTestCase() { + if (testCase == null || isTestCaseAfterInvocation) { + testCase = new WebSocketTestCase(this); + isTestCaseAfterInvocation = false; + } + return testCase; + } + + protected // + void setEndPointCase(Class> endpoint) { + getTestCase().setClientEndpoint(endpoint); + } + + protected Entity setEntity(Object... partials) { + this.entity = new Entity(partials); + return this.entity; + } + + /** + * cleanup is called to cleanup after text execution + * + * @exception Exception if an error occurs + */ + @AfterEach + public void cleanup() throws Exception { + TEST_PROPS.clear(); + isTestCaseAfterInvocation = true; + if (testCase != null && testCase.session != null) { + if (testCase.session.isOpen()) { + ClientEndpointData.newOnCloseCountDown(); + logTrace("[WebSocketCommonClient] session.close() on session id", testCase.session.getId()); + testCase.session.close(); + ClientEndpointData.awaitOnClose(); + } + testCase.session = null; + } + synchronized (ClientEndpointData.LOCK) { + ClientEndpointData.callback = null; + } + logger.log(Logger.Level.DEBUG, "[WebSocketCommonClient] Test cleanup OK"); + } + + /** + * setup to initialize the tests. + * + * @param args a String[] value + * @param p a Properties value + * @exception Exception if an error occurs + */ + @BeforeEach + public void setup() throws Exception { + logger.log(Logger.Level.TRACE, "setup method WebSocketCommonClient"); + + String hostname = System.getProperty(SERVLETHOSTPROP); + String portnum = System.getProperty(SERVLETPORTPROP); + + hostname = isNullOrEmpty(hostname) ? url.getHost() : hostname; + portnum = isNullOrEmpty(portnum) ? Integer.toString(url.getPort()) : portnum; + String wswait = System.getProperty(WSWAIT); + + assertFalse(isNullOrEmpty(hostname), "[WebSocketCommonClient] 'webServerHost' was not set."); + _hostname = hostname.trim(); + assertFalse(isNullOrEmpty(portnum), "[WebSocketCommonClient] 'webServerPort' was not set."); + _port = Integer.parseInt(portnum.trim()); + assertFalse(isNullOrEmpty(wswait), "[WebSocketCommonClient] 'ws_wait' must be set in the properties"); + _ws_wait = Integer.parseInt(wswait.trim()); + assertTrue(_ws_wait > 0, "[WebSocketCommonClient] 'ws_wait' (in seconds) must be set greater than 0"); + + logger.log(Logger.Level.DEBUG, "[WebSocketCommonClient] Test setup OK"); + TEST_PROPS = new Hashtable<>(); + } + + // ///////////////////////////// Utility methods + // ////////////////////////////// + + protected void assertCountDownLatchCount() throws Exception { + long hits = testCase.getCountDownLatchRemainingHits(); + int count = testCase.getCountDownLatchTotalCount(); + WebSocketCommonClient.assertEqualsLong(0, hits, "The countDownLatch has been hit only", count - hits, + "was expected", count, "times"); + logTrace("[WebSocketCommonClient] CountDownLatch has been hit", count, "times as expected"); + } + + /** + * Asserts that a condition is true. + * + * @param condition tested condition + * @param message a space separated message[i].toString() compilation for + * i=<0,message.length) + * @throws Exception when conditionTrue is not met with message provided + */ + public static void // + assertTrue(boolean condition, Object... message) throws Exception { + if (!condition) + throw new Exception(objectsToString(message)); + } + + /** + * Asserts that a condition is false. + * + * @param condition tested condition + * @param message a space separated message[i].toString() compilation for + * i=<0,message.length) + * @throws Exception when condition is not false with message provided + */ + public static void // + assertFalse(boolean condition, Object... message) throws Exception { + assertTrue(!condition, message); + } + + /** + * Asserts that two objects are equal. When instances of Comparable, such as + * String, compareTo is used. + * + * @param first first object + * @param second second object + * @param message a space separated message[i].toString() compilation for + * i=<0,message.length) + * @throws Exception when objects are not equal with message provided + */ + @SuppressWarnings("unchecked") + public static void // + assertEquals(T first, T second, Object... message) throws Exception { + if (first == null && second == null) + return; + assertFalse(first == null && second != null, message); + assertFalse(first != null && second == null, message); + if (first instanceof Comparable) + assertTrue(((Comparable) first).compareTo(second) == 0, message); + else + assertTrue(first.equals(second), message); + } + + public static void // + assertEqualsInt(int first, int second, Object... message) throws Exception { + assertTrue(first == second, message); + } + + public static void // + assertEqualsLong(long first, long second, Object... message) throws Exception { + assertTrue(first == second, message); + } + + public static void // + assertEqualsBool(boolean first, boolean second, Object... message) throws Exception { + assertTrue(first == second, message); + } + + /** + * Asserts that an object is null. + * + * @param object Assert that object is not null + * @param message a space separated message[i].toString() compilation for + * i=<0,message.length) + * @throws Exception when condition is not met with message provided + */ + public static void // + assertNull(Object object, Object... message) throws Exception { + assertTrue(object == null, message); + } + + /** + * Asserts that an object is not null. + * + * @param object Assert that object is not null + * @param message a space separated message[i].toString() compilation for + * i=<0,message.length) + * @throws Exception when condition is not met with message provided + */ + public static void // + assertNotNull(Object object, Object... message) throws Exception { + assertTrue(object != null, message); + } + + /** + * Assert that given substring is a substring of given string + * + * @param string the string to search substring in + * @param substring the substring to be searched in a given string + * @param message space separated message values to be thrown + * @throws Exception throws + */ + public static void assertContains(String string, String substring, Object... message) throws Exception { + assertTrue(string.contains(substring), message); + } + + /** + * Assert that given substring is a substring of given string, case insensitive + * + * @param string the string to search substring in + * @param substring the substring to be searched in a given string + * @param message space separated message values to be thrown + * @throws Exception + */ + public static void assertContainsIgnoreCase(String string, String substring, Object... message) throws Exception { + assertTrue(string.toLowerCase().contains(substring.toLowerCase()), message); + } + + /** + * Assert that given substring is not a substring of given string + * + * @param string the string to search substring in + * @param substring the substring to be searched in a given string + * @param message space separated message values to be thrown + * @throws Exception throws + */ + public static void assertNotContains(String string, String substring, Object... message) throws Exception { + assertFalse(string.contains(substring), message); + } + + /** + * Assert that given substring is not a substring of given string, case + * insensitive + * + * @param string the string to search substring in + * @param substring the substring to be searched in a given string + * @param message space separated message values to be thrown + * @throws Exception + */ + public static void assertNotContainsIgnoreCase(String string, String substring, Object... message) + throws Exception { + assertFalse(string.toLowerCase().contains(substring.toLowerCase()), message); + } + + /** + * Assert that given subtext.toString() subject is a substring of given text + * + * @param text the text.toString() object to search subtext.toString() in + * @param subtext the subtext.toString() to be searched in a given + * text.toString() + * @param message space separated message values to be thrown + * @throws Exception + */ + public static void assertContains(T text, T subtext, Object... message) throws Exception { + assertContains(text.toString(), subtext.toString(), message); + } + + /** + * Assert that given subtext.toString() subject is a substring of given text, + * case insensitive + * + * @param text the text.toString() object to search subtext.toString() in + * @param subtext the subtext.toString() to be searched in a given + * text.toString() + * @param message space separated message values to be thrown + * @throws Exception + */ + public static void assertContainsIgnoreCase(T text, T subtext, Object... message) throws Exception { + assertContainsIgnoreCase(text.toString(), subtext.toString(), message); + } + + public static// + String assertProperty(Properties p, String propertyName) throws Exception { + String value = System.getProperty(propertyName); + logTrace(propertyName, value); + assertTrue(!isNullOrEmpty(value), propertyName, "was not set in build.properties"); + return value; + } + + /** + * Searches an encapsulated exception cause in parent exception + */ + protected static T assertCause(Throwable parent, Class wrapped, Object... msg) + throws Exception { + T t = hasCause(parent, wrapped); + assertNotNull(t, msg); + return t; + } + + /** + * Check whether the string is either null or blank + */ + protected static boolean isNullOrEmpty(String val) { + return val == null || val.trim().equals(""); + } + + @SuppressWarnings("unchecked") + private static T // + hasCause(Throwable parent, Class cause) { + while (parent != null) { + if (cause.isInstance(parent)) + return (T) parent; + parent = parent.getCause(); + } + return null; + } + + public static String getCauseMessage(Throwable t) { + String msg = null; + while (t != null) { + msg = t.getMessage(); + t = t.getCause(); + } + return msg; + } + + public static void logMsg(Object... msg) { + logger.log(Logger.Level.INFO, objectsToString(msg)); + } + + public static void logTrace(Object... msg) { + logger.log(Logger.Level.TRACE, objectsToString(msg)); + } + + /** + * @param objects to be put in a sentence + * @return objects in a single string , each object separated by " " + */ + protected static String objectsToString(Object... objects) { + return objectsToStringWithDelimiter(" ", objects); + } + + protected static String objectsToStringWithDelimiter(String delimiter, Object... objects) { + StringBuilder sb = new StringBuilder(); + if (objects != null) + for (Object o : objects) { + if (o != null && o.getClass().isArray() && o.toString().startsWith("[L")) + sb.append(objectsToStringWithDelimiter(delimiter, (Object[]) o)); + else + sb.append(o).append(delimiter); + } + return sb.toString().trim(); + } + + /** + * Creates basic authentication header for given username and password, to be + * simply recalled in client Configurator, for instance + * + *
+	 * Configurator configurator = new Configurator() {
+	 * 	public void beforeRequest(Map<String, List<String>> headers) {
+	 * 		headers.putAll(basicAuthenticationAsHeaderMap(USER, PASSWORD));
+	 * 	};
+	 * };
+	 * setClientConfigurator(configurator);
+	 * 
+ * + *

+ * Note that this is done by client framework automatically when + * + *
+	 * setProperty(Property.BASIC_AUTH_USER, USER);
+	 * setProperty(Property.BASIC_AUTH_PASSWD, PASSWORD);
+	 * 
+ * + * @param userName + * @param password + * @return a header map containing just Authorization header + */ + protected static// + Map> basicAuthenticationAsHeaderMap(String userName, String password) { + Map> headers = new HashMap<>(); + String toEncode = new StringBuilder().append(userName).append(':').append(password).toString(); + String base64 = new BASE64Encoder().encode(toEncode.getBytes()); + headers.put("Authorization", Arrays.asList("Basic " + base64)); + return headers; + } + + // ---------------------Callbacks --------------------------------- + /** + *

+ * Possible cast to VI specific container, e.g. tyrus ClientManager and set + * properties for debug purposes. + *

+ *

+ * For instance, to delay the connection timeout, use + * + *

+	 * ClientManager cm = (ClientManager) clientContainer;
+	 * cm.getProperties().put(ClientProperties.HANDSHAKE_TIMEOUT, 500000);
+	 * 
+ * + * @param clientContainer The container used for e.g. + * {@link WebSocketContainer#connectToServer(Class, java.net.URI)} + *

+ */ + protected void // + setupWebSocketContainerBeforeConnect(WebSocketContainer clientContainer) { + } + + // ---------------------Setters --------------------------------- + /** + * Sets the protocol the request starts with Default "ws" + * + * @param protocol + */ + protected void setRequestProtocol(String protocol) { + this.requestProtocol = protocol; + } + + protected void setCountDownLatchCount(int countDownLatchCount) { + getTestCase().setCountDownLatchCount(countDownLatchCount); + } + + /** + * set ClientEndpoint class. This endpoint class can be overriden by client + * endpoint instance set by {@link #setClientEndpointInstance} + */ + protected void setClientEndpoint(Class> endpoint) { + getTestCase().setClientEndpoint(endpoint); + } + + /** + * The ClientEndpoint instance. It holds precedence over ClientEndpoint class + * set by {@link #setClientEndpoint} + */ + protected void setClientEndpointInstance(ClientEndpoint endpointInstance) { + getTestCase().setClientEndpointInstance(endpointInstance); + } + + /** + * The annotated client endpoint alternative to ClientEndpoint instance. It has + * precedence over ClientEndpoint class set by {@link #setClientEndpoint} + */ + protected void setAnnotatedClientEndpoint(AnnotatedClientEndpoint annotatedEndpoint) { + getTestCase().setAnnotatedClientEndpoint(annotatedEndpoint); + } + + /** + * Ensures given Configurator to be registered to any given or default + * ClientEndpointConfig + */ + protected void // + addClientConfigurator(Configurator configurator) { + getTestCase().addClientConfigurator(configurator); + } + + protected void // + setClientEndpointConfig(ClientEndpointConfig clientEndpointConfig) { + getTestCase().setClientEndpointConfig(clientEndpointConfig); + } + + /** + * This method sets the main {@link EndpointCallback} to be used by a test. If a + * callback is to be used in conjunction with default + * {@link SendMessageCallback}, use {@link #addClientCallback(EndpointCallback)} + * method. + *

+ * Note that when no entity is sent to a server, no clientCallback is used. + */ + protected void setClientCallback(EndpointCallback callback) { + getTestCase().setCallback(callback); + } + + /** + * Add additional callback functionality to a main callback. The main callback + * could either be set by {@link #setClientCallback(EndpointCallback)} method or + * it is the default {@link SendMessageCallback} client callback. + *

+ * Note that when no entity is sent to a server, no clientCallback is used. + */ + protected void addClientCallback(EndpointCallback callback) { + getTestCase().addClientCallback(callback); + } + + protected Session getSession() throws Exception { + Session session = getTestCase().getSession(); + assertNotNull(session, "Session is null! Has been closed?"); + return session; + } + + protected String getResponseAsString() { + return getTestCase().getResponseAsString(); + } + + protected T getLastResponse(Class type) { + return getTestCase().getLastResponse(type); + } + + protected void printClientCall(boolean printClientCall) { + getTestCase().printClientCall(printClientCall); + } + + protected void logExceptionOnInvocation(boolean log) { + logExceptionOnInvoke = log; + } + + public static String toString(InputStream inStream) throws IOException { + try (BufferedReader bufReader = new BufferedReader(new InputStreamReader(inStream, StandardCharsets.UTF_8))) { + return bufReader.lines().collect(Collectors.joining(System.lineSeparator())); + } + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketTestCase.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketTestCase.java new file mode 100644 index 0000000000..c8bc2f8dfe --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/client/WebSocketTestCase.java @@ -0,0 +1,517 @@ +/* + * Copyright (c) 2013, 2023 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.client; + +import java.lang.System.Logger; +import java.net.URI; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import com.sun.ts.tests.common.webclient.TestFailureException; +import com.sun.ts.tests.common.webclient.WebTestCase; +import com.sun.ts.tests.common.webclient.http.HttpRequest; +import com.sun.ts.tests.common.webclient.http.HttpResponse; +import com.sun.ts.tests.common.webclient.validation.ValidationFactory; +import com.sun.ts.tests.common.webclient.validation.ValidationStrategy; +import com.sun.ts.tests.websocket.common.client.ClientEndpoint.ClientEndpointData; +import com.sun.ts.tests.websocket.common.client.WebSocketCommonClient.Property; + +import jakarta.websocket.ClientEndpointConfig; +import jakarta.websocket.ClientEndpointConfig.Configurator; +import jakarta.websocket.CloseReason; +import jakarta.websocket.ContainerProvider; +import jakarta.websocket.EndpointConfig; +import jakarta.websocket.HandshakeResponse; +import jakarta.websocket.Session; +import jakarta.websocket.WebSocketContainer; + +/** + *

+ * Possibly there might be different + * {@link com.sun.ts.tests.common.webclient.TestCase}s for different technology + *

+ *

+ * This one uses existing routines to check result of client-server + * request-response by websocket technology + *

+ * + * TODO Create an instance of endpoint class using reflection with zero arg + * constructor from the given ClientEndpoint class + *
  • Then ClientEndpoinData do not need to be static, make it accessible from + * CientEndpoint instance
  • + *
  • Do not forget to pass a reference of the endpoint instance to each single + * callback for ClientEndpointData to be accessible from the callback
  • + * + * @author supol + */ +public class WebSocketTestCase extends WebTestCase { + + private static final Logger logger = System.getLogger(WebSocketTestCase.class.getName()); + + /** + * Apache HTTP response mock + */ + protected HttpResponse _response; + + /** + * A reference to WebSocketCommonClient, holder of properties needed to build + * request + */ + protected WebSocketCommonClient client; + + /** + * A reference to ClientEndpoint, a websocket endpoint the messages are passed + * into it + */ + protected Class> endpoint = StringClientEndpoint.class; + + /** + * An Instance to ClientEndpoint, a websocket endpoint the messages are passed + * into it + */ + protected ClientEndpoint endpointInstance = null; + + /** + * An annotated endpoint, in this implementation merely a bridge to + * ClientEndpoint, to be sure the annotated methods are called and also to have + * all the EndpointCallbacks working there + */ + protected AnnotatedClientEndpoint annotatedEndpoint = null; + + /** + * A single master callback to be used in client end point + */ + protected volatile EndpointCallback clientCallback = null; + + /* + * Callbacks to be added to a given master callback or to a default + * SendMessageCallback master callback if no master callback is provided + */ + protected List slaveClientCallbacks = null; + + /** + * Upper case, lower case, or exact text matching? + */ + protected TextCaser textCaser = TextCaser.NONE; + + /** + * Strategy to use when validating the test case against the server's response. + */ + protected ValidationStrategy strategy = null; + + /** + * The WebSocket Session Object to be addressed from test + */ + protected volatile Session session; + + /** + * Count Down Latch Count + */ + protected int countDownLatchCount = 1; + + /** + * ClientEndpointConfig to be used + */ + protected ClientEndpointConfig clientEndpointConfig = null; + + protected List configurators = null; + + /** + * Flag to enable client call logging + */ + protected boolean printClientCall = true; + + // --------------------------------------------------------------------- + public WebSocketTestCase(WebSocketCommonClient client) { + super(); + this.client = client; + clientEndpointConfig = ClientEndpointConfig.Builder.create().build(); + strategy = ValidationFactory.getInstance(TOKENIZED_STRATEGY); + configurators = new LinkedList<>(); + slaveClientCallbacks = new LinkedList<>(); + ClientEndpointData.resetData(); + logTrace("A new test case has been created"); + } + + /** + * Executes the test case. + * + * @throws TestFailureException if the test fails for any reason. + * @throws IllegalStateException if no request was configured or if no Validator + * is available at runtime. + */ + @Override + public void execute() throws TestFailureException { + verifyValidationStrategy(); + verifySettings(); + addAllConfiguratorsToClientEndpointConfig(); + try { + WebSocketContainer clientContainer = ContainerProvider.getWebSocketContainer(); + String path = client.TEST_PROPS.get(Property.REQUEST); + if (printClientCall) + logTrace("\n-----------\n", printClientCall(), "-----------\n"); + logMsg("Connecting to", path); + if (slaveClientCallbacks.size() != 0) + clientCallback = createMasterEndpointCallback(); + if (client.entity != null) { + if (clientCallback != null) + ClientEndpointData.callback = clientCallback; + else + ClientEndpointData.callback = new SendMessageCallback(client.entity); + } + client.setupWebSocketContainerBeforeConnect(clientContainer); + newCountDown(); + session = connectToServer(clientContainer, path); + awaitCountDown(); + } catch (Throwable t) { + String message = t.getMessage(); + StringBuilder sb = new StringBuilder(); + sb.append("[FATAL] Unexpected failure during test execution.\n"); + // print client call code to report into JIRA when needed + if (client.logExceptionOnInvoke) + sb.append(printClientCall().toString()); + // Inherited message + sb.append((message == null ? t.toString() : message)); + + throw new TestFailureException(sb.toString(), t); + } + } + + /** + * Validate this test case instance + * + * @throws TestFailureException + */ + protected void validate() throws TestFailureException { + + if (!strategy.validate(this)) { + throw new TestFailureException("Test FAILED!"); + } + } + + /** + * Logging method for internal purposes + */ + protected StringBuilder printClientCall() { + StringBuilder sb = new StringBuilder(); + if (client.entity != null && client.entity.isInstance(String.class)) { + sb.append("class ").append(endpoint.getSimpleName()); + sb.append(" extends Endpoint implements MessageHandler.Whole"); + sb.append(" {\n"); + sb.append(" public void onOpen(Session session, EndpointConfig config) {\n"); + sb.append(" session.addMessageHandler(this);\n"); + sb.append(" RemoteEndpoint.Basic endpoint = session.getBasicRemote();\n"); + sb.append(" try {\n"); + sb.append(" endpoint.sendText(\""); + sb.append(client.entity.getEntityAt(String.class, 0)); + sb.append("\");\n"); + sb.append(" } catch (IOException e) {\n"); + sb.append(" throw new RuntimeException(e);\n"); + sb.append(" }\n"); + sb.append(" }\n"); + sb.append(" public void onMessage(String message) {\n"); + sb.append(" logger.log(Logger.Level.INFO,message);\n"); + sb.append(" messageLatch.countDown()"); + sb.append(" }\n"); + sb.append("};\n"); + } + sb.append("CountDownLatch messageLatch;\n"); + sb.append("public void test() {\n"); + sb.append(" WebSocketContainer clientContainer = ContainerProvider"); + sb.append(".getWebSocketContainer();\n"); + sb.append(" messageLatch = new CountDownLatch("); + sb.append(countDownLatchCount).append(");\n"); + sb.append(" Session session = clientContainer.connectToServer("); + sb.append(endpoint.getSimpleName()).append(".class,\n"); + sb.append(" "); + sb.append("ClientEndpointConfig.Builder.create()"); + Configurator configurator = clientEndpointConfig.getConfigurator(); + if (configurator != null) + sb.append(".config(new ").append(configurator.getClass().getName()).append("())"); + sb.append(".build(),\n"); + sb.append(" "); + sb.append("new URI(\"").append(client.TEST_PROPS.get(Property.REQUEST)); + sb.append("\"));\n"); + sb.append(" messageLatch.await(").append(client._ws_wait); + sb.append(", TimeUnit.SECONDS);\n"); + sb.append("}\n"); + + return sb; + } + + protected Session connectToServer(WebSocketContainer clientContainer, String path) throws Exception { + WebSocketCommonClient.assertTrue(endpointInstance == null || annotatedEndpoint == null, + "Either a ClientEndpoint instance or Annotated endpoint can be used, not both"); + + if (annotatedEndpoint != null) + session = clientContainer.connectToServer(annotatedEndpoint, new URI(path)); + else if (endpointInstance != null) + session = clientContainer.connectToServer(endpointInstance, clientEndpointConfig, new URI(path)); + else + session = clientContainer.connectToServer(endpoint, clientEndpointConfig, new URI(path)); + logTrace("Connection session id:", session.getId()); + return session; + } + + protected void addAllConfiguratorsToClientEndpointConfig() { + if (!configurators.isEmpty()) { + ClientEndpointConfig.Configurator masterConfigurator = createMasterConfigurator(); + ClientEndpointConfig.Builder builder = cloneConfigWithoutConfigurator(); + builder.configurator(masterConfigurator); + clientEndpointConfig = builder.build(); + } + } + + protected ClientEndpointConfig.Builder cloneConfigWithoutConfigurator() { + ClientEndpointConfig.Builder builder = ClientEndpointConfig.Builder.create(); + builder.decoders(clientEndpointConfig.getDecoders()); + builder.encoders(clientEndpointConfig.getEncoders()); + builder.extensions(clientEndpointConfig.getExtensions()); + builder.preferredSubprotocols(clientEndpointConfig.getPreferredSubprotocols()); + return builder; + } + + protected ClientEndpointConfig.Configurator createMasterConfigurator() { + ClientEndpointConfig.Configurator master = new ClientEndpointConfig.Configurator() { + final ClientEndpointConfig.Configurator original = clientEndpointConfig.getConfigurator(); + + @Override + public void afterResponse(HandshakeResponse hr) { + if (configurators != null) + for (ClientEndpointConfig.Configurator configurator : configurators) + configurator.afterResponse(hr); + if (original != null) + original.afterResponse(hr); + } + + @Override + public void beforeRequest(Map> headers) { + if (configurators != null) + for (ClientEndpointConfig.Configurator configurator : configurators) + configurator.beforeRequest(headers); + if (original != null) + original.beforeRequest(headers); + + if (true) + printHeaders(headers); + } + + void printHeaders(Map> headers) { + for (Entry> set : headers.entrySet()) + logMsg(set.getKey(), ":", WebSocketCommonClient.objectsToString(set.getValue().toArray())); + } + }; + return master; + } + + protected EndpointCallback createMasterEndpointCallback() { + EndpointCallback master = new EndpointCallback() { + EndpointCallback original = clientCallback == null ? new SendMessageCallback(client.entity) + : clientCallback; + + @Override + public void onOpen(Session session, EndpointConfig config) { + original.onOpen(session, config); + for (EndpointCallback callback : slaveClientCallbacks) + callback.onOpen(session, config); + } + + @Override + public void onMessage(Object o) { + original.onMessage(o); + for (EndpointCallback callback : slaveClientCallbacks) + callback.onMessage(o); + } + + @Override + public void onError(Session session, Throwable t) { + original.onError(session, t); + for (EndpointCallback callback : slaveClientCallbacks) + callback.onError(session, t); + } + + @Override + public void onClose(Session session, CloseReason closeReason) { + original.onClose(session, closeReason); + for (EndpointCallback callback : slaveClientCallbacks) + callback.onClose(session, closeReason); + } + }; + return master; + } + + protected void verifyValidationStrategy() { + // If no strategy instance is available (strange, but has happened), + // fail. + try { + getStrategy(); + } catch (NullPointerException e) { + throw new IllegalStateException("[FATAL] No Validator available."); + } + } + + protected void verifySettings() throws TestFailureException { + if (client.getContextRoot() == null) + throw new TestFailureException("No resource url request set"); + } + + protected void awaitCountDown() { + logTrace("Setting CountDownLatch to", client._ws_wait, "seconds, should be hit", countDownLatchCount, "times"); + ClientEndpointData.awaitCountDown(client._ws_wait); + } + + protected void newCountDown() { + ClientEndpointData.newCountDown(countDownLatchCount); + } + + // --------------------------------------------------------------------- + // Apache adaptor methods + + @Override + public HttpRequest getRequest() { + if (super.getRequest() == null) { + super.setRequest(new ApacheRequestAdapter(client.requestProtocol, client.TEST_PROPS.get(Property.REQUEST), + client._hostname, client._port)); + } + return super.getRequest(); + } + + @Override + public HttpResponse getResponse() { + try { + if (_response == null) { + _response = new ApacheResponseAdapter(client._hostname, client._port, textCaser); + } + } catch (Exception e) { + e.printStackTrace(); + } + return _response; + } + + // ---------------------------------------------------------------------- + /** + * Sets the validation strategy for this test case instance. + * + * @param validator - the fully qualified class name of the response validator + * to use. + */ + @Override + public void setStrategy(String validator) { + ValidationStrategy strat = ValidationFactory.getInstance(validator); + if (strat != null) { + strategy = strat; + } else { + StringBuilder sb = new StringBuilder(); + sb.append("[WebTestCase][WARNING] An attempt was made to use a "); + sb.append("non-existing validator ("); + sb.append(validator); + sb.append("). Falling back to the TokenizedValidator"); + logger.log(Logger.Level.DEBUG,sb.toString()); + } + } + + // --------------------------- Getters & setters -------------------------- + protected TextCaser getTextCaser() { + return textCaser; + } + + /** + * set ClientEndpoint class. This endpoint class can be overriden by client + * endpoint instance set by {@link #setClientEndpointInstance} + */ + protected void setClientEndpoint(Class> endpoint) { + this.endpoint = endpoint; + } + + /** + * The ClientEndpoint instance. It holds precedence over ClientEndpoint class + * set by {@link #setClientEndpoint} + */ + protected void setClientEndpointInstance(ClientEndpoint endpointInstance) { + this.endpointInstance = endpointInstance; + } + + /** + * The annotated client endpoint alternative to ClientEndpoint instance. It has + * precedence over ClientEndpoint class set by {@link #setClientEndpoint} + */ + protected void setAnnotatedClientEndpoint(AnnotatedClientEndpoint annotatedEndpoint) { + this.annotatedEndpoint = annotatedEndpoint; + } + + protected void setCountDownLatchCount(int countDownLatchCount) { + this.countDownLatchCount = countDownLatchCount; + } + + protected int getCountDownLatchTotalCount() { + return countDownLatchCount; + } + + protected long getCountDownLatchRemainingHits() { + long hits = ClientEndpointData.getCount(); + return hits; + } + + protected void setCallback(EndpointCallback callback) { + this.clientCallback = callback; + } + + protected void addClientCallback(EndpointCallback callback) { + this.slaveClientCallbacks.add(callback); + } + + protected Session getSession() { + return session; + } + + protected String getResponseAsString() { + return ClientEndpoint.getMessageBuilder().toString(); + } + + @SuppressWarnings({ "unchecked", "unused" }) + protected T getLastResponse(Class type) { + return (T) ClientEndpointData.lastMessage; + } + + protected void // + setClientEndpointConfig(ClientEndpointConfig clientEndpointConfig) { + this.clientEndpointConfig = clientEndpointConfig; + } + + protected void addClientConfigurator(ClientEndpointConfig.Configurator config) { + this.configurators.add(config); + } + + protected void printClientCall(boolean printClientCall) { + this.printClientCall = printClientCall; + } + + static void logMsg(Object... msg) { + WebSocketCommonClient.logMsg("[WebSocketCommonClient]", msg); + } + + static void logTrace(Object... msg) { + WebSocketCommonClient.logTrace("[WebSocketCommonClient]", msg); + } + + protected ClientEndpointConfig getEndpointConfig() { + return clientEndpointConfig; + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/common.xml b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/common.xml new file mode 100644 index 0000000000..4c35b5d443 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/common.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ClientConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ClientConfigurator.java new file mode 100644 index 0000000000..7045e973c7 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ClientConfigurator.java @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.impl; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.TreeMap; + +import com.sun.ts.tests.websocket.common.client.WebSocketCommonClient; +import com.sun.ts.tests.websocket.common.util.StringUtil; + +import jakarta.websocket.ClientEndpointConfig.Configurator; +import jakarta.websocket.HandshakeResponse; + +public class ClientConfigurator extends Configurator { + + private Map> requestMap = new TreeMap<>(); + + private Map> responseMap = new TreeMap<>(); + + private boolean hasBeenAfterResponse = false; + + private boolean hasBeenBeforeRequest = false; + + public boolean hasBeenBeforeRequest() { + return hasBeenBeforeRequest; + } + + public boolean hasBeenAfterResponse() { + return hasBeenAfterResponse; + } + + public void addToRequest(String key, String... values) { + requestMap.put(key, Arrays.asList(values)); + } + + public void addToResponse(String key, String... values) { + responseMap.put(key, Arrays.asList(values)); + } + + public void addToRequestAndResponse(String key, String... values) { + addToRequest(key, values); + addToResponse(key, values); + } + + @Override + public void beforeRequest(Map> headers) { + super.beforeRequest(headers); + for (Entry> set : requestMap.entrySet()) + headers.put(set.getKey(), set.getValue()); + hasBeenBeforeRequest = true; + } + + @Override + public void afterResponse(HandshakeResponse hr) { + super.afterResponse(hr); + Map> headers = hr.getHeaders(); + for (Entry> set : responseMap.entrySet()) { + String key = set.getKey(); + assertTrue(headers.containsKey(key), "key", key, "was not found in HandshakeResponse headers"); + assertTrue(StringUtil.contains(headers.get(key), set.getValue(), false), "value \"", + StringUtil.collectionToString(set.getValue()), "\"", "was not found for key", key, "only \"", + StringUtil.collectionToString(headers.get(key)), "\" has been found"); + WebSocketCommonClient.logTrace("found expected pair [", key, ",", headers.get(key), "]"); + } + hasBeenAfterResponse = true; + } + + public void assertAfterResponseHasBeenCalled() { + assertTrue(hasBeenAfterResponse(), "Configurator#afterResponse has not been called"); + WebSocketCommonClient.logTrace("Configurator#afterResponse has been called as expected", ""); + } + + public void assertBeforeRequestHasBeenCalled() { + assertTrue(hasBeenBeforeRequest(), "Configurator#beforeRequest has not been called"); + WebSocketCommonClient.logTrace("Configurator#beforeRequest has been called as expected", ""); + } + + protected static void assertTrue(boolean t, String... msg) { + if (!t) + throw new RuntimeException(StringUtil.objectsToString((Object[]) msg)); + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionImpl.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionImpl.java new file mode 100644 index 0000000000..e52724605d --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionImpl.java @@ -0,0 +1,162 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.impl; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +import jakarta.websocket.Extension; + +/** + * For comparable purposes, this implementation is either case sensitive, or + * case insensitive. As the extension parameters appear in the http headers and + * RFC 2616 says : Field names are case-insensitive, the default is case + * insensitive. + */ +public class ExtensionImpl implements Extension, Comparable { + + protected List list = new ArrayList<>(); + + protected String name; + + protected boolean caseSensitive = false; + + public void caseSensitive(boolean caseSensitive) { + this.caseSensitive = caseSensitive; + } + + /** + * An Extension Implementation. For empty parameter list, use null + * + * @param name Extension name, see {@link Extension#getName()} + * @param params Extension Parameter list, see {@link Extension#getParameters()} + */ + public ExtensionImpl(String name, Parameter... params) { + super(); + this.name = name; + addParameters(params); + } + + public ExtensionImpl(Extension extension) { + this(extension.getName(), extension.getParameters().toArray(new Parameter[0])); + } + + public void addParameters(Parameter... params) { + if (params != null) + for (Parameter param : params) + list.add(param); + } + + @Override + public String getName() { + return name; + } + + @Override + public List getParameters() { + return list; + } + + @Override + public int compareTo(Extension o) { + int cmp = caseSensitive ? name.compareTo(o.getName()) : name.compareToIgnoreCase(o.getName()); + if (cmp != 0) + return cmp; + cmp = getParameters().size() - o.getParameters().size(); + if (cmp != 0) + return (int) Math.signum(cmp); + + List newThisList = getExtensionParameters(this); + List newOtherList = getExtensionParameters(o); + Collections.sort(newThisList); + Collections.sort(newOtherList); + Iterator i = newThisList.iterator(); + Iterator j = newOtherList.iterator(); + while (i.hasNext() && cmp == 0) { + ExtensionParameterImpl iItem = i.next(); + ExtensionParameterImpl jItem = j.next(); + cmp = iItem.compareTo(jItem); + } + return cmp; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof Extension) + return compareTo((Extension) obj) == 0; + return false; + } + + @Override + public int hashCode() { + return toString().hashCode(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder().append(getClass().getSimpleName()).append("(name=\"").append(name) + .append("\", parameters=["); + for (Parameter p : getExtensionParameters(this)) + sb.append(p.toString()).append(","); + sb.append("])"); + return sb.toString(); + } + + /** + * Can pass VI of Extension to have tck impl of Extension.Parameter list + */ + public List getExtensionParameters(Extension extension) { + List params = new ArrayList<>(); + for (Parameter item : extension.getParameters()) + params.add(new ExtensionParameterImpl(item, caseSensitive)); + Collections.sort(params); + return params; + } + + /** + * Transform list of VI Extensions to List of TCK impl of Extension + * + * @param extensions + * @return + */ + public static List transformToImpl(List extensions) { + List list = new ArrayList<>(); + if (extensions != null) + for (Extension ex : extensions) + list.add(new ExtensionImpl(ex)); + // do not sort, the order of extensions is significant + // (rfc6455#section-9.1) + return list; + } + + /** + * For proper output, make sure the list contains ExtensionImpl items, see + * {@link #transformToImpl(List)}, otherwise the output depends on overridden + * {@linkplain #toString()} of given Extensions + */ + public static String toString(List list) { + StringBuilder sb = new StringBuilder().append("{"); + if (list != null) + for (Extension ex : list) + sb.append(ex.toString()).append(";"); + sb.append("}"); + return sb.toString(); + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionParameterImpl.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionParameterImpl.java new file mode 100644 index 0000000000..f4df6cdb76 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/ExtensionParameterImpl.java @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.impl; + +import jakarta.websocket.Extension.Parameter; + +/** + * For comparable purposes, this implementation is either case sensitive, or + * case insensitive. As the extension parameters appear in the http headers and + * RFC 2616 says : Field names are case-insensitive, the default is case + * insensitive. + */ +public class ExtensionParameterImpl implements Parameter, Comparable { + + public ExtensionParameterImpl(String name, String value) { + super(); + this.name = name; + this.value = value; + } + + /** + * @param caseSensitive states whether compares case sensitively or not + */ + public ExtensionParameterImpl(String name, String value, boolean caseSensitive) { + this(name, value); + } + + public ExtensionParameterImpl(Parameter param, boolean caseSensitive) { + this(param.getName(), param.getValue(), caseSensitive); + } + + protected String name; + + protected String value; + + protected boolean caseSensitive = false; + + public void caseSensitive(boolean caseSensitive) { + this.caseSensitive = caseSensitive; + } + + @Override + public String getName() { + return name; + } + + @Override + public String getValue() { + return value; + } + + @Override + public int compareTo(Parameter o) { + int cmp1 = caseSensitive ? name.compareTo(o.getName()) : name.compareToIgnoreCase(o.getName()); + int cmp2 = caseSensitive ? value.compareTo(o.getValue()) : value.compareToIgnoreCase(o.getValue()); + return cmp1 == 0 ? cmp2 : cmp1; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof Parameter) + return compareTo((Parameter) obj) == 0; + else + return false; + } + + @Override + public int hashCode() { + return toString().hashCode(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder().append(getClass().getSimpleName()).append("(name=\"").append(name) + .append("\", value=\"").append(value).append("\")"); + return sb.toString(); + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPingMessage.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPingMessage.java new file mode 100644 index 0000000000..b5fa6980a2 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPingMessage.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.impl; + +/** + * Nothing like Ping message exists in WebSocket Specs, but should the + * SendMessageCallback know the type of message it is to sent, we need to + * specify message type + * + * We inherit PingMessage from PongMessage to do instanceOf as minimum as we can + * in SendMessageCallback + */ +public class StringPingMessage extends StringPongMessage { + + public StringPingMessage(String message) { + super(message); + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPongMessage.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPongMessage.java new file mode 100644 index 0000000000..2df8813237 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/StringPongMessage.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.impl; + +import java.nio.ByteBuffer; + +import jakarta.websocket.PongMessage; + +public class StringPongMessage implements PongMessage { + + protected String message; + + public StringPongMessage(String message) { + if (message.length() > 125) + throw new RuntimeException("StringPongMessage is too long"); + this.message = message; + } + + @Override + public ByteBuffer getApplicationData() { + return ByteBuffer.wrap(message.getBytes()); + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/WaitingSendHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/WaitingSendHandler.java new file mode 100644 index 0000000000..cf8d5b2661 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/impl/WaitingSendHandler.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.impl; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +import jakarta.websocket.SendHandler; +import jakarta.websocket.SendResult; + +/** + * This SendHandler implementation is used to wait maximum given number of + * seconds for SendResult and onResult method called + * + * The main goal is to pass SendHandler object to a caller code + */ +public class WaitingSendHandler implements SendHandler { + private volatile CountDownLatch latch; + + private volatile SendResult result = null; + + public WaitingSendHandler() { + latch = new CountDownLatch(1); + } + + public SendResult waitForResult(long seconds) { + try { + latch.await(seconds, TimeUnit.SECONDS); + } catch (InterruptedException e) { + throw new RuntimeException("Wait has been interrupted", e); + } + if (latch != null && latch.getCount() != 0) + throw new IllegalStateException("onResult has not been called on time"); + if (result == null) + throw new IllegalStateException("SendResult is null"); + return result; + } + + @Override + public void onResult(SendResult result) { + this.result = result; + latch.countDown(); + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/io/StringInputStream.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/io/StringInputStream.java new file mode 100644 index 0000000000..2b31e3fa1b --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/io/StringInputStream.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2014, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.io; + +import java.io.ByteArrayInputStream; + +public class StringInputStream extends ByteArrayInputStream { + + public StringInputStream(String string) { + super(string.getBytes()); + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/io/StringReader.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/io/StringReader.java new file mode 100644 index 0000000000..4c2ecaffad --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/io/StringReader.java @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2014, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.io; + +import java.io.InputStreamReader; + +public class StringReader extends InputStreamReader { + + public StringReader(String string) { + super(new StringInputStream(string)); + } + +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBean.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBean.java new file mode 100644 index 0000000000..d213759fcd --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBean.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.stringbean; + +/** + * This is the object which standard implementation does not have a provider + * for, even though its some simple String holder. It can also be used as + * mutable string. + */ +public class StringBean { + private String value; + + public String get() { + return value; + } + + public void set(String value) { + this.value = value; + } + + @Override + public String toString() { + return "StringBean. To get a value, use rather #get() method."; + } + + public StringBean(String value) { + super(); + this.value = value; + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryDecoder.java new file mode 100644 index 0000000000..107e523fed --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryDecoder.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.stringbean; + +import java.nio.ByteBuffer; + +import jakarta.websocket.DecodeException; +import jakarta.websocket.Decoder.Binary; +import jakarta.websocket.EndpointConfig; + +public class StringBeanBinaryDecoder implements Binary { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public StringBean decode(ByteBuffer arg0) throws DecodeException { + return new StringBean(new String(arg0.array())); + } + + @Override + public boolean willDecode(ByteBuffer arg0) { + return true; + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryEncoder.java new file mode 100644 index 0000000000..f15374486c --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryEncoder.java @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.stringbean; + +import java.nio.ByteBuffer; + +import jakarta.websocket.EncodeException; +import jakarta.websocket.Encoder.Binary; +import jakarta.websocket.EndpointConfig; + +public class StringBeanBinaryEncoder implements Binary { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public ByteBuffer encode(StringBean bean) throws EncodeException { + return ByteBuffer.wrap(bean.get().getBytes()); + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamDecoder.java new file mode 100644 index 0000000000..10a983f60e --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamDecoder.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.stringbean; + +import java.io.IOException; +import java.io.InputStream; + +import com.sun.ts.tests.websocket.common.util.IOUtil; + +import jakarta.websocket.DecodeException; +import jakarta.websocket.Decoder.BinaryStream; +import jakarta.websocket.EndpointConfig; + +public class StringBeanBinaryStreamDecoder implements BinaryStream { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public StringBean decode(InputStream arg0) throws DecodeException, IOException { + String data = IOUtil.readFromStream(arg0); + return new StringBean(data); + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamEncoder.java new file mode 100644 index 0000000000..ac32c2cb8b --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanBinaryStreamEncoder.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.stringbean; + +import java.io.IOException; +import java.io.OutputStream; + +import jakarta.websocket.EncodeException; +import jakarta.websocket.Encoder.BinaryStream; +import jakarta.websocket.EndpointConfig; + +public class StringBeanBinaryStreamEncoder implements BinaryStream { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public void encode(StringBean bean, OutputStream stream) throws EncodeException, IOException { + stream.write(bean.get().getBytes()); + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanClientEndpoint.java new file mode 100644 index 0000000000..71eca293ca --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanClientEndpoint.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.stringbean; + +import com.sun.ts.tests.websocket.common.client.ClientEndpoint; + +public class StringBeanClientEndpoint extends ClientEndpoint { + @Override + protected void appendMessage(StringBean message) { + getMessageBuilder().append(message.get()); + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextDecoder.java new file mode 100644 index 0000000000..2323911a1e --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextDecoder.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.stringbean; + +import jakarta.websocket.DecodeException; +import jakarta.websocket.Decoder.Text; +import jakarta.websocket.EndpointConfig; + +public class StringBeanTextDecoder implements Text { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public StringBean decode(String s) throws DecodeException { + return new StringBean(s); + } + + @Override + public boolean willDecode(String s) { + return true; + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextEncoder.java new file mode 100644 index 0000000000..d244ba8954 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextEncoder.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.stringbean; + +import jakarta.websocket.EncodeException; +import jakarta.websocket.Encoder.Text; +import jakarta.websocket.EndpointConfig; + +public class StringBeanTextEncoder implements Text { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public String encode(StringBean bean) throws EncodeException { + return bean.get(); + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamDecoder.java new file mode 100644 index 0000000000..fef9557184 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamDecoder.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.stringbean; + +import java.io.IOException; +import java.io.Reader; + +import com.sun.ts.tests.websocket.common.util.IOUtil; + +import jakarta.websocket.DecodeException; +import jakarta.websocket.Decoder.TextStream; +import jakarta.websocket.EndpointConfig; + +public class StringBeanTextStreamDecoder implements TextStream { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public StringBean decode(Reader r) throws DecodeException, IOException { + String text = IOUtil.readFromReader(r); + return new StringBean(text); + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamEncoder.java new file mode 100644 index 0000000000..5a4a29362e --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/stringbean/StringBeanTextStreamEncoder.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2013, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.stringbean; + +import java.io.IOException; +import java.io.Writer; + +import jakarta.websocket.EncodeException; +import jakarta.websocket.Encoder.TextStream; +import jakarta.websocket.EndpointConfig; + +public class StringBeanTextStreamEncoder implements TextStream { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public void encode(StringBean bean, Writer writer) throws EncodeException, IOException { + writer.append(bean.get()); + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanDecoder.java new file mode 100644 index 0000000000..2d699039bd --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanDecoder.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2012, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +/* + * $Id:$ + */ +package com.sun.ts.tests.websocket.common.util; + +import jakarta.websocket.DecodeException; +import jakarta.websocket.Decoder; +import jakarta.websocket.EndpointConfig; + +public class BooleanDecoder implements Decoder.Text { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public Boolean decode(String s) throws DecodeException { + return Boolean.valueOf(s); + } + + @Override + public boolean willDecode(String s) { + return true; + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanEncoder.java new file mode 100644 index 0000000000..68d18307ec --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/BooleanEncoder.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2012, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +/* + * $Id:$ + */ +package com.sun.ts.tests.websocket.common.util; + +import jakarta.websocket.EncodeException; +import jakarta.websocket.Encoder; +import jakarta.websocket.EndpointConfig; + +public class BooleanEncoder implements Encoder.Text { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public String encode(Boolean b) throws EncodeException { + + return b.toString(); + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/ByteDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/ByteDecoder.java new file mode 100644 index 0000000000..11b025d575 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/ByteDecoder.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2012, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +/* + * $Id:$ + */ +package com.sun.ts.tests.websocket.common.util; + +import jakarta.websocket.DecodeException; +import jakarta.websocket.Decoder; +import jakarta.websocket.EndpointConfig; + +public class ByteDecoder implements Decoder.Text { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public Byte decode(String s) throws DecodeException { + return Byte.valueOf(s); + } + + @Override + public boolean willDecode(String s) { + return true; + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/ErrorEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/ErrorEncoder.java new file mode 100644 index 0000000000..507ee4428c --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/ErrorEncoder.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2012, 2020 Oracle and/or its affiliates and others. + * All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +/* + * $Id:$ + */ +package com.sun.ts.tests.websocket.common.util; + +import jakarta.websocket.EncodeException; +import jakarta.websocket.Encoder; +import jakarta.websocket.EndpointConfig; + +public class ErrorEncoder implements Encoder.Text { + + @Override + public void init(EndpointConfig config) { + } + + @Override + public String encode(String data) throws EncodeException { + throw new EncodeException("Something went horribly wrong", data); + } + + @Override + public void destroy() { + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/IOUtil.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/IOUtil.java new file mode 100644 index 0000000000..1e7db68e63 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/IOUtil.java @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.util; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.io.Reader; +import java.io.StringWriter; +import java.nio.ByteBuffer; + +/** + * A class that works with java.io The patterns that would reappear + */ +public abstract class IOUtil { + + public static final// + String readFromReader(Reader reader) throws IOException { + BufferedReader br = new BufferedReader(reader); + StringBuilder sb = new StringBuilder(); + String line = null; + while ((line = br.readLine()) != null) { + if (sb.length() != 0) + sb.append("\n"); + sb.append(line); + } + br.close(); + return sb.toString(); + } + + public static final// + String printStackTrace(Throwable t) { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + t.printStackTrace(pw); + String value = sw.toString(); + pw.close(); + return value; + } + + public static final// + String readFromStream(InputStream stream) throws IOException { + InputStreamReader isr = new InputStreamReader(stream); + return readFromReader(isr); + } + + public static final// + String byteBufferToString(ByteBuffer buffer) { + byte[] ret = new byte[buffer.remaining()]; + + if (buffer.hasArray()) { + byte[] array = buffer.array(); + System.arraycopy(array, buffer.arrayOffset() + buffer.position(), ret, 0, ret.length); + } else { + buffer.asReadOnlyBuffer().get(ret); + } + + return new String(ret); + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/MessageValidator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/MessageValidator.java new file mode 100644 index 0000000000..85d698d0b5 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/MessageValidator.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +/* + * $Id:$ + */ +package com.sun.ts.tests.websocket.common.util; + +import java.io.IOException; +import java.lang.System.Logger; +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; + +public class MessageValidator { + private static final Logger logger = System.getLogger(MessageValidator.class.getName()); + + public static boolean checkSearchStrings(String expected, String actual) throws IOException { + + List list = new ArrayList<>(); + StringTokenizer st = new StringTokenizer(expected, "|"); + while (st.hasMoreTokens()) { + list.add(st.nextToken()); + } + + boolean found = true; + if (list != null && actual != null) { + + String search = null; + + for (int i = 0, n = list.size(), startIdx = 0, acLength = actual.length(); i < n; i++) { + + // set the startIdx to the same value as the actual message length + // and let the test fail (prevents index based runtime exceptions). + if (startIdx >= acLength) { + startIdx = acLength; + } + + search = (String) list.get(i); + int searchIdx = actual.indexOf(search, startIdx); + logger.log(Logger.Level.INFO,"[MessageValidator] Scanning for " + "search string: '" + search + "' starting at index " + + "location: " + startIdx); + if (searchIdx < 0) { + found = false; + StringBuffer sb = new StringBuffer(1024); + sb.append("[MessageValidator] Unable to find the following "); + sb.append("search string"); + sb.append(search).append("' at index: "); + sb.append(startIdx); + logger.log(Logger.Level.ERROR,sb.toString()); + break; + } + + logger.log(Logger.Level.INFO,"[MessageValidator] Found search string: '" + search + "' at index '" + searchIdx); + // the new searchIdx is the old index plus the lenght of the + // search string. + startIdx = searchIdx + search.length(); + } + } + return found; + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/SessionUtil.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/SessionUtil.java new file mode 100644 index 0000000000..b4feb62b06 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/SessionUtil.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2020 Contributors to the Eclipse Foundation + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ +package com.sun.ts.tests.websocket.common.util; + +import java.util.concurrent.TimeUnit; + +import jakarta.websocket.Session; + +public class SessionUtil { + + private SessionUtil() { + } + + public static void waitUntilClosed(Session session, long timeout, TimeUnit unit) { + long timeoutMillis = unit.toMillis(timeout); + while (session.isOpen() && timeoutMillis > 0) { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + // Clear the interrupt flag + Thread.interrupted(); + // Exit the loop + break; + } + timeoutMillis -= 100; + } + } +} diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/StringUtil.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/StringUtil.java new file mode 100644 index 0000000000..4f5760c974 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/common/util/StringUtil.java @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.common.util; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; + +public class StringUtil { + + public static final String WEBSOCKET_SUBPROTOCOLS_0 = "MBWS.huawei.com"; + + public static final String WEBSOCKET_SUBPROTOCOLS_1 = "MBLWS.huawei.com"; + + public static final String WEBSOCKET_SUBPROTOCOLS_2 = "soap"; + + public static final String WEBSOCKET_SUBPROTOCOLS_3 = "wamp"; + + public static final String WEBSOCKET_SUBPROTOCOLS_4 = "v10.stomp"; + + public static final String WEBSOCKET_SUBPROTOCOLS_5 = "v11.stomp"; + + public static final String WEBSOCKET_SUBPROTOCOLS_6 = "v12.stomp"; + + public static final String WEBSOCKET_SUBPROTOCOLS_7 = "ocpp1.2"; + + public static final String WEBSOCKET_SUBPROTOCOLS_8 = "ocpp1.5"; + + public static final String WEBSOCKET_SUBPROTOCOLS_9 = "ocpp2.0"; + + /** + * Registered subprotocols From IANA WebSocket Protocol Registries + * http://www.iana.org/assignments/websocket/websocket.xml + */ + public static final String[] WEBSOCKET_SUBPROTOCOLS = { WEBSOCKET_SUBPROTOCOLS_0, WEBSOCKET_SUBPROTOCOLS_1, + WEBSOCKET_SUBPROTOCOLS_2, WEBSOCKET_SUBPROTOCOLS_3, WEBSOCKET_SUBPROTOCOLS_4, WEBSOCKET_SUBPROTOCOLS_5, + WEBSOCKET_SUBPROTOCOLS_6, WEBSOCKET_SUBPROTOCOLS_7, WEBSOCKET_SUBPROTOCOLS_8, WEBSOCKET_SUBPROTOCOLS_9 }; + + /** + * @param objects to be put in a sentence + * @return objects in a single string , each object separated by " " + */ + public static String objectsToString(Object... objects) { + return objectsToStringWithDelimiter(" ", objects); + } + + public static String objectsToStringWithDelimiter(String delimiter, Object... objects) { + StringBuilder sb = new StringBuilder(); + if (objects != null) + for (Object o : objects) { + if (o.getClass().isArray()) + sb.append(objectsToStringWithDelimiter(delimiter, (Object[]) o)); + else if (Collection.class.isInstance(o)) + sb.append(collectionToStringWithDelimiter(delimiter, (Collection) o)); + else + sb.append(o).append(delimiter); + } + return sb.toString().trim(); + } + + /** + * @param objects to be put in a sentence + * @return objects in a single string , each object separated by delimiter + */ + public static String collectionToStringWithDelimiter(String delimiter, Collection objects) { + return objects == null ? "" : objectsToStringWithDelimiter(delimiter, objects.toArray()); + } + + /** + * @param objects to be put in a sentence + * @return objects in a single string , each object separated by " " + */ + public static String collectionToString(Collection objects) { + return collectionToStringWithDelimiter(" ", objects); + } + + /** + * Check that every single String in one List is contained in other List + * + * @param where The other list where String items are searched + * @param what List of String items that are searched in the other List + * @param caseSensitive define whether the occurrence of Strings is case + * sensitive + * @return true iff every single item in {@link where} List is in {@link what} + * List + */ + public static boolean // + contains(List where, List what, boolean caseSensitive) { + // do not use slow and memory consuming contains(List where, List + // what) + String whereInOne = objectsToStringWithDelimiter("", where); + if (!caseSensitive) + whereInOne = whereInOne.toLowerCase(); + for (String whatItem : what) { + boolean found = false; + if (caseSensitive) + found = whereInOne.contains(whatItem); + else + found = whereInOne.contains(whatItem.toLowerCase()); + if (!found) + return false; + } + return true; + } + + /** + * Check that every single T in one List is contained in other List + * + * @param where The other list where T items are searched + * @param what List of T items that are searched in the other List + * @param comparator see {@link Comparator} + * @return true iff every single item in {@link where} List is in {@link what} + * List + */ + public static boolean // + contains(List where, List what, Comparator comparator) { + where = new ArrayList<>(where); // new collection not to affect + what = new ArrayList<>(what); // the original by sorting + Collections.sort(what, comparator); + Collections.sort(where, comparator); + Iterator j = where.iterator(); + for (Iterator i = what.iterator(); i.hasNext();) { + T whatItem = i.next(); + T whereItem; + do { + if (!j.hasNext()) + return false; + whereItem = j.next(); + } while (comparator.compare(whatItem, whereItem) != 0); + } + return true; + } + + /** + * Check that every single T in one List is contained in other List + * + * @param where The other list where T items are searched + * @param what List of T items that are searched in the other List + * @return true iff every single item in {@link where} List is in {@link what} + * List + */ + public static > // + boolean contains(List where, List what) { + where = new ArrayList<>(where); // new collection not to affect + what = new ArrayList<>(what); // the original by sorting + Collections.sort(what); + Collections.sort(where); + return containsInOrder(where, what); + } + + /** + * Check that every single T in one List is contained in other List in given + * order + * + * @param where The other list where T items are searched + * @param what List of T items that are searched in the other List + * @return true iff every single item in {@link where} List is in {@link what} + * List + */ + public static > // + boolean containsInOrder(List where, List what) { + Iterator j = where.iterator(); + for (Iterator i = what.iterator(); i.hasNext();) { + T whatItem = i.next(); + T whereItem; + do { + if (!j.hasNext()) + return false; + whereItem = j.next(); + } while (whatItem.compareTo(whereItem) != 0); + } + return true; + } +} diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/ClientConfiguratorHolderClientConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/ClientConfiguratorHolderClientConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/ClientConfiguratorHolderClientConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/ClientConfiguratorHolderClientConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/GetNegotiatedSubprotocolConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/GetNegotiatedSubprotocolConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/GetNegotiatedSubprotocolConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/GetNegotiatedSubprotocolConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/OPS.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/OPS.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/OPS.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/OPS.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCCloseClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCCloseClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCCloseClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCCloseClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCConfiguratedClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCConfiguratedClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCConfiguratedClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCConfiguratedClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCEchoServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCEchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCEchoServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCEchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCErrorClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCErrorClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCErrorClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCErrorClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCMatchedSubprotocolClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCMatchedSubprotocolClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCMatchedSubprotocolClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCMatchedSubprotocolClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCSubprotocolServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCSubprotocolServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCSubprotocolServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCSubprotocolServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCUnmatchedSubprotocolClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCUnmatchedSubprotocolClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCUnmatchedSubprotocolClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSCUnmatchedSubprotocolClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpoint/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/WSTestServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/WSTestServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/WSTestServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/WSTestServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/OPS.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/OPS.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/OPS.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/OPS.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryDecoderAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryDecoderAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryDecoderAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryDecoderAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryDecoderClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryDecoderClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryDecoderClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryDecoderClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryStreamDecoderAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryStreamDecoderAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryStreamDecoderAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryStreamDecoderAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryStreamDecoderClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryStreamDecoderClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryStreamDecoderClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSBinaryStreamDecoderClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayPartialAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayPartialAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayPartialAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayPartialAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayPartialClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayPartialClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayPartialClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteArrayPartialClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferPartialAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferPartialAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferPartialAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferPartialAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferPartialClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferPartialClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferPartialClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSByteBufferPartialClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSCServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSCServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSCServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSCServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSDefaultMaxLengthClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSDefaultMaxLengthClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSDefaultMaxLengthClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSDefaultMaxLengthClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullBooleanAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullBooleanAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullBooleanAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullBooleanAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullBooleanClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullBooleanClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullBooleanClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullBooleanClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullByteAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullByteAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullByteAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullByteAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullByteClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullByteClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullByteClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullByteClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullCharAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullCharAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullCharAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullCharAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullCharClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullCharClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullCharClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullCharClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullDoubleAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullDoubleAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullDoubleAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullDoubleAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullDoubleClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullDoubleClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullDoubleClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullDoubleClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullFloatAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullFloatAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullFloatAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullFloatAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullFloatClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullFloatClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullFloatClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullFloatClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullIntAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullIntAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullIntAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullIntAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullIntClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullIntClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullIntClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullIntClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullLongAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullLongAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullLongAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullLongAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullLongClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullLongClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullLongClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullLongClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullShortAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullShortAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullShortAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullShortAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullShortClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullShortClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullShortClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSFullShortClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSInputStreamAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSInputStreamAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSInputStreamAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSInputStreamAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSInputStreamClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSInputStreamClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSInputStreamClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSInputStreamClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSMaxLengthClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSMaxLengthClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSMaxLengthClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSMaxLengthClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPongMessageAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPongMessageAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPongMessageAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPongMessageAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPongMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPongMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPongMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPongMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveBooleanAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveBooleanAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveBooleanAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveBooleanAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveBooleanClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveBooleanClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveBooleanClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveBooleanClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveByteAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveByteAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveByteAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveByteAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveByteClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveByteClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveByteClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveByteClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveCharAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveCharAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveCharAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveCharAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveCharClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveCharClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveCharClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveCharClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveDoubleAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveDoubleAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveDoubleAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveDoubleAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveDoubleClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveDoubleClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveDoubleClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveDoubleClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveFloatAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveFloatAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveFloatAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveFloatAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveFloatClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveFloatClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveFloatClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveFloatClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveIntAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveIntAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveIntAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveIntAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveIntClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveIntClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveIntClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveIntClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveLongAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveLongAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveLongAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveLongAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveLongClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveLongClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveLongClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveLongClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveShortAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveShortAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveShortAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveShortAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveShortClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveShortClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveShortClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSPrimitiveShortClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSReaderAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSReaderAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSReaderAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSReaderAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSReaderClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSReaderClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSReaderClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSReaderClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringPartialAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringPartialAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringPartialAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringPartialAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringPartialClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringPartialClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringPartialClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSStringPartialClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextDecoderAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextDecoderAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextDecoderAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextDecoderAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextDecoderClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextDecoderClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextDecoderClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextDecoderClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextStreamDecoderAndSessionClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextStreamDecoderAndSessionClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextStreamDecoderAndSessionClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextStreamDecoderAndSessionClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextStreamDecoderClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextStreamDecoderClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextStreamDecoderClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointonmessage/WSTextStreamDecoderClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCBinaryEncoderClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCBinaryEncoderClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCBinaryEncoderClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCBinaryEncoderClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCBinaryStreamEncoderClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCBinaryStreamEncoderClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCBinaryStreamEncoderClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCBinaryStreamEncoderClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCByteArrayClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCByteArrayClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCByteArrayClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCByteArrayClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCByteBufferClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCByteBufferClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCByteBufferClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCByteBufferClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullBooleanClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullBooleanClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullBooleanClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullBooleanClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullByteClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullByteClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullByteClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullByteClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullCharClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullCharClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullCharClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullCharClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullDoubleClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullDoubleClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullDoubleClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullDoubleClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullFloatClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullFloatClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullFloatClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullFloatClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullIntClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullIntClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullIntClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullIntClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullLongClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullLongClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullLongClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullLongClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullShortClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullShortClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullShortClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCFullShortClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveBooleanClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveBooleanClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveBooleanClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveBooleanClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveByteClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveByteClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveByteClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveByteClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveCharClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveCharClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveCharClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveCharClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveDoubleClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveDoubleClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveDoubleClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveDoubleClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveFloatClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveFloatClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveFloatClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveFloatClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveIntClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveIntClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveIntClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveIntClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveLongClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveLongClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveLongClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveLongClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveShortClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveShortClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveShortClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCPrimitiveShortClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCTextEncoderClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCTextEncoderClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCTextEncoderClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCTextEncoderClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCTextStreamEncoderClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCTextStreamEncoderClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCTextStreamEncoderClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSCTextStreamEncoderClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointreturntype/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyBinaryStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/InitDestroyTextStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/Logger.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/Logger.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/Logger.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/Logger.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryDecoders.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryDecoders.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryDecoders.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryDecoders.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithBinaryStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextDecoders.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextDecoders.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextDecoders.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextDecoders.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCEndpointWithTextStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryStreamDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryStreamDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryStreamDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryStreamDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDBinaryStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextStreamDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextStreamDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextStreamDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextStreamDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCIDTextStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCLoggerServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCLoggerServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCLoggerServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCLoggerServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCSimpleBinaryEchoServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCSimpleBinaryEchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCSimpleBinaryEchoServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCSimpleBinaryEchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCSimpleEchoServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCSimpleEchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCSimpleEchoServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSCSimpleEchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSIDTextEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSIDTextEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSIDTextEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSIDTextEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSWillDecodeBinaryDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSWillDecodeBinaryDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSWillDecodeBinaryDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSWillDecodeBinaryDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSWillDecodeTextDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSWillDecodeTextDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSWillDecodeTextDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WSWillDecodeTextDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeFirstBinaryDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeFirstBinaryDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeFirstBinaryDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeFirstBinaryDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeFirstTextDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeFirstTextDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeFirstTextDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeFirstTextDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeSecondBinaryDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeSecondBinaryDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeSecondBinaryDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeSecondBinaryDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeSecondTextDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeSecondTextDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeSecondTextDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/coder/WillDecodeSecondTextDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/LibrariedQuestionaire.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/LibrariedQuestionaire.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/LibrariedQuestionaire.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/LibrariedQuestionaire.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKClassLoader.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKClassLoader.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKClassLoader.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKClassLoader.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKContainerProvider.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKContainerProvider.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKContainerProvider.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKContainerProvider.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKWebSocketContainer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKWebSocketContainer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKWebSocketContainer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/TCKWebSocketContainer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSCServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSCServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSCServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSCServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSClientIT.java similarity index 96% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSClientIT.java index 7c0d7d803a..01af52d91e 100644 --- a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSClientIT.java +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/WSClientIT.java @@ -23,7 +23,7 @@ import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit5.ArquillianExtension; import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.asset.StringAsset; +import org.jboss.shrinkwrap.api.asset.ByteArrayAsset; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.jupiter.api.Test; @@ -54,7 +54,7 @@ public static WebArchive createDeployment() throws IOException { TCKContainerProvider.class); InputStream inStream = WSClientIT.class.getClassLoader().getResourceAsStream( "com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/jakarta.websocket.ContainerProvider"); - StringAsset containerProvider = new StringAsset(toString(inStream)); + ByteArrayAsset containerProvider = new ByteArrayAsset(inStream); containerProviderJar.addAsManifestResource(containerProvider, "services/jakarta.websocket.ContainerProvider"); archive.addAsLibrary(containerProviderJar); return archive; diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/vi/WSCServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/vi/WSCServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/vi/WSCServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/vi/WSCServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/vi/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/vi/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/vi/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/vi/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/OPS.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/OPS.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/OPS.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/OPS.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCCloseClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCCloseClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCCloseClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCCloseClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCEchoServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCEchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCEchoServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCEchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCErrorClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCErrorClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCErrorClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSCErrorClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/client/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCCloseServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCCloseServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCCloseServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCCloseServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCErrorServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCErrorServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCErrorServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCErrorServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCMsgServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCMsgServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCMsgServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSCMsgServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/endpoint/server/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/EchoConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/EchoConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/EchoConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/EchoConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/SetHeadersConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/SetHeadersConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/SetHeadersConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/SetHeadersConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCEchoServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCEchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCEchoServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCEchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCSetHeadersServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCSetHeadersServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCSetHeadersServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/handshakeresponse/WSCSetHeadersServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryDecoderEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryDecoderEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryDecoderEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryDecoderEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryEncoderEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryEncoderEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryEncoderEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryEncoderEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryStreamDecoderEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryStreamDecoderEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryStreamDecoderEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryStreamDecoderEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryStreamEncoderEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryStreamEncoderEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryStreamEncoderEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/BinaryStreamEncoderEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextDecoderEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextDecoderEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextDecoderEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextDecoderEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextEncoderEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextEncoderEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextEncoderEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextEncoderEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextStreamDecoderEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextStreamDecoderEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextStreamDecoderEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextStreamDecoderEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextStreamEncoderEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextStreamEncoderEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextStreamEncoderEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/TextStreamEncoderEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryStreamDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryStreamDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryStreamDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryStreamDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCBinaryStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextStreamDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextStreamDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextStreamDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextStreamDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCTextStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCWillDecodeBinaryDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCWillDecodeBinaryDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCWillDecodeBinaryDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCWillDecodeBinaryDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCWillDecodeTextDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCWillDecodeTextDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCWillDecodeTextDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSCWillDecodeTextDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSProgramaticClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSProgramaticClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSProgramaticClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WSProgramaticClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WillDecodeBinaryDecoderEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WillDecodeBinaryDecoderEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WillDecodeBinaryDecoderEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WillDecodeBinaryDecoderEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WillDecodeTextDecoderEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WillDecodeTextDecoderEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WillDecodeTextDecoderEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/programaticcoder/WillDecodeTextDecoderEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/PongMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/PongMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/PongMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/PongMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/AsyncEndpointCallback.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/AsyncEndpointCallback.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/AsyncEndpointCallback.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/AsyncEndpointCallback.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/OPS.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/OPS.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/OPS.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/OPS.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/PokingEndpointCallback.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/PokingEndpointCallback.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/PokingEndpointCallback.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/PokingEndpointCallback.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingBinaryCoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingBinaryCoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingBinaryCoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingBinaryCoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingStringBean.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingStringBean.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingStringBean.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingStringBean.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingStringBeanEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingStringBeanEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingStringBeanEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingStringBeanEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingTextCoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingTextCoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingTextCoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/ThrowingTextCoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCOtherSideServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCOtherSideServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCOtherSideServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCOtherSideServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCServerSideServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCServerSideServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCServerSideServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCServerSideServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCThrowingServerSideServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCThrowingServerSideServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCThrowingServerSideServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSCThrowingServerSideServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/async/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/BasicEndpointCallback.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/BasicEndpointCallback.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/BasicEndpointCallback.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/BasicEndpointCallback.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/HolderForThrowingEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/HolderForThrowingEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/HolderForThrowingEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/HolderForThrowingEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/OPS.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/OPS.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/OPS.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/OPS.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/PokingEndpointCallback.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/PokingEndpointCallback.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/PokingEndpointCallback.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/PokingEndpointCallback.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/ThrowingEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/ThrowingEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/ThrowingEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/ThrowingEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSCOtherSideServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSCOtherSideServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSCOtherSideServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSCOtherSideServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSCServerSideServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSCServerSideServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSCServerSideServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSCServerSideServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/basic/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderBool.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderBool.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderBool.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderBool.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderByte.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderByte.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderByte.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderByte.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderChar.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderChar.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderChar.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderChar.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderDouble.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderDouble.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderDouble.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderDouble.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderFloat.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderFloat.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderFloat.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderFloat.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderInt.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderInt.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderInt.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderInt.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderLong.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderLong.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderLong.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderLong.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderShort.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderShort.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderShort.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryCoderShort.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderBool.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderBool.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderBool.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderBool.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderByte.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderByte.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderByte.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderByte.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderChar.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderChar.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderChar.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderChar.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderDouble.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderDouble.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderDouble.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderDouble.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderFloat.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderFloat.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderFloat.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderFloat.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderInt.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderInt.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderInt.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderInt.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderLong.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderLong.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderLong.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderLong.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderShort.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderShort.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderShort.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/BinaryStreamCoderShort.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClass.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClass.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClass.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClass.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassBinary.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassBinary.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassBinary.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassBinary.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassBinaryStream.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassBinaryStream.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassBinaryStream.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassBinaryStream.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassText.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassText.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassText.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassText.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassTextStream.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassTextStream.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassTextStream.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/CoderSuperClassTextStream.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/OPS.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/OPS.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/OPS.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/OPS.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderBool.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderBool.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderBool.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderBool.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderByte.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderByte.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderByte.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderByte.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderChar.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderChar.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderChar.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderChar.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderDouble.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderDouble.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderDouble.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderDouble.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderFloat.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderFloat.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderFloat.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderFloat.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderInt.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderInt.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderInt.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderInt.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderLong.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderLong.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderLong.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderLong.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderShort.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderShort.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderShort.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextCoderShort.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderBool.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderBool.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderBool.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderBool.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderByte.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderByte.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderByte.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderByte.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderChar.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderChar.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderChar.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderChar.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderDouble.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderDouble.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderDouble.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderDouble.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderFloat.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderFloat.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderFloat.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderFloat.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderInt.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderInt.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderInt.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderInt.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderLong.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderLong.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderLong.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderLong.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderShort.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderShort.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderShort.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/TextStreamCoderShort.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCBinaryClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCBinaryClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCBinaryClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCBinaryClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCBinaryStreamClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCBinaryStreamClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCBinaryStreamClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCBinaryStreamClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCEchoServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCEchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCEchoServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCEchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCSuperEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCSuperEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCSuperEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCSuperEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCTextClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCTextClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCTextClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCTextClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCTextStreamClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCTextStreamClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCTextStreamClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/WSCTextStreamClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/AsyncEndpointCallback.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/AsyncEndpointCallback.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/AsyncEndpointCallback.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/AsyncEndpointCallback.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCBinaryServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCBinaryServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCBinaryServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCBinaryServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCBinaryStreamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCBinaryStreamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCBinaryStreamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCBinaryStreamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCCommonServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCCommonServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCCommonServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCCommonServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCTextServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCTextServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCTextServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCTextServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCTextStreamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCTextStreamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCTextStreamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSCTextStreamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/async/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/AsyncEndpointCallback.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/AsyncEndpointCallback.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/AsyncEndpointCallback.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/AsyncEndpointCallback.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCBinaryServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCBinaryServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCBinaryServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCBinaryServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCBinaryStreamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCBinaryStreamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCBinaryStreamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCBinaryStreamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCCommonServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCCommonServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCCommonServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCCommonServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCTextServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCTextServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCTextServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCTextServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCTextStreamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCTextStreamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCTextStreamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSCTextStreamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/asyncwithhandler/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCBinaryServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCBinaryServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCBinaryServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCBinaryServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCBinaryStreamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCBinaryStreamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCBinaryStreamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCBinaryStreamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCCommonServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCCommonServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCCommonServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCCommonServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCTextServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCTextServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCTextServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCTextServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCTextStreamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCTextStreamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCTextStreamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSCTextStreamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/remoteendpoint/usercoder/basic/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/CaseInsensitiveHeaderNamesConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/CaseInsensitiveHeaderNamesConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/CaseInsensitiveHeaderNamesConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/CaseInsensitiveHeaderNamesConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetQueryStringConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetQueryStringConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetQueryStringConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetQueryStringConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetRequestUriConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetRequestUriConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetRequestUriConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetRequestUriConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetUserPrincipalNotAuthenticatedConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetUserPrincipalNotAuthenticatedConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetUserPrincipalNotAuthenticatedConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/GetUserPrincipalNotAuthenticatedConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/IsUserInRoleNotAuthenticatedConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/IsUserInRoleNotAuthenticatedConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/IsUserInRoleNotAuthenticatedConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/IsUserInRoleNotAuthenticatedConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/PathParamConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/PathParamConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/PathParamConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/PathParamConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/ReadonlyGetHeadersConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/ReadonlyGetHeadersConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/ReadonlyGetHeadersConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/ReadonlyGetHeadersConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/ReadonlyGetParamsConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/ReadonlyGetParamsConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/ReadonlyGetParamsConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/ReadonlyGetParamsConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCCaseInsensitiveHeaderNamesServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCCaseInsensitiveHeaderNamesServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCCaseInsensitiveHeaderNamesServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCCaseInsensitiveHeaderNamesServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetOneParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetOneParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetOneParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetOneParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetQueryStringServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetQueryStringServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetQueryStringServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetQueryStringServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetTwoParamsServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetTwoParamsServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetTwoParamsServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetTwoParamsServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetUserPrincipalServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetUserPrincipalServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetUserPrincipalServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCGetUserPrincipalServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCIsUserInRoleServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCIsUserInRoleServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCIsUserInRoleServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCIsUserInRoleServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCReadOnlyGetHeadersServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCReadOnlyGetHeadersServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCReadOnlyGetHeadersServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCReadOnlyGetHeadersServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCReadOnlyGetParameterMapServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCReadOnlyGetParameterMapServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCReadOnlyGetParameterMapServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCReadOnlyGetParameterMapServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCRequestUriServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCRequestUriServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCRequestUriServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/handshakerequest/WSCRequestUriServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/OPS.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/OPS.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/OPS.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/OPS.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS0StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS0StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS0StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS0StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS10StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS10StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS10StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS10StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS11StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS11StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS11StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS11StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS1StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS1StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS1StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS1StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2DifferentPathParamsServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2DifferentPathParamsServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2DifferentPathParamsServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2DifferentPathParamsServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2FullDifferentPathParamsServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2FullDifferentPathParamsServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2FullDifferentPathParamsServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2FullDifferentPathParamsServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS2StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS3StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS3StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS3StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS3StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS4StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS4StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS4StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS4StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS5StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS5StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS5StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS5StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS6StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS6StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS6StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS6StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS7StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS7StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS7StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS7StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS8StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS8StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS8StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS8StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS9StringPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS9StringPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS9StringPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WS9StringPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSDirectLongPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSDirectLongPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSDirectLongPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSDirectLongPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSOnClosePathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSOnClosePathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSOnClosePathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/pathparam/WSOnClosePathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/OtherAppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/OtherAppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/OtherAppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/OtherAppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/UnusedServerEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/UnusedServerEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/UnusedServerEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/UnusedServerEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/UsedServerEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/UsedServerEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/UsedServerEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/UsedServerEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSConfiguredServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSConfiguredServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSConfiguredServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSConfiguredServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSOtherUsedServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSOtherUsedServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSOtherUsedServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSOtherUsedServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSUnusedServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSUnusedServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSUnusedServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSUnusedServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSUsedServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSUsedServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSUsedServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfig/WSUsedServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/OtherAppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/OtherAppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/OtherAppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/OtherAppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/WSLibClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/WSLibClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/WSLibClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverapplicationconfiginlib/WSLibClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/CountingConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/CountingConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/CountingConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/CountingConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/SimpleConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/SimpleConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/SimpleConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/SimpleConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSAbstractServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSAbstractServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSAbstractServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSAbstractServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSConfiguredServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSConfiguredServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSConfiguredServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSConfiguredServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSCountConfiguratorInstancesFirstServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSCountConfiguratorInstancesFirstServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSCountConfiguratorInstancesFirstServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSCountConfiguratorInstancesFirstServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSCountConfiguratorInstancesSecondServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSCountConfiguratorInstancesSecondServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSCountConfiguratorInstancesSecondServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSCountConfiguratorInstancesSecondServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSDecodedServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSDecodedServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSDecodedServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSDecodedServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSDefaultServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSDefaultServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSDefaultServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSDefaultServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSEncodedServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSEncodedServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSEncodedServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSEncodedServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSSubprotocoledServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSSubprotocoledServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSSubprotocoledServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpoint/WSSubprotocoledServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ConfiguratorServerEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ConfiguratorServerEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ConfiguratorServerEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ConfiguratorServerEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ExtensionsServerEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ExtensionsServerEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ExtensionsServerEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ExtensionsServerEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ServerEndpointConfigConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ServerEndpointConfigConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ServerEndpointConfigConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/ServerEndpointConfigConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/SubprotocolsServerEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/SubprotocolsServerEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/SubprotocolsServerEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/SubprotocolsServerEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/UserPropertiesConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/UserPropertiesConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/UserPropertiesConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/UserPropertiesConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/UserPropertiesServerEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/UserPropertiesServerEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/UserPropertiesServerEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/UserPropertiesServerEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSAnnotatedConfiguratorServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSAnnotatedConfiguratorServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSAnnotatedConfiguratorServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSAnnotatedConfiguratorServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSAnnotatedSubprotocolsServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSAnnotatedSubprotocolsServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSAnnotatedSubprotocolsServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSAnnotatedSubprotocolsServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticConfiguratorServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticConfiguratorServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticConfiguratorServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticConfiguratorServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticExtensionsServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticExtensionsServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticExtensionsServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticExtensionsServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticSubprotocolsServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticSubprotocolsServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticSubprotocolsServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticSubprotocolsServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticUserPropertiesServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticUserPropertiesServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticUserPropertiesServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/WSProgramaticUserPropertiesServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/WSCommonServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/WSCommonServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/WSCommonServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/builder/WSCommonServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ContainerDefaultConfiguratorA.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ContainerDefaultConfiguratorA.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ContainerDefaultConfiguratorA.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ContainerDefaultConfiguratorA.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ContainerDefaultConfiguratorB.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ContainerDefaultConfiguratorB.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ContainerDefaultConfiguratorB.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ContainerDefaultConfiguratorB.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ExtensionsConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ExtensionsConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ExtensionsConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ExtensionsConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ExtensionsServerEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ExtensionsServerEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ExtensionsServerEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ExtensionsServerEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/GetEndpointInstanceConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/GetEndpointInstanceConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/GetEndpointInstanceConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/GetEndpointInstanceConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/GetNegotiatedSubprotocolConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/GetNegotiatedSubprotocolConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/GetNegotiatedSubprotocolConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/GetNegotiatedSubprotocolConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ModifyHandshakeConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ModifyHandshakeConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ModifyHandshakeConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/ModifyHandshakeConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/OriginConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/OriginConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/OriginConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/OriginConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/OriginConfiguratorReturningFalse.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/OriginConfiguratorReturningFalse.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/OriginConfiguratorReturningFalse.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/OriginConfiguratorReturningFalse.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/SubprotocolsServerEndpointConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/SubprotocolsServerEndpointConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/SubprotocolsServerEndpointConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/SubprotocolsServerEndpointConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCExtensionsServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCExtensionsServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCExtensionsServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCExtensionsServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetContainerDefaultConfiguratorServerA.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetContainerDefaultConfiguratorServerA.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetContainerDefaultConfiguratorServerA.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetContainerDefaultConfiguratorServerA.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetContainerDefaultConfiguratorServerB.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetContainerDefaultConfiguratorServerB.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetContainerDefaultConfiguratorServerB.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetContainerDefaultConfiguratorServerB.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetEndpointInstanceServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetEndpointInstanceServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetEndpointInstanceServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCGetEndpointInstanceServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCModifyHandshakeServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCModifyHandshakeServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCModifyHandshakeServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCModifyHandshakeServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServerReturningFalse.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServerReturningFalse.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServerReturningFalse.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServerReturningFalse.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServerReturningFalseConfigurator.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServerReturningFalseConfigurator.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServerReturningFalseConfigurator.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCOriginServerReturningFalseConfigurator.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCSubprotocolServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCSubprotocolServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCSubprotocolServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/server/serverendpointconfig/configurator/WSCSubprotocolServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer1.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer1.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer1.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer1.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer2.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer2.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer2.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSCloseTestServer2.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerByte.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerByte.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerByte.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerByte.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerPathParam.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerPathParam.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerPathParam.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerPathParam.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerString.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerString.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerString.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/WSTestServerString.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedBinaryClient.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedBinaryClient.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedBinaryClient.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedBinaryClient.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedTextClient.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedTextClient.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedTextClient.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedTextClient.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedThrowingClient.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedThrowingClient.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedThrowingClient.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/AnnotatedThrowingClient.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteArrayMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteArrayMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteArrayMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteArrayMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteArrayPartialMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteArrayPartialMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteArrayPartialMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteArrayPartialMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteBufferMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteBufferMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteBufferMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteBufferMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteBufferPartialMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteBufferPartialMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteBufferPartialMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ByteBufferPartialMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/InputStreamMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/InputStreamMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/InputStreamMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/InputStreamMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/LinkedListHashSetMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/LinkedListHashSetMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/LinkedListHashSetMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/LinkedListHashSetMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/MixedProgramaticEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/MixedProgramaticEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/MixedProgramaticEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/MixedProgramaticEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/PongMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/PongMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/PongMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/PongMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ReaderMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ReaderMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ReaderMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/ReaderMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringBeanMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringBeanMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringBeanMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringBeanMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringListWholeMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringListWholeMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringListWholeMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringListWholeMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringPartialMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringPartialMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringPartialMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringPartialMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringTextMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringTextMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringTextMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/StringTextMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCBinaryEchoServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCBinaryEchoServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCBinaryEchoServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCBinaryEchoServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCEchoServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCEchoServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCEchoServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/client/WSCEchoServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/AlternativeInputStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/AlternativeInputStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/AlternativeInputStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/AlternativeInputStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/AlternativeReaderDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/AlternativeReaderDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/AlternativeReaderDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/AlternativeReaderDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/LinkedListHashSetTextDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/LinkedListHashSetTextDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/LinkedListHashSetTextDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/LinkedListHashSetTextDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/ListHashSetTextEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/ListHashSetTextEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/ListHashSetTextEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/ListHashSetTextEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringLinkedList.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringLinkedList.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringLinkedList.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringLinkedList.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringList.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringList.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringList.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringList.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringListTextDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringListTextDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringListTextDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/StringListTextDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/TypeEnum.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/TypeEnum.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/TypeEnum.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/common/TypeEnum.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteArrayMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteArrayMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteArrayMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteArrayMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteArrayPartialMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteArrayPartialMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteArrayPartialMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteArrayPartialMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteBufferMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteBufferMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteBufferMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteBufferMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteBufferPartialMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteBufferPartialMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteBufferPartialMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ByteBufferPartialMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/InputStreamMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/InputStreamMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/InputStreamMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/InputStreamMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/LinkedListHashSetMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/LinkedListHashSetMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/LinkedListHashSetMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/LinkedListHashSetMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/PongMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/PongMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/PongMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/PongMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ReaderMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ReaderMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ReaderMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/ReaderMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringBeanMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringBeanMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringBeanMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringBeanMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringListWholeMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringListWholeMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringListWholeMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringListWholeMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringPartialMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringPartialMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringPartialMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringPartialMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringWholeMessageHandler.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringWholeMessageHandler.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringWholeMessageHandler.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/StringWholeMessageHandler.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedBinaryServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedBinaryServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedBinaryServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedBinaryServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedMixedServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedMixedServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedMixedServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedMixedServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedTextServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedTextServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedTextServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCAnnotatedTextServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/session11/server/WSCServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/WSTestServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/WSTestServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/WSTestServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/WSTestServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingBinaryStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOBinaryStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOBinaryStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOBinaryStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOBinaryStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOBinaryStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOBinaryStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOBinaryStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOBinaryStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOTextStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOTextStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOTextStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOTextStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOTextStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOTextStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOTextStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingIOTextStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/ThrowingTextStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryStreamDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryStreamDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryStreamDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryStreamDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCBinaryStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithBinaryStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOBinaryStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOBinaryStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOBinaryStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOBinaryStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOBinaryStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOBinaryStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOBinaryStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOBinaryStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOTextStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOTextStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOTextStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOTextStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOTextStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOTextStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOTextStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithIOTextStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextStreamDecoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextStreamDecoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextStreamDecoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextStreamDecoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCClientEndpointWithTextStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOBinaryStreamDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOBinaryStreamDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOBinaryStreamDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOBinaryStreamDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOBinaryStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOBinaryStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOBinaryStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOBinaryStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOTextStreamDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOTextStreamDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOTextStreamDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOTextStreamDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOTextStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOTextStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOTextStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCIOTextStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningBinaryEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningBinaryEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningBinaryEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningBinaryEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningBinaryStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningBinaryStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningBinaryStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningBinaryStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithBinaryEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithBinaryEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithBinaryEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithBinaryEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithBinaryStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithBinaryStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithBinaryStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithBinaryStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithIOBinaryStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithIOBinaryStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithIOBinaryStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithIOBinaryStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithIOTextStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithIOTextStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithIOTextStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithIOTextStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithTextEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithTextEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithTextEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithTextEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithTextStreamEncoder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithTextStreamEncoder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithTextStreamEncoder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningClientEndpointWithTextStreamEncoder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningIOBinaryStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningIOBinaryStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningIOBinaryStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningIOBinaryStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningIOTextStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningIOTextStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningIOTextStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningIOTextStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningTextEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningTextEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningTextEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningTextEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningTextStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningTextStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningTextStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCReturningTextStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCSimpleBinaryEchoServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCSimpleBinaryEchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCSimpleBinaryEchoServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCSimpleBinaryEchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCSimpleEchoServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCSimpleEchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCSimpleEchoServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCSimpleEchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextStreamDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextStreamDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextStreamDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextStreamDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSCTextStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/throwingcoder/annotated/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/WSTestServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/WSTestServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/WSTestServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/WSTestServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSBinaryStreamDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayPartialServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteArrayServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferPartialServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSByteBufferServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSDefaultMaxLengthServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSDefaultMaxLengthServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSDefaultMaxLengthServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSDefaultMaxLengthServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullBooleanServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullByteServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullCharServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullDoubleServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullFloatServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullIntServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullLongServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSFullShortServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSInputStreamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSMaxLengthServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSMaxLengthServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSMaxLengthServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSMaxLengthServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPongMessageServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveBooleanServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveByteServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndPatahParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndPatahParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndPatahParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndPatahParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveCharServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveDoubleServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveFloatServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveIntServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveLongServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSPrimitiveShortServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSReaderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringPartialServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSStringServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndSessionAndPathParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndSessionAndPathParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndSessionAndPathParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndSessionAndPathParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderAndSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessage/WSTextStreamDecoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSBinaryEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSBinaryEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSBinaryEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSBinaryEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSBinaryStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSBinaryStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSBinaryStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSBinaryStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSByteArrayServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSByteArrayServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSByteArrayServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSByteArrayServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSByteBufferServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSByteBufferServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSByteBufferServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSByteBufferServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSDirectByteBufferServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSDirectByteBufferServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSDirectByteBufferServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSDirectByteBufferServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullBooleanServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullBooleanServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullBooleanServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullBooleanServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullByteServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullByteServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullByteServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullByteServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullCharServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullCharServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullCharServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullCharServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullDoubleServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullDoubleServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullDoubleServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullDoubleServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullFloatServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullFloatServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullFloatServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullFloatServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullIntServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullIntServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullIntServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullIntServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullLongServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullLongServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullLongServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullLongServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullShortServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullShortServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullShortServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSFullShortServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveBooleanServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveBooleanServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveBooleanServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveBooleanServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveByteServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveByteServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveByteServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveByteServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveCharServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveCharServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveCharServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveCharServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveDoubleServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveDoubleServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveDoubleServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveDoubleServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveFloatServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveFloatServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveFloatServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveFloatServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveIntServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveIntServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveIntServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveIntServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveLongServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveLongServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveLongServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveLongServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveShortServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveShortServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveShortServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSPrimitiveShortServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSTextEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSTextEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSTextEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSTextEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSTextStreamEncoderServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSTextStreamEncoderServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSTextStreamEncoderServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketmessagereturntype/WSTextStreamEncoderServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/lib/implementation/sun/common/SunRIURL.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/lib/implementation/sun/common/SunRIURL.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/lib/implementation/sun/common/SunRIURL.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/lib/implementation/sun/common/SunRIURL.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/EchoServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/EchoServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/EchoServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/EchoServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/NegativeDeploymentClient.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/NegativeDeploymentClient.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/NegativeDeploymentClient.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/NegativeDeploymentClient.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/StringHolder.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/StringHolder.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/StringHolder.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/StringHolder.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/OnCloseStringHolderServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/OnCloseStringHolderServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/OnCloseStringHolderServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/OnCloseStringHolderServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/TestListener.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/TestListener.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/TestListener.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/TestListener.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onclose/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/OnErrorServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/OnErrorServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/OnErrorServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/OnErrorServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/TestListener.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/TestListener.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/TestListener.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/TestListener.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onerror/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/TestListener.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/TestListener.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/TestListener.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/TestListener.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onmessage/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/OnOpenServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/OnOpenServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/OnOpenServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/OnOpenServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/TestListener.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/TestListener.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/TestListener.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/TestListener.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/pasrv/onopen/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onclose/OnCloseStringHolderServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onclose/OnCloseStringHolderServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onclose/OnCloseStringHolderServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onclose/OnCloseStringHolderServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onclose/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onclose/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onclose/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onclose/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onerror/OnErrorStringHolderServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onerror/OnErrorStringHolderServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onerror/OnErrorStringHolderServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onerror/OnErrorStringHolderServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onerror/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onerror/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onerror/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onerror/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onmessage/OnMessageStringHolderServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onmessage/OnMessageStringHolderServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onmessage/OnMessageStringHolderServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onmessage/OnMessageStringHolderServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onmessage/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onmessage/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onmessage/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onmessage/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onopen/OnOpenStringHolderServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onopen/OnOpenStringHolderServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onopen/OnOpenStringHolderServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onopen/OnOpenStringHolderServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onopen/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onopen/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onopen/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/invalidpathparamtype/srv/onopen/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/malformedpath/MalformedPathServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/malformedpath/MalformedPathServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/malformedpath/MalformedPathServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/malformedpath/MalformedPathServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/malformedpath/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/malformedpath/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/malformedpath/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/malformedpath/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/SamePathServerEndpoint1.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/SamePathServerEndpoint1.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/SamePathServerEndpoint1.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/SamePathServerEndpoint1.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/SamePathServerEndpoint2.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/SamePathServerEndpoint2.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/SamePathServerEndpoint2.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/SamePathServerEndpoint2.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/multiplepaths/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/duplicate/AnnotatedOnCloseClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/duplicate/AnnotatedOnCloseClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/duplicate/AnnotatedOnCloseClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/duplicate/AnnotatedOnCloseClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/duplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/duplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/duplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/duplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/toomanyargs/AnnotatedOnCloseClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/toomanyargs/AnnotatedOnCloseClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/toomanyargs/AnnotatedOnCloseClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/toomanyargs/AnnotatedOnCloseClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/toomanyargs/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/toomanyargs/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/toomanyargs/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/client/toomanyargs/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/duplicate/OnCloseServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/duplicate/OnCloseServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/duplicate/OnCloseServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/duplicate/OnCloseServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/duplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/duplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/duplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/duplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/toomanyargs/OnCloseServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/toomanyargs/OnCloseServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/toomanyargs/OnCloseServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/toomanyargs/OnCloseServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/toomanyargs/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/toomanyargs/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/toomanyargs/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onclose/srv/toomanyargs/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/duplicate/AnnotatedOnErrorClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/duplicate/AnnotatedOnErrorClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/duplicate/AnnotatedOnErrorClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/duplicate/AnnotatedOnErrorClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/duplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/duplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/duplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/duplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/toomanyargs/AnnotatedOnErrorClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/toomanyargs/AnnotatedOnErrorClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/toomanyargs/AnnotatedOnErrorClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/toomanyargs/AnnotatedOnErrorClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/toomanyargs/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/toomanyargs/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/toomanyargs/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/client/toomanyargs/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/duplicate/OnErrorServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/duplicate/OnErrorServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/duplicate/OnErrorServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/duplicate/OnErrorServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/duplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/duplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/duplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/duplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/toomanyargs/OnErrorServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/toomanyargs/OnErrorServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/toomanyargs/OnErrorServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/toomanyargs/OnErrorServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/toomanyargs/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/toomanyargs/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/toomanyargs/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onerror/srv/toomanyargs/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binarybytebufferint/OnMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binarybytebufferint/OnMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binarybytebufferint/OnMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binarybytebufferint/OnMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binarybytebufferint/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binarybytebufferint/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binarybytebufferint/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binarybytebufferint/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryduplicate/OnMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryduplicate/OnMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryduplicate/OnMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryduplicate/OnMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryduplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryduplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryduplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryduplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryinputstreamboolean/OnMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryinputstreamboolean/OnMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryinputstreamboolean/OnMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryinputstreamboolean/OnMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryinputstreamboolean/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryinputstreamboolean/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryinputstreamboolean/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/binaryinputstreamboolean/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/nodecoder/OnMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/nodecoder/OnMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/nodecoder/OnMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/nodecoder/OnMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/nodecoder/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/nodecoder/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/nodecoder/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/nodecoder/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongboolean/OnMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongboolean/OnMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongboolean/OnMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongboolean/OnMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongboolean/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongboolean/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongboolean/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongboolean/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongduplicate/OnMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongduplicate/OnMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongduplicate/OnMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongduplicate/OnMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongduplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongduplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongduplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/pongduplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textbigdecimal/OnMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textbigdecimal/OnMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textbigdecimal/OnMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textbigdecimal/OnMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textbigdecimal/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textbigdecimal/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textbigdecimal/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textbigdecimal/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textduplicate/OnMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textduplicate/OnMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textduplicate/OnMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textduplicate/OnMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textduplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textduplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textduplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textduplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textreaderboolean/OnMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textreaderboolean/OnMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textreaderboolean/OnMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textreaderboolean/OnMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textreaderboolean/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textreaderboolean/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textreaderboolean/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textreaderboolean/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textstringint/OnMessageClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textstringint/OnMessageClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textstringint/OnMessageClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textstringint/OnMessageClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textstringint/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textstringint/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textstringint/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/client/textstringint/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/TestListener.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/TestListener.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/TestListener.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/TestListener.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/pasrv/nomoreendpoints/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/EchoServerConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/EchoServerConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/EchoServerConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/EchoServerConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/EchoServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/EchoServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/EchoServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/EchoServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/TestListener.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/TestListener.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/TestListener.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/TestListener.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/ppsrv/nomoreendpoints/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarybytebufferint/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryduplicate/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryduplicate/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryduplicate/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryduplicate/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryduplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryduplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryduplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryduplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryinputstreamboolean/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryinputstreamboolean/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryinputstreamboolean/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryinputstreamboolean/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryinputstreamboolean/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryinputstreamboolean/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryinputstreamboolean/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binaryinputstreamboolean/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarynodecoder/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarynodecoder/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarynodecoder/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarynodecoder/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarynodecoder/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarynodecoder/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarynodecoder/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/binarynodecoder/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongboolean/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongboolean/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongboolean/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongboolean/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongboolean/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongboolean/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongboolean/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongboolean/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongduplicate/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongduplicate/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongduplicate/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongduplicate/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongduplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongduplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongduplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/pongduplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textbigdecimal/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textbigdecimal/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textbigdecimal/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textbigdecimal/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textbigdecimal/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textbigdecimal/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textbigdecimal/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textbigdecimal/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textduplicate/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textduplicate/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textduplicate/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textduplicate/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textduplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textduplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textduplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textduplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textnodecoder/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textnodecoder/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textnodecoder/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textnodecoder/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textnodecoder/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textnodecoder/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textnodecoder/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textnodecoder/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textreaderboolean/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textreaderboolean/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textreaderboolean/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textreaderboolean/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textreaderboolean/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textreaderboolean/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textreaderboolean/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textreaderboolean/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textstringint/OnMessageServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textstringint/OnMessageServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textstringint/OnMessageServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textstringint/OnMessageServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textstringint/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textstringint/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textstringint/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onmessage/srv/textstringint/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/duplicate/AnnotatedOnOpenClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/duplicate/AnnotatedOnOpenClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/duplicate/AnnotatedOnOpenClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/duplicate/AnnotatedOnOpenClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/duplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/duplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/duplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/duplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/toomanyargs/AnnotatedOnOpenClientEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/toomanyargs/AnnotatedOnOpenClientEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/toomanyargs/AnnotatedOnOpenClientEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/toomanyargs/AnnotatedOnOpenClientEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/toomanyargs/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/toomanyargs/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/toomanyargs/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/client/toomanyargs/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/duplicate/OnOpenServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/duplicate/OnOpenServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/duplicate/OnOpenServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/duplicate/OnOpenServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/duplicate/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/duplicate/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/duplicate/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/duplicate/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/toomanyargs/OnOpenServerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/toomanyargs/OnOpenServerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/toomanyargs/OnOpenServerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/toomanyargs/OnOpenServerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/toomanyargs/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/toomanyargs/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/toomanyargs/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/negdep/onopen/srv/toomanyargs/WSCClientIT.java diff --git a/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/signaturetest/WebSocketSigTestIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/signaturetest/WebSocketSigTestIT.java new file mode 100644 index 0000000000..5cda2fed61 --- /dev/null +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/signaturetest/WebSocketSigTestIT.java @@ -0,0 +1,252 @@ +/* + * Copyright (c) 2013, 2024 Oracle and/or its affiliates. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v. 2.0, which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * This Source Code may also be made available under the following Secondary + * Licenses when the conditions for such availability set forth in the + * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + * version 2 with the GNU Classpath Exception, which is available at + * https://www.gnu.org/software/classpath/license.html. + * + * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + */ + +package com.sun.ts.tests.websocket.signaturetest; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.lang.System.Logger; +import java.util.LinkedList; +import java.util.List; +import java.util.Properties; + +import org.junit.jupiter.api.Test; + +import com.sun.ts.tests.signaturetest.SigTest; + +/* + * This class is a simple example of a signature test that extends the + * SigTest framework class. This signature test is run outside of the + * Java EE containers. This class also contains the boilerplate + * code necessary to create a signature test using the test framework. + * To see a complete TCK example see the javaee directory for the Java EE + * TCK signature test class. + */ +public class WebSocketSigTestIT extends SigTest { + + private static final long serialVersionUID = -5264596249711347960L; + + public static final String EJB_VEHICLE = "ejb"; + + public static final String SERVLET_VEHICLE = "servlet"; + + public static final String JSP_VEHICLE = "jsp"; + + public static final String APP_CLIENT_VEHICLE = "appclient"; + + public static final String NO_VEHICLE = "standalone"; + + private static final Logger logger = System.getLogger(WebSocketSigTestIT.class.getName()); + + /* + * Defines the packages that are included when running signature tests for any + * container (the default packages). This includes the appclient, ejb, jsp, and + * servlet containers. + */ + private static final String[] DEFAULT_PKGS = { "jakarta.websocket", "jakarta.websocket.server" }; + + /* + * Defines additional packages that are included when running signature tests + * for the ejb, jsp and servlet containers. + */ + private static final String[] EJB_SERVLET_JSP_PKGS = {}; + + /* + * Defines additional packages that are included when running signature tests + * for the jsp and servlet containers. + */ + private static final String[] SERVLET_JSP_PKGS = {}; + + private static final String[] NO_CONTAINER_PKGS = { "jakarta.websocket", "jakarta.websocket.server" }; + + /***** Abstract Method Implementation *****/ + /** + * Returns a list of strings where each string represents a package name. Each + * package name will have it's signature tested by the signature test framework. + * + * @return String[] The names of the packages whose signatures should be + * verified. + */ + protected String[] getPackages() { + return DEFAULT_PKGS; + } + + /** + * Adds the default packages and the command line flags to the specified list + * for each package defined in the list of default packages to check during + * signature tests. Note: The specified list is modified as a result of this + * method call. + * + * @param sigArgsList The arg list being constructed to pass to the utility that + * records and runs signature file tests. + */ + private static void addDefaultPkgs(List sigArgsList) { + for (int i = 0; i < DEFAULT_PKGS.length; i++) { + sigArgsList.add(DEFAULT_PKGS[i]); + } + } + + /** + * Adds the ejb, servlet, and jsp packages and the command line flags to the + * specified list for each package defined in the list of ejb, servlet, and jsp + * packages to check during signature tests. Note: The specified list is + * modified as a result of this method call. + * + * @param sigArgsList The arg list being constructed to pass to the utility that + * records and runs signature file tests. + */ + private static void addEjbServletJspPkgs(List sigArgsList) { + for (int i = 0; i < EJB_SERVLET_JSP_PKGS.length; i++) { + sigArgsList.add(EJB_SERVLET_JSP_PKGS[i]); + } + } + + /** + * Adds the servlet, and jsp packages and the command line flags to the + * specified list for each package defined in the list of servlet, and jsp + * packages to check during signature tests. Note: The specified list is + * modified as a result of this method call. + * + * @param sigArgsList The arg list being constructed to pass to the utility that + * records and runs signature file tests. + */ + private static void addServletJspPkgs(List sigArgsList) { + for (int i = 0; i < SERVLET_JSP_PKGS.length; i++) { + sigArgsList.add(SERVLET_JSP_PKGS[i]); + } + } + + /** + * Adds the pkgs for tests to be run in NO Container (ie standalone) packages to + * check during signature tests. Note: The specified list is modified as a + * result of this method call. + * + * @param sigArgsList The arg list being constructed to pass to the utility that + * records and runs signature file tests. + */ + private static void addNoContainerPkgs(List sigArgsList) { + for (int i = 0; i < NO_CONTAINER_PKGS.length; i++) { + sigArgsList.add(NO_CONTAINER_PKGS[i]); + } + } + + public WebSocketSigTestIT() { + setup(); + } + + /** + * Returns a list of strings where each string represents a package name. Each + * package name will have it's signature tested by the signature test framework. + * + * @param vehicleName The name of the Jaspic container where the signature tests + * should be conducted. + * @return String[] The names of the packages whose signatures should be + * verified. + */ + protected String[] getPackages(String vehicleName) { + List packages = new LinkedList(); + + if (vehicleName.equals(NO_VEHICLE)) { + addNoContainerPkgs(packages); + } else { + addDefaultPkgs(packages); // add default vehicle packages + if (vehicleName.equals(EJB_VEHICLE) || vehicleName.equals(SERVLET_VEHICLE) + || vehicleName.equals(JSP_VEHICLE)) { + addEjbServletJspPkgs(packages); + } + if (vehicleName.equals(SERVLET_VEHICLE) || vehicleName.equals(JSP_VEHICLE)) { + addServletJspPkgs(packages); + } + } + return packages.toArray(new String[packages.size()]); + } + + /* + * The following comments are specified in the base class that defines the + * signature tests. This is done so the test finders will find the right class + * to run. The implementation of these methods is inherited from the super class + * which is part of the signature test framework. + */ + + // NOTE: If the API under test is not part of your testing runtime + // environment, you may use the property sigTestClasspath to specify + // where the API under test lives. This should almost never be used. + // Normally the API under test should be specified in the classpath + // of the VM running the signature tests. Use either the first + // comment or the one below it depending on which properties your + // signature tests need. Please do not use both comments. + + /* + * @class.setup_props: sigTestClasspath; + */ + /* + * @testName: signatureTest + * + * @assertion: A WebSocket container must implement the required classes and + * APIs specified in the WebSocket Specification (JSR 356). + * + * @test_Strategy: Using reflection, gather the implementation specific classes + * and APIs. Compare these results with the expected (required) classes and + * APIs. + * + */ + + @Test + public void signatureTest() throws Exception { + + logger.log(Logger.Level.INFO, "$$$ SigTestIT.signatureTest() called"); + String mapFile = null; + String packageFile = null; + String repositoryDir = null; + Properties mapFileAsProps = null; + String[] packages = getPackages(); + String apiPackage = "jakarta.websocket"; + + try { + + InputStream inStreamMapfile = WebSocketSigTestIT.class.getClassLoader() + .getResourceAsStream("com/sun/ts/tests/websocket/signaturetest/sig-test.map"); + File mFile = writeStreamToTempFile(inStreamMapfile, "sig-test", ".map"); + mapFile = mFile.getCanonicalPath(); + logger.log(Logger.Level.INFO, "mapFile location is :" + mapFile); + + InputStream inStreamPackageFile = WebSocketSigTestIT.class.getClassLoader() + .getResourceAsStream("com/sun/ts/tests/websocket/signaturetest/sig-test-pkg-list.txt"); + File pFile = writeStreamToTempFile(inStreamPackageFile, "sig-test-pkg-list", ".txt"); + packageFile = pFile.getCanonicalPath(); + logger.log(Logger.Level.INFO, "packageFile location is :" + packageFile); + + mapFileAsProps = getSigTestDriver().loadMapFile(mapFile); + String packageVersion = mapFileAsProps.getProperty(apiPackage); + logger.log(Logger.Level.INFO, "Package version from mapfile :" + packageVersion); + + InputStream inStreamSigFile = WebSocketSigTestIT.class.getClassLoader().getResourceAsStream( + "com/sun/ts/tests/websocket/signaturetest/jakarta.websocket.sig_" + packageVersion); + File sigFile = writeStreamToSigFile(inStreamSigFile, apiPackage, packageVersion); + logger.log(Logger.Level.INFO, "signature File location is :" + sigFile.getCanonicalPath()); + + } catch (IOException ex) { + logger.log(Logger.Level.ERROR, "Exception while creating temp files :" + ex); + } + + super.signatureTest(mapFile, packageFile, mapFileAsProps, packages); + } + + /* + * Call the parent class's cleanup method. + */ +} diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointSubclassWithOverrideAndAnnotations.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointSubclassWithOverrideAndAnnotations.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointSubclassWithOverrideAndAnnotations.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointSubclassWithOverrideAndAnnotations.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointSuperclassWithAnnotations.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointSuperclassWithAnnotations.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointSuperclassWithAnnotations.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointSuperclassWithAnnotations.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnCloseAnnotations.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnCloseAnnotations.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnCloseAnnotations.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnCloseAnnotations.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnErrorAnnotations.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnErrorAnnotations.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnErrorAnnotations.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnErrorAnnotations.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnMessageAnnotations.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnMessageAnnotations.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnMessageAnnotations.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnMessageAnnotations.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnOpenAnnotations.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnOpenAnnotations.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnOpenAnnotations.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedClientEndpointWithMultipleOnOpenAnnotations.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedSubclassEndpointWithoutAnnotations.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedSubclassEndpointWithoutAnnotations.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedSubclassEndpointWithoutAnnotations.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/AnnotatedSubclassEndpointWithoutAnnotations.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/EchoServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/EchoServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/EchoServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/EchoServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/annotation/inheritance/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/closing/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/closing/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/closing/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/closing/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/closing/WSCCloseSessionServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/closing/WSCCloseSessionServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/closing/WSCCloseSessionServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/closing/WSCCloseSessionServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/containers/WSCServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/containers/WSCServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/containers/WSCServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/containers/WSCServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/containers/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/containers/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/containers/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/containers/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/InnerEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/InnerEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/InnerEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/InnerEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/OuterEndpoint.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/OuterEndpoint.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/OuterEndpoint.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/OuterEndpoint.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/WSCClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/WSCClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/WSCClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/WSCClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/WSCServerLifecycleServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/WSCServerLifecycleServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/WSCServerLifecycleServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/application/lifecycle/WSCServerLifecycleServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL1ExactServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL1ExactServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL1ExactServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL1ExactServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL1ParamServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL1ParamServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL1ParamServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL1ParamServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2CParamDServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2CParamDServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2CParamDServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2CParamDServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2DParamCServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2DParamCServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2DParamCServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2DParamCServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2ExactCDServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2ExactCDServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2ExactCDServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2ExactCDServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2ParamCDServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2ParamCDServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2ParamCDServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL2ParamCDServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ACDExactServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ACDExactServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ACDExactServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ACDExactServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ACParamDServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ACParamDServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ACParamDServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ACParamDServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ADParamCServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ADParamCServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ADParamCServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ADParamCServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3AParamCDServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3AParamCDServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3AParamCDServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3AParamCDServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3CDParamAServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3CDParamAServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3CDParamAServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3CDParamAServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3CParamADServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3CParamADServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3CParamADServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3CParamADServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3DParamACServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3DParamACServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3DParamACServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3DParamACServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ParamACDServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ParamACDServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ParamACDServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/configuration/urimatching/WSL3ParamACDServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/AppConfig.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/AppConfig.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/AppConfig.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/AppConfig.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/TCKWebSocketContainerInitializer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/TCKWebSocketContainerInitializer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/TCKWebSocketContainerInitializer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/TCKWebSocketContainerInitializer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/TestListener.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/TestListener.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/TestListener.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/TestListener.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSClientIT.java similarity index 99% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSClientIT.java index 9202f2aaa1..7a87657d7a 100644 --- a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSClientIT.java +++ b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSClientIT.java @@ -34,7 +34,7 @@ import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit5.ArquillianExtension; import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.asset.StringAsset; +import org.jboss.shrinkwrap.api.asset.ByteArrayAsset; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.jupiter.api.Test; @@ -66,7 +66,7 @@ public static WebArchive createDeployment() throws IOException { .addClass(TCKWebSocketContainerInitializer.class); InputStream inStream = WSClientIT.class.getClassLoader().getResourceAsStream( "com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/jakarta.servlet.ServletContainerInitializer"); - StringAsset servletContainerInitializer = new StringAsset(toString(inStream)); + ByteArrayAsset servletContainerInitializer = new ByteArrayAsset(inStream); initializerJar.addAsManifestResource(servletContainerInitializer, "services/jakarta.servlet.ServletContainerInitializer"); archive.addAsLibrary(initializerJar); diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer1.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer1.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer1.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer1.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer2.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer2.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer2.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSCloseTestServer2.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerByte.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerByte.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerByte.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerByte.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerPathParam.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerPathParam.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerPathParam.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerPathParam.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerString.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerString.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerString.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/WSTestServerString.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSTestServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSTestServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSTestServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSTestServer.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSTestServlet.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSTestServlet.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSTestServlet.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/servercontainer/upgradehttptowebsocket/WSTestServlet.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/session/sessionid/WSClientIT.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/session/sessionid/WSClientIT.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/session/sessionid/WSClientIT.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/session/sessionid/WSClientIT.java diff --git a/websocket/src/main/java/com/sun/ts/tests/websocket/spec/session/sessionid/WSTestServer.java b/websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/session/sessionid/WSTestServer.java similarity index 100% rename from websocket/src/main/java/com/sun/ts/tests/websocket/spec/session/sessionid/WSTestServer.java rename to websocket/spec-tests/src/main/java/com/sun/ts/tests/websocket/spec/session/sessionid/WSTestServer.java diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/web.xml b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/web.xml rename to websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/clientendpointconfig/web.xml diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/jakarta.websocket.ContainerProvider b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/jakarta.websocket.ContainerProvider similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/jakarta.websocket.ContainerProvider rename to websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/containerprovider/metainf/jakarta.websocket.ContainerProvider diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/web.xml b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/web.xml rename to websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/session/web.xml diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/web.xml b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/web.xml rename to websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/sessionexception/web.xml diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/web.xml b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/web.xml rename to websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/ee/jakarta/websocket/websocketcontainer/web.xml diff --git a/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/jakarta.websocket.sig_2.2 b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/jakarta.websocket.sig_2.2 new file mode 100644 index 0000000000..df2ab09bc5 --- /dev/null +++ b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/jakarta.websocket.sig_2.2 @@ -0,0 +1,518 @@ +#Signature file v4.1 +#Version 2.2 + +CLSS public abstract interface !annotation jakarta.websocket.ClientEndpoint + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) +intf java.lang.annotation.Annotation +meth public abstract !hasdefault java.lang.Class configurator() +meth public abstract !hasdefault java.lang.Class[] decoders() +meth public abstract !hasdefault java.lang.Class[] encoders() +meth public abstract !hasdefault java.lang.String[] subprotocols() + +CLSS public abstract interface jakarta.websocket.ClientEndpointConfig +innr public final static Builder +innr public static Configurator +intf jakarta.websocket.EndpointConfig +meth public abstract jakarta.websocket.ClientEndpointConfig$Configurator getConfigurator() +meth public abstract java.util.List getExtensions() +meth public abstract java.util.List getPreferredSubprotocols() +meth public abstract javax.net.ssl.SSLContext getSSLContext() + +CLSS public final static jakarta.websocket.ClientEndpointConfig$Builder + outer jakarta.websocket.ClientEndpointConfig +meth public jakarta.websocket.ClientEndpointConfig build() +meth public jakarta.websocket.ClientEndpointConfig$Builder configurator(jakarta.websocket.ClientEndpointConfig$Configurator) +meth public jakarta.websocket.ClientEndpointConfig$Builder decoders(java.util.List>) +meth public jakarta.websocket.ClientEndpointConfig$Builder encoders(java.util.List>) +meth public jakarta.websocket.ClientEndpointConfig$Builder extensions(java.util.List) +meth public jakarta.websocket.ClientEndpointConfig$Builder preferredSubprotocols(java.util.List) +meth public jakarta.websocket.ClientEndpointConfig$Builder sslContext(javax.net.ssl.SSLContext) +meth public static jakarta.websocket.ClientEndpointConfig$Builder create() +supr java.lang.Object +hfds clientEndpointConfigurator,decoders,encoders,extensions,preferredSubprotocols,sslContext + +CLSS public static jakarta.websocket.ClientEndpointConfig$Configurator + outer jakarta.websocket.ClientEndpointConfig +cons public init() +meth public void afterResponse(jakarta.websocket.HandshakeResponse) +meth public void beforeRequest(java.util.Map>) +supr java.lang.Object + +CLSS public jakarta.websocket.CloseReason +cons public init(jakarta.websocket.CloseReason$CloseCode,java.lang.String) +innr public abstract interface static CloseCode +innr public final static !enum CloseCodes +meth public jakarta.websocket.CloseReason$CloseCode getCloseCode() +meth public java.lang.String getReasonPhrase() +meth public java.lang.String toString() +supr java.lang.Object +hfds closeCode,reasonPhrase + +CLSS public abstract interface static jakarta.websocket.CloseReason$CloseCode + outer jakarta.websocket.CloseReason +meth public abstract int getCode() + +CLSS public final static !enum jakarta.websocket.CloseReason$CloseCodes + outer jakarta.websocket.CloseReason +fld public final static jakarta.websocket.CloseReason$CloseCodes CANNOT_ACCEPT +fld public final static jakarta.websocket.CloseReason$CloseCodes CLOSED_ABNORMALLY +fld public final static jakarta.websocket.CloseReason$CloseCodes GOING_AWAY +fld public final static jakarta.websocket.CloseReason$CloseCodes NORMAL_CLOSURE +fld public final static jakarta.websocket.CloseReason$CloseCodes NOT_CONSISTENT +fld public final static jakarta.websocket.CloseReason$CloseCodes NO_EXTENSION +fld public final static jakarta.websocket.CloseReason$CloseCodes NO_STATUS_CODE +fld public final static jakarta.websocket.CloseReason$CloseCodes PROTOCOL_ERROR +fld public final static jakarta.websocket.CloseReason$CloseCodes RESERVED +fld public final static jakarta.websocket.CloseReason$CloseCodes SERVICE_RESTART +fld public final static jakarta.websocket.CloseReason$CloseCodes TLS_HANDSHAKE_FAILURE +fld public final static jakarta.websocket.CloseReason$CloseCodes TOO_BIG +fld public final static jakarta.websocket.CloseReason$CloseCodes TRY_AGAIN_LATER +fld public final static jakarta.websocket.CloseReason$CloseCodes UNEXPECTED_CONDITION +fld public final static jakarta.websocket.CloseReason$CloseCodes VIOLATED_POLICY +intf jakarta.websocket.CloseReason$CloseCode +meth public int getCode() +meth public static jakarta.websocket.CloseReason$CloseCode getCloseCode(int) +meth public static jakarta.websocket.CloseReason$CloseCodes valueOf(java.lang.String) +meth public static jakarta.websocket.CloseReason$CloseCodes[] values() +supr java.lang.Enum +hfds code + +CLSS public abstract jakarta.websocket.ContainerProvider +cons public init() +meth protected abstract jakarta.websocket.WebSocketContainer getContainer() +meth public static jakarta.websocket.WebSocketContainer getWebSocketContainer() +supr java.lang.Object + +CLSS public jakarta.websocket.DecodeException +cons public init(java.lang.String,java.lang.String) +cons public init(java.lang.String,java.lang.String,java.lang.Throwable) +cons public init(java.nio.ByteBuffer,java.lang.String) +cons public init(java.nio.ByteBuffer,java.lang.String,java.lang.Throwable) +meth public java.lang.String getText() +meth public java.nio.ByteBuffer getBytes() +supr java.lang.Exception +hfds bb,encodedString,serialVersionUID + +CLSS public abstract interface jakarta.websocket.Decoder +innr public abstract interface static Binary +innr public abstract interface static BinaryStream +innr public abstract interface static Text +innr public abstract interface static TextStream +meth public void destroy() +meth public void init(jakarta.websocket.EndpointConfig) + +CLSS public abstract interface static jakarta.websocket.Decoder$Binary<%0 extends java.lang.Object> + outer jakarta.websocket.Decoder +intf jakarta.websocket.Decoder +meth public abstract boolean willDecode(java.nio.ByteBuffer) +meth public abstract {jakarta.websocket.Decoder$Binary%0} decode(java.nio.ByteBuffer) throws jakarta.websocket.DecodeException + +CLSS public abstract interface static jakarta.websocket.Decoder$BinaryStream<%0 extends java.lang.Object> + outer jakarta.websocket.Decoder +intf jakarta.websocket.Decoder +meth public abstract {jakarta.websocket.Decoder$BinaryStream%0} decode(java.io.InputStream) throws jakarta.websocket.DecodeException,java.io.IOException + +CLSS public abstract interface static jakarta.websocket.Decoder$Text<%0 extends java.lang.Object> + outer jakarta.websocket.Decoder +intf jakarta.websocket.Decoder +meth public abstract boolean willDecode(java.lang.String) +meth public abstract {jakarta.websocket.Decoder$Text%0} decode(java.lang.String) throws jakarta.websocket.DecodeException + +CLSS public abstract interface static jakarta.websocket.Decoder$TextStream<%0 extends java.lang.Object> + outer jakarta.websocket.Decoder +intf jakarta.websocket.Decoder +meth public abstract {jakarta.websocket.Decoder$TextStream%0} decode(java.io.Reader) throws jakarta.websocket.DecodeException,java.io.IOException + +CLSS public jakarta.websocket.DeploymentException +cons public init(java.lang.String) +cons public init(java.lang.String,java.lang.Throwable) +supr java.lang.Exception +hfds serialVersionUID + +CLSS public jakarta.websocket.EncodeException +cons public init(java.lang.Object,java.lang.String) +cons public init(java.lang.Object,java.lang.String,java.lang.Throwable) +meth public java.lang.Object getObject() +supr java.lang.Exception +hfds object,serialVersionUID + +CLSS public abstract interface jakarta.websocket.Encoder +innr public abstract interface static Binary +innr public abstract interface static BinaryStream +innr public abstract interface static Text +innr public abstract interface static TextStream +meth public void destroy() +meth public void init(jakarta.websocket.EndpointConfig) + +CLSS public abstract interface static jakarta.websocket.Encoder$Binary<%0 extends java.lang.Object> + outer jakarta.websocket.Encoder +intf jakarta.websocket.Encoder +meth public abstract java.nio.ByteBuffer encode({jakarta.websocket.Encoder$Binary%0}) throws jakarta.websocket.EncodeException + +CLSS public abstract interface static jakarta.websocket.Encoder$BinaryStream<%0 extends java.lang.Object> + outer jakarta.websocket.Encoder +intf jakarta.websocket.Encoder +meth public abstract void encode({jakarta.websocket.Encoder$BinaryStream%0},java.io.OutputStream) throws jakarta.websocket.EncodeException,java.io.IOException + +CLSS public abstract interface static jakarta.websocket.Encoder$Text<%0 extends java.lang.Object> + outer jakarta.websocket.Encoder +intf jakarta.websocket.Encoder +meth public abstract java.lang.String encode({jakarta.websocket.Encoder$Text%0}) throws jakarta.websocket.EncodeException + +CLSS public abstract interface static jakarta.websocket.Encoder$TextStream<%0 extends java.lang.Object> + outer jakarta.websocket.Encoder +intf jakarta.websocket.Encoder +meth public abstract void encode({jakarta.websocket.Encoder$TextStream%0},java.io.Writer) throws jakarta.websocket.EncodeException,java.io.IOException + +CLSS public abstract jakarta.websocket.Endpoint +cons public init() +meth public abstract void onOpen(jakarta.websocket.Session,jakarta.websocket.EndpointConfig) +meth public void onClose(jakarta.websocket.Session,jakarta.websocket.CloseReason) +meth public void onError(jakarta.websocket.Session,java.lang.Throwable) +supr java.lang.Object + +CLSS public abstract interface jakarta.websocket.EndpointConfig +meth public abstract java.util.List> getDecoders() +meth public abstract java.util.List> getEncoders() +meth public abstract java.util.Map getUserProperties() + +CLSS public abstract interface jakarta.websocket.Extension +innr public abstract interface static Parameter +meth public abstract java.lang.String getName() +meth public abstract java.util.List getParameters() + +CLSS public abstract interface static jakarta.websocket.Extension$Parameter + outer jakarta.websocket.Extension +meth public abstract java.lang.String getName() +meth public abstract java.lang.String getValue() + +CLSS public abstract interface jakarta.websocket.HandshakeResponse +fld public final static java.lang.String SEC_WEBSOCKET_ACCEPT = "Sec-WebSocket-Accept" +meth public abstract java.util.Map> getHeaders() + +CLSS public abstract interface jakarta.websocket.MessageHandler +innr public abstract interface static Partial +innr public abstract interface static Whole + +CLSS public abstract interface static jakarta.websocket.MessageHandler$Partial<%0 extends java.lang.Object> + outer jakarta.websocket.MessageHandler +intf jakarta.websocket.MessageHandler +meth public abstract void onMessage({jakarta.websocket.MessageHandler$Partial%0},boolean) + +CLSS public abstract interface static jakarta.websocket.MessageHandler$Whole<%0 extends java.lang.Object> + outer jakarta.websocket.MessageHandler +intf jakarta.websocket.MessageHandler +meth public abstract void onMessage({jakarta.websocket.MessageHandler$Whole%0}) + +CLSS public abstract interface !annotation jakarta.websocket.OnClose + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[METHOD]) +intf java.lang.annotation.Annotation + +CLSS public abstract interface !annotation jakarta.websocket.OnError + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[METHOD]) +intf java.lang.annotation.Annotation + +CLSS public abstract interface !annotation jakarta.websocket.OnMessage + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[METHOD]) +intf java.lang.annotation.Annotation +meth public abstract !hasdefault long maxMessageSize() + +CLSS public abstract interface !annotation jakarta.websocket.OnOpen + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[METHOD]) +intf java.lang.annotation.Annotation + +CLSS public abstract interface jakarta.websocket.PongMessage +meth public abstract java.nio.ByteBuffer getApplicationData() + +CLSS public abstract interface jakarta.websocket.RemoteEndpoint +innr public abstract interface static Async +innr public abstract interface static Basic +meth public abstract boolean getBatchingAllowed() +meth public abstract void flushBatch() throws java.io.IOException +meth public abstract void sendPing(java.nio.ByteBuffer) throws java.io.IOException +meth public abstract void sendPong(java.nio.ByteBuffer) throws java.io.IOException +meth public abstract void setBatchingAllowed(boolean) throws java.io.IOException + +CLSS public abstract interface static jakarta.websocket.RemoteEndpoint$Async + outer jakarta.websocket.RemoteEndpoint +intf jakarta.websocket.RemoteEndpoint +meth public abstract java.util.concurrent.Future sendBinary(java.nio.ByteBuffer) +meth public abstract java.util.concurrent.Future sendObject(java.lang.Object) +meth public abstract java.util.concurrent.Future sendText(java.lang.String) +meth public abstract long getSendTimeout() +meth public abstract void sendBinary(java.nio.ByteBuffer,jakarta.websocket.SendHandler) +meth public abstract void sendObject(java.lang.Object,jakarta.websocket.SendHandler) +meth public abstract void sendText(java.lang.String,jakarta.websocket.SendHandler) +meth public abstract void setSendTimeout(long) + +CLSS public abstract interface static jakarta.websocket.RemoteEndpoint$Basic + outer jakarta.websocket.RemoteEndpoint +intf jakarta.websocket.RemoteEndpoint +meth public abstract java.io.OutputStream getSendStream() throws java.io.IOException +meth public abstract java.io.Writer getSendWriter() throws java.io.IOException +meth public abstract void sendBinary(java.nio.ByteBuffer) throws java.io.IOException +meth public abstract void sendBinary(java.nio.ByteBuffer,boolean) throws java.io.IOException +meth public abstract void sendObject(java.lang.Object) throws jakarta.websocket.EncodeException,java.io.IOException +meth public abstract void sendText(java.lang.String) throws java.io.IOException +meth public abstract void sendText(java.lang.String,boolean) throws java.io.IOException + +CLSS public abstract interface jakarta.websocket.SendHandler +meth public abstract void onResult(jakarta.websocket.SendResult) + +CLSS public final jakarta.websocket.SendResult +cons public init() + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +cons public init(jakarta.websocket.Session) +cons public init(jakarta.websocket.Session,java.lang.Throwable) +cons public init(java.lang.Throwable) + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="") +meth public boolean isOK() +meth public jakarta.websocket.Session getSession() +meth public java.lang.Throwable getException() +supr java.lang.Object +hfds exception,isOK,session + +CLSS public abstract interface jakarta.websocket.Session +intf java.io.Closeable +meth public abstract <%0 extends java.lang.Object> void addMessageHandler(java.lang.Class<{%%0}>,jakarta.websocket.MessageHandler$Partial<{%%0}>) +meth public abstract <%0 extends java.lang.Object> void addMessageHandler(java.lang.Class<{%%0}>,jakarta.websocket.MessageHandler$Whole<{%%0}>) +meth public abstract boolean isOpen() +meth public abstract boolean isSecure() +meth public abstract int getMaxBinaryMessageBufferSize() +meth public abstract int getMaxTextMessageBufferSize() +meth public abstract jakarta.websocket.RemoteEndpoint$Async getAsyncRemote() +meth public abstract jakarta.websocket.RemoteEndpoint$Basic getBasicRemote() +meth public abstract jakarta.websocket.WebSocketContainer getContainer() +meth public abstract java.lang.String getId() +meth public abstract java.lang.String getNegotiatedSubprotocol() +meth public abstract java.lang.String getProtocolVersion() +meth public abstract java.lang.String getQueryString() +meth public abstract java.net.URI getRequestURI() +meth public abstract java.security.Principal getUserPrincipal() +meth public abstract java.util.List getNegotiatedExtensions() +meth public abstract java.util.Map getUserProperties() +meth public abstract java.util.Map getPathParameters() +meth public abstract java.util.Map> getRequestParameterMap() +meth public abstract java.util.Set getMessageHandlers() +meth public abstract java.util.Set getOpenSessions() +meth public abstract long getMaxIdleTimeout() +meth public abstract void addMessageHandler(jakarta.websocket.MessageHandler) +meth public abstract void close() throws java.io.IOException +meth public abstract void close(jakarta.websocket.CloseReason) throws java.io.IOException +meth public abstract void removeMessageHandler(jakarta.websocket.MessageHandler) +meth public abstract void setMaxBinaryMessageBufferSize(int) +meth public abstract void setMaxIdleTimeout(long) +meth public abstract void setMaxTextMessageBufferSize(int) + +CLSS public jakarta.websocket.SessionException +cons public init(java.lang.String,java.lang.Throwable,jakarta.websocket.Session) +meth public jakarta.websocket.Session getSession() +supr java.lang.Exception +hfds serialVersionUID,session + +CLSS public abstract interface jakarta.websocket.WebSocketContainer +meth public abstract int getDefaultMaxBinaryMessageBufferSize() +meth public abstract int getDefaultMaxTextMessageBufferSize() +meth public abstract jakarta.websocket.Session connectToServer(jakarta.websocket.Endpoint,jakarta.websocket.ClientEndpointConfig,java.net.URI) throws jakarta.websocket.DeploymentException,java.io.IOException +meth public abstract jakarta.websocket.Session connectToServer(java.lang.Class,jakarta.websocket.ClientEndpointConfig,java.net.URI) throws jakarta.websocket.DeploymentException,java.io.IOException +meth public abstract jakarta.websocket.Session connectToServer(java.lang.Class,java.net.URI) throws jakarta.websocket.DeploymentException,java.io.IOException +meth public abstract jakarta.websocket.Session connectToServer(java.lang.Object,java.net.URI) throws jakarta.websocket.DeploymentException,java.io.IOException +meth public abstract java.util.Set getInstalledExtensions() +meth public abstract long getDefaultAsyncSendTimeout() +meth public abstract long getDefaultMaxSessionIdleTimeout() +meth public abstract void setAsyncSendTimeout(long) +meth public abstract void setDefaultMaxBinaryMessageBufferSize(int) +meth public abstract void setDefaultMaxSessionIdleTimeout(long) +meth public abstract void setDefaultMaxTextMessageBufferSize(int) + +CLSS abstract interface jakarta.websocket.package-info + +CLSS public abstract interface jakarta.websocket.server.HandshakeRequest +fld public final static java.lang.String SEC_WEBSOCKET_EXTENSIONS = "Sec-WebSocket-Extensions" +fld public final static java.lang.String SEC_WEBSOCKET_KEY = "Sec-WebSocket-Key" +fld public final static java.lang.String SEC_WEBSOCKET_PROTOCOL = "Sec-WebSocket-Protocol" +fld public final static java.lang.String SEC_WEBSOCKET_VERSION = "Sec-WebSocket-Version" +meth public abstract boolean isUserInRole(java.lang.String) +meth public abstract java.lang.Object getHttpSession() +meth public abstract java.lang.String getQueryString() +meth public abstract java.net.URI getRequestURI() +meth public abstract java.security.Principal getUserPrincipal() +meth public abstract java.util.Map> getHeaders() +meth public abstract java.util.Map> getParameterMap() + +CLSS public abstract interface !annotation jakarta.websocket.server.PathParam + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[PARAMETER]) +intf java.lang.annotation.Annotation +meth public abstract java.lang.String value() + +CLSS public abstract interface jakarta.websocket.server.ServerApplicationConfig +meth public abstract java.util.Set getEndpointConfigs(java.util.Set>) +meth public abstract java.util.Set> getAnnotatedEndpointClasses(java.util.Set>) + +CLSS public abstract interface jakarta.websocket.server.ServerContainer +intf jakarta.websocket.WebSocketContainer +meth public abstract void addEndpoint(jakarta.websocket.server.ServerEndpointConfig) throws jakarta.websocket.DeploymentException +meth public abstract void addEndpoint(java.lang.Class) throws jakarta.websocket.DeploymentException +meth public abstract void upgradeHttpToWebSocket(java.lang.Object,java.lang.Object,jakarta.websocket.server.ServerEndpointConfig,java.util.Map) throws jakarta.websocket.DeploymentException,java.io.IOException + +CLSS public abstract interface !annotation jakarta.websocket.server.ServerEndpoint + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[TYPE]) +intf java.lang.annotation.Annotation +meth public abstract !hasdefault java.lang.Class[] decoders() +meth public abstract !hasdefault java.lang.Class[] encoders() +meth public abstract !hasdefault java.lang.Class configurator() +meth public abstract !hasdefault java.lang.String[] subprotocols() +meth public abstract java.lang.String value() + +CLSS public abstract interface jakarta.websocket.server.ServerEndpointConfig +innr public final static Builder +innr public static Configurator +intf jakarta.websocket.EndpointConfig +meth public abstract jakarta.websocket.server.ServerEndpointConfig$Configurator getConfigurator() +meth public abstract java.lang.Class getEndpointClass() +meth public abstract java.lang.String getPath() +meth public abstract java.util.List getExtensions() +meth public abstract java.util.List getSubprotocols() + +CLSS public final static jakarta.websocket.server.ServerEndpointConfig$Builder + outer jakarta.websocket.server.ServerEndpointConfig +meth public jakarta.websocket.server.ServerEndpointConfig build() +meth public jakarta.websocket.server.ServerEndpointConfig$Builder configurator(jakarta.websocket.server.ServerEndpointConfig$Configurator) +meth public jakarta.websocket.server.ServerEndpointConfig$Builder decoders(java.util.List>) +meth public jakarta.websocket.server.ServerEndpointConfig$Builder encoders(java.util.List>) +meth public jakarta.websocket.server.ServerEndpointConfig$Builder extensions(java.util.List) +meth public jakarta.websocket.server.ServerEndpointConfig$Builder subprotocols(java.util.List) +meth public static jakarta.websocket.server.ServerEndpointConfig$Builder create(java.lang.Class,java.lang.String) +supr java.lang.Object +hfds decoders,encoders,endpointClass,extensions,path,serverEndpointConfigurator,subprotocols + +CLSS public static jakarta.websocket.server.ServerEndpointConfig$Configurator + outer jakarta.websocket.server.ServerEndpointConfig +cons public init() +meth public <%0 extends java.lang.Object> {%%0} getEndpointInstance(java.lang.Class<{%%0}>) throws java.lang.InstantiationException +meth public boolean checkOrigin(java.lang.String) +meth public jakarta.websocket.server.ServerEndpointConfig$Configurator getContainerDefaultConfigurator() +meth public java.lang.String getNegotiatedSubprotocol(java.util.List,java.util.List) +meth public java.util.List getNegotiatedExtensions(java.util.List,java.util.List) +meth public void modifyHandshake(jakarta.websocket.server.ServerEndpointConfig,jakarta.websocket.server.HandshakeRequest,jakarta.websocket.HandshakeResponse) +supr java.lang.Object +hfds containerDefaultConfigurator + +CLSS abstract interface jakarta.websocket.server.package-info + +CLSS public abstract interface java.io.Closeable +intf java.lang.AutoCloseable +meth public abstract void close() throws java.io.IOException + +CLSS public abstract interface java.io.Serializable + +CLSS public abstract interface java.lang.AutoCloseable +meth public abstract void close() throws java.lang.Exception + +CLSS public abstract interface java.lang.Comparable<%0 extends java.lang.Object> +meth public abstract int compareTo({java.lang.Comparable%0}) + +CLSS public abstract java.lang.Enum<%0 extends java.lang.Enum<{java.lang.Enum%0}>> +cons protected init(java.lang.String,int) +innr public final static EnumDesc +intf java.io.Serializable +intf java.lang.Comparable<{java.lang.Enum%0}> +intf java.lang.constant.Constable +meth protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException +meth protected final void finalize() +meth public final boolean equals(java.lang.Object) +meth public final int compareTo({java.lang.Enum%0}) +meth public final int hashCode() +meth public final int ordinal() +meth public final java.lang.Class<{java.lang.Enum%0}> getDeclaringClass() +meth public final java.lang.String name() +meth public final java.util.Optional> describeConstable() +meth public java.lang.String toString() +meth public static <%0 extends java.lang.Enum<{%%0}>> {%%0} valueOf(java.lang.Class<{%%0}>,java.lang.String) +supr java.lang.Object +hfds name,ordinal + +CLSS public java.lang.Exception +cons protected init(java.lang.String,java.lang.Throwable,boolean,boolean) +cons public init() +cons public init(java.lang.String) +cons public init(java.lang.String,java.lang.Throwable) +cons public init(java.lang.Throwable) +supr java.lang.Throwable +hfds serialVersionUID + +CLSS public java.lang.Object +cons public init() +meth protected java.lang.Object clone() throws java.lang.CloneNotSupportedException +meth protected void finalize() throws java.lang.Throwable + anno 0 java.lang.Deprecated(boolean forRemoval=false, java.lang.String since="9") +meth public boolean equals(java.lang.Object) +meth public final java.lang.Class getClass() +meth public final void notify() +meth public final void notifyAll() +meth public final void wait() throws java.lang.InterruptedException +meth public final void wait(long) throws java.lang.InterruptedException +meth public final void wait(long,int) throws java.lang.InterruptedException +meth public int hashCode() +meth public java.lang.String toString() + +CLSS public java.lang.Throwable +cons protected init(java.lang.String,java.lang.Throwable,boolean,boolean) +cons public init() +cons public init(java.lang.String) +cons public init(java.lang.String,java.lang.Throwable) +cons public init(java.lang.Throwable) +intf java.io.Serializable +meth public final java.lang.Throwable[] getSuppressed() +meth public final void addSuppressed(java.lang.Throwable) +meth public java.lang.StackTraceElement[] getStackTrace() +meth public java.lang.String getLocalizedMessage() +meth public java.lang.String getMessage() +meth public java.lang.String toString() +meth public java.lang.Throwable fillInStackTrace() +meth public java.lang.Throwable getCause() +meth public java.lang.Throwable initCause(java.lang.Throwable) +meth public void printStackTrace() +meth public void printStackTrace(java.io.PrintStream) +meth public void printStackTrace(java.io.PrintWriter) +meth public void setStackTrace(java.lang.StackTraceElement[]) +supr java.lang.Object +hfds CAUSE_CAPTION,EMPTY_THROWABLE_ARRAY,NULL_CAUSE_MESSAGE,SELF_SUPPRESSION_MESSAGE,SUPPRESSED_CAPTION,SUPPRESSED_SENTINEL,UNASSIGNED_STACK,backtrace,cause,depth,detailMessage,serialVersionUID,stackTrace,suppressedExceptions +hcls PrintStreamOrWriter,SentinelHolder,WrappedPrintStream,WrappedPrintWriter + +CLSS public abstract interface java.lang.annotation.Annotation +meth public abstract boolean equals(java.lang.Object) +meth public abstract int hashCode() +meth public abstract java.lang.Class annotationType() +meth public abstract java.lang.String toString() + +CLSS public abstract interface !annotation java.lang.annotation.Documented + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) +intf java.lang.annotation.Annotation + +CLSS public abstract interface !annotation java.lang.annotation.Retention + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) +intf java.lang.annotation.Annotation +meth public abstract java.lang.annotation.RetentionPolicy value() + +CLSS public abstract interface !annotation java.lang.annotation.Target + anno 0 java.lang.annotation.Documented() + anno 0 java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy value=RUNTIME) + anno 0 java.lang.annotation.Target(java.lang.annotation.ElementType[] value=[ANNOTATION_TYPE]) +intf java.lang.annotation.Annotation +meth public abstract java.lang.annotation.ElementType[] value() + +CLSS public abstract interface java.lang.constant.Constable +meth public abstract java.util.Optional describeConstable() + diff --git a/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/sig-test-pkg-list.txt b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/sig-test-pkg-list.txt new file mode 100644 index 0000000000..0cba8af037 --- /dev/null +++ b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/sig-test-pkg-list.txt @@ -0,0 +1,26 @@ +# +# Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License v. 2.0, which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# This Source Code may also be made available under the following Secondary +# Licenses when the conditions for such availability set forth in the +# Eclipse Public License v. 2.0 are satisfied: GNU General Public License, +# version 2 with the GNU Classpath Exception, which is available at +# https://www.gnu.org/software/classpath/license.html. +# +# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 +# + +## +# This file contains a list of all the packages +# contained in the signature files for this +# deliverable. This file is used to exclude valid +# sub-packages from being verified when their +# parent package's signature is checked. +## + +jakarta.websocket +jakarta.websocket.server diff --git a/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/sig-test.map b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/sig-test.map new file mode 100644 index 0000000000..d4dc642ff6 --- /dev/null +++ b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/signaturetest/sig-test.map @@ -0,0 +1,20 @@ +# +# Copyright (c) 2018, 2024 Oracle and/or its affiliates. All rights reserved. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License v. 2.0, which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# This Source Code may also be made available under the following Secondary +# Licenses when the conditions for such availability set forth in the +# Eclipse Public License v. 2.0 are satisfied: GNU General Public License, +# version 2 with the GNU Classpath Exception, which is available at +# https://www.gnu.org/software/classpath/license.html. +# +# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 +# + +############################################################### +# The signature test mapping file for the Websocket TCK. +############################################################### +jakarta.websocket=2.2 diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/jakarta.servlet.ServletContainerInitializer b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/jakarta.servlet.ServletContainerInitializer similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/jakarta.servlet.ServletContainerInitializer rename to websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/spec/servercontainer/addendpoint/jakarta.servlet.ServletContainerInitializer diff --git a/websocket/src/main/resources/com/sun/ts/tests/websocket/spec/session/sessionid/web.xml b/websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/spec/session/sessionid/web.xml similarity index 100% rename from websocket/src/main/resources/com/sun/ts/tests/websocket/spec/session/sessionid/web.xml rename to websocket/spec-tests/src/main/resources/com/sun/ts/tests/websocket/spec/session/sessionid/web.xml diff --git a/websocket/tck-dist/pom.xml b/websocket/tck-dist/pom.xml new file mode 100644 index 0000000000..0ba93ed94f --- /dev/null +++ b/websocket/tck-dist/pom.xml @@ -0,0 +1,131 @@ + + + + 4.0.0 + + jakarta.tck + websocket-tck + 2.2.0 + ../pom.xml + + websocket-tck-dist + jar + + + ${project.groupId} + websocket-tck + ${version} + pom + + + ${project.groupId} + websocket-tck-common + ${version} + pom + + + ${project.groupId} + websocket-tck-spec-tests + ${version} + pom + + + ${project.groupId} + websocket-tck-common + ${version} + jar + + + ${project.groupId} + websocket-tck-spec-tests + ${version} + jar + + + ${project.groupId} + websocket-tck-common + ${version} + sources + true + + + ${project.groupId} + websocket-tck-spec-tests + ${version} + sources + true + + + + + ${bundle-name}-${project.version} + + + src/main/resources + + LICENSE_${license}.md + + + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + distribution + + single + + package + + + src/main/assembly/assembly.xml + + \ + false + ${bundle-name}-${project.version} + + + + + + + + + EFTL + + true + + + jakarta-websocket-tck + EFTL + + + + EPL + + websocket-tck + EPL + + + + diff --git a/websocket/tck-dist/src/main/assembly/assembly.xml b/websocket/tck-dist/src/main/assembly/assembly.xml new file mode 100644 index 0000000000..42260f1a00 --- /dev/null +++ b/websocket/tck-dist/src/main/assembly/assembly.xml @@ -0,0 +1,77 @@ + + + + + distribution + websocket-tck + + zip + + + + + + ${project.basedir}/src/main/resources/LICENSE_${license}.md + LICENSE.md + + + + + ${project.basedir}/../docs + docs + 755 + + assertions + *.html + *.txt + + + + ${project.basedir}/../docs/userguide/target/generated-docs + docs/pdf-usersguide + 755 + + *.pdf + + + + ${project.basedir}/../docs/userguide/target/staging + docs/html-usersguide + 755 + + *.html + css/** + img/** + + + + + + + jakarta.tck:websocket-tck + jakarta.tck:websocket-tck-common + jakarta.tck:websocket-tck-spec-tests + + false + artifacts + false + + + diff --git a/websocket/tck-dist/src/main/resources/LICENSE_EFTL.md b/websocket/tck-dist/src/main/resources/LICENSE_EFTL.md new file mode 100644 index 0000000000..a2106828a6 --- /dev/null +++ b/websocket/tck-dist/src/main/resources/LICENSE_EFTL.md @@ -0,0 +1,83 @@ +# Eclipse Foundation Technology Compatibility Kit License - v 1.0 + +Copyright (c) 2018, Eclipse Foundation, Inc. and its licensors. + +Redistribution and use in binary form is permitted provided that the +following conditions are met: + +1. Use of the Technology Compatibility Kit accompanying this license + (the "TCK") and its documentation is permitted solely for the + purpose of testing compatibility of an implementation (the + "Product") of a specification (the "Specification") made available + by the Eclipse Foundation, Inc. ("Eclipse"). + +2. Only those modifications expressly permitted by the TCK and its + documentation are permitted. Except in these limited circumstances, + no modifications to the TCK are permitted under this license. + +3. A Product will be deemed to be "compatible" with the Specification + if it fully and completely meets and satisfies all requirements of + the TCK. + +4. Before any claim of compatibility (or any similar claim suggesting + compatibility) is made based on the TCK, the testing party must: + + a. use the TCK to demonstrate that the Product fully and + completely meets and satisfies all requirements of the TCK; + + b. make TCK test results showing full and complete satisfaction of + all requirements of the TCK publicly available on the testing + party's website and send a link to such test results to Eclipse + at [tck@eclipse.org](mailto:tck@eclipse.org); and + + c. comply with any requirements stated in the Specification with + regard to subsetting, supersetting, modifying or extending the + Specification in any Product claimed to be compatible with the + Specification. + +5. The test results must be continuously available and the link must + be live for at least as long as the Product is available in the + marketplace. + +6. The TCK may not be used as a basis for any statements of partial + compatibility. The TCK may only be used as a basis for true, + factual statements of full compatibility of Products that fully + meet and satisfy all requirements of the TCK. + +7. A determination that a Product is compatible with the TCK does not, + in itself, give rise to the right to use any name, mark, logo + associated with the TCK, Eclipse, or Eclipse's contributors or + licensors. + +8. Upon the request of Eclipse, a tester will retract any statements + of compatibility (or any similar claim suggesting compatibility) + which Eclipse reasonably determines to be false or misleading or in + violation of the terms of this license. + +9. Redistribution of the TCK must be under this Eclipse Foundation + Technology Compatibility Kit License and must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +10. Neither the name, trademarks or logos of Eclipse, nor the names, + trademarks or logos of its contributors or licensors may be used to + endorse or promote products tested with this software without + specific prior written permission. + +11. The source code for the TCK accompanying this license is available + from Eclipse. + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED ON +AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER +EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR +CONDITIONS OF TITLE, NON- INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR +A PARTICULAR PURPOSE. TO THE EXTENT PERMITTED BY APPLICABLE LAW, +NEITHER THE COPYRIGHT OWNER OR ANY CONTRIBUTORS SHALL HAVE ANY +LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. diff --git a/websocket/tck-dist/src/main/resources/LICENSE_EPL.md b/websocket/tck-dist/src/main/resources/LICENSE_EPL.md new file mode 100644 index 0000000000..1d428edaa0 --- /dev/null +++ b/websocket/tck-dist/src/main/resources/LICENSE_EPL.md @@ -0,0 +1,637 @@ +# Eclipse Public License - v 2.0 + + THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE + PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION + OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + + 1. DEFINITIONS + + "Contribution" means: + + a) in the case of the initial Contributor, the initial content + Distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + where such changes and/or additions to the Program originate from + and are Distributed by that particular Contributor. A Contribution + "originates" from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's behalf. + Contributions do not include changes or additions to the Program that + are not Modified Works. + + "Contributor" means any person or entity that Distributes the Program. + + "Licensed Patents" mean patent claims licensable by a Contributor which + are necessarily infringed by the use or sale of its Contribution alone + or when combined with the Program. + + "Program" means the Contributions Distributed in accordance with this + Agreement. + + "Recipient" means anyone who receives the Program under this Agreement + or any Secondary License (as applicable), including Contributors. + + "Derivative Works" shall mean any work, whether in Source Code or other + form, that is based on (or derived from) the Program and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. + + "Modified Works" shall mean any work in Source Code or other form that + results from an addition to, deletion from, or modification of the + contents of the Program, including, for purposes of clarity any new file + in Source Code form that contains any contents of the Program. Modified + Works shall not include works that contain only declarations, + interfaces, types, classes, structures, or files of the Program solely + in each case in order to link to, bind by name, or subclass the Program + or Modified Works thereof. + + "Distribute" means the acts of a) distributing or b) making available + in any manner that enables the transfer of a copy. + + "Source Code" means the form of a Program preferred for making + modifications, including but not limited to software source code, + documentation source, and configuration files. + + "Secondary License" means either the GNU General Public License, + Version 2.0, or any later versions of that license, including any + exceptions or additional permissions as identified by the initial + Contributor. + + 2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare Derivative Works of, publicly display, + publicly perform, Distribute and sublicense the Contribution of such + Contributor, if any, and such Derivative Works. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in Source Code or other form. This patent license shall + apply to the combination of the Contribution and the Program if, at + the time the Contribution is added by the Contributor, such addition + of the Contribution causes such combination to be covered by the + Licensed Patents. The patent license shall not apply to any other + combinations which include the Contribution. No hardware per se is + licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby + assumes sole responsibility to secure any other intellectual + property rights needed, if any. For example, if a third party + patent license is required to allow Recipient to Distribute the + Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + + e) Notwithstanding the terms of any Secondary License, no + Contributor makes additional grants to any Recipient (other than + those set forth in this Agreement) as a result of such Recipient's + receipt of the Program under the terms of a Secondary License + (if permitted under the terms of Section 3). + + 3. REQUIREMENTS + + 3.1 If a Contributor Distributes the Program in any form, then: + + a) the Program must also be made available as Source Code, in + accordance with section 3.2, and the Contributor must accompany + the Program with a statement that the Source Code for the Program + is available under this Agreement, and informs Recipients how to + obtain it in a reasonable manner on or through a medium customarily + used for software exchange; and + + b) the Contributor may Distribute the Program under a license + different than this Agreement, provided that such license: + i) effectively disclaims on behalf of all other Contributors all + warranties and conditions, express and implied, including + warranties or conditions of title and non-infringement, and + implied warranties or conditions of merchantability and fitness + for a particular purpose; + + ii) effectively excludes on behalf of all other Contributors all + liability for damages, including direct, indirect, special, + incidental and consequential damages, such as lost profits; + + iii) does not attempt to limit or alter the recipients' rights + in the Source Code under section 3.2; and + + iv) requires any subsequent distribution of the Program by any + party to be under a license that satisfies the requirements + of this section 3. + + 3.2 When the Program is Distributed as Source Code: + + a) it must be made available under this Agreement, or if the + Program (i) is combined with other material in a separate file or + files made available under a Secondary License, and (ii) the initial + Contributor attached to the Source Code the notice described in + Exhibit A of this Agreement, then the Program may be made available + under the terms of such Secondary Licenses, and + + b) a copy of this Agreement must be included with each copy of + the Program. + + 3.3 Contributors may not remove or alter any copyright, patent, + trademark, attribution notices, disclaimers of warranty, or limitations + of liability ("notices") contained within the Program from any copy of + the Program which they Distribute, provided that Contributors may add + their own appropriate notices. + + 4. COMMERCIAL DISTRIBUTION + + Commercial distributors of software may accept certain responsibilities + with respect to end users, business partners and the like. While this + license is intended to facilitate the commercial use of the Program, + the Contributor who includes the Program in a commercial product + offering should do so in a manner which does not create potential + liability for other Contributors. Therefore, if a Contributor includes + the Program in a commercial product offering, such Contributor + ("Commercial Contributor") hereby agrees to defend and indemnify every + other Contributor ("Indemnified Contributor") against any losses, + damages and costs (collectively "Losses") arising from claims, lawsuits + and other legal actions brought by a third party against the Indemnified + Contributor to the extent caused by the acts or omissions of such + Commercial Contributor in connection with its distribution of the Program + in a commercial product offering. The obligations in this section do not + apply to any claims or Losses relating to any actual or alleged + intellectual property infringement. In order to qualify, an Indemnified + Contributor must: a) promptly notify the Commercial Contributor in + writing of such claim, and b) allow the Commercial Contributor to control, + and cooperate with the Commercial Contributor in, the defense and any + related settlement negotiations. The Indemnified Contributor may + participate in any such claim at its own expense. + + For example, a Contributor might include the Program in a commercial + product offering, Product X. That Contributor is then a Commercial + Contributor. If that Commercial Contributor then makes performance + claims, or offers warranties related to Product X, those performance + claims and warranties are such Commercial Contributor's responsibility + alone. Under this section, the Commercial Contributor would have to + defend claims against the other Contributors related to those performance + claims and warranties, and if a court requires any other Contributor to + pay any damages as a result, the Commercial Contributor must pay + those damages. + + 5. NO WARRANTY + + EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT + PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" + BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR + IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF + TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR + PURPOSE. Each Recipient is solely responsible for determining the + appropriateness of using and distributing the Program and assumes all + risks associated with its exercise of rights under this Agreement, + including but not limited to the risks and costs of program errors, + compliance with applicable laws, damage to or loss of data, programs + or equipment, and unavailability or interruption of operations. + + 6. DISCLAIMER OF LIABILITY + + EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT + PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS + SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST + PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE + EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + + 7. GENERAL + + If any provision of this Agreement is invalid or unenforceable under + applicable law, it shall not affect the validity or enforceability of + the remainder of the terms of this Agreement, and without further + action by the parties hereto, such provision shall be reformed to the + minimum extent necessary to make such provision valid and enforceable. + + If Recipient institutes patent litigation against any entity + (including a cross-claim or counterclaim in a lawsuit) alleging that the + Program itself (excluding combinations of the Program with other software + or hardware) infringes such Recipient's patent(s), then such Recipient's + rights granted under Section 2(b) shall terminate as of the date such + litigation is filed. + + All Recipient's rights under this Agreement shall terminate if it + fails to comply with any of the material terms or conditions of this + Agreement and does not cure such failure in a reasonable period of + time after becoming aware of such noncompliance. If all Recipient's + rights under this Agreement terminate, Recipient agrees to cease use + and distribution of the Program as soon as reasonably practicable. + However, Recipient's obligations under this Agreement and any licenses + granted by Recipient relating to the Program shall continue and survive. + + Everyone is permitted to copy and distribute copies of this Agreement, + but in order to avoid inconsistency the Agreement is copyrighted and + may only be modified in the following manner. The Agreement Steward + reserves the right to publish new versions (including revisions) of + this Agreement from time to time. No one other than the Agreement + Steward has the right to modify this Agreement. The Eclipse Foundation + is the initial Agreement Steward. The Eclipse Foundation may assign the + responsibility to serve as the Agreement Steward to a suitable separate + entity. Each new version of the Agreement will be given a distinguishing + version number. The Program (including Contributions) may always be + Distributed subject to the version of the Agreement under which it was + received. In addition, after a new version of the Agreement is published, + Contributor may elect to Distribute the Program (including its + Contributions) under the new version. + + Except as expressly stated in Sections 2(a) and 2(b) above, Recipient + receives no rights or licenses to the intellectual property of any + Contributor under this Agreement, whether expressly, by implication, + estoppel or otherwise. All rights in the Program not expressly granted + under this Agreement are reserved. Nothing in this Agreement is intended + to be enforceable by any entity that is not a Contributor or Recipient. + No third-party beneficiary rights are created under this Agreement. + + Exhibit A - Form of Secondary Licenses Notice + + "This Source Code may also be made available under the following + Secondary Licenses when the conditions for such availability set forth + in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), + version(s), and exceptions or additional permissions here}." + + Simply including a copy of this Agreement, including this Exhibit A + is not sufficient to license the Source Code under Secondary Licenses. + + If it is not possible or desirable to put the notice in a particular + file, then You may include the notice in a location (such as a LICENSE + file in a relevant directory) where a recipient would be likely to + look for such a notice. + + You may add additional accurate notices of copyright ownership. + +--- + +## The GNU General Public License (GPL) Version 2, June 1991 + + Copyright (C) 1989, 2022 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor + Boston, MA 02110-1335 + USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your freedom to + share and change it. By contrast, the GNU General Public License is + intended to guarantee your freedom to share and change free software--to + make sure the software is free for all its users. This General Public + License applies to most of the Free Software Foundation's software and + to any other program whose authors commit to using it. (Some other Free + Software Foundation software is covered by the GNU Library General + Public License instead.) You can apply it to your programs, too. + + When we speak of free software, we are referring to freedom, not price. + Our General Public Licenses are designed to make sure that you have the + freedom to distribute copies of free software (and charge for this + service if you wish), that you receive source code or can get it if you + want it, that you can change the software or use pieces of it in new + free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid anyone + to deny you these rights or to ask you to surrender the rights. These + restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether gratis + or for a fee, you must give the recipients all the rights that you have. + You must make sure that they, too, receive or can get the source code. + And you must show them these terms so they know their rights. + + We protect your rights with two steps: (1) copyright the software, and + (2) offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain + that everyone understands that there is no warranty for this free + software. If the software is modified by someone else and passed on, we + want its recipients to know that what they have is not the original, so + that any problems introduced by others will not reflect on the original + authors' reputations. + + Finally, any free program is threatened constantly by software patents. + We wish to avoid the danger that redistributors of a free program will + individually obtain patent licenses, in effect making the program + proprietary. To prevent this, we have made it clear that any patent must + be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and + modification follow. + + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains a + notice placed by the copyright holder saying it may be distributed under + the terms of this General Public License. The "Program", below, refers + to any such program or work, and a "work based on the Program" means + either the Program or any derivative work under copyright law: that is + to say, a work containing the Program or a portion of it, either + verbatim or with modifications and/or translated into another language. + (Hereinafter, translation is included without limitation in the term + "modification".) Each licensee is addressed as "you". + + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of running + the Program is not restricted, and the output from the Program is + covered only if its contents constitute a work based on the Program + (independent of having been made by running the Program). Whether that + is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's source + code as you receive it, in any medium, provided that you conspicuously + and appropriately publish on each copy an appropriate copyright notice + and disclaimer of warranty; keep intact all the notices that refer to + this License and to the absence of any warranty; and give any other + recipients of the Program a copy of this License along with the Program. + + You may charge a fee for the physical act of transferring a copy, and + you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion of + it, thus forming a work based on the Program, and copy and distribute + such modifications or work under the terms of Section 1 above, provided + that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any part + thereof, to be licensed as a whole at no charge to all third parties + under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a notice + that there is no warranty (or else, saying that you provide a + warranty) and that users may redistribute the program under these + conditions, and telling the user how to view a copy of this License. + (Exception: if the Program itself is interactive but does not + normally print such an announcement, your work based on the Program + is not required to print an announcement.) + + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, and + can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based on + the Program, the distribution of the whole must be on the terms of this + License, whose permissions for other licensees extend to the entire + whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of a + storage or distribution medium does not bring the other work under the + scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your cost + of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed + only for noncommercial distribution and only if you received the + program in object code or executable form with such an offer, in + accord with Subsection b above.) + + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source code + means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to control + compilation and installation of the executable. However, as a special + exception, the source code distributed need not include anything that is + normally distributed (in either source or binary form) with the major + components (compiler, kernel, and so on) of the operating system on + which the executable runs, unless that component itself accompanies the + executable. + + If distribution of executable or object code is made by offering access + to copy from a designated place, then offering equivalent access to copy + the source code from the same place counts as distribution of the source + code, even though third parties are not compelled to copy the source + along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt otherwise + to copy, modify, sublicense or distribute the Program is void, and will + automatically terminate your rights under this License. However, parties + who have received copies, or rights, from you under this License will + not have their licenses terminated so long as such parties remain in + full compliance. + + 5. You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and all + its terms and conditions for copying, distributing or modifying the + Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further restrictions + on the recipients' exercise of the rights granted herein. You are not + responsible for enforcing compliance by third parties to this License. + + 7. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot distribute + so as to satisfy simultaneously your obligations under this License and + any other pertinent obligations, then as a consequence you may not + distribute the Program at all. For example, if a patent license would + not permit royalty-free redistribution of the Program by all those who + receive copies directly or indirectly through you, then the only way you + could satisfy both it and this License would be to refrain entirely from + distribution of the Program. + + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is implemented + by public license practices. Many people have made generous + contributions to the wide range of software distributed through that + system in reliance on consistent application of that system; it is up to + the author/donor to decide if he or she is willing to distribute + software through any other system and a licensee cannot impose that choice. + + This section is intended to make thoroughly clear what is believed to be + a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License may + add an explicit geographical distribution limitation excluding those + countries, so that distribution is permitted only in or among countries + not thus excluded. In such case, this License incorporates the + limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new + versions of the General Public License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and "any + later version", you have the option of following the terms and + conditions either of that version or of any later version published by + the Free Software Foundation. If the Program does not specify a version + number of this License, you may choose any version ever published by the + Free Software Foundation. + + 10. If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the + author to ask for permission. For software which is copyrighted by the + Free Software Foundation, write to the Free Software Foundation; we + sometimes make exceptions for this. Our decision will be guided by the + two goals of preserving the free status of all derivatives of our free + software and of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO + WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. + EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR + OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, + EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE + ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH + YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL + NECESSARY SERVICING, REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN + WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY + AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR + DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL + DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM + (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED + INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF + THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR + OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest to + attach them to the start of each source file to most effectively convey + the exclusion of warranty; and each file should have at least the + "copyright" line and a pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + Also add information on how to contact you by electronic and paper mail. + + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type + `show w'. This is free software, and you are welcome to redistribute + it under certain conditions; type `show c' for details. + + The hypothetical commands `show w' and `show c' should show the + appropriate parts of the General Public License. Of course, the commands + you use may be called something other than `show w' and `show c'; they + could even be mouse-clicks or menu items--whatever suits your program. + + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a "copyright disclaimer" for the program, if + necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + program `Gnomovision' (which makes passes at compilers) written by + James Hacker. + + signature of Ty Coon, 1 April 1989 + Ty Coon, President of Vice + + This General Public License does not permit incorporating your program + into proprietary programs. If your program is a subroutine library, you + may consider it more useful to permit linking proprietary applications + with the library. If this is what you want to do, use the GNU Library + General Public License instead of this License. + +--- + +## CLASSPATH EXCEPTION + + Linking this library statically or dynamically with other modules is + making a combined work based on this library. Thus, the terms and + conditions of the GNU General Public License version 2 cover the whole + combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent + modules, and to copy and distribute the resulting executable under + terms of your choice, provided that you also meet, for each linked + independent module, the terms and conditions of the license of that + module. An independent module is a module which is not derived from or + based on this library. If you modify this library, you may extend this + exception to your version of the library, but you are not obligated to + do so. If you do not wish to do so, delete this exception statement + from your version.