diff --git a/.github/workflows/containers.yml b/.github/workflows/containers.yml new file mode 100644 index 0000000..019d2b8 --- /dev/null +++ b/.github/workflows/containers.yml @@ -0,0 +1,82 @@ +name: Upload Container image + +on: + push: + branches: + - main + tags: + - 'v*' + workflow_dispatch: # allow to manually trigger this workflow + +env: + REGISTRY: ghcr.io + IMAGE_NAME: appthreat/atom + +jobs: + deploy: + if: github.repository_owner == 'appthreat' + runs-on: ubuntu-latest + permissions: + contents: write + packages: write + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Set up JDK + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: '21' + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: '21.x' + - name: Delete `.rustup` directory + run: rm -rf /home/runner/.rustup # to save disk space + if: runner.os == 'Linux' + - name: Delete `.cargo` directory # to save disk space + run: rm -rf /home/runner/.cargo + if: runner.os == 'Linux' + - uses: actions/cache@v3 + with: + path: | + ~/.sbt + ~/.coursier + key: ${{ runner.os }}-sbt-${{ hashfiles('**/build.sbt') }} + - run: | + git apply --ignore-space-change --ignore-whitespace contrib/java21.patch + if [ $? != 0 ]; then + echo "Unable to patch the codebase correctly." + exit 1 + fi + sbt stage createDistribution + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Log in to the Container registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ghcr.io/appthreat/atom + - name: Build and push Docker images + uses: docker/build-push-action@v4 + with: + file: ci/Dockerfile + context: . + platforms: linux/amd64 + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha,scope=atom + cache-to: type=gha,mode=max,scope=atom diff --git a/build.sbt b/build.sbt index 271d8ed..5d78736 100644 --- a/build.sbt +++ b/build.sbt @@ -1,6 +1,6 @@ name := "atom" ThisBuild / organization := "io.appthreat" -ThisBuild / version := "1.6.0" +ThisBuild / version := "1.6.1" ThisBuild / scalaVersion := "3.3.1" val chenVersion = "1.0.0" @@ -55,7 +55,7 @@ Universal / mappings := (Universal / mappings).value.filter { case (_, path) => !path.contains("org.scala-lang.scala3-compiler") && !path.contains("io.get-coursier") && !path.contains("com.michaelpollmeier.scala-repl-pp") } -enablePlugins(JavaAppPackaging, ClasspathJarPlugin) +enablePlugins(JavaAppPackaging, ClasspathJarPlugin, GraalVMNativeImagePlugin) lazy val AstgenWin = "astgen-win.exe" lazy val AstgenLinux = "astgen-linux" @@ -182,3 +182,6 @@ credentials += "appthreat", sys.env.getOrElse("GITHUB_TOKEN", "N/A") ) + +containerBuildImage := GraalVMNativeImagePlugin.generateContainerBuildImage("ghcr.io/graalvm/graalvm-community:21") +graalVMNativeImageOptions := Seq("-H:+UnlockExperimentalVMOptions", "--no-fallback") diff --git a/ci/Dockerfile b/ci/Dockerfile new file mode 100644 index 0000000..f520699 --- /dev/null +++ b/ci/Dockerfile @@ -0,0 +1,73 @@ +FROM almalinux:9.2-minimal + +LABEL maintainer="appthreat" \ + org.opencontainers.image.authors="Team AppThreat " \ + org.opencontainers.image.source="https://github.com/appthreat/chen" \ + org.opencontainers.image.url="https://github.com/appthreat/atom" \ + org.opencontainers.image.version="1.6.x" \ + org.opencontainers.image.vendor="appthreat" \ + org.opencontainers.image.licenses="Apache-2.0" \ + org.opencontainers.image.title="atom" \ + org.opencontainers.image.description="Container image for AppThreat atom" \ + org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -v $HOME:$HOME -v $(pwd):/app:rw -it ghcr.io/appthreat/atom atom" + +ARG MAVEN_VERSION=3.9.5 +ARG JAVA_VERSION=21.0.1-graalce + +ENV JAVA_VERSION=$JAVA_VERSION \ + MAVEN_VERSION=$MAVEN_VERSION \ + JAVA_HOME="/opt/java/${JAVA_VERSION}" \ + MAVEN_HOME="/opt/maven/${MAVEN_VERSION}" \ + JAVA_OPTS="-XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1" \ + ANDROID_HOME=/opt/android-sdk-linux \ + JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8" + +ENV PATH=${PATH}:/opt/bin:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools: + +WORKDIR /opt + +RUN set -e; \ + ARCH_NAME="$(rpm --eval '%{_arch}')"; \ + url=; \ + case "${ARCH_NAME##*-}" in \ + 'x86_64') \ + OS_ARCH_SUFFIX=''; \ + ;; \ + 'aarch64') \ + OS_ARCH_SUFFIX='-aarch64'; \ + ;; \ + *) echo >&2 "error: unsupported architecture: '$ARCH_NAME'"; exit 1 ;; \ + esac; \ + echo -e "[nodejs]\nname=nodejs\nstream=21\nprofiles=\nstate=enabled\n" > /etc/dnf/modules.d/nodejs.module \ + && microdnf install -y gcc git-core wget bash glibc-common glibc-all-langpacks \ + pcre2 findutils which tar gzip zip unzip sudo nodejs \ + && curl -s "https://get.sdkman.io" | bash \ + && source "$HOME/.sdkman/bin/sdkman-init.sh" \ + && echo -e "sdkman_auto_answer=true\nsdkman_selfupdate_feature=false\nsdkman_auto_env=true" >> $HOME/.sdkman/etc/config \ + && sdk install java $JAVA_VERSION \ + && sdk install maven $MAVEN_VERSION \ + && sdk offline enable \ + && mv /root/.sdkman/candidates/* /opt/ \ + && rm -rf /root/.sdkman \ + && mkdir -p ${ANDROID_HOME}/cmdline-tools \ + && curl -L https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -o ${ANDROID_HOME}/cmdline-tools/android_tools.zip \ + && unzip ${ANDROID_HOME}/cmdline-tools/android_tools.zip -d ${ANDROID_HOME}/cmdline-tools/ \ + && rm ${ANDROID_HOME}/cmdline-tools/android_tools.zip \ + && mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest \ + && yes | /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager --licenses --sdk_root=/opt/android-sdk-linux \ + && /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager 'platform-tools' --sdk_root=/opt/android-sdk-linux \ + && /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager 'platforms;android-34' --sdk_root=/opt/android-sdk-linux \ + && /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager 'build-tools;34.0.0' --sdk_root=/opt/android-sdk-linux \ + && sudo npm install -g @cyclonedx/cdxgen --omit=optional + +ENV LC_ALL=en_US.UTF-8 \ + LANG=en_US.UTF-8 \ + LANGUAGE=en_US.UTF-8 +COPY ./target/atom.zip . +COPY ./wrapper . +RUN unzip -q atom.zip \ + && sudo npm install -g /opt/nodejs \ + && rm -rf atom.zip nodejs \ + && microdnf clean all + +CMD ["atom"] diff --git a/ci/native-image.sh b/ci/native-image.sh new file mode 100755 index 0000000..d24cbf6 --- /dev/null +++ b/ci/native-image.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# bash ci/native-image.sh + +echo "Applying Java 21 patch" +git apply --ignore-space-change --ignore-whitespace contrib/java21.patch +if [ $? != 0 ]; then + echo "Unable to patch the codebase correctly. Please file a bug report for atom." +fi +echo "About to build the native image. This would take a few minutes ..." +sbt clean stage scalafmt "GraalVMNativeImage / packageBin" + +if [ -f "target/graalvm-native-image/atom" ]; then + chmod +x target/graalvm-native-image/atom + target/graalvm-native-image/atom --help + echo "atom native-image was built successfully." + echo "Using Oracle GraalVM 21? Adhere to the terms of the license - https://www.oracle.com/downloads/licenses/graal-free-license.html" +else + echo "atom native-image was not built correctly. Check if you have Oracle GraalVM 21 installed." +fi diff --git a/ci/trace-native-image.sh b/ci/trace-native-image.sh new file mode 100755 index 0000000..0cf6f5f --- /dev/null +++ b/ci/trace-native-image.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +# Trace the atom executable using Graal native-image-agent to produce an optimized native binary +# +# bash ci/trace-native-image.sh java +# bash ci/trace-native-image.sh js +# bash ci/trace-native-image.sh py +# bash ci/trace-native-image.sh c + +sbt stage +./atom.sh -J-agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image reachables -l $1 -o /tmp/app.atom -s /tmp/reachables.slices.json $2 + +# bash ci/native-image.sh diff --git a/contrib/Dockerfile-graalvm21 b/contrib/Dockerfile-graalvm21 new file mode 100644 index 0000000..8f1b6a6 --- /dev/null +++ b/contrib/Dockerfile-graalvm21 @@ -0,0 +1,70 @@ +# https://www.oracle.com/downloads/licenses/graal-free-license.html +FROM container-registry.oracle.com/graalvm/jdk:21 + +LABEL maintainer="appthreat" \ + org.opencontainers.image.authors="Team AppThreat " \ + org.opencontainers.image.source="https://github.com/appthreat/chen" \ + org.opencontainers.image.url="https://github.com/appthreat/atom" \ + org.opencontainers.image.version="1.6.0" \ + org.opencontainers.image.vendor="appthreat" \ + org.opencontainers.image.licenses="Apache-2.0" \ + org.opencontainers.image.title="atom" \ + org.opencontainers.image.description="Container image for testing AppThreat atom with Oracle GraalVM" \ + org.opencontainers.docker.cmd="docker run --rm -v /tmp:/tmp -v $HOME:$HOME -v $(pwd):/app:rw -it ghcr.io/appthreat/atom" + +ARG MAVEN_VERSION=3.9.5 + +ENV MAVEN_VERSION=$MAVEN_VERSION \ + MAVEN_HOME="/opt/maven/${MAVEN_VERSION}" \ + JAVA_OPTS="-XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1" \ + ANDROID_HOME=/opt/android-sdk-linux \ + JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8" + +ENV PATH=${PATH}:/opt/bin:${MAVEN_HOME}/bin:/usr/local/bin/:/root/.local/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools: + +WORKDIR /opt + +RUN set -e; \ + ARCH_NAME="$(rpm --eval '%{_arch}')"; \ + url=; \ + case "${ARCH_NAME##*-}" in \ + 'x86_64') \ + OS_ARCH_SUFFIX=''; \ + ;; \ + 'aarch64') \ + OS_ARCH_SUFFIX='-aarch64'; \ + ;; \ + *) echo >&2 "error: unsupported architecture: '$ARCH_NAME'"; exit 1 ;; \ + esac; \ + echo -e "[nodejs]\nname=nodejs\nstream=21\nprofiles=\nstate=enabled\n" > /etc/dnf/modules.d/nodejs.module \ + && microdnf install -y gcc git-core wget bash glibc-common glibc-all-langpacks \ + pcre2 findutils which tar gzip zip unzip sudo nodejs \ + && curl -s "https://get.sdkman.io" | bash \ + && source "$HOME/.sdkman/bin/sdkman-init.sh" \ + && echo -e "sdkman_auto_answer=true\nsdkman_selfupdate_feature=false\nsdkman_auto_env=true" >> $HOME/.sdkman/etc/config \ + && sdk install maven $MAVEN_VERSION \ + && sdk offline enable \ + && mv /root/.sdkman/candidates/* /opt/ \ + && rm -rf /root/.sdkman \ + && mkdir -p ${ANDROID_HOME}/cmdline-tools \ + && curl -L https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -o ${ANDROID_HOME}/cmdline-tools/android_tools.zip \ + && unzip ${ANDROID_HOME}/cmdline-tools/android_tools.zip -d ${ANDROID_HOME}/cmdline-tools/ \ + && rm ${ANDROID_HOME}/cmdline-tools/android_tools.zip \ + && mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest \ + && yes | /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager --licenses --sdk_root=/opt/android-sdk-linux \ + && /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager 'platform-tools' --sdk_root=/opt/android-sdk-linux \ + && /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager 'platforms;android-34' --sdk_root=/opt/android-sdk-linux \ + && /opt/android-sdk-linux/cmdline-tools/latest/bin/sdkmanager 'build-tools;34.0.0' --sdk_root=/opt/android-sdk-linux \ + && sudo npm install -g @cyclonedx/cdxgen --omit=optional + +ENV LC_ALL=en_US.UTF-8 \ + LANG=en_US.UTF-8 \ + LANGUAGE=en_US.UTF-8 +COPY ./target/atom.zip . +COPY ./wrapper . +RUN unzip -q atom.zip \ + && sudo npm install -g /opt/nodejs \ + && rm -rf atom.zip nodejs \ + && microdnf clean all + +ENTRYPOINT ["atom"] diff --git a/contrib/README.md b/contrib/README.md index e9fb13a..e7da62f 100644 --- a/contrib/README.md +++ b/contrib/README.md @@ -2,7 +2,15 @@ Atom works better under Java 21 with virtual threads. Use the provided patch for Java 21. +## Steps + ```shell git apply --ignore-space-change --ignore-whitespace contrib/java21.patch sbt clean stage createDistribution ``` + +## Consideration + +Atom performs well under Oracle GraalVM 21. When using this version, consider the terms of the [license](https://www.oracle.com/downloads/licenses/graal-free-license.html) + +If in doubt, use the image `ghcr.io/appthreat/atom` which is equally performant and uses the GraalVM Community Edition. diff --git a/src/main/resources/META-INF/native-image/jni-config.json b/src/main/resources/META-INF/native-image/jni-config.json new file mode 100644 index 0000000..60e0132 --- /dev/null +++ b/src/main/resources/META-INF/native-image/jni-config.json @@ -0,0 +1,28 @@ +[ +{ + "name":"[Lcom.sun.management.internal.DiagnosticCommandArgumentInfo;" +}, +{ + "name":"[Lcom.sun.management.internal.DiagnosticCommandInfo;" +}, +{ + "name":"com.sun.management.internal.DiagnosticCommandArgumentInfo", + "methods":[{"name":"","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":"","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.util.Arrays", + "methods":[{"name":"asList","parameterTypes":["java.lang.Object[]"] }] +}, +{ + "name":"sun.management.VMManagementImpl", + "fields":[{"name":"compTimeMonitoringSupport"}, {"name":"currentThreadCpuTimeSupport"}, {"name":"objectMonitorUsageSupport"}, {"name":"otherThreadCpuTimeSupport"}, {"name":"remoteDiagnosticCommandsSupport"}, {"name":"synchronizerUsageSupport"}, {"name":"threadAllocatedMemorySupport"}, {"name":"threadContentionMonitoringSupport"}] +} +] diff --git a/src/main/resources/META-INF/native-image/predefined-classes-config.json b/src/main/resources/META-INF/native-image/predefined-classes-config.json new file mode 100644 index 0000000..0e79b2c --- /dev/null +++ b/src/main/resources/META-INF/native-image/predefined-classes-config.json @@ -0,0 +1,8 @@ +[ + { + "type":"agent-extracted", + "classes":[ + ] + } +] + diff --git a/src/main/resources/META-INF/native-image/proxy-config.json b/src/main/resources/META-INF/native-image/proxy-config.json new file mode 100644 index 0000000..0d4f101 --- /dev/null +++ b/src/main/resources/META-INF/native-image/proxy-config.json @@ -0,0 +1,2 @@ +[ +] diff --git a/src/main/resources/META-INF/native-image/reflect-config.json b/src/main/resources/META-INF/native-image/reflect-config.json new file mode 100644 index 0000000..82ae3ae --- /dev/null +++ b/src/main/resources/META-INF/native-image/reflect-config.json @@ -0,0 +1,1996 @@ +[ +{ + "name":"[B" +}, +{ + "name":"[C" +}, +{ + "name":"[D" +}, +{ + "name":"[F" +}, +{ + "name":"[I" +}, +{ + "name":"[J" +}, +{ + "name":"[Lbetter.files.File;" +}, +{ + "name":"[Lcom.github.javaparser.ast.CompilationUnit;" +}, +{ + "name":"[Lio.shiftleft.codepropertygraph.generated.nodes.AstNode;" +}, +{ + "name":"[Lio.shiftleft.codepropertygraph.generated.nodes.Call;" +}, +{ + "name":"[Lio.shiftleft.codepropertygraph.generated.nodes.Method;" +}, +{ + "name":"[Lio.shiftleft.semanticcpg.accesspath.AccessElement;" +}, +{ + "name":"[Ljava.lang.Object;" +}, +{ + "name":"[Ljava.lang.String;" +}, +{ + "name":"[Ljava.nio.file.FileVisitOption;" +}, +{ + "name":"[Ljava.nio.file.LinkOption;" +}, +{ + "name":"[Ljava.nio.file.OpenOption;" +}, +{ + "name":"[Ljavax.management.openmbean.CompositeData;" +}, +{ + "name":"[Lorg.apache.logging.log4j.core.Appender;" +}, +{ + "name":"[Lorg.apache.logging.log4j.core.config.AppenderRef;" +}, +{ + "name":"[Lorg.apache.logging.log4j.core.config.LoggerConfig;" +}, +{ + "name":"[Lorg.apache.logging.log4j.core.config.Property;" +}, +{ + "name":"[Lscala.Tuple2;" +}, +{ + "name":"[Lsun.security.pkcs.SignerInfo;" +}, +{ + "name":"[S" +}, +{ + "name":"[Z" +}, +{ + "name":"[[Ljava.lang.Object;" +}, +{ + "name":"[[[Ljava.lang.Object;" +}, +{ + "name":"android.os.Build$VERSION" +}, +{ + "name":"better.files.package$", + "fields":[{"name":"0bitmap$1"}] +}, +{ + "name":"cats.Later", + "fields":[{"name":"0bitmap$1"}] +}, +{ + "name":"com.fasterxml.jackson.core.JsonParser" +}, +{ + "name":"com.fasterxml.jackson.databind.JsonNode" +}, +{ + "name":"com.fasterxml.jackson.databind.ObjectMapper" +}, +{ + "name":"com.fasterxml.jackson.dataformat.yaml.YAMLFactory" +}, +{ + "name":"com.github.javaparser.ast.ArrayCreationLevel", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.CompilationUnit", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.PackageDeclaration", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.body.BodyDeclaration", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.body.CallableDeclaration", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.body.ClassOrInterfaceDeclaration", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.body.ConstructorDeclaration", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.body.FieldDeclaration", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.body.MethodDeclaration", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.body.Parameter", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.body.TypeDeclaration", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.expr.ArrayCreationExpr", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.expr.ArrayInitializerExpr", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.expr.FieldAccessExpr", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.expr.MethodCallExpr", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.expr.NormalAnnotationExpr", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.expr.ObjectCreationExpr", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.expr.VariableDeclarationExpr", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.stmt.BlockStmt", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.stmt.ForStmt", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.stmt.TryStmt", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.type.ArrayType", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.type.ClassOrInterfaceType", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.type.PrimitiveType", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.type.ReferenceType", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.type.Type", + "allDeclaredFields":true +}, +{ + "name":"com.github.javaparser.ast.type.VoidType", + "allDeclaredFields":true +}, +{ + "name":"com.sun.management.GarbageCollectorMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.GcInfo", + "queryAllPublicMethods":true, + "fields":[{"name":"builder"}, {"name":"extAttributes"}], + "methods":[{"name":"getMemoryUsageBeforeGc","parameterTypes":[] }] +}, +{ + "name":"com.sun.management.HotSpotDiagnosticMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.ThreadMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.UnixOperatingSystemMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.VMOption", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.internal.GarbageCollectorExtImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"com.sun.management.internal.HotSpotDiagnostic", + "queryAllPublicConstructors":true +}, +{ + "name":"com.sun.management.internal.HotSpotThreadImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"com.sun.management.internal.OperatingSystemImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"io.appthreat.atom.slicing.package$$anon$19", + "fields":[{"name":"elemEncoders$lzy3"}, {"name":"elemLabels$lzy4"}, {"name":"isSum$lzy3"}] +}, +{ + "name":"io.appthreat.atom.slicing.package$ReachableSlice$$anon$18", + "fields":[{"name":"elemEncoders$lzy4"}, {"name":"elemLabels$lzy3"}, {"name":"isSum$lzy4"}] +}, +{ + "name":"io.appthreat.dataflowengineoss.passes.reachingdef.OptimizedReachingDefTransferFunction", + "fields":[{"name":"loneIdentifiers$lzy1"}] +}, +{ + "name":"io.circe.Decoder$", + "fields":[{"name":"0bitmap$1"}] +}, +{ + "name":"io.circe.Encoder$", + "fields":[{"name":"0bitmap$1"}] +}, +{ + "name":"io.circe.JsonDecimal", + "fields":[{"name":"0bitmap$1"}] +}, +{ + "name":"io.shiftleft.codepropertygraph.generated.edges.Factories$", + "fields":[{"name":"all$lzy1"}, {"name":"allAsJava$lzy1"}] +}, +{ + "name":"io.shiftleft.codepropertygraph.generated.nodes.Factories$", + "fields":[{"name":"all$lzy1"}, {"name":"allAsJava$lzy1"}] +}, +{ + "name":"jakarta.servlet.Servlet" +}, +{ + "name":"java.io" +}, +{ + "name":"java.io.Base64" +}, +{ + "name":"java.io.ByteArrayInputStream", + "queryAllDeclaredConstructors":true +}, +{ + "name":"java.io.ByteArrayOutputStream", + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"java.io.ClassNotFoundException" +}, +{ + "name":"java.io.Closeable", + "queryAllPublicMethods":true +}, +{ + "name":"java.io.DataOutput", + "queryAllPublicMethods":true +}, +{ + "name":"java.io.File", + "queryAllDeclaredConstructors":true +}, +{ + "name":"java.io.Float" +}, +{ + "name":"java.io.Flushable", + "queryAllPublicMethods":true +}, +{ + "name":"java.io.IOException", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.io.InputStream" +}, +{ + "name":"java.io.Map" +}, +{ + "name":"java.io.Object" +}, +{ + "name":"java.io.ObjectInputStream", + "queryAllDeclaredMethods":true, + "queryAllPublicMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"java.io.ObjectOutput", + "queryAllPublicMethods":true +}, +{ + "name":"java.io.ObjectOutputStream", + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"java.io.ObjectStreamConstants", + "queryAllPublicMethods":true +}, +{ + "name":"java.io.OutputStream", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.io.Reader" +}, +{ + "name":"java.io.Scanner" +}, +{ + "name":"java.io.Serializable", + "allDeclaredFields":true, + "allDeclaredClasses":true, + "queryAllDeclaredMethods":true, + "queryAllPublicMethods":true +}, +{ + "name":"java.io.String" +}, +{ + "name":"java.io.StringBuffer" +}, +{ + "name":"java.io.StringReader", + "queryAllDeclaredConstructors":true +}, +{ + "name":"java.io.Writer" +}, +{ + "name":"java.io.balanceResultMap" +}, +{ + "name":"java.io.baos" +}, +{ + "name":"java.io.currentString" +}, +{ + "name":"java.io.dBuilder" +}, +{ + "name":"java.io.dbFactory" +}, +{ + "name":"java.io.dbpath" +}, +{ + "name":"java.io.decodedJWT" +}, +{ + "name":"java.io.doc" +}, +{ + "name":"java.io.e" +}, +{ + "name":"java.io.fromResultMap" +}, +{ + "name":"java.io.jdbcTemplate" +}, +{ + "name":"java.io.logger" +}, +{ + "name":"java.io.model" +}, +{ + "name":"java.io.node" +}, +{ + "name":"java.io.nodeName" +}, +{ + "name":"java.io.ois" +}, +{ + "name":"java.io.oos" +}, +{ + "name":"java.io.remoteUrl" +}, +{ + "name":"java.io.result" +}, +{ + "name":"java.io.resultMap" +}, +{ + "name":"java.io.sanitizedValue" +}, +{ + "name":"java.io.session" +}, +{ + "name":"java.io.toAccountResultMap" +}, +{ + "name":"java.io.usernameFromJWT" +}, +{ + "name":"java.lang" +}, +{ + "name":"java.lang.AbstractStringBuilder", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.lang.Appendable", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.AutoCloseable", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.Boolean", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Byte", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.CharSequence", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.Character", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Class" +}, +{ + "name":"java.lang.ClassNotFoundException", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.lang.ClassValue" +}, +{ + "name":"java.lang.Comparable", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.Deprecated", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.Double", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Exception", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.lang.Float", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.IllegalArgumentException" +}, +{ + "name":"java.lang.Integer", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Long", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Module" +}, +{ + "name":"java.lang.Object", + "allDeclaredFields":true, + "allDeclaredClasses":true, + "queryAllDeclaredMethods":true +}, +{ + "name":"java.lang.ReflectiveOperationException", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.lang.Short", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.StackTraceElement", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.String", + "queryAllDeclaredMethods":true, + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.StringBuffer", + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"java.lang.StringBuilder" +}, +{ + "name":"java.lang.Thread", + "fields":[{"name":"threadLocalRandomProbe"}] +}, +{ + "name":"java.lang.Throwable", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.lang.Void", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.annotation.Annotation", + "methods":[{"name":"annotationType","parameterTypes":[] }] +}, +{ + "name":"java.lang.balanceResultMap" +}, +{ + "name":"java.lang.baos" +}, +{ + "name":"java.lang.chain" +}, +{ + "name":"java.lang.constant.Constable", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.constant.ConstantDesc", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.currentString" +}, +{ + "name":"java.lang.dBuilder" +}, +{ + "name":"java.lang.dbFactory" +}, +{ + "name":"java.lang.dbpath" +}, +{ + "name":"java.lang.decodedJWT" +}, +{ + "name":"java.lang.doc" +}, +{ + "name":"java.lang.e" +}, +{ + "name":"java.lang.fromResultMap" +}, +{ + "name":"java.lang.invoke.CallSite" +}, +{ + "name":"java.lang.invoke.VarHandle", + "methods":[{"name":"releaseFence","parameterTypes":[] }] +}, +{ + "name":"java.lang.jdbcTemplate" +}, +{ + "name":"java.lang.logger" +}, +{ + "name":"java.lang.management.BufferPoolMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.ClassLoadingMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.CompilationMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.LockInfo", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.ManagementPermission", + "methods":[{"name":"","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.management.MemoryMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.MemoryManagerMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.MemoryPoolMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.MemoryUsage", + "queryAllPublicMethods":true, + "methods":[{"name":"from","parameterTypes":["javax.management.openmbean.CompositeData"] }] +}, +{ + "name":"java.lang.management.MonitorInfo", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.PlatformLoggingMXBean", + "queryAllPublicMethods":true, + "methods":[{"name":"getLoggerLevel","parameterTypes":["java.lang.String"] }, {"name":"getLoggerNames","parameterTypes":[] }, {"name":"getParentLoggerName","parameterTypes":["java.lang.String"] }, {"name":"setLoggerLevel","parameterTypes":["java.lang.String","java.lang.String"] }] +}, +{ + "name":"java.lang.management.RuntimeMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.ThreadInfo", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.model" +}, +{ + "name":"java.lang.node" +}, +{ + "name":"java.lang.nodeName" +}, +{ + "name":"java.lang.ois" +}, +{ + "name":"java.lang.oos" +}, +{ + "name":"java.lang.remoteUrl" +}, +{ + "name":"java.lang.req" +}, +{ + "name":"java.lang.res" +}, +{ + "name":"java.lang.result" +}, +{ + "name":"java.lang.resultMap" +}, +{ + "name":"java.lang.sanitizedValue" +}, +{ + "name":"java.lang.session" +}, +{ + "name":"java.lang.toAccountResultMap" +}, +{ + "name":"java.lang.usernameFromJWT" +}, +{ + "name":"java.math.BigDecimal" +}, +{ + "name":"java.math.BigInteger" +}, +{ + "name":"java.net.URL", + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"java.nio.CharBuffer" +}, +{ + "name":"java.nio.charset.Charset" +}, +{ + "name":"java.security.MessageDigestSpi" +}, +{ + "name":"java.security.interfaces.RSAPrivateKey" +}, +{ + "name":"java.security.interfaces.RSAPublicKey" +}, +{ + "name":"java.sql.Time" +}, +{ + "name":"java.util" +}, +{ + "name":"java.util.Base64", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.util.Base64$Decoder", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.util.Base64$Encoder", + "queryAllDeclaredMethods":true +}, +{ + "name":"java.util.ClassNotFoundException" +}, +{ + "name":"java.util.Date" +}, +{ + "name":"java.util.Float" +}, +{ + "name":"java.util.Iterator", + "queryAllPublicMethods":true +}, +{ + "name":"java.util.List", + "methods":[{"name":"copyOf","parameterTypes":["java.util.Collection"] }] +}, +{ + "name":"java.util.Map", + "queryAllPublicMethods":true +}, +{ + "name":"java.util.Object" +}, +{ + "name":"java.util.Optional", + "methods":[{"name":"isEmpty","parameterTypes":[] }] +}, +{ + "name":"java.util.PropertyPermission", + "methods":[{"name":"","parameterTypes":["java.lang.String","java.lang.String"] }] +}, +{ + "name":"java.util.Scanner", + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true +}, +{ + "name":"java.util.ServiceLoader", + "methods":[{"name":"load","parameterTypes":["java.lang.Class","java.lang.ClassLoader"] }] +}, +{ + "name":"java.util.String" +}, +{ + "name":"java.util.StringBuffer" +}, +{ + "name":"java.util.balanceResultMap" +}, +{ + "name":"java.util.baos" +}, +{ + "name":"java.util.concurrent.ForkJoinTask", + "fields":[{"name":"aux"}, {"name":"status"}] +}, +{ + "name":"java.util.concurrent.atomic.AtomicBoolean", + "fields":[{"name":"value"}] +}, +{ + "name":"java.util.concurrent.atomic.AtomicReference", + "fields":[{"name":"value"}] +}, +{ + "name":"java.util.concurrent.atomic.Striped64", + "fields":[{"name":"base"}, {"name":"cellsBusy"}] +}, +{ + "name":"java.util.currentString" +}, +{ + "name":"java.util.dBuilder" +}, +{ + "name":"java.util.dbFactory" +}, +{ + "name":"java.util.dbpath" +}, +{ + "name":"java.util.decodedJWT" +}, +{ + "name":"java.util.doc" +}, +{ + "name":"java.util.e" +}, +{ + "name":"java.util.fromResultMap" +}, +{ + "name":"java.util.function.Function" +}, +{ + "name":"java.util.jdbcTemplate" +}, +{ + "name":"java.util.logger" +}, +{ + "name":"java.util.logging.LogManager", + "methods":[{"name":"getLoggingMXBean","parameterTypes":[] }] +}, +{ + "name":"java.util.logging.LoggingMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.util.model" +}, +{ + "name":"java.util.node" +}, +{ + "name":"java.util.nodeName" +}, +{ + "name":"java.util.ois" +}, +{ + "name":"java.util.oos" +}, +{ + "name":"java.util.remoteUrl" +}, +{ + "name":"java.util.result" +}, +{ + "name":"java.util.resultMap" +}, +{ + "name":"java.util.sanitizedValue" +}, +{ + "name":"java.util.session" +}, +{ + "name":"java.util.toAccountResultMap" +}, +{ + "name":"java.util.usernameFromJWT" +}, +{ + "name":"java.util.zip.DeflaterInputStream" +}, +{ + "name":"javax.management.MBeanOperationInfo", + "queryAllPublicMethods":true, + "methods":[{"name":"getSignature","parameterTypes":[] }] +}, +{ + "name":"javax.management.MBeanServerBuilder", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"javax.management.NotificationBroadcasterSupport", + "methods":[{"name":"getNotificationInfo","parameterTypes":[] }] +}, +{ + "name":"javax.management.ObjectName" +}, +{ + "name":"javax.management.StandardEmitterMBean", + "methods":[{"name":"cacheMBeanInfo","parameterTypes":["javax.management.MBeanInfo"] }, {"name":"getCachedMBeanInfo","parameterTypes":[] }, {"name":"getMBeanInfo","parameterTypes":[] }] +}, +{ + "name":"javax.management.openmbean.CompositeData" +}, +{ + "name":"javax.management.openmbean.OpenMBeanOperationInfoSupport" +}, +{ + "name":"javax.management.openmbean.TabularData" +}, +{ + "name":"javax.security.auth.x500.X500Principal", + "fields":[{"name":"thisX500Name"}], + "methods":[{"name":"","parameterTypes":["sun.security.x509.X500Name"] }] +}, +{ + "name":"javax.servlet.Servlet" +}, +{ + "name":"jdk.internal.misc.Unsafe" +}, +{ + "name":"jdk.management.jfr.ConfigurationInfo", + "queryAllPublicMethods":true +}, +{ + "name":"jdk.management.jfr.EventTypeInfo", + "queryAllPublicMethods":true +}, +{ + "name":"jdk.management.jfr.FlightRecorderMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"jdk.management.jfr.FlightRecorderMXBeanImpl", + "queryAllPublicConstructors":true, + "methods":[{"name":"cacheMBeanInfo","parameterTypes":["javax.management.MBeanInfo"] }, {"name":"getCachedMBeanInfo","parameterTypes":[] }, {"name":"getMBeanInfo","parameterTypes":[] }, {"name":"getNotificationInfo","parameterTypes":[] }] +}, +{ + "name":"jdk.management.jfr.RecordingInfo", + "queryAllPublicMethods":true +}, +{ + "name":"jdk.management.jfr.SettingDescriptorInfo", + "queryAllPublicMethods":true +}, +{ + "name":"org.apache.logging.log4j.core.appender.AbstractAppender$Builder", + "allDeclaredFields":true +}, +{ + "name":"org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender$Builder", + "allDeclaredFields":true +}, +{ + "name":"org.apache.logging.log4j.core.appender.AppenderSet" +}, +{ + "name":"org.apache.logging.log4j.core.appender.AsyncAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.ConsoleAppender", + "queryAllDeclaredMethods":true, + "methods":[{"name":"newBuilder","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.appender.ConsoleAppender$Builder", + "allDeclaredFields":true +}, +{ + "name":"org.apache.logging.log4j.core.appender.CountingNoOpAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.FailoverAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.FailoversPlugin" +}, +{ + "name":"org.apache.logging.log4j.core.appender.FileAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.HttpAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.MemoryMappedFileAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.NullAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.OutputStreamAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.RandomAccessFileAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.RollingFileAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.ScriptAppenderSelector" +}, +{ + "name":"org.apache.logging.log4j.core.appender.SmtpAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.SocketAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.SyslogAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.WriterAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.db.ColumnMapping" +}, +{ + "name":"org.apache.logging.log4j.core.appender.db.jdbc.ColumnConfig" +}, +{ + "name":"org.apache.logging.log4j.core.appender.db.jdbc.DataSourceConnectionSource" +}, +{ + "name":"org.apache.logging.log4j.core.appender.db.jdbc.DriverManagerConnectionSource" +}, +{ + "name":"org.apache.logging.log4j.core.appender.db.jdbc.FactoryMethodConnectionSource" +}, +{ + "name":"org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.mom.JmsAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.mom.jeromq.JeroMqAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.mom.kafka.KafkaAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.nosql.NoSqlAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rewrite.LoggerNameLevelRewritePolicy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rewrite.MapRewritePolicy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rewrite.PropertiesRewritePolicy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rewrite.RewriteAppender" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.CompositeTriggeringPolicy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.CronTriggeringPolicy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.DirectWriteRolloverStrategy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.NoOpTriggeringPolicy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.OnStartupTriggeringPolicy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.DeleteAction" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.IfAccumulatedFileCount" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.IfAccumulatedFileSize" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.IfAll" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.IfAny" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.IfFileName" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.IfLastModified" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.IfNot" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.PathSortByModificationTime" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.PosixViewAttributeAction" +}, +{ + "name":"org.apache.logging.log4j.core.appender.rolling.action.ScriptCondition" +}, +{ + "name":"org.apache.logging.log4j.core.appender.routing.IdlePurgePolicy" +}, +{ + "name":"org.apache.logging.log4j.core.appender.routing.Route" +}, +{ + "name":"org.apache.logging.log4j.core.appender.routing.Routes" +}, +{ + "name":"org.apache.logging.log4j.core.appender.routing.RoutingAppender" +}, +{ + "name":"org.apache.logging.log4j.core.async.ArrayBlockingQueueFactory" +}, +{ + "name":"org.apache.logging.log4j.core.async.AsyncLoggerConfig" +}, +{ + "name":"org.apache.logging.log4j.core.async.AsyncLoggerConfig$RootLogger" +}, +{ + "name":"org.apache.logging.log4j.core.async.AsyncWaitStrategyFactoryConfig" +}, +{ + "name":"org.apache.logging.log4j.core.async.DisruptorBlockingQueueFactory" +}, +{ + "name":"org.apache.logging.log4j.core.async.JCToolsBlockingQueueFactory" +}, +{ + "name":"org.apache.logging.log4j.core.async.LinkedTransferQueueFactory" +}, +{ + "name":"org.apache.logging.log4j.core.config.AppenderControlArraySet", + "fields":[{"name":"appenderArray"}] +}, +{ + "name":"org.apache.logging.log4j.core.config.AppenderRef", + "queryAllDeclaredMethods":true, + "methods":[{"name":"createAppenderRef","parameterTypes":["java.lang.String","org.apache.logging.log4j.Level","org.apache.logging.log4j.core.Filter"] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.AppendersPlugin", + "queryAllDeclaredMethods":true, + "methods":[{"name":"createAppenders","parameterTypes":["org.apache.logging.log4j.core.Appender[]"] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.CustomLevelConfig" +}, +{ + "name":"org.apache.logging.log4j.core.config.CustomLevels" +}, +{ + "name":"org.apache.logging.log4j.core.config.DefaultAdvertiser" +}, +{ + "name":"org.apache.logging.log4j.core.config.HttpWatcher" +}, +{ + "name":"org.apache.logging.log4j.core.config.LoggerConfig", + "queryAllDeclaredMethods":true, + "methods":[{"name":"newBuilder","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.LoggerConfig$Builder", + "allDeclaredFields":true +}, +{ + "name":"org.apache.logging.log4j.core.config.LoggerConfig$RootLogger", + "queryAllDeclaredMethods":true, + "methods":[{"name":"newRootBuilder","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.LoggerConfig$RootLogger$Builder", + "allDeclaredFields":true +}, +{ + "name":"org.apache.logging.log4j.core.config.LoggersPlugin", + "queryAllDeclaredMethods":true, + "methods":[{"name":"createLoggers","parameterTypes":["org.apache.logging.log4j.core.config.LoggerConfig[]"] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.PropertiesPlugin" +}, +{ + "name":"org.apache.logging.log4j.core.config.Property" +}, +{ + "name":"org.apache.logging.log4j.core.config.ScriptsPlugin" +}, +{ + "name":"org.apache.logging.log4j.core.config.arbiters.ClassArbiter" +}, +{ + "name":"org.apache.logging.log4j.core.config.arbiters.DefaultArbiter" +}, +{ + "name":"org.apache.logging.log4j.core.config.arbiters.ScriptArbiter" +}, +{ + "name":"org.apache.logging.log4j.core.config.arbiters.SelectArbiter" +}, +{ + "name":"org.apache.logging.log4j.core.config.arbiters.SystemPropertyArbiter" +}, +{ + "name":"org.apache.logging.log4j.core.config.json.JsonConfigurationFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$BigDecimalConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$BigIntegerConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$BooleanConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$ByteArrayConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$ByteConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$CharArrayConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$CharacterConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$CharsetConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$ClassConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$CronExpressionConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$DoubleConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$DurationConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$FileConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$FloatConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$InetAddressConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$IntegerConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$LevelConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$LongConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$PathConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$PatternConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$SecurityProviderConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$ShortConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$StringConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$UriConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$UrlConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.convert.TypeConverters$UuidConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.validation.validators.RequiredValidator", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.visitors.PluginAttributeVisitor", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.visitors.PluginBuilderAttributeVisitor", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.visitors.PluginConfigurationVisitor", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.plugins.visitors.PluginElementVisitor", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.properties.PropertiesConfigurationFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.config.yaml.YamlConfigurationFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.filter.AbstractFilterable$Builder", + "allDeclaredFields":true +}, +{ + "name":"org.apache.logging.log4j.core.filter.BurstFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.CompositeFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.DenyAllFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.DynamicThresholdFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.LevelMatchFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.LevelRangeFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.MapFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.MarkerFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.MutableThreadContextMapFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.NoMarkerFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.RegexFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.ScriptFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.StringMatchFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.StructuredDataFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.ThreadContextMapFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.ThresholdFilter" +}, +{ + "name":"org.apache.logging.log4j.core.filter.TimeFilter" +}, +{ + "name":"org.apache.logging.log4j.core.impl.Log4jContextFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.jmx.AppenderAdmin", + "queryAllPublicConstructors":true +}, +{ + "name":"org.apache.logging.log4j.core.jmx.AppenderAdminMBean", + "queryAllPublicMethods":true +}, +{ + "name":"org.apache.logging.log4j.core.jmx.ContextSelectorAdmin", + "queryAllPublicConstructors":true +}, +{ + "name":"org.apache.logging.log4j.core.jmx.ContextSelectorAdminMBean", + "queryAllPublicMethods":true +}, +{ + "name":"org.apache.logging.log4j.core.jmx.LoggerConfigAdmin", + "queryAllPublicConstructors":true +}, +{ + "name":"org.apache.logging.log4j.core.jmx.LoggerConfigAdminMBean", + "queryAllPublicMethods":true +}, +{ + "name":"org.apache.logging.log4j.core.jmx.LoggerContextAdmin", + "queryAllPublicConstructors":true +}, +{ + "name":"org.apache.logging.log4j.core.jmx.LoggerContextAdminMBean", + "queryAllPublicMethods":true +}, +{ + "name":"org.apache.logging.log4j.core.jmx.StatusLoggerAdmin", + "queryAllPublicConstructors":true +}, +{ + "name":"org.apache.logging.log4j.core.jmx.StatusLoggerAdminMBean", + "queryAllPublicMethods":true +}, +{ + "name":"org.apache.logging.log4j.core.layout.CsvLogEventLayout" +}, +{ + "name":"org.apache.logging.log4j.core.layout.CsvParameterLayout" +}, +{ + "name":"org.apache.logging.log4j.core.layout.GelfLayout" +}, +{ + "name":"org.apache.logging.log4j.core.layout.HtmlLayout" +}, +{ + "name":"org.apache.logging.log4j.core.layout.JsonLayout" +}, +{ + "name":"org.apache.logging.log4j.core.layout.LevelPatternSelector" +}, +{ + "name":"org.apache.logging.log4j.core.layout.LoggerFields" +}, +{ + "name":"org.apache.logging.log4j.core.layout.MarkerPatternSelector" +}, +{ + "name":"org.apache.logging.log4j.core.layout.MessageLayout" +}, +{ + "name":"org.apache.logging.log4j.core.layout.PatternLayout", + "queryAllDeclaredMethods":true, + "methods":[{"name":"newBuilder","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.layout.PatternLayout$Builder", + "allDeclaredFields":true +}, +{ + "name":"org.apache.logging.log4j.core.layout.PatternMatch" +}, +{ + "name":"org.apache.logging.log4j.core.layout.Rfc5424Layout" +}, +{ + "name":"org.apache.logging.log4j.core.layout.ScriptPatternSelector" +}, +{ + "name":"org.apache.logging.log4j.core.layout.SerializedLayout" +}, +{ + "name":"org.apache.logging.log4j.core.layout.SyslogLayout" +}, +{ + "name":"org.apache.logging.log4j.core.layout.XmlLayout" +}, +{ + "name":"org.apache.logging.log4j.core.layout.YamlLayout" +}, +{ + "name":"org.apache.logging.log4j.core.lookup.ContextMapLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.DateLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.EnvironmentLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.EventLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.JavaLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.JmxRuntimeInputArgumentsLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.JndiLookup" +}, +{ + "name":"org.apache.logging.log4j.core.lookup.Log4jLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.LowerLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.MainMapLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.MapLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.MarkerLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.ResourceBundleLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.StructuredDataLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.SystemPropertiesLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.lookup.UpperLookup", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.core.net.MulticastDnsAdvertiser" +}, +{ + "name":"org.apache.logging.log4j.core.net.SocketAddress" +}, +{ + "name":"org.apache.logging.log4j.core.net.SocketOptions" +}, +{ + "name":"org.apache.logging.log4j.core.net.SocketPerformancePreferences" +}, +{ + "name":"org.apache.logging.log4j.core.net.ssl.KeyStoreConfiguration" +}, +{ + "name":"org.apache.logging.log4j.core.net.ssl.SslConfiguration" +}, +{ + "name":"org.apache.logging.log4j.core.net.ssl.TrustStoreConfiguration" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter$Black" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter$Blue" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter$Cyan" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter$Green" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter$Magenta" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter$Red" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter$White" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.AbstractStyleNameConverter$Yellow" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.ClassNamePatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.DatePatternConverter", + "queryAllDeclaredMethods":true, + "methods":[{"name":"newInstance","parameterTypes":["java.lang.String[]"] }] +}, +{ + "name":"org.apache.logging.log4j.core.pattern.EncodingPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.EndOfBatchPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.EqualsIgnoreCaseReplacementConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.EqualsReplacementConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.FileDatePatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.FileLocationPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.FullLocationPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.HighlightConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.IntegerPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.LevelPatternConverter", + "queryAllDeclaredMethods":true, + "methods":[{"name":"newInstance","parameterTypes":["java.lang.String[]"] }] +}, +{ + "name":"org.apache.logging.log4j.core.pattern.LineLocationPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.LineSeparatorPatternConverter", + "queryAllDeclaredMethods":true, + "methods":[{"name":"newInstance","parameterTypes":["java.lang.String[]"] }] +}, +{ + "name":"org.apache.logging.log4j.core.pattern.LoggerFqcnPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.LoggerPatternConverter", + "queryAllDeclaredMethods":true, + "methods":[{"name":"newInstance","parameterTypes":["java.lang.String[]"] }] +}, +{ + "name":"org.apache.logging.log4j.core.pattern.MapPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.MarkerPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.MarkerSimpleNamePatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.MaxLengthConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.MdcPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.MessagePatternConverter", + "queryAllDeclaredMethods":true, + "methods":[{"name":"newInstance","parameterTypes":["org.apache.logging.log4j.core.config.Configuration","java.lang.String[]"] }] +}, +{ + "name":"org.apache.logging.log4j.core.pattern.MethodLocationPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.NanoTimePatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.NdcPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.ProcessIdPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.RegexReplacement" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.RegexReplacementConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.RelativeTimePatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.RepeatPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.RootThrowablePatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.SequenceNumberPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.StyleConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.ThreadIdPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.ThreadNamePatternConverter", + "queryAllDeclaredMethods":true, + "methods":[{"name":"newInstance","parameterTypes":["java.lang.String[]"] }] +}, +{ + "name":"org.apache.logging.log4j.core.pattern.ThreadPriorityPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.ThrowablePatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.UuidPatternConverter" +}, +{ + "name":"org.apache.logging.log4j.core.pattern.VariablesNotEmptyReplacementConverter" +}, +{ + "name":"org.apache.logging.log4j.core.script.Script" +}, +{ + "name":"org.apache.logging.log4j.core.script.ScriptFile" +}, +{ + "name":"org.apache.logging.log4j.core.script.ScriptRef" +}, +{ + "name":"org.apache.logging.log4j.core.util.KeyValuePair" +}, +{ + "name":"org.apache.logging.log4j.message.DefaultFlowMessageFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.message.ReusableMessageFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.logging.log4j.util.internal.DefaultObjectInputFilter", + "queryAllPublicMethods":true +}, +{ + "name":"org.h2.mvstore.MVStore$TxCounter", + "fields":[{"name":"counter"}] +}, +{ + "name":"org.h2.mvstore.Page", + "fields":[{"name":"pos"}] +}, +{ + "name":"org.h2.store.fs.FilePathAsync" +}, +{ + "name":"org.h2.store.fs.FilePathDisk", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.h2.store.fs.FilePathMem" +}, +{ + "name":"org.h2.store.fs.FilePathMemLZF" +}, +{ + "name":"org.h2.store.fs.FilePathNio", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.h2.store.fs.FilePathNioMapped" +}, +{ + "name":"org.h2.store.fs.FilePathNioMem" +}, +{ + "name":"org.h2.store.fs.FilePathNioMemLZF" +}, +{ + "name":"org.h2.store.fs.FilePathRetryOnInterrupt" +}, +{ + "name":"org.h2.store.fs.FilePathSplit" +}, +{ + "name":"org.h2.store.fs.FilePathZip" +}, +{ + "name":"org.osgi.framework.FrameworkUtil", + "methods":[{"name":"getBundle","parameterTypes":["java.lang.Class"] }] +}, +{ + "name":"scala.collection.parallel.ForkJoinTasks$", + "fields":[{"name":"0bitmap$1"}] +}, +{ + "name":"scala.collection.parallel.immutable.ParVector", + "fields":[{"name":"0bitmap$1"}] +}, +{ + "name":"scopt.OptionParser", + "fields":[{"name":"0bitmap$1"}] +}, +{ + "name":"sun.management.ClassLoadingImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.CompilationImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.ManagementFactoryHelper$1", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.ManagementFactoryHelper$PlatformLoggingImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.MemoryImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.MemoryManagerImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.MemoryPoolImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.RuntimeImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.misc.Unsafe", + "fields":[{"name":"theUnsafe"}] +}, +{ + "name":"sun.security.provider.SHA2$SHA256", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA5$SHA384", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.X509Factory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSAKeyFactory$Legacy", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSASignature$SHA256withRSA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSASignature$SHA384withRSA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.util.ObjectIdentifier" +}, +{ + "name":"sun.security.x509.AuthorityInfoAccessExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "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.CRLDistributionPointsExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.CertificateExtensions" +}, +{ + "name":"sun.security.x509.CertificatePoliciesExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "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.SubjectAlternativeNameExtension", + "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/src/main/resources/META-INF/native-image/resource-config.json b/src/main/resources/META-INF/native-image/resource-config.json new file mode 100644 index 0000000..0ff68e1 --- /dev/null +++ b/src/main/resources/META-INF/native-image/resource-config.json @@ -0,0 +1,43 @@ +{ + "resources":{ + "includes":[{ + "pattern":"\\QMETA-INF/log4j-provider.properties\\E" + }, { + "pattern":"\\QMETA-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat\\E" + }, { + "pattern":"\\QMETA-INF/services/java.lang.System$LoggerFinder\\E" + }, { + "pattern":"\\QMETA-INF/services/java.net.spi.InetAddressResolverProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/java.time.zone.ZoneRulesProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/javax.xml.parsers.DocumentBuilderFactory\\E" + }, { + "pattern":"\\QMETA-INF/services/org.apache.logging.log4j.core.util.ContextDataProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/org.apache.logging.log4j.core.util.WatchEventService\\E" + }, { + "pattern":"\\QMETA-INF/services/org.apache.logging.log4j.spi.Provider\\E" + }, { + "pattern":"\\QMETA-INF/services/org.apache.logging.log4j.util.PropertySource\\E" + }, { + "pattern":"\\QMETA-INF/services/org.osgi.framework.connect.FrameworkUtilHelper\\E" + }, { + "pattern":"\\QMETA-INF/services/org.slf4j.spi.SLF4JServiceProvider\\E" + }, { + "pattern":"\\Qlibrary.properties\\E" + }, { + "pattern":"\\Qlog4j2.StatusLogger.properties\\E" + }, { + "pattern":"\\Qlog4j2.component.properties\\E" + }, { + "pattern":"\\Qlog4j2.system.properties\\E" + }, { + "pattern":"\\Qtags-vocab.txt\\E" + }, { + "pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt72b/nfkc.nrm\\E" + }, { + "pattern":"jdk.jfr:\\Qjdk/jfr/internal/query/view.ini\\E" + }]}, + "bundles":[] +} diff --git a/src/main/resources/META-INF/native-image/serialization-config.json b/src/main/resources/META-INF/native-image/serialization-config.json new file mode 100644 index 0000000..f3d7e06 --- /dev/null +++ b/src/main/resources/META-INF/native-image/serialization-config.json @@ -0,0 +1,8 @@ +{ + "types":[ + ], + "lambdaCapturingTypes":[ + ], + "proxies":[ + ] +}