Test default application base path change

Project: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/commit/00647091
Tree: 
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/00647091
Diff: 
http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/00647091

Branch: refs/heads/master
Commit: 00647091cd1684a78bdfd7de326ee7c22e3547f0
Parents: 92cffde
Author: Carlos Sierra <csie...@apache.org>
Authored: Fri May 11 17:33:32 2018 +0200
Committer: Carlos Sierra <csie...@apache.org>
Committed: Fri May 11 17:33:32 2018 +0200

----------------------------------------------------------------------
 jax-rs.itests/src/main/java/test/JaxrsTest.java | 129 +++++++++++++++++++
 1 file changed, 129 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/00647091/jax-rs.itests/src/main/java/test/JaxrsTest.java
----------------------------------------------------------------------
diff --git a/jax-rs.itests/src/main/java/test/JaxrsTest.java 
b/jax-rs.itests/src/main/java/test/JaxrsTest.java
index 125a0ce..178676d 100644
--- a/jax-rs.itests/src/main/java/test/JaxrsTest.java
+++ b/jax-rs.itests/src/main/java/test/JaxrsTest.java
@@ -1292,6 +1292,135 @@ public class JaxrsTest extends TestHelper {
     }
 
     @Test
+    public void testDefaultApplicationPath() throws
+        IOException, InterruptedException, InvalidSyntaxException {
+
+        WebTarget defaultTarget = createDefaultTarget();
+
+        WebTarget webTarget = defaultTarget.path("test");
+
+        registerAddon(new TestAddon());
+
+        Response response = webTarget.request().get();
+
+        assertEquals(
+            "This should say hello", "Hello test",
+            response.readEntity(String.class));
+
+        ConfigurationAdmin configurationAdmin = getConfigurationAdmin();
+
+        Configuration configuration = configurationAdmin.getConfiguration(
+            "org.apache.aries.jax.rs.whiteboard.default", "?");
+
+        try {
+            Hashtable<String, Object> properties = new Hashtable<>();
+
+            properties.put("default.application.base", "defaultpath");
+
+            CountDownLatch countDownLatch = new CountDownLatch(3);
+
+            ServiceTracker<Object, Object> tracker =
+                new ServiceTracker<>(
+                    bundleContext,
+                    bundleContext.createFilter(
+                        "(&(osgi.jaxrs.name=.default)" +
+                            "(objectClass=org.apache.aries.jax.rs.whiteboard." 
+
+                            "internal.cxf.CxfJaxrsServiceRegistrator))"),
+                    new ServiceTrackerCustomizer<Object, Object>() {
+
+                        @Override
+                        public Object addingService(
+                            ServiceReference<Object> serviceReference) {
+
+                            countDownLatch.countDown();
+
+                            return serviceReference;
+                        }
+
+                        @Override
+                        public void modifiedService(
+                            ServiceReference<Object> serviceReference,
+                            Object o) {
+
+                        }
+
+                        @Override
+                        public void removedService(
+                            ServiceReference<Object> serviceReference,
+                            Object o) {
+
+                            countDownLatch.countDown();
+                        }
+                    });
+
+            tracker.open();
+
+            configuration.update(properties);
+
+            countDownLatch.await(1, TimeUnit.MINUTES);
+
+            webTarget = defaultTarget.path("defaultpath").path("test");
+
+            response = webTarget.request().get();
+
+            assertEquals(
+                "This should say hello", "Hello test",
+                response.readEntity(String.class));
+        }
+        finally {
+            CountDownLatch countDownLatch = new CountDownLatch(3);
+
+            ServiceTracker<Object, Object> tracker =
+                new ServiceTracker<>(
+                    bundleContext,
+                    bundleContext.createFilter(
+                        "(&(osgi.jaxrs.name=.default)" +
+                            "(objectClass=org.apache.aries.jax.rs.whiteboard." 
+
+                            "internal.cxf.CxfJaxrsServiceRegistrator))"),
+                    new ServiceTrackerCustomizer<Object, Object>() {
+
+                        @Override
+                        public Object addingService(
+                            ServiceReference<Object> serviceReference) {
+
+                            countDownLatch.countDown();
+
+                            return serviceReference;
+                        }
+
+                        @Override
+                        public void modifiedService(
+                            ServiceReference<Object> serviceReference,
+                            Object o) {
+
+                        }
+
+                        @Override
+                        public void removedService(
+                            ServiceReference<Object> serviceReference,
+                            Object o) {
+
+                            countDownLatch.countDown();
+                        }
+                    });
+
+            tracker.open();
+
+            configuration.delete();
+
+            countDownLatch.await(1, TimeUnit.MINUTES);
+        }
+
+        webTarget = defaultTarget.path("test");
+
+        response = webTarget.request().get();
+
+        assertEquals(
+            "This should say hello", "Hello test",
+            response.readEntity(String.class));
+    }
+
+    @Test
     public void testEndpointsOverride() {
         WebTarget webTarget = createDefaultTarget().path("conflict");
 

Reply via email to