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");