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(

Reply via email to