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;
* 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.
}
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();
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(":")) {
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)) {
|| 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());
// 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);
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);