From 6cbe8e3258adb44cae711537651688e4cf910749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?PK=20S=C3=B8reide?= Date: Fri, 1 Apr 2016 12:22:23 +0200 Subject: [PATCH] Fixes FELIX-5230 - Better handling of effective attribute on Requirements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: PK Søreide --- .../felix/bundlerepository/impl/SpecXMLPullParser.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/SpecXMLPullParser.java b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/SpecXMLPullParser.java index ebf5364f19a..4e0b991d044 100644 --- a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/SpecXMLPullParser.java +++ b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/SpecXMLPullParser.java @@ -102,7 +102,9 @@ private static Resource parseResource(XmlPullParser reader) throws Exception else if (REQUIREMENT.equals(element)) { Requirement requirement = parseRequirement(reader); - resource.addRequire(requirement); + if (requirement != null) { + resource.addRequire(requirement); + } } else { @@ -328,6 +330,11 @@ private static Requirement parseRequirement(XmlPullParser reader) throws Excepti parseAttributesDirectives(reader, attributes, directives, REQUIREMENT); requirement.setAttributes(attributes); + String effective = directives.get("effective"); + if (effective != null && !effective.equals("resolve")) { + return null; + } + String filter = directives.remove(Namespace.REQUIREMENT_FILTER_DIRECTIVE); for (String ns : NamespaceTranslator.getTranslatedOSGiNamespaces()) {