jakartaee / jakartaee/rest

Portable SPI for automatically registering Client Features

Open
#596 40 comments 0 reactions 1 assignee Claimed by @mkarg View on GitHub
spec
Dominant language
Java
Stars
400
Forks
143
PR merge metrics
No merged PRs in 30d

Description

Presently there is no way for a Client's `Feature` to be registered automatically. note that the spec doesn't really different the `Feature` interface between Client & Server runtimes. Based on on-list discussion, it seems like there is some notion of automatically registered Client & Server providers, based on what's available. I suspect what most implementations do is:

- Bake it into their core runtime [OpenLiberty for example](https://github.com/OpenLiberty/open-liberty/blob/695eeb21254fcba44bf2d227014acbb169c72db3/dev/com.ibm.ws.jaxrs.2.0.client/src/com/ibm/ws/jaxrs20/client/JAXRSClientImpl.java)
- Provide vendor specific integration patterns (see the OpenLiberty example, [RestEasy Example](https://github.com/resteasy/Resteasy/blob/79d0a19af75410c4d09fbf32f1f1e3de425e2e8a/resteasy-jaxrs/src/main/java/org/jboss/resteasy/plugins/providers/RegisterBuiltin.java) (Jersey has this pattern as well, but since their repo is moving don't want to create a bad link)

Therefore, I would like to request that there be some kind of SPI that allows a Client to be configured in a platform agnostic way, so that I don't need to write integration code for RestEasy, Jersey and CXF separately (plus whatever differences may exist in actual server runtimes). The approach RestEasy takes makes a lot of sense, but doesn't give a way to separate Client & Server runtimes.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.