Repository: karaf
Updated Branches:
  refs/heads/master 8db31d312 -> 6657400bd


[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/ac12c659
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/ac12c659
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/ac12c659

Branch: refs/heads/master
Commit: ac12c659274e8cb924a377a9af557867cec2a2ae
Parents: 8db31d3
Author: Guillaume Nodet <[email protected]>
Authored: Thu Apr 14 15:28:47 2016 +0200
Committer: Guillaume Nodet <[email protected]>
Committed: Thu Apr 14 15:28:58 2016 +0200

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


http://git-wip-us.apache.org/repos/asf/karaf/blob/ac12c659/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..6a518d5 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,22 @@ public class Subsystem extends ResourceImpl {
                 infos.put(bi, null);
             }
         }
+        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())
+                                     && 
!FeaturesNamespaces.URI_1_4_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 +397,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 +407,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 +419,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 +598,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) {

Reply via email to