jungm opened a new pull request, #2877:
URL: https://github.com/apache/tomee/pull/2877

   Jakarta REST requires `Feature` and `DynamicFeature` implementations 
declared in `META-INF/services` to be registered through the JDK 
`ServiceLoader` at deploy time ("Services", Providers / Lifecycle and 
Environment).
   
   CXF does not implement this lookup itself — it relies on the container to 
hand it already resolved providers, which is why the CXF TCK run stays green on 
GlassFish. TomEE assembles its provider list on its own, so features packaged 
this way never registered.
   
   ## Changes
   
   - `CxfRsHttpListener` scans both SPIs while assembling the provider list.
   - Service loading is skipped when the `Application` maps 
`jakarta.ws.rs.loadServices` to `Boolean.FALSE`, as the spec mandates, and the 
existing `cxf.jaxrs.skip-provider-scanning` property is still honoured.
   - Entries are loaded one at a time so a single broken descriptor entry is 
logged and skipped instead of discarding the remaining providers of that type.
   - Discovered instances flow through the existing `providers(...)` path, so 
the `@ConstrainedTo` and deactivation checks still apply.
   - Drops the now-passing TCK exclusion for 
`jaxrs31/spec/extensions/JAXRSClientIT`.
   
   ## Testing
   
   - New `ServiceLoaderProviderDiscoveryTest` (8 tests) exercises discovery 
through a throwaway `URLClassLoader`, so it does not register these features 
into other tests in the module. Each assertion was confirmed to fail when the 
corresponding production change is reverted.
   - `ee.jakarta.tck.ws.rs.jaxrs31.spec.extensions.JAXRSClientIT` passes 2/2 
unexcluded against a rebuilt TomEE plus distribution; the wider `jaxrs31.**` 
slice passes 4/4.
   - Full `openejb-cxf-rs` suite: 123 tests, the only failure being 
`EJBExceptionMapperTest.security`, which fails identically on a clean checkout 
of `main`.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to