You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2016/04/14 16:11:24 UTC

karaf git commit: [KARAF-3802] Fix problem with the logic

Repository: karaf
Updated Branches:
  refs/heads/karaf-4.0.x 3f6ddbbb1 -> b3fcae21a


[KARAF-3802] Fix problem with the logic

Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/b3fcae21
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/b3fcae21
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/b3fcae21

Branch: refs/heads/karaf-4.0.x
Commit: b3fcae21ae4d833d2a0a30d599442258816877b4
Parents: 3f6ddbb
Author: Guillaume Nodet <gn...@apache.org>
Authored: Thu Apr 14 15:28:47 2016 +0200
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Thu Apr 14 15:52:32 2016 +0200

----------------------------------------------------------------------
 .../features/internal/region/Subsystem.java     | 23 +++++++++++---------
 1 file changed, 13 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/b3fcae21/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
----------------------------------------------------------------------
diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java b/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
index d8863e5..39ef12f 100644
--- a/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
+++ b/features/core/src/main/java/org/apache/karaf/features/internal/region/Subsystem.java
@@ -372,13 +372,21 @@ public class Subsystem extends ResourceImpl {
                 infos.put(bi, null);
             }
         }
+        final boolean removeServiceRequirements;
+        if (FeaturesService.SERVICE_REQUIREMENTS_DISABLE.equals(serviceRequirements)) {
+            removeServiceRequirements = true;
+        } else if (feature != null && FeaturesService.SERVICE_REQUIREMENTS_DEFAULT.equals(serviceRequirements)) {
+            removeServiceRequirements = !FeaturesNamespaces.URI_1_3_0.equals(feature.getNamespace());
+        } else {
+            removeServiceRequirements = false;
+        }
         for (Map.Entry<BundleInfo, Conditional> entry : infos.entrySet()) {
             final BundleInfo bi = entry.getKey();
             final String loc = bi.getLocation();
             downloader.download(loc, new DownloadCallback() {
                 @Override
                 public void downloaded(StreamProvider provider) throws Exception {
-                    ResourceImpl res = createResource(loc, getMetadata(provider), serviceRequirements);
+                    ResourceImpl res = createResource(loc, getMetadata(provider), removeServiceRequirements);
                     bundles.put(loc, res);
                 }
             });
@@ -388,7 +396,7 @@ public class Subsystem extends ResourceImpl {
             downloader.download(loc, new DownloadCallback() {
                 @Override
                 public void downloaded(StreamProvider provider) throws Exception {
-                    ResourceImpl res = createResource(loc, getMetadata(provider), serviceRequirements);
+                    ResourceImpl res = createResource(loc, getMetadata(provider), removeServiceRequirements);
                     bundles.put(loc, res);
                 }
             });
@@ -398,7 +406,7 @@ public class Subsystem extends ResourceImpl {
             downloader.download(loc, new DownloadCallback() {
                 @Override
                 public void downloaded(StreamProvider provider) throws Exception {
-                    ResourceImpl res = createResource(loc, getMetadata(provider), serviceRequirements);
+                    ResourceImpl res = createResource(loc, getMetadata(provider), removeServiceRequirements);
                     bundles.put(loc, res);
                 }
             });
@@ -410,7 +418,7 @@ public class Subsystem extends ResourceImpl {
                     downloader.download(loc, new DownloadCallback() {
                         @Override
                         public void downloaded(StreamProvider provider) throws Exception {
-                            ResourceImpl res = createResource(loc, getMetadata(provider), serviceRequirements);
+                            ResourceImpl res = createResource(loc, getMetadata(provider), removeServiceRequirements);
                             bundles.put(loc, res);
                         }
                     });
@@ -589,12 +597,7 @@ public class Subsystem extends ResourceImpl {
         return policy;
     }
 
-    ResourceImpl createResource(String uri, Map<String, String> headers, String serviceRequirements) throws Exception {
-        boolean removeServiceRequirements = false;
-        if (feature != null && FeaturesService.SERVICE_REQUIREMENTS_DEFAULT.equals(serviceRequirements)
-                && !FeaturesNamespaces.URI_1_3_0.equals(uri)) {
-            removeServiceRequirements = true;
-        }
+    ResourceImpl createResource(String uri, Map<String, String> headers, boolean removeServiceRequirements) throws Exception {
         try {
             return ResourceBuilder.build(uri, headers, removeServiceRequirements);
         } catch (BundleException e) {