Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Invalid
-
jax-rs-whiteboard-2.0.0
-
None
-
None
-
OSGi container: Apache Karaf 4.3.2; startup features: minimal + eventadmin + wrap; boot features: scr, test-jaxrs (below).
Feature definition:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <features name="test-features-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.6.0"> <repository>mvn:org.apache.cxf.karaf/apache-cxf/3.4.4/xml/features</repository> <feature name="test-jaxrs" version="${project.version}" install="false"> <!--feature>pax-web-http-whiteboard</feature--> <feature>felix-http</feature> <feature>aries-jax-rs-whiteboard</feature> <feature>aries-jax-rs-whiteboard-jackson</feature> <bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/2.9.0</bundle> <bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/2.9.0</bundle> </feature> <feature name="dynamo-jackson" version="2.12.3" install="false"> <bundle>mvn:com.fasterxml.jackson.core/jackson-core/2.12.3</bundle> <bundle>mvn:com.fasterxml.jackson.core/jackson-annotations/2.12.3</bundle> <bundle>mvn:com.fasterxml.jackson.core/jackson-databind/2.12.3</bundle> <bundle>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/2.12.3</bundle> <bundle>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/2.12.3</bundle> <bundle>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.12.3</bundle> <bundle>mvn:com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.12.3</bundle> </feature> <feature name="aries-jax-rs-whiteboard" version="2.0.0" install="false"> <feature dependency="true">felix-http</feature> <feature dependency="true">aries-proxy</feature> <feature dependency="true">cxf-core</feature> <bundle dependency="true">mvn:org.apache.aries.spec/org.apache.aries.javax.jax.rs-api/1.0.4</bundle> <bundle dependency="true">mvn:org.osgi/org.osgi.util.function/1.1.0</bundle> <bundle dependency="true">mvn:org.osgi/org.osgi.util.promise/1.1.1</bundle> <bundle dependency="true">mvn:org.osgi/org.osgi.service.jaxrs/1.0.0</bundle> <bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.annotation-api-1.3/1.3_3</bundle> <bundle dependency="true">mvn:org.apache.aries.component-dsl/org.apache.aries.component-dsl.component-dsl/1.2.2</bundle> <bundle dependency="true">mvn:javax.activation/javax.activation-api/1.2.0</bundle> <bundle dependency="true">mvn:com.sun.activation/javax.activation/1.2.0</bundle> <bundle dependency="true">mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/1.3.3</bundle> <bundle dependency="true">mvn:org.apache.aries/org.apache.aries.util/1.1.3</bundle> <bundle dependency="true">mvn:org.ow2.asm/asm-all/5.0.4</bundle> <bundle dependency="true">mvn:com.fasterxml.woodstox/woodstox-core/6.2.6</bundle> <bundle dependency="true">mvn:org.codehaus.woodstox/stax2-api/4.2.1</bundle> <bundle dependency="true">mvn:org.apache.cxf/cxf-rt-frontend-jaxrs/3.4.4</bundle> <bundle dependency="true">mvn:org.apache.cxf/cxf-rt-rs-client/3.4.4</bundle> <bundle dependency="true">mvn:org.apache.cxf/cxf-rt-rs-sse/3.4.4</bundle> <bundle dependency="true">mvn:org.apache.cxf/cxf-rt-security/3.4.4</bundle> <bundle dependency="true">mvn:org.apache.cxf/cxf-rt-transports-http/3.4.4</bundle> <bundle>mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.whiteboard/2.0.0</bundle> </feature> <feature name="aries-jax-rs-whiteboard-jackson" version="2.0.0" install="false"> <feature dependency="true">aries-jax-rs-whiteboard</feature> <feature dependency="true">dynamo-jackson</feature> <bundle dependency="true">mvn:javax.xml.bind/jaxb-api/2.3.1</bundle> <bundle dependency="true">mvn:com.sun.xml.bind/jaxb-impl/2.3.4</bundle> <bundle>mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.jackson/2.0.0</bundle> </feature> </features>
OSGi container: Apache Karaf 4.3.2; startup features: minimal + eventadmin + wrap; boot features: scr, test-jaxrs (below). Feature definition: <?xml version= "1.0" encoding= "UTF-8" standalone= "yes" ?> <features name= "test-features-${project.version}" xmlns= "http://karaf.apache.org/xmlns/features/v1.6.0" > <repository> mvn:org.apache.cxf.karaf/apache-cxf/3.4.4/xml/features </repository> <feature name= "test-jaxrs" version= "${project.version}" install= "false" > <!--feature> pax-web-http-whiteboard </feature--> <feature> felix-http </feature> <feature> aries-jax-rs-whiteboard </feature> <feature> aries-jax-rs-whiteboard-jackson </feature> <bundle dependency= "true" > mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/2.9.0 </bundle> <bundle dependency= "true" > mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/2.9.0 </bundle> </feature> <feature name= "dynamo-jackson" version= "2.12.3" install= "false" > <bundle> mvn:com.fasterxml.jackson.core/jackson-core/2.12.3 </bundle> <bundle> mvn:com.fasterxml.jackson.core/jackson-annotations/2.12.3 </bundle> <bundle> mvn:com.fasterxml.jackson.core/jackson-databind/2.12.3 </bundle> <bundle> mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/2.12.3 </bundle> <bundle> mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/2.12.3 </bundle> <bundle> mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.12.3 </bundle> <bundle> mvn:com.fasterxml.jackson.datatype/jackson-datatype-jdk8/2.12.3 </bundle> </feature> <feature name= "aries-jax-rs-whiteboard" version= "2.0.0" install= "false" > <feature dependency= "true" > felix-http </feature> <feature dependency= "true" > aries-proxy </feature> <feature dependency= "true" > cxf-core </feature> <bundle dependency= "true" > mvn:org.apache.aries.spec/org.apache.aries.javax.jax.rs-api/1.0.4 </bundle> <bundle dependency= "true" > mvn:org.osgi/org.osgi.util.function/1.1.0 </bundle> <bundle dependency= "true" > mvn:org.osgi/org.osgi.util.promise/1.1.1 </bundle> <bundle dependency= "true" > mvn:org.osgi/org.osgi.service.jaxrs/1.0.0 </bundle> <bundle dependency= "true" > mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.annotation-api-1.3/1.3_3 </bundle> <bundle dependency= "true" > mvn:org.apache.aries.component-dsl/org.apache.aries.component-dsl.component-dsl/1.2.2 </bundle> <bundle dependency= "true" > mvn:javax.activation/javax.activation-api/1.2.0 </bundle> <bundle dependency= "true" > mvn:com.sun.activation/javax.activation/1.2.0 </bundle> <bundle dependency= "true" > mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/1.3.3 </bundle> <bundle dependency= "true" > mvn:org.apache.aries/org.apache.aries.util/1.1.3 </bundle> <bundle dependency= "true" > mvn:org.ow2.asm/asm-all/5.0.4 </bundle> <bundle dependency= "true" > mvn:com.fasterxml.woodstox/woodstox-core/6.2.6 </bundle> <bundle dependency= "true" > mvn:org.codehaus.woodstox/stax2-api/4.2.1 </bundle> <bundle dependency= "true" > mvn:org.apache.cxf/cxf-rt-frontend-jaxrs/3.4.4 </bundle> <bundle dependency= "true" > mvn:org.apache.cxf/cxf-rt-rs-client/3.4.4 </bundle> <bundle dependency= "true" > mvn:org.apache.cxf/cxf-rt-rs-sse/3.4.4 </bundle> <bundle dependency= "true" > mvn:org.apache.cxf/cxf-rt-security/3.4.4 </bundle> <bundle dependency= "true" > mvn:org.apache.cxf/cxf-rt-transports-http/3.4.4 </bundle> <bundle> mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.whiteboard/2.0.0 </bundle> </feature> <feature name= "aries-jax-rs-whiteboard-jackson" version= "2.0.0" install= "false" > <feature dependency= "true" > aries-jax-rs-whiteboard </feature> <feature dependency= "true" > dynamo-jackson </feature> <bundle dependency= "true" > mvn:javax.xml.bind/jaxb-api/2.3.1 </bundle> <bundle dependency= "true" > mvn:com.sun.xml.bind/jaxb-impl/2.3.4 </bundle> <bundle> mvn:org.apache.aries.jax.rs/org.apache.aries.jax.rs.jackson/2.0.0 </bundle> </feature> </features>
Description
JaxrsApplicationSelect annotation (or equivalent osgi.jaxrs.application.select property) is ignored by JAX-RS Whiteboard 2.x. The same code works fine with versions 1.0.x and 1.1.0.
Sample:
@Component(service = TestResource.class, scope = ServiceScope.PROTOTYPE) @Path("test") @JaxrsResource @JaxrsApplicationSelect("(" + JaxrsWhiteboardConstants.JAX_RS_NAME + "=" + MyApplication.NAME + ")") public class TestResource { //... } @Component(service = Application.class) @JaxrsName(MyApplication.NAME) @JaxrsApplicationBase("/my") public class MyApplication extends Application { public static final String NAME = "my-app"; } @Component(service = Application.class) @JaxrsName(OtherApplication.NAME) @JaxrsApplicationBase("/other") public class OtherApplication extends Application { public static final String NAME = "other-app"; }
TestResource is exposed by all applications including default one (/my/test, /other/test, /cxf/test).