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 db34d69afcc4af5a4d2b212898dc09e701a07e43
Author: Markus Jung <[email protected]>
AuthorDate: Sun Jul 19 01:20:22 2026 +0200

    Bump the Jakarta Data TCK to the 1.0.1 certification release
    
    Pin jakarta.data-tck 1.0.1, pass jakarta.tck.database.type=RELATIONAL to the
    container JVM and surefire, and define java:comp/DefaultDataSource 
explicitly
    on embedded Derby so the persistence unit no longer auto-links to the 
network
    Derby datasources. Re-derive exclusions/data.txt from a 1.0.1 baseline 
(same 36
    EntityTests methods) with per-feature-group attribution.
---
 KNOWN_ISSUES.md                                    | 18 +++--
 runner-standalone/README.md                        |  2 +-
 runner-standalone/data/pom.xml                     | 18 ++++-
 .../data/src/test/resources/arquillian.xml         |  6 +-
 .../data/src/tomee-conf-filtered/tomee.xml         | 11 +++
 runner-standalone/exclusions/data.txt              | 88 ++++++++++++++--------
 6 files changed, 99 insertions(+), 44 deletions(-)

diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md
index 1f4a379..1478563 100644
--- a/KNOWN_ISSUES.md
+++ b/KNOWN_ISSUES.md
@@ -24,7 +24,7 @@ Detail lives next to each runner:
 | annotations | passes | — | — |
 | di | 50/50 pass | — | — |
 | concurrency | 197 tests, 0 F + 0 E (14 TCK skips), signature passes | — | — |
-| data | 99 tests, 7 F + 29 E | 36 methods (EntityTests only) | 
openejb-jakarta-data query generation |
+| data | 99 tests, 7 F + 29 E | 36 methods (EntityTests only) | 
openejb-jakarta-data query generation (cursored pagination, JDQL translation, 
derived-query/ignoreCase, static-metamodel + sort ordering, update queries) |
 | servlet | 1,706 tests, 12 E | 2 classes (12 methods) | TomEE aborts context 
startup on a missing referenced servlet/filter class |
 | pages | 682/682 pass | — | — (needs the runner's spec-default encoding 
overlay) |
 | rest | 2,803 tests, 2 F + 1 E | 3 tests | Feature/DynamicFeature 
`META-INF/services` discovery (TOMEE-4321/CXF-9005) + 405-vs-404 matching |
@@ -50,11 +50,17 @@ Fixes belong in Apache TomEE (or Tomcat); each removes 
exclusion entries.
 
 1. **Jakarta Data query generation (openejb-jakarta-data)** — repositories
    materialize and inject correctly; the gaps sit in the queries the
-   provider generates for 36 `standalone.entity.EntityTests` methods:
-   `ignoreCase` state-field paths that EclipseLink cannot resolve,
-   literal/`NOT`/`OR`/parenthesis handling in `@Query` JDQL, empty/partial
-   query generation, cursored pagination, and static-metamodel sorts. All
-   entries in [data.txt](runner-standalone/exclusions/data.txt).
+   provider generates for 36 `standalone.entity.EntityTests` methods (Data
+   TCK 1.0.1), grouped by feature: cursored pagination returns a plain
+   `PageRecord` where the repository declares `CursoredPage` (6);
+   literal/`NOT`/`OR`/parenthesis/empty/partial `@Query` JDQL translates to
+   malformed EclipseLink JPQL (8); derived-query bodies and `ignoreCase`
+   state-field paths fail to compile (6); static-metamodel and find-first
+   derived methods do not resolve (4); `Sort`/`Order`/`PageRequest` sort
+   precedence — including the 1.0.1 enum-ordinal sort — is not applied and
+   multi-column projections come back as `Object[]` (10); and update `@Query`
+   methods run as selects (2). All entries, per group, in
+   [data.txt](runner-standalone/exclusions/data.txt).
 2. **Servlet 6.1 deployment strictness** — TomEE aborts the whole context
    startup when a war references a servlet or filter class it does not
    package: the pluggability `RegistrationTests` deployment declares filter
diff --git a/runner-standalone/README.md b/runner-standalone/README.md
index 2ca5eec..13c7b2d 100644
--- a/runner-standalone/README.md
+++ b/runner-standalone/README.md
@@ -52,7 +52,7 @@ derived from; with the default exclusions applied these 
suites run green.
 | CDI 4.1 (core) + Interceptors 2.2 (non-EJB half) | 
`jakarta.enterprise:cdi-tck-core-impl:4.1.0` | `cdi` | **Runs: 1,388 tests, 81 
failures, 82 skipped; mandatory CDI API signature test (`cdi-api-jdk17.sig`) 
passes** (2026-07-19). The failures cluster in the CDI 4.1 
build-compatible-extensions feature (build-compatible extensions plus the 
Method Invokers the TCK registers through them) — OpenWebBeans 4.1 ships no 
`BuildServices` provider — to triage upstream. The runner carries the apac [...]
 | CDI 4.1 (EE integration) + Interceptors 2.2 (EJB half) | 
`jakarta.tck:cdi-tck-ee-impl:11.0.3` | `cdi-ee` | **Runs: 1,829 tests, 106 
failures, 92 skipped** (2026-07-19, needs the 4 GB server heap configured in 
its arquillian.xml). Same OpenWebBeans 4.1 build-compatible-extensions gap as 
the core suite plus EE-integration issues; carries the same OpenWebBeans 
overlay and porting SPI |
 | Concurrency 3.1 | 
`jakarta.enterprise:jakarta.enterprise.concurrent-tck:3.1.1` | `concurrency` | 
**Passes 197 tests, 0 failures, 0 errors, 14 skipped (the TCK's own skips), 
signature test included, no exclusions** (2026-07-18). The runner sets 
`openejb.environment.default=true` (declares the `java:comp/Default*` 
resource-env-refs the TCK injects via `@Resource(lookup=…)`; without it they 
silently inject `null`), adds a `beans.xml` per WAR so OWB activates the TCK's 
`@Priority` `Asynchr [...]
-| Data 1.0 | `jakarta.data:jakarta.data-tck:1.0.0` | `data` | **Runs: 99 
tests, 7 failures, 29 errors** (2026-07-18), all in 
`standalone.entity.EntityTests`; the other six classes pass completely, 
signature test included. The runner's archive processor completes the TCK 
deployments the way a Jakarta Data runtime is expected to (adds the missing 
sibling classes, a `persistence.xml` on `java:comp/DefaultDataSource`, and a 
`beans.xml` with `bean-discovery-mode="all"` so `@Repository` interf [...]
+| Data 1.0 | `jakarta.data:jakarta.data-tck:1.0.1` | `data` | **Runs: 99 
tests, 7 failures, 29 errors**, all in `standalone.entity.EntityTests`; the 
other six classes pass completely, signature test included. Runs the 1.0.1 
certification service release, which gates keyword-support assertions on 
`jakarta.tck.database.type=RELATIONAL` (set on the container JVM via 
`catalina_opts`) and rewrites the enum-sort entity. The runner's archive 
processor completes the TCK deployments the way a Jak [...]
 | RESTful Web Services 4.0 | EFTL zip (installed as 
`jakarta.ws.rs:jakarta-restful-ws-tck:4.0.1`) | `rest` | **Runs: 2,803 tests, 2 
failures, 1 error, 128 skipped without exclusions** (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. The runner 
sets `openejb.jaxrs.fail-on-constrainedto=false` in the server JVM 
(spec-required tolerance of bundled `@ConstrainedTo(CLIENT)` pr [...]
 | Servlet 6.1 | EFTL zip (installed as 
`jakarta.tck:servlet-tck-runtime:6.1.0`) | `servlet` | **Runs: 1,706 tests, 12 
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), cross-context 
dispatch is enabled and the STRICT_SERVLET_COMPLIANCE subset (`alwaysAcce [...]
 | 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/ [...]
diff --git a/runner-standalone/data/pom.xml b/runner-standalone/data/pom.xml
index 5fc5d34..1b7d746 100644
--- a/runner-standalone/data/pom.xml
+++ b/runner-standalone/data/pom.xml
@@ -24,7 +24,10 @@
   </description>
 
   <properties>
-    <data.tck.version>1.0.0</data.tck.version>
+    <!-- 1.0.1 is the current service release required for certification; it
+         adds the RELATIONAL jakarta.tck.database.type gate and the enum-sort
+         rewrite (NaturalNumber @Enumerated(STRING) + numTypeOrdinal). -->
+    <data.tck.version>1.0.1</data.tck.version>
     <!-- Reviewed known-gap exclusions; point at exclusions/none.txt for a
          full baseline run. -->
     
<tck.exclusions.file>${project.basedir}/../exclusions/data.txt</tck.exclusions.file>
@@ -76,8 +79,10 @@
       <scope>test</scope>
     </dependency>
     <!-- The generated persistence unit runs on java:comp/DefaultDataSource,
-         which TomEE materializes on embedded Derby; the engine jar is not
-         part of the shared client-only Derby staging. -->
+         which src/tomee-conf-filtered/tomee.xml defines as an explicit
+         embedded-Derby resource; that engine jar is staged into
+         tomee-overlay/lib here (the shared parent stages only the Derby
+         client). -->
     <dependency>
       <groupId>org.apache.derby</groupId>
       <artifactId>derby</artifactId>
@@ -195,6 +200,13 @@
           <systemPropertyVariables>
             <jakarta.tck.profile>core</jakarta.tck.profile>
             <jakarta.tck.skip.deployment>false</jakarta.tck.skip.deployment>
+            <!-- Data 1.0.1 gates its keyword-support assertions on the
+                 database type; RELATIONAL matches the Derby-backed default
+                 persistence unit. The in-container EntityTests read this from
+                 the container JVM (set via arquillian.xml catalina_opts); it
+                 is repeated here for the client-side deployment/signature
+                 executions. -->
+            <jakarta.tck.database.type>RELATIONAL</jakarta.tck.database.type>
             <jimage.dir>${project.build.directory}/jimage</jimage.dir>
             
<signature.sigTestClasspath>${data.sig.api.jar}</signature.sigTestClasspath>
           </systemPropertyVariables>
diff --git a/runner-standalone/data/src/test/resources/arquillian.xml 
b/runner-standalone/data/src/test/resources/arquillian.xml
index cd93a6c..f27a702 100644
--- a/runner-standalone/data/src/test/resources/arquillian.xml
+++ b/runner-standalone/data/src/test/resources/arquillian.xml
@@ -26,7 +26,11 @@
       <property name="simpleLog">true</property>
       <!-- The Data TCK relies on auto-detected JUnit extensions inside the
            container and extracts the JDK image for its signature test. -->
-      <property 
name="catalina_opts">-Djunit.jupiter.extensions.autodetection.enabled=true 
-Djimage.dir=${project.build.directory}/jimage 
--add-exports=java.base/jdk.internal.vm.annotation=ALL-UNNAMED</property>
+      <!-- jakarta.tck.database.type gates Data 1.0.1's keyword-support
+           assertions; EntityTests runs in-container and reads it from the
+           container JVM. RELATIONAL matches the embedded-Derby default
+           persistence unit. -->
+      <property 
name="catalina_opts">-Djunit.jupiter.extensions.autodetection.enabled=true 
-Djimage.dir=${project.build.directory}/jimage 
-Djakarta.tck.database.type=RELATIONAL 
--add-exports=java.base/jdk.internal.vm.annotation=ALL-UNNAMED</property>
       <!-- Declares the java:comp/Default* resource-env-refs (incl.
            DefaultDataSource used by the generated persistence.xml); without
            it @Resource(lookup="java:comp/Default...") injections stay null
diff --git a/runner-standalone/data/src/tomee-conf-filtered/tomee.xml 
b/runner-standalone/data/src/tomee-conf-filtered/tomee.xml
index e76f9fa..abc8467 100644
--- a/runner-standalone/data/src/tomee-conf-filtered/tomee.xml
+++ b/runner-standalone/data/src/tomee-conf-filtered/tomee.xml
@@ -4,6 +4,17 @@
      overlay tomee.xml so the TCK's jdbc/DataTCK datasource is available in
      addition to the standard TCK datasources. -->
 <openejb>
+  <!-- The generated persistence unit's <jta-data-source> is
+       java:comp/DefaultDataSource. Define it explicitly on embedded Derby
+       (engine jar staged into tomee-overlay/lib by the runner) so the
+       auto-link resolves here instead of falling through to the first
+       network-Derby DataSource below. It is listed first so TomEE's
+       first-matching-DataSource auto-link also picks it. -->
+  <Resource id="DefaultDataSource" type="DataSource">
+    JdbcDriver org.apache.derby.jdbc.EmbeddedDriver
+    JdbcUrl jdbc:derby:${project.build.directory}/derby/dataTckDB;create=true
+  </Resource>
+
   <Resource id="jdbc/DB1" type="DataSource">
     JdbcDriver org.apache.derby.jdbc.ClientDriver
     JdbcUrl jdbc:derby://localhost:${tck.derby.port}/derbyDB;create=true
diff --git a/runner-standalone/exclusions/data.txt 
b/runner-standalone/exclusions/data.txt
index cf3de06..33c258b 100644
--- a/runner-standalone/exclusions/data.txt
+++ b/runner-standalone/exclusions/data.txt
@@ -1,8 +1,8 @@
-# Jakarta Data 1.0 TCK (jakarta.data:jakarta.data-tck:1.0.0, web+persistence
-# groups) on the TomEE Plume snapshot, Java 21, 2026-07-18: 99 tests, 7
-# failures, 29 errors, all in standalone.entity.EntityTests. The other six
-# classes (CDI, persistence-entity, signature, servlet example, transaction,
-# validation) pass completely.
+# Jakarta Data 1.0 TCK (jakarta.data:jakarta.data-tck:1.0.1, web+persistence
+# groups) on the TomEE Plume snapshot, Java 21: 99 tests, 7 failures, 29
+# errors, all in standalone.entity.EntityTests. The other six classes (CDI,
+# persistence-entity, signature, servlet example, transaction, validation)
+# pass completely.
 #
 # The runner's DataTckArchiveProcessor completes the TCK deployments the
 # way the Jakarta Data runtime is expected to (a persistence.xml on
@@ -10,53 +10,75 @@
 # bean-discovery-mode="all" so @Repository interfaces are scanned and
 # materialized; same as apache/tomee tck/data-standalone), the container
 # declares the java:comp/Default* refs via openejb.environment.default=true,
-# and the Derby engine jar is staged for the embedded DefaultDataSource.
-# Removing any of these fails whole deployments or nulls every repository
-# injection.
+# and src/tomee-conf-filtered/tomee.xml defines DefaultDataSource explicitly
+# on embedded Derby (engine jar staged into tomee-overlay/lib). Removing any
+# of these fails whole deployments or nulls every repository injection.
 #
-# The 36 excluded EntityTests methods are openejb-jakarta-data
-# gaps in query generation/translation for the unmapped-superclass entity:
-# ignoreCase state-field paths, literal/parenthesis/NOT/OR handling in
-# @Query JDQL, cursored pagination, empty/partial queries, and static
-# metamodel sorts.
+# Data 1.0.1 is the certification service release; it adds the RELATIONAL
+# jakarta.tck.database.type gate (passed to the container JVM) and rewrites
+# the enum-sort entity (NaturalNumber @Enumerated(STRING) + numTypeOrdinal,
+# findByIdBetween...OrderByNumTypeOrdinalAsc). The failing set is identical
+# to 1.0.0: the same 36 EntityTests methods, attributed below to the
+# openejb-jakarta-data query-generation gap they exercise.
 #
 # Format: maven-surefire excludesFile patterns, applied through
 # -Dtck.exclusions.file (see runner-standalone/README.md).
 
-# EntityTests: 7 failures + 29 errors
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testBasicRepository
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testCommonInterfaceQueries
+# Cursored pagination: the provider returns a plain PageRecord where the
+# repository declares CursoredPage (ClassCastException). 6 methods.
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testCursoredPageOf7FromCursor
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testCursoredPageOfNothing
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testCursoredPageWithoutTotalOf9FromCursor
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testCursoredPageWithoutTotalOfNothing
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testDataRepository
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testEmptyQuery
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testEmptyResultException
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFindAllWithPagination
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFindFirst
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFindFirst3
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFindList
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFindPage
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFirstCursoredPageOf8AndNextPages
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFirstCursoredPageWithoutTotalOf6AndNextPages
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testIgnoreCase
+
+# @Query JDQL translation: literal/NOT/OR/parenthesis/empty/partial-select
+# clauses translate to malformed EclipseLink JPQL (Syntax error parsing).
+# 8 methods.
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testCommonInterfaceQueries
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testEmptyQuery
 **/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testLiteralInteger
 **/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testLiteralTrue
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testMixedSort
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testNonUniqueResultException
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testNot
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testOrderByHasPrecedenceOverPageRequestSorts
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testOrderByHasPrecedenceOverSorts
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testPartialQuerySelectAndOrderBy
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testPrimaryEntityClassDeterminedByLifeCycleMethods
 **/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testQueryWithNot
 **/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testQueryWithNull
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testQueryWithOr
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testQueryWithParenthesis
+
+# Derived-query generation on the unmapped-superclass entity: ignoreCase
+# state-field paths and count/exists/select bodies EclipseLink cannot
+# compile (Problem compiling [SELECT e FROM ...]). 6 methods.
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testDataRepository
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testEmptyResultException
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFindPage
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testIgnoreCase
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testPrimaryEntityClassDeterminedByLifeCycleMethods
 **/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testSingleEntity
+
+# Static-metamodel / find-first derived methods: the provider cannot resolve
+# the generated repository method (Cannot resolve method: findFirst...). 4
+# methods.
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFindFirst
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFindFirst3
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testStaticMetamodelDescendingSorts
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testStaticMetamodelDescendingSortsPreGenerated
+
+# Sort ordering: Sort/Order/PageRequest sort precedence (including the 1.0.1
+# enum-ordinal sort) is not applied, so the result order differs from the
+# spec's expected sequence, and multi-column projections come back as
+# Object[] instead of the entity type. 10 methods.
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testBasicRepository
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFindAllWithPagination
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testFindList
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testMixedSort
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testNonUniqueResultException
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testNot
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testOrderByHasPrecedenceOverPageRequestSorts
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testOrderByHasPrecedenceOverSorts
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testQueryWithOr
+**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testVarargsSort
+
+# Update @Query methods: the generated statement is executed as a select, so
+# getSingleResult() rejects it (incorrect query type). 2 methods.
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testUpdateQueryWithWhereClause
 
**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testUpdateQueryWithoutWhereClause
-**/ee/jakarta/tck/data/standalone/entity/EntityTests.java#testVarargsSort

Reply via email to