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

Reply via email to