Force removal of require bundle
[cc0/argeo-build.git] / src / org / argeo / build / Repackage.java
index 26d37348bbcb5d5d844a2332da1a61f3e707506c..0daf3c401add6e94ed9c3a50c59528a1008900d0 100644 (file)
@@ -23,6 +23,7 @@ import static org.argeo.build.Repackage.ManifestHeader.BUNDLE_VERSION;
 import static org.argeo.build.Repackage.ManifestHeader.ECLIPSE_SOURCE_BUNDLE;
 import static org.argeo.build.Repackage.ManifestHeader.EXPORT_PACKAGE;
 import static org.argeo.build.Repackage.ManifestHeader.IMPORT_PACKAGE;
+import static org.argeo.build.Repackage.ManifestHeader.REQUIRE_BUNDLE;
 import static org.argeo.build.Repackage.ManifestHeader.SPDX_LICENSE_IDENTIFIER;
 
 import java.io.BufferedWriter;
@@ -148,6 +149,8 @@ public class Repackage {
                EXPORT_PACKAGE("Export-Package"), //
                /** OSGi imported packages list. */
                IMPORT_PACKAGE("Import-Package"), //
+               /** OSGi required bundles. */
+               REQUIRE_BUNDLE("Require-Bundle"), //
                /** OSGi path to embedded jar. */
                BUNDLE_CLASSPATH("Bundle-Classpath"), //
                // Java
@@ -725,7 +728,6 @@ public class Repackage {
                                                case "Tool":
                                                case "Bnd-LastModified":
                                                case "Created-By":
-                                               case "Require-Bundle":
                                                        continue keys;
                                                }
                                                if ("Require-Capability".equals(key.toString())
@@ -1028,6 +1030,10 @@ public class Repackage {
                        sourceManifest = jarIn.getManifest();
                        if (sourceManifest == null)
                                logger.log(WARNING, file + " has no manifest");
+                       else {
+                               if (!doNotModify)
+                                       sourceManifest.getMainAttributes().remove(REQUIRE_BUNDLE.toString());
+                       }
                        manifest = sourceManifest != null ? new Manifest(sourceManifest) : new Manifest();
 
                        String rawSourceSymbolicName = manifest.getMainAttributes().getValue(BUNDLE_SYMBOLICNAME.toString());