Enable support for exporting the same package more then once (FELIX-101).
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@575376 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java b/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java
index e3edd0e..efa0f86 100644
--- a/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java
+++ b/framework/src/main/java/org/apache/felix/framework/util/manifestparser/ManifestParser.java
@@ -119,33 +119,21 @@
ICapability[] exportCaps = parseExportHeader(
(String) headerMap.get(Constants.EXPORT_PACKAGE));
- // Create non-duplicated export array.
- dupeMap.clear();
+ // Verify that "java.*" packages are not exported.
for (int capIdx = 0; capIdx < exportCaps.length; capIdx++)
{
// Verify that the named package has not already been declared.
String pkgName = (String)
exportCaps[capIdx].getProperties().get(ICapability.PACKAGE_PROPERTY);
- if (dupeMap.get(pkgName) == null)
+ // Verify that java.* packages are not exported.
+ if (pkgName.startsWith("java."))
{
- // Verify that java.* packages are not exported.
- if (pkgName.startsWith("java."))
- {
- throw new BundleException(
- "Exporting java.* packages not allowed: " + pkgName);
- }
- dupeMap.put(pkgName, exportCaps[capIdx]);
+ throw new BundleException(
+ "Exporting java.* packages not allowed: " + pkgName);
}
- else
- {
- // TODO: FRAMEWORK - Exports can be duplicated, so fix this.
- m_logger.log(Logger.LOG_WARNING, "Duplicate export - " + pkgName);
- }
+ capList.add(exportCaps[capIdx]);
}
- // Add export package capabilities to capability list.
- capList.addAll(dupeMap.values());
-
// Create an array of all capabilities.
m_capabilities = (ICapability[]) capList.toArray(new ICapability[capList.size()]);