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]