You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by rm...@apache.org on 2020/09/22 16:09:47 UTC

[aries-jax-rs-whiteboard] 01/02: [ARIES-2003] ensure @ApplicationPath is always ignored

This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/aries-jax-rs-whiteboard.git

commit db1cb1bff8d76104f55007d9b6801559bc4086fa
Author: Romain Manni-Bucau <rm...@gmail.com>
AuthorDate: Tue Sep 22 17:56:24 2020 +0200

    [ARIES-2003] ensure @ApplicationPath is always ignored
---
 .../whiteboard/internal/cxf/CxfJaxrsServiceRegistrator.java  |  3 ++-
 .../internal/cxf/CxfJaxrsServiceRegistratorTest.java         | 12 ++++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/CxfJaxrsServiceRegistrator.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/CxfJaxrsServiceRegistrator.java
index 760a94a..9debe73 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/CxfJaxrsServiceRegistrator.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/CxfJaxrsServiceRegistrator.java
@@ -246,6 +246,7 @@ public class CxfJaxrsServiceRegistrator {
         }
 
         String address = "/";
+        /* spec ignores @ApplicationPath
         ApplicationPath appPath = ResourceUtils.locateApplicationPath(app.getClass());
         if (appPath != null) {
             address = appPath.value();
@@ -253,7 +254,7 @@ public class CxfJaxrsServiceRegistrator {
         if (!address.startsWith("/")) {
             address = "/" + address;
         }
-        // todo resolve conflicts between @ApplicationPath and @JaxrsApplicationBase (if same  value -> use only one?)
+         */
         bean.setAddress(address);
         bean.setStaticSubresourceResolution(false);
         bean.setResourceClasses(resourceClasses);
diff --git a/jax-rs.whiteboard/src/test/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/CxfJaxrsServiceRegistratorTest.java b/jax-rs.whiteboard/src/test/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/CxfJaxrsServiceRegistratorTest.java
index 3013cdd..902a4ba 100644
--- a/jax-rs.whiteboard/src/test/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/CxfJaxrsServiceRegistratorTest.java
+++ b/jax-rs.whiteboard/src/test/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/CxfJaxrsServiceRegistratorTest.java
@@ -21,6 +21,7 @@ import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
 import org.apache.cxf.jaxrs.model.ClassResourceInfo;
 import org.junit.Test;
 
+import javax.ws.rs.ApplicationPath;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.core.Application;
@@ -52,6 +53,17 @@ public class CxfJaxrsServiceRegistratorTest {
         assertTrue(SingletonResourceProvider.class.isInstance(cri.getResourceProvider()));
     }
 
+    @Test
+    public void ignoreAppPAth() {
+        final JAXRSServerFactoryBean bean = new CxfJaxrsServiceRegistrator(
+                null, null, emptyMap(), null
+        ).createEndpoint(new MyApp(), JAXRSServerFactoryBean.class);
+        assertEquals("/", bean.getAddress());
+    }
+
+    @ApplicationPath("foo")
+    public static class MyApp extends Application {}
+
     @Path("my")
     public static class MyResource {
         @GET