I assume I can answer it myself. I need to add @JaxrsApplicationSelect("(osgi.jaxrs.name=*)") to the extension, so it is available for every application and not the default only.
=== commit cfead5b98c980fc3dde8db7881518d10af923190 Author: Carlos Sierra <csie...@apache.org> Date: Thu Jan 31 09:44:03 2019 +0100 [ARIES-1884] Only register to default application by default Extensions without application select property should only register to default application, instead of registering to all available applications as it was coded === Am Di., 13. Aug. 2019 um 19:36 Uhr schrieb Markus Rathgeb <maggu2...@gmail.com>: > > I tested the usage of the Aries JAX-RS Whiteboard reference > implementation a little bit. > It works for me using v1.0.1, v1.0.2 and v1.0.3. > It stopped working for me using v1.0.4 and v1.0.5. > > I added a small example to explain what's not working anymore: > > I created an application: > > ```java > @Component(service = Application.class) > @JaxrsApplicationBase("foo") > @JaxrsName(FooApplication.APP_NAME) > public class FooApplication extends Application { > > public static final String APP_NAME = "my-foo-app"; > > } > ``` > > I created a REST endpoint that produces text: > > ```java > @Component(service = BarText.class, scope = ServiceScope.PROTOTYPE) > @JaxrsResource > @JaxrsApplicationSelect("(osgi.jaxrs.name=" + FooApplication.APP_NAME + ")") > @Path("text") > @Produces(MediaType.TEXT_PLAIN) > public class BarText { > > @GET > public String get() { > return "hello world"; > } > > } > ``` > > I created a REST endpoint that produces JSON: > > ```java > @Component(service = BarJson.class, scope = ServiceScope.PROTOTYPE) > @JaxrsResource > @JaxrsApplicationSelect("(osgi.jaxrs.name=" + FooApplication.APP_NAME + ")") > @Path("json") > @Produces(MediaType.APPLICATION_JSON) > public class BarJson { > > @GET > public String get() { > return "hello world"; > } > > } > ``` > > Using the v1.0.3 I can call "http://127.0.0.1:8080/foo/text" and > "http://127.0.0.1:8080/foo/json". > > Then I added `@JSONRequired` to the BarJson class. > > A call to "http://127.0.0.1:8080/foo/text" still succeeded. On > "http://127.0.0.1:8080/foo/json" I got a 404. > So far, all fine. > > I added a bundle that provides an JAX-RS extension, a > MessageBodyReader and a MessageBodyWriter for the media type JSON (two > separate components for the reader and writer). > > ```java > @Component(scope = PROTOTYPE) > @JaxrsExtension > @JaxrsMediaType(APPLICATION_JSON) > public class JohnzonMessageBodyReader<T> extends IgnorableTypes > implements MessageBodyReader<T> { > ... > ``` > > ```java > @Component(scope = PROTOTYPE) > @JaxrsExtension > @JaxrsMediaType(APPLICATION_JSON) > public class JohnzonMessageBodyWriter<T> extends IgnorableTypes > implements MessageBodyWriter<T> { > ``` > > Now, again a call to "http://127.0.0.1:8080/foo/text" succeeded and a > call to "http://127.0.0.1:8080/foo/json" succeeded. > > After that I updated the Aries JAX-RS Whiteboard implementation from > 1.0.3 to 1.0.5. > > A call to "http://127.0.0.1:8080/foo/text" still succeeded. On > "http://127.0.0.1:8080/foo/json" I got a 404. > > Is there something wrong on my extension that provides the JSON media type? > > Best regards, > Markus