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 d68146201ca0796af74629910a8672eb41ebff31 Author: Markus Jung <[email protected]> AuthorDate: Sun Jul 19 01:51:56 2026 +0200 Reconcile the triage docs and fix stale runner cross-references --- KNOWN_ISSUES.md | 35 +++++++++++++++++++++-------------- runner-standalone/README.md | 22 ++++++++++++---------- 2 files changed, 33 insertions(+), 24 deletions(-) diff --git a/KNOWN_ISSUES.md b/KNOWN_ISSUES.md index 8508bd9..f0e2d51 100644 --- a/KNOWN_ISSUES.md +++ b/KNOWN_ISSUES.md @@ -69,7 +69,7 @@ Fixes belong in Apache TomEE (or Tomcat); each removes exclusion entries. fail to start and every method in each class errors on the missing deployment URL. 2 class entries (12 methods) in [servlet.txt](runner-standalone/exclusions/servlet.txt). -4. **RESTful Web Services 4.0** — REST 3.1 `META-INF/services` discovery of +3. **RESTful Web Services 4.0** — REST 3.1 `META-INF/services` discovery of `Feature`/`DynamicFeature` is not implemented (TOMEE-4321, CXF-9005), and a request to a path only matching the superclass `@Path` answers 405 where the spec requires 404. 3 entries in @@ -82,7 +82,7 @@ Fixes belong in Apache TomEE (or Tomcat); each removes exclusion entries. conduit's no-entity handling, tracked upstream as [CXF-9039](https://issues.apache.org/jira/browse/CXF-9039), otherwise fails the `getLength()`/`hasEntity()` assertions. -5. **Faces (Mojarra on TomEE)** — five distinct integration behaviors, all in +4. **Faces (Mojarra on TomEE)** — five distinct integration behaviors, all in [faces.txt](runner-standalone/exclusions/faces.txt): - *faces-config parsing (product gap):* TomEE's `faces-config.xml` unmarshaller (`ReadDescriptors.readFacesConfig`) rejects the unexpected @@ -111,20 +111,23 @@ Fixes belong in Apache TomEE (or Tomcat); each removes exclusion entries. inline "Init called" script a different number of times than expected; the TCK source itself notes this appears under Chrome and passes under HtmlUnit (`Issue2162IT`). -6. **Jakarta Security** — the BASIC mechanism answers 401 for valid +5. **Jakarta Security** — the BASIC mechanism answers 401 for valid credentials in the decorated/custom-handler variants, and both OpenID default modules fail token validation. - [security.txt](runner-standalone/exclusions/security.txt). -7. **Persistence integration** — undeploy calls `close()` on an + [security.txt](runner-standalone/exclusions/security.txt). The runner drives + the reactor's modern Arquillian app modules plus the signature test; the + reactor's `old-tck` module (~68 legacy JavaTest tests) is not wired into + the runner, so the recorded totals cover the modern suite only. +6. **Persistence integration** — undeploy calls `close()` on an already-closed `EntityManagerFactory` (fails the `entityManagerFactoryCloseExceptions` vehicles), and the Jakarta Persistence 3.2 CDI qualifier beans (`EntityManagerFactory`/ `EntityManager` etc. from `persistence.xml`) are not registered (`ServletEMLookupTest`). Affects Plume and webprofile alike. -8. **Jakarta Tags TLD registration** — the `jakarta.tags.*` URIs of the +7. **Jakarta Tags TLD registration** — the `jakarta.tags.*` URIs of the replacement Jakarta Tags 3.0 jar are not exposed to applications; all 50 Tags classes plus the EJB-Lite JSP vehicles fail as collateral. -9. **Transactions — cross-request `UserTransaction` state leakage across +8. **Transactions — cross-request `UserTransaction` state leakage across pooled servlet requests.** A `UserTransaction` a servlet/jsp request leaves in a non-clean state poisons the next request served on the same pooled Tomcat exec thread; the victim sees an `IllegalStateException` that is not @@ -145,14 +148,14 @@ Fixes belong in Apache TomEE (or Tomcat); each removes exclusion entries. [transactions.txt](runner-standalone/exclusions/transactions.txt). The Platform catalog additionally shows CDI `@Transactional` interceptors failing propagation, rollback-rule, and `TransactionScoped` assertions. -10. **Enterprise Beans** — timer callbacks expose incomplete/not-retried +9. **Enterprise Beans** — timer callbacks expose incomplete/not-retried transactions, `java:comp` is mutable where the spec requires `OperationNotSupportedException`, and failed CDI/EJB deployments leak deployment IDs (`DuplicateDeploymentIdException` in later apps). -11. **webprofile ZIP signature leak** — the combined `jakartaee-api` jar +10. **webprofile ZIP signature leak** — the combined `jakartaee-api` jar exposes Jakarta Batch and Messaging packages although `javaee.level=web` does not declare them; strip them or declare and certify them. -12. **WebSocket 2.2 extension advertising (Tomcat)** — the server-side +11. **WebSocket 2.2 extension advertising (Tomcat)** — the server-side configurator reports the extensions the client requested and negotiated. TomEE's client-side WebSocket container (Tomcat's `tomcat-websocket`) always advertises its built-in `permessage-deflate` extension in the @@ -165,7 +168,7 @@ Fixes belong in Apache TomEE (or Tomcat); each removes exclusion entries. and pass: the runner's Arquillian extension tolerates the deployment failure so each client probe still runs. [websocket.txt](runner-standalone/exclusions/websocket.txt). -13. **Bean Validation XML config broken on stock Plume** — the Plume +12. **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 @@ -235,7 +238,7 @@ Need triage/fixes in the upstream projects TomEE ships. `tck/jsonb-standalone`), so BigDecimal/BigInteger serialize as the JSON numbers §3.4.1 requires instead of Johnzon's precision-preserving string default. JSON-P (johnzon-core) passes its TCK completely. -6. **OpenJPA** (webprofile classifier only) — 249 persistence classes fail; +5. **OpenJPA** (webprofile classifier only) — 249 persistence classes fail; none reproduce on Plume/EclipseLink, tracked partly as [OPENJPA-2940](https://issues.apache.org/jira/browse/OPENJPA-2940). Kept visible via the `persistence-javatest (webprofile)` CI branch. @@ -262,8 +265,12 @@ and the standalone suites `annotations`, `di`, `el`, `concurrency`, `data`, `servlet`, `pages`, `rest`, `validation`, `websocket`, `jsonp`, `jsonb`, `debugging`, `persistence`, `transactions`, `cdi`, `cdi-ee`, `security`, `authentication`, `faces-old` — all with default exclusions, all expected -green (a red JavaTest run fails the `faces-old` and `transactions` builds -through their `verify-tck-result` step). The `junit`/archive globs also +green. Each runner fails its own build on a red result through a +`verify-tck-result` step: the JavaTest runners (`faces-old`, `transactions`) +check the harness exit code, and the invoker-driven source reactors +(`security`, `authentication`, `faces`) aggregate the inner surefire/failsafe +reports and fail on any failure, error, or module that built but never ran +its tests. The `junit`/archive globs also ingest the surefire/failsafe reports inside the extracted TCK reactors that the source-reactor runners drive through the Maven invoker, plus the JavaTest report directories. The modern `faces` reactor joins once its diff --git a/runner-standalone/README.md b/runner-standalone/README.md index 0267d36..52e1d3b 100644 --- a/runner-standalone/README.md +++ b/runner-standalone/README.md @@ -12,13 +12,15 @@ runner-standalone/run-standalone-suite.sh concurrency ``` The Derby port is overridable everywhere through `-Dtck.derby.port`; the -`concurrency`, `data`, `servlet`, `validation`, `cdi`, `cdi-ee`, `pages`, -`rest`, `websocket`, `transactions`, and `faces-old` runners additionally -accept `-Dtomee.http.port`, `-Dtomee.https.port`, and `-Dtomee.shutdown.port` +`concurrency`, `data`, `servlet`, `pages`, `rest`, `websocket`, +`transactions`, and `faces-old` runners additionally accept +`-Dtomee.http.port`, `-Dtomee.https.port`, and `-Dtomee.shutdown.port` (`transactions` and `faces-old` also `-Dtck.harness.log.port` for their -JavaTest listeners), so they can run next to another harness instance (the -source-reactor runners security, authentication, and faces still assume the -fixed TomEE ports). +JavaTest listeners), so they can run next to another harness instance. The +`validation`, `cdi`, and `cdi-ee` runners parameterize only the HTTP and +shutdown ports (`-Dtomee.http.port`/`-Dtomee.shutdown.port`); their +arquillian.xml pins no `httpsPort`. The source-reactor runners security, +authentication, and faces still assume the fixed TomEE ports. Overriding the ports matters beyond convenience: the Arquillian remote adapter attaches to whatever server already answers on the configured http port, so a leftover or foreign TomEE on 8080 silently absorbs the @@ -58,7 +60,7 @@ derived from; with the default exclusions applied these suites run green. | 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, 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: 737 tests, 0 failures, 3 errors** (2026-07-18) against Tomcat's WebSocket implementation, driven through the `tomcat-websocket` client container; the signature test passes. The negative-deployment classes run and pass: an invalid server endpoint aborts the whole webapp deployment as the spec requires, and the runner's Arquillian extension (`NegativeDeploymentToleranceObserver`) [...] -| 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 [...] +| 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 registers the TCK's test `AuthConfigProvider` under Tomcat's JASPIC app-context naming (`Catalina/localhost /spitests_servlet_web`), so `ServletProfileSPITest` runs against Tomcat's `AuthConfigFactory` and passes 56 of its 5 [...] | Faces 4.1 | Source reactor zip 4.1.2 | `faces` (Maven module) | **Runs: modern Arquillian modules (faces22/23/40/41) — 327 tests, 45 failures + 6 errors** (2026-07-18) on Plume's Mojarra; the failsafe rerun mechanism inflates those totals, covering 10 distinct failing classes, all in `exclusions/faces.txt`. One is a TomEE product gap (faces-config.xml unmarshaller rejecting the nonstandard *https* `xsi:schemaLocation`, `Spec1760IT`); the rest are Mojarra/TomEE integration behaviors — F [...] | Faces 4.1 (legacy old-tck) | Source reactor zip 4.1.2 (old-tck built from bundled sources) | `faces-old` (Maven module) | **Passes 5,391/5,391 (standalone mode, no exclusions)** (2026-07-18). The recorded full run shows 5 failures in `htmloutcometargetbutton`, all from a foreign server answering port 8080 mid-run; they pass on re-run against TomEE. The JavaTest half deploys through the TCK's own `tomcat` handler (WAR copy into `webapps/`) against a TomEE instance the runner provisions [...] @@ -92,10 +94,10 @@ derived from; with the default exclusions applied these suites run green. - Container-based runners inherit the TomEE overlay, Derby, and certificate lifecycle from the shared parent; `src/tomee-conf/` files replace same-named files from `environment/tomee/conf`. -- Runners that need no server (annotations, di, jsonp, jsonb, debugging) +- Runners that need no server (annotations, di, el, jsonp, jsonb, debugging) set `tck.standalone.container.skip=true` and run in the local JVM; the provider-level suites (jsonp, jsonb) test the exact Johnzon version the - TomEE distribution bundles, and debugging drives the distribution's own - Jasper compiler offline. + TomEE distribution bundles, el drives Tomcat's Jasper EL directly, and + debugging drives the distribution's own Jasper compiler offline. - TestNG-based TCKs (cdi, cdi-ee, validation) force the surefire TestNG provider; JUnit-based ones use the JUnit Platform or JUnit 4 provider.
