Improve CLI and GraalVM architecture.
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 13 Jul 2022 07:13:22 +0000 (09:13 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 13 Jul 2022 07:13:22 +0000 (09:13 +0200)
36 files changed:
Makefile
Makefile-rcp.mk [new file with mode: 0644]
cms/org.argeo.slc.cms/src/org/argeo/slc/cli/posix/Echo.java [deleted file]
cms/org.argeo.slc.cms/src/org/argeo/slc/cli/posix/PosixCommands.java [deleted file]
cms/org.argeo.slc.cms/src/org/argeo/slc/cli/posix/package-info.java [deleted file]
graalvm/org.argeo.slc.graalvm/.classpath [new file with mode: 0644]
graalvm/org.argeo.slc.graalvm/.project [new file with mode: 0644]
graalvm/org.argeo.slc.graalvm/bnd.bnd [new file with mode: 0644]
graalvm/org.argeo.slc.graalvm/build.properties [new file with mode: 0644]
graalvm/org.argeo.slc.graalvm/src/org/argeo/slc/graalvm/feature/ArgeoToolFeature.java [new file with mode: 0644]
suite/org.argeo.slc.tool/.classpath [deleted file]
suite/org.argeo.slc.tool/.project [deleted file]
suite/org.argeo.slc.tool/.settings/org.eclipse.jdt.core.prefs [deleted file]
suite/org.argeo.slc.tool/META-INF/native-image/jni-config.json [deleted file]
suite/org.argeo.slc.tool/META-INF/native-image/predefined-classes-config.json [deleted file]
suite/org.argeo.slc.tool/META-INF/native-image/proxy-config.json [deleted file]
suite/org.argeo.slc.tool/META-INF/native-image/reflect-config.json [deleted file]
suite/org.argeo.slc.tool/META-INF/native-image/resource-config.json [deleted file]
suite/org.argeo.slc.tool/META-INF/native-image/serialization-config.json [deleted file]
suite/org.argeo.slc.tool/bnd.bnd [deleted file]
suite/org.argeo.slc.tool/build.properties [deleted file]
suite/org.argeo.slc.tool/src/org/argeo/slc/tool/Main.java [deleted file]
suite/org.argeo.slc.tool/src/org/argeo/slc/tool/graalvm/BouncyCastleFeature.java [deleted file]
suite/org.argeo.slc.tool/src/org/argeo/slc/tool/swt/MiniDesktopCli.java [deleted file]
swt/rap/org.argeo.tool.server/.classpath [new file with mode: 0644]
swt/rap/org.argeo.tool.server/.project [new file with mode: 0644]
swt/rap/org.argeo.tool.server/bnd.bnd [new file with mode: 0644]
swt/rap/org.argeo.tool.server/build.properties [new file with mode: 0644]
swt/rap/org.argeo.tool.server/src/org/argeo/tool/server/ArgeoServer.java [new file with mode: 0644]
swt/rcp/org.argeo.tool.desktop/.classpath [new file with mode: 0644]
swt/rcp/org.argeo.tool.desktop/.project [new file with mode: 0644]
swt/rcp/org.argeo.tool.desktop/bnd.bnd [new file with mode: 0644]
swt/rcp/org.argeo.tool.desktop/build.properties [new file with mode: 0644]
swt/rcp/org.argeo.tool.desktop/src/org/argeo/tool/desktop/ArgeoDesktop.java [new file with mode: 0644]
swt/rcp/org.argeo.tool.desktop/src/org/argeo/tool/desktop/MiniDesktopCli.java [new file with mode: 0644]
tp/org.argeo.tp.sdk/org.graalvm.nativeimage.svm.bnd [deleted file]

index a0a17d608c460b9d6ecbf0d463e111e38424d754..d3fab4a46e1b07b0871650501663bcb9f6c56cd3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -10,9 +10,9 @@ org.argeo.slc.api \
 org.argeo.slc.factory \
 org.argeo.slc.runtime \
 cms/org.argeo.slc.cms \
-suite/org.argeo.slc.tool \
+swt/rap/org.argeo.tool.server \
 
-VPATH = .:cms:suite
+VPATH = .:cms:swt/rap
 
 clean:
        rm -rf $(BUILD_BASE)
@@ -27,25 +27,32 @@ org.argeo.tp.apache \
 org.argeo.tp.jetty \
 org.argeo.tp.eclipse \
 osgi/api/org.argeo.tp.osgi \
-swt/rcp/org.argeo.tp.swt \
-lib/linux/x86_64/swt/rcp/org.argeo.tp.swt \
-swt/rcp/org.argeo.tp.swt.workbench \
+swt/rap/org.argeo.tp.swt \
+swt/rap/org.argeo.tp.swt.workbench \
 org.argeo.tp.jcr \
 org.argeo.tp.formats \
 org.argeo.tp.gis \
 org.argeo.cms \
-org.argeo.cms.eclipse.rcp \
+org.argeo.cms.eclipse.rap \
 
+GRAALVM_HOME = /opt/graalvm-ce
 A2_BUNDLES_CLASSPATH = $(subst $(space),$(pathsep),$(strip $(A2_BUNDLES)))
 
-native-image:
+graalvm-custom:
+       $(GRAALVM_HOME)/bin/java -jar $(ECJ_JAR) @$(SDK_SRC_BASE)/sdk/argeo-build/ecj.args -cp $(A2_CLASSPATH) \
+               graalvm/org.argeo.slc.graalvm/src[-d $(SDK_BUILD_BASE)/$(A2_CATEGORY)/graalvm/bin]
+
+tool-server: osgi graalvm-custom
        mkdir -p $(A2_OUTPUT)/libexec/$(A2_CATEGORY)
-       cd $(A2_OUTPUT)/libexec/$(A2_CATEGORY) && /opt/graalvm-ce/bin/native-image \
-               -cp $(A2_CLASSPATH):$(A2_BUNDLES_CLASSPATH) org.argeo.slc.tool.Main \
+       cd $(A2_OUTPUT)/libexec/$(A2_CATEGORY) && $(GRAALVM_HOME)/bin/native-image \
+               -cp $(A2_CLASSPATH):$(A2_BUNDLES_CLASSPATH):$(SDK_BUILD_BASE)/$(A2_CATEGORY)/graalvm/bin \
+               --features=org.argeo.slc.graalvm.feature.ArgeoToolFeature \
                --enable-url-protocols=http,https \
                -H:AdditionalSecurityProviders=sun.security.jgss.SunProvider,org.bouncycastle.jce.provider.BouncyCastleProvider,net.i2p.crypto.eddsa.EdDSASecurityProvider \
                --initialize-at-build-time=org.argeo.init.logging.ThinLogging,org.slf4j.LoggerFactory \
-               --no-fallback 
+               --no-fallback \
+                org.argeo.tool.server.ArgeoServer \
+                argeo
+
 
 include  $(SDK_SRC_BASE)/sdk/argeo-build/osgi.mk
\ No newline at end of file
diff --git a/Makefile-rcp.mk b/Makefile-rcp.mk
new file mode 100644 (file)
index 0000000..717ef5a
--- /dev/null
@@ -0,0 +1,48 @@
+include sdk.mk
+.PHONY: clean all osgi
+
+all: osgi
+
+A2_CATEGORY = org.argeo.slc
+
+BUNDLES = \
+swt/rcp/org.argeo.tool.desktop \
+
+VPATH = .:cms:swt/rcp
+
+clean:
+       rm -rf $(BUILD_BASE)
+
+A2_OUTPUT = $(SDK_BUILD_BASE)/a2
+A2_BASE = $(A2_OUTPUT)
+
+DEP_CATEGORIES = \
+org.argeo.tp \
+org.argeo.tp.sdk \
+org.argeo.tp.apache \
+org.argeo.tp.jetty \
+org.argeo.tp.eclipse \
+osgi/api/org.argeo.tp.osgi \
+swt/rcp/org.argeo.tp.swt \
+lib/linux/x86_64/swt/rcp/org.argeo.tp.swt \
+swt/rcp/org.argeo.tp.swt.workbench \
+org.argeo.cms \
+org.argeo.cms.eclipse.rcp \
+
+GRAALVM_HOME = /opt/graalvm-ce
+A2_BUNDLES_CLASSPATH = $(subst $(space),$(pathsep),$(strip $(A2_BUNDLES)))
+
+tool-desktop:
+       mkdir -p $(A2_OUTPUT)/libexec/$(A2_CATEGORY)
+       cd $(A2_OUTPUT)/libexec/$(A2_CATEGORY) && $(GRAALVM_HOME)/bin/native-image \
+               -cp $(A2_CLASSPATH):$(A2_BUNDLES_CLASSPATH):$(SDK_BUILD_BASE)/$(A2_CATEGORY)/graalvm/bin \
+               --features=org.argeo.slc.graalvm.feature.ArgeoToolFeature \
+               --enable-url-protocols=http,https \
+               -H:AdditionalSecurityProviders=sun.security.jgss.SunProvider,org.bouncycastle.jce.provider.BouncyCastleProvider,net.i2p.crypto.eddsa.EdDSASecurityProvider \
+               --initialize-at-build-time=org.argeo.init.logging.ThinLogging,org.slf4j.LoggerFactory \
+               --no-fallback \
+                org.argeo.tool.desktop.ArgeoDesktop \
+                argeo-desktop
+
+include  $(SDK_SRC_BASE)/sdk/argeo-build/osgi.mk
\ No newline at end of file
diff --git a/cms/org.argeo.slc.cms/src/org/argeo/slc/cli/posix/Echo.java b/cms/org.argeo.slc.cms/src/org/argeo/slc/cli/posix/Echo.java
deleted file mode 100644 (file)
index b5576f9..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.argeo.slc.cli.posix;
-
-import java.util.List;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.Options;
-import org.argeo.api.cli.DescribedCommand;
-
-public class Echo implements DescribedCommand<String> {
-
-       @Override
-       public Options getOptions() {
-               Options options = new Options();
-               options.addOption(Option.builder("n").desc("do not output the trailing newline").build());
-               return options;
-       }
-
-       @Override
-       public String getDescription() {
-               return "Display a line of text";
-       }
-
-       @Override
-       public String getUsage() {
-               return "[STRING]...";
-       }
-
-       @Override
-       public String apply(List<String> args) {
-               CommandLine cl = toCommandLine(args);
-
-               StringBuffer sb = new StringBuffer();
-               for (String s : cl.getArgList()) {
-                       sb.append(s).append(' ');
-               }
-
-               if (cl.hasOption('n')) {
-                       sb.deleteCharAt(sb.length() - 1);
-               } else {
-                       sb.setCharAt(sb.length() - 1, '\n');
-               }
-               return sb.toString();
-       }
-
-}
diff --git a/cms/org.argeo.slc.cms/src/org/argeo/slc/cli/posix/PosixCommands.java b/cms/org.argeo.slc.cms/src/org/argeo/slc/cli/posix/PosixCommands.java
deleted file mode 100644 (file)
index 3f463ef..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.argeo.slc.cli.posix;
-
-import org.argeo.api.cli.CommandsCli;
-
-/** POSIX commands. */
-public class PosixCommands extends CommandsCli {
-
-       public PosixCommands(String commandName) {
-               super(commandName);
-               addCommand("echo", new Echo());
-       }
-
-       @Override
-       public String getDescription() {
-               return "Reimplementation of some POSIX commands in plain Java";
-       }
-
-       public static void main(String[] args) {
-               mainImpl(new PosixCommands("argeo-posix"), args);
-       }
-}
diff --git a/cms/org.argeo.slc.cms/src/org/argeo/slc/cli/posix/package-info.java b/cms/org.argeo.slc.cms/src/org/argeo/slc/cli/posix/package-info.java
deleted file mode 100644 (file)
index f6da265..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/** Posix CLI commands. */
-package org.argeo.slc.cli.posix;
\ No newline at end of file
diff --git a/graalvm/org.argeo.slc.graalvm/.classpath b/graalvm/org.argeo.slc.graalvm/.classpath
new file mode 100644 (file)
index 0000000..81fe078
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="src" path="src"/>
+       <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/graalvm/org.argeo.slc.graalvm/.project b/graalvm/org.argeo.slc.graalvm/.project
new file mode 100644 (file)
index 0000000..c102f62
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.argeo.slc.graalvm</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
diff --git a/graalvm/org.argeo.slc.graalvm/bnd.bnd b/graalvm/org.argeo.slc.graalvm/bnd.bnd
new file mode 100644 (file)
index 0000000..c435dc9
--- /dev/null
@@ -0,0 +1,3 @@
+Import-Package: \
+!org.graalvm.nativeimage.*, \
+*
\ No newline at end of file
diff --git a/graalvm/org.argeo.slc.graalvm/build.properties b/graalvm/org.argeo.slc.graalvm/build.properties
new file mode 100644 (file)
index 0000000..34d2e4d
--- /dev/null
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/graalvm/org.argeo.slc.graalvm/src/org/argeo/slc/graalvm/feature/ArgeoToolFeature.java b/graalvm/org.argeo.slc.graalvm/src/org/argeo/slc/graalvm/feature/ArgeoToolFeature.java
new file mode 100644 (file)
index 0000000..2213e06
--- /dev/null
@@ -0,0 +1,36 @@
+package org.argeo.slc.graalvm.feature;
+
+import java.security.Security;
+
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
+import org.graalvm.nativeimage.ImageSingletons;
+import org.graalvm.nativeimage.hosted.Feature;
+import org.graalvm.nativeimage.hosted.RuntimeClassInitialization;
+import org.graalvm.nativeimage.impl.RuntimeClassInitializationSupport;
+
+import net.i2p.crypto.eddsa.EdDSASecurityProvider;
+
+/** Required native image customisations. */
+public class ArgeoToolFeature implements Feature {
+
+       @Override
+       public void afterRegistration(AfterRegistrationAccess access) {
+               // JCE providers need to be registered at build time.
+               // https://github.com/oracle/graal/issues/2800#issuecomment-702480444
+               // https://github.com/micronaut-projects/micronaut-oracle-cloud/pull/17/files#r498585779
+               RuntimeClassInitialization.initializeAtBuildTime("org.bouncycastle");
+               Security.addProvider(new BouncyCastleProvider());
+
+               RuntimeClassInitialization.initializeAtBuildTime("net.i2p.crypto.eddsa");
+               Security.addProvider(new EdDSASecurityProvider());
+
+               // required for Tomcat JNI DLL to load properly
+               RuntimeClassInitialization.initializeAtBuildTime("org.apache.tomcat.jni");
+
+               RuntimeClassInitializationSupport rci = ImageSingletons.lookup(RuntimeClassInitializationSupport.class);
+               rci.rerunInitialization("org.bouncycastle.jcajce.provider.drbg.DRBG$Default", "dependency with native random");
+               rci.rerunInitialization("org.bouncycastle.jcajce.provider.drbg.DRBG$NonceAndIV",
+                               "dependency with native random");
+       }
+
+}
diff --git a/suite/org.argeo.slc.tool/.classpath b/suite/org.argeo.slc.tool/.classpath
deleted file mode 100644 (file)
index 81fe078..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-       <classpathentry kind="src" path="src"/>
-       <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/suite/org.argeo.slc.tool/.project b/suite/org.argeo.slc.tool/.project
deleted file mode 100644 (file)
index 7044578..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-       <name>org.argeo.slc.tool</name>
-       <comment></comment>
-       <projects>
-       </projects>
-       <buildSpec>
-               <buildCommand>
-                       <name>org.eclipse.jdt.core.javabuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.ManifestBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-               <buildCommand>
-                       <name>org.eclipse.pde.SchemaBuilder</name>
-                       <arguments>
-                       </arguments>
-               </buildCommand>
-       </buildSpec>
-       <natures>
-               <nature>org.eclipse.pde.PluginNature</nature>
-               <nature>org.eclipse.jdt.core.javanature</nature>
-       </natures>
-</projectDescription>
diff --git a/suite/org.argeo.slc.tool/.settings/org.eclipse.jdt.core.prefs b/suite/org.argeo.slc.tool/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644 (file)
index 997d664..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.annotationPath.allLocations=disabled
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/suite/org.argeo.slc.tool/META-INF/native-image/jni-config.json b/suite/org.argeo.slc.tool/META-INF/native-image/jni-config.json
deleted file mode 100644 (file)
index 5e3b05b..0000000
+++ /dev/null
@@ -1,321 +0,0 @@
-[
-{
-  "name":"com.sun.security.auth.module.UnixSystem",
-  "fields":[
-    {"name":"gid"}, 
-    {"name":"groups"}, 
-    {"name":"uid"}, 
-    {"name":"username"}
-  ]
-},
-{
-  "name":"java.lang.Boolean",
-  "methods":[{"name":"getBoolean","parameterTypes":["java.lang.String"] }]
-},
-{
-  "name":"java.lang.ClassLoader",
-  "methods":[
-    {"name":"getPlatformClassLoader","parameterTypes":[] }, 
-    {"name":"loadClass","parameterTypes":["java.lang.String"] }
-  ]
-},
-{
-  "name":"java.lang.String",
-  "methods":[
-    {"name":"<init>","parameterTypes":["byte[]"] }, 
-    {"name":"getBytes","parameterTypes":[] }
-  ]
-},
-{
-  "name":"java.lang.Throwable",
-  "methods":[{"name":"addSuppressed","parameterTypes":["java.lang.Throwable"] }]
-},
-{
-  "name":"jdk.internal.loader.ClassLoaders$PlatformClassLoader"
-},
-{
-  "name":"org.apache.tomcat.jni.FileInfo",
-  "fields":[
-    {"name":"atime"}, 
-    {"name":"csize"}, 
-    {"name":"ctime"}, 
-    {"name":"device"}, 
-    {"name":"filehand"}, 
-    {"name":"filetype"}, 
-    {"name":"fname"}, 
-    {"name":"group"}, 
-    {"name":"inode"}, 
-    {"name":"mtime"}, 
-    {"name":"name"}, 
-    {"name":"nlink"}, 
-    {"name":"pool"}, 
-    {"name":"protection"}, 
-    {"name":"size"}, 
-    {"name":"user"}, 
-    {"name":"valid"}
-  ],
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.tomcat.jni.Sockaddr",
-  "fields":[
-    {"name":"family"}, 
-    {"name":"hostname"}, 
-    {"name":"next"}, 
-    {"name":"pool"}, 
-    {"name":"port"}, 
-    {"name":"servname"}
-  ],
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.argeo.slc.tool.Main",
-  "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
-  "name":"org.eclipse.swt.browser.WebKit",
-  "methods":[
-    {"name":"JSDOMEventProc","parameterTypes":["long","long","long"] }, 
-    {"name":"Proc","parameterTypes":["long","long"] }, 
-    {"name":"Proc","parameterTypes":["long","long","long"] }, 
-    {"name":"Proc","parameterTypes":["long","long","long","long"] }, 
-    {"name":"Proc","parameterTypes":["long","long","long","long","long"] }
-  ]
-},
-{
-  "name":"org.eclipse.swt.browser.WebKit$WebKitExtension",
-  "methods":[{"name":"initializeWebExtensions_callback","parameterTypes":["long","long"] }]
-},
-{
-  "name":"org.eclipse.swt.browser.WebKit$Webkit2AsyncToSync",
-  "methods":[
-    {"name":"getCookie_callback","parameterTypes":["long","long","long"] }, 
-    {"name":"getText_callback","parameterTypes":["long","long","long"] }, 
-    {"name":"runjavascript_callback","parameterTypes":["long","long","long"] }, 
-    {"name":"setCookie_callback","parameterTypes":["long","long","long"] }
-  ]
-},
-{
-  "name":"org.eclipse.swt.browser.WebkitGDBus",
-  "methods":[
-    {"name":"authenticatePeerCB","parameterTypes":["long","long","long","long"] }, 
-    {"name":"callExtensionAsyncCB","parameterTypes":["long","long","long"] }, 
-    {"name":"handleMethodCB","parameterTypes":["long","long","long","long","long","long","long","long"] }, 
-    {"name":"newConnectionCB","parameterTypes":["long","long","long"] }, 
-    {"name":"newConnectionToExtensionCB","parameterTypes":["long","long","long"] }
-  ]
-},
-{
-  "name":"org.eclipse.swt.graphics.Device",
-  "methods":[{"name":"logProc","parameterTypes":["long","long","long","long"] }]
-},
-{
-  "name":"org.eclipse.swt.internal.SessionManagerDBus",
-  "methods":[{"name":"g_signal_handler","parameterTypes":["long","long","long","long","long"] }]
-},
-{
-  "name":"org.eclipse.swt.internal.cairo.cairo_rectangle_int_t",
-  "fields":[
-    {"name":"height"}, 
-    {"name":"width"}, 
-    {"name":"x"}, 
-    {"name":"y"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk.GTypeInfo",
-  "fields":[
-    {"name":"base_finalize"}, 
-    {"name":"base_init"}, 
-    {"name":"class_data"}, 
-    {"name":"class_finalize"}, 
-    {"name":"class_init"}, 
-    {"name":"class_size"}, 
-    {"name":"instance_init"}, 
-    {"name":"instance_size"}, 
-    {"name":"n_preallocs"}, 
-    {"name":"value_table"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk.GdkKeymapKey",
-  "fields":[
-    {"name":"group"}, 
-    {"name":"keycode"}, 
-    {"name":"level"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk.GdkRGBA",
-  "fields":[
-    {"name":"alpha"}, 
-    {"name":"blue"}, 
-    {"name":"green"}, 
-    {"name":"red"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk.GdkRectangle",
-  "fields":[
-    {"name":"height"}, 
-    {"name":"width"}, 
-    {"name":"x"}, 
-    {"name":"y"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk.GtkAllocation",
-  "fields":[
-    {"name":"height"}, 
-    {"name":"width"}, 
-    {"name":"x"}, 
-    {"name":"y"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk.GtkBorder",
-  "fields":[
-    {"name":"bottom"}, 
-    {"name":"left"}, 
-    {"name":"right"}, 
-    {"name":"top"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk.GtkRequisition",
-  "fields":[
-    {"name":"height"}, 
-    {"name":"width"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk3.GdkEvent",
-  "fields":[{"name":"type"}]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk3.GdkEventCrossing",
-  "fields":[
-    {"name":"detail"}, 
-    {"name":"focus"}, 
-    {"name":"mode"}, 
-    {"name":"send_event"}, 
-    {"name":"state"}, 
-    {"name":"subwindow"}, 
-    {"name":"time"}, 
-    {"name":"window"}, 
-    {"name":"x"}, 
-    {"name":"x_root"}, 
-    {"name":"y"}, 
-    {"name":"y_root"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk3.GdkEventFocus",
-  "fields":[
-    {"name":"in"}, 
-    {"name":"send_event"}, 
-    {"name":"window"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk3.GdkEventKey",
-  "fields":[
-    {"name":"group"}, 
-    {"name":"hardware_keycode"}, 
-    {"name":"is_modifier"}, 
-    {"name":"keyval"}, 
-    {"name":"length"}, 
-    {"name":"send_event"}, 
-    {"name":"state"}, 
-    {"name":"string"}, 
-    {"name":"time"}, 
-    {"name":"window"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk3.GdkEventMotion",
-  "fields":[
-    {"name":"axes"}, 
-    {"name":"device"}, 
-    {"name":"is_hint"}, 
-    {"name":"send_event"}, 
-    {"name":"state"}, 
-    {"name":"time"}, 
-    {"name":"window"}, 
-    {"name":"x"}, 
-    {"name":"x_root"}, 
-    {"name":"y"}, 
-    {"name":"y_root"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.internal.gtk3.GdkEventWindowState",
-  "fields":[
-    {"name":"changed_mask"}, 
-    {"name":"new_window_state"}, 
-    {"name":"send_event"}, 
-    {"name":"window"}
-  ]
-},
-{
-  "name":"org.eclipse.swt.widgets.Control",
-  "methods":[
-    {"name":"gestureBeginProc","parameterTypes":["long","long","long"] }, 
-    {"name":"gestureEndProc","parameterTypes":["long","long","long"] }, 
-    {"name":"magnifyProc","parameterTypes":["long","double","long"] }, 
-    {"name":"rotateProc","parameterTypes":["long","double","double","long"] }, 
-    {"name":"swipeProc","parameterTypes":["long","double","double","long"] }
-  ]
-},
-{
-  "name":"org.eclipse.swt.widgets.Display",
-  "methods":[
-    {"name":"allChildrenProc","parameterTypes":["long","long"] }, 
-    {"name":"caretProc","parameterTypes":["long"] }, 
-    {"name":"cellDataProc","parameterTypes":["long","long","long","long","long"] }, 
-    {"name":"changeValue","parameterTypes":["long","int","double","long"] }, 
-    {"name":"checkIfEventProc","parameterTypes":["long","long","long"] }, 
-    {"name":"emissionProc","parameterTypes":["long","long","long","long"] }, 
-    {"name":"eventProc","parameterTypes":["long","long"] }, 
-    {"name":"idleProc","parameterTypes":["long"] }, 
-    {"name":"keysChangedProc","parameterTypes":["long","long"] }, 
-    {"name":"mouseHoverProc","parameterTypes":["long"] }, 
-    {"name":"notifyProc","parameterTypes":["long","long","long"] }, 
-    {"name":"rendererClassInitProc","parameterTypes":["long","long"] }, 
-    {"name":"rendererGetPreferredWidthProc","parameterTypes":["long","long","long","long"] }, 
-    {"name":"rendererRenderProc","parameterTypes":["long","long","long","long","long","long"] }, 
-    {"name":"setDirectionProc","parameterTypes":["long","long"] }, 
-    {"name":"shellMapProc","parameterTypes":["long","long","long"] }, 
-    {"name":"signalProc","parameterTypes":["long","long","long"] }, 
-    {"name":"sizeAllocateProc","parameterTypes":["long","long","long"] }, 
-    {"name":"sizeRequestProc","parameterTypes":["long","long","long"] }, 
-    {"name":"timerProc","parameterTypes":["long"] }, 
-    {"name":"windowProc","parameterTypes":["long","long"] }, 
-    {"name":"windowProc","parameterTypes":["long","long","long"] }, 
-    {"name":"windowProc","parameterTypes":["long","long","long","long"] }, 
-    {"name":"windowProc","parameterTypes":["long","long","long","long","long"] }, 
-    {"name":"windowTimerProc","parameterTypes":["long"] }
-  ]
-},
-{
-  "name":"org.eclipse.swt.widgets.ToolBar",
-  "methods":[{"name":"MenuItemSelectedProc","parameterTypes":["long","long"] }]
-},
-{
-  "name":"org.graalvm.jniutils.JNIExceptionWrapperEntryPoints",
-  "methods":[{"name":"getClassName","parameterTypes":["java.lang.Class"] }]
-},
-{
-  "name":"sun.management.VMManagementImpl",
-  "fields":[
-    {"name":"compTimeMonitoringSupport"}, 
-    {"name":"currentThreadCpuTimeSupport"}, 
-    {"name":"objectMonitorUsageSupport"}, 
-    {"name":"otherThreadCpuTimeSupport"}, 
-    {"name":"remoteDiagnosticCommandsSupport"}, 
-    {"name":"synchronizerUsageSupport"}, 
-    {"name":"threadAllocatedMemorySupport"}, 
-    {"name":"threadContentionMonitoringSupport"}
-  ]
-}
-]
diff --git a/suite/org.argeo.slc.tool/META-INF/native-image/predefined-classes-config.json b/suite/org.argeo.slc.tool/META-INF/native-image/predefined-classes-config.json
deleted file mode 100644 (file)
index 0e79b2c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-[
-  {
-    "type":"agent-extracted",
-    "classes":[
-    ]
-  }
-]
-
diff --git a/suite/org.argeo.slc.tool/META-INF/native-image/proxy-config.json b/suite/org.argeo.slc.tool/META-INF/native-image/proxy-config.json
deleted file mode 100644 (file)
index f9dde34..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    "interfaces":["org.apache.sshd.common.channel.ChannelListener"]}
-  ,
-  {
-    "interfaces":["org.apache.sshd.common.forward.PortForwardingEventListener"]}
-  ,
-  {
-    "interfaces":["org.apache.sshd.common.session.SessionListener"]}
-  
-]
diff --git a/suite/org.argeo.slc.tool/META-INF/native-image/reflect-config.json b/suite/org.argeo.slc.tool/META-INF/native-image/reflect-config.json
deleted file mode 100644 (file)
index 93ea663..0000000
+++ /dev/null
@@ -1,624 +0,0 @@
-[
-{
-  "name":"[B"
-},
-{
-  "name":"[Ljava.lang.String;"
-},
-{
-  "name":"[Lsun.security.pkcs.SignerInfo;"
-},
-{
-  "name":"com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"java.lang.String"
-},
-{
-  "name":"java.security.KeyFactory",
-  "methods":[{"name":"getInstance","parameterTypes":["java.lang.String","java.lang.String"] }]
-},
-{
-  "name":"java.security.KeyPairGenerator",
-  "methods":[{"name":"getInstance","parameterTypes":["java.lang.String","java.lang.String"] }]
-},
-{
-  "name":"java.security.MessageDigest",
-  "methods":[{"name":"getInstance","parameterTypes":["java.lang.String","java.lang.String"] }]
-},
-{
-  "name":"java.security.SecureRandomParameters"
-},
-{
-  "name":"java.security.Signature",
-  "methods":[{"name":"getInstance","parameterTypes":["java.lang.String","java.lang.String"] }]
-},
-{
-  "name":"java.security.cert.PKIXRevocationChecker"
-},
-{
-  "name":"java.util.Date"
-},
-{
-  "name":"javax.crypto.Cipher",
-  "methods":[{"name":"getInstance","parameterTypes":["java.lang.String","java.lang.String"] }]
-},
-{
-  "name":"javax.crypto.KeyAgreement",
-  "methods":[{"name":"getInstance","parameterTypes":["java.lang.String","java.lang.String"] }]
-},
-{
-  "name":"javax.crypto.spec.GCMParameterSpec"
-},
-{
-  "name":"javax.security.auth.login.Configuration$Parameters"
-},
-{
-  "name":"javax.security.auth.x500.X500Principal",
-  "fields":[{"name":"thisX500Name"}],
-  "queriedMethods":[{"name":"<init>","parameterTypes":["sun.security.x509.X500Name"] }]
-},
-{
-  "name":"net.i2p.crypto.eddsa.EdDSAKey"
-},
-{
-  "name":"net.i2p.crypto.eddsa.EdDSASecurityProvider",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"net.i2p.crypto.eddsa.KeyFactory",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.sshd.common.SshConstants",
-  "allPublicFields":true
-},
-{
-  "name":"org.apache.sshd.common.io.nio2.Nio2ServiceFactoryFactory",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.sshd.common.session.SessionListener",
-  "methods":[
-    {"name":"sessionClosed","parameterTypes":["org.apache.sshd.common.session.Session"] }, 
-    {"name":"sessionCreated","parameterTypes":["org.apache.sshd.common.session.Session"] }, 
-    {"name":"sessionEstablished","parameterTypes":["org.apache.sshd.common.session.Session"] }, 
-    {"name":"sessionEvent","parameterTypes":["org.apache.sshd.common.session.Session","org.apache.sshd.common.session.SessionListener$Event"] }, 
-    {"name":"sessionNegotiationEnd","parameterTypes":["org.apache.sshd.common.session.Session","java.util.Map","java.util.Map","java.util.Map","java.lang.Throwable"] }, 
-    {"name":"sessionNegotiationOptionsCreated","parameterTypes":["org.apache.sshd.common.session.Session","java.util.Map"] }, 
-    {"name":"sessionNegotiationStart","parameterTypes":["org.apache.sshd.common.session.Session","java.util.Map","java.util.Map"] }, 
-    {"name":"sessionPeerIdentificationLine","parameterTypes":["org.apache.sshd.common.session.Session","java.lang.String","java.util.List"] }, 
-    {"name":"sessionPeerIdentificationReceived","parameterTypes":["org.apache.sshd.common.session.Session","java.lang.String","java.util.List"] }, 
-    {"name":"sessionPeerIdentificationSend","parameterTypes":["org.apache.sshd.common.session.Session","java.lang.String","java.util.List"] }
-  ]
-},
-{
-  "name":"org.apache.sshd.common.util.security.bouncycastle.BouncyCastleSecurityProviderRegistrar",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.sshd.common.util.security.eddsa.EdDSASecurityProviderRegistrar",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.xerces.impl.dv.dtd.XML11DTDDVFactoryImpl",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.xerces.impl.dv.xs.ExtendedSchemaDVFactoryImpl",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.xerces.impl.xs.XSMessageFormatter",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.xerces.parsers.XIncludeAwareParserConfiguration",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.argeo.cms.auth.DataAdminLoginModule",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.argeo.cms.auth.SingleUserLoginModule",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.LMS$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings",
-  "allPublicMethods":true,
-  "allPublicConstructors":true,
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.SPHINCSPlus$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.dh.KeyPairGeneratorSpi",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi$EC",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.KeyPairGeneratorSpi$EC",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA256",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.ec.SignatureSpi$ecDSA512",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X25519",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyAgreementSpi$X448",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$X25519",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyFactorySpi$X448",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$X25519",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.edec.KeyPairGeneratorSpi$X448",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA512",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.asymmetric.rsa.KeyFactorySpi",
-  "allPublicMethods":true,
-  "allPublicConstructors":true
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.Blake3$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.Haraka$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.MD2$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.MD4$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.MD5$Digest",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.MD5$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Digest",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Digest",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Digest",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Digest",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Digest",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.SM3$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.Skein$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.Tiger$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.keystore.BC$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$ECB",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.DES$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.bouncycastle.jce.provider.BouncyCastleProvider",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.eclipse.swt.widgets.Display"
-},
-{
-  "name":"sun.security.provider.ConfigFile$Spi",
-  "methods":[{"name":"<init>","parameterTypes":["javax.security.auth.login.Configuration$Parameters"] }]
-},
-{
-  "name":"sun.security.provider.DRBG",
-  "methods":[{"name":"<init>","parameterTypes":["java.security.SecureRandomParameters"] }]
-},
-{
-  "name":"sun.security.provider.NativePRNG",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"sun.security.provider.SHA",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"sun.security.provider.SHA2$SHA256",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"sun.security.provider.SHA5$SHA512",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"sun.security.provider.X509Factory",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"sun.security.rsa.RSAKeyFactory$Legacy",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"sun.security.util.ObjectIdentifier"
-},
-{
-  "name":"sun.security.x509.CertificateExtensions"
-}
-]
diff --git a/suite/org.argeo.slc.tool/META-INF/native-image/resource-config.json b/suite/org.argeo.slc.tool/META-INF/native-image/resource-config.json
deleted file mode 100644 (file)
index 9b885b7..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-{
-  "resources":{
-  "includes":[
-    {
-      "pattern":"\\QMETA-INF/services/java.lang.System$LoggerFinder\\E"
-    }, 
-    {
-      "pattern":"\\QMETA-INF/services/javax.xml.validation.SchemaFactory\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/apache/sshd/sshd-version.properties\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/DSMLv2.xsd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/SVG.xsd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/XForms-11-Schema.xsd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/XMLSchema.dtd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/XMLSchema.xsd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/cr.xsd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/datatypes.dtd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/docbook.xsd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/schema-for-xslt20.xsd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/xlink.xsd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/xml-events-attribs-1.xsd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/xml.xsd\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/internal/runtime/dc=example,dc=com.ldif\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/internal/runtime/jaas.cfg\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/internal/runtime/ou=roles,ou=node.ldif\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/cms/internal/runtime/ou=tokens,ou=node.ldif\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/minidesktop/cheatsheet_obj@2x.png\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/minidesktop/console_view@2x.png\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/minidesktop/delete@2x.png\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/minidesktop/external_browser@2x.png\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/minidesktop/file_obj@2x.png\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/minidesktop/fldr_obj@2x.png\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/minidesktop/nav_home@2x.png\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/argeo/osgi/useradmin/jaas-os.cfg\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/eclipse/swt/internal/gtk/swt_functional_gtk_3_20.css\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/eclipse/swt/internal/gtk/swt_theming_fixes_gtk_3_20.css\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/eclipse/swt/internal/gtk/swt_theming_fixes_gtk_3_24_5.css\\E"
-    }, 
-    {
-      "pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"
-    }
-  ]},
-  "bundles":[
-    {
-      "name":"org.apache.xerces.impl.msg.XMLSchemaMessages",
-      "locales":[
-        "en", 
-        "und"
-      ]
-    }, 
-    {
-      "name":"org.apache.xerces.impl.xpath.regex.message",
-      "locales":[
-        "", 
-        "en", 
-        "und"
-      ]
-    }, 
-    {
-      "name":"org.eclipse.swt.internal.SWTMessages",
-      "locales":["und"]
-    }, 
-    {
-      "name":"sun.security.util.Resources",
-      "classNames":["sun.security.util.Resources"]
-    }
-  ]
-}
diff --git a/suite/org.argeo.slc.tool/META-INF/native-image/serialization-config.json b/suite/org.argeo.slc.tool/META-INF/native-image/serialization-config.json
deleted file mode 100644 (file)
index bf554e0..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "types":[
-  ],
-  "lambdaCapturingTypes":[
-  ]
-}
diff --git a/suite/org.argeo.slc.tool/bnd.bnd b/suite/org.argeo.slc.tool/bnd.bnd
deleted file mode 100644 (file)
index cd7978b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Main-Class: org.argeo.slc.tool.Main
-
-Import-Package: \
-org.apache.sshd.client.session,\
-*
\ No newline at end of file
diff --git a/suite/org.argeo.slc.tool/build.properties b/suite/org.argeo.slc.tool/build.properties
deleted file mode 100644 (file)
index 5b9b216..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
-additional.bundles = org.slf4j.api,\
-                     org.argeo.ext.slf4j,\
-                     org.apache.tomcat.jni
-               
\ No newline at end of file
diff --git a/suite/org.argeo.slc.tool/src/org/argeo/slc/tool/Main.java b/suite/org.argeo.slc.tool/src/org/argeo/slc/tool/Main.java
deleted file mode 100644 (file)
index 22e345f..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.argeo.slc.tool;
-
-import java.security.Security;
-
-import org.apache.commons.cli.Option;
-import org.argeo.api.cli.CommandsCli;
-import org.argeo.cms.ssh.cli.SshCli;
-import org.argeo.cms.swt.rcp.cli.CmsCli;
-import org.argeo.slc.cli.posix.PosixCommands;
-import org.argeo.slc.tool.swt.MiniDesktopCli;
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-
-/** Argeo command line tools. */
-public class Main extends CommandsCli {
-       static {
-               Security.addProvider(new BouncyCastleProvider());
-       }
-
-       public Main(String commandName) {
-               super(commandName);
-               // Common options
-               options.addOption(Option.builder("v").hasArg().argName("verbose").desc("verbosity").build());
-               options.addOption(
-                               Option.builder("D").hasArgs().argName("property=value").desc("use value for given property").build());
-
-               addCommandsCli(new PosixCommands("posix"));
-               addCommandsCli(new CmsCli("cms"));
-               addCommandsCli(new MiniDesktopCli("minidesktop"));
-               addCommandsCli(new SshCli("ssh"));
-//             addCommandsCli(new FsCommands("fs"));
-//             addCommandsCli(new JcrCommands("jcr"));
-       }
-
-       @Override
-       public String getDescription() {
-               return "Argeo command line utilities";
-       }
-
-       public static void main(String[] args) {
-               mainImpl(new Main("argeo"), args);
-       }
-
-}
diff --git a/suite/org.argeo.slc.tool/src/org/argeo/slc/tool/graalvm/BouncyCastleFeature.java b/suite/org.argeo.slc.tool/src/org/argeo/slc/tool/graalvm/BouncyCastleFeature.java
deleted file mode 100644 (file)
index 75c42fe..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.argeo.slc.tool.graalvm;
-
-import java.security.Security;
-
-import org.bouncycastle.jce.provider.BouncyCastleProvider;
-import org.graalvm.nativeimage.ImageSingletons;
-import org.graalvm.nativeimage.hosted.Feature;
-import org.graalvm.nativeimage.hosted.RuntimeClassInitialization;
-import org.graalvm.nativeimage.impl.RuntimeClassInitializationSupport;
-
-import com.oracle.svm.core.annotate.AutomaticFeature;
-
-import net.i2p.crypto.eddsa.EdDSASecurityProvider;
-
-/**
- * BounvyCastle JCE provider needs to be registered at build time.
- * 
- * @see https://github.com/oracle/graal/issues/2800#issuecomment-702480444
- * @see https://github.com/micronaut-projects/micronaut-oracle-cloud/pull/17/files#r498585779
- */
-@AutomaticFeature
-public class BouncyCastleFeature implements Feature {
-
-       @Override
-       public void afterRegistration(AfterRegistrationAccess access) {
-               RuntimeClassInitialization.initializeAtBuildTime("org.bouncycastle");
-               Security.addProvider(new BouncyCastleProvider());
-               
-               RuntimeClassInitialization.initializeAtBuildTime("net.i2p.crypto.eddsa");
-               Security.addProvider(new EdDSASecurityProvider());
-
-               // required for Tomcat JNI DLL to load properly
-               RuntimeClassInitialization.initializeAtBuildTime("org.apache.tomcat.jni");
-
-               RuntimeClassInitializationSupport rci = ImageSingletons.lookup(RuntimeClassInitializationSupport.class);
-               rci.rerunInitialization("org.bouncycastle.jcajce.provider.drbg.DRBG$Default", "dependency with native random");
-               rci.rerunInitialization("org.bouncycastle.jcajce.provider.drbg.DRBG$NonceAndIV",
-                               "dependency with native random");
-       }
-
-}
diff --git a/suite/org.argeo.slc.tool/src/org/argeo/slc/tool/swt/MiniDesktopCli.java b/suite/org.argeo.slc.tool/src/org/argeo/slc/tool/swt/MiniDesktopCli.java
deleted file mode 100644 (file)
index ed52674..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-package org.argeo.slc.tool.swt;
-
-import java.util.List;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.Options;
-import org.argeo.api.cli.CommandsCli;
-import org.argeo.api.cli.DescribedCommand;
-import org.argeo.minidesktop.MiniDesktopManager;
-
-public class MiniDesktopCli extends CommandsCli {
-
-       public MiniDesktopCli(String commandName) {
-               super(commandName);
-               addCommand("launch", new Launch());
-       }
-
-       @Override
-       public String getDescription() {
-               return "A minimalistic desktop manager based on Java and Eclipse SWT.";
-       }
-
-       public static void main(String[] args) {
-               mainImpl(new MiniDesktopCli("minidesktop"), args);
-       }
-
-       static class Launch implements DescribedCommand<String> {
-               @Override
-               public Options getOptions() {
-                       Options options = new Options();
-                       options.addOption(Option.builder().longOpt("fullscreen")
-                                       .desc("take control of the whole screen (default is to run in a window)").build());
-                       options.addOption(Option.builder().longOpt("stacking")
-                                       .desc("open apps as tabs (default is to create new windows)").build());
-                       return options;
-               }
-
-               @Override
-               public String apply(List<String> args) {
-                       CommandLine cl = toCommandLine(args);
-                       boolean fullscreen = cl.hasOption("fullscreen");
-                       boolean stacking = cl.hasOption("stacking");
-
-                       MiniDesktopManager desktopManager = new MiniDesktopManager(fullscreen, stacking);
-                       desktopManager.init();
-                       desktopManager.run();
-                       desktopManager.dispose();
-                       return null;
-               }
-
-               @Override
-               public String getDescription() {
-                       return "Launch a minidesktop manager.";
-               }
-
-       }
-}
diff --git a/swt/rap/org.argeo.tool.server/.classpath b/swt/rap/org.argeo.tool.server/.classpath
new file mode 100644 (file)
index 0000000..81fe078
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="src" path="src"/>
+       <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/swt/rap/org.argeo.tool.server/.project b/swt/rap/org.argeo.tool.server/.project
new file mode 100644 (file)
index 0000000..efdc151
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.argeo.tool.server</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
diff --git a/swt/rap/org.argeo.tool.server/bnd.bnd b/swt/rap/org.argeo.tool.server/bnd.bnd
new file mode 100644 (file)
index 0000000..091bd95
--- /dev/null
@@ -0,0 +1,3 @@
+Import-Package: \
+org.apache.commons.cli, \
+*
\ No newline at end of file
diff --git a/swt/rap/org.argeo.tool.server/build.properties b/swt/rap/org.argeo.tool.server/build.properties
new file mode 100644 (file)
index 0000000..34d2e4d
--- /dev/null
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/swt/rap/org.argeo.tool.server/src/org/argeo/tool/server/ArgeoServer.java b/swt/rap/org.argeo.tool.server/src/org/argeo/tool/server/ArgeoServer.java
new file mode 100644 (file)
index 0000000..53df03a
--- /dev/null
@@ -0,0 +1,22 @@
+package org.argeo.tool.server;
+
+import org.argeo.cms.cli.ArgeoCli;
+import org.argeo.cms.swt.rap.cli.CmsRapCli;
+
+/** Argeo command line tools. */
+public class ArgeoServer extends ArgeoCli {
+       public ArgeoServer(String commandName) {
+               super(commandName);
+               addCommandsCli(new CmsRapCli("cms"));
+       }
+
+       @Override
+       public String getDescription() {
+               return "Argeo server utilities";
+       }
+
+       public static void main(String[] args) {
+               mainImpl(new ArgeoServer("argeo"), args);
+       }
+
+}
diff --git a/swt/rcp/org.argeo.tool.desktop/.classpath b/swt/rcp/org.argeo.tool.desktop/.classpath
new file mode 100644 (file)
index 0000000..81fe078
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+       <classpathentry kind="src" path="src"/>
+       <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/swt/rcp/org.argeo.tool.desktop/.project b/swt/rcp/org.argeo.tool.desktop/.project
new file mode 100644 (file)
index 0000000..30608d3
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.argeo.tool.desktop</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
diff --git a/swt/rcp/org.argeo.tool.desktop/bnd.bnd b/swt/rcp/org.argeo.tool.desktop/bnd.bnd
new file mode 100644 (file)
index 0000000..cd7978b
--- /dev/null
@@ -0,0 +1,5 @@
+Main-Class: org.argeo.slc.tool.Main
+
+Import-Package: \
+org.apache.sshd.client.session,\
+*
\ No newline at end of file
diff --git a/swt/rcp/org.argeo.tool.desktop/build.properties b/swt/rcp/org.argeo.tool.desktop/build.properties
new file mode 100644 (file)
index 0000000..5b9b216
--- /dev/null
@@ -0,0 +1,8 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
+additional.bundles = org.slf4j.api,\
+                     org.argeo.ext.slf4j,\
+                     org.apache.tomcat.jni
+               
\ No newline at end of file
diff --git a/swt/rcp/org.argeo.tool.desktop/src/org/argeo/tool/desktop/ArgeoDesktop.java b/swt/rcp/org.argeo.tool.desktop/src/org/argeo/tool/desktop/ArgeoDesktop.java
new file mode 100644 (file)
index 0000000..99f94f7
--- /dev/null
@@ -0,0 +1,23 @@
+package org.argeo.tool.desktop;
+
+import org.argeo.cms.cli.ArgeoCli;
+import org.argeo.cms.swt.rcp.cli.CmsCli;
+
+/** Argeo command line tools. */
+public class ArgeoDesktop extends ArgeoCli {
+       public ArgeoDesktop(String commandName) {
+               super(commandName);
+               addCommandsCli(new CmsCli("cms"));
+               addCommandsCli(new MiniDesktopCli("minidesktop"));
+       }
+
+       @Override
+       public String getDescription() {
+               return "Argeo desktop utilities";
+       }
+
+       public static void main(String[] args) {
+               mainImpl(new ArgeoDesktop("argeo-desktop"), args);
+       }
+
+}
diff --git a/swt/rcp/org.argeo.tool.desktop/src/org/argeo/tool/desktop/MiniDesktopCli.java b/swt/rcp/org.argeo.tool.desktop/src/org/argeo/tool/desktop/MiniDesktopCli.java
new file mode 100644 (file)
index 0000000..071bc79
--- /dev/null
@@ -0,0 +1,76 @@
+package org.argeo.tool.desktop;
+
+import java.util.List;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.Options;
+import org.argeo.api.cli.CommandsCli;
+import org.argeo.api.cli.DescribedCommand;
+import org.argeo.minidesktop.MiniBrowser;
+import org.argeo.minidesktop.MiniDesktopManager;
+import org.argeo.minidesktop.MiniDesktopSpecific;
+import org.eclipse.swt.browser.Browser;
+
+public class MiniDesktopCli extends CommandsCli {
+
+       public MiniDesktopCli(String commandName) {
+               super(commandName);
+               addCommand("launch", new Launch());
+       }
+
+       @Override
+       public String getDescription() {
+               return "A minimalistic desktop manager based on Java and Eclipse SWT.";
+       }
+
+       public static void main(String[] args) {
+               mainImpl(new MiniDesktopCli("minidesktop"), args);
+       }
+
+       static class Launch implements DescribedCommand<String> {
+               @Override
+               public Options getOptions() {
+                       Options options = new Options();
+                       options.addOption(Option.builder().longOpt("fullscreen")
+                                       .desc("take control of the whole screen (default is to run in a window)").build());
+                       options.addOption(Option.builder().longOpt("stacking")
+                                       .desc("open apps as tabs (default is to create new windows)").build());
+                       return options;
+               }
+
+               @Override
+               public String apply(List<String> args) {
+                       CommandLine cl = toCommandLine(args);
+                       boolean fullscreen = cl.hasOption("fullscreen");
+                       boolean stacking = cl.hasOption("stacking");
+
+                       MiniDesktopSpecific.setMiniDesktopSpecific(new MiniDesktopSpecific() {
+                               @Override
+                               protected void addBrowserTitleListener(MiniBrowser miniBrowser, Browser browser) {
+                                       browser.addTitleListener(e -> miniBrowser.titleChanged(e.title));
+                               }
+
+                               @Override
+                               protected void addBrowserOpenWindowListener(MiniBrowser miniBrowser, Browser browser) {
+                                       browser.addOpenWindowListener((e) -> {
+                                               e.browser = miniBrowser.openNewBrowserWindow();
+                                       });
+                               }
+
+                       });
+
+                       MiniDesktopManager desktopManager = new MiniDesktopManager(fullscreen, stacking);
+                       desktopManager.init();
+                       desktopManager.run();
+                       desktopManager.dispose();
+                       return null;
+               }
+
+               @Override
+               public String getDescription() {
+                       return "Launch a minidesktop manager.";
+               }
+
+       }
+}
diff --git a/tp/org.argeo.tp.sdk/org.graalvm.nativeimage.svm.bnd b/tp/org.argeo.tp.sdk/org.graalvm.nativeimage.svm.bnd
deleted file mode 100644 (file)
index 9cc855d..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Bundle-License: GPL-2.0-only WITH Classpath-exception-2.0
-SLC-Origin-M2: org.graalvm.nativeimage:svm:22.1.0.1
-# Workaround for errors in Eclipse PDE when using GraalVM as JCM
-Import-Package: *;resolution:="optional"
\ No newline at end of file