1. Introduction

XQJ TCK is the Technology Compatibility Kit (TCK) for XQuery API for Java (XQJ).

This TCK is used to test whether or not an XQJ implementation complies with the XQJ specification.

2. Requirements

XQJ TCK requires the following Java technologies:

3. Installation

Simply unpack the downloaded binary distribution into root directory as /xqjtck.

You will see the following files and directories inside:

4. Running TCK

4.1 Configuring the XQDataSource properties file

This TCK will look for a properties file specifying the XQDataSource class of the XQJ implementation to test. Additional properties for this specific implementation can be added to the properties file. The examples directory in your TCK implementation includes an example properties file for the XQJ Reference Implementation.

XQDataSourceClassName = oracle.xquery.xqj.OXQDataSource

Note that the XQJ Reference Implementation does not require any additional properties.

Assume the XQJ implementation to test has an XQDataSource implementation org.example.ExampleDataSource, requiring two properties 'ServerName' and 'PortNumber'. The properties may look as follows,

XQDataSourceClassName = org.example.ExampleDataSource
ServerName = www.example.org
PortNumber = 1234

4.2 Setting up classpath

Include the following jar files in your classpath:

4.3 Starting the test suite

To start running this TCK, you would execute the following statement:

java -Dcom.oracle.xqj.tck.datasource=your_xqdatasource_file.properties com.oracle.xqj.tck.AllTests

The test results are written to standard out by default.

4.5 Reading the test results

An XQJ implementation compliant with the XQJ specification reports no errors, neither failures. Running the TCK with the RI yields the following results (The time might differ),
.........................................
.........................................
.........................................
.........................................
.........................................
.........................................
..........
Time: 3.338

OK (254 tests)

5. Compatibility Requirements

This section describes the compatibility requirements for XQJ. These rules apply for each version of an operating system, software component, hardware platform and product setting documented as supported by the product.

The compatibility requirements are as follows.

6. Appeals Process

Any JSR 225 TCK licensee (Licensee) may submit an appeal of any test (including test results) in the TCK. Appeals that will be considered are limited to the following categories:
  1. Licensee may assert that a test is in error (for example, program logic errors).
  2. Licensee may assert that some specification assertion covered by the test is ambiguous. This includes assertions that some test assumes one interpretation of some part of the specification, but at least one additional valid interpretation is possible and that such other interpretation(s) would require a different test or a different result from the same test.
  3. Licensee may assert that the test does not match the specification. This includes assertions that some test returns an incorrect result according to the specification.

No appeal will be considered that is unrelated to technical correctness.

The Maintenance Lead has complete authority to interpret the specification and rule on each challenge.
The process that must be followed to ensure proper consideration and acknowledgement involves several steps.

  1. Licensee writes a test challenge and submits it by email addressed to jsr-225-comments@jcp.org, specifying all of the following:
    a) The name, address, telephone number, email address, and affiliation of Licensee or designated Licensee contact.
    b) A very brief statement of the nature of the appeal.
    c) Identification of the test or tests to which the appeal is related.
    d) A clear statement of the problem, including error messages returned, incorrect answers along with the putative correct answers, code fragments that demonstrate the error, and other supporting material that Licensee believes will assist the appeal. If the appeal suggests a revision of the test itself, it would be helpful if Licensee would submit the complete rewritten test; this is, however, not a requirement for submission of an appeal.
  2. The JSR 225 Maintenance Lead (Lead), upon receipt of the challenge send to the address specified above, will acknowledge the challenge within 21 days and record it in a log maintained by Lead. The acknowledgement will include one of the following pieces of information:
    a) A date, no later than 30 days following the date of the acknowledgement, by which the appeal will have been formally considered and a definitive response sent to the licensee. A preliminary response indicating Lead's initial reaction to the challenge or requesting additional information may be part of such an acknowledgement.
    b) A definitive response to the challenge specifying either that the challenge has been accepted and a revised test is being prepared, or that the challenge is rejected for a reason specified in the response.
  3. If the challenge acknowledgement does not include a definitive response, then Lead will, within 30 days of the acknowledgement, issue a definitive response to the licensee. If the response requires creation of a new test or modification of an existing test, that test or tests will be made available, before the response has been transmitted, at a URI linked from the official JSR 225 page, http://www.jcp.org/en/jsr/detail?id=225. If the response requires the removal of one or more tests from the TCK, Lead will place the test or tests on an Exclude List for that version of the JSR 225 TCK (effectively removing the test(s) from the Test Suite); that Exclude List will be made available, before the response has been transmitted, at the URI cited above.
  4. If Licensee is not satisfied by the definitive response, a dialog may be initiated with Lead. Alternatively, Licensee may appeal directly to the Java Community Process by sending email to the JCP Executive Committee as specified by section 4.3.1 of the JCP 2 Process Document located at http://www.jcp.org/en/procedures/jcp2.

7. Test Coverage

See here for details.

8. Assertions

See here for details.