You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2011/07/21 18:08:35 UTC

svn commit: r1149247 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java

Author: rickhall
Date: Thu Jul 21 16:08:32 2011
New Revision: 1149247

URL: http://svn.apache.org/viewvc?rev=1149247&view=rev
Log:
Bundle/host capabilities and host requirement can now have attributes
and directives. (FELIX-2950)

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java?rev=1149247&r1=1149246&r2=1149247&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java Thu Jul 21 16:08:32 2011
@@ -127,7 +127,7 @@ public class ManifestParser
                     hostAttrs.put(BundleRevision.HOST_NAMESPACE, value);
                     capList.add(new BundleCapabilityImpl(
                         owner, BundleRevision.HOST_NAMESPACE,
-                        Collections.EMPTY_MAP,
+                        bundleCap.getDirectives(),
                         hostAttrs));
                 }
             }
@@ -138,6 +138,8 @@ public class ManifestParser
             // attach this information to the bundle or host capabilities
             // because fragments don't have those capabilities, but fragments
             // can be singletons too.
+// TODO: OSGi R4.4 - Eventually we will have an identity capability from OBR
+//       that we can use instead of this custom singleton capability.
             if (isSingleton(bundleCap))
             {
                 Map<String, Object> singletonAttrs =
@@ -1321,21 +1323,10 @@ public class ManifestParser
                             + headerMap.get(Constants.FRAGMENT_HOST));
                 }
 
-                // Strip all attributes other than bundle-version.
-                for (Iterator<Entry<String, Object>> it =
-                        clauses.get(0).m_attrs.entrySet().iterator();
-                    it.hasNext(); )
-                {
-                    Entry<String, Object> entry = it.next();
-                    if (!entry.getKey().equals(Constants.BUNDLE_VERSION_ATTRIBUTE))
-                    {
-                        it.remove();
-                    }
-                }
-
                 // If the bundle-version attribute is specified, then convert
                 // it to the proper type.
                 Object value = clauses.get(0).m_attrs.get(Constants.BUNDLE_VERSION_ATTRIBUTE);
+                value = (value == null) ? "0.0.0" : value;
                 if (value != null)
                 {
                     clauses.get(0).m_attrs.put(