This is an automated email from the ASF dual-hosted git repository. jungm pushed a commit to branch ee11 in repository https://gitbox.apache.org/repos/asf/tomee-tck.git
commit 255bff2c4ebc5bd54388a8716532214dd905c1cb Author: Markus Jung <[email protected]> AuthorDate: Sat Jul 18 21:30:12 2026 +0200 Pin the JAXB RI for the Validation TCK and wire its signature test Plume ships both EclipseLink MOXy and the JAXB RI; MOXy wins ServiceLoader discovery and rejects the namespace rewriting Apache BVal performs while parsing validation.xml/constraint-mapping descriptors, which broke every Bean Validation XML-configuration test. Pinning jakarta.xml.bind.JAXBContextFactory to the JAXB RI in the server JVM clears all 124 previously-excluded failures. Also wire the mandatory Validation API signature test. Full suite now passes 1,049/1,049 with no exclusion [...] --- KNOWN_ISSUES.md | 24 ++- runner-standalone/README.md | 2 +- runner-standalone/exclusions/validation.txt | 217 +-------------------- runner-standalone/validation/pom.xml | 108 ++++++++++ .../validation/src/tomee-conf/system.properties | 8 + 5 files changed, 141 insertions(+), 218 deletions(-) diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md index 78dd253..c26fd8a 100644 --- a/KNOWN_ISSUES.md +++ b/KNOWN_ISSUES.md @@ -28,7 +28,7 @@ Detail lives next to each runner: | servlet | 1,706 tests, 69 E | 69 tests | TomEE/Tomcat behavioral diffs | | pages | 682/682 pass | — | — (needs the runner's spec-default encoding overlay) | | rest | 2,803 tests, 4 F + 11 E | 14 tests | TomEE/CXF gaps (1 error was a fixed harness classpath gap) | -| validation | 1,049 tests, 124 F | 124 tests | Apache BVal gaps | +| validation | 1,049 tests, 0 F (incl. signature test) | — | — (server pins the JAXB RI; see product gaps) | | cdi (core) | 1,388 run, 90 F | 63 methods + 27 deploy-failing classes | OpenWebBeans 4.1 gaps | | cdi-ee | 1,829 run, 117 F | 87 methods + 30 deploy-failing classes | OpenWebBeans 4.1 + EE integration | | el | 361/361 pass (incl. signature test) | — | — | @@ -109,6 +109,17 @@ Fixes belong in Apache TomEE (or Tomcat); each removes exclusion entries. requested/negotiated extension lists (3 tests), and two idle-timeout/ close-code assertions differ. [websocket.txt](runner-standalone/exclusions/websocket.txt). +13. **Bean Validation XML config broken on stock Plume** — the Plume + distribution ships EclipseLink MOXy (`eclipselink-5.0.1.jar`) and the JAXB + RI (`jaxb-runtime-4.0.4.jar`) side by side. EclipseLink registers a + `jakarta.xml.bind.JAXBContextFactory` service and wins ServiceLoader + discovery, but MOXy rejects the namespace rewriting Apache BVal performs + while parsing `validation.xml`/constraint-mapping descriptors, so every + Bean Validation XML-configuration path fails on an out-of-the-box Plume + server. The validation runner works around it by pinning the JAXB RI as the + `jakarta.xml.bind.JAXBContextFactory` system property in the server JVM; + TomEE should pin the factory itself so applications relying on Bean + Validation XML config work on stock Plume. ## Upstream provider gaps @@ -119,20 +130,15 @@ Need triage/fixes in the upstream projects TomEE ships. not implemented; assorted observer/interceptor edge cases. Drives the [cdi.txt](runner-standalone/exclusions/cdi.txt) and most of the [cdi-ee.txt](runner-standalone/exclusions/cdi-ee.txt) lists. -2. **Apache BVal** — `validation.xml`/constraint-mapping XML parsing fails - ("Unable to parse null", "Failed to parse XML deployment descriptor - file"), 118 of the 124 validation failures; the rest are - method-validation/metadata gaps. - [validation.txt](runner-standalone/exclusions/validation.txt). -3. **Tomcat Jakarta Authentication SPI** — `ServletProfileSPITest` fails 50 +2. **Tomcat Jakarta Authentication SPI** — `ServletProfileSPITest` fails 50 of 57 AuthConfigFactory/ServerAuthConfig conformance assertions. [authentication.txt](runner-standalone/exclusions/authentication.txt). -4. **Johnzon/CXF integration** — CDI injection into `@JsonbTypeDeserializer` +3. **Johnzon/CXF integration** — CDI injection into `@JsonbTypeDeserializer` fields, JSON-P scalar writers, Bean Validation interceptors, and CDI resource-class handling in the REST stack ([TOMEE-4436](https://issues.apache.org/jira/browse/TOMEE-4436), [TOMEE-4166](https://issues.apache.org/jira/browse/TOMEE-4166)). -5. **Apache Johnzon 2.1.0 (JSON Binding 3.0)** — confirmed at provider level +4. **Apache Johnzon 2.1.0 (JSON Binding 3.0)** — confirmed at provider level by the standalone JSON-B TCK: `JsonbDeserializer` instances are not resolved through CDI, leaving `@Inject` fields null (the adapter and serializer CDI tests pass — the deserializer half of TOMEE-4436); diff --git a/runner-standalone/README.md b/runner-standalone/README.md index 4ccb508..46efa07 100644 --- a/runner-standalone/README.md +++ b/runner-standalone/README.md @@ -56,7 +56,7 @@ derived from; with the default exclusions applied these suites run green. | RESTful Web Services 4.0 | EFTL zip (installed as `jakarta.ws.rs:jakarta-restful-ws-tck:4.0.1`) | `rest` | **Runs: 2,803 tests, 4 failures, 11 errors, 128 skipped** (2026-07-18, the skips are the TCK's own `@Disabled` tests) against TomEE's CXF, with the CXF client driving the client half of every test; the signature test passes. One error was a harness classpath gap (the CXF client needs `cxf-rt-rs-extension-providers` for spec-required JSON-B support) and is fixed in the runner; the [...] | Servlet 6.1 | EFTL zip (installed as `jakarta.tck:servlet-tck-runtime:6.1.0`) | `servlet` | **Runs: 1,706 tests, 69 errors, 7 skipped** (2026-07-18). The harness is complete: slf4j-simple resolves at the TCK-derived version, the TCK's bundled client certificate is trusted and mapped (both client-cert tests pass, including the https-targeted deployment via a metadata observer reporting the TLS port); remaining errors are behavioral differences (async dispatch connection handling, respon [...] | Pages 4.0 | EFTL zip (installed as `jakarta.tck:jakarta-pages-tck:4.0.0`) | `pages` | **Passes 682/682 (0 failures, 0 errors, signature test included, no exclusions)** (2026-07-18). Needs the Central `jakarta.tck:common`/`signaturetest` support line at 11.1.1 with sigtest 2.6 (the TCK pom's own pins depend on the unpublished JavaTest harness), and the overlay removes TomEE's global UTF-8 default encodings from conf/web.xml because the TCK asserts the spec default ISO-8859-1. Its TomEE/ [...] -| Validation 3.1 | EFTL zip (installed as `jakarta.validation:validation-tck-tests:3.1.1`) | `validation` | **Runs: 1,049 tests, 124 failures** (2026-07-18) after pinning AssertJ 3.7.0 (the published TCK jar is compiled against its covariant signatures). 118 of the remaining failures are Apache BVal `validation.xml`/constraint-mapping XML parsing gaps (`Unable to parse null`, `Failed to parse XML deployment descriptor file`) — provider work, not harness | +| Validation 3.1 | EFTL zip (installed as `jakarta.validation:validation-tck-tests:3.1.1`) | `validation` | **Runs: 1,049 tests, 0 failures, no exclusions; the mandatory API signature test runs and passes** against the `jakarta.validation` packages the Plume distribution ships. Needs AssertJ 3.7.0 pinned (the published TCK jar is compiled against its covariant signatures) and the JAXB RI pinned as `jakarta.xml.bind.JAXBContextFactory` in the server JVM (Plume ships both MOXy and the RI; [...] | WebSocket 2.2 | EFTL zip (installed as `jakarta.tck:websocket-tck-spec-tests:2.2.0`) | `websocket` | **Runs: 715 tests, 0 failures, 30 errors** (2026-07-18) against Tomcat's WebSocket implementation, driven through the `tomcat-websocket` client container; the signature test passes. 25 errors are the server-side negative-deployment classes: Tomcat halts the whole webapp deployment on an invalid endpoint (the spec-required halt, but Arquillian reports the failed deploy as an error before [...] | Security 4.0 | Source reactor zip 4.0.1 | `security` (Maven module) | **Runs: 26 app modules plus the signature test, 132 tests, 5 failures, 2 errors at baseline; green with the reviewed exclusions (all 27 invoker projects pass, verified end-to-end 2026-07-18)**. The runner downloads and patches the reactor, injects a tomee-remote profile (including the `trustStore.path`/`trustStore.password` properties the OpenID modules' keytool steps read), and drives every module through the Maven [...] | Authentication 3.1 | Source reactor zip 3.1.2 | `authentication` (Maven module) | **Runs: 12 Web Profile modules plus the signature test; green with the reviewed exclusions (all 13 invoker projects pass, 0 failures, verified end-to-end 2026-07-18)**. The spi module's 50 excluded assertions are Tomcat AuthConfigFactory SPI conformance gaps — product results to triage. The signature test passes against `org.apache.tomcat:tomcat-jaspic-api` (the distribution's `lib/jaspic-api.jar`), with [...] diff --git a/runner-standalone/exclusions/validation.txt b/runner-standalone/exclusions/validation.txt index 3705bb2..e5dfb1e 100644 --- a/runner-standalone/exclusions/validation.txt +++ b/runner-standalone/exclusions/validation.txt @@ -1,213 +1,14 @@ # Jakarta Validation 3.1 TCK (validation-tck-tests:3.1.1) on Apache BVal / -# TomEE Plume snapshot, Java 21, 2026-07-18: 1,049 tests, 124 failures. -# 118 of the failures are Apache BVal XML-configuration gaps: validation.xml -# and constraint-mapping descriptors fail to parse ("Unable to parse null", -# "Failed to parse XML deployment descriptor file"), which breaks the -# xmlconfiguration test packages and every test relying on mapping files. -# The remainder are BVal method-validation and metadata gaps. All entries are -# provider (Apache BVal) results, not harness issues. +# TomEE Plume, Java 21: 1,049 tests, 0 failures, and the mandatory API +# signature test passes. No exclusions. +# +# The runner pins the JAXB RI as the jakarta.xml.bind.JAXBContextFactory in the +# server JVM (validation/src/tomee-conf/system.properties). Plume ships both +# EclipseLink MOXy and the JAXB RI; without the pin MOXy wins ServiceLoader +# discovery and rejects the namespace rewriting Apache BVal performs while +# parsing validation.xml and constraint-mapping descriptors, which broke every +# XML-configuration test. With the RI pinned all descriptor parsing succeeds. # # Format: one fully-qualified class name (excludes the whole class) or # Class#method per line. Read by the ExclusionsAnnotationTransformer TestNG # listener through -Dtck.exclusions.file (see runner-standalone/README.md). - -# BootstrapConfigurationTest: 1 failing -org.hibernate.beanvalidation.tck.tests.bootstrap.BootstrapConfigurationTest - -# BootstrapConfigurationWithValidatedExecutableTypesContainingALLAndNONETest: 1 failing -org.hibernate.beanvalidation.tck.tests.bootstrap.BootstrapConfigurationWithValidatedExecutableTypesContainingALLAndNONETest - -# BootstrapConfigurationWithValidatedExecutableTypesContainingALLTest: 1 failing -org.hibernate.beanvalidation.tck.tests.bootstrap.BootstrapConfigurationWithValidatedExecutableTypesContainingALLTest - -# BootstrapConfigurationWithValidatedExecutableTypesContainingNONETest: 1 failing -org.hibernate.beanvalidation.tck.tests.bootstrap.BootstrapConfigurationWithValidatedExecutableTypesContainingNONETest - -# BootstrapConfigurationWithValidatedExecutableTypesContainingSomeTest: 1 failing -org.hibernate.beanvalidation.tck.tests.bootstrap.BootstrapConfigurationWithValidatedExecutableTypesContainingSomeTest - -# ConfigurationTest: 3 of 4 executed methods fail -org.hibernate.beanvalidation.tck.tests.bootstrap.ConfigurationTest#testMappingsCanBeAddedViaConfiguration -org.hibernate.beanvalidation.tck.tests.bootstrap.ConfigurationTest#testNonResettableInputStreamCanBeAddedViaConfigurationAndFactoryCanBeCreatedSeveralTimes -org.hibernate.beanvalidation.tck.tests.bootstrap.ConfigurationTest#testSeveralFactoriesCanBeBuildFromOneConfiguration - -# BootstrapCustomProviderDefinedInValidationXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.bootstrap.customprovider.BootstrapCustomProviderDefinedInValidationXmlTest - -# BuiltinValidatorOverrideTest: 1 failing -org.hibernate.beanvalidation.tck.tests.constraints.builtinconstraints.BuiltinValidatorOverrideTest - -# ExecutableValidationBasedOnGlobalConfigurationTest: 1 of 2 executed methods fail -org.hibernate.beanvalidation.tck.tests.integration.cdi.executable.global.ExecutableValidationBasedOnGlobalConfigurationTest#testValidationOfConstrainedMethodOnTypeAnnotatedWithValidateOnExecutionContainingExecutableType - -# ExecutableDescriptorIgnoresValidatedExecutableXmlSettingsTest: 2 failing -org.hibernate.beanvalidation.tck.tests.metadata.ExecutableDescriptorIgnoresValidatedExecutableXmlSettingsTest - -# ExecutableValidationIgnoresValidatedExecutableXmlSettingsTest: 5 failing -org.hibernate.beanvalidation.tck.tests.methodvalidation.ExecutableValidationIgnoresValidatedExecutableXmlSettingsTest - -# MultipleValueExtractorsInValidationXmlForSameTypeAndTypeArgumentTest: 1 failing -org.hibernate.beanvalidation.tck.tests.valueextraction.declaration.MultipleValueExtractorsInValidationXmlForSameTypeAndTypeArgumentTest - -# ValueExtractorDeclaredInValidationXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.valueextraction.declaration.ValueExtractorDeclaredInValidationXmlTest - -# ValueExtractorsPrecedenceTest: 2 failing -org.hibernate.beanvalidation.tck.tests.valueextraction.declaration.ValueExtractorsPrecedenceTest - -# ClockProviderSpecifiedInValidationXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.ClockProviderSpecifiedInValidationXmlTest - -# ConstraintValidatorFactorySpecifiedInValidationXmlTest: 2 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.ConstraintValidatorFactorySpecifiedInValidationXmlTest - -# DefaultProviderSpecifiedInValidationXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.DefaultProviderSpecifiedInValidationXmlTest - -# DuplicateConfigurationTest: 1 of 4 executed methods fail -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.DuplicateConfigurationTest#testXmlConfiguredConstraintExposesCorrespondingAnnotationViaMetadata - -# MessageInterpolatorSpecifiedInValidationXmlTest: 2 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.MessageInterpolatorSpecifiedInValidationXmlTest - -# ParameterNameProviderSpecifiedInValidationXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.ParameterNameProviderSpecifiedInValidationXmlTest - -# TraversableResolverSpecifiedInValidationXmlTest: 2 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.TraversableResolverSpecifiedInValidationXmlTest - -# XmlConfigurationTest: 8 of 9 executed methods fail -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.XmlConfigurationTest#testAnnotationDefinedConstraintApplies -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.XmlConfigurationTest#testCascadingConfiguredInXml -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.XmlConfigurationTest#testClassConstraintDefinedInXml -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.XmlConfigurationTest#testElementConversionInXmlConfiguredConstraint -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.XmlConfigurationTest#testFieldConstraintDefinedInXml -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.XmlConfigurationTest#testIgnoreValidationXml -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.XmlConfigurationTest#testMappingFilesAddedViaConfigurationGetAddedToXmlConfiguredMappings -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.XmlConfigurationTest#testPropertyConstraintDefinedInXml - -# ConfigurationViaXmlAndAnnotationsTest: 2 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.ConfigurationViaXmlAndAnnotationsTest - -# ConstraintDeclarationTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.ConstraintDeclarationTest - -# DefaultSequenceDefinedInXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.DefaultSequenceDefinedInXmlTest - -# ClassLevelOverridingTest: 3 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.clazzlevel.ClassLevelOverridingTest - -# ContainerElementTypeConstraintsForFieldXmlMappingTest: 4 of 9 executed methods fail -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForFieldXmlMappingTest#canDeclareContainerElementCascadesForFieldWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForFieldXmlMappingTest#canDeclareContainerElementTypeConstraintsForFieldWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForFieldXmlMappingTest#canDeclareDeeplyNestedContainerElementTypeConstraintsForFieldWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForFieldXmlMappingTest#canDeclareNestedContainerElementTypeConstraintsForFieldWithXmlMapping - -# ContainerElementTypeConstraintsForGetterXmlMappingTest: 4 of 9 executed methods fail -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForGetterXmlMappingTest#canDeclareContainerElementCascadesForGetterWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForGetterXmlMappingTest#canDeclareContainerElementTypeConstraintsForGetterWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForGetterXmlMappingTest#canDeclareDeeplyNestedContainerElementTypeConstraintsForGetterWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForGetterXmlMappingTest#canDeclareNestedContainerElementTypeConstraintsForGetterWithXmlMapping - -# ContainerElementTypeConstraintsForParameterXmlMappingTest: 4 of 9 executed methods fail -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForParameterXmlMappingTest#canDeclareContainerElementCascadesForParameterWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForParameterXmlMappingTest#canDeclareContainerElementTypeConstraintsForParameterWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForParameterXmlMappingTest#canDeclareDeeplyNestedContainerElementTypeConstraintsForParameterWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForParameterXmlMappingTest#canDeclareNestedContainerElementTypeConstraintsForParameterWithXmlMapping - -# ContainerElementTypeConstraintsForReturnValueXmlMappingTest: 4 of 9 executed methods fail -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForReturnValueXmlMappingTest#canDeclareContainerElementCascadesForReturnValueWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForReturnValueXmlMappingTest#canDeclareContainerElementTypeConstraintsForReturnValueWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForReturnValueXmlMappingTest#canDeclareDeeplyNestedContainerElementTypeConstraintsForReturnValueWithXmlMapping -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForReturnValueXmlMappingTest#canDeclareNestedContainerElementTypeConstraintsForReturnValueWithXmlMapping - -# ContainerElementTypeIgnoreAnnotationsMappingTest: 4 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeIgnoreAnnotationsMappingTest - -# ExcludeFieldLevelAnnotationsDueToBeanDefaultsTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.fieldlevel.ExcludeFieldLevelAnnotationsDueToBeanDefaultsTest - -# FieldLevelOverridingTest: 4 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.fieldlevel.FieldLevelOverridingTest - -# IncludeFieldLevelAnnotationsDueToBeanDefaultsTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.fieldlevel.IncludeFieldLevelAnnotationsDueToBeanDefaultsTest - -# InvalidGroupConversionInFieldLevelOverridingTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.fieldlevel.InvalidGroupConversionInFieldLevelOverridingTest - -# ExcludePropertyLevelAnnotationsDueToBeanDefaultsTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.propertylevel.ExcludePropertyLevelAnnotationsDueToBeanDefaultsTest - -# IncludePropertyLevelAnnotationsDueToBeanDefaultsTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.propertylevel.IncludePropertyLevelAnnotationsDueToBeanDefaultsTest - -# InvalidGroupConversionInPropertyLevelOverridingTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.propertylevel.InvalidGroupConversionInPropertyLevelOverridingTest - -# PropertyLevelOverridingTest: 4 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.propertylevel.PropertyLevelOverridingTest - -# XmlConfiguredConstraintValidatorTest: 2 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdefinition.XmlConfiguredConstraintValidatorTest - -# CascadedValidationTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constructorvalidation.CascadedValidationTest - -# ConstructorValidationTest: 6 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constructorvalidation.ConstructorValidationTest - -# DisabledCascadedValidationTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constructorvalidation.DisabledCascadedValidationTest - -# IgnoreAnnotationsInConstructorConfigurationTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constructorvalidation.IgnoreAnnotationsInConstructorConfigurationTest - -# IgnoreAnnotationsOnConstructorTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constructorvalidation.IgnoreAnnotationsOnConstructorTest - -# GroupConversionTest: 4 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.groupconversion.GroupConversionTest - -# XmlBasedContainerElementGroupConversionValidationTest: 9 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.groupconversion.containerelement.XmlBasedContainerElementGroupConversionValidationTest - -# CascadedValidationTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.methodvalidation.CascadedValidationTest - -# DisabledCascadedValidationTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.methodvalidation.DisabledCascadedValidationTest - -# IgnoreAnnotationsInMethodConfigurationTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.methodvalidation.IgnoreAnnotationsInMethodConfigurationTest - -# IgnoreAnnotationsOnMethodTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.methodvalidation.IgnoreAnnotationsOnMethodTest - -# MethodValidationTest: 6 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.methodvalidation.MethodValidationTest - -# Version10InMappingXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.versioning.Version10InMappingXmlTest - -# Version10InValidationXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.versioning.Version10InValidationXmlTest - -# Version11InMappingXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.versioning.Version11InMappingXmlTest - -# Version11InValidationXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.versioning.Version11InValidationXmlTest - -# Version20InMappingXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.versioning.Version20InMappingXmlTest - -# Version20InValidationXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.versioning.Version20InValidationXmlTest - -# Version30InMappingXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.versioning.Version30InMappingXmlTest - -# Version30InValidationXmlTest: 1 failing -org.hibernate.beanvalidation.tck.tests.xmlconfiguration.versioning.Version30InValidationXmlTest diff --git a/runner-standalone/validation/pom.xml b/runner-standalone/validation/pom.xml index 1fa43a5..dde3653 100644 --- a/runner-standalone/validation/pom.xml +++ b/runner-standalone/validation/pom.xml @@ -92,6 +92,13 @@ <artifactId>shrinkwrap-resolver-impl-maven</artifactId> <scope>test</scope> </dependency> + <!-- Drives the mandatory Validation API signature check; the jakarta.tck + fork understands JDK 21 class files. --> + <dependency> + <groupId>jakarta.tck</groupId> + <artifactId>sigtest-maven-plugin</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> @@ -104,6 +111,81 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> + <executions> + <!-- Stage the uber API jar the TomEE distribution ships so the + signature test checks the jakarta.validation packages actually + deployed, not the TCK's own copy. --> + <execution> + <id>stage-tomee-api-jar</id> + <phase>generate-test-resources</phase> + <goals><goal>unpack</goal></goals> + <configuration> + <skip>${tck.standalone.skip}</skip> + <artifactItems> + <artifactItem> + <groupId>org.apache.tomee</groupId> + <artifactId>apache-tomee</artifactId> + <version>${tomee.version}</version> + <classifier>${tomee.classifier}</classifier> + <type>zip</type> + <outputDirectory>${project.build.directory}/tomee</outputDirectory> + <includes>**/lib/jakartaee-api-*.jar</includes> + </artifactItem> + </artifactItems> + </configuration> + </execution> + <!-- The TCK ships the reference API signatures at its jar root. --> + <execution> + <id>stage-validation-sig</id> + <phase>generate-test-resources</phase> + <goals><goal>unpack</goal></goals> + <configuration> + <skip>${tck.standalone.skip}</skip> + <artifactItems> + <artifactItem> + <groupId>jakarta.validation</groupId> + <artifactId>validation-tck-tests</artifactId> + <version>${validation.tck.version}</version> + <type>jar</type> + <outputDirectory>${project.build.directory}/sig</outputDirectory> + <includes>validation-api-jdk17.sig</includes> + </artifactItem> + </artifactItems> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <!-- The uber API jar carries every Jakarta EE spec package; the + signature check must see only jakarta.validation, so extract that + subtree into its own directory. --> + <execution> + <id>extract-validation-api-classes</id> + <phase>generate-test-resources</phase> + <goals><goal>run</goal></goals> + <configuration> + <skip>${tck.standalone.skip}</skip> + <target> + <path id="tomee-api-jar"> + <fileset dir="${project.build.directory}/tomee"> + <include name="**/lib/jakartaee-api-*.jar"/> + </fileset> + </path> + <pathconvert property="validation.sig.api.jar" + refid="tomee-api-jar"/> + <unzip src="${validation.sig.api.jar}" + dest="${project.build.directory}/api-classes"> + <patternset> + <include name="jakarta/validation/**"/> + </patternset> + </unzip> + </target> + </configuration> + </execution> + </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> @@ -164,6 +246,32 @@ </dependency> </dependencies> + <build> + <plugins> + <!-- Mandatory Validation API signature test. The TCK ships the + reference signatures as validation-api-jdk17.sig at the root of + validation-tck-tests; the jakarta.validation packages checked + are the ones the staged TomEE uber API jar carries. --> + <plugin> + <groupId>jakarta.tck</groupId> + <artifactId>sigtest-maven-plugin</artifactId> + <version>${sigtest.maven.plugin.version}</version> + <executions> + <execution> + <id>validation-api-signature-check</id> + <phase>test</phase> + <goals><goal>check</goal></goals> + <configuration> + <sigfile>${project.build.directory}/sig/validation-api-jdk17.sig</sigfile> + <packages>jakarta.validation</packages> + <classes>${project.build.directory}/api-classes</classes> + <release>17</release> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> </profile> </profiles> </project> diff --git a/runner-standalone/validation/src/tomee-conf/system.properties b/runner-standalone/validation/src/tomee-conf/system.properties index 6e42e6c..fa58353 100644 --- a/runner-standalone/validation/src/tomee-conf/system.properties +++ b/runner-standalone/validation/src/tomee-conf/system.properties @@ -14,3 +14,11 @@ openejb.classloader.forced-skip=org.apache.derby. # The Jakarta Validation TCK reads the provider under test on the server side. validation.provider=org.apache.bval.jsr.ApacheValidationProvider + +# Plume ships both EclipseLink MOXy and the JAXB RI on the server classpath. +# EclipseLink registers a jakarta.xml.bind.JAXBContextFactory service and wins +# ServiceLoader discovery, but MOXy rejects the namespace rewriting Apache BVal +# performs while parsing validation.xml and constraint-mapping descriptors. Pin +# the JAXB RI so BVal's XML descriptor parsing uses the implementation it needs +# (JAXBContext consults this system property before the ServiceLoader). +jakarta.xml.bind.JAXBContextFactory=org.glassfish.jaxb.runtime.v2.JAXBContextFactory
