if ("".equals(m2Coordinates))
continue artifacts;
DefaultArtifact artifact = new DefaultArtifact(m2Coordinates.trim());
- artifact.setVersion(m2Version);
+ if (artifact.getVersion() == null)
+ artifact.setVersion(m2Version);
URL url = MavenConventionsUtils.mavenRepoUrl(repoStr, artifact);
Path downloaded = download(url, originBase, artifact.toM2Coordinates() + ".jar");
JarEntry entry;
continue entries;
if (entry.getName().endsWith(".RSA") || entry.getName().endsWith(".SF"))
continue entries;
+ if (entry.getName().startsWith("META-INF/versions/"))
+ continue entries;
+ if (entry.getName().startsWith("META-INF/maven/"))
+ continue entries;
+ if (entry.getName().equals("module-info.class"))
+ continue entries;
+ if (entry.getName().equals("META-INF/NOTICE"))
+ continue entries;
+ if (entry.getName().equals("META-INF/LICENSE"))
+ continue entries;
Path target = targetBundleDir.resolve(entry.getName());
Files.createDirectories(target.getParent());
if (!Files.exists(target)) {
} else {
if (entry.getName().startsWith("META-INF/services/")) {
try (OutputStream out = Files.newOutputStream(target, StandardOpenOption.APPEND)) {
+ out.write("\n".getBytes());
jarIn.transferTo(out);
+ if (logger.isLoggable(DEBUG))
+ logger.log(DEBUG, "Appended " + entry.getName());
}
+ } else if (entry.getName().startsWith("org/apache/batik/")) {
+ logger.log(Level.WARNING, "Skip " + entry.getName());
+ continue entries;
} else {
throw new IllegalStateException("File " + target + " already exists");
}
// TODO make it less dangerous?
if (Files.exists(targetSourceDir)) {
- deleteDirectory(targetSourceDir);
+// deleteDirectory(targetSourceDir);
} else {
Files.createDirectories(targetSourceDir);
}
continue entries;
if (entry.getName().startsWith("META-INF"))// skip META-INF entries
continue entries;
+ if (entry.getName().startsWith("module-info.java"))// skip META-INF entries
+ continue entries;
Path target = targetSourceDir.resolve(entry.getName());
Files.createDirectories(target.getParent());
- Files.copy(jarIn, target);
- logger.log(Level.TRACE, () -> "Copied source " + target);
+ if (!Files.exists(target)) {
+ Files.copy(jarIn, target);
+ logger.log(Level.TRACE, () -> "Copied source " + target);
+ } else {
+ logger.log(Level.WARNING, () -> target + " already exists, skipping...");
+ }
}
}
DefaultNameVersion nameVersion;
Path targetBundleDir;
try (JarInputStream jarIn = new JarInputStream(Files.newInputStream(file), false)) {
- Manifest manifest = new Manifest(jarIn.getManifest());
+ Manifest sourceManifest = jarIn.getManifest();
+ Manifest manifest = sourceManifest != null ? new Manifest(sourceManifest) : new Manifest();
// remove problematic entries in MANIFEST
manifest.getEntries().clear();
// factory.processCategory(descriptorsBase.resolve("org.argeo.tp"));
// factory.processCategory(descriptorsBase.resolve("org.argeo.tp.apache"));
// factory.processCategory(descriptorsBase.resolve("org.argeo.tp.formats"));
- factory.processCategory(descriptorsBase.resolve("org.argeo.tp.gis"));
+ factory.processCategory(descriptorsBase.resolve("org.argeo.tp.formats"));
System.exit(0);
// Eclipse