From: Mathieu Baudier Date: Wed, 13 Jul 2022 07:12:44 +0000 (+0200) Subject: Improve CLI and GraalVM architecture. X-Git-Tag: v2.3.10~121 X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=78ee4eb06397fd0fd3a8591e69cd7bb04a1e9b98 Improve CLI and GraalVM architecture. --- diff --git a/Makefile b/Makefile index ab2d62548..7129324be 100644 --- a/Makefile +++ b/Makefile @@ -25,6 +25,7 @@ org.argeo.cms.lib.jetty \ org.argeo.cms.lib.equinox \ org.argeo.cms.lib.sshd \ org.argeo.cms.lib.pgsql \ +org.argeo.cms.cli \ swt/org.argeo.swt.minidesktop \ swt/org.argeo.cms.swt \ swt/org.argeo.cms.e4 \ @@ -72,12 +73,16 @@ A2_BUNDLES_CLASSPATH = $(subst $(space),$(pathsep),$(strip $(A2_BUNDLES))) native-image: mkdir -p $(A2_OUTPUT)/libexec/$(A2_CATEGORY) - cd $(A2_OUTPUT)/libexec/$(A2_CATEGORY) && /opt/graalvm-ce/bin/native-image \ +# cd $(A2_OUTPUT)/libexec/$(A2_CATEGORY) && /opt/graalvm-ce/bin/native-image \ -cp $(A2_CLASSPATH):$(A2_BUNDLES_CLASSPATH) org.argeo.eclipse.ui.jetty.CmsRapCli \ --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 + cd $(A2_OUTPUT)/libexec/$(A2_CATEGORY) && /opt/graalvm-ce/bin/native-image \ + -cp $(A2_CLASSPATH):$(A2_BUNDLES_CLASSPATH) org.argeo.cms.ux.cli.FileSync \ + --initialize-at-build-time=org.argeo.init.logging.ThinLogging,org.slf4j.LoggerFactory \ + --no-fallback include $(SDK_SRC_BASE)/sdk/argeo-build/osgi.mk \ No newline at end of file diff --git a/org.argeo.cms.cli/.classpath b/org.argeo.cms.cli/.classpath new file mode 100644 index 000000000..81fe078c2 --- /dev/null +++ b/org.argeo.cms.cli/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/org.argeo.cms.cli/.project b/org.argeo.cms.cli/.project new file mode 100644 index 000000000..1514c530c --- /dev/null +++ b/org.argeo.cms.cli/.project @@ -0,0 +1,28 @@ + + + org.argeo.cms.cli + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/org.argeo.cms.cli/bnd.bnd b/org.argeo.cms.cli/bnd.bnd new file mode 100644 index 000000000..e69de29bb diff --git a/org.argeo.cms.cli/build.properties b/org.argeo.cms.cli/build.properties new file mode 100644 index 000000000..34d2e4d2d --- /dev/null +++ b/org.argeo.cms.cli/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/org.argeo.cms.cli/src/org/argeo/cms/cli/ArgeoCli.java b/org.argeo.cms.cli/src/org/argeo/cms/cli/ArgeoCli.java new file mode 100644 index 000000000..8c7bedda9 --- /dev/null +++ b/org.argeo.cms.cli/src/org/argeo/cms/cli/ArgeoCli.java @@ -0,0 +1,32 @@ +package org.argeo.cms.cli; + +import org.apache.commons.cli.Option; +import org.argeo.api.cli.CommandsCli; +import org.argeo.cms.cli.posix.PosixCommands; +import org.argeo.cms.ssh.cli.SshCli; + +/** Argeo command line tools. */ +public class ArgeoCli extends CommandsCli { + public ArgeoCli(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()); + + // common + addCommandsCli(new SshCli("ssh")); + addCommandsCli(new PosixCommands("posix")); + addCommandsCli(new FsCommands("fs")); + } + + @Override + public String getDescription() { + return "Argeo utilities"; + } + + public static void main(String[] args) { + mainImpl(new ArgeoCli("argeo"), args); + } + +} diff --git a/org.argeo.cms.cli/src/org/argeo/cms/cli/FileSync.java b/org.argeo.cms.cli/src/org/argeo/cms/cli/FileSync.java new file mode 100644 index 000000000..ccd092430 --- /dev/null +++ b/org.argeo.cms.cli/src/org/argeo/cms/cli/FileSync.java @@ -0,0 +1,103 @@ +package org.argeo.cms.cli; + +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.Path; +import java.nio.file.Paths; +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.CommandArgsException; +import org.argeo.api.cli.DescribedCommand; +import org.argeo.cms.acr.fs.PathSync; +import org.argeo.cms.acr.fs.SyncResult; + +public class FileSync implements DescribedCommand> { + final static Option deleteOption = Option.builder().longOpt("delete").desc("delete from target").build(); + final static Option recursiveOption = Option.builder("r").longOpt("recursive").desc("recurse into directories") + .build(); + final static Option progressOption = Option.builder().longOpt("progress").hasArg(false).desc("show progress") + .build(); + + @Override + public SyncResult apply(List t) { + try { + CommandLine line = toCommandLine(t); + List remaining = line.getArgList(); + if (remaining.size() == 0) { + throw new CommandArgsException("There must be at least one argument"); + } + URI sourceUri = new URI(remaining.get(0)); + URI targetUri; + if (remaining.size() == 1) { + targetUri = Paths.get(System.getProperty("user.dir")).toUri(); + } else { + targetUri = new URI(remaining.get(1)); + } + boolean delete = line.hasOption(deleteOption.getLongOpt()); + boolean recursive = line.hasOption(recursiveOption.getLongOpt()); + PathSync pathSync = new PathSync(sourceUri, targetUri, delete, recursive); + return pathSync.call(); + } catch (URISyntaxException e) { + throw new CommandArgsException(e); + } + } + + @Override + public Options getOptions() { + Options options = new Options(); + options.addOption(recursiveOption); + options.addOption(deleteOption); + options.addOption(progressOption); + return options; + } + + @Override + public String getUsage() { + return "[source URI] [target URI]"; + } + + public static void main(String[] args) { + DescribedCommand.mainImpl(new FileSync(), args); +// Options options = new Options(); +// options.addOption("r", "recursive", false, "recurse into directories"); +// options.addOption(Option.builder().longOpt("progress").hasArg(false).desc("show progress").build()); +// +// CommandLineParser parser = new DefaultParser(); +// try { +// CommandLine line = parser.parse(options, args); +// List remaining = line.getArgList(); +// if (remaining.size() == 0) { +// System.err.println("There must be at least one argument"); +// printHelp(options); +// System.exit(1); +// } +// URI sourceUri = new URI(remaining.get(0)); +// URI targetUri; +// if (remaining.size() == 1) { +// targetUri = Paths.get(System.getProperty("user.dir")).toUri(); +// } else { +// targetUri = new URI(remaining.get(1)); +// } +// PathSync pathSync = new PathSync(sourceUri, targetUri); +// pathSync.run(); +// } catch (Exception exp) { +// exp.printStackTrace(); +// printHelp(options); +// System.exit(1); +// } + } + +// public static void printHelp(Options options) { +// HelpFormatter formatter = new HelpFormatter(); +// formatter.printHelp("sync SRC [DEST]", options, true); +// } + + @Override + public String getDescription() { + return "Synchronises files"; + } + +} diff --git a/org.argeo.cms.cli/src/org/argeo/cms/cli/FsCommands.java b/org.argeo.cms.cli/src/org/argeo/cms/cli/FsCommands.java new file mode 100644 index 000000000..46ec142d8 --- /dev/null +++ b/org.argeo.cms.cli/src/org/argeo/cms/cli/FsCommands.java @@ -0,0 +1,18 @@ +package org.argeo.cms.cli; + +import org.argeo.api.cli.CommandsCli; + +/** File utilities. */ +public class FsCommands extends CommandsCli { + + public FsCommands(String commandName) { + super(commandName); + addCommand("sync", new FileSync()); + } + + @Override + public String getDescription() { + return "Utilities around files and file systems"; + } + +} diff --git a/org.argeo.cms.cli/src/org/argeo/cms/cli/posix/Echo.java b/org.argeo.cms.cli/src/org/argeo/cms/cli/posix/Echo.java new file mode 100644 index 000000000..28e64466d --- /dev/null +++ b/org.argeo.cms.cli/src/org/argeo/cms/cli/posix/Echo.java @@ -0,0 +1,46 @@ +package org.argeo.cms.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 { + + @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 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/org.argeo.cms.cli/src/org/argeo/cms/cli/posix/PosixCommands.java b/org.argeo.cms.cli/src/org/argeo/cms/cli/posix/PosixCommands.java new file mode 100644 index 000000000..97824299c --- /dev/null +++ b/org.argeo.cms.cli/src/org/argeo/cms/cli/posix/PosixCommands.java @@ -0,0 +1,21 @@ +package org.argeo.cms.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/org.argeo.cms.cli/src/org/argeo/cms/cli/posix/package-info.java b/org.argeo.cms.cli/src/org/argeo/cms/cli/posix/package-info.java new file mode 100644 index 000000000..8a6785c3f --- /dev/null +++ b/org.argeo.cms.cli/src/org/argeo/cms/cli/posix/package-info.java @@ -0,0 +1,2 @@ +/** Posix CLI commands. */ +package org.argeo.cms.cli.posix; \ No newline at end of file diff --git a/org.argeo.cms.ux/src/org/argeo/cms/ux/cli/FileSync.java b/org.argeo.cms.ux/src/org/argeo/cms/ux/cli/FileSync.java deleted file mode 100644 index 91279c53d..000000000 --- a/org.argeo.cms.ux/src/org/argeo/cms/ux/cli/FileSync.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.argeo.cms.ux.cli; - -import java.net.URI; -import java.net.URISyntaxException; -import java.nio.file.Path; -import java.nio.file.Paths; -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.CommandArgsException; -import org.argeo.api.cli.DescribedCommand; -import org.argeo.cms.acr.fs.PathSync; -import org.argeo.cms.acr.fs.SyncResult; - -public class FileSync implements DescribedCommand> { - final static Option deleteOption = Option.builder().longOpt("delete").desc("delete from target").build(); - final static Option recursiveOption = Option.builder("r").longOpt("recursive").desc("recurse into directories") - .build(); - final static Option progressOption = Option.builder().longOpt("progress").hasArg(false).desc("show progress") - .build(); - - @Override - public SyncResult apply(List t) { - try { - CommandLine line = toCommandLine(t); - List remaining = line.getArgList(); - if (remaining.size() == 0) { - throw new CommandArgsException("There must be at least one argument"); - } - URI sourceUri = new URI(remaining.get(0)); - URI targetUri; - if (remaining.size() == 1) { - targetUri = Paths.get(System.getProperty("user.dir")).toUri(); - } else { - targetUri = new URI(remaining.get(1)); - } - boolean delete = line.hasOption(deleteOption.getLongOpt()); - boolean recursive = line.hasOption(recursiveOption.getLongOpt()); - PathSync pathSync = new PathSync(sourceUri, targetUri, delete, recursive); - return pathSync.call(); - } catch (URISyntaxException e) { - throw new CommandArgsException(e); - } - } - - @Override - public Options getOptions() { - Options options = new Options(); - options.addOption(recursiveOption); - options.addOption(deleteOption); - options.addOption(progressOption); - return options; - } - - @Override - public String getUsage() { - return "[source URI] [target URI]"; - } - - public static void main(String[] args) { - DescribedCommand.mainImpl(new FileSync(), args); -// Options options = new Options(); -// options.addOption("r", "recursive", false, "recurse into directories"); -// options.addOption(Option.builder().longOpt("progress").hasArg(false).desc("show progress").build()); -// -// CommandLineParser parser = new DefaultParser(); -// try { -// CommandLine line = parser.parse(options, args); -// List remaining = line.getArgList(); -// if (remaining.size() == 0) { -// System.err.println("There must be at least one argument"); -// printHelp(options); -// System.exit(1); -// } -// URI sourceUri = new URI(remaining.get(0)); -// URI targetUri; -// if (remaining.size() == 1) { -// targetUri = Paths.get(System.getProperty("user.dir")).toUri(); -// } else { -// targetUri = new URI(remaining.get(1)); -// } -// PathSync pathSync = new PathSync(sourceUri, targetUri); -// pathSync.run(); -// } catch (Exception exp) { -// exp.printStackTrace(); -// printHelp(options); -// System.exit(1); -// } - } - -// public static void printHelp(Options options) { -// HelpFormatter formatter = new HelpFormatter(); -// formatter.printHelp("sync SRC [DEST]", options, true); -// } - - @Override - public String getDescription() { - return "Synchronises files"; - } - -} diff --git a/org.argeo.cms.ux/src/org/argeo/cms/ux/cli/FsCommands.java b/org.argeo.cms.ux/src/org/argeo/cms/ux/cli/FsCommands.java deleted file mode 100644 index 97d8c85f0..000000000 --- a/org.argeo.cms.ux/src/org/argeo/cms/ux/cli/FsCommands.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.argeo.cms.ux.cli; - -import org.argeo.api.cli.CommandsCli; - -/** File utilities. */ -public class FsCommands extends CommandsCli { - - public FsCommands(String commandName) { - super(commandName); - addCommand("sync", new FileSync()); - } - - @Override - public String getDescription() { - return "Utilities around files and file systems"; - } - -} diff --git a/org.argeo.cms/META-INF/native-image/jni-config.json b/org.argeo.cms/META-INF/native-image/jni-config.json new file mode 100644 index 000000000..25530bb80 --- /dev/null +++ b/org.argeo.cms/META-INF/native-image/jni-config.json @@ -0,0 +1,33 @@ +[ +{ + "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":"jdk.internal.loader.ClassLoaders$PlatformClassLoader" +}, +{ + "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/org.argeo.cms/META-INF/native-image/predefined-classes-config.json b/org.argeo.cms/META-INF/native-image/predefined-classes-config.json new file mode 100644 index 000000000..0e79b2c5d --- /dev/null +++ b/org.argeo.cms/META-INF/native-image/predefined-classes-config.json @@ -0,0 +1,8 @@ +[ + { + "type":"agent-extracted", + "classes":[ + ] + } +] + diff --git a/org.argeo.cms/META-INF/native-image/proxy-config.json b/org.argeo.cms/META-INF/native-image/proxy-config.json new file mode 100644 index 000000000..0d4f101c7 --- /dev/null +++ b/org.argeo.cms/META-INF/native-image/proxy-config.json @@ -0,0 +1,2 @@ +[ +] diff --git a/org.argeo.cms/META-INF/native-image/reflect-config.json b/org.argeo.cms/META-INF/native-image/reflect-config.json new file mode 100644 index 000000000..2c9df694a --- /dev/null +++ b/org.argeo.cms/META-INF/native-image/reflect-config.json @@ -0,0 +1,60 @@ +[ +{ + "name":"com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"java.security.SecureRandomParameters" +}, +{ + "name":"javax.security.auth.login.Configuration$Parameters" +}, +{ + "name":"org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.xerces.impl.dv.dtd.XML11DTDDVFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.xerces.impl.dv.xs.ExtendedSchemaDVFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.xerces.impl.xs.XSMessageFormatter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.xerces.parsers.XIncludeAwareParserConfiguration", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.argeo.cms.auth.DataAdminLoginModule", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.ConfigFile$Spi", + "methods":[{"name":"","parameterTypes":["javax.security.auth.login.Configuration$Parameters"] }] +}, +{ + "name":"sun.security.provider.DRBG", + "methods":[{"name":"","parameterTypes":["java.security.SecureRandomParameters"] }] +}, +{ + "name":"sun.security.provider.NativePRNG", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA2$SHA256", + "methods":[{"name":"","parameterTypes":[] }] +} +] diff --git a/org.argeo.cms/META-INF/native-image/resource-config.json b/org.argeo.cms/META-INF/native-image/resource-config.json new file mode 100644 index 000000000..d5f778eb0 --- /dev/null +++ b/org.argeo.cms/META-INF/native-image/resource-config.json @@ -0,0 +1,68 @@ +{ + "resources":{ + "includes":[ + { + "pattern":"\\QMETA-INF/services/javax.xml.validation.SchemaFactory\\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/jaas.cfg\\E" + } + ]}, + "bundles":[ + { + "name":"org.apache.xerces.impl.msg.XMLSchemaMessages", + "locales":[ + "en", + "und" + ] + }, + { + "name":"org.apache.xerces.impl.xpath.regex.message", + "locales":[ + "", + "en", + "und" + ] + }, + { + "name":"sun.security.util.Resources", + "classNames":["sun.security.util.Resources"] + } + ] +} diff --git a/org.argeo.cms/META-INF/native-image/serialization-config.json b/org.argeo.cms/META-INF/native-image/serialization-config.json new file mode 100644 index 000000000..bf554e062 --- /dev/null +++ b/org.argeo.cms/META-INF/native-image/serialization-config.json @@ -0,0 +1,6 @@ +{ + "types":[ + ], + "lambdaCapturingTypes":[ + ] +} diff --git a/org.argeo.cms/src/org/argeo/cms/runtime/CmsCli.java b/org.argeo.cms/src/org/argeo/cms/runtime/CmsCli.java new file mode 100644 index 000000000..425bc30f9 --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/runtime/CmsCli.java @@ -0,0 +1,21 @@ +package org.argeo.cms.runtime; + +import org.argeo.api.cli.CommandsCli; + +public class CmsCli extends CommandsCli { + + public CmsCli(String commandName) { + super(commandName); + addCommand("launch", new StaticCmsLaunch()); + } + + @Override + public String getDescription() { + return "Static CMS utilities."; + } + + public static void main(String[] args) { + mainImpl(new CmsCli("cms"), args); + } + +} diff --git a/org.argeo.cms/src/org/argeo/cms/runtime/StaticCmsLaunch.java b/org.argeo.cms/src/org/argeo/cms/runtime/StaticCmsLaunch.java new file mode 100644 index 000000000..b4cfb906a --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/runtime/StaticCmsLaunch.java @@ -0,0 +1,51 @@ +package org.argeo.cms.runtime; + +import java.lang.management.ManagementFactory; +import java.nio.file.Path; +import java.nio.file.Paths; +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 StaticCmsLaunch implements DescribedCommand { + private Option dataOption; + + @Override + public Options getOptions() { + Options options = new Options(); + dataOption = Option.builder().longOpt("data").hasArg().required() + .desc("path to the writable data area (mandatory)").build(); + options.addOption(dataOption); + return options; + } + + @Override + public String apply(List args) { + CommandLine cl = toCommandLine(args); + String dataPath = cl.getOptionValue(dataOption); + + Path instancePath = Paths.get(dataPath); + System.setProperty("osgi.instance.area", instancePath.toUri().toString()); + System.setProperty("argeo.http.port", "0"); + + StaticCms staticCms = new StaticCms(); + Runtime.getRuntime().addShutdownHook(new Thread(() -> staticCms.stop(), "Static CMS Shutdown")); + staticCms.start(); + + long jvmUptime = ManagementFactory.getRuntimeMXBean().getUptime(); + System.out.println("Static CMS available in " + jvmUptime + " ms."); + + staticCms.waitForStop(); + + return null; + } + + @Override + public String getDescription() { + return "Launch a static CMS"; + } + +} diff --git a/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java index d4da349ce..e7bb9e856 100644 --- a/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java +++ b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniBrowser.java @@ -84,16 +84,13 @@ public class MiniBrowser { } }); - - // FIXME make it portable -// browser.addTitleListener(e -> titleChanged(e.title)); -// browser.addOpenWindowListener((e) -> { -// e.browser = openNewBrowserWindow(); -// }); + + MiniDesktopSpecific.getMiniDesktopSpecific().addBrowserTitleListener(this, browser); + MiniDesktopSpecific.getMiniDesktopSpecific().addBrowserOpenWindowListener(this, browser); return browser; } - protected Browser openNewBrowserWindow() { + public Browser openNewBrowserWindow() { if (isFullScreen()) { // TODO manage multiple tabs? @@ -121,7 +118,7 @@ public class MiniBrowser { } /** Called when title changed; to be overridden, does nothing by default. */ - protected void titleChanged(String title) { + public void titleChanged(String title) { } protected Browser getBrowser() { @@ -174,7 +171,7 @@ public class MiniBrowser { new MiniBrowser(shell, url, fullscreen, appMode) { @Override - protected void titleChanged(String title) { + public void titleChanged(String title) { shell.setText(title); } }; diff --git a/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java index 6af59d9d6..adb2a55ba 100644 --- a/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java +++ b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopManager.java @@ -158,7 +158,7 @@ public class MiniDesktopManager { AppContext appContext = createAppParent(images.browserIcon); new MiniBrowser(appContext.getAppParent(), url, false, false) { @Override - protected void titleChanged(String title) { + public void titleChanged(String title) { if (appContext.shell != null) appContext.shell.setText(title); if (appContext.tabItem != null) { @@ -285,7 +285,7 @@ public class MiniDesktopManager { protected Image getIconForExt(String ext) { // Program program = Program.findProgram(ext); // if (program == null) - return display.getSystemImage(SWT.ICON_INFORMATION); + return display.getSystemImage(SWT.ICON_INFORMATION); // ImageData iconData = program.getImageData(); // if (iconData == null) { diff --git a/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopSpecific.java b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopSpecific.java new file mode 100644 index 000000000..c7488226f --- /dev/null +++ b/swt/org.argeo.swt.minidesktop/src/org/argeo/minidesktop/MiniDesktopSpecific.java @@ -0,0 +1,29 @@ +package org.argeo.minidesktop; + +import java.util.Objects; + +import org.eclipse.swt.browser.Browser; + +/** + * This customiser is available to all components, in order to be extended with + * low-level specific capabilities, which depend on the context (typically + * differences between RAP and RCP). It does nothing by default. + */ +public class MiniDesktopSpecific { + protected void addBrowserTitleListener(MiniBrowser miniBrowser, Browser browser) { + } + + protected void addBrowserOpenWindowListener(MiniBrowser miniBrowser, Browser browser) { + } + + private static MiniDesktopSpecific SINGLETON = new MiniDesktopSpecific(); + + public static void setMiniDesktopSpecific(MiniDesktopSpecific miniDesktopSpecific) { + Objects.requireNonNull(miniDesktopSpecific); + SINGLETON = miniDesktopSpecific; + } + + static MiniDesktopSpecific getMiniDesktopSpecific() { + return SINGLETON; + } +} diff --git a/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/jni-config.json b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/jni-config.json new file mode 100644 index 000000000..25530bb80 --- /dev/null +++ b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/jni-config.json @@ -0,0 +1,33 @@ +[ +{ + "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":"jdk.internal.loader.ClassLoaders$PlatformClassLoader" +}, +{ + "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/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/predefined-classes-config.json b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/predefined-classes-config.json new file mode 100644 index 000000000..0e79b2c5d --- /dev/null +++ b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/predefined-classes-config.json @@ -0,0 +1,8 @@ +[ + { + "type":"agent-extracted", + "classes":[ + ] + } +] + diff --git a/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/proxy-config.json b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/proxy-config.json new file mode 100644 index 000000000..5d1d13de3 --- /dev/null +++ b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/proxy-config.json @@ -0,0 +1,8 @@ +[ + { + "interfaces":["javax.servlet.http.HttpServletRequest"]} + , + { + "interfaces":["javax.servlet.http.HttpServletResponse"]} + +] diff --git a/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/reflect-config.json b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/reflect-config.json new file mode 100644 index 000000000..e9910e1c2 --- /dev/null +++ b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/reflect-config.json @@ -0,0 +1,393 @@ +[ +{ + "name":"[B" +}, +{ + "name":"[Ljava.lang.String;" +}, +{ + "name":"[Lorg.eclipse.swt.widgets.TableColumn;" +}, +{ + "name":"[Lorg.eclipse.swt.widgets.TreeColumn;" +}, +{ + "name":"[Lsun.security.pkcs.SignerInfo;" +}, +{ + "name":"com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"java.lang.Boolean", + "queriedMethods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.Byte", + "queriedMethods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.Class" +}, +{ + "name":"java.lang.Double", + "queriedMethods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.Float", + "queriedMethods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.Integer", + "queriedMethods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.Long", + "queriedMethods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.Object", + "queriedMethods":[ + {"name":"equals","parameterTypes":["java.lang.Object"] }, + {"name":"hashCode","parameterTypes":[] }, + {"name":"toString","parameterTypes":[] } + ] +}, +{ + "name":"java.lang.Short", + "queriedMethods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.String" +}, +{ + "name":"java.lang.management.ManagementFactory", + "methods":[{"name":"getRuntimeMXBean","parameterTypes":[] }] +}, +{ + "name":"java.lang.management.RuntimeMXBean", + "methods":[{"name":"getUptime","parameterTypes":[] }] +}, +{ + "name":"java.security.AlgorithmParametersSpi" +}, +{ + "name":"java.security.SecureRandomParameters" +}, +{ + "name":"java.util.Date" +}, +{ + "name":"javax.security.auth.login.Configuration$Parameters" +}, +{ + "name":"javax.security.auth.x500.X500Principal", + "fields":[{"name":"thisX500Name"}], + "queriedMethods":[{"name":"","parameterTypes":["sun.security.x509.X500Name"] }] +}, +{ + "name":"javax.servlet.ServletRequest", + "queriedMethods":[ + {"name":"getAsyncContext","parameterTypes":[] }, + {"name":"getAttribute","parameterTypes":["java.lang.String"] }, + {"name":"getAttributeNames","parameterTypes":[] }, + {"name":"getCharacterEncoding","parameterTypes":[] }, + {"name":"getContentLength","parameterTypes":[] }, + {"name":"getContentLengthLong","parameterTypes":[] }, + {"name":"getContentType","parameterTypes":[] }, + {"name":"getDispatcherType","parameterTypes":[] }, + {"name":"getInputStream","parameterTypes":[] }, + {"name":"getLocalAddr","parameterTypes":[] }, + {"name":"getLocalName","parameterTypes":[] }, + {"name":"getLocalPort","parameterTypes":[] }, + {"name":"getLocale","parameterTypes":[] }, + {"name":"getLocales","parameterTypes":[] }, + {"name":"getParameter","parameterTypes":["java.lang.String"] }, + {"name":"getParameterMap","parameterTypes":[] }, + {"name":"getParameterNames","parameterTypes":[] }, + {"name":"getParameterValues","parameterTypes":["java.lang.String"] }, + {"name":"getProtocol","parameterTypes":[] }, + {"name":"getReader","parameterTypes":[] }, + {"name":"getRealPath","parameterTypes":["java.lang.String"] }, + {"name":"getRemoteAddr","parameterTypes":[] }, + {"name":"getRemoteHost","parameterTypes":[] }, + {"name":"getRemotePort","parameterTypes":[] }, + {"name":"getRequestDispatcher","parameterTypes":["java.lang.String"] }, + {"name":"getScheme","parameterTypes":[] }, + {"name":"getServerName","parameterTypes":[] }, + {"name":"getServerPort","parameterTypes":[] }, + {"name":"getServletContext","parameterTypes":[] }, + {"name":"isAsyncStarted","parameterTypes":[] }, + {"name":"isAsyncSupported","parameterTypes":[] }, + {"name":"isSecure","parameterTypes":[] }, + {"name":"removeAttribute","parameterTypes":["java.lang.String"] }, + {"name":"setAttribute","parameterTypes":["java.lang.String","java.lang.Object"] }, + {"name":"setCharacterEncoding","parameterTypes":["java.lang.String"] }, + {"name":"startAsync","parameterTypes":[] }, + {"name":"startAsync","parameterTypes":["javax.servlet.ServletRequest","javax.servlet.ServletResponse"] } + ] +}, +{ + "name":"javax.servlet.ServletResponse" +}, +{ + "name":"javax.servlet.http.HttpServletRequest", + "methods":[{"name":"","parameterTypes":["java.lang.reflect.InvocationHandler"] }], + "queriedMethods":[ + {"name":"authenticate","parameterTypes":["javax.servlet.http.HttpServletResponse"] }, + {"name":"changeSessionId","parameterTypes":[] }, + {"name":"getAuthType","parameterTypes":[] }, + {"name":"getContextPath","parameterTypes":[] }, + {"name":"getCookies","parameterTypes":[] }, + {"name":"getDateHeader","parameterTypes":["java.lang.String"] }, + {"name":"getHeader","parameterTypes":["java.lang.String"] }, + {"name":"getHeaderNames","parameterTypes":[] }, + {"name":"getHeaders","parameterTypes":["java.lang.String"] }, + {"name":"getHttpServletMapping","parameterTypes":[] }, + {"name":"getIntHeader","parameterTypes":["java.lang.String"] }, + {"name":"getMethod","parameterTypes":[] }, + {"name":"getPart","parameterTypes":["java.lang.String"] }, + {"name":"getParts","parameterTypes":[] }, + {"name":"getPathInfo","parameterTypes":[] }, + {"name":"getPathTranslated","parameterTypes":[] }, + {"name":"getQueryString","parameterTypes":[] }, + {"name":"getRemoteUser","parameterTypes":[] }, + {"name":"getRequestURI","parameterTypes":[] }, + {"name":"getRequestURL","parameterTypes":[] }, + {"name":"getRequestedSessionId","parameterTypes":[] }, + {"name":"getServletPath","parameterTypes":[] }, + {"name":"getSession","parameterTypes":[] }, + {"name":"getSession","parameterTypes":["boolean"] }, + {"name":"getTrailerFields","parameterTypes":[] }, + {"name":"getUserPrincipal","parameterTypes":[] }, + {"name":"isRequestedSessionIdFromCookie","parameterTypes":[] }, + {"name":"isRequestedSessionIdFromURL","parameterTypes":[] }, + {"name":"isRequestedSessionIdFromUrl","parameterTypes":[] }, + {"name":"isRequestedSessionIdValid","parameterTypes":[] }, + {"name":"isTrailerFieldsReady","parameterTypes":[] }, + {"name":"isUserInRole","parameterTypes":["java.lang.String"] }, + {"name":"login","parameterTypes":["java.lang.String","java.lang.String"] }, + {"name":"logout","parameterTypes":[] }, + {"name":"newPushBuilder","parameterTypes":[] }, + {"name":"upgrade","parameterTypes":["java.lang.Class"] } + ] +}, +{ + "name":"javax.servlet.http.HttpServletResponse" +}, +{ + "name":"org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.xerces.impl.dv.dtd.XML11DTDDVFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.xerces.impl.dv.xs.ExtendedSchemaDVFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.xerces.impl.dv.xs.SchemaDVFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.xerces.impl.xs.XSMessageFormatter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.xerces.parsers.XIncludeAwareParserConfiguration", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.argeo.cms.auth.AnonymousLoginModule", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.argeo.cms.auth.DataAdminLoginModule", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.argeo.cms.auth.IdentLoginModule", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.argeo.cms.auth.RemoteSessionLoginModule", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.argeo.cms.auth.UserAdminLoginModule", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.jetty.servlet.DefaultServlet", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.jetty.util.TypeUtil", + "methods":[ + {"name":"getClassLoaderLocation","parameterTypes":["java.lang.Class"] }, + {"name":"getCodeSourceLocation","parameterTypes":["java.lang.Class"] }, + {"name":"getModuleLocation","parameterTypes":["java.lang.Class"] }, + {"name":"getSystemClassLoaderLocation","parameterTypes":["java.lang.Class"] } + ] +}, +{ + "name":"org.eclipse.rap.rwt.internal.client.BrowserNavigationImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.rap.rwt.internal.client.ClientInfoImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.rap.rwt.internal.client.ExitConfirmationImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.rap.rwt.internal.client.StartupParametersImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.rap.rwt.internal.client.WebClientMessages", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle", + "methods":[{"name":"","parameterTypes":["org.eclipse.rap.rwt.internal.application.ApplicationContextImpl"] }] +}, +{ + "name":"org.eclipse.rap.rwt.internal.lifecycle.RequestCounter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.rap.rwt.internal.remote.RemoteObjectRegistry", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.rap.rwt.internal.serverpush.ServerPushManager", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.rap.rwt.internal.textsize.ProbeResultStore", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.SWT", + "allDeclaredFields":true +}, +{ + "name":"org.eclipse.swt.graphics.Color", + "methods":[{"name":"","parameterTypes":["int"] }] +}, +{ + "name":"org.eclipse.swt.graphics.Font", + "methods":[{"name":"","parameterTypes":["org.eclipse.swt.graphics.FontData"] }] +}, +{ + "name":"org.eclipse.swt.internal.image.GIFFileFormat", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.internal.image.JPEGFileFormat", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.internal.image.PNGFileFormat", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.internal.image.WinBMPFileFormat", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.internal.image.WinICOFileFormat", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.internal.widgets.IdGenerator", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.internal.widgets.displaykit.DisplayLCA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.internal.widgets.scrollbarkit.ScrollBarThemeAdapter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.internal.widgets.shellkit.ShellThemeAdapter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.internal.widgets.tablekit.TableThemeAdapter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.eclipse.swt.internal.widgets.treekit.TreeThemeAdapter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.ConfigFile$Spi", + "methods":[{"name":"","parameterTypes":["javax.security.auth.login.Configuration$Parameters"] }] +}, +{ + "name":"sun.security.provider.DRBG", + "methods":[{"name":"","parameterTypes":["java.security.SecureRandomParameters"] }] +}, +{ + "name":"sun.security.provider.DSAKeyFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.DSAParameters", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.NativePRNG", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA2$SHA256", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.X509Factory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSAKeyFactory$Legacy", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.util.ObjectIdentifier" +}, +{ + "name":"sun.security.x509.AuthorityKeyIdentifierExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.BasicConstraintsExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.CertificateExtensions" +}, +{ + "name":"sun.security.x509.ExtendedKeyUsageExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.KeyUsageExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.SubjectKeyIdentifierExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +} +] diff --git a/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/resource-config.json b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/resource-config.json new file mode 100644 index 000000000..0f3300a5a --- /dev/null +++ b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/resource-config.json @@ -0,0 +1,735 @@ +{ + "resources":{ + "includes":[ + { + "pattern":"\\QMETA-INF/MANIFEST.MF\\E" + }, + { + "pattern":"\\QMETA-INF/services/javax.xml.parsers.DocumentBuilderFactory\\E" + }, + { + "pattern":"\\QMETA-INF/services/javax.xml.validation.SchemaFactory\\E" + }, + { + "pattern":"\\QMETA-INF/services/org.eclipse.jetty.http.HttpFieldPreEncoder\\E" + }, + { + "pattern":"\\Qclient.files\\E" + }, + { + "pattern":"\\Qclient.js\\E" + }, + { + "pattern":"\\Qjetty-dir.css\\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.xsd\\E" + }, + { + "pattern":"\\Qorg/argeo/cms/acr/schemas/cr.xsd\\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/jaas.cfg\\E" + }, + { + "pattern":"\\Qorg/eclipse/jetty/http/encoding.properties\\E" + }, + { + "pattern":"\\Qorg/eclipse/jetty/http/mime.properties\\E" + }, + { + "pattern":"\\Qorg/eclipse/jetty/version/build.properties\\E" + }, + { + "pattern":"\\Qorg/eclipse/nebula/widgets/grid/internal/gridkit/Grid.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/nebula/widgets/grid/internal/gridkit/Grid.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/nebula/widgets/grid/internal/gridkit/Grid.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/rap/rwt/internal/service/rwt-index.html\\E" + }, + { + "pattern":"\\Qorg/eclipse/rap/rwt/internal/widgets/dropdownkit/DropDown.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/rap/rwt/internal/widgets/dropdownkit/DropDown.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/rap/rwt/internal/widgets/dropdownkit/DropDown.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/rap/rwt/internal/widgets/fileuploadkit/FileUpload.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/rap/rwt/internal/widgets/fileuploadkit/FileUpload.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/rap/rwt/internal/widgets/fileuploadkit/FileUpload.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/browser/browserkit/Browser.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/browser/browserkit/Browser.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/browser/browserkit/Browser.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/custom/ccombokit/CCombo.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/custom/ccombokit/CCombo.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/custom/ccombokit/CCombo.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/custom/clabelkit/CLabel.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/custom/clabelkit/CLabel.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/custom/clabelkit/CLabel.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/custom/ctabfolderkit/CTabFolder.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/custom/ctabfolderkit/CTabFolder.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/custom/ctabfolderkit/CTabFolder.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/custom/scrolledcompositekit/ScrolledComposite.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/buttonkit/Button.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/buttonkit/Button.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/buttonkit/Button.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/combokit/Combo.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/combokit/Combo.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/combokit/Combo.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/compositekit/Composite.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/compositekit/Composite.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/compositekit/Composite.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/controlkit/Control.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/controlkit/Control.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/coolbarkit/CoolBar.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/coolbarkit/CoolBar.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/coolbarkit/CoolBar.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/datetimekit/DateTime.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/datetimekit/DateTime.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/datetimekit/DateTime.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/expandbarkit/ExpandBar.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/expandbarkit/ExpandBar.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/expandbarkit/ExpandBar.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/groupkit/Group.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/groupkit/Group.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/groupkit/Group.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/labelkit/Label.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/labelkit/Label.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/labelkit/Label.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/linkkit/Link.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/linkkit/Link.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/linkkit/Link.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/listkit/List.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/listkit/List.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/listkit/List.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/menukit/Menu.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/menukit/Menu.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/menukit/Menu.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/progressbarkit/ProgressBar.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/progressbarkit/ProgressBar.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/progressbarkit/ProgressBar.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/sashkit/Sash.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/sashkit/Sash.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/sashkit/Sash.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/scalekit/Scale.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/scalekit/Scale.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/scalekit/Scale.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/scrollbarkit/ScrollBar.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/scrollbarkit/ScrollBar.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/scrollbarkit/ScrollBar.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/shellkit/Shell.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/shellkit/Shell.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/shellkit/Shell.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/sliderkit/Slider.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/sliderkit/Slider.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/sliderkit/Slider.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/spinnerkit/Spinner.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/spinnerkit/Spinner.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/spinnerkit/Spinner.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/tabfolderkit/TabFolder.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/tabfolderkit/TabFolder.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/tabfolderkit/TabFolder.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/tablekit/Table.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/tablekit/Table.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/tablekit/Table.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/textkit/Text.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/textkit/Text.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/textkit/Text.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/toolbarkit/ToolBar.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/toolbarkit/ToolBar.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/toolbarkit/ToolBar.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/tooltipkit/ToolTip.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/tooltipkit/ToolTip.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/tooltipkit/ToolTip.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/treekit/Tree.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/treekit/Tree.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/treekit/Tree.theme.xml\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/widgetkit/Widget.appearances.js\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/widgetkit/Widget.default.css\\E" + }, + { + "pattern":"\\Qorg/eclipse/swt/internal/widgets/widgetkit/Widget.theme.xml\\E" + }, + { + "pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E" + }, + { + "pattern":"\\Qresource/static/html/blank.html\\E" + }, + { + "pattern":"\\Qresource/static/image/blank.gif\\E" + }, + { + "pattern":"\\Qresource/theme/default.css\\E" + }, + { + "pattern":"\\Qresource/widget/rap/arrows/chevron-left-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/arrows/chevron-left.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/arrows/chevron-right-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/arrows/chevron-right.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/arrows/tooltip-down.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/arrows/tooltip-left.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/arrows/tooltip-right.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/arrows/tooltip-up.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/arrow-down.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/arrow-left.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/arrow-right.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/arrow-up.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/check-grayed-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/check-grayed.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/check-selected-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/check-selected.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/check-unselected-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/check-unselected.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/radio-selected-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/radio-selected.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/radio-unselected-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/button/radio-unselected.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/calendar/lastMonth-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/calendar/lastMonth.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/calendar/lastYear-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/calendar/lastYear.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/calendar/nextMonth-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/calendar/nextMonth.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/calendar/nextYear-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/calendar/nextYear.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ccombo/down-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ccombo/down.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/column/sort-indicator-down.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/column/sort-indicator-up.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/combo/down-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/combo/down.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ctabfolder/close.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ctabfolder/close_hover.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ctabfolder/ctabfolder-dropdown-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ctabfolder/ctabfolder-dropdown-left-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ctabfolder/ctabfolder-dropdown-left.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ctabfolder/ctabfolder-dropdown.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ctabfolder/maximize.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ctabfolder/minimize.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/ctabfolder/restore.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/cursors/alias.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/cursors/copy.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/cursors/move.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/cursors/nodrop.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/cursors/up_arrow.cur\\E" + }, + { + "pattern":"\\Qresource/widget/rap/datetime/down-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/datetime/down.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/datetime/up-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/datetime/up.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/dialog/error.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/dialog/information.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/dialog/question.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/dialog/warning.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/display/browser_bg.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/display/loading.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/expanditem/expanditem-collapse-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/expanditem/expanditem-collapse.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/expanditem/expanditem-expand-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/expanditem/expanditem-expand.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/menu/arrow-left.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/menu/arrow-right.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/menu/checkbox.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/menu/radiobutton.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/progressbar/progressbar-background.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/sash/sash-handle-horizontal.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/sash/sash-handle-vertical.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/scale/h_line.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/scale/v_line.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/scrollbar/down.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/scrollbar/left.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/scrollbar/right.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/scrollbar/scrollbar-background.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/scrollbar/up.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/slider/down.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/slider/left.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/slider/right.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/slider/slider-background.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/slider/up.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/spinner/down-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/spinner/down.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/spinner/up-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/spinner/up.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/text/clear.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/text/find.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/toolbar/down.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tooltip/error.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tooltip/information.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tooltip/warning.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tree/loading.gif\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tree/tree-collapsed-hover-left.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tree/tree-collapsed-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tree/tree-collapsed-left.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tree/tree-collapsed.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tree/tree-expanded-hover-left.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tree/tree-expanded-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tree/tree-expanded-left.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/tree/tree-expanded.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/window/shell-close-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/window/shell-close.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/window/shell-max-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/window/shell-max.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/window/shell-min-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/window/shell-min.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/window/shell-restore-hover.png\\E" + }, + { + "pattern":"\\Qresource/widget/rap/window/shell-restore.png\\E" + } + ]}, + "bundles":[ + { + "name":"javax.servlet.LocalStrings", + "locales":[""] + }, + { + "name":"javax.servlet.http.LocalStrings", + "locales":[""] + }, + { + "name":"org.apache.xerces.impl.xpath.regex.message", + "locales":[ + "", + "en" + ] + }, + { + "name":"org.eclipse.rap.rwt.internal.RWTMessages", + "locales":[""] + }, + { + "name":"sun.security.util.Resources", + "classNames":["sun.security.util.Resources"] + } + ] +} diff --git a/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/serialization-config.json b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/serialization-config.json new file mode 100644 index 000000000..bf554e062 --- /dev/null +++ b/swt/rap/org.argeo.cms.swt.rap.cli/META-INF/native-image/serialization-config.json @@ -0,0 +1,6 @@ +{ + "types":[ + ], + "lambdaCapturingTypes":[ + ] +}