You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by da...@apache.org on 2016/04/01 16:01:36 UTC

svn commit: r1737391 - /felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/SpecXMLPullParser.java

Author: davidb
Date: Fri Apr  1 14:01:35 2016
New Revision: 1737391

URL: http://svn.apache.org/viewvc?rev=1737391&view=rev
Log:
Fixes FELIX-5230 - Better handling of effective attribute on Requirements

Patch applied on behalf of PK Søreide with many thanks.
This closes #62

Modified:
    felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/SpecXMLPullParser.java

Modified: felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/SpecXMLPullParser.java
URL: http://svn.apache.org/viewvc/felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/SpecXMLPullParser.java?rev=1737391&r1=1737390&r2=1737391&view=diff
==============================================================================
--- felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/SpecXMLPullParser.java (original)
+++ felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/SpecXMLPullParser.java Fri Apr  1 14:01:35 2016
@@ -102,7 +102,9 @@ public class SpecXMLPullParser
                 else if (REQUIREMENT.equals(element))
                 {
                     Requirement requirement = parseRequirement(reader);
-                    resource.addRequire(requirement);
+                    if (requirement != null) {
+                    	resource.addRequire(requirement);
+                    }
                 }
                 else
                 {
@@ -328,6 +330,11 @@ public class SpecXMLPullParser
         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())
         {