X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.slc.factory%2Fsrc%2Forg%2Fargeo%2Fslc%2Ffactory%2FA2Factory.java;h=8c5548ab94310a2eb25ca490d4c831d7a6cedfed;hb=c4f781b8b343eb0c72e774114e8e8efcde750b7f;hp=7048a39edb47ff534efbb59930e2550668f4077a;hpb=1bb5dafb8b8ba4b69a7bed7242bb8724c79de583;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.factory/src/org/argeo/slc/factory/A2Factory.java b/org.argeo.slc.factory/src/org/argeo/slc/factory/A2Factory.java index 7048a39ed..8c5548ab9 100644 --- a/org.argeo.slc.factory/src/org/argeo/slc/factory/A2Factory.java +++ b/org.argeo.slc.factory/src/org/argeo/slc/factory/A2Factory.java @@ -314,7 +314,7 @@ public class A2Factory { logger.log(Level.WARNING, "Skip " + entry.getName()); continue entries; } else { - throw new IllegalStateException("File " + target + " already exists"); + throw new IllegalStateException("File " + target + " from " + artifact + " already exists"); } } logger.log(Level.TRACE, () -> "Copied " + target); @@ -324,6 +324,21 @@ public class A2Factory { downloadAndProcessM2Sources(repoStr, artifact, targetBundleDir); } + // additional service files + Path servicesDir = duDir.resolve("services"); + if (Files.exists(servicesDir)) { + for (Path p : Files.newDirectoryStream(servicesDir)) { + Path target = targetBundleDir.resolve("META-INF/services/").resolve(p.getFileName()); + try (InputStream in = Files.newInputStream(p); + OutputStream out = Files.newOutputStream(target, StandardOpenOption.APPEND);) { + out.write("\n".getBytes()); + in.transferTo(out); + if (logger.isLoggable(DEBUG)) + logger.log(DEBUG, "Appended " + p); + } + } + } + Map entries = new TreeMap<>(); try (Analyzer bndAnalyzer = new Analyzer()) { bndAnalyzer.setProperties(mergeProps); @@ -344,7 +359,7 @@ public class A2Factory { && value.toString().equals("osgi.ee;filter:=\"(&(osgi.ee=JavaSE)(version=1.1))\"")) continue keys;// hack for very old classes entries.put(key.toString(), value.toString()); - logger.log(DEBUG, () -> key + "=" + value); + //logger.log(DEBUG, () -> key + "=" + value); } } catch (Exception e) { @@ -358,6 +373,13 @@ public class A2Factory { String value = entries.get(key); manifest.getMainAttributes().putValue(key, value); } + + // Use Maven version as Bundle-Version + String bundleVersion = manifest.getMainAttributes().getValue(ManifestConstants.BUNDLE_VERSION.toString()); + if (bundleVersion == null || bundleVersion.trim().equals("0")) { + // TODO check why it is sometimes set to "0" + manifest.getMainAttributes().putValue(ManifestConstants.BUNDLE_VERSION.toString(), m2Version); + } try (OutputStream out = Files.newOutputStream(manifestPath)) { manifest.write(out); } @@ -421,7 +443,7 @@ public class A2Factory { && value.toString().equals("osgi.ee;filter:=\"(&(osgi.ee=JavaSE)(version=1.1))\"")) continue keys;// hack for very old classes additionalEntries.put(key.toString(), value.toString()); - logger.log(DEBUG, () -> key + "=" + value); + //logger.log(DEBUG, () -> key + "=" + value); } } @@ -876,7 +898,7 @@ public class A2Factory { // 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.formats")); + factory.processCategory(descriptorsBase.resolve("org.argeo.tp.gis")); System.exit(0); // Eclipse