X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=src%2Forg%2Fargeo%2Fbuild%2FRepackage.java;h=5b5247bcd999a4a25b44e57568b67eb73f3dd162;hb=0180a72a24e225943ee2b7c7ebd99e4ee91529c5;hp=b594f3a19b44e4aff5ee3d62a772e845a8928225;hpb=9c4c34355d1c499d63f698d2c92d03e3e8253919;p=cc0%2Fargeo-build.git diff --git a/src/org/argeo/build/Repackage.java b/src/org/argeo/build/Repackage.java index b594f3a..5b5247b 100644 --- a/src/org/argeo/build/Repackage.java +++ b/src/org/argeo/build/Repackage.java @@ -119,6 +119,8 @@ public class Repackage { /** Deletes remaining sub directories. */ void cleanPreviousFailedBuild(Path categoryPath) { Path outputCategoryPath = a2Base.resolve(categoryPath); + if (!Files.exists(outputCategoryPath)) + return; // clean previous failed build try { for (Path subDir : Files.newDirectoryStream(outputCategoryPath, (d) -> Files.isDirectory(d))) { @@ -436,7 +438,7 @@ public class Repackage { if (artifact.getVersion() == null) { artifact.setVersion(m2Version); } else { - logger.log(WARNING, p.getFileName() + " : Using version " + artifact.getVersion() + logger.log(DEBUG, p.getFileName() + " : Using version " + artifact.getVersion() + " specified in descriptor rather than " + m2Version + " specified in " + COMMON_BND); } @@ -576,9 +578,9 @@ public class Repackage { } if (entry.getName().endsWith("NOTICE") || entry.getName().endsWith("NOTICE.txt") - || entry.getName().endsWith("LICENSE") || entry.getName().endsWith("LICENSE.md") - || entry.getName().endsWith("LICENSE-notice.md") || entry.getName().endsWith("COPYING") - || entry.getName().endsWith("COPYING.LESSER")) { + || entry.getName().endsWith("NOTICE.md") || 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(ARGEO_ORIGIN).resolve(artifact.getGroupId()) .resolve(artifact.getArtifactId()); Path target = artifactOriginDir.resolve(entry.getName()); @@ -932,6 +934,10 @@ public class Repackage { map.put(key.toString(), commonProps.getProperty(key.toString())); A2Origin origin = new A2Origin(); Path bundleDir = processBundleJar(file, targetCategoryBase, map, origin); + if (bundleDir == null) { + logger.log(WARNING, "No bundle dir created for " + file + ", skipping..."); + return FileVisitResult.CONTINUE; + } origins.put(bundleDir, origin); logger.log(DEBUG, () -> "Processed " + file); } @@ -1015,6 +1021,8 @@ public class Repackage { Manifest sourceManifest; try (JarInputStream jarIn = new JarInputStream(Files.newInputStream(file), false)) { sourceManifest = jarIn.getManifest(); + if (sourceManifest == null) + logger.log(WARNING, file + " has no manifest"); manifest = sourceManifest != null ? new Manifest(sourceManifest) : new Manifest(); String rawSourceSymbolicName = manifest.getMainAttributes().getValue(BUNDLE_SYMBOLICNAME.toString()); @@ -1037,6 +1045,8 @@ public class Repackage { nameVersion = new NameVersion(ourSymbolicName, ourVersion); } else { nameVersion = nameVersionFromManifest(manifest); + if (nameVersion == null) + throw new IllegalStateException("Could not compute name/version from Manifest"); if (ourVersion != null && !nameVersion.getVersion().equals(ourVersion)) { logger.log(WARNING, "Original version is " + nameVersion.getVersion() + " while new version is " + ourVersion); @@ -1333,15 +1343,17 @@ public class Repackage { } /** - * Effectively download. Synchronised in order to avoid downloading twice in - * parallel. + * Effectively download an archive. */ - synchronized Path downloadArchive(URL url, Path dir) throws IOException { + Path downloadArchive(URL url, Path dir) throws IOException { return download(url, dir, (String) null); } - /** Effectively download. */ - Path download(URL url, Path dir, String name) throws IOException { + /** + * Effectively download. Synchronised in order to avoid downloading twice in + * parallel. + */ + synchronized Path download(URL url, Path dir, String name) throws IOException { Path dest; if (name == null) {