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) {
