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:
- A Java Runtime Environment (JRE) 1.4 or higher.
Note that some XQJ implementation may require a higher version of the
Java Runtime Environment. For example the XQJ Reference Implementation
requires JRE 5.0 or higher.
- An implementation of XQuery API for
Java (XQJ) to be tested.
- JUnit 3.8.x or higher.
3. Installation
Simply unpack the downloaded binary distribution into root directory as
/xqjtck.
You will see the following files and directories inside:
- readme.html.
- doc/
- assertions.html/, documentation of assertions
used within this TCK.
- coverage.html, test coverage of this TCK.
- examples/
- ri.properties, example properties file for the
XQJ Reference Implementation.
- lib/, the directory with the jar file of this TCK.
- src/, the directory with the source code of this TCK.
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:
/lib/xqjtck.jar
.
junit.jar
of JUnit.
- all required jar files for the XQJ implementation to be tested. This includes the jar file with the XQJ interfaces and classes,
xqjapi.jar
.
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.
- Pass all test of the TCK.
- Comply with the requirements outlined in chapter "3 Compliance" of the XQJ specification (PDF).
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:
- Licensee may assert that a test is in error (for example, program logic errors).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.