Static CMS working as native image.
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 8 Jun 2022 10:44:12 +0000 (12:44 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 8 Jun 2022 10:44:12 +0000 (12:44 +0200)
org.argeo.cms/META-INF/native-image/jni-config.json
org.argeo.cms/META-INF/native-image/reflect-config.json
org.argeo.cms/META-INF/native-image/resource-config.json
org.argeo.cms/src/org/argeo/cms/runtime/StaticCms.java

index 0d4f101c7a37a4c875e6999bee1a287fdb733380..25530bb80b6ce54d3acaab7646d5e1dc82dfaa14 100644 (file)
@@ -1,2 +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"}
+  ]
+}
 ]
index d40fca86564821db468985ea6ed9fc902b53324a..681b87327673aa1c99bffac40b19313d05fb021e 100644 (file)
@@ -1,56 +1,13 @@
 [
 {
-  "name":"[B"
+  "name":"javax.security.auth.login.Configuration$Parameters"
 },
 {
-  "name":"[Ljava.lang.String;"
+  "name":"sun.security.provider.ConfigFile$Spi",
+  "methods":[{"name":"<init>","parameterTypes":["javax.security.auth.login.Configuration$Parameters"] }]
 },
 {
-  "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.util.Date"
-},
-{
-  "name":"javax.security.auth.x500.X500Principal",
-  "fields":[{"name":"thisX500Name"}],
-  "queriedMethods":[{"name":"<init>","parameterTypes":["sun.security.x509.X500Name"] }]
-},
-{
-  "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",
+  "name":"sun.security.provider.SHA",
   "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"org.apache.xerces.parsers.XIncludeAwareParserConfiguration",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "name":"sun.security.util.ObjectIdentifier"
-},
-{
-  "name":"sun.security.x509.CertificateExtensions"
 }
 ]
index 67d6d894c6a2e6362ef74b8691ef927e39644d48..b28e758e1f94f979bf2d19eb845ba0cc30f8bd86 100644 (file)
@@ -2,63 +2,17 @@
   "resources":{
   "includes":[
     {
-      "pattern":"\\QMETA-INF/services/javax.xml.validation.SchemaFactory\\E"
+      "pattern":"\\Qorg/argeo/cms/internal/runtime/dc=example,dc=com.ldif\\E"
     }, 
     {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/DSMLv2.xsd\\E"
+      "pattern":"\\Qorg/argeo/cms/internal/runtime/jaas.cfg\\E"
     }, 
     {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/SVG.xsd\\E"
+      "pattern":"\\Qorg/argeo/cms/internal/runtime/ou=roles,ou=node.ldif\\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/acr/schemas/datatypes.dtd\\E"
-    },
-    {
-      "pattern":"\\Qorg/argeo/cms/acr/schemas/XMLSchema.dtd\\E"
+      "pattern":"\\Qorg/argeo/cms/internal/runtime/ou=tokens,ou=node.ldif\\E"
     }
   ]},
-  "bundles":[
-    {
-      "name":"org.apache.xerces.impl.xpath.regex.message",
-      "locales":[
-        "", 
-        "en"
-      ]
-    }, 
-    {
-      "name":"org.apache.xerces.impl.msg.XMLSchemaMessages",
-      "locales":[
-        "", 
-        "en"
-      ]
-    }, 
-    {
-      "name":"sun.security.util.Resources",
-      "classNames":["sun.security.util.Resources"]
-    }
-  ]
+  "bundles":[]
 }
index 540da48c2bdf74d6ccb882a45b210f70ebb9e2b6..5df9e31dd9297a785217f6cf226773f258abb1a3 100644 (file)
@@ -1,5 +1,7 @@
 package org.argeo.cms.runtime;
 
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.Dictionary;
 import java.util.concurrent.CompletableFuture;
 
@@ -102,6 +104,13 @@ public class StaticCms {
        }
 
        public static void main(String[] args) {
+               if (args.length == 0) {
+                       System.err.println("Usage: <data path>");
+                       System.exit(1);
+               }
+               Path instancePath = Paths.get(args[0]);
+               System.setProperty("osgi.instance.area", instancePath.toUri().toString());
+
                StaticCms staticCms = new StaticCms();
                Runtime.getRuntime().addShutdownHook(new Thread(() -> staticCms.stop(), "Static CMS Shutdown"));
                staticCms.start();