# JAX-WS Technology Compatibility Kit, Version 2.3
Release Notes, May 2017

## Kit Contents

The JAX-WS, Version 2.3 Technology Compatibility Kit (TCK) includes the following items:

- JAX-WS TCK Signature, API, End-to-end, WS-I Conformance, Java-to-WSDL/WSDL-to-Java Mapping and Web Services Addressing Conformance tests:

  - A Signature test that checks that all of the public APIs are supported/defined as specified in the JAX-WS Version 2.3 implementation that is being tested.

  - API tests to verify the functionality of all the public APIs under `javax.xml.ws`, `javax.xml.ws.handler`, `javax.xml.ws.handler.soap`, `javax.xml.ws.http`, `javax.xml.ws.spi`, `javax.xml.ws.spi.http`, `javax.xml.ws.soap`, and `javax.xml.ws.wsaddressing`.

  - End-to-end tests that demonstrate marshalling/unmarshalling of all XML supported data types when going from WSDL-to-Java and all JAX-WS supported Java data types when going from Java-to-WSDL as JAX-WS Soap Messages both through synchronous (request/response) and asynchronous (request/response) and (one-way) RPC invocations. All client programming model invocation methods (Stub-based, Dynamic Proxy, and Dispatch interface) are tested.

  - WS-I Conformance Tests that test and check for conformance to the WS-I Basic Profile 1.1, Attachment Profile 1.0, and Simple Soap Binding Profile 1.0 conformance specifications.

  - Java-to-WSDL/WSDL-to-Java Mapping Tests that test and check for conformance to the Java-to-WSDL and WSDL-to-Java mappings.

  - Web Services Addressing Conformance Tests that test and check for conformance to the Web Services Addressing 1.0 - Core, Web Services Addressing 1.0 - Metadata, and Web Services Addressing 1.0 - SOAP Binding conformance specifications.

  ## Platform Notes

  The JAX-WS TCK tests have been built and tested with the Sun GlassFish Enterprise Server v5 running on the Java(tm) Standard Edition 8 (Java SE 8) platforms. If you are using a different Web server, you will need to make adjustments to the procedures outlined in this document.

  The JAX-WS TCK tests run on the following platforms:

  - Oracle Linux 7.1
  - Windows 10

  In the instructions in this document, variables in angle brackets need to be expanded for each platform. For example, `<TS_HOME>` becomes `$TS_HOME` on Solaris/Linux and `%TS_HOME%` on Windows 10. In addition, the forward slashes (`/`) used in all of the examples need to be replaced with backslashes (`\`) for Windows XP.

  ## Updates for the JAX-WS TCK 2.3 Release

  Added support for Java SE 8 based signatures.
  Added tests for @Repeatable(value=WebServiceRefs.class) @WebServiceRef.

  ## Notes for JAX-WS TCK 2.3 Release

  There are a few JAX-WS tests that reference schemas over the internet and this caused build issues when attempting the rebuildable portion of JAX-WS when test machines had no access to the internet.

  The following test references schema [ `http://www.w3.org/2006/03/addressing/ws-addr.xsd` ]

  - `src/com/sun/ts/tests/jaxws/wsa/j2w/document/literal/epr`

  The following test references schema [ `http://ws-i.org/profiles/basic/1.1/swaref.xsd` ]

  - `src/com/sun/ts/tests/jaxws/wsi/w2j/document/literal/swareftest`

  If you attempt to build the jaxws tree for the VI as part of the rebuildable technology rules and you do not have access to the internet than the build will fail for these test cases. You need to use a jax-ws catalog to resolve the URI's locally. A jax-ws catalog file exists under the following directory:

  - `TS_HOME/src/com/sun/ts/tests/jaxws/common/xml/catalog/META-INF/jax-ws-catalog.xml`

  The wsimport ant task within `TS_HOME/src/com/sun/ts/tests/jaxws/common/xml/common.xml` refers to this catalog file appropriately for both the RI and VI wsimport ant task tool wrappers.

  We do not distribute these standards defined schema files as part of our test suite. So the licensee will have to ensure to download and get a copy of the above schemas however they decide to and place them in the TS_HOME/lib/schemas directory of the test suite in order to build these tests with no internet access. The catalog file mentioned above will resolve these URI's locally to these schema files under the TS_HOME/lib/schemas.

  ## `javax.xml.ws.Endpoint` publishing API's

  The following properties, which are used by the Endpoint API tests in the `jaxws/api/javax_xml_ws/Endpoint` directory, must be set in the ts.jte file:

  - The `http.server.supports.endpoint.publish` property indicates whether or not your HTTP server supports endpoint publishing.
  - The `http.server.supports.endpoint.publish.2` property indicates whether or not the Java EE 8 RI server supports endpoint publishing.

  If your server supports endpoint publishing (supports the use of `javax.xml.ws.Endpoint.publish()` methods), set the property value to "true". In an unmanaged environment, such as that in standalone mode, this call is usually allowed. When the property is set to "true", the test will check that the endpoint publish methods publish the endpoints without throwing an exception. When this result occurs with this scenario, the result is considered a PASS.

  If your server does not support endpoint publishing (does not support the use of `javax.xml.ws.Endpoint.publish()` methods), set the property value to "false". In a managed environment, such as the Java EE 8 Reference Implementation, this is usually the case and this call would not be allowed. When the property is set to "false", the tests will check that these endpoint publish methods do not publish the endpoints and an exception will be thrown. When this result occurs with this scenario, the result is considered a PASS.

  The `http.server.supports.endpoint.publish.2` property settings are used to specify whether or not endpoint publishing is supported by the Java EE 8 RI HTTP server. The same settings and caveats as the `http.server.supports.endpoint.publish` property apply to this property, based on whether or not the Java EE 8 RI supports endpoint publishing.

  ## Installing, Setting Up, and Running the JAX-WS TCK

  Refer to the JAX-WS TCK 2.3 User's Guide, available in the JAX-WS TCK 2.3 documentation bundle, for complete instructions on installing, setting up, and running the JAX-WS TCK. The online version of the JT Harness version 5.0 documentation is available here.

  ## Quick Steps to Configure Apache Tomcat 8 for JAX-WS TCK

  Follow the steps below to configure Apache Tomcat 8 for JAX-WS TCK 2.3

  - Install Apache Tomcat 8.5.x to /apache-tomcat-8.5.x
  - Install JAX-WS RI 2.3 to /jaxws-ri
  - Install JAX-WS TCK 2.3 to /jaxwstck
  - Copy JAX-WS RI 2.3 and JAX-WS TCK 2.3 jars to appropriate Apache Tomcat 8.5.x directories
  - mkdir -p /apache-tomcat-8.5.x/shared/lib /apache-tomcat-8.5.x/endorsed
  For Java SE 8 do the following steps and use the ts.jte.tomcat.jdk18 file:
  - cp /jaxws-ri/lib/*.jar /apache-tomcat-8.5.x/shared/lib
  - cd /apache-tomcat-8.5.x/shared/lib; mv jaxws-api.jar jaxb-api.jar /apache-tomcat-8.5.x/endorsed
  - cp /jaxwstck/lib/jaxwstck.jar /jaxwstck/lib/tsharness.jar /apache-tomcat-8.5.x/shared/lib
  - cd /jaxwstck/bin; mv ts.jte ts.jte.javaee8; cp ts.jte.tomcat.jdk18 ts.jte
  - Make sure endorsed.dirs, endorsed.dirs.ri properties in ts.jte file point to Apache Tomcat 8.5.x endorsed directory
  - Configure the rest of ts.jte as per JAX-WS TCK 2.3 User's Guide (Example: jaxws.classes, webcontainer.home, etc)
  - Edit /apache-tomcat-8.5.x/conf/catalina.properties and set shared.loader property to:
  - shared.loader=${catalina.home}/shared/lib/*.jar,${catalina.home}/endorsed/*.jar
  - Configure the tomcat users in the /apache-tomcat-8.5.x/conf/tomcat-users.xml file as follows:

      <tomcat-users>
        <role rolename="tomcat"/>
        <role rolename="role1"/>
        <role rolename="Administrator"/>
        <role rolename="Manager"/>
        <role rolename="Employee"/>
        <user username="both" password="tomcat" roles="tomcat,role1"/>
        <user username="tomcat" password="tomcat" roles="tomcat"/>
        <user username="j2ee" password="j2ee" roles="Administrator,Employee"/>
        <user username="javajoe" password="javajoe" roles="Manager,Employee"/>
        <user username="role1" password="tomcat" roles="role1"/>
      </tomcat-users>

  - Restart Apache Tomcat 8.5.x which is now ready for JAX-WS TCK 2.3 testing

  Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.