Update all third-parties to their latest compatible version
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 2 Nov 2022 07:50:11 +0000 (08:50 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 2 Nov 2022 07:50:11 +0000 (08:50 +0100)
65 files changed:
repackage/org.argeo.tp.apache/apache-sshd/common.bnd
repackage/org.argeo.tp.apache/apache-sshd/merge.bnd
repackage/org.argeo.tp.apache/apache-sshd/org.apache.sshd.common.bnd.retired [deleted file]
repackage/org.argeo.tp.apache/apache-sshd/org.apache.sshd.core.bnd.retired [deleted file]
repackage/org.argeo.tp.apache/batik/common.bnd
repackage/org.argeo.tp.apache/batik/merge.bnd
repackage/org.argeo.tp.apache/batik/org.apache.batik.constants.bnd
repackage/org.argeo.tp.apache/batik/org.apache.batik.css.bnd
repackage/org.argeo.tp.apache/batik/org.apache.batik.i18n.bnd
repackage/org.argeo.tp.apache/batik/org.apache.batik.util.bnd
repackage/org.argeo.tp.apache/org.apache.commons.compress.bnd
repackage/org.argeo.tp.apache/org.apache.commons.httpclient.bnd [deleted file]
repackage/org.argeo.tp.apache/org.apache.tika.core.bnd [deleted file]
repackage/org.argeo.tp.apache/org.apache.tika.parsers.bnd [deleted file]
repackage/org.argeo.tp.apache/org.apache.tomcat.jni.bnd
repackage/org.argeo.tp.apache/org.apache.xalan.bnd.retired [deleted file]
repackage/org.argeo.tp.apache/org.apache.xalan.serializer.bnd.retired [deleted file]
repackage/org.argeo.tp.apache/org.apache.xmlgraphics.bnd.retired [deleted file]
repackage/org.argeo.tp.apache/xalan/merge.bnd
repackage/org.argeo.tp.formats/com.dd.plist.bnd [new file with mode: 0644]
repackage/org.argeo.tp.formats/com.drew.metadata.bnd
repackage/org.argeo.tp.formats/com.healthmarketscience.jackcess.bnd [new file with mode: 0644]
repackage/org.argeo.tp.formats/com.lowagie.bnd
repackage/org.argeo.tp.formats/com.pff.bnd [new file with mode: 0644]
repackage/org.argeo.tp.formats/de.rototor.pdfbox.graphics2d.bnd
repackage/org.argeo.tp.formats/org.apache.commons.imaging.bnd
repackage/org.argeo.tp.formats/org.apache.commons.math3.bnd
repackage/org.argeo.tp.formats/org.apache.commons.text.bnd
repackage/org.argeo.tp.formats/org.apache.pdfbox.jempbox.bnd
repackage/org.argeo.tp.formats/org.apache.xml.security.bnd
repackage/org.argeo.tp.formats/pdfbox/common.bnd
repackage/org.argeo.tp.formats/tika/merge.bnd [new file with mode: 0644]
repackage/org.argeo.tp.gis/Repackage.java [deleted file]
repackage/org.argeo.tp.gis/geotools/merge.bnd
repackage/org.argeo.tp.gis/org.json.simple.bnd.retired [deleted file]
repackage/org.argeo.tp.gis/org.locationtech.jts.bnd
repackage/org.argeo.tp.gis/units/merge.bnd
repackage/org.argeo.tp.jcr/com.google.guava.bnd.retired [deleted file]
repackage/org.argeo.tp.jcr/com.google.guava.failureaccess.bnd.retired [deleted file]
repackage/org.argeo.tp.jcr/jackrabbit/common.bnd
repackage/org.argeo.tp.jcr/jackrabbit/org.apache.jackrabbit.api.bnd.retired [deleted file]
repackage/org.argeo.tp.jcr/oak/common.bnd
repackage/org.argeo.tp.jetty/jetty-websocket/merge.bnd
repackage/org.argeo.tp.jetty/jetty/common.bnd
repackage/org.argeo.tp.poi/log4j/common.bnd [new file with mode: 0644]
repackage/org.argeo.tp.poi/log4j/org.apache.logging.log4j.api.bnd [new file with mode: 0644]
repackage/org.argeo.tp.poi/org.apache.xmlbeans.bnd
repackage/org.argeo.tp.poi/poi/common.bnd
repackage/org.argeo.tp.sdk/junit-jupiter/merge.bnd
repackage/org.argeo.tp.sdk/junit-platform/merge.bnd
repackage/org.argeo.tp.sdk/org.eclipse.jdt.core.compiler.batch.bnd
repackage/org.argeo.tp.sdk/org.eclipse.jgit.bnd
repackage/org.argeo.tp.sdk/org.graalvm.bnd.retired [deleted file]
repackage/org.argeo.tp.sdk/org.junit.vintage.bnd
repackage/org.argeo.tp/bouncycastle/common.bnd
repackage/org.argeo.tp/jackson/common.bnd
repackage/org.argeo.tp/jakarta.mail.bnd [deleted file]
repackage/org.argeo.tp/jakarta.servlet.api.bnd [deleted file]
repackage/org.argeo.tp/javax.mail.bnd [new file with mode: 0644]
repackage/org.argeo.tp/javax.servlet.bnd [new file with mode: 0644]
repackage/org.argeo.tp/org.postgresql.jdbc42.bnd
repackage/org.argeo.tp/slf4j/org.slf4j.api.bnd
repackage/org.argeo.tp/slf4j/org.slf4j.commons.logging.bnd
repackage/org.argeo.tp/slf4j/org.slf4j.log4j.bnd.deactivated [deleted file]
sdk/argeo-build

index f3f8597c6fcf8955972c31bd947681c0ef981338..d73cbb30057c971039d5f4c41055415875e7dae6 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: Apache-2.0
-SLC-Origin-M2: :2.8.0
\ No newline at end of file
+SLC-Origin-M2: :2.9.1
\ No newline at end of file
index ce577336d9d7b12816edeba761f0268013226ba6..0af7209f30069296ac9d43e020faa881d4665c8d 100644 (file)
@@ -1,6 +1,6 @@
 Bundle-License: Apache-2.0
 Bundle-SymbolicName: org.apache.sshd
-SLC-Origin-M2: :2.8.0
+SLC-Origin-M2: :2.9.1
 Export-Package: org.apache.*
 Import-Package: \
 org.apache.tomcat.jni.*;resolution:=optional,\
diff --git a/repackage/org.argeo.tp.apache/apache-sshd/org.apache.sshd.common.bnd.retired b/repackage/org.argeo.tp.apache/apache-sshd/org.apache.sshd.common.bnd.retired
deleted file mode 100644 (file)
index 02377e2..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-Bundle-SymbolicName: org.apache.sshd.common
-Fragment-Host: org.apache.sshd.core
-Import-Package: \
-org.bouncycastle.jce.provider.*;resolution:=optional,\
-net.i2p.crypto.eddsa.*;resolution:=optional,\
-org.slf4j,\
-org.slf4j.event,\
-org.slf4j.helpers,\
-*
-
-SLC-Origin-M2: org.apache.sshd:sshd-common
diff --git a/repackage/org.argeo.tp.apache/apache-sshd/org.apache.sshd.core.bnd.retired b/repackage/org.argeo.tp.apache/apache-sshd/org.apache.sshd.core.bnd.retired
deleted file mode 100644 (file)
index c3e183a..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-Bundle-SymbolicName: org.apache.sshd.core
-SLC-Origin-M2: org.apache.sshd:sshd-core
-Import-Package: \
-org.apache.tomcat.jni.*;resolution:=optional,\
-org.bouncycastle.crypto.prng,\
-*
\ No newline at end of file
index bc76a97384fad449229f86b2788b29b999351b34..cc6803179836b0cdba07a93217a38723cdf7d573 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: Apache-2.0
-SLC-Origin-M2: :1.14
\ No newline at end of file
+SLC-Origin-M2: :1.16
\ No newline at end of file
index 6c303ef09e9f224e230d487f69971d0a9d43cd4c..3c1a85dd0edc4e38cd1d2bc7225ac907ab7b624c 100644 (file)
@@ -1,6 +1,6 @@
 Bundle-License: Apache-2.0
 Bundle-SymbolicName: org.apache.batik
-SLC-Origin-M2: :1.14
+SLC-Origin-M2: :1.16
 Export-Package: org.apache.*
 Import-Package: \
 org.apache.batik.script.*;resolution:="optional",\
index fea69fa98f57ac0329bce3a0ce0d48f8f69861b9..b8a4c6d9ca30938bc173e702b3b1b7fecbf88362 100644 (file)
@@ -1,2 +1 @@
-Bundle-SymbolicName: org.apache.batik.constants
 SLC-Origin-M2: org.apache.xmlgraphics:batik-constants
index 8ec1225ac21929b39eab459a3aed382dab8b8bfc..001e90e3cea1da2cf7f5e3fa8268013f386a0bae 100644 (file)
@@ -1,2 +1 @@
-Bundle-SymbolicName: org.apache.batik.css
 SLC-Origin-M2: org.apache.xmlgraphics:batik-css
index 321ae882a887259216d8be51002bbd0966e21764..5992e5b6cd9ddd0cf24696251e23c2acf7e943e8 100644 (file)
@@ -1,2 +1 @@
-Bundle-SymbolicName: org.apache.batik.i18n
 SLC-Origin-M2: org.apache.xmlgraphics:batik-i18n
index 0b672dc50bd39f79fa5b69021e26e47ffe6302f9..80371cb1f1369d3517a2407599b3af8b878a65bb 100644 (file)
@@ -1,2 +1 @@
-Bundle-SymbolicName: org.apache.batik.util
 SLC-Origin-M2: org.apache.xmlgraphics:batik-util
index e126b0a3adbc38a63993cb21095802e71fc26698..5a045bd0dd0779992d6031cf0324c97a0b3d6661 100644 (file)
@@ -1,6 +1,6 @@
 Bundle-License: Apache-2.0
 Bundle-SymbolicName: org.apache.commons.compress
-SLC-Origin-M2: org.apache.commons:commons-compress:1.21
+SLC-Origin-M2: org.apache.commons:commons-compress:1.22
 Import-Package: \
 org.brotli.*;resolution:=optional,
 org.tukaani.*;resolution:=optional,
diff --git a/repackage/org.argeo.tp.apache/org.apache.commons.httpclient.bnd b/repackage/org.argeo.tp.apache/org.apache.commons.httpclient.bnd
deleted file mode 100644 (file)
index a064d48..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Bundle-License: Apache-2.0
-Bundle-SymbolicName: org.apache.commons.httpclient
-SLC-Origin-M2: commons-httpclient:commons-httpclient:3.1
diff --git a/repackage/org.argeo.tp.apache/org.apache.tika.core.bnd b/repackage/org.argeo.tp.apache/org.apache.tika.core.bnd
deleted file mode 100644 (file)
index cfe157a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Bundle-License: Apache-2.0
-Bundle-SymbolicName: org.apache.tika.core
-SLC-Origin-M2: org.apache.tika:tika-core:1.28.2
-SLC-Origin-ManifestNotModified: true
diff --git a/repackage/org.argeo.tp.apache/org.apache.tika.parsers.bnd b/repackage/org.argeo.tp.apache/org.apache.tika.parsers.bnd
deleted file mode 100644 (file)
index 90489d3..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Bundle-Activator: org.apache.tika.parser.internal.Activator
-Bundle-License: Apache-2.0
-Bundle-SymbolicName: org.apache.tika.parsers
-Import-Package: *;resolution:=optional
-SLC-Origin-M2: org.apache.tika:tika-parsers:1.28.2
\ No newline at end of file
index 99cb82130149b80c49a1f09f1089fdf0631e875c..dafe8485a813ee109a5ff59c0bbf21bc08ffc769 100644 (file)
@@ -1,3 +1,3 @@
 Bundle-License: Apache-2.0
 # Use Tomcat v9 to stay compatible with JNI library v1.2 provided by Debian 11
-SLC-Origin-M2: org.apache.tomcat:tomcat-jni:9.0.43
\ No newline at end of file
+SLC-Origin-M2: org.apache.tomcat:tomcat-jni:9.0.68
\ No newline at end of file
diff --git a/repackage/org.argeo.tp.apache/org.apache.xalan.bnd.retired b/repackage/org.argeo.tp.apache/org.apache.xalan.bnd.retired
deleted file mode 100644 (file)
index 1d2106b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Bundle-License: Apache-2.0
-Bundle-SymbolicName: org.apache.xalan
-SLC-Origin-M2: xalan:xalan:2.7.2
\ No newline at end of file
diff --git a/repackage/org.argeo.tp.apache/org.apache.xalan.serializer.bnd.retired b/repackage/org.argeo.tp.apache/org.apache.xalan.serializer.bnd.retired
deleted file mode 100644 (file)
index e0fb19c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Bundle-License: Apache-2.0
-Bundle-SymbolicName: org.apache.xalan.serializer
-SLC-Origin-M2: xalan:serializer:2.7.2
\ No newline at end of file
diff --git a/repackage/org.argeo.tp.apache/org.apache.xmlgraphics.bnd.retired b/repackage/org.argeo.tp.apache/org.apache.xmlgraphics.bnd.retired
deleted file mode 100644 (file)
index 254a0af..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Bundle-License: Apache-2.0
-Bundle-SymbolicName: org.apache.xmlgraphics
-SLC-Origin-M2: org.apache.xmlgraphics:xmlgraphics-commons:2.7
index 4c36a94b837f5c90a6addfece9f605c524686485..ca0c4d624ccef09e5741ad18c154c992748e5282 100644 (file)
@@ -1,4 +1,5 @@
 Bundle-SymbolicName: org.apache.xalan
+Bundle-License: Apache-2.0
 SLC-Origin-M2: :2.7.2
 Export-Package: org.apache.*
 SLC-Origin-M2-Merge: \
diff --git a/repackage/org.argeo.tp.formats/com.dd.plist.bnd b/repackage/org.argeo.tp.formats/com.dd.plist.bnd
new file mode 100644 (file)
index 0000000..b1713f0
--- /dev/null
@@ -0,0 +1,2 @@
+Bundle-License: MIT
+SLC-Origin-M2: com.googlecode.plist:dd-plist:1.26
\ No newline at end of file
index f32421ada39114b155cf6aabf5d325f37bc79522..ddb5ffd3cccd892ae3df0cfdfaee1ba8f0756a49 100644 (file)
@@ -1,3 +1,3 @@
 Bundle-License: Apache-2.0
 Bundle-SymbolicName: com.drew.metadata
-SLC-Origin-M2: com.drewnoakes:metadata-extractor:2.16.0
+SLC-Origin-M2: com.drewnoakes:metadata-extractor:2.18.0
diff --git a/repackage/org.argeo.tp.formats/com.healthmarketscience.jackcess.bnd b/repackage/org.argeo.tp.formats/com.healthmarketscience.jackcess.bnd
new file mode 100644 (file)
index 0000000..028a094
--- /dev/null
@@ -0,0 +1,2 @@
+Bundle-License: Apache-2.0
+SLC-Origin-M2: com.healthmarketscience.jackcess:jackcess:4.0.4
\ No newline at end of file
index b8bd29306e8cc88aca50e1d3246829d835311570..9ccb6ad82d367c64fc664a5fe1076f1d468be5c0 100644 (file)
@@ -1,3 +1,3 @@
 Bundle-License: LGPL-2.1
 Bundle-SymbolicName: com.lowagie
-SLC-Origin-M2: com.github.librepdf:openpdf:1.3.27
+SLC-Origin-M2: com.github.librepdf:openpdf:1.3.30
diff --git a/repackage/org.argeo.tp.formats/com.pff.bnd b/repackage/org.argeo.tp.formats/com.pff.bnd
new file mode 100644 (file)
index 0000000..4d2a3be
--- /dev/null
@@ -0,0 +1,2 @@
+Bundle-License: Apache-2.0
+SLC-Origin-M2: com.pff:java-libpst:0.9.3
\ No newline at end of file
index b6f5736c27c47f2fbf0a031bb9a95543a0df44a9..08f21398584484450d68320a9bfa873815fa493a 100644 (file)
@@ -1,3 +1,3 @@
 Bundle-License: Apache-2.0
 Bundle-SymbolicName: de.rototor.pdfbox.graphics2d
-SLC-Origin-M2: de.rototor.pdfbox:graphics2d:0.35
+SLC-Origin-M2: de.rototor.pdfbox:graphics2d:0.41
index 16e088299f17a2f17a6f4955b154dc0e8698fdb6..f0d2123871d4760406a7e25043823e5c9d60c6cf 100644 (file)
@@ -1,4 +1,4 @@
 Bundle-License: Apache-2.0
 Bundle-SymbolicName: org.apache.commons.imaging
-Bundle-Version: 0.99.2
-SLC-Origin-M2: org.apache.commons:commons-imaging:1.0-alpha2
+Bundle-Version: 0.99.3
+SLC-Origin-M2: org.apache.commons:commons-imaging:1.0-alpha3
index cc8d131c5a7ade344ebb9d4b5a763180243bfc03..9ce774147498c0ed3fdf0d435714f7bea1aa42a9 100644 (file)
@@ -1,3 +1,3 @@
 Bundle-License: Apache-2.0
 Bundle-SymbolicName: org.apache.commons.math3
-SLC-Origin-M2: org.apache.commons:commons-math3:3.5
+SLC-Origin-M2: org.apache.commons:commons-math3:3.6.1
index b85c146d9c56c9d3e7986766ea1eedcee98b382c..b14d9b50d730457042b689ec972b1a546b6aea71 100644 (file)
@@ -1,3 +1,3 @@
 Bundle-License: Apache-2.0
 Bundle-SymbolicName: org.apache.commons.text
-SLC-Origin-M2: org.apache.commons:commons-text:1.9
+SLC-Origin-M2: org.apache.commons:commons-text:1.10.0
index 06897792834bf55b953297c200e38c20fe47246d..4edfaa5fbd5f63f864d79d63565c6f0ff43b0db5 100644 (file)
@@ -1,3 +1,3 @@
 Bundle-License: Apache-2.0
 Bundle-SymbolicName: org.apache.pdfbox.jempbox
-SLC-Origin-M2: org.apache.pdfbox:jempbox:1.8.16
+SLC-Origin-M2: org.apache.pdfbox:jempbox:1.8.17
index 8600cbb0e5dd1df70ae489081b9829ff01548810..caf6de4fd360b5b87b0624b00224595f565829eb 100644 (file)
@@ -1,3 +1,3 @@
 Bundle-License: Apache-2.0
 Bundle-SymbolicName: org.apache.xml.security
-SLC-Origin-M2: org.apache.santuario:xmlsec:2.1.2
+SLC-Origin-M2: org.apache.santuario:xmlsec:2.3.2
index 165d7c4c6aeb743e05a15065fc635f7b44f2d283..9dcfa6c0b93289b5c6ead43c0adda321dcd8fbf5 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: Apache-2.0
-SLC-Origin-M2: :2.0.25
\ No newline at end of file
+SLC-Origin-M2: :2.0.27
\ No newline at end of file
diff --git a/repackage/org.argeo.tp.formats/tika/merge.bnd b/repackage/org.argeo.tp.formats/tika/merge.bnd
new file mode 100644 (file)
index 0000000..6350726
--- /dev/null
@@ -0,0 +1,16 @@
+Bundle-SymbolicName: org.apache.tika
+Bundle-License: Apache-2.0
+SLC-Origin-M2: :2.5.0
+Export-Package: org.apache.*
+Import-Package: *;resolution:=optional
+SLC-Origin-M2-Merge: \
+org.apache.tika:tika-core,\
+org.apache.tika:tika-parser-zip-commons,\
+org.apache.tika:tika-parser-xmp-commons,\
+org.apache.tika:tika-parser-digest-commons,\
+org.apache.tika:tika-parser-pdf-module,\
+org.apache.tika:tika-parser-image-module,\
+org.apache.tika:tika-parser-text-module,\
+org.apache.tika:tika-parser-xml-module,\
+org.apache.tika:tika-parser-microsoft-module,\
+org.apache.tika:tika-parser-miscoffice-module,\
\ No newline at end of file
diff --git a/repackage/org.argeo.tp.gis/Repackage.java b/repackage/org.argeo.tp.gis/Repackage.java
deleted file mode 100644 (file)
index d902efb..0000000
+++ /dev/null
@@ -1,1174 +0,0 @@
-package org.argeo.build;
-
-import static java.lang.System.Logger.Level.DEBUG;
-import static org.argeo.build.Repackage.ManifestConstants.BUNDLE_SYMBOLICNAME;
-import static org.argeo.build.Repackage.ManifestConstants.BUNDLE_VERSION;
-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.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.lang.System.Logger;
-import java.lang.System.Logger.Level;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.nio.file.DirectoryStream;
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystems;
-import java.nio.file.FileVisitResult;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.PathMatcher;
-import java.nio.file.Paths;
-import java.nio.file.SimpleFileVisitor;
-import java.nio.file.StandardOpenOption;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Properties;
-import java.util.TreeMap;
-import java.util.jar.Attributes;
-import java.util.jar.JarEntry;
-import java.util.jar.JarInputStream;
-import java.util.jar.JarOutputStream;
-import java.util.jar.Manifest;
-import java.util.zip.Deflater;
-
-import aQute.bnd.osgi.Analyzer;
-import aQute.bnd.osgi.Jar;
-
-/** The central class for A2 packaging. */
-public class Repackage {
-       private final static Logger logger = System.getLogger(Repackage.class.getName());
-
-       /** Main entry point. */
-       public static void main(String[] args) {
-               if (args.length < 2) {
-                       System.err.println("Usage: <path to a2 output dir> <category1> <category2> ...");
-                       System.exit(1);
-               }
-               Path a2Base = Paths.get(args[0]).toAbsolutePath().normalize();
-               Path descriptorsBase = Paths.get(".").toAbsolutePath().normalize();
-               Repackage factory = new Repackage(a2Base, descriptorsBase, true);
-
-               for (int i = 1; i < args.length; i++) {
-                       Path p = Paths.get(args[i]);
-                       factory.processCategory(p);
-               }
-       }
-
-       private final static String COMMON_BND = "common.bnd";
-       private final static String MERGE_BND = "merge.bnd";
-
-       private Path originBase;
-       private Path a2Base;
-       private Path a2LibBase;
-       private Path descriptorsBase;
-
-       private Properties uris = new Properties();
-
-       private boolean includeSources = true;
-
-       /** key is URI prefix, value list of base URLs */
-       private Map<String, List<String>> mirrors = new HashMap<String, List<String>>();
-
-       public Repackage(Path a2Base, Path descriptorsBase, boolean includeSources) {
-               Objects.requireNonNull(a2Base);
-               Objects.requireNonNull(descriptorsBase);
-               this.originBase = Paths.get(System.getProperty("user.home"), ".cache", "argeo/build/origin");
-               // TODO define and use a build base
-               this.a2Base = a2Base;
-               this.a2LibBase = a2Base.resolve("lib");
-               this.descriptorsBase = descriptorsBase;
-               if (!Files.exists(this.descriptorsBase))
-                       throw new IllegalArgumentException(this.descriptorsBase + " does not exist");
-               this.includeSources = includeSources;
-
-               Path urisPath = this.descriptorsBase.resolve("uris.properties");
-               if (Files.exists(urisPath)) {
-                       try (InputStream in = Files.newInputStream(urisPath)) {
-                               uris.load(in);
-                       } catch (IOException e) {
-                               throw new IllegalStateException("Cannot load " + urisPath, e);
-                       }
-               }
-
-               // TODO make it configurable
-               List<String> eclipseMirrors = new ArrayList<>();
-               eclipseMirrors.add("https://archive.eclipse.org/");
-               eclipseMirrors.add("http://ftp-stud.hs-esslingen.de/Mirrors/eclipse/");
-               eclipseMirrors.add("http://ftp.fau.de/eclipse/");
-
-               mirrors.put("http://www.eclipse.org/downloads", eclipseMirrors);
-       }
-
-       /*
-        * MAVEN ORIGIN
-        */
-
-       /** Process a whole category/group id. */
-       public void processCategory(Path categoryRelativePath) {
-               try {
-                       Path targetCategoryBase = descriptorsBase.resolve(categoryRelativePath);
-                       DirectoryStream<Path> bnds = Files.newDirectoryStream(targetCategoryBase,
-                                       (p) -> p.getFileName().toString().endsWith(".bnd") && !p.getFileName().toString().equals(COMMON_BND)
-                                                       && !p.getFileName().toString().equals(MERGE_BND));
-                       for (Path p : bnds) {
-                               processSingleM2ArtifactDistributionUnit(p);
-                       }
-
-                       DirectoryStream<Path> dus = Files.newDirectoryStream(targetCategoryBase, (p) -> Files.isDirectory(p));
-                       for (Path duDir : dus) {
-                               if (duDir.getFileName().toString().startsWith("eclipse-")) {
-                                       processEclipseArchive(duDir);
-                               } else {
-                                       processM2BasedDistributionUnit(duDir);
-                               }
-                       }
-               } catch (IOException e) {
-                       throw new RuntimeException("Cannot process category " + categoryRelativePath, e);
-               }
-       }
-
-       /** Process a standalone Maven artifact. */
-       public void processSingleM2ArtifactDistributionUnit(Path bndFile) {
-               try {
-//                     String category = bndFile.getParent().getFileName().toString();
-                       Path categoryRelativePath = descriptorsBase.relativize(bndFile.getParent());
-                       Path targetCategoryBase = a2Base.resolve(categoryRelativePath);
-
-                       Properties fileProps = new Properties();
-                       try (InputStream in = Files.newInputStream(bndFile)) {
-                               fileProps.load(in);
-                       }
-                       String repoStr = fileProps.containsKey(SLC_ORIGIN_M2_REPO.toString())
-                                       ? fileProps.getProperty(SLC_ORIGIN_M2_REPO.toString())
-                                       : null;
-
-                       if (!fileProps.containsKey(BUNDLE_SYMBOLICNAME.toString())) {
-                               // use file name as symbolic name
-                               String symbolicName = bndFile.getFileName().toString();
-                               symbolicName = symbolicName.substring(0, symbolicName.length() - ".bnd".length());
-                               fileProps.put(BUNDLE_SYMBOLICNAME.toString(), symbolicName);
-                       }
-
-                       String m2Coordinates = fileProps.getProperty(SLC_ORIGIN_M2.toString());
-                       if (m2Coordinates == null)
-                               throw new IllegalArgumentException("No M2 coordinates available for " + bndFile);
-                       M2Artifact artifact = new M2Artifact(m2Coordinates);
-                       URL url = M2ConventionsUtils.mavenRepoUrl(repoStr, artifact);
-                       Path downloaded = download(url, originBase, artifact);
-
-                       Path targetBundleDir = processBndJar(downloaded, targetCategoryBase, fileProps, artifact);
-
-                       downloadAndProcessM2Sources(repoStr, artifact, targetBundleDir);
-
-                       createJar(targetBundleDir);
-               } catch (Exception e) {
-                       throw new RuntimeException("Cannot process " + bndFile, e);
-               }
-       }
-
-       /** Process multiple Maven artifacts. */
-       public void processM2BasedDistributionUnit(Path duDir) {
-               try {
-                       // String category = duDir.getParent().getFileName().toString();
-                       Path categoryRelativePath = descriptorsBase.relativize(duDir.getParent());
-                       Path targetCategoryBase = a2Base.resolve(categoryRelativePath);
-
-                       // merge
-                       Path mergeBnd = duDir.resolve(MERGE_BND);
-                       if (Files.exists(mergeBnd)) {
-                               mergeM2Artifacts(mergeBnd);
-//                             return;
-                       }
-
-                       Path commonBnd = duDir.resolve(COMMON_BND);
-                       if (!Files.exists(commonBnd)) {
-                               return;
-                       }
-                       Properties commonProps = new Properties();
-                       try (InputStream in = Files.newInputStream(commonBnd)) {
-                               commonProps.load(in);
-                       }
-
-                       String m2Version = commonProps.getProperty(SLC_ORIGIN_M2.toString());
-                       if (m2Version == null) {
-                               logger.log(Level.WARNING, "Ignoring " + duDir + " as it is not an M2-based distribution unit");
-                               return;// ignore, this is probably an Eclipse archive
-                       }
-                       if (!m2Version.startsWith(":")) {
-                               throw new IllegalStateException("Only the M2 version can be specified: " + m2Version);
-                       }
-                       m2Version = m2Version.substring(1);
-
-                       DirectoryStream<Path> ds = Files.newDirectoryStream(duDir,
-                                       (p) -> p.getFileName().toString().endsWith(".bnd") && !p.getFileName().toString().equals(COMMON_BND)
-                                                       && !p.getFileName().toString().equals(MERGE_BND));
-                       for (Path p : ds) {
-                               Properties fileProps = new Properties();
-                               try (InputStream in = Files.newInputStream(p)) {
-                                       fileProps.load(in);
-                               }
-                               String m2Coordinates = fileProps.getProperty(SLC_ORIGIN_M2.toString());
-                               M2Artifact artifact = new M2Artifact(m2Coordinates);
-
-                               artifact.setVersion(m2Version);
-
-                               // prepare manifest entries
-                               Properties mergeProps = new Properties();
-                               mergeProps.putAll(commonProps);
-
-                               fileEntries: for (Object key : fileProps.keySet()) {
-                                       if (ManifestConstants.SLC_ORIGIN_M2.toString().equals(key))
-                                               continue fileEntries;
-                                       String value = fileProps.getProperty(key.toString());
-                                       Object previousValue = mergeProps.put(key.toString(), value);
-                                       if (previousValue != null) {
-                                               logger.log(Level.WARNING,
-                                                               commonBnd + ": " + key + " was " + previousValue + ", overridden with " + value);
-                                       }
-                               }
-                               mergeProps.put(ManifestConstants.SLC_ORIGIN_M2.toString(), artifact.toM2Coordinates());
-                               if (!mergeProps.containsKey(BUNDLE_SYMBOLICNAME.toString())) {
-                                       // use file name as symbolic name
-                                       String symbolicName = p.getFileName().toString();
-                                       symbolicName = symbolicName.substring(0, symbolicName.length() - ".bnd".length());
-                                       mergeProps.put(BUNDLE_SYMBOLICNAME.toString(), symbolicName);
-                               }
-
-                               String repoStr = mergeProps.containsKey(SLC_ORIGIN_M2_REPO.toString())
-                                               ? mergeProps.getProperty(SLC_ORIGIN_M2_REPO.toString())
-                                               : null;
-
-                               // download
-                               URL url = M2ConventionsUtils.mavenRepoUrl(repoStr, artifact);
-                               Path downloaded = download(url, originBase, artifact);
-
-                               Path targetBundleDir = processBndJar(downloaded, targetCategoryBase, mergeProps, artifact);
-//                             logger.log(Level.DEBUG, () -> "Processed " + downloaded);
-
-                               // sources
-                               downloadAndProcessM2Sources(repoStr, artifact, targetBundleDir);
-
-                               createJar(targetBundleDir);
-                       }
-               } catch (IOException e) {
-                       throw new RuntimeException("Cannot process " + duDir, e);
-               }
-
-       }
-
-       /** Merge multiple Maven artifacts. */
-       protected void mergeM2Artifacts(Path mergeBnd) throws IOException {
-               Path duDir = mergeBnd.getParent();
-               String category = duDir.getParent().getFileName().toString();
-               Path targetCategoryBase = a2Base.resolve(category);
-
-               Properties mergeProps = new Properties();
-               try (InputStream in = Files.newInputStream(mergeBnd)) {
-                       mergeProps.load(in);
-               }
-
-               // Version
-               String m2Version = mergeProps.getProperty(SLC_ORIGIN_M2.toString());
-               if (m2Version == null) {
-                       logger.log(Level.WARNING, "Ignoring " + duDir + " as it is not an M2-based distribution unit");
-                       return;// ignore, this is probably an Eclipse archive
-               }
-               if (!m2Version.startsWith(":")) {
-                       throw new IllegalStateException("Only the M2 version can be specified: " + m2Version);
-               }
-               m2Version = m2Version.substring(1);
-               mergeProps.put(ManifestConstants.BUNDLE_VERSION.toString(), m2Version);
-
-               String artifactsStr = mergeProps.getProperty(ManifestConstants.SLC_ORIGIN_M2_MERGE.toString());
-               String repoStr = mergeProps.containsKey(SLC_ORIGIN_M2_REPO.toString())
-                               ? mergeProps.getProperty(SLC_ORIGIN_M2_REPO.toString())
-                               : null;
-
-               String bundleSymbolicName = mergeProps.getProperty(ManifestConstants.BUNDLE_SYMBOLICNAME.toString());
-               if (bundleSymbolicName == null)
-                       throw new IllegalArgumentException("Bundle-SymbolicName must be set in " + mergeBnd);
-               CategoryNameVersion nameVersion = new M2Artifact(category + ":" + bundleSymbolicName + ":" + m2Version);
-               Path targetBundleDir = targetCategoryBase.resolve(bundleSymbolicName + "." + nameVersion.getBranch());
-
-               String[] artifacts = artifactsStr.split(",");
-               artifacts: for (String str : artifacts) {
-                       String m2Coordinates = str.trim();
-                       if ("".equals(m2Coordinates))
-                               continue artifacts;
-                       M2Artifact artifact = new M2Artifact(m2Coordinates.trim());
-                       if (artifact.getVersion() == null)
-                               artifact.setVersion(m2Version);
-                       URL url = M2ConventionsUtils.mavenRepoUrl(repoStr, artifact);
-                       Path downloaded = download(url, originBase, artifact);
-                       JarEntry entry;
-                       try (JarInputStream jarIn = new JarInputStream(Files.newInputStream(downloaded), false)) {
-                               entries: while ((entry = jarIn.getNextJarEntry()) != null) {
-                                       if (entry.isDirectory())
-                                               continue entries;
-                                       else if (entry.getName().endsWith(".RSA") || entry.getName().endsWith(".SF"))
-                                               continue entries;
-                                       else if (entry.getName().startsWith("META-INF/versions/"))
-                                               continue entries;
-                                       else if (entry.getName().startsWith("META-INF/maven/"))
-                                               continue entries;
-                                       else if (entry.getName().equals("module-info.class"))
-                                               continue entries;
-                                       else if (entry.getName().equals("META-INF/NOTICE"))
-                                               continue entries;
-                                       else if (entry.getName().equals("META-INF/NOTICE.txt"))
-                                               continue entries;
-                                       else if (entry.getName().equals("META-INF/LICENSE"))
-                                               continue entries;
-                                       else if (entry.getName().equals("META-INF/LICENSE.md"))
-                                               continue entries;
-                                       else if (entry.getName().equals("META-INF/LICENSE-notice.md"))
-                                               continue entries;
-                                       else if (entry.getName().equals("META-INF/DEPENDENCIES"))
-                                               continue entries;
-                                       if (entry.getName().startsWith(".cache/")) // Apache SSHD
-                                               continue entries;
-                                       Path target = targetBundleDir.resolve(entry.getName());
-                                       Files.createDirectories(target.getParent());
-                                       if (!Files.exists(target)) {
-                                               Files.copy(jarIn, 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, artifact.getArtifactId() + " - 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 + " from " + artifact + " already exists");
-                                               }
-                                       }
-                                       logger.log(Level.TRACE, () -> "Copied " + target);
-                               }
-
-                       }
-                       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<String, String> entries = new TreeMap<>();
-               try (Analyzer bndAnalyzer = new Analyzer()) {
-                       bndAnalyzer.setProperties(mergeProps);
-                       Jar jar = new Jar(targetBundleDir.toFile());
-                       bndAnalyzer.setJar(jar);
-                       Manifest manifest = bndAnalyzer.calcManifest();
-
-                       keys: for (Object key : manifest.getMainAttributes().keySet()) {
-                               Object value = manifest.getMainAttributes().get(key);
-
-                               switch (key.toString()) {
-                               case "Tool":
-                               case "Bnd-LastModified":
-                               case "Created-By":
-                                       continue keys;
-                               }
-                               if ("Require-Capability".equals(key.toString())
-                                               && 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);
-
-                       }
-               } catch (Exception e) {
-                       throw new RuntimeException("Cannot process " + mergeBnd, e);
-               }
-
-               Manifest manifest = new Manifest();
-               Path manifestPath = targetBundleDir.resolve("META-INF/MANIFEST.MF");
-               Files.createDirectories(manifestPath.getParent());
-               for (String key : entries.keySet()) {
-                       String value = entries.get(key);
-                       manifest.getMainAttributes().putValue(key, value);
-               }
-
-               try (OutputStream out = Files.newOutputStream(manifestPath)) {
-                       manifest.write(out);
-               }
-               createJar(targetBundleDir);
-       }
-
-       /** Generate MANIFEST using BND. */
-       protected Path processBndJar(Path downloaded, Path targetCategoryBase, Properties fileProps, M2Artifact artifact) {
-
-               try {
-                       Map<String, String> additionalEntries = new TreeMap<>();
-                       boolean doNotModify = Boolean.parseBoolean(fileProps
-                                       .getOrDefault(ManifestConstants.SLC_ORIGIN_MANIFEST_NOT_MODIFIED.toString(), "false").toString());
-
-                       // we always force the symbolic name
-
-                       if (doNotModify) {
-                               fileEntries: for (Object key : fileProps.keySet()) {
-                                       if (ManifestConstants.SLC_ORIGIN_M2.toString().equals(key))
-                                               continue fileEntries;
-                                       String value = fileProps.getProperty(key.toString());
-                                       additionalEntries.put(key.toString(), value);
-                               }
-                       } else {
-                               if (artifact != null) {
-                                       if (!fileProps.containsKey(BUNDLE_SYMBOLICNAME.toString())) {
-                                               fileProps.put(BUNDLE_SYMBOLICNAME.toString(), artifact.getName());
-                                       }
-                                       if (!fileProps.containsKey(BUNDLE_VERSION.toString())) {
-                                               fileProps.put(BUNDLE_VERSION.toString(), artifact.getVersion());
-                                       }
-                               }
-
-                               if (!fileProps.containsKey(EXPORT_PACKAGE.toString())) {
-                                       fileProps.put(EXPORT_PACKAGE.toString(),
-                                                       "*;version=\"" + fileProps.getProperty(BUNDLE_VERSION.toString()) + "\"");
-                               }
-
-                               try (Analyzer bndAnalyzer = new Analyzer()) {
-                                       bndAnalyzer.setProperties(fileProps);
-                                       Jar jar = new Jar(downloaded.toFile());
-                                       bndAnalyzer.setJar(jar);
-                                       Manifest manifest = bndAnalyzer.calcManifest();
-
-                                       keys: for (Object key : manifest.getMainAttributes().keySet()) {
-                                               Object value = manifest.getMainAttributes().get(key);
-
-                                               switch (key.toString()) {
-                                               case "Tool":
-                                               case "Bnd-LastModified":
-                                               case "Created-By":
-                                                       continue keys;
-                                               }
-                                               if ("Require-Capability".equals(key.toString())
-                                                               && 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);
-
-                                       }
-                               }
-                       }
-                       Path targetBundleDir = processBundleJar(downloaded, targetCategoryBase, additionalEntries);
-                       logger.log(Level.DEBUG, () -> "Processed " + downloaded);
-                       return targetBundleDir;
-               } catch (Exception e) {
-                       throw new RuntimeException("Cannot BND process " + downloaded, e);
-               }
-
-       }
-
-       /** Download and integrates sources for a single Maven artifact. */
-       protected void downloadAndProcessM2Sources(String repoStr, M2Artifact artifact, Path targetBundleDir)
-                       throws IOException {
-               if (!includeSources)
-                       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);
-
-       }
-
-       /** Integrate sources from a downloaded jar file. */
-       protected void processM2SourceJar(Path file, Path targetBundleDir) throws IOException {
-               try (JarInputStream jarIn = new JarInputStream(Files.newInputStream(file), false)) {
-                       Path targetSourceDir = targetBundleDir.resolve("OSGI-OPT/src");
-
-                       // TODO make it less dangerous?
-                       if (Files.exists(targetSourceDir)) {
-//                             deleteDirectory(targetSourceDir);
-                       } else {
-                               Files.createDirectories(targetSourceDir);
-                       }
-
-                       // copy entries
-                       JarEntry entry;
-                       entries: while ((entry = jarIn.getNextJarEntry()) != null) {
-                               if (entry.isDirectory())
-                                       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;
-                               if (entry.getName().startsWith("/")) // absolute paths
-                                       continue entries;
-                               Path target = targetSourceDir.resolve(entry.getName());
-                               Files.createDirectories(target.getParent());
-                               if (!Files.exists(target)) {
-                                       Files.copy(jarIn, target);
-                                       logger.log(Level.TRACE, () -> "Copied source " + target);
-                               } else {
-                                       logger.log(Level.WARNING, () -> target + " already exists, skipping...");
-                               }
-                       }
-               }
-
-       }
-
-       /** Download a Maven artifact. */
-       protected Path download(URL url, Path dir, M2Artifact artifact) throws IOException {
-               return download(url, dir, artifact, false);
-       }
-
-       /** Download a Maven artifact. */
-       protected Path download(URL url, Path dir, M2Artifact artifact, boolean sources) throws IOException {
-               return download(url, dir, artifact.getGroupId() + '/' + artifact.getArtifactId() + "-" + artifact.getVersion()
-                               + (sources ? "-sources" : "") + ".jar");
-       }
-
-       /*
-        * ECLIPSE ORIGIN
-        */
-
-       /** Process an archive in Eclipse format. */
-       public void processEclipseArchive(Path duDir) {
-               try {
-                       Path categoryRelativePath = descriptorsBase.relativize(duDir.getParent());
-                       // String category = categoryRelativePath.getFileName().toString();
-                       Path targetCategoryBase = a2Base.resolve(categoryRelativePath);
-                       Files.createDirectories(targetCategoryBase);
-                       // first delete all directories from previous builds
-                       for (Path dir : Files.newDirectoryStream(targetCategoryBase, (p) -> Files.isDirectory(p))) {
-                               deleteDirectory(dir);
-                       }
-
-                       Files.createDirectories(originBase);
-
-                       Path commonBnd = duDir.resolve(COMMON_BND);
-                       Properties commonProps = new Properties();
-                       try (InputStream in = Files.newInputStream(commonBnd)) {
-                               commonProps.load(in);
-                       }
-                       String url = commonProps.getProperty(ManifestConstants.SLC_ORIGIN_URI.toString());
-                       if (url == null) {
-                               url = uris.getProperty(duDir.getFileName().toString());
-                               if (url == null)
-                                       throw new IllegalStateException("No url available for " + duDir);
-                               commonProps.put(ManifestConstants.SLC_ORIGIN_URI.toString(), url);
-                       }
-                       Path downloaded = tryDownload(url, originBase);
-
-                       FileSystem zipFs = FileSystems.newFileSystem(downloaded, (ClassLoader) null);
-
-                       // filters
-                       List<PathMatcher> includeMatchers = new ArrayList<>();
-                       Properties includes = new Properties();
-                       try (InputStream in = Files.newInputStream(duDir.resolve("includes.properties"))) {
-                               includes.load(in);
-                       }
-                       for (Object pattern : includes.keySet()) {
-                               PathMatcher pathMatcher = zipFs.getPathMatcher("glob:/" + pattern);
-                               includeMatchers.add(pathMatcher);
-                       }
-
-                       List<PathMatcher> excludeMatchers = new ArrayList<>();
-                       Path excludeFile = duDir.resolve("excludes.properties");
-                       if (Files.exists(excludeFile)) {
-                               Properties excludes = new Properties();
-                               try (InputStream in = Files.newInputStream(excludeFile)) {
-                                       excludes.load(in);
-                               }
-                               for (Object pattern : excludes.keySet()) {
-                                       PathMatcher pathMatcher = zipFs.getPathMatcher("glob:/" + pattern);
-                                       excludeMatchers.add(pathMatcher);
-                               }
-                       }
-
-                       Files.walkFileTree(zipFs.getRootDirectories().iterator().next(), new SimpleFileVisitor<Path>() {
-
-                               @Override
-                               public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
-                                       includeMatchers: for (PathMatcher includeMatcher : includeMatchers) {
-                                               if (includeMatcher.matches(file)) {
-                                                       for (PathMatcher excludeMatcher : excludeMatchers) {
-                                                               if (excludeMatcher.matches(file)) {
-                                                                       logger.log(Level.WARNING, "Skipping excluded " + file);
-                                                                       return FileVisitResult.CONTINUE;
-                                                               }
-                                                       }
-                                                       if (includeSources && file.getFileName().toString().contains(".source_")) {
-                                                               processEclipseSourceJar(file, targetCategoryBase);
-                                                               logger.log(Level.DEBUG, () -> "Processed source " + file);
-
-                                                       } else {
-                                                               Map<String, String> map = new HashMap<>();
-                                                               for (Object key : commonProps.keySet())
-                                                                       map.put(key.toString(), commonProps.getProperty(key.toString()));
-                                                               processBundleJar(file, targetCategoryBase, map);
-                                                               logger.log(Level.DEBUG, () -> "Processed " + file);
-                                                       }
-                                                       break includeMatchers;
-                                               }
-                                       }
-                                       return FileVisitResult.CONTINUE;
-                               }
-                       });
-
-                       DirectoryStream<Path> dirs = Files.newDirectoryStream(targetCategoryBase,
-                                       (p) -> Files.isDirectory(p) && p.getFileName().toString().indexOf('.') >= 0);
-                       for (Path dir : dirs) {
-                               createJar(dir);
-                       }
-               } catch (IOException e) {
-                       throw new RuntimeException("Cannot process " + duDir, e);
-               }
-
-       }
-
-       /** Process sources in Eclipse format. */
-       protected void processEclipseSourceJar(Path file, Path targetBase) throws IOException {
-               try {
-                       Path targetBundleDir;
-                       try (JarInputStream jarIn = new JarInputStream(Files.newInputStream(file), false)) {
-                               Manifest manifest = jarIn.getManifest();
-
-                               String[] relatedBundle = manifest.getMainAttributes().getValue("Eclipse-SourceBundle").split(";");
-                               String version = relatedBundle[1].substring("version=\"".length());
-                               version = version.substring(0, version.length() - 1);
-                               NameVersion nameVersion = new NameVersion(relatedBundle[0], version);
-                               targetBundleDir = targetBase.resolve(nameVersion.getName() + "." + nameVersion.getBranch());
-
-                               Path targetSourceDir = targetBundleDir.resolve("OSGI-OPT/src");
-
-                               // TODO make it less dangerous?
-                               if (Files.exists(targetSourceDir)) {
-//                             deleteDirectory(targetSourceDir);
-                               } else {
-                                       Files.createDirectories(targetSourceDir);
-                               }
-
-                               // copy entries
-                               JarEntry entry;
-                               entries: while ((entry = jarIn.getNextJarEntry()) != null) {
-                                       if (entry.isDirectory())
-                                               continue entries;
-                                       if (entry.getName().startsWith("META-INF"))// 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);
-                               }
-
-                               // copy MANIFEST
-                       }
-               } catch (IOException e) {
-                       throw new IllegalStateException("Cannot process " + file, e);
-               }
-
-       }
-
-       /*
-        * COMMON PROCESSING
-        */
-       /** Normalise a bundle. */
-       protected Path processBundleJar(Path file, Path targetBase, Map<String, String> entries) throws IOException {
-               NameVersion nameVersion;
-               Path targetBundleDir;
-               try (JarInputStream jarIn = new JarInputStream(Files.newInputStream(file), false)) {
-                       Manifest sourceManifest = jarIn.getManifest();
-                       Manifest manifest = sourceManifest != null ? new Manifest(sourceManifest) : new Manifest();
-
-                       // remove problematic entries in MANIFEST
-                       manifest.getEntries().clear();
-
-                       String ourSymbolicName = entries.get(BUNDLE_SYMBOLICNAME.toString());
-                       String ourVersion = entries.get(BUNDLE_VERSION.toString());
-
-                       if (ourSymbolicName != null && ourVersion != null) {
-                               nameVersion = new NameVersion(ourSymbolicName, ourVersion);
-                       } else {
-                               nameVersion = nameVersionFromManifest(manifest);
-                               if (ourVersion != null && !nameVersion.getVersion().equals(ourVersion)) {
-                                       logger.log(Level.WARNING,
-                                                       "Original version is " + nameVersion.getVersion() + " while new version is " + ourVersion);
-                                       entries.put(BUNDLE_VERSION.toString(), ourVersion);
-                               }
-                               if (ourSymbolicName != null) {
-                                       // we always force our symbolic name
-                                       nameVersion.setName(ourSymbolicName);
-                               }
-                       }
-                       targetBundleDir = targetBase.resolve(nameVersion.getName() + "." + nameVersion.getBranch());
-
-                       // force Java 9 module name
-                       entries.put(ManifestConstants.AUTOMATIC_MODULE_NAME.toString(), nameVersion.getName());
-
-                       boolean isNative = false;
-                       String os = null;
-                       String arch = null;
-                       if (targetBundleDir.startsWith(a2LibBase)) {
-                               isNative = true;
-                               Path libRelativePath = a2LibBase.relativize(targetBundleDir);
-                               os = libRelativePath.getName(0).toString();
-                               arch = libRelativePath.getName(1).toString();
-                       }
-
-                       // copy entries
-                       JarEntry entry;
-                       entries: while ((entry = jarIn.getNextJarEntry()) != null) {
-                               if (entry.isDirectory())
-                                       continue entries;
-                               if (entry.getName().endsWith(".RSA") || entry.getName().endsWith(".SF"))
-                                       continue entries;
-                               if (entry.getName().endsWith("module-info.class")) // skip Java 9 module info
-                                       continue entries;
-                               if (entry.getName().startsWith("META-INF/versions/")) // skip multi-version
-                                       continue entries;
-                               // skip file system providers as they cause issues with native image
-                               if (entry.getName().startsWith("META-INF/services/java.nio.file.spi.FileSystemProvider"))
-                                       continue entries;
-                               if (entry.getName().startsWith("OSGI-OPT/src/")) // skip embedded sources
-                                       continue entries;
-                               Path target = targetBundleDir.resolve(entry.getName());
-                               Files.createDirectories(target.getParent());
-                               Files.copy(jarIn, target);
-
-                               // native libraries
-                               if (isNative && (entry.getName().endsWith(".so") || entry.getName().endsWith(".dll")
-                                               || entry.getName().endsWith(".jnilib"))) {
-                                       Path categoryDir = targetBundleDir.getParent();
-//                                     String[] segments = categoryDir.getFileName().toString().split("\\.");
-//                                     String arch = segments[segments.length - 1];
-//                                     String os = segments[segments.length - 2];
-                                       boolean copyDll = false;
-                                       Path targetDll = categoryDir.resolve(targetBundleDir.relativize(target));
-                                       if (nameVersion.getName().equals("com.sun.jna")) {
-                                               if (arch.equals("x86_64"))
-                                                       arch = "x86-64";
-                                               if (os.equals("macosx"))
-                                                       os = "darwin";
-                                               if (target.getParent().getFileName().toString().equals(os + "-" + arch)) {
-                                                       copyDll = true;
-                                               }
-                                               targetDll = categoryDir.resolve(target.getFileName());
-                                       } else {
-                                               copyDll = true;
-                                       }
-                                       if (copyDll) {
-                                               Files.createDirectories(targetDll.getParent());
-                                               if (Files.exists(targetDll))
-                                                       Files.delete(targetDll);
-                                               Files.copy(target, targetDll);
-                                       }
-                                       Files.delete(target);
-                               }
-                               logger.log(Level.TRACE, () -> "Copied " + target);
-                       }
-
-                       // copy MANIFEST
-                       Path manifestPath = targetBundleDir.resolve("META-INF/MANIFEST.MF");
-                       Files.createDirectories(manifestPath.getParent());
-                       for (String key : entries.keySet()) {
-                               String value = entries.get(key);
-                               Object previousValue = manifest.getMainAttributes().putValue(key, value);
-                               if (previousValue != null && !previousValue.equals(value)) {
-                                       if (ManifestConstants.IMPORT_PACKAGE.toString().equals(key)
-                                                       || ManifestConstants.EXPORT_PACKAGE.toString().equals(key))
-                                               logger.log(Level.TRACE, file.getFileName() + ": " + key + " was modified");
-                                       else
-                                               logger.log(Level.WARNING, file.getFileName() + ": " + key + " was " + previousValue
-                                                               + ", overridden with " + value);
-                               }
-
-                               // hack to remove unresolvable
-                               if (key.equals("Provide-Capability") || key.equals("Require-Capability"))
-                                       if (nameVersion.getName().equals("osgi.core") || nameVersion.getName().equals("osgi.cmpn")) {
-                                               manifest.getMainAttributes().remove(key);
-                                       }
-                       }
-                       try (OutputStream out = Files.newOutputStream(manifestPath)) {
-                               manifest.write(out);
-                       }
-               }
-               return targetBundleDir;
-       }
-
-       /*
-        * UTILITIES
-        */
-
-       /** Recursively deletes a directory. */
-       private static void deleteDirectory(Path path) throws IOException {
-               if (!Files.exists(path))
-                       return;
-               Files.walkFileTree(path, new SimpleFileVisitor<Path>() {
-                       @Override
-                       public FileVisitResult postVisitDirectory(Path directory, IOException e) throws IOException {
-                               if (e != null)
-                                       throw e;
-                               Files.delete(directory);
-                               return FileVisitResult.CONTINUE;
-                       }
-
-                       @Override
-                       public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
-                               Files.delete(file);
-                               return FileVisitResult.CONTINUE;
-                       }
-               });
-       }
-
-       /** Extract name/version from a MANIFEST. */
-       protected NameVersion nameVersionFromManifest(Manifest manifest) {
-               Attributes attrs = manifest.getMainAttributes();
-               // symbolic name
-               String symbolicName = attrs.getValue(ManifestConstants.BUNDLE_SYMBOLICNAME.toString());
-               if (symbolicName == null)
-                       return null;
-               // make sure there is no directive
-               symbolicName = symbolicName.split(";")[0];
-
-               String version = attrs.getValue(ManifestConstants.BUNDLE_VERSION.toString());
-               return new NameVersion(symbolicName, version);
-       }
-
-       /** Try to download from an URI. */
-       protected Path tryDownload(String uri, Path dir) throws IOException {
-               // find mirror
-               List<String> urlBases = null;
-               String uriPrefix = null;
-               uriPrefixes: for (String uriPref : mirrors.keySet()) {
-                       if (uri.startsWith(uriPref)) {
-                               if (mirrors.get(uriPref).size() > 0) {
-                                       urlBases = mirrors.get(uriPref);
-                                       uriPrefix = uriPref;
-                                       break uriPrefixes;
-                               }
-                       }
-               }
-               if (urlBases == null)
-                       try {
-                               return download(new URL(uri), dir);
-                       } catch (FileNotFoundException e) {
-                               throw new FileNotFoundException("Cannot find " + uri);
-                       }
-
-               // try to download
-               for (String urlBase : urlBases) {
-                       String relativePath = uri.substring(uriPrefix.length());
-                       URL url = new URL(urlBase + relativePath);
-                       try {
-                               return download(url, dir);
-                       } catch (FileNotFoundException e) {
-                               logger.log(Level.WARNING, "Cannot download " + url + ", trying another mirror");
-                       }
-               }
-               throw new FileNotFoundException("Cannot find " + uri);
-       }
-
-       /** Effectively download. */
-       protected Path download(URL url, Path dir) throws IOException {
-               return download(url, dir, (String) null);
-       }
-
-       /** Effectively download. */
-       protected Path download(URL url, Path dir, String name) throws IOException {
-
-               Path dest;
-               if (name == null) {
-                       name = url.getPath().substring(url.getPath().lastIndexOf('/') + 1);
-               }
-
-               dest = dir.resolve(name);
-               if (Files.exists(dest)) {
-                       logger.log(Level.TRACE, () -> "File " + dest + " already exists for " + url + ", not downloading again");
-                       return dest;
-               } else {
-                       Files.createDirectories(dest.getParent());
-               }
-
-               try (InputStream in = url.openStream()) {
-                       Files.copy(in, dest);
-                       logger.log(Level.DEBUG, () -> "Downloaded " + dest + " from " + url);
-               }
-               return dest;
-       }
-
-       /** Create a JAR file from a directory. */
-       protected Path createJar(Path bundleDir) throws IOException {
-               // Create the jar
-               Path jarPath = bundleDir.getParent().resolve(bundleDir.getFileName() + ".jar");
-               Path manifestPath = bundleDir.resolve("META-INF/MANIFEST.MF");
-               Manifest manifest;
-               try (InputStream in = Files.newInputStream(manifestPath)) {
-                       manifest = new Manifest(in);
-               }
-               try (JarOutputStream jarOut = new JarOutputStream(Files.newOutputStream(jarPath), manifest)) {
-                       jarOut.setLevel(Deflater.DEFAULT_COMPRESSION);
-                       Files.walkFileTree(bundleDir, new SimpleFileVisitor<Path>() {
-
-                               @Override
-                               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());
-                                       jarOut.putNextEntry(entry);
-                                       Files.copy(file, jarOut);
-                                       return super.visitFile(file, attrs);
-                               }
-
-                       });
-               }
-               deleteDirectory(bundleDir);
-               return jarPath;
-       }
-
-       enum ManifestConstants {
-               // OSGi
-               BUNDLE_SYMBOLICNAME("Bundle-SymbolicName"), //
-               BUNDLE_VERSION("Bundle-Version"), //
-               BUNDLE_LICENSE("Bundle-License"), //
-               EXPORT_PACKAGE("Export-Package"), //
-               IMPORT_PACKAGE("Import-Package"), //
-               // JAVA
-               AUTOMATIC_MODULE_NAME("Automatic-Module-Name"), //
-               // SLC
-               SLC_CATEGORY("SLC-Category"), //
-               SLC_ORIGIN_M2("SLC-Origin-M2"), //
-               SLC_ORIGIN_M2_MERGE("SLC-Origin-M2-Merge"), //
-               SLC_ORIGIN_M2_REPO("SLC-Origin-M2-Repo"), //
-               SLC_ORIGIN_MANIFEST_NOT_MODIFIED("SLC-Origin-ManifestNotModified"), //
-               SLC_ORIGIN_URI("SLC-Origin-URI"),//
-               ;
-
-               final String value;
-
-               private ManifestConstants(String value) {
-                       this.value = value;
-               }
-
-               @Override
-               public String toString() {
-                       return value;
-               }
-
-       }
-
-}
-
-/** Simple representation of an M2 artifact. */
-class M2Artifact extends CategoryNameVersion {
-       private String classifier;
-
-       M2Artifact(String m2coordinates) {
-               this(m2coordinates, null);
-       }
-
-       M2Artifact(String m2coordinates, String classifier) {
-               String[] parts = m2coordinates.split(":");
-               setCategory(parts[0]);
-               setName(parts[1]);
-               if (parts.length > 2) {
-                       setVersion(parts[2]);
-               }
-               this.classifier = classifier;
-       }
-
-       String getGroupId() {
-               return super.getCategory();
-       }
-
-       String getArtifactId() {
-               return super.getName();
-       }
-
-       String toM2Coordinates() {
-               return getCategory() + ":" + getName() + (getVersion() != null ? ":" + getVersion() : "");
-       }
-
-       String getClassifier() {
-               return classifier != null ? classifier : "";
-       }
-
-       String getExtension() {
-               return "jar";
-       }
-}
-
-/** Utilities around Maven (conventions based). */
-class M2ConventionsUtils {
-       final static String MAVEN_CENTRAL_BASE_URL = "https://repo1.maven.org/maven2/";
-
-       /** The file name of this artifact when stored */
-       static String artifactFileName(M2Artifact artifact) {
-               return artifact.getArtifactId() + '-' + artifact.getVersion()
-                               + (artifact.getClassifier().equals("") ? "" : '-' + artifact.getClassifier()) + '.'
-                               + artifact.getExtension();
-       }
-
-       /** Absolute path to the file */
-       static String artifactPath(String artifactBasePath, M2Artifact artifact) {
-               return artifactParentPath(artifactBasePath, artifact) + '/' + artifactFileName(artifact);
-       }
-
-       /** Absolute path to the file */
-       static String artifactUrl(String repoUrl, M2Artifact artifact) {
-               if (repoUrl.endsWith("/"))
-                       return repoUrl + artifactPath("/", artifact).substring(1);
-               else
-                       return repoUrl + artifactPath("/", artifact);
-       }
-
-       /** Absolute path to the file */
-       static URL mavenRepoUrl(String repoBase, M2Artifact artifact) {
-               String url = artifactUrl(repoBase == null ? MAVEN_CENTRAL_BASE_URL : repoBase, artifact);
-               try {
-                       return new URL(url);
-               } catch (MalformedURLException e) {
-                       // it should not happen
-                       throw new IllegalStateException(e);
-               }
-       }
-
-       /** Absolute path to the directories where the files will be stored */
-       static String artifactParentPath(String artifactBasePath, M2Artifact artifact) {
-               return artifactBasePath + (artifactBasePath.endsWith("/") ? "" : "/") + artifactParentPath(artifact);
-       }
-
-       /** Relative path to the directories where the files will be stored */
-       static String artifactParentPath(M2Artifact artifact) {
-               return artifact.getGroupId().replace('.', '/') + '/' + artifact.getArtifactId() + '/' + artifact.getVersion();
-       }
-
-       /** Singleton */
-       private M2ConventionsUtils() {
-       }
-}
-
-class CategoryNameVersion extends NameVersion {
-       private String category;
-
-       CategoryNameVersion() {
-       }
-
-       CategoryNameVersion(String category, String name, String version) {
-               super(name, version);
-               this.category = category;
-       }
-
-       CategoryNameVersion(String category, NameVersion nameVersion) {
-               super(nameVersion);
-               this.category = category;
-       }
-
-       String getCategory() {
-               return category;
-       }
-
-       void setCategory(String category) {
-               this.category = category;
-       }
-
-       @Override
-       public String toString() {
-               return category + ":" + super.toString();
-       }
-
-}
-
-class NameVersion implements Comparable<NameVersion> {
-       private String name;
-       private String version;
-
-       NameVersion() {
-       }
-
-       /** Interprets string in OSGi-like format my.module.name;version=0.0.0 */
-       NameVersion(String nameVersion) {
-               int index = nameVersion.indexOf(";version=");
-               if (index < 0) {
-                       setName(nameVersion);
-                       setVersion(null);
-               } else {
-                       setName(nameVersion.substring(0, index));
-                       setVersion(nameVersion.substring(index + ";version=".length()));
-               }
-       }
-
-       NameVersion(String name, String version) {
-               this.name = name;
-               this.version = version;
-       }
-
-       NameVersion(NameVersion nameVersion) {
-               this.name = nameVersion.getName();
-               this.version = nameVersion.getVersion();
-       }
-
-       String getName() {
-               return name;
-       }
-
-       void setName(String name) {
-               this.name = name;
-       }
-
-       String getVersion() {
-               return version;
-       }
-
-       void setVersion(String version) {
-               this.version = version;
-       }
-
-       String getBranch() {
-               String[] parts = getVersion().split("\\.");
-               if (parts.length < 2)
-                       throw new IllegalStateException("Version " + getVersion() + " cannot be interpreted as branch.");
-               return parts[0] + "." + parts[1];
-       }
-
-       @Override
-       public boolean equals(Object obj) {
-               if (obj instanceof NameVersion) {
-                       NameVersion nameVersion = (NameVersion) obj;
-                       return name.equals(nameVersion.getName()) && version.equals(nameVersion.getVersion());
-               } else
-                       return false;
-       }
-
-       @Override
-       public int hashCode() {
-               return name.hashCode();
-       }
-
-       @Override
-       public String toString() {
-               return name + ":" + version;
-       }
-
-       public int compareTo(NameVersion o) {
-               if (o.getName().equals(name))
-                       return version.compareTo(o.getVersion());
-               else
-                       return name.compareTo(o.getName());
-       }
-}
index c8c42153182ec6f3ffedfc226f0939810442352e..77156e1ae22b531fad49eb89c83c7f6d08eac596 100644 (file)
@@ -1,6 +1,6 @@
 Bundle-License: LGPL-2.1-only
 Bundle-SymbolicName: org.geotools
-SLC-Origin-M2: :27.1
+SLC-Origin-M2: :27.2
 SLC-Origin-M2-Repo: https://repo.osgeo.org/repository/release/
 Export-Package: org.geotools.*, org.opengis.*, net.opengis.*, org.w3.xlink.*
 Import-Package: \
diff --git a/repackage/org.argeo.tp.gis/org.json.simple.bnd.retired b/repackage/org.argeo.tp.gis/org.json.simple.bnd.retired
deleted file mode 100644 (file)
index 71ce052..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Bundle-license: Apache-2.0
-SLC-Origin-M2: com.googlecode.json-simple:json-simple:1.1.1
\ No newline at end of file
index 8e2e9582605d4658568fd7305dc74bb59acfa9da..cdf0a19b7a737d267232e4a2e91df7673263d4d2 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: BSD-3-Clause
-SLC-Origin-M2: org.locationtech.jts:jts-core:1.18.2
\ No newline at end of file
+SLC-Origin-M2: org.locationtech.jts:jts-core:1.19.0
\ No newline at end of file
index 75ecae16a612e8cf03815f4a0f03398b42bbe2b3..b9bcadd54cfccde073b049595883df27ccbe6212 100644 (file)
@@ -8,7 +8,7 @@ SLC-Origin-M2-Merge: \
 javax.measure:unit-api:2.0, \
 tech.units:indriya, \
 tech.uom.lib:uom-lib-common:2.0.1, \
-si.uom:si-units:2.0, \
+si.uom:si-units:2.0.1, \
 si.uom:si-quantity:2.0.1, \
 systems.uom:systems-common:2.0.2, \
 systems.uom:systems-quantity:2.0.2, \
diff --git a/repackage/org.argeo.tp.jcr/com.google.guava.bnd.retired b/repackage/org.argeo.tp.jcr/com.google.guava.bnd.retired
deleted file mode 100644 (file)
index a8a926f..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Bundle-License: Apache-2.0
-Bundle-SymbolicName: com.google.guava
-Bundle-Version: 27.1.0.jre
-SLC-Origin-M2: com.google.guava:guava:27.1-jre
-SLC-Origin-ManifestNotModified: true
diff --git a/repackage/org.argeo.tp.jcr/com.google.guava.failureaccess.bnd.retired b/repackage/org.argeo.tp.jcr/com.google.guava.failureaccess.bnd.retired
deleted file mode 100644 (file)
index e7c19ce..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Bundle-License: Apache-2.0
-Bundle-SymbolicName: com.google.guava.failureaccess
-SLC-Origin-M2: com.google.guava:failureaccess:1.0.1
-SLC-Origin-ManifestNotModified: true
index c2bda37ee9c54e9574b57ea3e173588aae3fbfcc..5d259b220edc50bb87c3dc366e08294dff4d9f4e 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: Apache-2.0
-SLC-Origin-M2: :2.20.5
\ No newline at end of file
+SLC-Origin-M2: :2.20.6
\ No newline at end of file
diff --git a/repackage/org.argeo.tp.jcr/jackrabbit/org.apache.jackrabbit.api.bnd.retired b/repackage/org.argeo.tp.jcr/jackrabbit/org.apache.jackrabbit.api.bnd.retired
deleted file mode 100644 (file)
index 6ebc779..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-SLC-Origin-M2: org.apache.jackrabbit:jackrabbit-api
-Bundle-SymbolicName: org.apache.jackrabbit.api
-Export-Package: org.apache.jackrabbit.*
index 02fa45acba99c53cbca72c62c156d4db1f709d7b..02eafb790382142957c4eeaa2a2fc0620c9923d5 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: Apache-2.0
-SLC-Origin-M2: :1.42.0
\ No newline at end of file
+SLC-Origin-M2: :1.44.0
\ No newline at end of file
index 65692423eb296744afdee8b5b396f32762d3aded..abaada790782f3f1fdfa615f2d90c396ebd1a51d 100644 (file)
@@ -1,6 +1,6 @@
 Bundle-SymbolicName: org.eclipse.jetty.websocket
 Bundle-License: Apache-2.0
-SLC-Origin-M2: :10.0.11
+SLC-Origin-M2: :10.0.12
 SLC-Origin-M2-Merge: \
 org.eclipse.jetty.websocket:websocket-core-client, \
 org.eclipse.jetty.websocket:websocket-core-common, \
index 6ad2b20b96898d1db35d01244d1e67810b21bc37..27fd8a94aa4d179f02215f7ab8bb108738f092c1 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: Apache-2.0
-SLC-Origin-M2: :10.0.11
+SLC-Origin-M2: :10.0.12
diff --git a/repackage/org.argeo.tp.poi/log4j/common.bnd b/repackage/org.argeo.tp.poi/log4j/common.bnd
new file mode 100644 (file)
index 0000000..f9e517b
--- /dev/null
@@ -0,0 +1,2 @@
+Bundle-License: Apache-2.0
+SLC-Origin-M2: :2.19.0
diff --git a/repackage/org.argeo.tp.poi/log4j/org.apache.logging.log4j.api.bnd b/repackage/org.argeo.tp.poi/log4j/org.apache.logging.log4j.api.bnd
new file mode 100644 (file)
index 0000000..c29a8e4
--- /dev/null
@@ -0,0 +1,3 @@
+SLC-Origin-M2: org.apache.logging.log4j:log4j-api
+Bundle-ActivationPolicy: lazy
+Import-Package: *;resolution:=optional
index 83d6d31b325fc081841ab8722f8316b3b89d4f5c..8905324083e88e813d82854983c41efe4391ab81 100644 (file)
@@ -5,4 +5,4 @@ Import-Package: org.apache.tools.ant.*;resolution:=optional,
 net.sf.saxon.*;resolution:=optional,
 com.sun.*;resolution:=optional,
 *
-SLC-Origin-M2: org.apache.xmlbeans:xmlbeans:3.1.0
\ No newline at end of file
+SLC-Origin-M2: org.apache.xmlbeans:xmlbeans:5.1.1
\ No newline at end of file
index b3e399683237831202c496590cd3f171cb9ff82c..b2394bd315187ccbda2bb0df31774a049c94cfbe 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: Apache-2.0
-SLC-Origin-M2: :5.2.2
\ No newline at end of file
+SLC-Origin-M2: :5.2.3
\ No newline at end of file
index 312584e56ff236851c9de6fe11d607373833e481..6eaa07c4ec589e01543fc97164ef7cd4a275f4df 100644 (file)
@@ -1,6 +1,6 @@
 Bundle-License: EPL-2.0
 Bundle-SymbolicName: org.junit.jupiter
-SLC-Origin-M2: :5.8.2
+SLC-Origin-M2: :5.9.1
 SLC-Origin-M2-Merge: \
 org.junit.jupiter:junit-jupiter-api, \
 org.junit.jupiter:junit-jupiter-engine, \
index 502ffa66989ecfad1f7dae95e0778168085bee28..110a32ee3fce450adfdf7ef60ef5e1c7c3896bf1 100644 (file)
@@ -1,6 +1,6 @@
 Bundle-License: EPL-2.0
 Bundle-SymbolicName: org.junit.platform
-SLC-Origin-M2: :1.8.2
+SLC-Origin-M2: :1.9.1
 SLC-Origin-M2-Merge: \
 org.junit.platform:junit-platform-commons, \
 org.junit.platform:junit-platform-console, \
index 27f4f43ecd6f24c97d2515b322a749fa4f85d0e8..70b5ac02fc20833db89d956bfea7826640fd4fb2 100644 (file)
@@ -1,4 +1,4 @@
 Bundle-License: EPL-2.0
-SLC-Origin-M2: org.eclipse.jdt:ecj:3.29.0
+SLC-Origin-M2: org.eclipse.jdt:ecj:3.31.0
 SLC-Origin-ManifestNotModified: true
 Main-Class: org.eclipse.jdt.internal.compiler.batch.Main
\ No newline at end of file
index c4df6b9fc5c66a339e6134449f5d4376b61eba4e..65d1344bdd71e29e0217917e8d0db322edbfa995 100644 (file)
@@ -1,5 +1,5 @@
 Bundle-License: BSD-3-Clause
-SLC-Origin-M2: org.eclipse.jgit:org.eclipse.jgit:5.13.0.202109080827-r
+SLC-Origin-M2: org.eclipse.jgit:org.eclipse.jgit:6.3.0.202209071007-r
 Import-Package: \
 sun.*;resolution:=optional, \
 com.jcraft.jsch;resolution:=optional, \
diff --git a/repackage/org.argeo.tp.sdk/org.graalvm.bnd.retired b/repackage/org.argeo.tp.sdk/org.graalvm.bnd.retired
deleted file mode 100644 (file)
index dd55db9..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Bundle-License: UPL-1.0
-SLC-Origin-M2: org.graalvm.sdk:graal-sdk:22.1.0.1
-# Workaround for errors in Eclipse PDE when using GraalVM as JCM
-Import-Package: java.*;resolution:="optional", *
\ No newline at end of file
index c06389124556478662e13a43a6ed7fc9f037e1c3..df674e48721b609802424423b51dfda567dce2ea 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: EPL-2.0
-SLC-Origin-M2: org.junit.vintage:junit-vintage-engine:5.8.2
\ No newline at end of file
+SLC-Origin-M2: org.junit.vintage:junit-vintage-engine:5.9.1
\ No newline at end of file
index bbd389db0fefa01390cde23e0e5d66cafc1f25ec..b860aa52172dec84e088761f75500dbd1ce7bc42 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: MIT
-SLC-Origin-M2: :1.71
+SLC-Origin-M2: :1.72
index b9a12cc62c90eb0837ce6615ad481c4e629ee9ce..a738fc4361fae74f00fe56287e5b4f4548498462 100644 (file)
@@ -1,2 +1,2 @@
 Bundle-License: Apache-2.0
-SLC-Origin-M2: :2.13.1
+SLC-Origin-M2: :2.13.4
diff --git a/repackage/org.argeo.tp/jakarta.mail.bnd b/repackage/org.argeo.tp/jakarta.mail.bnd
deleted file mode 100644 (file)
index 15093a7..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Bundle-License: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-Bundle-SymbolicName: jakarta.mail
-SLC-Origin-M2: com.sun.mail:jakarta.mail:1.6.7
-SLC-Origin-ManifestNotModified: true
diff --git a/repackage/org.argeo.tp/jakarta.servlet.api.bnd b/repackage/org.argeo.tp/jakarta.servlet.api.bnd
deleted file mode 100644 (file)
index 5664fbd..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Bundle-License: GPL-2.0-with-classpath-exception
-SLC-Origin-M2: jakarta.servlet:jakarta.servlet-api:4.0.4
-SLC-Origin-ManifestNotModified: true
diff --git a/repackage/org.argeo.tp/javax.mail.bnd b/repackage/org.argeo.tp/javax.mail.bnd
new file mode 100644 (file)
index 0000000..15093a7
--- /dev/null
@@ -0,0 +1,4 @@
+Bundle-License: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+Bundle-SymbolicName: jakarta.mail
+SLC-Origin-M2: com.sun.mail:jakarta.mail:1.6.7
+SLC-Origin-ManifestNotModified: true
diff --git a/repackage/org.argeo.tp/javax.servlet.bnd b/repackage/org.argeo.tp/javax.servlet.bnd
new file mode 100644 (file)
index 0000000..5664fbd
--- /dev/null
@@ -0,0 +1,3 @@
+Bundle-License: GPL-2.0-with-classpath-exception
+SLC-Origin-M2: jakarta.servlet:jakarta.servlet-api:4.0.4
+SLC-Origin-ManifestNotModified: true
index 7767b5ca4c5438c159c1b49bc5d9eac055972c39..adb6e8253d5f4197f3f5cc2b610d985f65d832d5 100644 (file)
@@ -1,4 +1,4 @@
 Bundle-License: BSD-2-Clause
 Bundle-SymbolicName: org.postgresql.jdbc42
-SLC-Origin-M2: org.postgresql:postgresql:42.3.5
+SLC-Origin-M2: org.postgresql:postgresql:42.5.0
 SLC-Origin-ManifestNotModified: true
index 75afe68f21ba88dfdd9e8894cc171920a33ff470..d034d27f7c314531bf4f4d6cc2b52abfb2c401cc 100644 (file)
@@ -1,2 +1 @@
-Bundle-SymbolicName: org.slf4j.api
 SLC-Origin-M2: org.slf4j:slf4j-api
index 9b2ffdbd29dab1fd6bd18de696fc66780c038467..4e5e7c804266f9965da18076fe1f81d845ed7649 100644 (file)
@@ -1,3 +1,2 @@
-Bundle-SymbolicName: org.slf4j.commons.logging
 SLC-Origin-M2: org.slf4j:jcl-over-slf4j
 Export-Package: org.apache.commons.logging.*;version="1.2"
\ No newline at end of file
diff --git a/repackage/org.argeo.tp/slf4j/org.slf4j.log4j.bnd.deactivated b/repackage/org.argeo.tp/slf4j/org.slf4j.log4j.bnd.deactivated
deleted file mode 100644 (file)
index 4275c6a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Bundle-SymbolicName: org.slf4j.log4j
-SLC-Origin-M2: org.slf4j:log4j-over-slf4j
-Export-Package: org.apache.logging.log4j.*;version="2.17"
\ No newline at end of file
index 99aca0efea44087a660cfc879bc6037440c3b128..95b3bf364da45b0fa0650b1f8e1d976c4effd6b3 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 99aca0efea44087a660cfc879bc6037440c3b128
+Subproject commit 95b3bf364da45b0fa0650b1f8e1d976c4effd6b3