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 2014/05/13 17:57:22 UTC

svn commit: r1594257 - in /felix/trunk/framework/src: main/java/org/apache/felix/framework/BundleRevisionImpl.java test/java/org/apache/felix/framework/RequirementsCapabilitiesTest.java

Author: davidb
Date: Tue May 13 15:57:21 2014
New Revision: 1594257

URL: http://svn.apache.org/r1594257
Log:
[FELIX-4515] BundleRevision for system extension has no capabilities

This commit should address the issue.
Also added a unit test.

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java
    felix/trunk/framework/src/test/java/org/apache/felix/framework/RequirementsCapabilitiesTest.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java?rev=1594257&r1=1594256&r2=1594257&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleRevisionImpl.java Tue May 13 15:57:21 2014
@@ -28,6 +28,7 @@ import java.util.Collections;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.Map;
+
 import org.apache.felix.framework.cache.Content;
 import org.apache.felix.framework.util.FelixConstants;
 import org.apache.felix.framework.util.SecureAction;
@@ -126,7 +127,7 @@ public class BundleRevisionImpl implemen
         // system bundle directly later on.
         m_manifestVersion = mp.getManifestVersion();
         m_version = mp.getBundleVersion();
-        m_declaredCaps = mp.isExtension() ? Collections.EMPTY_LIST : mp.getCapabilities();
+        m_declaredCaps = mp.getCapabilities();
         m_declaredReqs = mp.getRequirements();
         m_declaredNativeLibs = mp.getLibraries();
         m_declaredActivationPolicy = mp.getActivationPolicy();

Modified: felix/trunk/framework/src/test/java/org/apache/felix/framework/RequirementsCapabilitiesTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/test/java/org/apache/felix/framework/RequirementsCapabilitiesTest.java?rev=1594257&r1=1594256&r2=1594257&view=diff
==============================================================================
--- felix/trunk/framework/src/test/java/org/apache/felix/framework/RequirementsCapabilitiesTest.java (original)
+++ felix/trunk/framework/src/test/java/org/apache/felix/framework/RequirementsCapabilitiesTest.java Tue May 13 15:57:21 2014
@@ -192,6 +192,30 @@ public class RequirementsCapabilitiesTes
         assertCapsEquals(expectedFWCap, bwpCaps2.get(0));
     }
 
+    public void testIdentityCapabilityFrameworkExtension() throws Exception
+    {
+        String femf = "Bundle-SymbolicName: fram.ext\n"
+                + "Bundle-Version: 1.2.3.test\n"
+                + "Fragment-Host: system.bundle; extension:=framework\n"
+                + "Bundle-ManifestVersion: 2\n"
+                + "Export-Package: org.foo.bar;version=\"2.0.0\"\n";
+        File feFile = createBundle(femf);
+
+        Bundle fe = felix.getBundleContext().installBundle(feFile.toURI().toASCIIString());
+
+        BundleRevision fbr = fe.adapt(BundleRevision.class);
+
+        List<Capability> feCaps = fbr.getCapabilities("osgi.identity");
+        assertEquals(1, feCaps.size());
+        Map<String, Object> expectedFEAttrs = new HashMap<String, Object>();
+        expectedFEAttrs.put("osgi.identity", "fram.ext");
+        expectedFEAttrs.put("type", "osgi.fragment");
+        expectedFEAttrs.put("version", Version.parseVersion("1.2.3.test"));
+        Capability expectedFICap = new TestCapability("osgi.identity",
+                expectedFEAttrs, Collections.<String, String>emptyMap());
+        assertCapsEquals(expectedFICap, feCaps.get(0));
+    }
+
     private File createBundle(String manifest) throws IOException
     {
         File f = File.createTempFile("felix-bundle", ".jar", tempDir);