sun.com docs.sun.com My Sun Worldwide Sites

  Previous Contents Next
Chapter 1

Introduction

This chapter provides an overview of the principles that apply generally to all Technology Compatibility Kits (TCKs) and describes the Java API for XML Web Services 2.2 TCK (JAX-WS TCK 2.2) (JSR 224). It also includes a high level listing of what is needed to get up and running with the JAX-WS TCK.

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 reference implementation for that feature. Compatibility testing is not primarily concerned with robustness, performance, or ease of use.

1.1.1 Why Compatibility Testing is Important

Java platform compatibility is important to different groups involved with Java technologies for different reasons:

  • Compatibility testing is the means by which Sun Microsystems ensures that the Java platform does not become fragmented as it is ported to different operating systems and hardware environments.

  • Compatibility testing benefits developers working in the Java 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 Java platform implementors by ensuring a level playing field for all Java platform ports.

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 Chapter 2.

1.1.3 TCK Overview

A TCK is a set of tools and tests used to verify that a licensee's implementation of Sun Microsystems's technology conforms to the applicable specification. All tests in the TCK are based on the written specifications for the Java platform. A TCK tests compatibility of a licensee's implementation of Sun Microsystems's technology to the applicable specification of the technology. Compatibility testing is a means of ensuring correctness, completeness, and consistency across all implementations developed by Sun Microsystems 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 Exclude List for the TCK you are using.

1.1.4 Java Community Process (JCP) Program and Compatibility Testing

The Java Community ProcessTM (JCP) program is the formalization of the open process that Sun Microsystems, Inc. has been using since 1995 to develop and revise Java technology specifications in cooperation with the international Java community. The JCP program specifies that the following three major components must be included as deliverables in a final Java technology release under the direction of the responsible Expert Group:

  • Technology Specification

  • Reference Implementation

  • Technology Compatibility Kit (TCK)

For further information about the JCP program, go to Java Community Process.

1.2 About the JAX-WS TCK 2.2

The JAX-WS TCK 2.2 is designed as a portable, configurable, automated test suite for verifying the compatibility of a licensee's implementation of Sun Microsystems's JAX-WS 2.2 Specification.

1.2.1 JAX-WS TCK Specifications and Requirements

This section lists the applicable requirements and specifications.

  • Specification Requirements — Software requirements for a JAX-WS implementation are described in detail in the JAX-WS 2.2 Specification. Links to the JAX-WS specification and other product information can be found at http://jcp.org/en/jsr/detail?id=224.

  • JAX-WS Version — The JAX-WS TCK 2.2 is based on the JAX-WS Specification, Version 2.2.

  • Reference Implementation — The Reference Implementation (RI) for JAX-WS 2.2 can be downloaded from the Java Partner Engineering Web site. This RI can be used with any web container that meets the minimum requirements for a container as defined in the JAX-WS 2.2 Specification. The JAX-WS 2.2 RI has also been integrated into the Java EE 6 RI bundle which is also available from Java Partner Engineering.

    See the Java API for XML Web Services TCK 2.2 Release Notes for more specific information about JDK version requirements, supported platforms, restrictions, etc.

1.2.2 JAX-WS TCK Components

The JAX-WS TCK 2.2 includes the following components:

  • JavaTest harness version 3.2.1 and related documentation. See the README-javatest.html file, the JavaTest Users Guide, and the ReleaseNotes-javatest.html file for additional information.

  • JAX-WS TCK signature tests; check that all public APIs are supported and/or defined as specified in the JAX-WS Version 2.2 implementation under test.

  • API tests for all of the JAX-WS API in all related packages:

    • javax.xml.ws

    • javax.xml.ws.handler

    • javax.xml.ws.handler.soap

    • javax.xml.ws.http

    • javax.xml.ws.soap

    • javax.xml.ws.spi

    • javax.xml.ws.spi.http

    • 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.

The JAX-WS TCK tests have been tested with the following:

  • JAX-WS 2.2 Reference Implementation

  • Java 2 Platform, Standard Edition, Version 5

  • Java 2 Platform, Standard Edition, Version 6

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

  • Solaris 9/10 Sparc/x86/Opteron

  • Windows XP Professional Edition

  • Windows Vista Business Edition

  • RedHat Enterprise Linux 4/5

  • MacOS X 10.5

1.2.3 JavaTest Harness

The JavaTestTM harness version 3.2.1 is a set of tools designed to run and manage test suites on different Java platforms. The JavaTest harness can be described as both a Java application and a set of compatibility testing tools. It can run tests on different kinds of Java platforms and it allows the results to be browsed online within the JavaTest GUI, or offline in the HTML reports that the JavaTest harness generates.

The JavaTest harness includes the applications and tools that are used for test execution and test suite management. It supports the following features:

  • Sequencing of tests, allowing them to be loaded and executed automatically

  • Graphic user interface (GUI) for ease of use

  • Automated reporting capability to minimize manual errors

  • Failure analysis

  • Test result auditing and auditable test specification framework

  • Distributed testing environment support

To run tests using the JavaTest harness, you specify which tests in the test suite to run, how to run them, and where to put the results as described in Chapter 4.

1.2.4 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 JAX-WS TCK 2.2 to test a JAX-WS 2.2 implementation. The tests are designed to verify that a licensee'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. When a test run is started, the JavaTest harness scans through the set of tests that are located under the directories that have been selected. While scanning, the JavaTest harness selects the appropriate tests according to any matches with the filters you are using and queues them up for execution.

1.2.5 Exclude Lists

Each version of a TCK includes an Exclude List contained in a .jtx 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 JavaTest harness automatically excludes any test on the Exclude List from being executed.

A licensee is not required to pass any test—or even run any test—on the Exclude List. The Exclude List file, <TS_HOME>/bin/ts.jtx, is included in the JAX-WS TCK.


Note - From time to time, updates to the Exclude List are made available on the Java Partner Engineering Web site. You should always make sure you are using an up-to-date copy of the Exclude List before running the JAX-WS 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 Sun Microsystems reference implementations. Any tests that fail when run on a reference Java 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 - Licensees are not permitted to alter or modify Exclude Lists. Changes to an Exclude List can only be made by using the procedure described in Java API for XML Web Services 2.2 Test Appeals Process.


1.2.6 JAX-WS TCK Configuration

You need to set several variables in your test environment, modify properties in the <TS_HOME>/bin/ts.jte file, and then use the JavaTest harness to configure and run the JAX-WS tests, as described in Chapter 4.

1.3 Getting Started With the JAX-WS TCK

This section provides an general overview of what needs to be done to install, set up, test, and use the JAX-WS TCK. These steps are explained in more detail in subsequent chapters of this guide.

To get started with the JAX-WS TCK

  1. Make sure that the following software has been correctly installed on the system hosting the JavaTest harness:
    • Java SE 5 or higher

    • JAX-WS TCK version 2.2

    • The JAX-WS 2.2 Reference Implementation (RI)

    • The JAX-WS 2.2 Vendor Implementation (VI)

    • The Java EE 6 RI which contains the JAX-WS 2.2 Reference Implementation (RI)

    See the documentation for each of these software applications for installation instructions. See Chapter 3 for instructions on installing the JAX-WS TCK.

  2. Set up the JAX-WS TCK software.

    See Chapter 4 for details about the following steps.

    1. Set up your shell environment.
    2. Modify the required properties in the <TS_HOME>/bin/ts.jte file.
    3. Configure the JavaTest harness.
  3. Test the JAX-WS 2.2 implementation.

    Test the JAX-WS implementation installation by running the test suite. See Chapter 5.

Previous Contents Next
Company Info Contact Terms of Use Privacy Copyright 1994-2009 Sun Microsystems, Inc.