Repository: karaf Updated Branches: refs/heads/karaf-2.x f369535c1 -> b9275299c
KARAF-3448 - Deal with feature version when checking conditions Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/b9275299 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/b9275299 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/b9275299 Branch: refs/heads/karaf-2.x Commit: b9275299cb968c4a70bd844715d677fbcc31d4db Parents: f369535 Author: Jean-Baptiste Onofré <[email protected]> Authored: Thu Jan 21 14:37:14 2016 +0100 Committer: Jean-Baptiste Onofré <[email protected]> Committed: Thu Jan 21 14:37:14 2016 +0100 ---------------------------------------------------------------------- .../features/internal/FeaturesServiceImpl.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/b9275299/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java ---------------------------------------------------------------------- diff --git a/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java b/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java index 65f48fe..82be09f 100644 --- a/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java +++ b/features/core/src/main/java/org/apache/karaf/features/internal/FeaturesServiceImpl.java @@ -1776,12 +1776,26 @@ public class FeaturesServiceImpl implements FeaturesService { private boolean dependenciesSatisfied(List<Feature> dependencies, Set<Feature> installed) throws Exception { boolean satisfied = true; for (Feature dep : dependencies) { - Feature f = getFeature(dep.getName(), dep.getVersion()); - if (f != null && !installed.contains(f)) { + if (!featureInstalled(dep.getName(), dep.getVersion(), installed)) { satisfied = false; } } return satisfied; } + private boolean featureInstalled(String name, String version, Set<Feature> installed) { + for (Feature install : installed) { + if (version.equals(FeatureImpl.DEFAULT_VERSION)) { + if (name.equals(install.getName())) { + return true; + } + } else { + if (name.equals(install.getName()) && version.equals(install.getVersion())) { + return true; + } + } + } + return false; + } + }
