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

Reply via email to