X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fargeo%2Fbuild%2FRepackage.java;h=c3fbcaf8850278db4fb2e67e1b2e100cf76770c5;hb=02cad44ed0bd3929ef5d6deb175b1673f5096e3f;hp=3c03a10cee78dffee8b01b09b2678667dbcd6af9;hpb=49e764ff86e256549b22d16f66369a73cfbc5d3d;p=cc0%2Fargeo-build.git diff --git a/src/org/argeo/build/Repackage.java b/src/org/argeo/build/Repackage.java index 3c03a10..c3fbcaf 100644 --- a/src/org/argeo/build/Repackage.java +++ b/src/org/argeo/build/Repackage.java @@ -584,6 +584,10 @@ public class Repackage { } else if (entry.getName().startsWith("org/apache/batik/")) { logger.log(TRACE, "Skip " + entry.getName()); continue entries; + } else if (entry.getName().startsWith("META-INF/NOTICE")) { + logger.log(WARNING, "Skip " + entry.getName() + " from " + artifact); + // TODO merge them? + continue entries; } else { throw new IllegalStateException("File " + target + " from " + artifact + " already exists"); } @@ -683,8 +687,7 @@ public class Repackage { } if (!fileProps.containsKey(EXPORT_PACKAGE.toString())) { - fileProps.put(EXPORT_PACKAGE.toString(), - "*;version=\"" + fileProps.getProperty(BUNDLE_VERSION.toString()) + "\""); + fileProps.put(EXPORT_PACKAGE.toString(), "*"); } // BND analysis @@ -1025,7 +1028,14 @@ public class Repackage { nameVersion.setName(ourSymbolicName); } } + + // create bundle dir bundleDir = targetBase.resolve(nameVersion.getName() + "." + nameVersion.getBranch()); + if (Files.exists(bundleDir)) { + logger.log(WARNING, "Bundle dir " + bundleDir + + " already exists, probably from a previous failed build, deleting it..."); + deleteDirectory(bundleDir); + } // copy original MANIFEST if (sourceManifest != null) { @@ -1050,7 +1060,6 @@ public class Repackage { arch = libRelativePath.getName(1).toString(); } -// if (!embed) { // copy entries JarEntry entry; entries: while ((entry = jarIn.getNextJarEntry()) != null) { @@ -1117,7 +1126,6 @@ public class Repackage { origin.deleted.add(bundleDir.relativize(target).toString()); } logger.log(TRACE, () -> "Copied " + target); -// } } } @@ -1130,11 +1138,6 @@ public class Repackage { entries.get(BUNDLE_SYMBOLICNAME.toString()) + ";singleton:=true"); } -// if (embed) {// copy embedded jar -// Files.copy(file, bundleDir.resolve(file.getFileName())); -// entries.put(ManifestHeader.BUNDLE_CLASSPATH.toString(), file.getFileName().toString()); -// } - // Final MANIFEST decisions // We also check the original OSGi metadata and compare with our changes for (String key : entries.keySet()) { @@ -1473,30 +1476,31 @@ public class Repackage { if (url != null) { writer.write("which is available here: " + url + "\n"); } else { - logger.log(ERROR, "No licne URL for " + jarDir); + logger.log(ERROR, "No licence URL for " + jarDir); } } - writer.write("\n"); // origin - String m2Repo = ARGEO_ORIGIN_M2_REPO.get(mapping); - String originDesc = ARGEO_ORIGIN_M2.get(mapping); + String originDesc = ARGEO_ORIGIN_URI.get(mapping); if (originDesc != null) - writer.append("The original component has M2 coordinates:\n" + originDesc.replace(',', '\n') + "\n" - + (m2Repo != null ? "\nin M2 repository " + m2Repo + "\n" : "")); + writer.append("\nThe original component comes from " + originDesc + ".\n"); else { - originDesc = ARGEO_ORIGIN_URI.get(mapping); + String m2Repo = ARGEO_ORIGIN_M2_REPO.get(mapping); + originDesc = ARGEO_ORIGIN_M2.get(mapping); if (originDesc != null) - writer.append("The original component comes from " + originDesc + ".\n"); + writer.append("\nThe original component has M2 coordinates:\n" + originDesc.replace(',', '\n') + + "\n" + (m2Repo != null ? "\nin M2 repository " + m2Repo + "\n" : "")); else logger.log(ERROR, "Cannot find origin information in " + jarDir); } String originSources = ARGEO_ORIGIN_SOURCES_URI.get(mapping); if (originSources != null) - writer.append("The original sources come from " + originDesc + ".\n"); + writer.append("\nThe original sources come from " + originSources + ".\n"); - if (!jarDir.getFileName().endsWith(".src")) {// binary archive + if (Files.exists(jarDir.resolve(CHANGES))) writer.append("\nA detailed list of changes is available under " + CHANGES + ".\n"); + + if (!jarDir.getFileName().toString().endsWith(".src")) {// binary archive if (separateSources) writer.append("Corresponding sources are available in the related archive named " + jarDir.toString() + ".src.jar.\n"); @@ -1504,7 +1508,6 @@ public class Repackage { writer.append("Corresponding sources are available under OSGI-OPT/src.\n"); } } - } /** @@ -1523,6 +1526,8 @@ public class Repackage { /** Append changes to the A2-ORIGIN/changes file. */ void appendChanges(Path baseDirectory) throws IOException { + if (modified.isEmpty() && deleted.isEmpty() && added.isEmpty() && moved.isEmpty()) + return; // no changes Path changesFile = baseDirectory.resolve(CHANGES); Files.createDirectories(changesFile.getParent()); try (BufferedWriter writer = Files.newBufferedWriter(changesFile, APPEND, CREATE)) {