Skip to content

Restful webservices TCK separation

Alwin Joseph edited this page Sep 7, 2021 · 5 revisions

Find the latest status of REST TCK separation in https://github.com/alwin-joseph/jaxrs-api/wiki/REST-TCK-separation-from-JakartaEE-TCK-repo

In this page I have tried to propose a feasible way of separating jaxrs tck from the jakartaee-tck repo.

My approach is as below :

  • Have two separate sets of jaxrs tests - standalone jaxrs tests(those run in standalone TCK) & platform jaxrs tests(those that are run only for platform).
  • The standalone jaxrs tests can be moved in jaxrs-api project, hence can evolve independently.
  • The below platform jaxrs tests will continue to exist in the platform TCK (run using current JavaTest/CTS framework).
    • -src/com/sun/ts/tests/jaxrs/jaxrs21/platform
    • -src/com/sun/ts/tests/jaxrs/platform
  • Change the platform certification process to include the standalone jaxrs tck run also.

Steps followed as of now at https://github.com/alwin-joseph/jaxrs-api/tree/jaxrs-tck/

Step 1. Lift standalone jaxrs tests(along with the signature test) from jakartaee-tck repo and shift to jaxrs-api repo.

Below folders were moved to https://github.com/alwin-joseph/jaxrs-api/tree/jaxrs-tck/jaxrs-tck

  • -src/com/sun/ts/tests/jaxrs/ (excluded folders mentioned later)
  • -src/com/sun/ts/tests/signaturetest/jaxrs
  • -src/com/sun/ts/tests/common/ (common folder)
  • -src/com/sun/ts/lib/ (common folder)
  • -src/com/sun/ts/tests/servlet/common/util/Data.java (can create one exclusively for jaxrs to remove this dependency)
  • -install/jaxrs
  • -bin/xml (common folder)
  • -user_guides/jaxrs
  • -release/tools/jaxrs.xml
  • -release/tools/build.xml (common file)
  • -release/tools/build-utils.xml (common file)
  • -release/tools/common.xml (common file)
  • -lib/ (common folder)
  • -LICENSE.md
  • -docker/build_standalonetck.sh
  • -internal/docs/jaxrs

Below will continue to exist in the platform TCK and excluded in standalone TCK :

  • -src/com/sun/ts/tests/jaxrs/jaxrs21/platform
  • -src/com/sun/ts/tests/jaxrs/platform

Step 2 : build the standalone TCK from the new jaxrs-api repo using jaxrs-api/jaxrs-tck/docker/build_standalonetck.sh

I have moved the required sources to https://github.com/alwin-joseph/jaxrs-api/tree/jaxrs-tck, and successfully built the jaxrs standalone TCK from the new repo.

Points to be noted:

  1. There are several common files and folders that were copied for standalone jaxrs tck, which is also used for other tcks. Some of those can be modified to exclusively be used for jaxrs so as to remove duplicate code.

  2. Currently the jaxrs standalone tests at https://github.com/alwin-joseph/jaxrs-api/tree/jaxrs-tck/jaxrs-tck which is in CTS framework can be migrated to Junit/Arquillian. The evolved jaxrs tck must be used for restful spec certification.

  3. The platform TCK will continue to have jaxrs platform tests and will be run for platform spec certification along with jaxrs standalone tck.

  4. This approach will not alter the current jaxrs tests that are run in standalone and platform TCK. We will adhere to : "Any test in platform folder (and 2.1 platform folder) is not possible to be a part of the standalone TCK bundle and would be needed to be a part of the platform TCK" which is the current way.

Need more comments & suggestions

Clone this wiki locally