Fix copy of original MANIFEST
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 19 Mar 2023 08:05:28 +0000 (09:05 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 19 Mar 2023 08:05:28 +0000 (09:05 +0100)
src/org/argeo/build/Repackage.java

index 22c6ce135e2996e98a7140a7d5a8ddc425c7eb13..c986e1ef50aa8a66333adc444cea155b3ecb86a9 100644 (file)
@@ -405,10 +405,6 @@ public class Repackage {
                                                origin.deleted.add("additional Java versions (META-INF/versions) from " + artifact);
                                                continue entries;
                                        }
-                                       if (entry.getName().equals("META-INF/DEPENDENCIES")) {
-                                               origin.deleted.add("dependency list (META-INF/DEPENDENCIES) from " + artifact);
-                                               continue entries;
-                                       }
                                        if (entry.getName().startsWith("META-INF/maven/")) {
                                                origin.deleted.add("Maven information (META-INF/maven) from " + artifact);
                                                continue entries;
@@ -417,6 +413,17 @@ public class Repackage {
                                                origin.deleted.add("cache directory (.cache) from " + artifact);
                                                continue entries;
                                        }
+                                       if (entry.getName().equals("META-INF/MANIFEST.MF")) {
+                                               Path originalManifest = bundleDir.resolve(A2_ORIGIN).resolve(artifact.getGroupId())
+                                                               .resolve(artifact.getArtifactId()).resolve("MANIFEST.MF");
+                                               Files.createDirectories(originalManifest.getParent());
+                                               try (OutputStream out = Files.newOutputStream(originalManifest)) {
+                                                       Files.copy(jarIn, originalManifest);
+                                               }
+                                               origin.added.add(
+                                                               "original MANIFEST (" + bundleDir.relativize(originalManifest) + ") from " + artifact);
+                                               continue entries;
+                                       }
 
                                        if (entry.getName().endsWith("NOTICE") || entry.getName().endsWith("NOTICE.txt")
                                                        || entry.getName().endsWith("LICENSE") || entry.getName().endsWith("LICENSE.md")
@@ -843,8 +850,9 @@ public class Repackage {
                        }
                        bundleDir = targetBase.resolve(nameVersion.getName() + "." + nameVersion.getBranch());
 
-                       if (sourceManifest != null) {
+                       if (sourceManifest != null) {// copy original MANIFEST
                                Path originalManifest = bundleDir.resolve(A2_ORIGIN).resolve("MANIFEST.MF");
+                               Files.createDirectories(originalManifest.getParent());
                                try (OutputStream out = Files.newOutputStream(originalManifest)) {
                                        sourceManifest.write(null);
                                }