X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=src%2Forg%2Fargeo%2Fbuild%2FRepackage.java;h=2a9331d559e611c943c53f2192a52741ecb4a270;hb=HEAD;hp=f379b4e81dde7486dc5b2aef4f73c89cf175054a;hpb=6a1f19b6db440f902c237da73b2da0ed1aa1cb5c;p=cc0%2Fargeo-build.git diff --git a/src/org/argeo/build/Repackage.java b/src/org/argeo/build/Repackage.java index f379b4e..2a9331d 100644 --- a/src/org/argeo/build/Repackage.java +++ b/src/org/argeo/build/Repackage.java @@ -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"), // @@ -1126,9 +1129,9 @@ public class Repackage { Files.copy(jarIn, target); // native libraries - boolean removeDllFromJar = false; + boolean removeDllFromJar = true; if (isNative && (entry.getName().endsWith(".so") || entry.getName().endsWith(".dll") - || entry.getName().endsWith(".jnilib"))) { + || entry.getName().endsWith(".jnilib") || entry.getName().endsWith(".a"))) { Path categoryDir = bundleDir.getParent(); boolean copyDll = false; Path targetDll = categoryDir.resolve(bundleDir.relativize(target)); @@ -1216,7 +1219,11 @@ public class Repackage { for (Iterator> manifestEntries = manifest.getMainAttributes().entrySet() .iterator(); manifestEntries.hasNext();) { Map.Entry 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":