X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=src%2Forg%2Fargeo%2Fbuild%2FRepackage.java;h=d0216748777e5f30c06359512f30ad9cfb1e6ca4;hb=76ebab1b58a74c696cd696ce0be65c2204ebbc60;hp=ccdd889e749056433752c4c17cefdca8091f3641;hpb=1076f424d4e7f785582c45d58bf8af988096891d;p=cc0%2Fargeo-build.git diff --git a/src/org/argeo/build/Repackage.java b/src/org/argeo/build/Repackage.java index ccdd889..d021674 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,8 +149,10 @@ public class Repackage { EXPORT_PACKAGE("Export-Package"), // /** OSGi imported packages list. */ IMPORT_PACKAGE("Import-Package"), // - /** OSGi path to embedded jar. */ - BUNDLE_CLASSPATH("Bundle-Classpath"), // +// /** OSGi required bundles. */ +// REQUIRE_BUNDLE("Require-Bundle"), // +// /** OSGi path to embedded jar. */ +// BUNDLE_CLASSPATH("Bundle-Classpath"), // // Java /** Java module name. */ AUTOMATIC_MODULE_NAME("Automatic-Module-Name"), // @@ -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,8 +1129,9 @@ public class Repackage { Files.copy(jarIn, target); // native libraries + 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)); @@ -1149,8 +1153,11 @@ public class Repackage { Files.delete(targetDll); Files.copy(target, targetDll); } - Files.delete(target); - origin.deleted.add(bundleDir.relativize(target).toString()); + + if (removeDllFromJar) { + Files.delete(target); + origin.deleted.add(bundleDir.relativize(target).toString()); + } } logger.log(TRACE, () -> "Copied " + target); } @@ -1212,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":