FELIX-1305 applied the supplied fix
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@803096 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/deploymentadmin/service/src/main/java/org/apache/felix/deploymentadmin/BundleInfoImpl.java b/deploymentadmin/service/src/main/java/org/apache/felix/deploymentadmin/BundleInfoImpl.java
index 73a866d..bdbe25b 100644
--- a/deploymentadmin/service/src/main/java/org/apache/felix/deploymentadmin/BundleInfoImpl.java
+++ b/deploymentadmin/service/src/main/java/org/apache/felix/deploymentadmin/BundleInfoImpl.java
@@ -18,6 +18,7 @@
*/
package org.apache.felix.deploymentadmin;
+import java.util.StringTokenizer;
import java.util.jar.Attributes;
import org.osgi.framework.Version;
@@ -49,7 +50,7 @@
} else if (bundleSymbolicName.trim().equals("")) {
throw new DeploymentException(DeploymentException.CODE_BAD_HEADER, "Invalid '" + org.osgi.framework.Constants.BUNDLE_SYMBOLICNAME + "' header for manifest entry '" + getPath() + "'");
} else {
- m_symbolicName = bundleSymbolicName;
+ m_symbolicName = parseSymbolicName(bundleSymbolicName);
}
String version = attributes.getValue(org.osgi.framework.Constants.BUNDLE_VERSION);
@@ -64,6 +65,19 @@
m_customizer = parseBooleanHeader(attributes, Constants.DEPLOYMENTPACKAGE_CUSTOMIZER);
}
+
+ /**
+ * Strips parameters from the bundle symbolic name such as "foo;singleton:=true".
+ *
+ * @param name full name as found in the manifest of the deployment package
+ * @return name without parameters
+ */
+ private String parseSymbolicName(String name) {
+ // note that we don't explicitly check if there are tokens, because that
+ // check has already been made before we are invoked here
+ StringTokenizer st = new StringTokenizer(name, ";");
+ return st.nextToken();
+ }
public String getSymbolicName() {
return m_symbolicName;