From ee9043e8039bea2891b746b0d1d82b9ffdfce4eb Mon Sep 17 00:00:00 2001 From: Alwin Joseph <44426046+alwin-joseph@users.noreply.github.com> Date: Fri, 17 Dec 2021 15:16:46 +0530 Subject: [PATCH] jsonb documentation moved and updated --- tck-docs/JSONB3.0-ReleaseNotes.html | 95 ++ tck-docs/TCK-Exclude-List.txt | 33 + .../assertions/JSONB10JavadocAssertions.html | 847 ++++++++++++++++ .../assertions/Jsonb10SpecAssertions.html | 910 ++++++++++++++++++ tck-docs/index.html | 57 ++ tck-docs/userguide/README.md | 77 ++ tck-docs/userguide/pom.xml | 258 +++++ .../userguide/src/main/jbake/assets/README.md | 4 + .../src/main/jbake/assets/_config.yml | 14 + .../src/main/jbake/assets/css/style.css | 313 ++++++ .../img/eclipse_foundation_logo_tiny.png | Bin 0 -> 3612 bytes .../userguide/src/main/jbake/content/README | 77 ++ .../src/main/jbake/content/attributes.conf | 35 + .../src/main/jbake/content/config.adoc | 48 + .../src/main/jbake/content/config.inc | 88 ++ .../src/main/jbake/content/debug-tips.inc | 0 .../src/main/jbake/content/debug.adoc | 66 ++ .../src/main/jbake/content/defns.inc | 46 + .../userguide/src/main/jbake/content/faq.adoc | 53 + .../main/jbake/content/install-server-vi.inc | 0 .../src/main/jbake/content/install-server.inc | 0 .../src/main/jbake/content/install.adoc | 91 ++ .../src/main/jbake/content/intro.adoc | 309 ++++++ .../src/main/jbake/content/intro.inc | 0 .../src/main/jbake/content/packages.inc | 11 + .../src/main/jbake/content/platforms.inc | 1 + .../src/main/jbake/content/preface.adoc | 141 +++ .../src/main/jbake/content/rebuild.adoc | 20 + .../src/main/jbake/content/rebuild.inc | 8 + .../src/main/jbake/content/req-software.inc | 10 + .../src/main/jbake/content/rules.adoc | 401 ++++++++ .../src/main/jbake/content/rules.inc | 78 ++ .../src/main/jbake/content/tck-packages.inc | 1 + .../src/main/jbake/content/title.adoc | 42 + .../src/main/jbake/content/title.inc | 11 + .../userguide/src/main/jbake/content/toc.adoc | 87 ++ .../src/main/jbake/content/using-examples.inc | 49 + .../src/main/jbake/content/using.adoc | 145 +++ .../src/main/jbake/content/using.inc | 0 .../userguide/src/main/jbake/jbake.properties | 24 + .../src/main/jbake/templates/footer.ftl | 44 + .../src/main/jbake/templates/header.ftl | 54 ++ .../src/main/jbake/templates/menu.ftl | 1 + .../src/main/jbake/templates/page.ftl | 8 + .../userguide/src/theme/jakartaee-theme.yml | 299 ++++++ 45 files changed, 4856 insertions(+) create mode 100644 tck-docs/JSONB3.0-ReleaseNotes.html create mode 100644 tck-docs/TCK-Exclude-List.txt create mode 100644 tck-docs/assertions/JSONB10JavadocAssertions.html create mode 100644 tck-docs/assertions/Jsonb10SpecAssertions.html create mode 100644 tck-docs/index.html create mode 100644 tck-docs/userguide/README.md create mode 100644 tck-docs/userguide/pom.xml create mode 100644 tck-docs/userguide/src/main/jbake/assets/README.md create mode 100644 tck-docs/userguide/src/main/jbake/assets/_config.yml create mode 100644 tck-docs/userguide/src/main/jbake/assets/css/style.css create mode 100644 tck-docs/userguide/src/main/jbake/assets/img/eclipse_foundation_logo_tiny.png create mode 100644 tck-docs/userguide/src/main/jbake/content/README create mode 100644 tck-docs/userguide/src/main/jbake/content/attributes.conf create mode 100644 tck-docs/userguide/src/main/jbake/content/config.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/config.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/debug-tips.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/debug.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/defns.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/faq.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/install-server-vi.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/install-server.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/install.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/intro.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/intro.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/packages.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/platforms.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/preface.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/rebuild.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/rebuild.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/req-software.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/rules.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/rules.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/tck-packages.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/title.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/title.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/toc.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/using-examples.inc create mode 100644 tck-docs/userguide/src/main/jbake/content/using.adoc create mode 100644 tck-docs/userguide/src/main/jbake/content/using.inc create mode 100644 tck-docs/userguide/src/main/jbake/jbake.properties create mode 100644 tck-docs/userguide/src/main/jbake/templates/footer.ftl create mode 100644 tck-docs/userguide/src/main/jbake/templates/header.ftl create mode 100644 tck-docs/userguide/src/main/jbake/templates/menu.ftl create mode 100644 tck-docs/userguide/src/main/jbake/templates/page.ftl create mode 100644 tck-docs/userguide/src/theme/jakartaee-theme.yml diff --git a/tck-docs/JSONB3.0-ReleaseNotes.html b/tck-docs/JSONB3.0-ReleaseNotes.html new file mode 100644 index 00000000..da40acea --- /dev/null +++ b/tck-docs/JSONB3.0-ReleaseNotes.html @@ -0,0 +1,95 @@ + + + +Jakarta JSON Binding TCK, Version 3.0 Release Notes, December 2021 + + + + +
+

Jakarta JSON Binding Technology Compatibility Kit, Version 3.0
+Release Notes, December, 2021

+
+ + +

Kit Contents

+ +

The Jakarta JSON Binding, Version 3.0 Technology Compatibility Kit (TCK) includes the following items:

+ + + +
+

Jakarta JSON Binding 3.0 TCK Facts

+

The test suite bundle contains the following:

+ + +
+

Platform Notes

+ +

The Jakarta JSON Binding TCK tests have been built and tested running on the JavaTM +Standard Edition 11 (Java SE 11) platform.

+ +

The Jakarta JSON Binding TCK tests run on the following platforms:

+ + + +
+ +

Installing, Setting Up, and Running the Jakarta JSON Binding TCK

+ +

Refer to the Jakarta JSON Binding TCK 3.0 User's Guide for complete instructions on installing, setting up, and running the Jakarta JSON Binding TCK.

+ +
+

Attributions

+

The Jakarta JSON Binding 3.0 TCK includes software developed by the Apache + Software Foundation (http://www.apache.org/). +

+ +
+

Copyright (c) 2017, 2019 Oracle and/or its affiliates. All rights reserved.

+ diff --git a/tck-docs/TCK-Exclude-List.txt b/tck-docs/TCK-Exclude-List.txt new file mode 100644 index 00000000..4ed39c45 --- /dev/null +++ b/tck-docs/TCK-Exclude-List.txt @@ -0,0 +1,33 @@ +# +# Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License v. 2.0, which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# This Source Code may also be made available under the following Secondary +# Licenses when the conditions for such availability set forth in the +# Eclipse Public License v. 2.0 are satisfied: GNU General Public License, +# version 2 with the GNU Classpath Exception, which is available at +# https://www.gnu.org/software/classpath/license.html. +# +# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 +# + +# +# Bug ID: https://github.com/eclipse-ee4j/jsonb-api/issues/180 +# +jakarta/jsonb/bind/tck/defaultmapping/basictypes/BasicJavaTypesMappingTest.java#testLongMapping_from_standalone +jakarta/jsonb/bind/tck/defaultmapping/bignumbers/BigNumbersMappingTest.java#testBigNumberMarshalling_from_standalone + +# +# Bug ID: https://github.com/eclipse-ee4j/jakartaee-tck/issues/102 +# +jakarta/jsonb/bind/tck/defaultmapping/dates/DatesMappingTest.java#testGregorianCalendarWithTimeMapping_from_standalone + +# +# Bug ID: https://github.com/eclipse-ee4j/jakartaee-tck/issues/103 +# +jakarta/jsonb/bind/tck/defaultmapping/collections/CollectionsMappingTest.java#testEnumMap_from_standalone +jakarta/jsonb/bind/tck/defaultmapping/collections/CollectionsMappingTest.java#testEnumSet_from_standalone + diff --git a/tck-docs/assertions/JSONB10JavadocAssertions.html b/tck-docs/assertions/JSONB10JavadocAssertions.html new file mode 100644 index 00000000..bbe8d5ee --- /dev/null +++ b/tck-docs/assertions/JSONB10JavadocAssertions.html @@ -0,0 +1,847 @@ + + + + + + +JavaDoc Assertion Detail + + +
+
+

Jakarta JSON Binding - 1.0
+ JavaDoc Assertion Detail +

+
+ + + + + + + + + + + +
TotalsTotalActiveDeprecatedRemoved
+ # of Assertions + 808000
+ # of Required Assertions + 808000
+ # of Optional Assertions + 0000
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDReturnMethod/FieldDescriptionRequiredDeprecatedTestable
JSONB:JAVADOC:1Objectjavax.json.bind.Jsonb.fromJson
+ + ( + String + ,
Class + ) +
Reads in a JSON data from the specified string and return the resulting content tree.true +
+
true
JSONB:JAVADOC:2Objectjavax.json.bind.Jsonb.fromJson
+ + ( + String + ,
Class + ) +
throws + JsonbException
+
If any unexpected error(s) occur(s) during deserialization.true +
+
false
JSONB:JAVADOC:3Objectjavax.json.bind.Jsonb.fromJson
+ + ( + String + ,
Type + ) +
Reads in a JSON data from the specified string and return the resulting content tree.true +
+
true
JSONB:JAVADOC:4Objectjavax.json.bind.Jsonb.fromJson
+ + ( + String + ,
Type + ) +
throws + JsonbException
+
If any unexpected error(s) occur(s) during deserialization.true +
+
false
JSONB:JAVADOC:5Objectjavax.json.bind.Jsonb.fromJson
+ + ( + Reader + ,
Class + ) +
Reads in a JSON data from the specified Reader and return the resulting content tree.true +
+
true
JSONB:JAVADOC:6Objectjavax.json.bind.Jsonb.fromJson
+ + ( + Reader + ,
Class + ) +
throws + JsonbException
+
If any unexpected error(s) occur(s) during deserialization.true +
+
false
JSONB:JAVADOC:7Objectjavax.json.bind.Jsonb.fromJson
+ + ( + Reader + ,
Type + ) +
Reads in a JSON data from the specified Reader and return the resulting content tree.true +
+
true
JSONB:JAVADOC:8Objectjavax.json.bind.Jsonb.fromJson
+ + ( + Reader + ,
Type + ) +
throws + JsonbException
+
If any unexpected error(s) occur(s) during deserialization.true +
+
false
JSONB:JAVADOC:9Objectjavax.json.bind.Jsonb.fromJson
+ + ( + InputStream + ,
Class + ) +
Reads in a JSON data from the specified InputStream and return the resulting content tree.true +
+
true
JSONB:JAVADOC:10Objectjavax.json.bind.Jsonb.fromJson
+ + ( + InputStream + ,
Class + ) +
throws + JsonbException
+
If any unexpected error(s) occur(s) during deserialization.true +
+
false
JSONB:JAVADOC:11Objectjavax.json.bind.Jsonb.fromJson
+ + ( + InputStream + ,
Type + ) +
Reads in a JSON data from the specified InputStream and return the resulting content tree.true +
+
true
JSONB:JAVADOC:12Objectjavax.json.bind.Jsonb.fromJson
+ + ( + InputStream + ,
Type + ) +
throws + JsonbException
+
If any unexpected error(s) occur(s) during deserialization.true +
+
false
JSONB:JAVADOC:13Stringjavax.json.bind.Jsonb.toJson
+ + ( + Object + ) +
Writes the Java object tree with root object object to a String instance as JSON.true +
+
true
JSONB:JAVADOC:14Stringjavax.json.bind.Jsonb.toJson
+ + ( + Object + ) +
throws + JsonbException
+
If any unexpected problem occurs during the serialization, such as I/O error.true +
+
false
JSONB:JAVADOC:15Stringjavax.json.bind.Jsonb.toJson
+ + ( + Object + ,
Type + ) +
Writes the Java object tree with root object object to a String instance as JSON.true +
+
true
JSONB:JAVADOC:16Stringjavax.json.bind.Jsonb.toJson
+ + ( + Object + ,
Type + ) +
throws + JsonbException
+
If any unexpected problem occurs during the serialization, such as I/O error.true +
+
false
JSONB:JAVADOC:17voidjavax.json.bind.Jsonb.toJson
+ + ( + Object + ,
Writer + ) +
Writes the object content tree into a Writer character stream.true +
+
true
JSONB:JAVADOC:18voidjavax.json.bind.Jsonb.toJson
+ + ( + Object + ,
Writer + ) +
throws + JsonbException
+
If any unexpected problem occurs during the serialization.true +
+
false
JSONB:JAVADOC:19voidjavax.json.bind.Jsonb.toJson
+ + ( + Object + ,
Type + ,
Writer + ) +
Writes the object content tree into a Writer character stream.true +
+
true
JSONB:JAVADOC:20voidjavax.json.bind.Jsonb.toJson
+ + ( + Object + ,
Type + ,
Writer + ) +
throws + JsonbException
+
If any unexpected problem occurs during the serialization.true +
+
false
JSONB:JAVADOC:21voidjavax.json.bind.Jsonb.toJson
+ + ( + Object + ,
OutputStream + ) +
Writes the object content tree into output stream.true +
+
true
JSONB:JAVADOC:22voidjavax.json.bind.Jsonb.toJson
+ + ( + Object + ,
OutputStream + ) +
throws + JsonbException
+
If any unexpected problem occurs during the serialization.true +
+
false
JSONB:JAVADOC:23voidjavax.json.bind.Jsonb.toJson
+ + ( + Object + ,
Type + ,
OutputStream + ) +
Writes the object content tree into output stream.true +
+
true
JSONB:JAVADOC:24voidjavax.json.bind.Jsonb.toJson
+ + ( + Object + ,
Type + ,
OutputStream + ) +
throws + JsonbException
+
If any unexpected problem occurs during the serialization.true +
+
false
JSONB:JAVADOC:25Jsonbjavax.json.bind.JsonbBuilder.build
+
Returns a new instance of javax.json.bind.Jsonb Jsonb based on the parameters and configuration specified previously in this builder.true +
+
true
JSONB:JAVADOC:26Jsonbjavax.json.bind.JsonbBuilder.create
+
Create a new javax.json.bind.Jsonb instance using the default JsonbBuilder implementation provided as returned from javax.json.bind.spi.JsonbProvider#provider() method.true +
+
true
JSONB:JAVADOC:27Jsonbjavax.json.bind.JsonbBuilder.create
+ + ( + JsonbConfig + ) +
Create a new javax.json.bind.Jsonb instance using the default JsonbBuilder implementation provided as returned from javax.json.bind.spi.JsonbProvider#provider() method, configured with provided configuration.true +
+
true
JSONB:JAVADOC:28JsonbBuilderjavax.json.bind.JsonbBuilder.newBuilder
+
Create a new JsonbBuilder instance as returned by the default javax.json.bind.spi.JsonbProvider#provider() method.true +
+
true
JSONB:JAVADOC:29JsonbBuilderjavax.json.bind.JsonbBuilder.newBuilder
+ + ( + String + ) +
Create a new JsonbBuilder instance as returned by javax.json.bind.spi.JsonbProvider#provider(String) method.true +
+
true
JSONB:JAVADOC:30JsonbBuilderjavax.json.bind.JsonbBuilder.newBuilder
+ + ( + JsonbProvider + ) +
Create a new JsonbBuilder instance as returned by provider#create call.true +
+
true
JSONB:JAVADOC:31JsonbBuilderjavax.json.bind.JsonbBuilder.withConfig
+ + ( + JsonbConfig + ) +
Set configuration which will be set to the newly created javax.json.bind.Jsonb Jsonb instance.true +
+
true
JSONB:JAVADOC:32JsonbBuilderjavax.json.bind.JsonbBuilder.withProvider
+ + ( + JsonProvider + ) +
Provides a JSON-P provider to be used for all JSON-P related operations.true +
+
true
JSONB:JAVADOC:33Mapjavax.json.bind.JsonbConfig.getAsMap
+
Return all configuration properties as an unmodifiable map.true +
+
true
JSONB:JAVADOC:34Optionaljavax.json.bind.JsonbConfig.getProperty
+ + ( + String + ) +
Return value of particular configuration property. The method can only be used to retrieve one of the standard JSON Binding properties defined in this class or a provider specific property. Attempting to get an undefined property will result in an empty Optional value. See Supported Properties.true +
+
true
JSONB:JAVADOC:35JsonbConfigjavax.json.bind.JsonbConfig.JsonbConfig
+
+
+
true +
+
true
JSONB:JAVADOC:36JsonbConfigjavax.json.bind.JsonbConfig.setProperty
+ + ( + String + ,
Object + ) +
Set the particular configuration property to a new value. The method can only be used to set one of the standard JSON Binding properties defined in this class or a provider specific property.true +
+
true
JSONB:JAVADOC:37JsonbConfigjavax.json.bind.JsonbConfig.withAdapters
+ + ( + JsonbAdapter[] + ) +
Property used to specify custom mapping adapters. Configures value of ADAPTERS property. Calling withAdapters more than once will merge the adapters with previous value.true +
+
true
JSONB:JAVADOC:38JsonbConfigjavax.json.bind.JsonbConfig.withBinaryDataStrategy
+ + ( + String + ) +
Property used to specify custom binary data strategy. Configures value of BINARY_DATA_STRATEGY property.true +
+
true
JSONB:JAVADOC:39JsonbConfigjavax.json.bind.JsonbConfig.withDateFormat
+ + ( + String + ,
Locale + ) +
Property used to specify custom date format. This format will be used by default for all date classes serialization and deserialization.true +
+
true
JSONB:JAVADOC:40JsonbConfigjavax.json.bind.JsonbConfig.withDeserializers
+ + ( + JsonbDeserializer[] + ) +
Property used to specify custom deserializers. Configures value of DESERIALIZERS property. Calling withDeserializers more than once will merge the deserializers with previous value.true +
+
true
JSONB:JAVADOC:41JsonbConfigjavax.json.bind.JsonbConfig.withEncoding
+ + ( + String + ) +
The binding operations will default to this property for encoding of JSON data. For input data (fromJson), selected encoding is used if the encoding cannot be detected automatically. Default value is 'UTF-8'. Configures value of ENCODING property.true +
+
true
JSONB:JAVADOC:42JsonbConfigjavax.json.bind.JsonbConfig.withFormatting
+ + ( + Boolean + ) +
Property used to specify whether or not the serialized JSON data is formatted with linefeeds and indentation. Configures value of FORMATTING property.true +
+
true
JSONB:JAVADOC:43JsonbConfigjavax.json.bind.JsonbConfig.withLocale
+ + ( + Locale + ) +
Property used to specify custom locale.true +
+
true
JSONB:JAVADOC:44JsonbConfigjavax.json.bind.JsonbConfig.withNullValues
+ + ( + Boolean + ) +
Property used to specify whether null values should be serialized to JSON document or skipped. Configures value of NULL_VALUES property.true +
+
true
JSONB:JAVADOC:45JsonbConfigjavax.json.bind.JsonbConfig.withPropertyNamingStrategy
+ + ( + PropertyNamingStrategy + ) +
Property used to specify custom naming strategy. Configures value of JSONB_PROPERTY_NAMING_STRATEGY property.true +
+
true
JSONB:JAVADOC:46JsonbConfigjavax.json.bind.JsonbConfig.withPropertyNamingStrategy
+ + ( + String + ) +
Property used to specify custom naming strategy. Configures value of JSONB_PROPERTY_NAMING_STRATEGY property.true +
+
true
JSONB:JAVADOC:47JsonbConfigjavax.json.bind.JsonbConfig.withPropertyOrderStrategy
+ + ( + String + ) +
Property used to specify property order strategy. Configures values of JSONB_PROPERTY_ORDER_STRATEGY property.true +
+
true
JSONB:JAVADOC:48JsonbConfigjavax.json.bind.JsonbConfig.withPropertyVisibilityStrategy
+ + ( + PropertyVisibilityStrategy + ) +
Property used to specify custom property visibility strategy. Configures value of PROPERTY_VISIBILITY_STRATEGY property.true +
+
true
JSONB:JAVADOC:49JsonbConfigjavax.json.bind.JsonbConfig.withSerializers
+ + ( + JsonbSerializer[] + ) +
Property used to specify custom serializers. Configures value of SERIALIZERS property. Calling withSerializers more than once will merge the serializers with previous value.true +
+
true
JSONB:JAVADOC:50JsonbConfigjavax.json.bind.JsonbConfig.withStrictIJSON
+ + ( + Boolean + ) +
Property used to specify whether strict I-JSON serialization compliance should be enforced. Configures value of STRICT_IJSON property.true +
+
true
JSONB:JAVADOC:51JsonbExceptionjavax.json.bind.JsonbException.JsonbException
+ + ( + String + ) +
Constructs a new runtime exception with the specified detail message. The cause is not initialized, and may subsequently be initialized by a call to #initCause.true +
+
true
JSONB:JAVADOC:52JsonbExceptionjavax.json.bind.JsonbException.JsonbException
+ + ( + String + ,
Throwable + ) +
Constructs a new runtime exception with the specified detail message and cause. Note that the detail message associated with cause is not automatically incorporated in this runtime exception's detail message.true +
+
true
JSONB:JAVADOC:53Objectjavax.json.bind.adapter.JsonbAdapter.adaptFromJson
+ + ( + Object + ) +
This method is used on deserialization only. It contains a conversion logic from type Adapted to type Original.true +
+
true
JSONB:JAVADOC:54Objectjavax.json.bind.adapter.JsonbAdapter.adaptFromJson
+ + ( + Object + ) +
throws + Exception
+
if there is an error during the conversion.true +
+
false
JSONB:JAVADOC:55Objectjavax.json.bind.adapter.JsonbAdapter.adaptToJson
+ + ( + Object + ) +
This method is used on serialization only. It contains a conversion logic from type Original to type Adapted. After conversion Adapted type will be mapped to JSON the standard way.true +
+
true
JSONB:JAVADOC:56Objectjavax.json.bind.adapter.JsonbAdapter.adaptToJson
+ + ( + Object + ) +
throws + Exception
+
if there is an error during the conversion.true +
+
false
JSONB:JAVADOC:57Stringjavax.json.bind.annotation.JsonbDateFormat.locale
+
Custom java.util.Locale to use.true +
+
true
JSONB:JAVADOC:58Stringjavax.json.bind.annotation.JsonbDateFormat.value
+
Specifies the date pattern to use.true +
+
true
JSONB:JAVADOC:59booleanjavax.json.bind.annotation.JsonbNillable.value
+
True if field with null value should be serialized as key/value pair into JSON with null value.true +
+
true
JSONB:JAVADOC:60Stringjavax.json.bind.annotation.JsonbNumberFormat.locale
+
Custom java.util.Locale to use.true +
+
true
JSONB:JAVADOC:61Stringjavax.json.bind.annotation.JsonbNumberFormat.value
+
Specifies the number pattern to use.true +
+
true
JSONB:JAVADOC:62booleanjavax.json.bind.annotation.JsonbProperty.nillable
+
True if field with null value should be serialized as key/value pair into JSON with null value.true +
+
true
JSONB:JAVADOC:63Stringjavax.json.bind.annotation.JsonbProperty.value
+
Customized name of the field (or JavaBean property).true +
+
true
JSONB:JAVADOC:64String[]javax.json.bind.annotation.JsonbPropertyOrder.value
+
Order in which properties are serialized. Names must correspond to original names defined in Java class before any customization applied.true +
+
true
JSONB:JAVADOC:65Classjavax.json.bind.annotation.JsonbTypeAdapter.value
+
Custom JsonbAdapter which provides custom mapping for given field or JavaBean property.true +
+
true
JSONB:JAVADOC:66Classjavax.json.bind.annotation.JsonbTypeDeserializer.value
+
Custom JsonbDeserializer which provides custom mapping for given field or JavaBean property.true +
+
true
JSONB:JAVADOC:67Classjavax.json.bind.annotation.JsonbTypeSerializer.value
+
Custom JsonbSerializer which provides custom mapping for given field or JavaBean property.true +
+
true
JSONB:JAVADOC:68Classjavax.json.bind.annotation.JsonbVisibility.value
+
Custom property visibility strategy used to resolve visibility of the members.true +
+
true
JSONB:JAVADOC:69Stringjavax.json.bind.config.PropertyNamingStrategy.translateName
+ + ( + String + ) +
Translates the property name into its JSON field name representation.true +
+
true
JSONB:JAVADOC:70booleanjavax.json.bind.config.PropertyVisibilityStrategy.isVisible
+ + ( + Field + ) +
Responds whether the given field should be considered as the JsonbProperty.true +
+
true
JSONB:JAVADOC:71booleanjavax.json.bind.config.PropertyVisibilityStrategy.isVisible
+ + ( + Method + ) +
Responds whether the given method should be considered as the JsonbProperty.true +
+
true
JSONB:JAVADOC:72Objectjavax.json.bind.serializer.DeserializationContext.deserialize
+ + ( + Class + ,
JsonParser + ) +
Deserialize JSON stream into instance of provided class using javax.json.stream.JsonParser. JsonParser cursor have to be at KEY_NAME before START_OBJECT / START_ARRAY, or at START_OBJECT / START_ARRAY to call this method. After deserialization is complete JsonParser will be at END_OBJECT / END_ARRAY for deserialized JSON structure. If method is called for the same type, which is deserializer bound to, deserializer recursion is suppressed. Otherwise deserializers are reentrant during deserialization process started by this method. JsonParser instance of JSONB runtime is shared with custom deserializer.true +
+
true
JSONB:JAVADOC:73Objectjavax.json.bind.serializer.DeserializationContext.deserialize
+ + ( + Type + ,
JsonParser + ) +
Deserialize JSON stream into instance of provided class using javax.json.stream.JsonParser. JsonParser cursor have to be at KEY_NAME before START_OBJECT / START_ARRAY, or at START_OBJECT / START_ARRAY to call this method. After deserialization is complete JsonParser will be at END_OBJECT / END_ARRAY for deserialized JSON structure. If method is called for the same type, which is deserializer bound to, deserializer recursion is suppressed. Otherwise deserializers are reentrant during deserialization process started by this method. JsonParser instance of JSONB runtime is shared with custom deserializer.true +
+
true
JSONB:JAVADOC:74Objectjavax.json.bind.serializer.JsonbDeserializer.deserialize
+ + ( + JsonParser + ,
DeserializationContext + ,
Type + ) +
Deserialize JSON stream into object.true +
+
true
JSONB:JAVADOC:75voidjavax.json.bind.serializer.JsonbSerializer.serialize
+ + ( + Object + ,
JsonGenerator + ,
SerializationContext + ) +
Serializes object into JSON stream.true +
+
true
JSONB:JAVADOC:76voidjavax.json.bind.serializer.SerializationContext.serialize
+ + ( + String + ,
Object + ,
JsonGenerator + ) +
Serializes arbitrary object to JSON, using current javax.json.stream.JsonGenerator instance. Serialization is ran as serialization of a root type from user JsonbSerializer. JsonGenerator instance is shared with JSONB and user serializer.true +
+
true
JSONB:JAVADOC:77voidjavax.json.bind.serializer.SerializationContext.serialize
+ + ( + Object + ,
JsonGenerator + ) +
Serializes arbitrary object to JSON, using current javax.json.stream.JsonGenerator instance. Serialization is ran as serialization of a root type from user JsonbSerializer. JsonGenerator instance is shared with JSONB and user serializer. Method without key parameter is intended to serialize inside JSON_ARRAYs.true +
+
true
JSONB:JAVADOC:78JsonbBuilderjavax.json.bind.spi.JsonbProvider.create
+
Returns a new instance of javax.json.bind.JsonbBuilder JsonbBuilder class. javax.json.bind.JsonbBuilder JsonbBuilder provides necessary getter methods to access required parameters.true +
+
true
JSONB:JAVADOC:80JsonbProviderjavax.json.bind.spi.JsonbProvider.provider
+
Creates a JSON Binding provider object by using the java.util.ServiceLoader#load(Class) method. The first provider of JsonbProvider class from list of providers returned by ServiceLoader.load call is returned. If there are no available service providers, this method tries to load the default service provider using Class#forName(String) method.true +
+
true
JSONB:JAVADOC:81JsonbProviderjavax.json.bind.spi.JsonbProvider.provider
+ + ( + String + ) +
Creates a JSON Binding provider object by using the java.util.ServiceLoader#load(Class) method, matching providerName. The first provider of JsonbProvider class from list of providers returned by ServiceLoader.load call, matching providerName is returned. If no such provider is found, JsonbException is thrown.true +
+
true
+ + diff --git a/tck-docs/assertions/Jsonb10SpecAssertions.html b/tck-docs/assertions/Jsonb10SpecAssertions.html new file mode 100644 index 00000000..44df01ca --- /dev/null +++ b/tck-docs/assertions/Jsonb10SpecAssertions.html @@ -0,0 +1,910 @@ + + + + + +Specification Assertion Detail + + +
+
+

Jakarta JSON Binding - 1.0
+ Specification Assertion Detail +

+
+ + + + + + + + + + + +
TotalsTotalActiveDeprecatedRemoved
+ # of Assertions + 15215101
+ # of Required Assertions + 14514401
+ # of Optional Assertions + 7700
+
Assertions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDChapterSectionDescriptionRequiredDependencyImplementation SpecificDefined byStatusTestable
JSONB:SPEC:JSB-3.1-133.1JSON Binding implementations MUST support binding of JSON documents as defined in RFC 7159 JSON Grammar. Serialized JSON output MUST conform to the RFC 7159 JSON Grammar and be encoded in UTF-8 encoding as defined in Section 8.1 (Character Encoding) of RFC 7159 + true +
+
falsetechnologyactivefalse
JSONB:SPEC:JSB-3.1-233.1Implementations MUST support deserialization of documents conforming to RFC 7159 JSON Grammartrue +
+
falsetechnologyactivefalse
JSONB:SPEC:JSB-3.1-333.1In addition, implementations SHOULD NOT allow deserialization of RFC 7159 non-conforming text (e.g. unsupported encoding, ...) and report error in such casefalse +
+
falsetechnologyactivefalse
JSONB:SPEC:JSB-3.1-433.1Detection of UTF encoding of deserialized document is done as defined in the Section 3 (Encoding) of RFC 4627true +
+
falsetechnologyactivefalse
JSONB:SPEC:JSB-3.1-533.1Implementations SHOULD ignore presence of UTF byte order mark (BOM) and not treat it as an error.false +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.2-133.2Implementations SHOULD NOT allow unmarshalling of RFC 7159 non-conforming text (e.g. unsupported encoding) and report error in such case.false +
+
falsetechnologyactivefalse
JSONB:SPEC:JSB-3.2-233.2Implementation SHOULD also report error also during unmarshalling operation, if it is not possible to represent JSON document value in the expected Java typefalse +
+
falsetechnologyactivefalse
JSONB:SPEC:JSB-3.3-133.3Implementation MUST report binding of the following basic java classes and their corresponding primitive types +java.lang.String +java.lang.Character +java.lang.Byte +java.lang.Short +java.lang.Integer +java.lang.Long +java.lang.Float +java.lang.Double +java.lang.Booleantrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.3.1-133.3.1Instances of type java.lang.String and java.lang.Character are marshalled to JSON String values as defined within RFC 7159 Section 7 (Strings) in UTF-8 encoding without byte order mark. true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.3.1-233.3.2Implementations SHOULD support deserialization of JSON text in other (than UTF-8) UTF encodings into java.lang.String instancesfalse +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.3.2-133.3.2Serialization of type java.lang.Byte, Short, Integer, Long, Float, Double and their corresponding primitive types to JSON Number MUST follow the conversion process defined in javadoc specification for the corresponding toString methodtrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.3.2-233.3.2Deserialization of a JSON value into java.lang.Byte, Short, Integer, Long, Float, Double instance or corresponding primitive type MUST follow the conversion process as defined in the specification for their corresponding parse$Type method, such as java.lang.Byte.parseByte for Byte.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.3.3-133.3.3Serialization of type java.lang.Boolean and its corresponding boolean primitive type to JSON value MUST follow conversion process defined in specification for java.lang.Boolean.toString methodtrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.3.3-233.3.3Deserialization of a JSON value into java.lang.Boolean instance or boolean primitive type MUST follow the conversion process as defined in specification for java.lang.Boolean.parseBoolean method.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.3.4-133.3.4Serialization of type java.lang.Number (if their more concrete type is not defined elsewhere in this chapter) to JSON string MUST retrieve double value returned from java.lang.Number.doubleValue() method and converting the value to JSON Number as defined in subsection 3.3.2true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.3.4-233.3.4Deserialization of a JSON value into Java type java.lang.Number should return instance of java.math.BigDecimal by using conversion as defined in the specification for constructor of java.math.BigDecimal with java.lang.String.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4-133.4Implementations MUST support binding of the following standard Java SE classes: +java.math.BigInteger +java.math.BigDecimal +java.net.URL +java.net.URI +java.util.Optional +java.util.OptionalInt +java.util.OptionalLong +java.util.OptionalDouble true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.1-133.4.1Serialization of type java.math.BigInteger, BigDecimal to s JSON Number MUST follow the conversion process defined in specification for their toString methodtrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.1-233.4.2Deserialization of JSON value into java.math.BigInteger, BigDecimal instance MUST follow the conversion process as defined in the specification for constructor of java.math.BigInteger, BigDecimal with java.lang.String.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.2-133.4.2Serialization of type java.net.URL, URI to a JSON String value MUST follow the conversion process defined in specification for their toString methodtrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.2-233.4.2Deserialization of a JSON value into java.net.URL, URI instance MUST follow the conversion process as defined in the specification for constructor of java.net.URL, URI with java.lang.String input.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.3-133.4.3Non-empty instances of type java.util.Optional, OptionalInt, OptionalLong, OptionalDouble are serialized to a JSON value by retrieving their contained instance and converting it to JSON value based on its type and corresponding mapping definitions within this chapter.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.3-233.4.3Class fields containing empty optional instances are treated as having a null value and serialized based on 3.14.1.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.3-333.4.3Empty optional instances in array items are serialized as null.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.3-433.4.3Deserializing into Optional, OptionalInt, OptionalLong, OptionalDouble return empty optional value for properties containing a null value.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.3-533.4.3Otherwise any non-empty Optional, OptionalInt, OptionalLong, OptionalDouble value is constructed of type unmarshalled based on mappings defined in this chapter.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.3-633.4.3Instances of type java.util.Optional T are serialized to a JSON value as JSON objects when T alone would be serialized as JSON object. When T would be serialized as a JSON value (e.g. java.lang.String, java.lang.Integer), an instance of java.util.Optional T is serialized as a JSON value (without curly brackets).true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.4.3-733.4.3Deserialization of a JSON value into java.util.Optional(T) MUST be supported if deserialization of a JSON value into instance of T is supported.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5-133.5Implementations MUST support binding of the following standard Java date/time classes: java.util.Date +java.util.Calendar +java.util.GregorianCalendar +java.util.TimeZone +java.util.SimpleTimeZone +java.time.Instant +java.time.Duration +java.time.Period +java.time.LocalDate +java.time.LocalTime +java.time.LocalDateTime +java.time.ZonedDateTime +java.time.ZoneId +java.time.ZoneOffset +java.time.OffsetDateTime +java.time.OffsetTimetrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5-233.5If not specified otherwise in this section, GMT standard time zone and offset specified from UTC Greenwich is used.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5-333.5If not specified otherwise, date time format for marshalling and unmarshalling is ISO 8601 without offset, as specified in java.time.format.DateTimeFormatter.ISO_DATE.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5-433.5Implementations MUST report error if the date/time string in JSON document does not correspond to the expected datetime format. true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5-533.5If in strict I-JSON compliance mode, default date format is changed as it’s described in 4.4.1.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.1-133.5.1The serialization format of java.util.Date, Calendar, GregorianCalendar instances with no time information is ISO_DATE.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.1-233.5.1If time information is present, the format is ISO_DATE_TIMEtrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.1-333.5.1Implementations MUST support deserialization of both ISO_DATE and ISO_DATE_TIME into java.util.Date, Calendar and GregorianCalendar instances.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.2-133.5.2Implementations MUST support deserialization of any time zone format specified in java.util.TimeZone into a field or property of type java.util.TimeZone and SimpleTimeZone.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.2-233.5.2Implementations MUST report an error for deprecated three-letter time zone IDs as specified in java.util.Timezone.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.2-333.5.2The serialization format of java.util.TimeZone and SimpleTimeZone is NormalizedCustomID as specified in java.util.TimeZone.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-133.5.3The serialization output for a java.time.Instant instance MUST be in a ISO_INSTANT format, as specified in java.time.format.DateTimeFormatter.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-233.5.3Implementations MUST support the deserialization of an ISO_INSTANT formatted JSON string to a java.time.Instant instance.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-333.5.3Analogically, for other java.time.* classes, following mapping table matches Java types and corresponding formats: +java.time.Instant ISO_INSTANT +java.time.LocalDate ISO_LOCAL_DATE +java.time.LocalTime ISO_LOCAL_TIME +java.time.LocalDateTime ISO_LOCAL_DATE_TIME +java.time.ZonedDateTime ISO_ZONED_DATE_TIME +java.time.OffsetDateTime ISO_OFFSET_DATE_TIME +java.time.OffsetTime ISO_OFFSET_TIMEtrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-433.5.3Implementations MUST support the deserialization of any time zone ID format specified in java.time.ZoneId into a field or property of type java.time.ZoneId.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-533.5.3The serialization format of java.time.ZoneId is the normalized zone ID as specified in java.time.ZoneId.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-633.5.3Implementations MUST support the deserialization of any time zone ID format specified in java.time.ZoneOffset into a field or property of type java.time.ZoneOffset.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-733.5.3The serialization format of java.time.ZoneOffset is the normalized zone ID as specified in java.time.ZoneOffset.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-833.5.3Implementations MUST support the deserialization of any duration format specified in java.time.Duration into a field or property of type java.time.Duration.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-933.5.3This is super-set of ISO 8601 duration format. The serialization format of java.time.Duration is the ISO 8601 seconds based representation, such as PT8H6M12.345S.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-1033.5.3Implementations MUST support the deserialization of any period format specified in java.time.Period into a field or property of type java.time.Period.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-1133.5.3This is a super-set of ISO 8601 period format. The serialization format of java.time.Period is ISO 8601 period representation.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.5.3-1233.5.3A zero-length period is represented as zero days 'P0D'.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.6-133.6For an unspecified output type of a deserialization operation, as well as where output type is specified as Object.class, implementations MUST deserialize a JSON document using Java runtime types specified in table below: +object java.util.Map String,Object +array java.util.List Object +string java.lang.String +number java.math.BigDecimal +true, false java.lang.Boolean +null null +true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.6-233.6JSON object values are deserialized into an implementation of java.util.Map(String, Object) with a predictable iteration order.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7-133.7Any instance passed to a deserialization operation must have a public or protected no-argument constructor. Implementations SHOULD throw an error if this condition is not met.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7-233.7This limitation does not apply to serialization operations, as well as to classes which specify explicit instantiation methods as described in section 4.5.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.1-133.7.1For a deserialization operation of a Java property, if a matching public setter method exists, the method is called to set the value of the property. If a matching setter method with private, protected, or defaulted to package-only access exists, then this field is ignored. If no matching setter method exists and the field is public, then direct field assignment is used.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.1-233.7.1For a serialization operation, if a matching public getter method exists, the method is called to obtain the value of the property. If a matching getter method with private, protected, or defaulted to package-only access exists, then this field is ignored. If no matching getter method exists and the field is public, then the value is obtained directly from the field.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.1-333.7.1JSON Binding implementations MUST NOT deserialize into transient, final or static fields and MUST ignore name/value pairs corresponding to such fields.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.1-433.7.1Implementations MUST support serialization of final fields.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.1-533.7.1Transient and static fields MUST be ignored during serialization operation.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.1-633.7.1If a JSON document contains a name/value pair not corresponding to field or setter method, then this name/value pair MUST be ignored.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.1-733.7.1Public getter/setter methods without a corresponding field MUST be supported. When only public getter/setter method without corresponding field is present in the class, the getter method is called to obtain the value to serialize, and the setter method is called during deserialization operation.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.2-133.7.2Implementations MUST support the binding of public and protected nested classes.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.2-233.7.2For deserialization operations, both nested and encapsulating classes MUST fulfill the same instantiation requirements as specified in 3.7.1.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.3-133.7.3Implementations MUST support the binding of public and protected static nested classes.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.3-233.7.3For deserialization operations, the nested class MUST fulfill the same instantiation requirements as specified in 3.7.1.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.7.4-133.7.4Deserialization into anonymous classes is not supported. Serialization of anonymous classes is supported by default object mapping.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.8-133.8Deserialization into polymorphic types is not supported by default mapping.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.9-133.9Serialization of an Enum instance to a JSON String value MUST follow the conversion process defined in javadoc specification for their name().true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.9-233.9Deserialization of a JSON value into an enum instance MUST be done by calling the enum’s valueOf(String) method.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.10-133.10Implementations MUST support the deserialization of specific interfaces defined in 3.11 and 3.3.4.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.10-233.10Deserialization to other interfaces is not supported and implementations SHOULD report error in such case.false +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.10-333.10If a class property is defined with an interface and not concrete type, then the mapping for a serialized property is resolved based on its runtime type.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.11-133.11Implementations MUST support binding of the following collection interfaces, classes and their implementations. +java.util.Collection +java.util.Map +java.util.Set +java.util.HashSet +java.util.NavigableSet +java.util.SortedSet +java.util.TreeSet +java.util.LinkedHashSet +java.util.TreeHashSet +java.util.HashMap +java.util.NavigableMap +java.util.SortedMap +java.util.TreeMap +java.util.LinkedHashMap +java.util.TreeHashMap +java.util.List +java.util.ArrayList +java.util.LinkedList +java.util.Deque +java.util.ArrayDeque +java.util.Queue +java.util.PriorityQueue +java.util.EnumSet +java.util.EnumMap + +true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.11-233.11Implementations of interfaces below must provide accessible default constructor. JSON Binding implementations MUST report unmarshalling error if default constructor is not present or is not in accessible scope.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.12-133.12JSON Binding implementations MUST support binding of Java arrays of all supported Java types from this chapter into/from JSON array structures as defined in Section 5 of RFC 7159true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.12-233.12Arrays of primitive types and multi-dimensional arrays MUST be supported.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.13-133.13Declared fields MUST be serialized in lexicographical order into the resulting JSON document. In case of inheritance, declared fields of super class MUST be serialized before declared fields of child class.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.13-233.13When deserializing a JSON document, declared fields MUST be set in the order of attributes present in the JSON document.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.14.1-133.14.1The result of serializing a java field with a null value is the absence of the property in the resulting JSON document.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.14.1-233.14.1The deserialization operation of a property absent in JSON document MUST not set the value of the field, the setter (if available) MUST not be called, and thus original value of the field MUST be preserved.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.14.1-333.14.1The deserialization operation of a property with a null value in a JSON document MUST set the value of the field to null value (or call setter with null value if setter is present). The exception is java.util.Optional, OptionalInt, OptionalLong, OptionalDouble instances. In this case the value of the field is set to an empty optional value.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.14.2-133.14.2The result of deserialization n-ary array represented in JSON document is n-ary Java array.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.14.2-233.14.2Null value in JSON array is represented by null value in Java array.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.14.2-333.14.2Serialization operation on Java array with null value at index i MUST output null value at index i of the array in resulting JSON document.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.15-133.15According to RFC 7159 Section 7 , every Java identifier name can be transformed using identity function into a valid JSON String. Identity function MUST be used for transforming Java identifier names into name Strings in JSON document.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.15-233.15For deserialization operations defined in 3.6 section, identity function is used to transform JSON name strings into Java String instances in the resulting map Map(String, Object).true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.15-333.15Identity function is used also for other deseralization operations.true +
+
falsetechnologyremovedtrue
JSONB:SPEC:JSB-3.15-433.15If a Java identifier with corresponding name does not exist or is not accessible, the implementations MUST report error.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.16-133.16JSON Binding implementation MUST serialize numbers that express greater magnitude or precision than an IEEE 754 double precision number as strings.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17-133.17JSON Binding implementations MUST support binding of generic types.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17-233.17Due to type erasure, there are situations when it is not possible to obtain generic type information. There are two ways for JSON Binding implementations to obtain generic type information. If there is a class file available (in the following text referred as static type information), it is possible to obtain generic type information (effectively generic type declaration) from Signature attribute (if this information is present).true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17-333.17The second option is to provide generic type information at runtime. To provide generic type information at runtime, an argument of java.lang.reflect.Type MUST be passed to Jsonb::toJson or to Jsonb::fromJson method.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-133.17.1There are several levels of information JSON Binding implementations may obtain about the type of field/class/interface: + 1. runtime type provided via java.lang.reflect.Type parameter passed to Jsonb::toJson or Jsonb::fromJson method + 2. static type provided in class file (effectively stored in Signature attribute) + 3. raw type + 4. no information about the typetrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-233.17.1If there is no information about the type, JSON Binding implementation MUST treat this type as java.lang.Object.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-333.17.1If only raw type of given field/class/interface is known, then the type MUST be treated like raw type.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-433.17.1For example, if the only available information is that given field/class/interface is of type java.util.ArrayList, than the type MUST be treated as java.util.ArrayList Object. JSON Binding implementations MUST use the most specific type derived from the information available.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-533.17.1Let's consider situation where there is only static type information of a given field/class/interface known, +and there is no runtime type information available. Let GenericClass T1; : : : ; Tn be part of generic type +declaration, where GenericClass is name of the generic type and T1; : : : ; Tn are type parameters. For every +Ti, where i in 1; : : : ; n, there are 3 possible options:true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-633.17.11. Ti is concrete parameter type +2. Ti is bounded parameter type +3. Ti is wildcard parameter type without bounds +In case 1, the most specific parameter type MUST be given concrete parameter type Ti.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-733.17.1For bounded parameter type, using bounds B1; : : : ;Bm. If m = 1, then the most specific parameter type MUST be derived from the given bound B1.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-833.17.1If B1 is class or interface, the most specific parameter type MUST be the class or interface.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-933.17.1Otherwise, the most specific parameter type SHOULD be java.lang.Object.false +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-1033.17.1If multiple bounds are specified, the first step is to resolve every bound separately. Let’s define result of such resolution as S1; : : : ; Sm specific parameter types. If S1; : : : ; Sm are java.lang.Object, then the bounded parameter type Ti MUST be java.lang.Object.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-1133.17.1If there is exactly one Sk, where 1 <= k <= m is different than java.lang.Object, then the most specific parameter type for this bounded parameter type Ti MUST be Sk.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-1233.17.1If there exists Sk1; Sk2, where 1 <= k1 <= k2 <= m, then the most specific parameter type is Sk1.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-1333.17.1For wildcard parameter type without bounds, the most specific parameter type MUST be java.lang.Object.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-1433.17.1Any unresolved type parameter MUST be treated as java.lang.Object. true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.17.1-1533.17.1If runtime type is provided via java.lang.reflect.Type parameter passed to Jsonb::toJson or Jsonb::fromJson method, than that runtime type overrides static type declaration wherever applicabletrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.18-133.18When JSON Binding implementation encounters key in key/value pair that it does not recognize, it should treat the rest of the JSON document as if the element simply did not appear, and in particular, the implementation MUST NOT treat this as an error condition.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.19-133.19JSON Binding implementations MUST NOT produce JSON documents with members with duplicate names. In this context, "duplicate" means that the names, after processing any escaped characters, are identical sequences of Unicode characters.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.19-233.19When non-unique property (after override and rename) is found, implementation MUST throw an exception. This doesn't apply for customized user serialization behavior implemented with the usage of JsonbAdapter mechanism.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.20-133.20JSON Binding implementations MUST support binding of the following JSON Processing types. + +javax.json.JsonObject +javax.json.JsonArray +javax.json.JsonStructure +javax.json.JsonValue +javax.json.JsonPointer +javax.json.JsonString +javax.json.JsonNumber + true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.20-233.20Marshalling of supported javax.json.* objects/interfaces/fields MUST have the same result as marshalling these objects with javax.json.JsonWriter.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-3.20-333.20Deserialization into supported javax.json.* objects/interfaces/fields MUST have the same result as unmarshalling into such objects with javax.json.JsonReader.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.1.1-144.1.1JSON Binding implementations MUST NOT serialize fields, JavaBean properties or types annotated with javax.json.bind.annotation.JsonbTransient.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.1.1-244.1.1JsonbTransient annotation is mutually exclusive with all other JSON Binding defined annotations. Implementations must throw JsonbException in the following cases: Class field is annotated with @JsonbTransient. Exception must be thrown when this field, getter or setter is annotated with other JSON Binding annotations.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.1.1-344.1.1Getter is annotated with @JsonbTransient. Exception is thrown if when the field or this getter are annotated with other JSON Binding annotations. Exception is not thrown if JSON Binding annotations are presented on the setter.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.1.1-444.1.1Setter is annotated with @JsonbTransient. Exception is thrown if when the field or this setter are annotated with other JSON Binding annotations. Exception is not thrown if JSON Binding annotations are presented on the getter.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.1.2-144.1.2To provide custom name for given field (or JavaBean property), +javax.json.bind.annotation.JsonbProperty may be used. JsonbProperty annotation may be specified on +field, getter or setter method. If specified on field, custom name is used both for serialization and +deserialization.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.1.2-244.1.2If javax.json.bind.annotation.JsonbProperty is specified on getter method, it is used +only for serialization.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.1.2-344.1.2If javax.json.bind.annotation.JsonbProperty is specified on setter method, it is used only for deserialization.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.1.2-444.1.2It is possible to specify different values for getter and setter method for javax.json.bind.annotation.JsonbProperty annotation. In such case the different custom name will be used for serialization and deserialization.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.1.3-144.1.3The way to set custom property naming strategy is to use javax.json.bin.JsonbConfig::withPropertyNamingStrategy method.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.1.4-144.1.4If duplicate name is found exception MUST be thrown. The definition of duplicate (non-unique) property +can be found in 3.19.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.244.2The way to set custom property order strategy is to use javax.json.bin.JsonbConfig::withPropertyOrderStrategy method.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.2-244.2To customize the order of serialized properties only for one specific type, JSON Binding provides javax.json.bind.annotation.JsonbPropertyOrder annotation. Order specified by JsonbPropertyOrder annotation overrides order specified by PropertyOrderStrategy.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.3-144.3.1If annotations (JsonbNillable or JsonbProperty) on different level apply to the same field (or JavaBean property) or if there is config wide configuration and some annotation (JsonbNillable or JsonbProperty) which apply to the same field (or JavaBean property), the annotation with the smallest scope applies.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.3.1-144.3.1When given object (type or package) is annotated with javax.json.bind.annotation.JsonbNillable annotation, the result of null value will be presence of associated property in JSON document with explicit null value.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.3.1-244.3.1The same behavior as JsonbNillable, but only at field, parameter and method (JavaBean property) level is provided by javax.json.bind.annotation.JsonbProperty annotation with its nillable parametertrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.3.1-344.3.1JSON Binding implementations MUST implement override of annotations according to target of the annotation (FIELD, PARAMETER, METHOD, TYPE, PACKAGE). Type level annotation overrides behavior set at the package level. Method, parameter or field level annotation overrides behavior set at the type level.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.3.2-144.3.2The way to enforce serialization of null values, is to call method javax.json.bind.JsonbConfig::withNullValues with parameter true. The way to skip serialization of null values is to call method javax.json.bind.JsonbConfig::withNullValues with parameter false.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.4-144.4To enforce strict compliance of serialized JSON documents, JSON Binding implementations MUST implement configuration option jsonb.i-json.strict-ser-compliance.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.4.1-144.4.1Uppercase rather than lowercase letters MUST be used.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.4.1-244.4.1The timezone MUST always be included and optional trailing seconds MUST be included even when their value is 00.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.4.1-344.4.1JSON Binding implementations MUST serialize java.util.Date, java.util.Calendar, java.util.GregorianCalendar, java.time.LocalDate, java.time.LocalDateTime and java.time.Instant in the same format as java.time.ZonedDateTime.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.4.1-444.4.1The result of serialization of duration must conform to the duration production in Appendix A of RFC 3339, with the same additional restrictionstrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.5-144.5At most one JsonbCreator annotation can be used to annotate custom constructor or static void factory method in a class, otherwise JsonbException MUST be thrown.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.5-244.5Factory method annotated with JsonbCreator annotation should return instance of particular class this annotation is used for, otherwise JsonbException MUST be thrown.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.5-344.5Mapping between parameters of constructor/factory method annotated with JsonbCreator and JSON fields is defined using JsonbProperty annotation on all parameters.In case JsonbProperty annotation on parameters is not used, parameters should be mapped from JSON fields with the same name. In this case the proper mapping is NOT guaranteed.In case a field required for a parameter mapping doesn’t exist in JSON document, JsonbException MUST be thrown.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.6-144.5To customize scope and field access strategy as specified in section 3.7.1, it is possible to specify javax.json.bind.annotation.JsonbVisibility annotation or to override default behavior globally calling JsonbConfig::withPropertyVisibilityStrategy method with given custom property visibility strategy.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.7.1-144.7.1On serialization of Original type JSONB calls JsonbAdapter::adaptToJson method of the adapter to convert Original to Adapted and serializes Adapted the standard way. There are two ways how to register JsonbAdapter: Using JsonbConfig::withAdapters method;true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.7.1-244.7.1Annotating a class field with JsonbTypeAdapter annotation.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.7.1-344.7.1Implementations must provide a CDI support in adapters to allow injection of CDI managed beans into it.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.7.2-144.7.2Serializer is a class implementing javax.json.bind.serializers.JsonbSerializer interface. It is used to serialize the type it's registered on (Original). On marshalling of Original type JSONB calls JsonbSerializer::serialize method. This method has to contain a custom code to serialize Original type using provided JsonpGenerator.Deserializer is a class implementing javax.json.bind.serializers.JsonbDeserializer interface. It is used to deserialize the type it’s registered on (Original). On deserialization of Original type JSONB calls JsonbDeserializer::deserialize method. This method has to contain a custom code to deserialize Original type using provided JsonpParser. There are two ways how to register JsonbSerializer/JsonbDeserializer:Using JsonbConfig::withSerializers/ JsonbConfig::withDeserializers method;true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.7.2-244.7.2Annotating a type with JsonbSerializer/JsonbDeserializer annotation.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.7.2-344.7.2Implementations must provide a CDI support in serializers/deserializers to allow injection of CDI managed beans into it.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.8-144.8JsonbDateFormat annotation can be applied to the following targets: field, method, type, parameter, packagetrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.8-244.8Annotation applied to more specific target overrides the same annotation applied to target with wider scope and global configuration. For example, annotation applied to type target will override the same annotation applied to package target.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.8-344.8Default date format and default locale can be customized globally using javax.json.bind.JsonbConfig::withDateFormat and javax.json.bind.JsonbConfig::withLocale methods.true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.9-144.9JsonbNumberFormat annotation can be applied to the following targets: field, getter/setter, method, type, parameter, packagetrue +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.9-244.9Annotation applied to more specific target overrides the same annotation applied to target with wider scope. For example, annotation applied to type target will override the same annotation applied to package target. true +
+
falsetechnologyactivetrue
JSONB:SPEC:JSB-4.10-144.10The way to set custom binary data handling strategy is to use javax.json.bin.JsonbConfig::withBinaryDataStrategy method.true +
+
falsetechnologyactivetrue
+ + diff --git a/tck-docs/index.html b/tck-docs/index.html new file mode 100644 index 00000000..0c6ecce3 --- /dev/null +++ b/tck-docs/index.html @@ -0,0 +1,57 @@ + + + + + + +Welcome to the JSON-B TCK, Version 3.0 + + + +
+

Welcome to the JSON-B TCK, Version 3.0
+Your Starting Point

+
+
+

Guide to JSON-B TCK 3.0 Documentation

+ +

The JSON-B TCK 3.0 documentation includes the following:

+ + +
+

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

+ + diff --git a/tck-docs/userguide/README.md b/tck-docs/userguide/README.md new file mode 100644 index 00000000..a3ec2b69 --- /dev/null +++ b/tck-docs/userguide/README.md @@ -0,0 +1,77 @@ +# A JBake project template + +## About JBake + +JBake is a static site generator, it's inspired from jekyll and written +in java. The basic idea is to have templates for the structure of the +page, and the body generated from asciidoc content. + +## Pre requisites + +- Maven +- JDK8+ + +Deploying to Github will require password less authentication. + +This is done by exporting your SSH public key into your Github account. + +## Build the site locally + +The site is generated under target/staging. + +Open file:///PATH_TO_PROJECT_DIR/target/staging in a browser to view the site. + +``` +mvn generate-resources +``` + +Or you can invoke the JBake plugin directly. + +``` +mvn jbake:build +``` + +### Rebuild the site on changes + +``` +mvn jbake:watch +``` + +If you keep this command running, changes to the sources will be +detected and the site will be rendered incrementally. + +This is convenient when writing content. + +### Serve the site locally + +``` +mvn jbake:serve +``` + +If a webserver is required (e.g. absolute path are used), this command +will start a webserver (jetty) at http://localhost:8820. It will also +watch for changes and rebuild incrementally. + +## Deploy the site to Github Pages + +``` +mvn deploy +``` + +## Produce a zip file for download + +To produce a zip file containing the generated html files, use: + +``` +mvn package +``` + +When making a release on GitHub, this zip file should be added to the release. + +## Links + +- [JBake maven plugin documentation](https://github.com/Blazebit/jbake-maven-plugin) +- [JBake documentation](http://jbake.org/docs/2.5.1) +- [Freemarker documentation](http://freemarker.org/docs) +- [AsciiDoc User Guide](http://asciidoc.org/userguide.html) +- [Asciidoctor quick reference](http://asciidoctor.org/docs/asciidoc-syntax-quick-reference) diff --git a/tck-docs/userguide/pom.xml b/tck-docs/userguide/pom.xml new file mode 100644 index 00000000..c9e77355 --- /dev/null +++ b/tck-docs/userguide/pom.xml @@ -0,0 +1,258 @@ + + + + + 4.0.0 + + org.eclipse.ee4j + project + 1.0.5 + + org.glassfish + tck_jsonb + pom + 3.0.0 + Eclipse Foundation Technology Compatibility Kit User's Guide for Jakarta JSON Binding for Jakarta EE, Release 3.0 + + + UTF-8 + ${project.build.directory}/staging + true + 2.4.2 + 2.1.0 + 2.1.0 + 1.5.3 + 0.3.3 + 2.3.30 + + + Jakarta-JSON-Binding-TCK-Users-Guide.pdf + true + + + + + scm:git:git@github.com:eclipse-ee4j/jakartaee-tck.git + + + + + package + + + org.apache.maven.plugins + maven-clean-plugin + + + + src/main/jbake/content + + toc.adoc + + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + + + enforce-versions + + enforce + + + + + [11,) + You need JDK11 or newer + + + + + + + + org.glassfish.doc + glassfish-doc-maven-plugin + + + generate-toc + generate-resources + + toc + + + + [0-9]+\s.*,Preface.*,Part\s.* + + + + + generate-book + generate-resources + + book + + + + + + org.jbake + jbake-maven-plugin + + ${site.output.dir} + + ${status} + + + + + build-site + generate-resources + + generate + + + + + + org.asciidoctor + asciidoctor-maven-plugin + + ${project.build.directory}/book + book.adoc + + ${project.build.directory}/staging/ + pdf + ${doc.pdf} + + ${project.basedir}/src/theme + jakartaee + book + ${status} + + + font + + + font + true + + - + true + true + + + + + generate-pdf-doc + generate-resources + + process-asciidoc + + + + + + org.apache.maven.plugins + maven-scm-publish-plugin + + + deploy-site + deploy + + publish-scm + + + gh-pages + false + Update site + + + + + + + + + + org.apache.maven.plugins + maven-clean-plugin + 3.1.0 + + + org.glassfish.doc + glassfish-doc-maven-plugin + 1.3 + + + org.apache.maven.plugins + maven-enforcer-plugin + 3.0.0-M3 + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + org.apache.maven.plugins + maven-scm-publish-plugin + 3.1.0 + + + org.jbake + jbake-maven-plugin + ${jbake.maven.plugin.version} + + + org.asciidoctor + asciidoctorj + ${asciidoctorj.version} + + + org.asciidoctor + asciidoctorj-diagram + ${asciidoctorj.diagram.version} + + + org.freemarker + freemarker + ${freemarker.version} + + + + + org.asciidoctor + asciidoctor-maven-plugin + ${asciidoctorj.maven.plugin.version} + + + org.asciidoctor + asciidoctorj-pdf + ${asciidoctorj.pdf.version} + + + + + + + diff --git a/tck-docs/userguide/src/main/jbake/assets/README.md b/tck-docs/userguide/src/main/jbake/assets/README.md new file mode 100644 index 00000000..f8f962c0 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/assets/README.md @@ -0,0 +1,4 @@ +# About + +The {{site.title}} project contains the [AsciiDoc](http://asciidoc.org/) +source code for the ... diff --git a/tck-docs/userguide/src/main/jbake/assets/_config.yml b/tck-docs/userguide/src/main/jbake/assets/_config.yml new file mode 100644 index 00000000..016e614a --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/assets/_config.yml @@ -0,0 +1,14 @@ +remote_theme: jakartaee/jekyll-theme-jakarta-ee + +title: [tck_jsonb_v1_0] +description: [Oracle Technology Compatibility Kit User's Guide for Java API for JSON Binding 1.0 for Technology Licensees, Release 1.0] + +# sidebar links url +links: + source: https://github.com/javaee/tck_jsonb_v1_0 + download: https://github.com/javaee/tck_jsonb_v1_0/releases + #mailinglist: https://javaee.groups.io/g/tck_jsonb_v1_0 + #javadocs: + docs: https://javaee.github.io/tck_jsonb_v1_0 + #faq: + diff --git a/tck-docs/userguide/src/main/jbake/assets/css/style.css b/tck-docs/userguide/src/main/jbake/assets/css/style.css new file mode 100644 index 00000000..182f7559 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/assets/css/style.css @@ -0,0 +1,313 @@ +/* CSS */ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ +html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } + +/* HTML5 display definitions ========================================================================== */ +/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */ +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } + +/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ +audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } + +/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ +audio:not([controls]) { display: none; height: 0; } + +/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ +[hidden], template { display: none; } + +/* Links ========================================================================== */ +/** Remove the gray background color from active links in IE 10. */ +a { background-color: transparent; } + +/** Improve readability when focused and also mouse hovered in all browsers. */ +a:active, a:hover { outline: 0; } + +/* Text-level semantics ========================================================================== */ +/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ +abbr[title] { border-bottom: 1px dotted; } + +/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ +b, strong { font-weight: bold; } + +/** Address styling not present in Safari and Chrome. */ +dfn { font-style: italic; } + +/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */ +h1 { font-size: 2em; margin: 0.67em 0; } + +/** Address styling not present in IE 8/9. */ +mark { background: #ff0; color: #000; } + +/** Address inconsistent and variable font size in all browsers. */ +small { font-size: 80%; } + +/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ +sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } + +sup { top: -0.5em; } + +sub { bottom: -0.25em; } + +/* Embedded content ========================================================================== */ +/** Remove border when inside `a` element in IE 8/9/10. */ +img { border: 0; } + +/** Correct overflow not hidden in IE 9/10/11. */ +svg:not(:root) { overflow: hidden; } + +/* Grouping content ========================================================================== */ +/** Address margin not present in IE 8/9 and Safari. */ +figure { margin: 1em 40px; } + +/** Address differences between Firefox and other browsers. */ +hr { box-sizing: content-box; height: 0; } + +/** Contain overflow in all browsers. */ +pre { overflow: auto; } + +/** Address odd `em`-unit font size rendering in all browsers. */ +code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } + +/* Forms ========================================================================== */ +/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */ +/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */ +button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ } + +/** Address `overflow` set to `hidden` in IE 8/9/10/11. */ +button { overflow: visible; } + +/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */ +button, select { text-transform: none; } + +/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ +button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } + +/** Re-set default cursor for disabled elements. */ +button[disabled], html input[disabled] { cursor: default; } + +/** Remove inner padding and border in Firefox 4+. */ +button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } + +/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ +input { line-height: normal; } + +/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */ +input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } + +/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */ +input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } + +/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */ +input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; } + +/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */ +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } + +/** Define consistent border, margin, and padding. */ +fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } + +/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ +legend { border: 0; /* 1 */ padding: 0; /* 2 */ } + +/** Remove default vertical scrollbar in IE 8/9/10/11. */ +textarea { overflow: auto; } + +/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ +optgroup { font-weight: bold; } + +/* Tables ========================================================================== */ +/** Remove most spacing between table cells. */ +table { border-collapse: collapse; border-spacing: 0; } + +td, th { padding: 0; } + +/* LAYOUT STYLES */ + +p { margin-top: 0; } + +code, pre { margin-bottom: 30px; font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; font-size: 13px; color: #222; } + +code { padding: 0 3px; background-color: #f2f8fc; border: solid 1px #dbe7f3; } + +pre { padding: 20px; overflow: auto; text-shadow: none; background: #fff; border: solid 1px #f2f2f2; } + +pre code { padding: 0; color: #2879d0; background-color: #fff; border: none; } + +ul, ol, dl { margin-bottom: 20px; } + +/* COMMON STYLES */ + +td.halign-right { text-align: right; } + +td.halign-center { text-align: center; } + +form { padding: 20px; background: #f2f2f2; } + +h2 { + font-size: 2em; + line-height: 1.2em; + font-weight: 200; + letter-spacing: 0; +} + +h3 { + font-size: 1.4em; + line-height: 1.2em; + font-weight: normal; + letter-spacing: 0; +} + +.sect1 { + margin-left: 4%; + margin-right: 4%; + font: 13px/20px Arial, Helvetica, sans-serif +} + +a:link { + text-decoration: none; + color: #09569d; +} + +#preamble hr{ + margin-left: 0%; + margin-right: 0%; +} + +#preamble .sectionbody table { + font-weight: 200; + margin-left: 4%; + margin-right: 4%; +} + +hr { + margin-bottom: 12px; +} + +table.tableblock.frame-all.grid-all.spread { + font-size: 12px; +} + +code { + font-size:.9em; + border: 1px solid #eaeaea; + background-color: #f6f6f6; + border-radius: 3px; + padding: 1px; + padding-left:2px; + padding-right:2px; +} + +pre.prettyprint.highlight { + border: 1px solid #eaeaea; + background-color: #f6f6f6; + border-radius: 4px; + padding: 8px; + padding-top:4px; + padding-bottom:4px; +} + +.language-oac_no_warn { + font-size:.9em; + color:#222; + background-color: transparent; +} + +#doc-title { + margin-left: 4%; +} + +#top-nav { + margin-left: 4%; + font-size: 12px; +} + +#bottom-nav { + margin-left: 4%; + font-size: 12px; +} + +.vector-font { + color:grey; + font-size: 20px; +} + +#copyright { + padding-top: 10px; + padding-bottom: 4px; + display: table; + margin:0 auto; + color: grey; + font-size: 12px; + vertical-align: middle; +} + +.beta {color: #FF0000} + +/* GENERAL ELEMENT TYPE STYLES */ + +/* #Media Queries +================================================== */ +/* Smaller than standard 960 (devices and browsers) */ +/* Tablet Portrait size to standard 960 (devices and browsers) */ +@media only screen and (min-width: 768px) and (max-width: 959px) { .inner { width: 740px; } + header h1, header h2 { width: 340px; } + header h1 { font-size: 60px; } + header h2 { font-size: 30px; } +} +/* All Mobile Sizes (devices and browser) */ +@media only screen and (max-width: 767px) { .inner { width: 93%; } + header { padding: 20px 0; } + header .inner { position: relative; } + header h1, header h2 { width: 100%; } + header h1 { font-size: 48px; } + header h2 { font-size: 24px; } + header a.button { position: relative; display: inline-block; width: auto; height: auto; padding: 5px 10px; margin-top: 15px; font-size: 13px; line-height: 1; color: #2879d0; text-align: center; background-color: #9ddcff; background-image: none; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; } + header a.button small { display: inline; font-size: 13px; } +} +/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */ +/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */ + +header h1 { padding-top: 14px; font-size: 2em; font-weight: 200; line-height: 1.4; color: #FFFFFF; letter-spacing: 0px; border-bottom: 0px; } + +header h2 { font-size: 1.2em; margin-top: 0; margin-bottom: 0; font-weight: 200; line-height: .8; color: #ec7D11; letter-spacing: 0; } + +//header a.button { background: transparent url(../images/logo.png) 0 0 no-repeat; padding-left: 32px; } + +header a:hover { text-decoration: none; } + +/* Admonition (Note) block */ +.admonitionblock > table { + border: 0; + background: none; + width: 100%; + table-layout: auto; + margin-bottom: 10.5px; +} +.admonitionblock > table td.icon { + text-align: center; + width: 60px; +} +.admonitionblock > table td.icon img { + max-width: none; +} +.admonitionblock > table td.icon .title { + text-transform: uppercase; +} +.admonitionblock > table td.content { + padding-left: 1em; + padding-right: 1em; + border-left: 3px solid #ddd; +} +.admonitionblock > table td.content > :last-child > :last-child { + margin-bottom: 0; +} +.admonitionblock td.icon [class^="fa icon-"]:before { + font-size: 2.5em; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); + cursor: default; +} +.admonitionblock td.icon .icon-note:before { + content: "\f05a"; + color: #5bc0de; +} diff --git a/tck-docs/userguide/src/main/jbake/assets/img/eclipse_foundation_logo_tiny.png b/tck-docs/userguide/src/main/jbake/assets/img/eclipse_foundation_logo_tiny.png new file mode 100644 index 0000000000000000000000000000000000000000..ee830aeb9332b27a4b4b16ab4b7b452d3db1b23b GIT binary patch literal 3612 zcmV+%4&(8OP)}6qTo5r>1r>2e8xyQrMLX89RqIk)9c`5wb*#8BBG!#o z#8z#rjJDOfOjQ(G?Lt))663gn3xXRF5s=3s5A+du+pmA*M6P+s@0Z^L3Oeu1WL|z* zZtlHjx#xV(xvxM9g^rG92kP%`Ko4MF;4okyP!F^Ki-1|cOF$E_PP2n{x@fDSLaCdf zqxS`d13v{$0cwGEVeV(Z7s6~!UU7kGz`MXwpr{H=7i~GJNoq2HW(S0hek3p&_`cj; z2s{D!z&pUlnjM6R_jd!n4eTbGy{c=9w=#_uCKoh2D29%H888m$Be%x@j{u7_J7_Is z=H*%esL|}8rE7|}GK#f1boB9|qZj3PH+1y9Lr1StpNpR@)lTxfi?$L5%lRb=ll{=q zcj;o-H-l77Jp#C1e!c~qrP;yaG}GKgU(+=@boAc9gTRTvI^ZzP4&Lly@;6VThYOPd zF5Xm3woIeb_tWm>z1EpFH@2OPnS+fTS1yefFyvm~Y~XF+K+O(XRYuE4yH(hBtLyn~ zSp#rAKmOfIK$!kwVHN-p>A=i_JPceN507G2M8u2A@D6#@TBA1%`;2v(4VFBIjS zc6B^z|I)5org4abse1w4fmOhpz*Da02U+b{rcnb_S2*wMg;zx&j*!}Gh!C!m<-!D@ zEsmuV@%Fk3KX^NES=!(&)6gu_I2yPbFftf2S^6^@Xj3NQN?^P)sO}Z^YaTF2&aVY- zQtk~Ez-Om2!m<*09JoWkp`tRjxSv&)X&eLm0oXHZjx5ud3S8xS{s$?{o}yUVytISN zTX$eCa3pYXl}K4npaFPMvx8!WB-07WN@H?AU=r|D7L$ce1zrHIvrMChG68D4YdX=d z&$Id{LjHMhPdV^o>^1regC&gaR%)0S!Mn_?N7DjeGvVy*51 zo(1ZFXMjO9vOYtERezSFv7$Uz3eT=rCrn{-E$}EXBJuq5z(>;N?!eJ{ufo0eC;BhO`2vG*rr)Pt%M^2_{b!^SumcmQL0I+XJ@%`v5-! zR%NY)n~~Z98j;~8c(~PzfOFRoq!>VVvKM-e{sUXO#}V|+z8wc z{Jl(n?f~vCqhRg83h^OUD%Tg*upuF_w1TWtgX{Tuv|rWc{eT}Sw;lv8a6LavI4+^< z`Kv9{I0dM8J-=xSFgd11*Yg`w9LXmv)7S<0oj6N_g|V~c(cVfM?X_>|~ zL>a$bVi{2w-zID5rg|iatXzHCX{6dIraliwM@fs zJ%4TqW^XG;DcU{@?5Pp%PXmUD)-BI50c*>|);$s$->jfCg}B38xkgt3Gjc$YD}me6 z#^ZYarxG@ewoGG)Ab^8`1AxQD5w4bbe-7BO#C$XpRr6#~w-j8U1LAc*@K>N;4n{Wv zdkBn|7cg0&gk#kbyWjma(CBjXF>tNx`CcM&=pewZ=g$*VE`FxFAbb}KANpCQagyu# z|H$~(4T3hdm9apn!cZd>B{L+BJ|T4UIc3)B0uaWIR!--o%`%O51PG}Dj<8H)pzHYy zGBDoGc%_?z0>KtkbJ!v%;%wki*YoEH5>`~#ak zT8TzF<#nUkK||>1w}^z@q1nOuO%Yxt%-+MYR%wDYUuT)d`62{g;>3xGI?(m}*S8Rp z+XV}skpN8EfTkEnkUkexZI%dQ954Vl%Juw4RalkrR3+xJl(x2amdOA$aonug!NZ}W zj|6T8Mwf}Fhg+txx{PPO$o2eB6e)krGL5Hz(-g0@zhxR1x}HB@odC-;4iFS*U&}Pk zOu&mJz2XW&qFfND>-kG64F3v(a_uU=eakdXjI&e;Ix~S3zFOi_11-}yyo4|m#1DGQ z_57AJ(~ZLHvqMLp5jwh|*?}JeD91h8!JB?M$0SVzu1H)v3)r6xK>snohn8ssz#O@D zFtD@o&Sc9p4stzzPRciSuuP*Iv+s00|I$t>LZOo(*%;s<`MozV-!hGvz)V>Rb^=BU z#2eE**Ylq((e6cZl=Gi<2bQFHmT`G6a(<+&)q`@z)wx0w(W+M9J0d7*HK`8#K#rXg z4&6T!j$c)U{b)_GHd$>Il>1ekVYF!YyVfIRa1b-}pJB*I`-z5@DcX39-jsL8@Si?{Dmn? zOd$Pj$!UGoWP07|4~5z7p`*`IB)&}~vb_S6wnb3K18aGzxwQ-E&)+sFYCc>g)D z-1Yo5DQoOhqO@i)XFrlzv`g4fMUwP07K+1Is{%WfYP9sX8F<7pjsMCR`^eu~2{l)W zrD}*16)Efe1i-0atnK7WHH%npqT1{%upz5Ps$A_Hj^Ch()B6Rc`;CsLanjL&7*Xkuy3)D8` z-j0IEwMw5?0WWBF5QdIkNUM>H#}PXES-=OtD=GWSdIQI%c0b^d;yCnl{ii`<|0`hR81_3iCiz? zXFIT7vx8;{PxFrD1fqJg(=zKO=;gqNa?GdW z?u|B)vH?JKVr|(~)}Jisu1AWgYbznC^_m_0k*Jz<98oQGISe}PPY(evR;76M!^KoD z3myGZqMZ&+$WGJEu!T4VmiAPakhiSmUoJ+A&d%$*t0t0Yt@m z4Zw@ZXhD35UPL866T~Up1~@)+^u0F2?$YVvWj~Ox1e4_NBc-5b%?_RcMv34S%VOP? zfaYoLyFydM1AIJm^!LT<9wyGqxQur$73rK8I{JK~eC`6GeM?D36h+Hp4P6pC`WW$A zv$hjyfU9U@6Ywj|4rV7p!oi{)6E!=yLechqM0>1$E!cJ1H_E}o?aBVhx0i&DemU^x z(9zclj=u*{xz#Am4i;vljMeWwAj`|pjn(KP(awq44%SG*;#}Z$G4WRs?YUl+ z7Vv9!@D@=v=OJ)hF{*bhbVK0000` becomes `$JAVA_HOME` on +Solaris/Linux and `%JAVA_HOME%` on Windows. In addition, the forward +slashes (`/`) used in all of the examples need to be replaced with +backslashes (`\`) for Windows. Finally, be sure to use the appropriate +separator for your operating system when specifying multiple path +entries (`;` on Windows, `:` on UNIX/Linux). + +On Windows, you must escape any backslashes with an extra backslash in +path separators used in any of the following properties, or use forward +slashes as a path separator instead. + +======================================================================= + +1. Set the following environment variables in your shell environment: + a. `JAVA_HOME` to the directory in which Java SE {SEversion} is installed + b. `M2_HOME` to the directory in which the Apache Maven build tool is installed. + c. +{TechnologyHomeEnv}+ to the directory in which the {TechnologyShortName} + {TechnologyVersion} CI has been installed + d. `PATH` to include the following directories: `JAVA_HOME/bin`, + and `M2_HOME/bin` + +[[GCLHU]][[configuring-your-environment-to-repackage-and-run-the-tck-against-the-vendor-implementation]] + +4.2 Configuring Your Environment to Repackage and Run the TCK Against the Vendor Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +After configuring your environment as described in this section, +continue with the instructions in link:using.html#GBFWO[Chapter 5, "Executing Tests."] + + +[NOTE] +======================================================================= + +In these instructions, variables in angle brackets need to be expanded +for each platform. For example, `` becomes `$JAVA_HOME` on +Solaris/Linux and `%JAVA_HOME%` on Windows. In addition, the forward +slashes (`/`) used in all of the examples need to be replaced with +backslashes (`\`) for Windows. Finally, be sure to use the appropriate +separator for your operating system when specifying multiple path +entries (`;` on Windows, `:` on UNIX/Linux). + +On Windows, you must escape any backslashes with an extra backslash in +path separators used in any of the following properties, or use forward +slashes as a path separator instead. + +======================================================================= + + +1. Set the following environment variables in your shell environment: + a. `JAVA_HOME` to the directory in which Java SE 8 or Java SE 11 is installed + b. `M2_HOME` to the directory in which the Apache Maven build tool is installed. + c. +{TechnologyHomeEnv}+ to the directory in which the {TechnologyShortName} + {TechnologyVersion} CI has been installed + d. `PATH` to include the following directories: `JAVA_HOME/bin`, + and `M2_HOME/bin` + + +[[GHGDG]][[publishing-the-test-applications]] + +4.3 Publishing the Test Applications +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Not needed for the {TechnologyShortName} TCK. diff --git a/tck-docs/userguide/src/main/jbake/content/debug-tips.inc b/tck-docs/userguide/src/main/jbake/content/debug-tips.inc new file mode 100644 index 00000000..e69de29b diff --git a/tck-docs/userguide/src/main/jbake/content/debug.adoc b/tck-docs/userguide/src/main/jbake/content/debug.adoc new file mode 100644 index 00000000..cc6043f6 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/debug.adoc @@ -0,0 +1,66 @@ +type=page +status=published +title=Debugging Test Problems +next=faq.html +prev=using.html +~~~~~~ +include::attributes.conf[] +Debugging Test Problems +======================= + +[[GBFUV]] + + +[[debugging-test-problems]] +6 Debugging Test Problems +------------------------- + +There are a number of reasons that tests can fail to execute properly. +This chapter provides some approaches for dealing with these failures. +Please note that most of these suggestions are only relevant when +running the test harness in GUI mode. + +This chapter includes the following topics: + +* link:#GBFYP[Overview] +* link:#GBFYF[Configuration Failures] + +[[GBFYP]][[overview]] + +6.1 Overview +~~~~~~~~~~~~ + +The goal of a test run is for all tests in the test suite that are not +filtered out to have passing results. If the root test suite folder +contains tests with errors or failing results, you must troubleshoot and +correct the cause to satisfactorily complete the test run. + +* Errors: Tests with errors could not be executed by the Junit +framework. These errors usually occur because the test environment is not +properly configured. +* Failures: Tests that fail were executed but had failing results. + + +For every test run, the Junit framework creates a set of report files +in the target directory. + + +If a large number of tests failed, you should read +link:#GBFYF[Configuration Failures] to see if a +configuration issue is the cause of the failures. + + +If a large number of tests failed, you should read +link:#GBFYF[Configuration Failures] to see if a +configuration issue is the cause of the failures. + +[[GBFYF]][[configuration-failures]] + +6.2 Configuration Failures +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Configuration failures are easily recognized because many tests fail the +same way. When all your tests begin to fail, you may want to stop the +run immediately and start viewing individual test output. + +include::debug-tips.inc[] diff --git a/tck-docs/userguide/src/main/jbake/content/defns.inc b/tck-docs/userguide/src/main/jbake/content/defns.inc new file mode 100644 index 00000000..038db2dd --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/defns.inc @@ -0,0 +1,46 @@ +// NOTE TO WRITERS: +// Most technologies will only need the compatibility rules in rules.adoc. +// Some technologies will need additional definitions to go with additional +// rules. If they're needed, remove the comment characters below +// and update the definitions as appropriate. +// +// The first block below is additional definitions needed by +// Jakarta XML Web Services. +// +// The second block below is additional defintions needed by +// Jakarta Server Pages. +// +// NOTE: This set of examples is NOT complete, but should be. +// +// +// Jakarta XML Web Services +// +// |Development Kit |A software product that implements or incorporates a +// Compiler, a Schema Compiler, a Schema Generator, a Java-to-WSDL Tool, a +// WSDL-to-Java Tool, and/or an RMI Compiler. +// +// |Java-to-WSDL Output |Output of a Java-to-WSDL Tool that is required for +// Web service deployment and invocation. +// +// |Java-to-WSDL Tool |A software development tool that implements or +// incorporates a function that generates web service endpoint descriptions +// in WSDL and XML schema format from Source Code as specified by the +// Jakarta XML Web Services Specification. +// +// |WSDL-to-Java Output |Output of a WSDL-to-Java tool that is required for +// Web service deployment and invocation. +// +// |WSDL-to-Java Tool |A software development tool that implements or +// incorporates a function that generates web service interfaces for +// clients and endpoints from a WSDL description as specified by the +// Jakarta XML Web Services Specification. +// +// +// Jakarta Server Pages +// +// |Jakarta Server Page |A text-based document that uses Jakarta Server +// Pages technology. +// +// |Jakarta Server Page Implementation Class |A program constructed by +// transforming the Jakarta Server Page text into a Java language program +// using the transformation rules described in the Specifications. diff --git a/tck-docs/userguide/src/main/jbake/content/faq.adoc b/tck-docs/userguide/src/main/jbake/content/faq.adoc new file mode 100644 index 00000000..621f90c3 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/faq.adoc @@ -0,0 +1,53 @@ +type=page +status=published +title=Appendix A: Frequently Asked Questions +next=rebuild.html +prev=debug.html +~~~~~~ +include::attributes.conf[] +Appendix A: Frequently Asked Questions +====================================== + +[[GBFYD]] + + +[[a-frequently-asked-questions]] +A Frequently Asked Questions +---------------------------- + +This appendix contains the following questions. + +* link:#GBFYQ[Where do I start to debug a test failure?] +* link:#GBFYR[How do I restart a crashed test run?] +* link:#GBFWU[What would cause tests be added to the exclude list?] + +[[GBFYQ]][[a.1-where-do-i-start-to-debug-a-test-failure]] + +A.1 Where do I start to debug a test failure? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +See link:debug.html#GBFUV[Chapter 6, "Debugging Test Problems,"] for more +information. + +[[GBFYR]][[a.2-how-do-i-restart-a-crashed-test-run]] + +A.2 How do I restart a crashed test run? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you need to restart a test run, you can figure out which test crashed +the test suite by looking at the logs. + +[[GBFWU]][[a.3-what-would-cause-tests-be-added-to-the-exclude-list]] + +A.3 What would cause tests be added to the exclude list? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The exclude file (+{excludeListFileName}+) contains all tests that are not +required to be run. The following is a list of reasons for a test to be +included in the Exclude List: + +* An error in a Compatible Implementation that does not allow the test to +execute properly has been discovered. +* An error in the specification that was used as the basis of the test +has been discovered. +* An error in the test has been discovered. diff --git a/tck-docs/userguide/src/main/jbake/content/install-server-vi.inc b/tck-docs/userguide/src/main/jbake/content/install-server-vi.inc new file mode 100644 index 00000000..e69de29b diff --git a/tck-docs/userguide/src/main/jbake/content/install-server.inc b/tck-docs/userguide/src/main/jbake/content/install-server.inc new file mode 100644 index 00000000..e69de29b diff --git a/tck-docs/userguide/src/main/jbake/content/install.adoc b/tck-docs/userguide/src/main/jbake/content/install.adoc new file mode 100644 index 00000000..50d72e5c --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/install.adoc @@ -0,0 +1,91 @@ +type=page +status=published +title=Installation +next=config.html +prev=rules.html +~~~~~~ +include::attributes.conf[] +Installation +============ + +[[GBFTP]] + + +[[installation]] +3 Installation +-------------- + +This chapter explains how to install the {TechnologyFullName} TCK software. + +After installing the software according to the instructions in this +chapter, proceed to link:config.html#GBFVV[Chapter 4, "Setup and +Configuration,"] for instructions on configuring your test environment. + +[NOTE] +======================================================================= + +Although the {TechnologyShortName} {TechnologyVersion} TCK is not +depended on any particular build tool, it is convenient to install +Apache Maven {MavenVersion} for setup and execution of tests. +Any other build tools like Gradle and JUnit 4 Console Runner can also +be used that is Jupiter API compatible. + +======================================================================= + +[[GBFUD]][[obtaining-the-reference-implementation]] + +3.1 Obtaining a Compatible Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Each compatible implementation (CI) will provide instructions for obtaining +their implementation. +{TechnologyRI} is a compatible implementation which may be obtained +from {TechnologyRIURL} + +[[GBFTS]][[installing-the-software]] + +3.2 Installing the Software +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Before you can run the {TechnologyShortName} TCK tests, you must +install and set up the following software components: + +include::req-software.inc[] +* Java SE {SEversion} +* A CI for {TechnologyShortName} {TechnologyVersion}, one example is {TechnologyRI} +* The {TechnologyShortName} {TechnologyVersion} Vendor Implementation (VI) +* Any Jupiter API compatible test runner (eg. Apache Maven {MavenVersion}) + +Follow these steps: + +. Install the Java SE {SEversion} software, if it is not already installed. + +Download and install the Java SE {SEversion} software from +http://www.oracle.com/technetwork/java/javase/downloads/index.html. +Refer to the installation instructions that accompany the software for +additional information. + +. Install the build tool that will be used to run the TCK, if it is not already installed. + +It will be convenient to use Apache Maven {MavenVersion} for running the tests. The test kit +is not depended on Maven, any build tool compatible with Jupiter API is suffitient. + +. Install the {TechnologyShortName} TCK {TechnologyVersion} software. + a. Copy or download the {TechnologyShortName} TCK software to your + local system. + + You can obtain the {TechnologyShortName} TCK software from the + Jakarta EE site {SpecificationURL}. + b. Use the `unzip` command to extract the bundle in the directory of + your choice: + + +unzip {TCKPackageName}+ + + +include::install-server.inc[] +. Install a {TechnologyShortName} {TechnologyVersion} Compatible +Implementation. + +A Compatible Implementation is used to validate your initial +configuration and setup of the {TechnologyShortName} TCK +{TechnologyVersion} tests, which are explained further in +link:config.html#GBFVV[Chapter 4, "Setup and Configuration."] + +The Compatible Implementations for {TechnologyShortName} are listed on +the Jakarta EE Specifications web site: {SpecificationURL}. +include::install-server-vi.inc[] +. Install the {TechnologyShortName} VI to be tested. + +Follow the installation instructions for the particular VI under test. diff --git a/tck-docs/userguide/src/main/jbake/content/intro.adoc b/tck-docs/userguide/src/main/jbake/content/intro.adoc new file mode 100644 index 00000000..ceb1462b --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/intro.adoc @@ -0,0 +1,309 @@ +type=page +status=published +title=Introduction +next=rules.html +prev=preface.html +~~~~~~ +include::attributes.conf[] +Introduction +============ + +[[GBFOW]] + + +[[introduction]] +1 Introduction +-------------- + +This chapter provides an overview of the principles that apply +generally to all Technology Compatibility Kits (TCKs) and describes the +{TechnologyFullName} TCK ({TechnologyShortName} {TechnologyVersion} TCK). +It also includes a high level listing +of what is needed to get up and running with the {TechnologyShortName} +TCK. + +This chapter includes the following topics: + +* link:#GBFTK[Compatibility Testing] +* link:#GBFQR[About the TCK] +* link:#GBFQW[Getting Started With the TCK] + +[[GBFTK]][[compatibility-testing]] + +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 compatible implementation (CI) for that feature. +Compatibility testing is not primarily concerned with robustness, +performance, nor ease of use. + +[[GBFQN]][[why-compatibility-testing-is-important]] + +1.1.1 Why Compatibility Testing is Important +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Jakarta platform compatibility is important to different groups involved +with Jakarta technologies for different reasons: + +* Compatibility testing ensures that the Jakarta platform does not become +fragmented as it is ported to different operating systems and hardware +environments. +* Compatibility testing benefits developers working in the Jakarta +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 Jakarta platform implementors by ensuring a +level playing field for all Jakarta platform ports. + +[[GBFPR]][[tck-compatibility-rules]] + +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 +link:rules.html#GBFSN[Chapter 2, "Procedure for Certification."] + +[[GBFPW]][[tck-overview]] + +1.1.3 TCK Overview +^^^^^^^^^^^^^^^^^^ + +A TCK is a set of tools and tests used to verify that a vendor's compatible +implementation of a Jakarta EE technology conforms to the applicable +specification. All tests in the TCK are based on the written +specifications for the Jakarta EE platform. A TCK tests compatibility of a +vendor's compatible implementation of the technology to the applicable +specification of the technology. Compatibility testing is a means of +ensuring correctness, completeness, and consistency across all +implementations developed by 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 version +of this TCK. + +[[GBFPB]][[java-community-process-jcp-program-and-compatibility-testing]] + +1.1.4 Jakarta EE Specification Process (JESP) Program and Compatibility Testing +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The Jakarta EE Specification Process (JESP) program is the formalization of the +open process that has been used since 2019 to develop and revise Jakarta EE +technology specifications in cooperation with the international Jakarta EE +community. The JESP program specifies that the following three major +components must be included as deliverables in a final Jakarta EE technology +release under the direction of the responsible Expert Group: + +* Technology Specification +* Compatible Implementation (CI) +* Technology Compatibility Kit (TCK) + +For further information about the JESP program, go to Jakarta EE Specification +Process community page https://jakarta.ee/specifications. + +[[GBFQR]][[about-the-tck]] + +1.2 About the TCK +~~~~~~~~~~~~~~~~~ + +The {TechnologyShortName} TCK {TechnologyVersion} is designed as a +portable, configurable, automated test suite for verifying the +compatibility of a vendor's implementation of the +{TechnologyShortName} {TechnologyVersion} Specification. + +[[GBFQV]][[tck-specifications-and-requirements]] + +1.2.1 TCK Specifications and Requirements +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +This section lists the applicable requirements and specifications. + +* Specification Requirements: Software requirements for a +{TechnologyShortName} implementation are described in detail in the +{TechnologyShortName} {TechnologyVersion} Specification. Links to the +{TechnologyShortName} specification and other product information can +be found at {SpecificationURL}. +* {TechnologyShortName} Version: The {TechnologyShortName} {TechnologyVersion} TCK +is based on the {TechnologyShortName} +Specification, Version {TechnologyVersion}. +* Compatible Implementation: One {TechnologyShortName} +{TechnologyVersion} Compatible Implementation, {TechnologyRI} is +available from the Eclipse EE4J project +(https://projects.eclipse.org/projects/ee4j). See the CI documentation page at +{TechnologyRIURL} for more information. + +See the {TechnologyShortName} TCK Release Notes for more specific +information about Java SE version requirements, supported platforms, +restrictions, and so on. + +[[GBFSQ]][[tck-components]] + +1.2.2 TCK Components +^^^^^^^^^^^^^^^^^^^^ + +The {TechnologyShortName} TCK {TechnologyVersion} includes the +following components: + +* {TechnologyShortName} TCK signature tests; check that all public APIs +are supported and/or defined as specified in the {TechnologyShortName} +Version {TechnologyVersion} implementation under test. +* If applicable, an exclude list, which provides a list of tests that your +implementation is not required to pass. +ifndef::no-api-tests[] +* API tests for all of the {TechnologyShortName} API in all related packages: +include::packages.inc[] +endif::no-api-tests[] +ifdef::end-to-end-tests[] +* End-to-end tests that demonstrate compliance with the {TechnologyFullName} +Specification. +endif::end-to-end-tests[] + +The {TechnologyShortName} TCK tests run on the following platforms: + +include::platforms.inc[] + + +[[GBFRA]][[tck-compatibility-test-suite]] + +1.2.3 TCK Compatibility Test Suite +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The test suite is the collection of tests +to test a particular technology implementation. In this case, it is the +collection of tests used by the {TechnologyShortName} TCK +{TechnologyVersion} to test a {TechnologyShortName} {TechnologyVersion} +implementation. The tests are designed to verify that a vendor'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. + +[[GBFSH]][[exclude-lists]] + +1.2.4 Exclude Lists +^^^^^^^^^^^^^^^^^^^ + +Each version of a TCK includes an Exclude List contained in a `TCK-Exclude-List.txt` +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 Junit framework automatically excludes +these tests from being executed as those are disabled using '@Ignore' tag in JUnit. + +A vendor's compatible implementation is not required to pass or run any test on the Exclude List. +The Exclude List file, +{excludeListFileName}+, is documented in the +{TechnologyShortName} TCK. Please note this file is not parsed to exclude any test and is only +for documentation purpose. + + +[NOTE] +======================================================================= + +From time to time, updates to the Exclude List are made available. +The exclude list is included in the TCK ZIP archive. +Each time an update is approved and released, the version number +will be incremented. +You should always make sure you are using an up-to-date copy of the +Exclude List before running the {TechnologyShortName} 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 used to run the test. + +In addition, all tests are run against the compatible implementations. +Any tests that fail when run on a compatible Jakarta 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] +======================================================================= + +Vendors are not permitted to alter or modify Exclude Lists. Changes to +an Exclude List can only be made by using the procedure described in +link:rules.html#CJAJEAEI[Section 2.3.1, "TCK Test Appeals Steps."] + +======================================================================= + + +[[GBFRR]][[tck-configuration]] + +1.2.5 TCK Configuration +^^^^^^^^^^^^^^^^^^^^^^^ + +You need to set several variables in your test environment, +and run the {TechnologyShortName} tests, as described in +link:config.html#GBFVV[Chapter 4, "Setup and Configuration."] + +include::intro.inc[] + +[[GBFQW]][[getting-started-with-the-tck]] + +[NOTE] +==== +The Jakarta EE Specification Process support multiple compatible implementations. +These instructions explain how to get started with the {TechnologyRI} CI. +If you are using another compatible implementation, refer to material provided +by that implementation for specific instructions and procedures. + +==== + +1.3 Getting Started With the TCK +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This section provides an general overview of what needs to be done to +install, set up, test, and use the {TechnologyShortName} TCK. These +steps are explained in more detail in subsequent chapters of this +guide. + +1. Make sure that the following software has been correctly installed +on the system hosting the JavaTest harness: +include::req-software.inc[] +* Java SE {SEversion} +* A CI for {TechnologyShortName} {TechnologyVersion}. One example is {TechnologyRI}. +* {TechnologyShortName} TCK version {TechnologyVersion}, which includes: +include::tck-packages.inc[] +* The {TechnologyShortName} {TechnologyVersion} Vendor Implementation (VI) + +See the documentation for each of these software applications for +installation instructions. See link:install.html#GBFTP[Chapter 3, +"Installation,"] for instructions on installing the {TechnologyShortName} TCK. +2. Set up the {TechnologyShortName} TCK software. + +See link:config.html#GBFVV[Chapter 4, "Setup and Configuration,"] for +details about the following steps. + a. Set up your shell environment. +3. Test the {TechnologyShortName} {TechnologyVersion} implementation. + +Test the {TechnologyShortName} implementation installation by running +the test suite. See link:using.html#GBFWO[Chapter 5, "Executing Tests."] diff --git a/tck-docs/userguide/src/main/jbake/content/intro.inc b/tck-docs/userguide/src/main/jbake/content/intro.inc new file mode 100644 index 00000000..e69de29b diff --git a/tck-docs/userguide/src/main/jbake/content/packages.inc b/tck-docs/userguide/src/main/jbake/content/packages.inc new file mode 100644 index 00000000..0e15a828 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/packages.inc @@ -0,0 +1,11 @@ +** `jakarta.json.bind` + +** `jakarta.json.bind.adapter` + +** `jakarta.json.bind.annotation` + +** `jakarta.json.bind.config` + +** `jakarta.json.bind.serializer` + +** `jakarta.json.bind.spi` diff --git a/tck-docs/userguide/src/main/jbake/content/platforms.inc b/tck-docs/userguide/src/main/jbake/content/platforms.inc new file mode 100644 index 00000000..236beed7 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/platforms.inc @@ -0,0 +1 @@ +* CentOS Linux 7 \ No newline at end of file diff --git a/tck-docs/userguide/src/main/jbake/content/preface.adoc b/tck-docs/userguide/src/main/jbake/content/preface.adoc new file mode 100644 index 00000000..7a5b1ecb --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/preface.adoc @@ -0,0 +1,141 @@ +type=page +status=published +title=Preface +next=intro.html +prev=title.html +~~~~~~ +include::attributes.conf[] +Preface +======= + +[[TCJRS00001]][[GBFTI]] + + +[[preface]] +Preface +------- + +This guide describes how to install, configure, and run the Technology +Compatibility Kit (TCK) that is used to test the {TechnologyFullName} +({TechnologyShortName} {TechnologyVersion}) technology. + +The {TechnologyShortName} TCK is a portable, configurable automated +test suite for verifying the compatibility of a vendor's +implementation of the {TechnologyShortName} {TechnologyVersion} +Specification (hereafter referred to as the vendor implementation or VI). +The {TechnologyShortName} TCK uses the Junit framework to run the test suite + + +[NOTE] +======================================================================= + +Note All references to specific Web URLs are given for the sake of your +convenience in locating the resources quickly. These references are +always subject to changes that are in many cases beyond the control of +the authors of this guide. + +======================================================================= + +Jakarta EE is a community sponsored and community run program. +Organizations contribute, along side individual contributors who use, evolve +and assist others. +Commercial support is not available through the Eclipse Foundation resources. +Please refer to the Eclipse EE4J project site +(https://projects.eclipse.org/projects/ee4j). +There, you will find additional details as well as a list of all the associated sub-projects +(Implementations and APIs), that make up Jakarta EE and define these specifications. +If you have questions about this Specification you may +send inquiries to {SpecificationInquiryList}. +If you have questions about this TCK, you may send inquiries to +{TCKInquiryList}. + +[[TCJRS00034]][[GBFUS]] + + +[[who-should-use-this-book]] +Who Should Use This Book +~~~~~~~~~~~~~~~~~~~~~~~~ + +This guide is for vendors that implement the {TechnologyShortName} +{TechnologyVersion} technology to assist them in running the test suite +that verifies compatibility of their implementation of the +{TechnologyShortName} {TechnologyVersion} Specification. + + +[[TCJRS00035]][[GBFPO]] + + +[[before-you-read-this-book]] +Before You Read This Book +~~~~~~~~~~~~~~~~~~~~~~~~~ + +You should be familiar with the {TechnologyShortName} +{TechnologyVersion}, version {TechnologyVersion} Specification, +which can be found at {SpecificationURL}. + +[[TCJRS00036]][[GBFWF]] + + +[[typographic-conventions]] +Typographic Conventions +~~~~~~~~~~~~~~~~~~~~~~~ + +The following table describes the typographic conventions that are used +in this book. + +[width="100%",cols="15%,40%,45%",options="header",] +|======================================================================= +|Convention |Meaning |Example +|*Boldface* |Boldface type indicates graphical user interface elements +associated with an action, terms defined in text, or what you type, +contrasted with onscreen computer output. a| +From the *File* menu, select *Open Project*. + +A *cache* is a copy that is stored locally. + +`machine_name% *su*` + +`Password:` + +|`Monospace` |Monospace type indicates the names of files and +directories, commands within a paragraph, URLs, code in examples, text +that appears on the screen, or text that you enter. a| +Edit your `.login` file. + +Use `ls` `-a` to list all files. + +`machine_name% you have mail.` + +|_Italic_ |Italic type indicates book titles, emphasis, or placeholder +variables for which you supply particular values. a| +Read Chapter 6 in the _User's Guide_. + +Do _not_ save the file. + +The command to remove a file is `rm` _filename_. + +|======================================================================= + + +[[TCJRS00037]][[FWBSD]] + + +[[shell-prompts-in-command-examples]] +Shell Prompts in Command Examples +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following table shows the default UNIX system prompt and superuser +prompt for the C shell, Bourne shell, and Korn shell. + +[width="100%",cols="50%,50%",options="header",] +|===================================================== +|Shell |Prompt +|C shell |`machine_name%` +|C shell for superuser |`machine_name#` +|Bourne shell and Korn shell |`$` + +|Bourne shell and Korn shell for superuser |`#` + +|Bash shell |`shell_name-shell_version$` +|Bash shell for superuser |`shell_name-shell_version#` +|===================================================== + + + diff --git a/tck-docs/userguide/src/main/jbake/content/rebuild.adoc b/tck-docs/userguide/src/main/jbake/content/rebuild.adoc new file mode 100644 index 00000000..e4021cfa --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/rebuild.adoc @@ -0,0 +1,20 @@ +type=page +status=published +title=Appendix B: Rebuild Rules +prev=faq.html +~~~~~~ +include::attributes.conf[] + +Appendix B: Rebuild Rules +========================= + + +ifdef::rebuild[] +include::rebuild.inc[] +endif::rebuild[] +ifndef::rebuild[] + +<<< +Appendix B is not used for the {TechnologyShortName} TCK. + +endif::rebuild[] diff --git a/tck-docs/userguide/src/main/jbake/content/rebuild.inc b/tck-docs/userguide/src/main/jbake/content/rebuild.inc new file mode 100644 index 00000000..f7b9651b --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/rebuild.inc @@ -0,0 +1,8 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +The following sections should be customized for the technology. +See the JAXRS User Guide for an example of this file. +/////////////////////////////////////////////////////////////////////// + +[[GCLIZ]] + diff --git a/tck-docs/userguide/src/main/jbake/content/req-software.inc b/tck-docs/userguide/src/main/jbake/content/req-software.inc new file mode 100644 index 00000000..48014f56 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/req-software.inc @@ -0,0 +1,10 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +This is a list of software required in addition to the TCK and the RI. +For many Java EE APIs, the Java EE RI will be required, as described below. +For standalone technologies, no other software may be required, and the +below line can be removed. + +This is used in intro.adoc in section 1.3 and install.adoc in section 3.2. +/////////////////////////////////////////////////////////////////////// + diff --git a/tck-docs/userguide/src/main/jbake/content/rules.adoc b/tck-docs/userguide/src/main/jbake/content/rules.adoc new file mode 100644 index 00000000..e0273948 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/rules.adoc @@ -0,0 +1,401 @@ +type=page +status=published +title=Procedure for Certification +next=install.html +prev=intro.html +~~~~~~ +include::attributes.conf[] +Procedure for Certification +=========================== + +[[GBFSN]] + + +[[procedure-for-certification]] +2 Procedure for Certification +----------------------------- + +This chapter describes the compatibility testing procedure and +compatibility requirements for {TechnologyFullName}. +This chapter contains the following sections: + +* link:#CJAFFDGI[Certification Overview] +* link:#CJAFGIGG[Compatibility Requirements] +* link:#CJAIIBDJ[Test Appeals Process] +* link:#CJAJECIE[Specifications for {TechnologyFullName}] +* link:#CJABAHGI[Libraries for {TechnologyFullName}] + +[[CJAFFDGI]][[certification-overview]] + +2.1 Certification Overview +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The certification process for {technologyShortName} {TechnologyVersion} +consists of the following activities: + +* Install the appropriate version of the Technology Compatibility Kit +(TCK) and execute it in accordance with the instructions in this User's +Guide. +* Ensure that you meet the requirements outlined in +link:#CJAFGIGG[Compatibility Requirements] below. +* Certify to the Eclipse Foundation that you have finished +testing and that you meet all of the compatibility requirements, +as required by the Eclipse Foundation TCK License. + +[[CJAFGIGG]][[compatibility-requirements]] + +2.2 Compatibility Requirements +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The compatibility requirements for {TechnologyShortName} +{TechnologyVersion} consist of meeting the requirements set forth by +the rules and associated definitions contained in this section. + +[[sthref4]][[definitions]] + +2.2.1 Definitions +^^^^^^^^^^^^^^^^^ + +These definitions are for use only with these compatibility requirements +and are not intended for any other purpose. + +[[sthref5]][[sthref6]] + +Table 2-1 Definitions  + +[width="100%",cols="25%,75%",options="header",] +|======================================================================= +|Term |Definition +|API Definition Product |A Product for which the only Java class files +contained in the product are those corresponding to the application +programming interfaces defined by the Specifications, and which is +intended only as a means for formally specifying the application +programming interfaces defined by the Specifications. + +|Computational Resource a| +A piece of hardware or software that may vary in quantity, existence, or +version, which may be required to exist in a minimum quantity and/or at +a specific or minimum revision level so as to satisfy the requirements +of the Test Suite. + +Examples of computational resources that may vary in quantity are RAM +and file descriptors. + +Examples of computational resources that may vary in existence (that is, +may or may not exist) are graphics cards and device drivers. + +Examples of computational resources that may vary in version are +operating systems and device drivers. + +|Configuration Descriptor |Any file whose format is well defined by a +specification and which contains configuration information for a set of +Java classes, archive, or other feature defined in the specification. + +|Conformance Tests |All tests in the Test Suite for an indicated +Technology Under Test, as released and distributed by the +Eclipse Foundation, excluding those tests on the +published Exclude List for the Technology Under Test. + +|Container |An implementation of the associated Libraries, as specified +in the Specifications, and a version of a Java Platform, Standard +Edition Runtime Product, as specified in the Specifications, or a later +version of a Java Platform, Standard Edition Runtime Product that also +meets these compatibility requirements. + +|Documented |Made technically accessible and made known to users, +typically by means such as marketing materials, product documentation, +usage messages, or developer support programs. + +|Exclude List |The most current list of tests, released and distributed by the +Eclipse Foundation, that are not required to be passed to certify +conformance. The Jakarta EE Specification Committee may add to the Exclude List for that +Test Suite as needed at any time, in which case the updated TCK version +supplants any previous Exclude Lists for that Test Suite. + +|Libraries a| +The class libraries, as specified through the Jakarta EE Specification Process +(JESP), for the Technology Under Test. + +The Libraries for {TechnologyFullName} are listed at the end of this chapter. + +|Location Resource a| +A location of classes or native libraries that are components of the +test tools or tests, such that these classes or libraries may be +required to exist in a certain location in order to satisfy the +requirements of the test suite. + +For example, classes may be required to exist in directories named in a +CLASSPATH variable, or native libraries may be required to exist in +directories named in a PATH variable. + +|Maintenance Lead |The corresponding Jakarta EE Specification Project +is responsible for maintaining the Specification, and the TCK for the +Technology. The Specification Project Team will propose revisions and +updates to the Jakarta EE Specification Committee which will approve +and release new versions of the specification and TCK. + +|Operating Mode a| +Any Documented option of a Product that can be changed by a user in +order to modify the behavior of the Product. + +For example, an Operating Mode can be binary (enable/disable +optimization), an enumeration (select from a list of protocols), or a +range (set the maximum number of active threads). + +Note that an Operating Mode may be selected by a command line switch, an +environment variable, a GUI user interface element, a configuration or +control file, etc. + +|Product |A vendor's product in which the Technology Under Test is +implemented or incorporated, and that is subject to compatibility +testing. + +|Product Configuration a| +A specific setting or instantiation of an Operating Mode. + +For example, a Product supporting an Operating Mode that permits user +selection of an external encryption package may have a Product +Configuration that links the Product to that encryption package. + +|Rebuildable Tests |Tests that must be built using an +implementation-specific mechanism. This mechanism must produce +specification-defined artifacts. Rebuilding and running these tests +against a known compatible implementation verifies that the mechanism generates +compatible artifacts. + +|Resource |A Computational Resource, a Location Resource, or a Security +Resource. + +|Rules |These definitions and rules in this Compatibility Requirements +section of this User's Guide. + +|Runtime |The Containers specified in the Specifications. + +|Security Resource a| +A security privilege or policy necessary for the proper execution of the +Test Suite. + +For example, the user executing the Test Suite will need the privilege +to access the files and network resources necessary for use of the +Product. + +|Specifications a| +The documents produced through the Jakarta EE Specification Process (JESP) +that define a particular Version of a Technology. + +The Specifications for the Technology Under Test are referenced later in +this chapter. + +|Technology |Specifications and one or more compatible implementations produced +through the Jakarta EE Specification Process (JESP). + +|Technology Under Test |Specifications and a compatible implementation +for {TechnologyFullName} Version {TechnologyVersion}. + +|Test Suite |The requirements, tests, and testing tools distributed by +the Maintenance Lead as applicable to a given Version of the Technology. + +|Version |A release of the Technology, as produced through the +Jakarta EE Specification Process (JESP). + +include::defns.inc[] +|======================================================================= + + +[[sthref7]][[rules-for-products]] + +2.2.2 Rules for {TechnologyFullName} Products +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The following rules apply for each version of an operating system, +software component, and hardware platform Documented as supporting the +Product: + +*{techID}1* The Product must be able to satisfy all applicable compatibility +requirements, including passing all Conformance Tests, in every Product +Configuration and in every combination of Product Configurations, except +only as specifically exempted by these Rules. + +For example, if a Product provides distinct Operating Modes to optimize +performance, then that Product must satisfy all applicable compatibility +requirements for a Product in each Product Configuration, and +combination of Product Configurations, of those Operating Modes. + +*{techID}1.1* If an Operating Mode controls a Resource necessary for the +basic execution of the Test Suite, testing may always use a Product +Configuration of that Operating Mode providing that Resource, even if +other Product Configurations do not provide that Resource. +Notwithstanding such exceptions, each Product must have at least one set +of Product Configurations of such Operating Modes that is able to pass +all the Conformance Tests. + +For example, a Product with an Operating Mode that controls a security +policy (i.e., Security Resource) which has one or more Product +Configurations that cause Conformance Tests to fail may be tested using +a Product Configuration that allows all Conformance Tests to pass. + +*{techID}1.2* A Product Configuration of an Operating Mode that causes the +Product to report only version, usage, or diagnostic information is +exempted from these compatibility rules. + +*{techID}1.3* An API Definition Product is exempt from all functional +testing requirements defined here, except the signature tests. + +*{techID}2* Some Conformance Tests may have properties that may be changed. +Properties that can be changed are identified in the configuration +interview. Apart from changing such properties and other allowed +modifications described in this User's Guide (if any), no source or +binary code for a Conformance Test may be altered in any way without +prior written permission. Any such allowed alterations to the +Conformance Tests will be provided via the Jakarta EE Specification Project +website and apply to all vendor compatible implementations. + +*{techID}3* The testing tools supplied as part of the Test Suite or as +updated by the Maintenance Lead must be used to certify compliance. + +*{techID}4* The Exclude List associated with the Test Suite cannot be +modified. + +*{techID}5* The Maintenance Lead can define exceptions to these Rules. Such +exceptions would be made available as above, and will apply to all vendor implementations. + +*{techID}6* All hardware and software component additions, deletions, and +modifications to a Documented supporting hardware/software platform, +that are not part of the Product but required for the Product to satisfy +the compatibility requirements, must be Documented and available to +users of the Product. + +For example, if a patch to a particular version of a supporting +operating system is required for the Product to pass the Conformance +Tests, that patch must be Documented and available to users of the +Product. + +*{techID}7* The Product must contain the full set of public and protected +classes and interfaces for all the Libraries. Those classes and +interfaces must contain exactly the set of public and protected methods, +constructors, and fields defined by the Specifications for those +Libraries. No subsetting, supersetting, or modifications of the public +and protected API of the Libraries are allowed except only as +specifically exempted by these Rules. + +*{techID}7.1* If a Product includes Technologies in addition to the +Technology Under Test, then it must contain the full set of combined +public and protected classes and interfaces. The API of the Product +must contain the union of the included Technologies. No further +modifications to the APIs of the included Technologies are allowed. + +ifdef::subset-allowed[] +*{techID}7.2* The Product may contain a subset of the classes and +interfaces for the Libraries. +endif::subset-allowed[] + +*{techID}8* Except for tests specifically required by this TCK to be rebuilt +(if any), the binary Conformance Tests supplied as part of the Test +Suite or as updated by the Maintenance Lead must be used to certify +compliance. + +*{techID}9* The functional programmatic behavior of any binary class or +interface must be that defined by the Specifications. + +include::rules.inc[] + +[[CJAIIBDJ]][[test-appeals-process]] + +2.3 Test Appeals Process +~~~~~~~~~~~~~~~~~~~~~~~~ + +Jakarta has a well established process for managing challenges to its +TCKs. Any implementor may submit a challenge to one or more tests in the +{TechnologyShortName} TCK as it relates to their implementation. Implementor +means the entity as a whole in charge of producing the final certified release. +*Challenges filed should represent the consensus of that entity*. + +2.3.1 Valid Challenges +^^^^^^^^^^^^^^^^^^^^^^ +Any test case (e.g., test class, @Test method), test case configuration (e.g., deployment descriptor), test beans, annotations, and other resources considered part of the TCK may be challenged. + +The following scenarios are considered in scope for test challenges: + +* Claims that a test assertion conflicts with the specification. +* Claims that a test asserts requirements over and above that of the specification. +* Claims that an assertion of the specification is not sufficiently implementable. +* Claims that a test is not portable or depends on a particular implementation. + +2.3.2 Invalid Challenges +^^^^^^^^^^^^^^^^^^^^^^^^ +The following scenarios are considered out of scope for test challenges and will be immediately closed if filed: + +* Challenging an implementation’s claim of passing a test. Certification is an honor system and these issues must be raised directly with the implementation. +* Challenging the usefulness of a specification requirement. The challenge process cannot be used to bypass the specification process and raise in question the need or relevance of a specification requirement. +* Claims the TCK is inadequate or missing assertions required by the specification. See the Improvement section, which is outside the scope of test challenges. +* Challenges that do not represent a consensus of the implementing community will be closed until such time that the community does agree or agreement cannot be made. The test challenge process is not the place for implementations to initiate their own internal discussions. +* Challenges to tests that are already excluded for any reason. +* Challenges that an excluded test should not have been excluded and should be re-added should be opened as a new enhancement request + +Test challenges must be made in writing via the {TechnologyShortName} specification project issue tracker +as described in link:#CJAJEAEI[Section 2.3.3, "TCK Test Appeals Steps."] + +All tests found to be invalid will be placed on the Exclude List +for that version of the {TechnologyShortName} TCK. + + +[[CJAJEAEI]][[tck-test-appeals-steps]] + +2.3.3 TCK Test Appeals Steps +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Challenges should be filed via the {TechnologyFullName} specification project’s issue tracker using the label `challenge` and include the following information: +* The relevant specification version and section number(s) +* The coordinates of the challenged test(s) +* The exact TCK and exclude list versions +* The implementation being tested, including name and company +* The full test name +* A full description of why the test is invalid and what the correct behavior is believed to be +* Any supporting material; debug logs, test output, test logs, run scripts, etc. + + + +2. Specification project evaluates the challenge. + +Challenges can be resolved by a specification project lead, or a project challenge triage team, after a consensus of the specification project committers is reached or attempts to gain consensus fails. +Specification projects may exercise lazy consensus, voting or any practice that follows the principles of Eclipse Foundation Development Process. +The expected timeframe for a response is two weeks or less. +If consensus cannot be reached by the specification project for a prolonged period of time, the default recommendation is to exclude the tests and address the dispute in a future revision of the specification. + +3. Accepted Challenges. + +A consensus that a test produces invalid results will result in the exclusion of that test from certification requirements, and an immediate update and release of an official distribution of the TCK including the new exclude list. The associated `challenge` issue must be closed with an `accepted` label to indicate it has been resolved. + +4. Rejected Challenges and Remedy. + +When a`challenge` issue is rejected, it must be closed with a label of `invalid` to indicate it has been rejected. +There appeal process for challenges rejected on technical terms is outlined in Escalation Appeal. +If, however, an implementer feels the TCK challenge process was not followed, an appeal issue should be filed with specification project’s TCK issue tracker using the label `challenge-appeal`. +A project lead should escalate the issue with the Jakarta EE Specification Committee via email (jakarta.ee-spec@eclipse.org). +The committee will evaluate the matter purely in terms of due process. +If the appeal is accepted, the original TCK challenge issue will be reopened and a label of `appealed-challenge` added, along with a discussion of the appeal decision, and the `challenge-appeal` issue with be closed. +If the appeal is rejected, the `challenge-appeal` issue should closed with a label of `invalid`. + +5. Escalation Appeal. + +If there is a concern that a TCK process issue has not been resolved satisfactorily, the +https://www.eclipse.org/projects/dev_process/#6_5_Grievance_Handling[Eclipse Development Process Grievance Handling] procedure should be followed to escalate the resolution. Note that this is not a mechanism to attempt to handle implementation specific issues. + + +[[CJAJECIE]][[specifications-for-technology]] + +2.4 Specifications for {TechnologyFullName} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The {TechnologyFullName} specification is available from the specification +project web-site: {SpecificationURL}. + +[[CJABAHGI]][[libraries-for-technology]] + +2.5 Libraries for {TechnologyFullName} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following is a list of the packages comprising the required class +libraries for {TechnologyShortName} {TechnologyVersion}: + +include::packages.inc[] + +For the latest list of packages, also see: + +{SpecificationURL} diff --git a/tck-docs/userguide/src/main/jbake/content/rules.inc b/tck-docs/userguide/src/main/jbake/content/rules.inc new file mode 100644 index 00000000..b5a250f6 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/rules.inc @@ -0,0 +1,78 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +Most technologies will only need the compatibility rules in rules.adoc. +Some technologies will need additional rules. If they're needed, +remove the comment block delimiters below and update the rules as +appropriate. You may need to adjust the rule numbers to avoid gaps. + +The first comment block below is additional rules needed by JPA. + +The second comment block below is additional rules needed by +JSP and Servlet. (And EJB, if it had a standalone TCK.) + +The third comment block below is additional rules that apply +to any technology that defines deployment descriptors. + +The fourth comment block is special rules that apply only to JSP. + +NOTE: This set of examples is NOT complete, but should be. +/////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////// +*{techID}10* The Runtime must report an error when processing a +Configuration Descriptor that does not conform to the Specifications. + +*{techID}11* An error must be reported when processing a configuration +descriptor that includes a Java Persistence QL expression that does not +conform to the Specifications. + +*{techID}12* The presence of an XML comment in a Configuration +Descriptor, when processed by the Runtime, must not cause the +functional programmatic behavior of the Runtime to vary from the +functional programmatic behavior of the Runtime in the absence of that +comment. +/////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////// +*{techID}10* Each Container must make technically accessible all Java SE +Runtime interfaces and functionality, as defined by the Specifications, +to programs running in the Container, except only as specifically +exempted by these Rules. + +*{techID}10.1* Containers may impose security constraints, as defined by +the Specifications. +/////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////// +*{techID}11* A Deployment Tool must report an error when processing a +Configuration Descriptor that does not conform to the Specifications. + +*{techID}12* The presence of an XML comment in a Configuration +Descriptor, when processed by a Deployment Tool, must not cause the +functional programmatic behavior of the Deployment Tool to vary from +the functional programmatic behavior of the Deployment Tool in the +absence of that comment. +/////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////// +*{techID}11* A web Container must report an error, as defined by the +Specifications, when processing a JSP Page that does not conform to the +Specifications. + +*{techID}12* The presence of a Java language comment or Java language +directive in a JSP Page that specifies ”java” as the scripting +language, when processed by a web Container, must not cause the +functional programmatic behavior of that JSP Page to vary from the +functional programmatic behavior of that JSP Page in the absence of +that Java language comment or Java language directive. + +*{techID}13* The contents of any fixed template data (defined by the +Specifications) in a JSP Page, when processed by a web Container, must +not affect the functional programmatic behavior of that JSP Page, +except as defined by the Specifications. + +*{techID}14* The functional programmatic behavior of a JSP Page that +specifies ”java” as the scripting language must be equivalent to the +functional programmatic behavior of the JSP Page Implementation Class +constructed from that JSP Page. +/////////////////////////////////////////////////////////////////////// diff --git a/tck-docs/userguide/src/main/jbake/content/tck-packages.inc b/tck-docs/userguide/src/main/jbake/content/tck-packages.inc new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/tck-packages.inc @@ -0,0 +1 @@ + diff --git a/tck-docs/userguide/src/main/jbake/content/title.adoc b/tck-docs/userguide/src/main/jbake/content/title.adoc new file mode 100644 index 00000000..232172d7 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/title.adoc @@ -0,0 +1,42 @@ +type=page +status=published +title=TCK User's Guide for Technology Implementors +next=preface.html +prev=toc.html +~~~~~~ +include::attributes.conf[] + +TCK User's Guide for {TechnologyFullName}, Release {TechnologyVersion} for Jakarta EE +===================================================================================== + +[[eclipse-foundation]] +Eclipse Foundation +------------------ + +Technology Compatibility Kit User's Guide for {TechnologyFullName} + +Release {TechnologyVersion} for Jakarta EE + +{ReleaseDate} + +[[sthref1]] + +''''' + +Technology Compatibility Kit User's Guide for {TechnologyFullName}, +Release {TechnologyVersion} for Jakarta EE + +Copyright © {CopyrightDates} Oracle and/or its affiliates. All rights reserved. + +This program and the accompanying materials are made available under +the terms of the Eclipse Public License v. 2.0, which is available at +http://www.eclipse.org/legal/epl-2.0. + +SPDX-License-Identifier: EPL-2.0 + +Oracle and Java are registered trademarks of Oracle and/or its +affiliates. Other names may be trademarks of their respective owners. + +include::title.inc[] + + diff --git a/tck-docs/userguide/src/main/jbake/content/title.inc b/tck-docs/userguide/src/main/jbake/content/title.inc new file mode 100644 index 00000000..25bf47e0 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/title.inc @@ -0,0 +1,11 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +This is included at the tail end of the Title page. +The following section should be customized for the technology. +This is provided to allow each technology to customize legacy acronym names +that are used in this TCK. +Be sure to customize LegacyAcronym in attributes.conf +Add additional lines as needed for acronyms found in your TCK user guide. +/////////////////////////////////////////////////////////////////////// + +References in this document to {LegacyAcronym} refer to the {TechnologyFullName} unless otherwise noted. diff --git a/tck-docs/userguide/src/main/jbake/content/toc.adoc b/tck-docs/userguide/src/main/jbake/content/toc.adoc new file mode 100644 index 00000000..3f0ef629 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/toc.adoc @@ -0,0 +1,87 @@ +type=page +status=published +title=TCK User's Guide for Technology Implementors +next=title.html +~~~~~~ +include::attributes.conf[] +TCK User's Guide for Technology Implementors +============================================ + +[[contents]] +Contents +-------- + +* link:title.html#eclipse-foundation[Eclipse Foundation] + +link:preface.html#GBFTI[Preface] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +** link:preface.html#GBFUS[Who Should Use This Book] +** link:preface.html#GBFPO[Before You Read This Book] +** link:preface.html#GBFWF[Typographic Conventions] +** link:preface.html#FWBSD[Shell Prompts in Command Examples] + +link:intro.html#GBFOW[1 Introduction] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +** link:intro.html#GBFTK[1.1 Compatibility Testing] +*** link:intro.html#GBFQN[1.1.1 Why Compatibility Testing is Important] +*** link:intro.html#GBFPR[1.1.2 TCK Compatibility Rules] +*** link:intro.html#GBFPW[1.1.3 TCK Overview] +*** link:intro.html#GBFPB[1.1.4 Jakarta EE Specification Process (JESP) Program and Compatibility Testing] +** link:intro.html#GBFQR[1.2 About the TCK] +*** link:intro.html#GBFQV[1.2.1 TCK Specifications and Requirements] +*** link:intro.html#GBFSQ[1.2.2 TCK Components] +*** link:intro.html#GBFRA[1.2.3 TCK Compatibility Test Suite] +*** link:intro.html#GBFSH[1.2.4 Exclude Lists] +*** link:intro.html#GBFRR[1.2.5 TCK Configuration] +** link:intro.html#GBFQW[1.3 Getting Started With the TCK] + +[[procedure-for-certification]] +link:rules.html#GBFSN[2 Procedure for Certification] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +** link:rules.html#CJAFFDGI[2.1 Certification Overview] +** link:rules.html#CJAFGIGG[2.2 Compatibility Requirements] +*** link:rules.html#definitions[2.2.1 Definitions] +*** link:rules.html#sthref7[2.2.2 Rules for {TechnologyFullName} Products] +** link:rules.html#CJAIIBDJ[2.3 Test Appeals Process] +*** link:rules.html#[2.3.1 Valid Challenges] +*** link:rules.html#[2.3.2 Invalid Challenges] +*** link:rules.html#CJAJEAEI[2.3.3 TCK Test Appeals Steps] +** link:rules.html#CJAJECIE[2.4 Specifications for {TechnologyFullName}] +** link:rules.html#CJABAHGI[2.5 Libraries for {TechnologyFullName}] + +link:install.html#GBFTP[3 Installation] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +** link:install.html#GBFUD[3.1 Obtaining a Compatible Implementation] +** link:install.html#GBFTS[3.2 Installing the Software] + +[[setup-and-configuration]] +link:config.html#GBFVV[4 Setup and Configuration] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +[[executing-tests]] +link:using.html#GBFWO[5 Executing Tests] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +** link:using.html#GBFUZ[5.1 Starting the tests] +*** link:using.html#GBFVW[5.1.1 To Start the tests in Command-Line Mode] +** link:using.html#GBFWM[5.2 Running a Subset of the Tests] +*** link:using.html#GBFWK[5.2.1 To Run a Subset of Tests in Command-Line Mode] +** link:using.html#GCLRR[5.3 Running the TCK Against another CI] +** link:using.html#GCLRZ[5.4 Running the TCK Against a Vendor's Implementation] +** link:using.html#GBFVK[5.5 Test Reports] + +[[debugging-test-problems]] +link:debug.html#GBFUV[6 Debugging Test Problems] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +** link:debug.html#GBFYP[6.1 Overview] +** link:debug.html#GBFYF[6.2 Configuration Failures] +* link:faq.html#GBFYD[A Frequently Asked Questions] +** link:faq.html#GBFYQ[A.1 Where do I start to debug a test failure?] +** link:faq.html#GBFYR[A.2 How do I restart a crashed test run?] +** link:faq.html#GBFWU[A.3 What would cause tests be added to the exclude list?] diff --git a/tck-docs/userguide/src/main/jbake/content/using-examples.inc b/tck-docs/userguide/src/main/jbake/content/using-examples.inc new file mode 100644 index 00000000..5fb981b8 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/using-examples.inc @@ -0,0 +1,49 @@ +/////////////////////////////////////////////////////////////////////// +NOTE TO WRITERS: +These CLI examples can be customized as necessary. +/////////////////////////////////////////////////////////////////////// + +Start test using the following command: + +-- +[source,oac_no_warn] +---- +mvn clean verify +---- +-- + +[[GCMCU]] + +Example 5-1 {TechnologyShortName} TCK Signature Tests + +To run the {TechnologyShortName} TCK signature tests, enter the +following commands: + +[source,subs="attributes"] +---- +mvn verify -Dit.test=jakarta.jsonb.tck.signaturetest.** +---- + +[[GCMBV]] + + +Example 5-2 Single Test Directory + +To run a single test directory, enter the following commands: + +[source,subs="attributes"] +---- +mvn verify -Dit.test={singleTestDirectoryExample}.** +---- + +[[GCMCA]] + + +Example 5-3 Subset of Test Directories + +To run a subset of test directories, enter the following commands: + +[source,subs="attributes"] +---- +mvn verify -Dit.test={subsetTestDirectoryExample}.** +---- diff --git a/tck-docs/userguide/src/main/jbake/content/using.adoc b/tck-docs/userguide/src/main/jbake/content/using.adoc new file mode 100644 index 00000000..ce809b19 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/content/using.adoc @@ -0,0 +1,145 @@ +type=page +status=published +title=Executing Tests +next=debug.html +prev=config.html +~~~~~~ +include::attributes.conf[] +Executing Tests +=============== + +[[GBFWO]] + + +[[executing-tests]] +5 Executing Tests +----------------- + +The {TechnologyShortName} TCK uses the Junit +framework to execute the tests. + +This chapter includes the following topics: + +* link:#GBFUZ[Starting the tests] +* link:#GBFWM[Running a Subset of the Tests] +* link:#GCLRR[Running the TCK Against your selected CI] +* link:#GCLRZ[Running the TCK Against a Vendor's Implementation] +* link:#GBFVK[Test Reports] + + +[NOTE] +======================================================================= + +The instructions in this chapter assume that you have installed and +configured your test environment as described in +link:install.html#GBFTP[Chapter 3, "Installation,"] and +link:config.html#GBFVV[Chapter 4, "Setup and Configuration,"], +respectively. + +======================================================================= + +ifdef::rebuild[] +As explained in link:rebuild.html#GCLIZ[Appendix B, "Packaging the +Test Applications in Servlet-Compliant WAR +Files With VI-Specific Information,"] the {TechnologyShortName} TCK +introduces the concept of repackaging the TCK tests. +endif::rebuild[] + + +[[GBFUZ]][[starting-javatest]] + +5.1 Starting the tests +~~~~~~~~~~~~~~~~~~~~~~ + +The {TechnologyShortName} TCK can be run from the command line +in your shell environment by executing the TCK jar. + +[NOTE] +======================================================================= + +The `mvn` command referenced in the following +two procedures and elsewhere in this guide is the Apache Maven +build tool, which will need to be downloaded separately. + +======================================================================= + +[[GBFVW]][[to-start-javatest-in-command-line-mode]] + +5.1.1 To Start the tests in Command-Line Mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +include::using-examples.inc[] + +[[GBFWM]][[running-a-subset-of-the-tests]] + +5.2 Running a Subset of the Tests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Use the following modes to run a subset of the tests: + +* link:#GBFWK[Section 5.2.1, "To Run a Subset of Tests in Command-Line Mode"] + + +[[GBFWK]][[to-run-a-subset-of-tests-in-command-line-mode]] + +5.2.1 To Run a Subset of Tests in Command-Line Mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Start the test run by executing the following command: + + +[source,subs="attributes"] +---- +mvn verify -Dit.test={subsetTestDirectoryExample}.** +---- + +The tests in the directory and its subdirectories are run. + + +[[GCLRR]][[running-the-tck-against-the-ri]] + +5.3 Running the TCK Against another CI +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Some test scenarios are designed to ensure that the configuration and deployment of +all the prebuilt {TechnologyShortName} TCK tests against one Compatible +Implementation are successful operating with other compatible implementations, and that the TCK is ready for +compatibility testing against the Vendor and Compatible Implementations. + +1. Verify that you have followed the configuration instructions in +link:config.html#GBFVU[Section 4.1, "Configuring Your Environment to Run +the TCK Against the Compatible Implementation."] +2. If required, verify that you have completed the steps in +link:config.html#GCLIW[Section 4.3.2, "Deploying the Prebuilt Archives."] +3. Run the tests, as described in link:#GBFUZ[Section 5.1, "Starting +the tests,"] and, if desired, link:#GBFWM[Section 5.2, "Running a Subset +of the Tests."] + +[[GCLRZ]][[running-the-tck-against-a-vendors-implementation]] + +5.4 Running the TCK Against a Vendor's Implementation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This test scenario is one of the compatibility test phases that all +Vendors must pass. + +1. Verify that you have followed the configuration instructions in +link:config.html#GCLHU[Section 4.2, "Configuring Your Environment to +Repackage and Run the TCK Against the Vendor Implementation."] +2. If required, verify that you have completed the steps in +link:config.html#GCLIL[Section 4.3.3, "Deploying the +Test Applications Against the Vendor Implementation."] +3. Run the tests, as described in link:#GBFUZ[Section 5.1, "Starting +JavaTest,"] and, if desired, link:#GBFWM[Section 5.2, "Running a Subset +of the Tests."] + +[[GBFVK]][[test-reports]] + +5.5 Test Reports +~~~~~~~~~~~~~~~~ + +A set of report files is created for every test run. These report files +can be found in the target directory that the test is run. After a test run is +completed, the Junit framework writes reports for the test run. + +include::using.inc[] + diff --git a/tck-docs/userguide/src/main/jbake/content/using.inc b/tck-docs/userguide/src/main/jbake/content/using.inc new file mode 100644 index 00000000..e69de29b diff --git a/tck-docs/userguide/src/main/jbake/jbake.properties b/tck-docs/userguide/src/main/jbake/jbake.properties new file mode 100644 index 00000000..05c7056f --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/jbake.properties @@ -0,0 +1,24 @@ +# +# Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved. +# +# This program and the accompanying materials are made available under the +# terms of the Eclipse Public License v. 2.0, which is available at +# http://www.eclipse.org/legal/epl-2.0. +# +# This Source Code may also be made available under the following Secondary +# Licenses when the conditions for such availability set forth in the +# Eclipse Public License v. 2.0 are satisfied: GNU General Public License, +# version 2 with the GNU Classpath Exception, which is available at +# https://www.gnu.org/software/classpath/license.html. +# +# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 +# + +site.host=http://jbake.org +render.tags=false +render.sitemap=false +render.archive=false +render.feed=false +render.index=false +asciidoctor.option.safe=0 +asciidoctor.attributes.export=true \ No newline at end of file diff --git a/tck-docs/userguide/src/main/jbake/templates/footer.ftl b/tck-docs/userguide/src/main/jbake/templates/footer.ftl new file mode 100644 index 00000000..746cbf1c --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/templates/footer.ftl @@ -0,0 +1,44 @@ +<#-- a footer template fragment included in the page template --> +
+ + + + + + + + + <#if content.prev??> + + + + <#if content.next??> + + + + + +
+ + + Previous + + + + + Next + + + + + Contents + +
+ + + Eclipse Foundation Logo  + Copyright © 2017, 2021 Oracle and/or its affiliates. All rights reserved. + + + + diff --git a/tck-docs/userguide/src/main/jbake/templates/header.ftl b/tck-docs/userguide/src/main/jbake/templates/header.ftl new file mode 100644 index 00000000..50b72ae8 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/templates/header.ftl @@ -0,0 +1,54 @@ + +<#-- a header template fragment included in the page template --> + + + + <#if (content.title)??><#escape x as x?xml>${content.title}</#escape></#if> + + + + + + + + + +
+ ${content.title}
+
+
+ + + + + + + + + <#if content.prev??> + + + + <#if content.next??> + + + + + +
+ + + Previous + + + + + Next + + + + + Contents + +
+ diff --git a/tck-docs/userguide/src/main/jbake/templates/menu.ftl b/tck-docs/userguide/src/main/jbake/templates/menu.ftl new file mode 100644 index 00000000..888c03dc --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/templates/menu.ftl @@ -0,0 +1 @@ +<#-- a menu bar template fragment included in the page template --> \ No newline at end of file diff --git a/tck-docs/userguide/src/main/jbake/templates/page.ftl b/tck-docs/userguide/src/main/jbake/templates/page.ftl new file mode 100644 index 00000000..eca51db3 --- /dev/null +++ b/tck-docs/userguide/src/main/jbake/templates/page.ftl @@ -0,0 +1,8 @@ +<#-- a top level page layout template --> + +<#include "header.ftl"> +<#include "menu.ftl"> + +${content.body} + +<#include "footer.ftl"> \ No newline at end of file diff --git a/tck-docs/userguide/src/theme/jakartaee-theme.yml b/tck-docs/userguide/src/theme/jakartaee-theme.yml new file mode 100644 index 00000000..6092a2f5 --- /dev/null +++ b/tck-docs/userguide/src/theme/jakartaee-theme.yml @@ -0,0 +1,299 @@ +# +# Following is the asciidoctor-pdf default theme [1], with small +# customizations, mostly for header and footer, marked "EE". +# +# [1] https://github.com/asciidoctor/asciidoctor-pdf/blob/master/data/themes/default-theme.yml +# +font: + catalog: + # Noto Serif supports Latin, Latin-1 Supplement, Latin Extended-A, Greek, Cyrillic, Vietnamese & an assortment of symbols + Noto Serif: + normal: notoserif-regular-subset.ttf + bold: notoserif-bold-subset.ttf + italic: notoserif-italic-subset.ttf + bold_italic: notoserif-bold_italic-subset.ttf + # M+ 1mn supports ASCII and the circled numbers used for conums + M+ 1mn: + normal: mplus1mn-regular-ascii-conums.ttf + bold: mplus1mn-bold-ascii.ttf + italic: mplus1mn-italic-ascii.ttf + bold_italic: mplus1mn-bold_italic-ascii.ttf + # M+ 1p supports Latin, Latin-1 Supplement, Latin Extended, Greek, Cyrillic, Vietnamese, Japanese & an assortment of symbols + # It also provides arrows for ->, <-, => and <= replacements in case these glyphs are missing from font + M+ 1p Fallback: + normal: mplus1p-regular-fallback.ttf + bold: mplus1p-regular-fallback.ttf + italic: mplus1p-regular-fallback.ttf + bold_italic: mplus1p-regular-fallback.ttf + fallbacks: + - M+ 1p Fallback +page: + background_color: ffffff + layout: portrait + margin: [0.5in, 0.67in, 0.67in, 0.67in] + # margin_inner and margin_outer keys are used for recto/verso print margins when media=prepress + margin_inner: 0.75in + margin_outer: 0.59in + #size: A4 # EE + size: Letter # EE +base: + align: justify + # color as hex string (leading # is optional) + font_color: 333333 + # color as RGB array + #font_color: [51, 51, 51] + # color as CMYK array (approximated) + #font_color: [0, 0, 0, 0.92] + #font_color: [0, 0, 0, 92%] + font_family: Noto Serif + # choose one of these font_size/line_height_length combinations + #font_size: 14 + #line_height_length: 20 + #font_size: 11.25 + #line_height_length: 18 + #font_size: 11.2 + #line_height_length: 16 + font_size: 10.5 + #line_height_length: 15 + # correct line height for Noto Serif metrics + line_height_length: 12 + #font_size: 11.25 + #line_height_length: 18 + line_height: $base_line_height_length / $base_font_size + font_size_large: round($base_font_size * 1.25) + font_size_small: round($base_font_size * 0.85) + font_size_min: $base_font_size * 0.75 + font_style: normal + border_color: eeeeee + border_radius: 4 + border_width: 0.5 +# FIXME vertical_rhythm is weird; we should think in terms of ems +#vertical_rhythm: $base_line_height_length * 2 / 3 +# correct line height for Noto Serif metrics (comes with built-in line height) +vertical_rhythm: $base_line_height_length +horizontal_rhythm: $base_line_height_length +# QUESTION should vertical_spacing be block_spacing instead? +vertical_spacing: $vertical_rhythm +link: + font_color: 428bca +# literal is currently used for inline monospaced in prose and table cells +literal: + font_color: b12146 + font_family: M+ 1mn +menu_caret_content: " \u203a " +heading: + align: left + #font_color: 181818 + font_color: $base_font_color + font_family: $base_font_family + font_style: bold + # h1 is used for part titles (book doctype) or the doctitle (article doctype) + #h1_font_size: floor($base_font_size * 2.6) # EE + h1_font_size: floor($base_font_size * 2.5) # EE, squeeze title onto one line + # h2 is used for chapter titles (book doctype only) + h2_font_size: floor($base_font_size * 2.15) + h3_font_size: round($base_font_size * 1.7) + h4_font_size: $base_font_size_large + h5_font_size: $base_font_size + h6_font_size: $base_font_size_small + #line_height: 1.4 + # correct line height for Noto Serif metrics (comes with built-in line height) + line_height: 1 + margin_top: $vertical_rhythm * 0.4 + margin_bottom: $vertical_rhythm * 0.9 +title_page: + align: right + logo: + top: 10% + title: + top: 55% + font_size: $heading_h1_font_size + font_color: 999999 + line_height: 0.9 + subtitle: + font_size: $heading_h3_font_size + font_style: bold_italic + line_height: 1 + authors: + margin_top: $base_font_size * 1.25 + font_size: $base_font_size_large + font_color: 181818 + revision: + margin_top: $base_font_size * 1.25 +block: + margin_top: 0 + margin_bottom: $vertical_rhythm +caption: + align: left + font_size: $base_font_size * 0.95 + font_style: italic + # FIXME perhaps set line_height instead of / in addition to margins? + margin_inside: $vertical_rhythm / 3 + #margin_inside: $vertical_rhythm / 4 + margin_outside: 0 +lead: + font_size: $base_font_size_large + line_height: 1.4 +abstract: + font_color: 5c6266 + font_size: $lead_font_size + line_height: $lead_line_height + font_style: italic + first_line_font_style: bold + title: + align: center + font_color: $heading_font_color + font_family: $heading_font_family + font_size: $heading_h4_font_size + font_style: $heading_font_style +admonition: + column_rule_color: $base_border_color + column_rule_width: $base_border_width + padding: [0, $horizontal_rhythm, 0, $horizontal_rhythm] + #icon: + # tip: + # name: fa-lightbulb-o + # stroke_color: 111111 + # size: 24 + label: + text_transform: uppercase + font_style: bold +blockquote: + font_color: $base_font_color + font_size: $base_font_size_large + border_color: $base_border_color + border_width: 5 + # FIXME disable negative padding bottom once margin collapsing is implemented + padding: [0, $horizontal_rhythm, $block_margin_bottom * -0.75, $horizontal_rhythm + $blockquote_border_width / 2] + cite_font_size: $base_font_size_small + cite_font_color: 999999 +# code is used for source blocks (perhaps change to source or listing?) +code: + font_color: $base_font_color + font_family: $literal_font_family + font_size: ceil($base_font_size) + padding: $code_font_size + line_height: 1.25 + # line_gap is an experimental property to control how a background color is applied to an inline block element + line_gap: 3.8 + background_color: f5f5f5 + border_color: cccccc + border_radius: $base_border_radius + border_width: 0.75 +conum: + font_family: M+ 1mn + font_color: $literal_font_color + font_size: $base_font_size + line_height: 4 / 3 +example: + border_color: $base_border_color + border_radius: $base_border_radius + border_width: 0.75 + background_color: ffffff + # FIXME reenable padding bottom once margin collapsing is implemented + padding: [$vertical_rhythm, $horizontal_rhythm, 0, $horizontal_rhythm] +image: + align: left +prose: + margin_top: $block_margin_top + margin_bottom: $block_margin_bottom +sidebar: + background_color: eeeeee + border_color: e1e1e1 + border_radius: $base_border_radius + border_width: $base_border_width + # FIXME reenable padding bottom once margin collapsing is implemented + padding: [$vertical_rhythm, $vertical_rhythm * 1.25, 0, $vertical_rhythm * 1.25] + title: + align: center + font_color: $heading_font_color + font_family: $heading_font_family + font_size: $heading_h4_font_size + font_style: $heading_font_style +thematic_break: + border_color: $base_border_color + border_style: solid + border_width: $base_border_width + margin_top: $vertical_rhythm * 0.5 + margin_bottom: $vertical_rhythm * 1.5 +description_list: + term_font_style: bold + term_spacing: $vertical_rhythm / 4 + description_indent: $horizontal_rhythm * 1.25 +outline_list: + indent: $horizontal_rhythm * 1.5 + #marker_font_color: 404040 + # NOTE outline_list_item_spacing applies to list items that do not have complex content + item_spacing: $vertical_rhythm / 2 +table: + background_color: $page_background_color + #head_background_color: + #head_font_color: $base_font_color + head_font_style: bold + #body_background_color: + body_stripe_background_color: f9f9f9 + foot_background_color: f0f0f0 + border_color: dddddd + border_width: $base_border_width + cell_padding: 3 +toc: + indent: $horizontal_rhythm + line_height: 1.4 + dot_leader: + #content: ". " + font_color: a9a9a9 + #levels: 2 3 +# NOTE in addition to footer, header is also supported +footer: + font_size: $base_font_size_small + # NOTE if background_color is set, background and border will span width of page + #border_color: dddddd # EE + #border_width: 0.25 # EE + height: $base_line_height_length * 2.5 + line_height: 1 + padding: [$base_line_height_length / 2, 1, 0, 1] + vertical_align: top + #image_vertical_align: or + # additional attributes for content: + # * {page-count} + # * {page-number} + # * {document-title} + # * {document-subtitle} + # * {chapter-title} + # * {section-title} + # * {section-or-chapter-title} + recto: + #columns: "<50% =0% >50%" + right: + #content: '{page-number}' # EE + #content: '{section-or-chapter-title} | {page-number}' + #content: '{document-title} | {page-number}' + content: '{document-title}{nbsp}{nbsp}{nbsp} *{page-number}*' # EE + #center: + # content: '{page-number}' + left: # EE + content: '{status}' # EE + verso: + #columns: $footer_recto_columns + left: + #content: $footer_recto_right_content # EE + #content: '{page-number} | {chapter-title}' + content: '*{page-number}* {nbsp}{nbsp}{nbsp}{document-title}' # EE + #center: + # content: '{page-number}' + right: # EE + content: '{status}' # EE +header: # EE + font_size: $base_font_size_small # EE + border_color: dddddd # EE + border_width: 0.25 # EE + height: $base_line_height_length * 2.5 # EE + line_height: 1 # EE + padding: [$base_line_height_length / 2, 1, 0, 1] # EE + vertical_align: top # EE + recto: # EE + right: # EE + content: '{section-or-chapter-title}' # EE + verso: # EE + left: # EE + content: '{section-or-chapter-title}' # EE