Fixed a bug in calculating the system bundle's exported packages; it was
not ignoring non-package capabilities and was ending up with a null exported
package.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@691770 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java b/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
index 70dc4ae..63b8880 100644
--- a/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
+++ b/framework/src/main/java/org/apache/felix/framework/ExtensionManager.java
@@ -442,17 +442,23 @@
for (int i = 0; (m_capabilities != null) && (i < m_capabilities.length); i++)
{
- if (i > 0)
+ if (m_capabilities[i].getNamespace().equals(ICapability.PACKAGE_NAMESPACE))
{
- exportSB.append(", ");
+ // Add a comma separate if there is an existing package.
+ if (exportSB.length() > 0)
+ {
+ exportSB.append(", ");
+ }
+
+ // Append exported package information.
+ exportSB.append(((Capability) m_capabilities[i]).getPackageName());
+ exportSB.append("; version=\"");
+ exportSB.append(((Capability) m_capabilities[i]).getPackageVersion().toString());
+ exportSB.append("\"");
+
+ // Remember exported packages.
+ exportNames.add(((Capability) m_capabilities[i]).getPackageName());
}
-
- exportSB.append(((Capability) m_capabilities[i]).getPackageName());
- exportSB.append("; version=\"");
- exportSB.append(((Capability) m_capabilities[i]).getPackageVersion().toString());
- exportSB.append("\"");
-
- exportNames.add(((Capability) m_capabilities[i]).getPackageName());
}
m_exportNames = exportNames;