Remove Require-Bundle only for JNA platform
[cc0/argeo-build.git] / src / org / argeo / build / Repackage.java
index 41362498aa5f430c2a5c5485789052008cafd544..2a9331d559e611c943c53f2192a52741ecb4a270 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
@@ -174,7 +177,7 @@ public class Repackage {
                /** Maven repository, if not the default one. */
                ARGEO_ORIGIN_M2_REPO("Argeo-Origin-M2-Repo"), //
                /**
-                * Do not perform BND analysis of the origin component. Typically Import_package
+                * Do not perform BND analysis of the origin component. Typically Import-Package
                 * and Export-Package will be kept untouched.
                 */
                ARGEO_ORIGIN_NO_METADATA_GENERATION("Argeo-Origin-NoMetadataGeneration"), //
@@ -1216,7 +1219,11 @@ public class Repackage {
                for (Iterator<Map.Entry<Object, Object>> manifestEntries = manifest.getMainAttributes().entrySet()
                                .iterator(); manifestEntries.hasNext();) {
                        Map.Entry<Object, Object> manifestEntry = manifestEntries.next();
-                       switch (manifestEntry.getKey().toString()) {
+                       String key = manifestEntry.getKey().toString();
+                       // TODO make it more generic
+                       if (key.equals(REQUIRE_BUNDLE.toString()) && nameVersion.getName().equals("com.sun.jna.platform"))
+                               manifestEntries.remove();
+                       switch (key) {
                        case "Archiver-Version":
                        case "Build-By":
                        case "Created-By":