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 <[email protected]> Authored: Thu Apr 14 15:28:47 2016 +0200 Committer: Guillaume Nodet <[email protected]> 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) {
