This is an automated email from the ASF dual-hosted git repository.

davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git


The following commit(s) were added to refs/heads/master by this push:
     new a8a1934b Sling mini Native (#115)
a8a1934b is described below

commit a8a1934b3ac357a3b0d91a20ea0fc096fc811c81
Author: David Bosschaert <[email protected]>
AuthorDate: Wed Oct 30 11:09:59 2024 +0100

    Sling mini Native (#115)
    
    Native Compilation pom and scripts
---
 sling-mini/native/Dockerfile.offline            |  12 +
 sling-mini/native/README.md                     |  47 +++
 sling-mini/native/build-docker.sh               |   2 +
 sling-mini/native/build-nativeoffline.sh        |  28 ++
 sling-mini/native/launch-nativeoffline.sh       |   8 +
 sling-mini/native/launch-offline-bare.sh        |  14 +
 sling-mini/native/launch-offline.sh             |  13 +
 sling-mini/native/pom.xml                       | 201 ++++++++++
 sling-mini/native/src/main/features/native.json | 501 ++++++++++++++++++++++++
 9 files changed, 826 insertions(+)

diff --git a/sling-mini/native/Dockerfile.offline 
b/sling-mini/native/Dockerfile.offline
new file mode 100644
index 00000000..d7bf1b12
--- /dev/null
+++ b/sling-mini/native/Dockerfile.offline
@@ -0,0 +1,12 @@
+FROM openjdk:21-jdk-oracle
+
+WORKDIR /root
+
+RUN mkdir artifacts && mkdir atomos-config && mkdir slingfeature-tmp && mkdir 
/tmp/offliner
+
+COPY target/artifacts artifacts
+COPY target/atomos-config/app.substrate.jar atomos-config
+COPY target/slingfeature-tmp/feature.json slingfeature-tmp
+COPY launch-offline-bare.sh .
+
+ENTRYPOINT ["sh", "-c", "./launch-offline-bare.sh"]
diff --git a/sling-mini/native/README.md b/sling-mini/native/README.md
new file mode 100644
index 00000000..3baaae12
--- /dev/null
+++ b/sling-mini/native/README.md
@@ -0,0 +1,47 @@
+# Native Compilation for Sling-Mini
+
+This subdirectory contains the resources needed to natively compile sling-mini.
+
+## Building the Atomos-based Jar
+
+To build, ensure that sling-mini is built first so that its aggregated 
features are available in the Maven cache.
+
+Then
+
+```
+mvn install
+```
+
+This augments the sling-mini feature model with additional native image 
metadata and produces an flat-classpath sling-mini jar
+in atomos-config/app.substrate.jar which can be launched with the feature 
launcher.
+
+### Launching
+
+To launch the atomos-based jar, run:
+
+```
+launch-offline.sh
+```
+
+By default the process will convert Markdown (`.md`) files found in 
`/tmp/docs` into HTML files written to `/tmp/offliner`
+
+
+## Building the Native Image
+
+After building the Atomos-based Jar, this can be used as input to the native 
compilation. This is be done with Graal native-image, so ensure GraalVM is 
installed.
+
+To build:
+
+```
+./build-nativeoffline.sh
+```
+
+### Launching
+
+To launch the native image:
+
+```
+./launch-nativeoffline.sh
+```
+
+## Docker
\ No newline at end of file
diff --git a/sling-mini/native/build-docker.sh 
b/sling-mini/native/build-docker.sh
new file mode 100755
index 00000000..cc2f279f
--- /dev/null
+++ b/sling-mini/native/build-docker.sh
@@ -0,0 +1,2 @@
+docker build -f Dockerfile.offline --platform linux/amd64,linux/arm64/v8 .
+
diff --git a/sling-mini/native/build-nativeoffline.sh 
b/sling-mini/native/build-nativeoffline.sh
new file mode 100755
index 00000000..4781bfb0
--- /dev/null
+++ b/sling-mini/native/build-nativeoffline.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+pushd target
+
+ATOMOS_CLASSPATH=""
+ATOMOS_INIT=""
+
+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-api/1.7.36/slf4j-api-1.7.36.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:\
+artifacts/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 \
+-o sling_native -O3  "-march=native" "--gc=epsilon" --no-fallback \
+"$@"
+
+popd
+
+# --pgo-instrument / --pgo
+#
diff --git a/sling-mini/native/launch-nativeoffline.sh 
b/sling-mini/native/launch-nativeoffline.sh
new file mode 100755
index 00000000..3f7c0306
--- /dev/null
+++ b/sling-mini/native/launch-nativeoffline.sh
@@ -0,0 +1,8 @@
+SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+echo script dir: $SCRIPT_DIR
+
+pushd target
+rm -rf launcher
+rm /tmp/offliner/test.md.html
+time ./sling_native -f file://$SCRIPT_DIR/target/slingfeature-tmp/feature.json
+popd
diff --git a/sling-mini/native/launch-offline-bare.sh 
b/sling-mini/native/launch-offline-bare.sh
new file mode 100755
index 00000000..c9a55453
--- /dev/null
+++ b/sling-mini/native/launch-offline-bare.sh
@@ -0,0 +1,14 @@
+java \
+-DSOURCE_DIR=$SOURCE_DIR -DTARGET_DIR=$TARGET_DIR \
+-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/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:\
+artifacts/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 \
+-f slingfeature-tmp/feature.json
diff --git a/sling-mini/native/launch-offline.sh 
b/sling-mini/native/launch-offline.sh
new file mode 100755
index 00000000..62e6dd44
--- /dev/null
+++ b/sling-mini/native/launch-offline.sh
@@ -0,0 +1,13 @@
+pushd target
+rm -rf launcher
+
+if [ -z "${SOURCE_DIR}" ]; then 
+    export SOURCE_DIR=/tmp/docs
+fi
+if [ -z "${TARGET_DIR}" ]; then 
+    export TARGET_DIR=/tmp/offliner
+fi
+echo Using SOURCE_DIR=$SOURCE_DIR
+echo       TARGET_DIR=$TARGET_DIR
+time ../launch-offline-bare.sh
+popd
diff --git a/sling-mini/native/pom.xml b/sling-mini/native/pom.xml
new file mode 100644
index 00000000..a7335797
--- /dev/null
+++ b/sling-mini/native/pom.xml
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+    agreements. See the NOTICE file distributed with this work for additional 
information
+    regarding copyright ownership. The ASF licenses this file to you under the 
Apache License,
+    Version 2.0 (the "License"); you may not use this file except in 
compliance with the
+    License. You may obtain a copy of the License at 
http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software 
distributed under the
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
CONDITIONS OF ANY KIND,
+    either express or implied. See the License for the specific language 
governing permissions
+    and limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.sling</groupId>
+        <artifactId>sling</artifactId>
+        <version>52</version>
+        <relativePath />
+    </parent>
+
+    <artifactId>org.apache.sling.starter.minimal.native</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>Apache Sling Minimal Starter - Native Compilation</name>
+    <description>A minimal starter for Apache Sling, compiled to native 
code</description>
+
+    <packaging>slingosgifeature</packaging>
+
+     <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>slingfeature-maven-plugin</artifactId>
+                <version>1.8.4</version>
+                <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <id>create-full</id>
+                        <goals>
+                            <goal>aggregate-features</goal>
+                        </goals>
+                        <configuration>
+                            <aggregates>
+                                <aggregate>
+                                    <includeArtifact>
+                                        <groupId>org.apache.sling</groupId>
+                                        
<artifactId>org.apache.sling.starter.minimal</artifactId>
+                                        <version>${project.version}</version>
+                                        <classifier>offlineapp</classifier>
+                                        <type>slingosgifeature</type>
+                                    </includeArtifact>
+                                    <filesInclude>native.json</filesInclude>
+                                </aggregate>
+                            </aggregates>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>create-repository</id>
+                        <goals>
+                            <goal>repository</goal>
+                        </goals>
+                        <configuration>
+                            <repositories>
+                                <repository>
+                                    <includeArtifact>
+                                        <groupId>org.apache.sling</groupId>
+                                        
<artifactId>org.apache.sling.starter.minimal</artifactId>
+                                        <version>${project.version}</version>
+                                        <classifier>offlineapp</classifier>
+                                        <type>slingosgifeature</type>
+                                    </includeArtifact>
+                                    <embedArtifacts>
+                                        <dependency>
+                                            <groupId>org.apache.sling</groupId>
+                                            
<artifactId>org.apache.sling.feature.launcher.atomos</artifactId>
+                                            <version>0.0.1-SNAPSHOT</version>
+                                            <type>jar</type>
+                                        </dependency>
+                                        <dependency>
+                                            <groupId>org.apache.sling</groupId>
+                                            
<artifactId>org.apache.sling.feature.launcher</artifactId>
+                                            <version>1.2.4</version>
+                                            <type>jar</type>
+                                        </dependency>
+                                        <dependency>
+                                            <groupId>org.osgi</groupId>
+                                            <artifactId>osgi.core</artifactId>
+                                            <version>8.0.0</version>
+                                        </dependency>
+                                        <dependency>
+                                            <groupId>org.apache.felix</groupId>
+                                            
<artifactId>org.apache.felix.framework</artifactId>
+                                            <version>7.0.5</version>
+                                        </dependency>
+                                        <dependency>
+                                            <groupId>org.apache.felix</groupId>
+                                            
<artifactId>org.apache.felix.atomos</artifactId>
+                                            <version>1.0.1-SNAPSHOT</version>
+                                        </dependency>
+                                        <dependency>
+                                            
<groupId>org.apache.commons</groupId>
+                                            
<artifactId>commons-text</artifactId>
+                                            <version>1.10.0</version>
+                                        </dependency>
+                                        <dependency>
+                                            
<groupId>org.apache.commons</groupId>
+                                            
<artifactId>commons-lang3</artifactId>
+                                            <version>3.12.0</version>
+                                        </dependency>
+                                        <dependency>
+                                            <groupId>org.slf4j</groupId>
+                                            
<artifactId>slf4j-simple</artifactId>
+                                            <version>1.7.25</version>
+                                        </dependency>
+                                        <dependency>
+                                            <groupId>org.apache.sling</groupId>
+                                            
<artifactId>org.apache.sling.feature</artifactId>
+                                            <version>1.3.0</version>
+                                        </dependency>
+                                        <dependency>
+                                            <groupId>org.apache.felix</groupId>
+                                            
<artifactId>org.apache.felix.cm.json</artifactId>
+                                            <version>1.0.6</version>
+                                        </dependency>
+                                        <dependency>
+                                            <groupId>commons-cli</groupId>
+                                            
<artifactId>commons-cli</artifactId>
+                                            <version>1.4</version>
+                                        </dependency>
+
+                                        <!-- TODO can we get rid of this one? 
-->
+                                        <dependency>
+                                            <groupId>org.apache.sling</groupId>
+                                            
<artifactId>org.apache.sling.commons.johnzon</artifactId>
+                                            <version>1.2.16</version>
+                                        </dependency>
+                                    </embedArtifacts>
+                                </repository>
+                            </repositories>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>exec-maven-plugin</artifactId>
+                <version>3.1.0</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>exec</goal>
+                        </goals>
+                        <phase>package</phase>
+                        <configuration>
+                            <executable>java</executable>
+                            <arguments>
+                                <argument>-jar</argument>
+                                <classpath>
+                                    
<dependency>org.apache.sling:org.apache.sling.feature.launcher.atomos.config</dependency>
+                                </classpath>
+                                <argument>-u</argument>
+                                
<argument>file:${build.directory}/artifacts</argument>
+                                <argument>-f</argument>
+                                
<argument>file:${build.directory}/slingfeature-tmp/feature.json</argument>
+                            </arguments>
+                            <inheritIo>true</inheritIo>
+                            <addOutputToClasspath>false</addOutputToClasspath>
+                            
<workingDirectory>${build.directory}</workingDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            
<artifactId>org.apache.sling.feature.launcher.atomos.config</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+            <classifier>fatjar</classifier>
+            <scope>compile</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+    </dependencies>
+</project>
+
diff --git a/sling-mini/native/src/main/features/native.json 
b/sling-mini/native/src/main/features/native.json
new file mode 100644
index 00000000..28e8015f
--- /dev/null
+++ b/sling-mini/native/src/main/features/native.json
@@ -0,0 +1,501 @@
+{
+  "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