Support builin extensions (151.5.4)
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/d6bdf4ff Tree: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/tree/d6bdf4ff Diff: http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/diff/d6bdf4ff Branch: refs/heads/master Commit: d6bdf4ff3e69c2aa723889293f44d7ad7a9ee2d6 Parents: 43acc44 Author: Carlos Sierra <[email protected]> Authored: Wed Nov 29 11:21:15 2017 +0100 Committer: Carlos Sierra <[email protected]> Committed: Wed Nov 29 11:22:01 2017 +0100 ---------------------------------------------------------------------- .../jax/rs/whiteboard/internal/Whiteboard.java | 21 +++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aries-jax-rs-whiteboard/blob/d6bdf4ff/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java ---------------------------------------------------------------------- diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java index 4426e93..23d25da 100644 --- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java +++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java @@ -196,8 +196,7 @@ public class Whiteboard { _runtime::removeApplicationDependentExtension). flatMap(registratorReference -> waitForExtensionDependencies( - resourceReference, - getApplicationName(registratorReference::getProperty), + resourceReference, registratorReference, _runtime::addDependentExtension, _runtime::removeDependentExtension). then( @@ -215,8 +214,7 @@ public class Whiteboard { _runtime::removeApplicationDependentResource). flatMap(registratorReference -> waitForExtensionDependencies( - resourceReference, - getApplicationName(registratorReference::getProperty), + resourceReference, registratorReference, _runtime::addDependentService, _runtime::removeDependentService). then( @@ -570,10 +568,15 @@ public class Whiteboard { } private OSGi<?> waitForExtensionDependencies( - CachingServiceReference<?> serviceReference, String applicationName, + CachingServiceReference<?> serviceReference, + CachingServiceReference<CXFJaxRsServiceRegistrator> + applicationRegistratorReference, Consumer<CachingServiceReference<?>> onAddingDependent, Consumer<CachingServiceReference<?>> onRemovingDependent) { + String applicationName = getApplicationName( + applicationRegistratorReference::getProperty); + String[] extensionDependencies = canonicalize( serviceReference.getProperty(JAX_RS_EXTENSION_SELECT)); @@ -594,6 +597,14 @@ public class Whiteboard { Filter extensionFilter = _bundleContext.createFilter( extensionDependency); + if ( + extensionFilter.match(_runtimeReference) || + extensionFilter.match( + applicationRegistratorReference.getServiceReference())) { + + continue; + } + program = once(serviceReferences(ApplicationExtensionRegistration.class). filter(
