This is an automated email from the ASF dual-hosted git repository.
davidb pushed a commit to branch flatcp
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
The following commit(s) were added to refs/heads/flatcp by this push:
new 1718aef2 Offline native compile
1718aef2 is described below
commit 1718aef29cb03c68d24940ffce12b36d806bdd8a
Author: David Bosschaert <[email protected]>
AuthorDate: Thu Sep 12 15:57:00 2024 +0100
Offline native compile
---
sling-mini/build_nodocker.sh | 29 ++
sling-mini/launch-nativeoffline.sh | 4 +
sling-mini/src/main/features/base.json | 499 +++++++++++++++++++++++++++++++++
3 files changed, 532 insertions(+)
diff --git a/sling-mini/build_nodocker.sh b/sling-mini/build_nodocker.sh
new file mode 100755
index 00000000..55db5076
--- /dev/null
+++ b/sling-mini/build_nodocker.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+pushd target
+
+ATOMOS_CLASSPATH=""
+ATOMOS_INIT=""
+# source ./atomos-config/atomos_init.sh
+
+native-image --verbose \
+-cp
"artifacts/org/apache/sling/org.apache.sling.feature.launcher.atomos/0.0.1-SNAPSHOT/org.apache.sling.feature.launcher.atomos-0.0.1-SNAPSHOT.jar:\
+artifacts/org/apache/sling/org.apache.sling.feature.launcher/1.2.4/org.apache.sling.feature.launcher-1.2.4.jar:\
+artifacts/org/apache/felix/org.apache.felix.atomos/1.0.1-SNAPSHOT/org.apache.felix.atomos-1.0.1-SNAPSHOT.jar:\
+artifacts/org/slf4j/slf4j-simple/1.7.25/slf4j-simple-1.7.25.jar:\
+artifacts/org/apache/sling/org.apache.sling.feature/1.3.0/org.apache.sling.feature-1.3.0.jar:\
+artifacts/org/apache/felix/org.apache.felix.cm.json/1.0.6/org.apache.felix.cm.json-1.0.6.jar:\
+artifacts/commons-cli/commons-cli/1.4/commons-cli-1.4.jar:\
+artifacts/org/apache/felix/org.apache.felix.framework/7.0.5/org.apache.felix.framework-7.0.5.jar:\
+/Users/david/.m2/repository/org/apache/sling/org.apache.sling.commons.johnzon/1.2.16/org.apache.sling.commons.johnzon-1.2.16.jar:\
+artifacts/org/apache/commons/commons-text/1.10.0/commons-text-1.10.0.jar:\
+atomos-config/app.substrate.jar" \
+org.apache.sling.feature.launcher.impl.Main \
+--no-fallback --enable-https --enable-http \
+-o aem_native "--gc=epsilon" "-march=native" \
+"$@"
+
+popd
+#--initialize-at-build-time=slingxss.com.google.common \
+
+# --pgo=../default.iprof --no-fallback --enable-https --enable-http \
diff --git a/sling-mini/launch-nativeoffline.sh
b/sling-mini/launch-nativeoffline.sh
new file mode 100755
index 00000000..2f13fd53
--- /dev/null
+++ b/sling-mini/launch-nativeoffline.sh
@@ -0,0 +1,4 @@
+pushd target
+rm -rf launcher
+./aem_native -f
file:///Users/david/clones/sling-whiteboard_2/sling-mini/target/slingfeature-tmp/feature-offlineapp.json
+popd
diff --git a/sling-mini/src/main/features/base.json
b/sling-mini/src/main/features/base.json
index 7f3ac554..b57cd5d2 100644
--- a/sling-mini/src/main/features/base.json
+++ b/sling-mini/src/main/features/base.json
@@ -70,5 +70,504 @@
"framework":{
"id":"org.apache.felix:org.apache.felix.framework:7.0.5"
}
+ },
+ "atomos-config:JSON|false": {
+ "initialize-at-build-time": [
+ "org.apache.felix",
+ "org.osgi",
+ "org.eclipse.jetty",
+ "ch",
+ "org.slf4j",
+ "org.apache.johnzon",
+ "org.apache.http",
+ "org.owasp",
+ "org.apache.logging.slf4j",
+ "org.quartz.core",
+ "org.apache.logging",
+ "org.apache.sling.api",
+ "slingxss.com.google.common"
+ ],
+ "reflect-config": [
+ {
+ "name":"com.vladsch.flexmark.util.ast.TextContainer$Flags",
+ "allPublicFields":true
+ },
+ {
+ "name":"com.vladsch.flexmark.util.sequence.BasedOptionsHolder$Options",
+ "allPublicFields":true
+ },
+ {
+ "name":"com.vladsch.flexmark.util.sequence.LineAppendable$Options",
+ "allPublicFields":true
+ },
+ {
+ "name":"com.vladsch.flexmark.util.sequence.LineInfo$Flags",
+ "allPublicFields":true
+ },
+ {
+
"name":"com.vladsch.flexmark.util.sequence.builder.ISegmentBuilder$Options",
+ "allPublicFields":true
+ },
+
+ {
+ "name":"[B"
+ },
+ {
+ "name":"[C"
+ },
+ {
+ "name":"[D"
+ },
+ {
+ "name":"[F"
+ },
+ {
+ "name":"[I"
+ },
+ {
+ "name":"[J"
+ },
+ {
+ "name":"[Ljava.lang.String;",
+ "allPublicFields":true,
+ "queryAllPublicMethods":true
+ },
+ {
+ "name":"[Ljava.lang.invoke.MethodHandles$Lookup$ClassOption;"
+ },
+ {
+ "name":"[Ljavax.management.openmbean.CompositeData;"
+ },
+ {
+ "name":"[Lorg.eclipse.jetty.server.Handler;"
+ },
+ {
+
"name":"[Lorg.eclipse.jetty.server.handler.ContextHandlerCollection$Branch;"
+ },
+ {
+ "name":"[Lorg.eclipse.jetty.servlet.ServletMapping;"
+ },
+ {
+ "name":"[S"
+ },
+ {
+ "name":"[Z"
+ },
+ {
+
"name":"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+ },
+ {
+
"name":"com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+ },
+ {
+ "name":"java.io.FilePermission"
+ },
+ {
+ "name":"java.lang.Boolean",
+ "fields":[{"name":"TYPE"}],
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+ },
+ {
+ "name":"java.lang.Byte",
+ "fields":[{"name":"TYPE"}],
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+ },
+ {
+ "name":"java.lang.Character",
+ "fields":[{"name":"TYPE"}]
+ },
+ {
+ "name":"java.lang.Class",
+ "methods":[{"name":"getModule","parameterTypes":[] }]
+ },
+ {
+ "name":"java.lang.ClassLoader",
+ "methods":[{"name":"getPlatformClassLoader","parameterTypes":[] }]
+ },
+ {
+ "name":"java.lang.Deprecated",
+ "queryAllPublicMethods":true
+ },
+ {
+ "name":"java.lang.Double",
+ "fields":[{"name":"TYPE"}],
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+ },
+ {
+ "name":"java.lang.Float",
+ "fields":[{"name":"TYPE"}],
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+ },
+ {
+ "name":"java.lang.Integer",
+ "fields":[{"name":"TYPE"}],
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+ },
+ {
+ "name":"java.lang.Long",
+ "fields":[{"name":"TYPE"}],
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+ },
+ {
+ "name":"java.lang.Module",
+ "methods":[{"name":"getDescriptor","parameterTypes":[] },
{"name":"getLayer","parameterTypes":[] }, {"name":"getName","parameterTypes":[]
}]
+ },
+ {
+ "name":"java.lang.ModuleLayer",
+ "methods":[{"name":"boot","parameterTypes":[] },
{"name":"configuration","parameterTypes":[] },
{"name":"modules","parameterTypes":[] }]
+ },
+ {
+ "name":"java.lang.Object",
+ "queryAllDeclaredMethods":true,
+ "queryAllPublicMethods":true,
+
"methods":[{"name":"activate","parameterTypes":["org.osgi.service.component.ComponentContext"]
},
{"name":"deactivate","parameterTypes":["org.osgi.service.component.ComponentContext"]
}]
+ },
+ {
+ "name":"java.lang.Runnable"
+ },
+ {
+ "name":"java.lang.RuntimePermission"
+ },
+ {
+ "name":"java.lang.Short",
+ "fields":[{"name":"TYPE"}],
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+ },
+ {
+ "name":"java.lang.StackTraceElement",
+ "queryAllPublicMethods":true
+ },
+ {
+ "name":"java.lang.String",
+ "queryAllPublicMethods":true,
+ "fields":[{"name":"TYPE"}]
+ },
+ {
+ "name":"java.lang.Thread",
+ "fields":[{"name":"threadLocalRandomProbe"},
{"name":"threadLocals"}],
+ "methods":[{"name":"getId","parameterTypes":[] },
{"name":"getStackTrace","parameterTypes":[] }]
+ },
+ {
+ "name":"java.lang.Throwable",
+ "methods":[{"name":"getSuppressed","parameterTypes":[] }]
+ },
+ {
+ "name":"java.lang.Void",
+ "fields":[{"name":"TYPE"}]
+ },
+ {
+ "name":"java.lang.annotation.Annotation",
+ "queryAllPublicMethods":true
+ },
+
+
+
+
+ {
+ "name":"java.net.URL",
+ "allDeclaredFields":true,
+
"methods":[{"name":"getURLStreamHandler","parameterTypes":["java.lang.String"]
}]
+ },
+ {
+ "name":"java.net.URLClassLoader",
+ "methods":[{"name":"addURL","parameterTypes":["java.net.URL"] }]
+ },
+ {
+ "name":"java.net.URLConnection",
+ "allDeclaredFields":true
+ },
+ {
+ "name":"java.net.URLPermission",
+
"methods":[{"name":"<init>","parameterTypes":["java.lang.String","java.lang.String"]
}]
+ },
+ {
+ "name":"java.net.URLStreamHandler",
+
"methods":[{"name":"equals","parameterTypes":["java.net.URL","java.net.URL"] },
{"name":"getDefaultPort","parameterTypes":[] },
{"name":"getHostAddress","parameterTypes":["java.net.URL"] },
{"name":"hashCode","parameterTypes":["java.net.URL"] },
{"name":"hostsEqual","parameterTypes":["java.net.URL","java.net.URL"] },
{"name":"openConnection","parameterTypes":["java.net.URL"] },
{"name":"openConnection","parameterTypes":["java.net.URL","java.net.Proxy"] },
{"name":"sameFile","para [...]
+ },
+ {
+ "name":"org.osgi.service.metatype.MetaTypeProvider"
+ },
+ {
+ "name": "org.apache.sling.feature.launcher.atomos.AtomosRunner",
+ "allPublicConstructors": true
+ },
+ {
+ "name":
"org.apache.felix.cm.impl.persistence.MemoryPersistenceManager",
+ "methods": [
+ {
+ "name": "store",
+ "parameterTypes": [
+ "java.lang.String",
+ "java.util.Dictionary"
+ ]
+ }]
+ },
+ {
+ "name": "org.apache.xerces.util.SecurityManager",
+ "allPublicMethods" : true
+ },
+ {
+ "name":"org.osgi.service.cm.Configuration",
+
"methods":[{"name":"getProcessedProperties","parameterTypes":["org.osgi.framework.ServiceReference"]
}, {"name":"getProperties","parameterTypes":[] }]
+ },
+ {
+ "name":"org.osgi.service.cm.ConfigurationAdmin",
+ "queryAllPublicMethods":true,
+
"methods":[{"name":"getConfiguration","parameterTypes":["java.lang.String","java.lang.String"]
}, {"name":"listConfigurations","parameterTypes":["java.lang.String"] }]
+ },
+ {
+ "name":"org.osgi.service.cm.ConfigurationEvent",
+ "methods":[{"name":"getPid","parameterTypes":[] },
{"name":"getType","parameterTypes":[] }]
+ },
+ {
+ "name":"org.osgi.service.cm.ConfigurationListener",
+
"methods":[{"name":"configurationEvent","parameterTypes":["org.osgi.service.cm.ConfigurationEvent"]
}]
+ },
+ {
+ "name":
"org.apache.felix.webconsole.internal.configuration.ConfigManager",
+ "allPublicConstructors": true
+ },
+ {
+ "name": "org.apache.felix.webconsole.internal.compendium.LogServlet",
+ "allPublicConstructors": true
+ },
+ {
+ "name": "org.apache.felix.webconsole.internal.core.BundlesServlet",
+ "allPublicConstructors": true
+ },
+ {
+ "name": "org.apache.felix.webconsole.internal.core.ServicesServlet",
+ "allPublicConstructors": true
+ },
+ {
+ "name": "org.apache.felix.webconsole.internal.misc.LicenseServlet",
+ "allPublicConstructors": true
+ },
+ {
+ "name": "org.apache.felix.webconsole.internal.system.VMStatPlugin",
+ "allPublicConstructors": true
+ },
+ {
+ "name": "org.apache.xerces.util.SecurityManager",
+ "allPublicConstructors": true
+ },
+ {
+ "name": "org.owasp.esapi.reference.DefaultSecurityConfiguration",
+ "allPublicConstructors": true
+ },
+ {
+
+ "name":
"org.apache.sling.commons.scheduler.impl.NonParallelQuartzJobExecutor",
+ "allPublicConstructors": true
+ },
+ {
+
+ "name": "org.owasp.esapi.reference.DefaultValidator",
+ "allPublicConstructors": true
+ },
+ {
+
+ "name": "org.owasp.esapi.reference.DefaultEncoder",
+ "allPublicConstructors": true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+ },{
+ "name":"org.owasp.esapi.codecs.HTMLEntityCodec",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+ },
+ {
+ "name":"org.owasp.esapi.codecs.PercentCodec",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+ },
+ {
+ "name":"org.owasp.esapi.reference.DefaultEncoder",
+ "methods":[{"name":"getInstance","parameterTypes":[] }]
+ },
+ {
+ "name":"org.owasp.esapi.reference.DefaultSecurityConfiguration",
+ "methods":[{"name":"getInstance","parameterTypes":[] }]
+ },
+ {
+ "name":"org.owasp.esapi.reference.DefaultValidator",
+ "methods":[{"name":"getInstance","parameterTypes":[] }]
+ },
+ {
+ "name":"org.owasp.esapi.reference.JavaLogFactory",
+ "methods":[{"name":"getInstance","parameterTypes":[] }]
+ },
+ {
+ "name":"org.apache.felix.webconsole.SimpleWebConsolePlugin",
+ "queryAllDeclaredMethods":true,
+ "queryAllPublicMethods":true,
+ "methods":[{"name":"getResource","parameterTypes":["java.lang.String"]
}]
+ }
+ ],
+ "resource-config": {
+ "resources" : [{ "pattern" : "META-INF/features/.*" }, { "pattern" :
"OSGI-INF/metatype/.*"}]
+ },
+ "proxy-config": [
+ ["org.osgi.service.cm.ConfigurationListener"]
+ ],
+ "jni-config": [
+ {
+ "name": "[Lcom.sun.management.internal.DiagnosticCommandArgumentInfo;"
+ },
+ {
+ "name": "[Lcom.sun.management.internal.DiagnosticCommandInfo;"
+ },
+ {
+ "name": "com.sun.management.internal.DiagnosticCommandArgumentInfo",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": [
+ "java.lang.String",
+ "java.lang.String",
+ "java.lang.String",
+ "java.lang.String",
+ "boolean",
+ "boolean",
+ "boolean",
+ "int"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "com.sun.management.internal.DiagnosticCommandInfo",
+ "methods": [
+ {
+ "name": "<init>",
+ "parameterTypes": [
+ "java.lang.String",
+ "java.lang.String",
+ "java.lang.String",
+ "java.lang.String",
+ "java.lang.String",
+ "java.lang.String",
+ "boolean",
+ "java.util.List"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "java.lang.Boolean",
+ "methods": [
+ {
+ "name": "getBoolean",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "java.lang.SecurityManager",
+ "fields": [
+ {
+ "name": "initialized"
+ }
+ ]
+ },
+ {
+ "name": "java.lang.String",
+ "methods": [
+ {
+ "name": "lastIndexOf",
+ "parameterTypes": [
+ "int"
+ ]
+ },
+ {
+ "name": "substring",
+ "parameterTypes": [
+ "int"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "java.lang.System",
+ "methods": [
+ {
+ "name": "getProperty",
+ "parameterTypes": [
+ "java.lang.String"
+ ]
+ },
+ {
+ "name": "setProperty",
+ "parameterTypes": [
+ "java.lang.String",
+ "java.lang.String"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "java.util.Arrays",
+ "methods": [
+ {
+ "name": "asList",
+ "parameterTypes": [
+ "java.lang.Object[]"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "org.apache.felix.atomos.Atomos",
+ "methods": [
+ {
+ "name": "main",
+ "parameterTypes": [
+ "java.lang.String[]"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "sun.management.VMManagementImpl",
+ "fields": [
+ {
+ "name": "compTimeMonitoringSupport"
+ },
+ {
+ "name": "currentThreadCpuTimeSupport"
+ },
+ {
+ "name": "objectMonitorUsageSupport"
+ },
+ {
+ "name": "otherThreadCpuTimeSupport"
+ },
+ {
+ "name": "remoteDiagnosticCommandsSupport"
+ },
+ {
+ "name": "synchronizerUsageSupport"
+ },
+ {
+ "name": "threadAllocatedMemorySupport"
+ },
+ {
+ "name": "threadContentionMonitoringSupport"
+ }
+ ]
+ }
+ ],
+ "serialization-config": {
+ "types": [
+ {
+ "name": "java.util.ArrayList"
+ }
+ ],
+ "lambdaCapturingTypes": [
+ ],
+ "proxies": [
+ ]
+ }
}
}
\ No newline at end of file