X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=src%2Forg%2Fargeo%2Fbuild%2FRepackage.java;h=1ea7d536531ea298a0783463f471a4cd0ac4ac09;hb=36de0fa961a98223dd569c399baf890d9cc0d643;hp=89522c03c1c61e56c705dffc514542bb4d75dad0;hpb=c86193390ccef1147502baaa249d89695bc47985;p=cc0%2Fargeo-build.git diff --git a/src/org/argeo/build/Repackage.java b/src/org/argeo/build/Repackage.java index 89522c0..1ea7d53 100644 --- a/src/org/argeo/build/Repackage.java +++ b/src/org/argeo/build/Repackage.java @@ -15,6 +15,7 @@ import static org.argeo.build.Repackage.ManifestHeader.ARGEO_ORIGIN_M2_MERGE; import static org.argeo.build.Repackage.ManifestHeader.ARGEO_ORIGIN_M2_REPO; import static org.argeo.build.Repackage.ManifestHeader.ARGEO_ORIGIN_NO_METADATA_GENERATION; import static org.argeo.build.Repackage.ManifestHeader.ARGEO_ORIGIN_URI; +import static org.argeo.build.Repackage.ManifestHeader.AUTOMATIC_MODULE_NAME; import static org.argeo.build.Repackage.ManifestHeader.BUNDLE_LICENSE; import static org.argeo.build.Repackage.ManifestHeader.BUNDLE_SYMBOLICNAME; import static org.argeo.build.Repackage.ManifestHeader.BUNDLE_VERSION; @@ -193,9 +194,9 @@ public class Repackage { * Subdirectory of the jar file where origin informations (changes, legal * notices etc. are stored) */ - final static String A2_ORIGIN = "A2-ORIGIN"; + final static String ARGEO_ORIGIN = "ARGEO-ORIGIN"; /** File detailing modifications to the original component. */ - final static String CHANGES = A2_ORIGIN + "/changes"; + final static String CHANGES = ARGEO_ORIGIN + "/changes"; /** * Name of the file at the root of the repackaged jar, which prominently * notifies that the component has be repackaged. @@ -404,7 +405,12 @@ public class Repackage { } String m2Coordinates = fileProps.getProperty(ARGEO_ORIGIN_M2.toString()); M2Artifact artifact = new M2Artifact(m2Coordinates); - artifact.setVersion(m2Version); + if (artifact.getVersion() == null) { + artifact.setVersion(m2Version); + } else { + logger.log(WARNING, p.getFileName() + " : Using version " + artifact.getVersion() + + " specified in descriptor rather than " + m2Version + " specified in " + COMMON_BND); + } // prepare manifest entries Properties mergeProps = new Properties(); @@ -453,13 +459,20 @@ public class Repackage { Path targetCategoryBase = a2Base.resolve(category); Properties mergeProps = new Properties(); + // first, load common properties + Path commonBnd = duDir.resolve(COMMON_BND); + if (Files.exists(commonBnd)) + try (InputStream in = Files.newInputStream(commonBnd)) { + mergeProps.load(in); + } + // then, the merge properties themselves try (InputStream in = Files.newInputStream(mergeBnd)) { mergeProps.load(in); } String m2Version = mergeProps.getProperty(ARGEO_ORIGIN_M2.toString()); if (m2Version == null) { - logger.log(WARNING, "Ignoring " + duDir + " as it is not an M2-based distribution unit"); + logger.log(WARNING, "Ignoring merging in " + duDir + " as it is not an M2-based distribution unit"); return;// ignore, this is probably an Eclipse archive } if (!m2Version.startsWith(":")) { @@ -527,7 +540,7 @@ public class Repackage { continue entries; } if (entry.getName().equals("META-INF/MANIFEST.MF")) { - Path originalManifest = bundleDir.resolve(A2_ORIGIN).resolve(artifact.getGroupId()) + Path originalManifest = bundleDir.resolve(ARGEO_ORIGIN).resolve(artifact.getGroupId()) .resolve(artifact.getArtifactId()).resolve("MANIFEST.MF"); Files.createDirectories(originalManifest.getParent()); try (OutputStream out = Files.newOutputStream(originalManifest)) { @@ -542,7 +555,7 @@ public class Repackage { || entry.getName().endsWith("LICENSE") || entry.getName().endsWith("LICENSE.md") || entry.getName().endsWith("LICENSE-notice.md") || entry.getName().endsWith("COPYING") || entry.getName().endsWith("COPYING.LESSER")) { - Path artifactOriginDir = bundleDir.resolve(A2_ORIGIN).resolve(artifact.getGroupId()) + Path artifactOriginDir = bundleDir.resolve(ARGEO_ORIGIN).resolve(artifact.getGroupId()) .resolve(artifact.getArtifactId()); Path target = artifactOriginDir.resolve(entry.getName()); Files.createDirectories(target.getParent()); @@ -977,7 +990,7 @@ public class Repackage { // copy original MANIFEST if (sourceManifest != null) { - Path originalManifest = bundleDir.resolve(A2_ORIGIN).resolve("MANIFEST.MF"); + Path originalManifest = bundleDir.resolve(ARGEO_ORIGIN).resolve("MANIFEST.MF"); Files.createDirectories(originalManifest.getParent()); try (OutputStream out = Files.newOutputStream(originalManifest)) { sourceManifest.write(out); @@ -1107,6 +1120,9 @@ public class Repackage { if (wasDifferent && !keepPrevious) { if (IMPORT_PACKAGE.toString().equals(key) || EXPORT_PACKAGE.toString().equals(key)) logger.log(TRACE, () -> file.getFileName() + ": " + key + " was modified"); + else if (BUNDLE_SYMBOLICNAME.toString().equals(key) || AUTOMATIC_MODULE_NAME.toString().equals(key)) + logger.log(DEBUG, + file.getFileName() + ": " + key + " was " + previousValue + ", overridden with " + value); else logger.log(WARNING, file.getFileName() + ": " + key + " was " + previousValue + ", overridden with " + value);