]> git.argeo.org Git - cc0/argeo-build.git/blobdiff - src/org/argeo/build/Repackage.java
Add README
[cc0/argeo-build.git] / src / org / argeo / build / Repackage.java
index 38f8e3f79343c99ca0b393bead854bff6b3ee851..037ddbd7cd26b2325d64126a34ececfc32370219 100644 (file)
@@ -7,6 +7,7 @@ import static org.argeo.build.Repackage.ManifestConstants.EXPORT_PACKAGE;
 import static org.argeo.build.Repackage.ManifestConstants.SLC_ORIGIN_M2;
 import static org.argeo.build.Repackage.ManifestConstants.SLC_ORIGIN_M2_REPO;
 
+import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -310,6 +311,10 @@ public class Repackage {
                mergeProps.put(ManifestConstants.BUNDLE_VERSION.toString(), m2Version);
 
                String artifactsStr = mergeProps.getProperty(ManifestConstants.SLC_ORIGIN_M2_MERGE.toString());
+               if (artifactsStr == null)
+                       throw new IllegalArgumentException(
+                                       mergeBnd + ": " + ManifestConstants.SLC_ORIGIN_M2_MERGE + " must be set");
+
                String repoStr = mergeProps.containsKey(SLC_ORIGIN_M2_REPO.toString())
                                ? mergeProps.getProperty(SLC_ORIGIN_M2_REPO.toString())
                                : null;
@@ -507,11 +512,15 @@ public class Repackage {
                        throws IOException {
                if (sourceBundles)
                        return;
-               M2Artifact sourcesArtifact = new M2Artifact(artifact.toM2Coordinates(), "sources");
-               URL sourcesUrl = M2ConventionsUtils.mavenRepoUrl(repoStr, sourcesArtifact);
-               Path sourcesDownloaded = download(sourcesUrl, originBase, artifact, true);
-               processM2SourceJar(sourcesDownloaded, targetBundleDir);
-               logger.log(Level.TRACE, () -> "Processed source " + sourcesDownloaded);
+               try {
+                       M2Artifact sourcesArtifact = new M2Artifact(artifact.toM2Coordinates(), "sources");
+                       URL sourcesUrl = M2ConventionsUtils.mavenRepoUrl(repoStr, sourcesArtifact);
+                       Path sourcesDownloaded = download(sourcesUrl, originBase, artifact, true);
+                       processM2SourceJar(sourcesDownloaded, targetBundleDir);
+                       logger.log(Level.TRACE, () -> "Processed source " + sourcesDownloaded);
+               } catch (Exception e) {
+                       logger.log(Level.ERROR, () -> "Cannot download source for  " + artifact);
+               }
 
        }
 
@@ -972,7 +981,8 @@ public class Repackage {
                                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                                        if (file.getFileName().toString().equals("MANIFEST.MF"))
                                                return super.visitFile(file, attrs);
-                                       JarEntry entry = new JarEntry(bundleDir.relativize(file).toString());
+                                       JarEntry entry = new JarEntry(
+                                                       bundleDir.relativize(file).toString().replace(File.separatorChar, '/'));
                                        jarOut.putNextEntry(entry);
                                        Files.copy(file, jarOut);
                                        return super.visitFile(file, attrs);