Synchronise all repackage downloads.
[cc0/argeo-build.git] / src / org / argeo / build / Repackage.java
index 1a1f5c1d4b26fdfb768a476da0e1c832daa20ea2..9827b06622295d6bd97673b4c34a32834df01ab7 100644 (file)
@@ -1045,14 +1045,8 @@ public class Repackage {
                                nameVersion = new NameVersion(ourSymbolicName, ourVersion);
                        } else {
                                nameVersion = nameVersionFromManifest(manifest);
-                               if (nameVersion == null) {
-                                       // hack for weird issue with JNA jar in Eclipse
-                                       String[] arr_ = file.getFileName().toString().split("_");
-                                       String v = arr_[1].substring(0, arr_[1].length() - 4);// remove .jar
-                                       nameVersion = new NameVersion(arr_[0], v);
-                                       logger.log(WARNING, file + " has no symbolic name, trying " + nameVersion.getName() + "/"
-                                                       + nameVersion.getVersion() + " based on its name");
-                               }
+                               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);
@@ -1349,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) {
@@ -1485,13 +1481,8 @@ public class Repackage {
 
                        // license
                        String spdxLicenseId = SPDX_LICENSE_IDENTIFIER.get(mapping);
-                       if (spdxLicenseId == null) {
-                               if (jarDir.getFileName().toString().startsWith("com.sun.jna"))
-                                       spdxLicenseId = "Apache-2.0 OR LGPL-2.1";
-                               else
-                                       throw new IllegalStateException(
-                                                       "An SPDX license id must have beend defined for " + jarDir + " at this stage.");
-                       }
+                       if (spdxLicenseId == null)
+                               throw new IllegalStateException("An SPDX license id must have beend defined at this stage.");
                        writer.append("\nIt is redistributed under the following license:\n\n");
                        writer.append("SPDX-Identifier: " + spdxLicenseId + "\n\n");