diff --git a/applications/mp/pom.xml b/applications/mp/pom.xml index bdb007532a7..e7dc9211c29 100644 --- a/applications/mp/pom.xml +++ b/applications/mp/pom.xml @@ -83,14 +83,22 @@ - io.helidon.build-tools - helidon-maven-plugin + org.graalvm.buildtools + native-maven-plugin - native-image + resource-config + + generateResourceConfig + + package + + + build-native-image - native-image + compile + package diff --git a/applications/pom.xml b/applications/pom.xml index b0bb0048322..578d2b778a8 100644 --- a/applications/pom.xml +++ b/applications/pom.xml @@ -50,6 +50,7 @@ 3.0.0 3.0.0 3.0.2 + 0.9.16 1.5.0.Final 0.5.1 2.7 @@ -170,6 +171,39 @@ io.grpc:protoc-gen-grpc-java:${version.lib.grpc}:exe:${os.detected.classifier} + + org.graalvm.buildtools + native-maven-plugin + ${version.plugin.nativeimage} + + + resource-config + + + true + + + + build-native-image + + + true + + ${project.build.outputDirectory} + ${project.build.finalName} + false + + false + + + + --add-exports=org.graalvm.nativeimage.builder/com.oracle.svm.core.configure=ALL-UNNAMED + + + + + diff --git a/applications/se/pom.xml b/applications/se/pom.xml index a6443226df5..9c4f2f0de9b 100644 --- a/applications/se/pom.xml +++ b/applications/se/pom.xml @@ -36,14 +36,22 @@ - io.helidon.build-tools - helidon-maven-plugin + org.graalvm.buildtools + native-maven-plugin - native-image + resource-config + + generateResourceConfig + + package + + + build-native-image - native-image + compile + package diff --git a/archetypes/helidon/src/main/archetype/common/files/Dockerfile.native.mustache b/archetypes/helidon/src/main/archetype/common/files/Dockerfile.native.mustache index 4846986fd2c..cf81ff28571 100644 --- a/archetypes/helidon/src/main/archetype/common/files/Dockerfile.native.mustache +++ b/archetypes/helidon/src/main/archetype/common/files/Dockerfile.native.mustache @@ -1,6 +1,6 @@ # 1st stage, build the app -FROM ghcr.io/graalvm/graalvm-ce:java17-21.3.0 as build +FROM ghcr.io/graalvm/graalvm-ce:ol9-java17-22.3.0 as build # Install native-image RUN gu install native-image diff --git a/tests/integration/native-image/mp-2/src/main/resources/META-INF/native-image/tests/mp-2/native-image.properties b/common/common/src/main/resources/META-INF/native-image/io.helidon.common/helidon-common/native-image.properties similarity index 73% rename from tests/integration/native-image/mp-2/src/main/resources/META-INF/native-image/tests/mp-2/native-image.properties rename to common/common/src/main/resources/META-INF/native-image/io.helidon.common/helidon-common/native-image.properties index 7abbaa30149..059f9251bf4 100644 --- a/tests/integration/native-image/mp-2/src/main/resources/META-INF/native-image/tests/mp-2/native-image.properties +++ b/common/common/src/main/resources/META-INF/native-image/io.helidon.common/helidon-common/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2020, 2022 Oracle and/or its affiliates. +# Copyright (c) 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,7 +14,5 @@ # limitations under the License. # -# -# Graal native image supports additional configuration from this property file. -# -Args=-H:+RemoveSaturatedTypeFlows +# all Helidon classes should be designed for native image, exceptions configured in specific modules +Args=--initialize-at-build-time=io.helidon diff --git a/common/common/src/main/resources/META-INF/native-image/io.helidon/helidon-common/reflect-config.json b/common/common/src/main/resources/META-INF/native-image/io.helidon.common/helidon-common/reflect-config.json similarity index 100% rename from common/common/src/main/resources/META-INF/native-image/io.helidon/helidon-common/reflect-config.json rename to common/common/src/main/resources/META-INF/native-image/io.helidon.common/helidon-common/reflect-config.json diff --git a/common/common/src/main/resources/META-INF/native-image/io.helidon/helidon-common/resource-config.json b/common/common/src/main/resources/META-INF/native-image/io.helidon.common/helidon-common/resource-config.json similarity index 100% rename from common/common/src/main/resources/META-INF/native-image/io.helidon/helidon-common/resource-config.json rename to common/common/src/main/resources/META-INF/native-image/io.helidon.common/helidon-common/resource-config.json diff --git a/config/yaml/src/main/resources/META-INF/native-image/io.helidon.config/helidon-config-yaml/native-image.properties b/config/yaml/src/main/resources/META-INF/native-image/io.helidon.config/helidon-config-yaml/native-image.properties index 4a4ca04f076..30aecd85516 100644 --- a/config/yaml/src/main/resources/META-INF/native-image/io.helidon.config/helidon-config-yaml/native-image.properties +++ b/config/yaml/src/main/resources/META-INF/native-image/io.helidon.config/helidon-config-yaml/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2021 Oracle and/or its affiliates. +# Copyright (c) 2019, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,4 +14,5 @@ # limitations under the License. # -Args=--initialize-at-build-time=io.helidon.config.yaml +Args=--initialize-at-build-time=io.helidon.config.yaml \ + --initialize-at-build-time=org.yaml.snakeyaml diff --git a/dbclient/jdbc/src/main/resources/META-INF/native-image/io.helidon.dbclient/helidon-dbclient-jdbc/native-image.properties b/dbclient/jdbc/src/main/resources/META-INF/native-image/io.helidon.dbclient/helidon-dbclient-jdbc/native-image.properties index 99e8a47f564..edd1cacc1f8 100644 --- a/dbclient/jdbc/src/main/resources/META-INF/native-image/io.helidon.dbclient/helidon-dbclient-jdbc/native-image.properties +++ b/dbclient/jdbc/src/main/resources/META-INF/native-image/io.helidon.dbclient/helidon-dbclient-jdbc/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2020 Oracle and/or its affiliates. +# Copyright (c) 2019, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,4 +15,5 @@ # Args= --initialize-at-build-time=org.slf4j \ + --initialize-at-build-time=com.zaxxer.hikari \ --initialize-at-run-time=com.zaxxer.hikari.metrics.dropwizard.CodaHaleMetricsTracker diff --git a/dependencies/pom.xml b/dependencies/pom.xml index dc892d19213..4c6c71f697b 100644 --- a/dependencies/pom.xml +++ b/dependencies/pom.xml @@ -52,7 +52,7 @@ 1.33.3 2.3.3 3.21.7 - 21.3.0 + 22.3.0 17.4 17.1 2.8.9 @@ -969,11 +969,6 @@ - - org.graalvm.nativeimage - svm - ${version.lib.graalvm} - org.apache.kafka diff --git a/docs/includes/guides/graalnative.adoc b/docs/includes/guides/graalnative.adoc index 8bee202bc37..2d8116fe612 100644 --- a/docs/includes/guides/graalnative.adoc +++ b/docs/includes/guides/graalnative.adoc @@ -42,7 +42,7 @@ set the `GRAALVM_HOME` environment variable to point at your GraalVM installatio [source,bash] ---- # Your path might be different -export GRAALVM_HOME=/usr/local/graalvm-ce-21.3.0/Contents/Home/ +export GRAALVM_HOME=/usr/local/graalvm-ce-22.3.0/Contents/Home/ ---- Then install the optional `native-image` command: diff --git a/etc/dependency-check-suppression.xml b/etc/dependency-check-suppression.xml index 2c985004b81..f170d1eac88 100644 --- a/etc/dependency-check-suppression.xml +++ b/etc/dependency-check-suppression.xml @@ -18,119 +18,119 @@ --> ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21248 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21271 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21277 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21282 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21283 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21291 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21293 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21294 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21296 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21299 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21305 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21340 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21341 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21349 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21360 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21365 ^pkg:maven/org\.graalvm\..*/.*@.*$ CVE-2022-21366 diff --git a/etc/scripts/includes/pipeline-env.sh b/etc/scripts/includes/pipeline-env.sh index baef4650283..038afd255c7 100644 --- a/etc/scripts/includes/pipeline-env.sh +++ b/etc/scripts/includes/pipeline-env.sh @@ -47,7 +47,7 @@ if [ -z "${__PIPELINE_ENV_INCLUDED__}" ]; then . ${WS_DIR}/etc/scripts/includes/error_handlers.sh if [ -z "${GRAALVM_HOME}" ]; then - export GRAALVM_HOME="/tools/graalvm-ce-java17-21.3.0" + export GRAALVM_HOME="/tools/graalvm-ce-java17-22.3.0" fi require_env() { diff --git a/examples/integrations/neo4j/neo4j-mp/Dockerfile.native b/examples/integrations/neo4j/neo4j-mp/Dockerfile.native index b189c0e8369..3eb3e047bba 100644 --- a/examples/integrations/neo4j/neo4j-mp/Dockerfile.native +++ b/examples/integrations/neo4j/neo4j-mp/Dockerfile.native @@ -15,7 +15,7 @@ # # 1st stage, build the app -FROM ghcr.io/graalvm/graalvm-ce:java17-21.3.0 as build +FROM ghcr.io/graalvm/graalvm-ce:ol9-java17-22.3.0 as build # Install native-image RUN gu install native-image diff --git a/examples/integrations/neo4j/neo4j-se/Dockerfile.native b/examples/integrations/neo4j/neo4j-se/Dockerfile.native index 770f0acf859..5efbf0a80c6 100644 --- a/examples/integrations/neo4j/neo4j-se/Dockerfile.native +++ b/examples/integrations/neo4j/neo4j-se/Dockerfile.native @@ -15,7 +15,7 @@ # # 1st stage, build the app -FROM ghcr.io/graalvm/graalvm-ce:java17-21.3.0 as build +FROM ghcr.io/graalvm/graalvm-ce:ol9-java17-22.3.0 as build # Install native-image RUN gu install native-image diff --git a/examples/quickstarts/helidon-quickstart-mp/Dockerfile.native b/examples/quickstarts/helidon-quickstart-mp/Dockerfile.native index 4d44834f29f..8f2eb3890cc 100644 --- a/examples/quickstarts/helidon-quickstart-mp/Dockerfile.native +++ b/examples/quickstarts/helidon-quickstart-mp/Dockerfile.native @@ -15,7 +15,7 @@ # # 1st stage, build the app -FROM ghcr.io/graalvm/graalvm-ce:java17-21.3.0 as build +FROM ghcr.io/graalvm/graalvm-ce:ol9-java17-22.3.0 as build # Install native-image RUN gu install native-image diff --git a/examples/quickstarts/helidon-quickstart-mp/README.md b/examples/quickstarts/helidon-quickstart-mp/README.md index 8305c86335b..4a025bd51e0 100644 --- a/examples/quickstarts/helidon-quickstart-mp/README.md +++ b/examples/quickstarts/helidon-quickstart-mp/README.md @@ -80,7 +80,7 @@ You can build a native executable in 2 different ways: ### Local build Download Graal VM at https://www.graalvm.org/downloads. We recommend -version `21.3.0` or later. +version `22.3.0` or later. ``` # Setup the environment diff --git a/examples/quickstarts/helidon-quickstart-se/Dockerfile.native b/examples/quickstarts/helidon-quickstart-se/Dockerfile.native index e6222cb4294..aab68738ba2 100644 --- a/examples/quickstarts/helidon-quickstart-se/Dockerfile.native +++ b/examples/quickstarts/helidon-quickstart-se/Dockerfile.native @@ -15,7 +15,7 @@ # # 1st stage, build the app -FROM ghcr.io/graalvm/graalvm-ce:java17-21.3.0 as build +FROM ghcr.io/graalvm/graalvm-ce:ol9-java17-22.3.0 as build # Install native-image RUN gu install native-image diff --git a/examples/quickstarts/helidon-quickstart-se/README.md b/examples/quickstarts/helidon-quickstart-se/README.md index 183fb28eced..c3da9e6d54c 100644 --- a/examples/quickstarts/helidon-quickstart-se/README.md +++ b/examples/quickstarts/helidon-quickstart-se/README.md @@ -80,7 +80,7 @@ You can build a native executable in 2 different ways: ### Local build Download Graal VM at https://www.graalvm.org/downloads. We recommend -version `21.3.0` or later. +version `22.3.0` or later. ``` # Setup the environment diff --git a/examples/quickstarts/helidon-standalone-quickstart-mp/Dockerfile.native b/examples/quickstarts/helidon-standalone-quickstart-mp/Dockerfile.native index c61e11abcea..911af806530 100644 --- a/examples/quickstarts/helidon-standalone-quickstart-mp/Dockerfile.native +++ b/examples/quickstarts/helidon-standalone-quickstart-mp/Dockerfile.native @@ -15,7 +15,7 @@ # # 1st stage, build the app -FROM ghcr.io/graalvm/graalvm-ce:java17-21.3.0 as build +FROM ghcr.io/graalvm/graalvm-ce:ol9-java17-22.3.0 as build # Install native-image RUN gu install native-image diff --git a/examples/quickstarts/helidon-standalone-quickstart-se/Dockerfile.native b/examples/quickstarts/helidon-standalone-quickstart-se/Dockerfile.native index 229b28b84d6..78e867aa92a 100644 --- a/examples/quickstarts/helidon-standalone-quickstart-se/Dockerfile.native +++ b/examples/quickstarts/helidon-standalone-quickstart-se/Dockerfile.native @@ -15,7 +15,7 @@ # # 1st stage, build the app -FROM ghcr.io/graalvm/graalvm-ce:java17-21.3.0 as build +FROM ghcr.io/graalvm/graalvm-ce:ol9-java17-22.3.0 as build # Install native-image RUN gu install native-image diff --git a/examples/quickstarts/helidon-standalone-quickstart-se/README.md b/examples/quickstarts/helidon-standalone-quickstart-se/README.md index 05b912e03d5..08887994d89 100644 --- a/examples/quickstarts/helidon-standalone-quickstart-se/README.md +++ b/examples/quickstarts/helidon-standalone-quickstart-se/README.md @@ -81,7 +81,7 @@ You can build a native executable in 2 different ways: ### Local build Download Graal VM at https://www.graalvm.org/downloads. We recommend -version `21.3.0` or later. +version `22.3.0` or later. ``` # Setup the environment diff --git a/grpc/core/src/main/resources/META-INF/native-image/io-helidon-grpc/helidon-grpc-core/native-image.properties b/grpc/core/src/main/resources/META-INF/native-image/io-helidon-grpc/helidon-grpc-core/native-image.properties index b64704ec106..557a30ffa17 100644 --- a/grpc/core/src/main/resources/META-INF/native-image/io-helidon-grpc/helidon-grpc-core/native-image.properties +++ b/grpc/core/src/main/resources/META-INF/native-image/io-helidon-grpc/helidon-grpc-core/native-image.properties @@ -22,5 +22,4 @@ Args=--initialize-at-build-time=com.google \ --initialize-at-run-time=io.grpc.netty.Utils$ByteBufAllocatorPreferDirectHolder \ --initialize-at-run-time=io.grpc.netty.Utils$ByteBufAllocatorPreferHeapHolder \ --initialize-at-run-time=io.helidon.grpc.core.JsonbMarshaller \ - --initialize-at-run-time=io.helidon.grpc.server.SSLContextBuilder \ - --allow-incomplete-classpath + --initialize-at-run-time=io.helidon.grpc.server.SSLContextBuilder diff --git a/integrations/cdi/datasource-hikaricp/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-datasource-hikaricp/native-image.properties b/integrations/cdi/datasource-hikaricp/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-datasource-hikaricp/native-image.properties index ce6dd8f7b41..5901aa4594b 100644 --- a/integrations/cdi/datasource-hikaricp/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-datasource-hikaricp/native-image.properties +++ b/integrations/cdi/datasource-hikaricp/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-datasource-hikaricp/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2020 Oracle and/or its affiliates. +# Copyright (c) 2020, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,4 +14,6 @@ # limitations under the License. # -Args=--initialize-at-run-time=com.zaxxer.hikari.metrics.dropwizard.CodaHaleMetricsTracker +Args=--initialize-at-build-time=com.zaxxer.hikari \ + --initialize-at-build-time=org.slf4j \ + --initialize-at-run-time=com.zaxxer.hikari.metrics.dropwizard.CodaHaleMetricsTracker diff --git a/integrations/cdi/hibernate-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-hibernate/native-image.properties b/integrations/cdi/hibernate-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-hibernate/native-image.properties index f1dab2d9b70..8f9df8f56ce 100644 --- a/integrations/cdi/hibernate-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-hibernate/native-image.properties +++ b/integrations/cdi/hibernate-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-hibernate/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2020 Oracle and/or its affiliates. +# Copyright (c) 2020, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,5 +14,7 @@ # limitations under the License. # -Args=--initialize-at-run-time=org.hibernate.secure.internal.StandardJaccServiceImpl \ - --initialize-at-run-time=org.hibernate.dialect.OracleTypesHelper +Args=--initialize-at-build-time=org.hibernate \ + --initialize-at-build-time=org.antlr \ + --initialize-at-run-time=org.hibernate.secure.internal.StandardJaccServiceImpl \ + --initialize-at-run-time=org.hibernate.dialect diff --git a/integrations/cdi/jpa-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cd/helidon-integrations-cdi-jpa/native-image.properties b/integrations/cdi/jpa-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-jpa/native-image.properties similarity index 92% rename from integrations/cdi/jpa-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cd/helidon-integrations-cdi-jpa/native-image.properties rename to integrations/cdi/jpa-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-jpa/native-image.properties index a90c4e40123..d9eb58f5af5 100644 --- a/integrations/cdi/jpa-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cd/helidon-integrations-cdi-jpa/native-image.properties +++ b/integrations/cdi/jpa-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-jpa/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2020 Oracle and/or its affiliates. +# Copyright (c) 2020, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/integrations/cdi/jpa-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cd/helidon-integrations-cdi-jpa/resource-config.json b/integrations/cdi/jpa-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-jpa/resource-config.json similarity index 100% rename from integrations/cdi/jpa-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cd/helidon-integrations-cdi-jpa/resource-config.json rename to integrations/cdi/jpa-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-jpa/resource-config.json diff --git a/integrations/cdi/jta-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-jta/native-image.properties b/integrations/cdi/jta-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-jta/native-image.properties index c66561f3a6e..9f03a961a9d 100644 --- a/integrations/cdi/jta-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-jta/native-image.properties +++ b/integrations/cdi/jta-cdi/src/main/resources/META-INF/native-image/io.helidon.integrations.cdi/helidon-integrations-cdi-jta/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2020 Oracle and/or its affiliates. +# Copyright (c) 2020, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,4 +21,6 @@ Args=--initialize-at-run-time=com.arjuna.ats.internal.jta.transaction.arjunacore --initialize-at-run-time=com.arjuna.ats.internal.arjuna.coordinator.ReaperWorkerThread \ --initialize-at-run-time=com.arjuna.ats.arjuna.recovery.RecoveryManager \ --initialize-at-run-time=com.arjuna.ats.internal.jta.resources.arjunacore.CommitMarkableResourceRecord \ - -H:IncludeResourceBundles=io.helidon.integrations.jta.cdi.Messages + --initialize-at-run-time=com.arjuna.ats.jdbc.TransactionalDriver \ + -H:IncludeResourceBundles=io.helidon.integrations.jta.cdi.Messages \ + --initialize-at-build-time=com.arjuna diff --git a/integrations/db/h2/pom.xml b/integrations/db/h2/pom.xml index ca380736d79..a761a2ad2a3 100644 --- a/integrations/db/h2/pom.xml +++ b/integrations/db/h2/pom.xml @@ -48,8 +48,8 @@ h2 - org.graalvm.nativeimage - svm + org.graalvm.sdk + graal-sdk provided diff --git a/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/jni-config.json b/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/jni-config.json deleted file mode 100644 index e903501a272..00000000000 --- a/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/jni-config.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - { - "name":"java.net.InetAddress", - "methods":[{"name":"","parameterTypes":[] }] - } -] \ No newline at end of file diff --git a/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/native-image.properties b/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/native-image.properties deleted file mode 100644 index de101a41b82..00000000000 --- a/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/native-image.properties +++ /dev/null @@ -1,39 +0,0 @@ -# -# Copyright (c) 2020, 2021 Oracle and/or its affiliates. -# -# Licensed 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. -# - -Args= --allow-incomplete-classpath \ - --enable-all-security-services \ - --initialize-at-build-time=oracle.net.jdbc.nl.mesg.NLSR_en \ - --initialize-at-build-time=oracle.jdbc.driver.DynamicByteArray \ - --initialize-at-build-time=oracle.sql.ConverterArchive \ - --initialize-at-build-time=oracle.sql.converter.CharacterConverterJDBC \ - --initialize-at-build-time=oracle.sql.converter.CharacterConverter1Byte \ - --initialize-at-run-time=oracle.jdbc.pool.OracleDataSource \ - --initialize-at-run-time=oracle.jdbc.driver.OracleDriver \ - --initialize-at-run-time=oracle.jdbc.driver.OracleTimeoutThreadPerVM \ - --initialize-at-run-time=oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource \ - --initialize-at-run-time=oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaser \ - --initialize-at-run-time=oracle.security.o5logon.O5Logon \ - --initialize-at-run-time=oracle.net.nt.TimeoutInterruptHandler \ - --initialize-at-run-time=oracle.jdbc.driver.LogicalConnection \ - --initialize-at-run-time=oracle.jdbc.driver.NoSupportHAManager \ - --initialize-at-run-time=oracle.net.nt.Clock \ - --initialize-at-run-time=oracle.net.nt.TcpMultiplexer \ - --initialize-at-run-time=oracle.net.nt.TcpMultiplexer \ - --initialize-at-run-time=oracle.net.nt.TcpMultiplexer$LazyHolder \ - --initialize-at-run-time=oracle.jdbc.driver.SQLUtil$XMLFactory \ - --initialize-at-run-time=oracle.jdbc.driver.NamedTypeAccessor$XMLFactory \ - --initialize-at-run-time=oracle.xml.util.UnicodeUtil diff --git a/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/reflect-config.json b/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/reflect-config.json index 4e460f36b8f..d628de76277 100644 --- a/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/reflect-config.json +++ b/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/reflect-config.json @@ -1,82 +1,4 @@ [ - { - "name": "oracle.jdbc.internal.ACProxyable", - "methods": [ - { - "name": "setACProxy", - "parameterTypes": [ - "java.lang.Object" - ] - }, - { - "name": "getACProxy", - "parameterTypes": [] - } - ] - }, - { - "name": "oracle.jdbc.driver.T4CDriverExtension", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "oracle.jdbc.driver.T2CDriverExtension", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "oracle.net.ano.Ano", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "oracle.net.ano.AuthenticationService", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "oracle.net.ano.DataIntegrityService", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "oracle.net.ano.EncryptionService", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, - { - "name": "oracle.net.ano.SupervisorService", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] - }, { "name": "java.sql.Statement[]", "allDeclaredConstructors": true, diff --git a/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/resource-config.json b/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/resource-config.json deleted file mode 100644 index 8ee1aead144..00000000000 --- a/integrations/db/ojdbc/src/main/resources/META-INF/native-image/io.helidon.integrations.db/ojdbc/resource-config.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "resources":[ - {"pattern":"META-INF/services/java.sql.Driver"}, - {"pattern":"oracle/sql/converter_xcharset/.*.glb$"}, - {"pattern":"oracle/jdbc/defaultConnectionProperties.properties"}, - {"pattern":"oracle/jdbc/driver/errorMap.xml"}, - {"pattern":"oracle/jdbc/defaultLoggingConfig.properties"} - ], - "bundles": [ - {"name":"oracle.net.jdbc.nl.mesg.NLSR"}, - {"name":"oracle.net.mesg.Message"} - ] -} - - diff --git a/integrations/db/pgsql/pom.xml b/integrations/db/pgsql/pom.xml index dfe664d7582..dbd3fdcb0d0 100644 --- a/integrations/db/pgsql/pom.xml +++ b/integrations/db/pgsql/pom.xml @@ -41,8 +41,8 @@ provided - org.graalvm.nativeimage - svm + org.graalvm.sdk + graal-sdk provided diff --git a/integrations/graal/mp-native-image-extension/pom.xml b/integrations/graal/mp-native-image-extension/pom.xml index bfbbfdaceae..27e56152e56 100644 --- a/integrations/graal/mp-native-image-extension/pom.xml +++ b/integrations/graal/mp-native-image-extension/pom.xml @@ -56,11 +56,6 @@ graal-sdk provided - - org.graalvm.nativeimage - svm - provided - diff --git a/integrations/graal/mp-native-image-extension/src/main/java/io/helidon/integrations/graal/mp/nativeimage/extension/WeldFeature.java b/integrations/graal/mp-native-image-extension/src/main/java/io/helidon/integrations/graal/mp/nativeimage/extension/WeldFeature.java index b0455fcd8d2..0a183a46d24 100644 --- a/integrations/graal/mp-native-image-extension/src/main/java/io/helidon/integrations/graal/mp/nativeimage/extension/WeldFeature.java +++ b/integrations/graal/mp-native-image-extension/src/main/java/io/helidon/integrations/graal/mp/nativeimage/extension/WeldFeature.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2021 Oracle and/or its affiliates. + * Copyright (c) 2019, 2022 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,7 +33,6 @@ import io.helidon.integrations.graal.nativeimage.extension.NativeConfig; -import com.oracle.svm.core.annotate.AutomaticFeature; import jakarta.enterprise.inject.spi.Bean; import jakarta.json.Json; import jakarta.json.JsonArray; @@ -51,7 +50,6 @@ * An automatic feature for native-image to * register Weld specific stuff. */ -@AutomaticFeature public class WeldFeature implements Feature { private static final boolean ENABLED = NativeConfig.option("weld.enable-feature", true); private static final boolean TRACE = NativeConfig.option("weld.trace", false); diff --git a/integrations/graal/mp-native-image-extension/src/main/java/module-info.java b/integrations/graal/mp-native-image-extension/src/main/java/module-info.java index 6b7f46287fc..3a237e3134d 100644 --- a/integrations/graal/mp-native-image-extension/src/main/java/module-info.java +++ b/integrations/graal/mp-native-image-extension/src/main/java/module-info.java @@ -18,7 +18,6 @@ */ module io.helidon.graal.nativeimage.mp { requires jakarta.cdi; - requires svm; requires io.helidon.graal.nativeimage; requires jakarta.json; requires org.graalvm.sdk; diff --git a/integrations/graal/native-image-extension/pom.xml b/integrations/graal/native-image-extension/pom.xml index 5f9b87ccf2c..c135c8a5c68 100644 --- a/integrations/graal/native-image-extension/pom.xml +++ b/integrations/graal/native-image-extension/pom.xml @@ -58,11 +58,6 @@ graal-sdk provided - - org.graalvm.nativeimage - svm - provided - diff --git a/integrations/graal/native-image-extension/src/main/java/io/helidon/integrations/graal/nativeimage/extension/HelidonReflectionFeature.java b/integrations/graal/native-image-extension/src/main/java/io/helidon/integrations/graal/nativeimage/extension/HelidonReflectionFeature.java index 24da8151a7a..6ed2d1d6403 100644 --- a/integrations/graal/native-image-extension/src/main/java/io/helidon/integrations/graal/nativeimage/extension/HelidonReflectionFeature.java +++ b/integrations/graal/native-image-extension/src/main/java/io/helidon/integrations/graal/nativeimage/extension/HelidonReflectionFeature.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, 2021 Oracle and/or its affiliates. + * Copyright (c) 2019, 2022 Oracle and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,7 @@ */ package io.helidon.integrations.graal.nativeimage.extension; +import java.io.IOException; import java.io.InputStream; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; @@ -37,13 +38,12 @@ import io.helidon.common.Reflected; import io.helidon.config.mp.MpConfigProviderResolver; -import com.oracle.svm.core.jdk.Resources; -import com.oracle.svm.core.jdk.proxy.DynamicProxyRegistry; import io.github.classgraph.ClassGraph; import io.github.classgraph.ScanResult; -import org.graalvm.nativeimage.ImageSingletons; import org.graalvm.nativeimage.hosted.Feature; +import org.graalvm.nativeimage.hosted.RuntimeProxyCreation; import org.graalvm.nativeimage.hosted.RuntimeReflection; +import org.graalvm.nativeimage.hosted.RuntimeResourceAccess; /** * Feature to add reflection configuration to the image for Helidon, CDI and Jersey. @@ -280,7 +280,11 @@ private void processEntity(BeforeAnalysisContext context) { tracer.parsing(() -> "Processing annotated class " + aClass.getName()); String resourceName = aClass.getName().replace('.', '/') + ".class"; InputStream resourceStream = aClass.getClassLoader().getResourceAsStream(resourceName); - Resources.registerResource(resourceName, resourceStream); + try { + RuntimeResourceAccess.addResource(aClass.getModule(), resourceName, resourceStream.readAllBytes()); + } catch (IOException e) { + throw new RuntimeException("Failed to read entity class file", e); + } for (Field declaredField : aClass.getDeclaredFields()) { if (!Modifier.isPublic(declaredField.getModifiers()) && declaredField.getAnnotations().length == 0) { RuntimeReflection.register(declaredField); @@ -303,7 +307,6 @@ private void processRegisterRestClient(BeforeAnalysisContext context) { tracer.parsing(() -> "Looking up annotated by " + AT_REGISTER_REST_CLIENT); Set> annotatedSet = util.findAnnotated(AT_REGISTER_REST_CLIENT); - DynamicProxyRegistry proxyRegistry = ImageSingletons.lookup(DynamicProxyRegistry.class); Class autoCloseable = context.access().findClassByName("java.lang.AutoCloseable"); Class closeable = context.access().findClassByName("java.io.Closeable"); @@ -315,7 +318,7 @@ private void processRegisterRestClient(BeforeAnalysisContext context) { processClassHierarchy(context, it); // and we also need to create a proxy tracer.parsing(() -> "Registering a proxy for class " + it.getName()); - proxyRegistry.addProxyClass(it, autoCloseable, closeable); + RuntimeProxyCreation.register(it, autoCloseable, closeable); } }); } diff --git a/integrations/graal/native-image-extension/src/main/java/module-info.java b/integrations/graal/native-image-extension/src/main/java/module-info.java index 7afa0597e82..bc7b9d30b6c 100644 --- a/integrations/graal/native-image-extension/src/main/java/module-info.java +++ b/integrations/graal/native-image-extension/src/main/java/module-info.java @@ -20,7 +20,6 @@ requires io.helidon.config; requires io.github.classgraph; requires io.helidon.config.mp; - requires svm; requires org.graalvm.sdk; requires jakarta.json; diff --git a/integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon/helidon/native-image.properties b/integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon.integrations.graal/helidon-graal-native-image-extension/native-image.properties similarity index 95% rename from integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon/helidon/native-image.properties rename to integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon.integrations.graal/helidon-graal-native-image-extension/native-image.properties index fec0100d107..fc13fba03fd 100644 --- a/integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon/helidon/native-image.properties +++ b/integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon.integrations.graal/helidon-graal-native-image-extension/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2021 Oracle and/or its affiliates. +# Copyright (c) 2019, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon/helidon/reflect-config.json b/integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon.integrations.graal/helidon-graal-native-image-extension/reflect-config.json similarity index 100% rename from integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon/helidon/reflect-config.json rename to integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon.integrations.graal/helidon-graal-native-image-extension/reflect-config.json diff --git a/integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon/helidon/resource-config.json b/integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon.integrations.graal/helidon-graal-native-image-extension/resource-config.json similarity index 100% rename from integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon/helidon/resource-config.json rename to integrations/graal/native-image-extension/src/main/resources/META-INF/native-image/io.helidon.integrations.graal/helidon-graal-native-image-extension/resource-config.json diff --git a/jersey/jsonp/src/main/resources/META-INF/native-image/io.helidon.jersey.media.jsonp/helidon-jersey-media-jsonp/native-image.properties b/jersey/jsonp/src/main/resources/META-INF/native-image/io.helidon.jersey/helidon-jersey-media-jsonp/native-image.properties similarity index 100% rename from jersey/jsonp/src/main/resources/META-INF/native-image/io.helidon.jersey.media.jsonp/helidon-jersey-media-jsonp/native-image.properties rename to jersey/jsonp/src/main/resources/META-INF/native-image/io.helidon.jersey/helidon-jersey-media-jsonp/native-image.properties diff --git a/jersey/jsonp/src/main/resources/META-INF/native-image/io.helidon.jersey.media.jsonp/helidon-jersey-media-jsonp/reflect-config.json b/jersey/jsonp/src/main/resources/META-INF/native-image/io.helidon.jersey/helidon-jersey-media-jsonp/reflect-config.json similarity index 100% rename from jersey/jsonp/src/main/resources/META-INF/native-image/io.helidon.jersey.media.jsonp/helidon-jersey-media-jsonp/reflect-config.json rename to jersey/jsonp/src/main/resources/META-INF/native-image/io.helidon.jersey/helidon-jersey-media-jsonp/reflect-config.json diff --git a/logging/log4j/src/main/resources/META-INF/native-image/io.helidon.logging/helidon-logging-log4j/native-image.properties b/logging/log4j/src/main/resources/META-INF/native-image/io.helidon.logging/helidon-logging-log4j/native-image.properties index 87dd3480919..f06ec459f7b 100644 --- a/logging/log4j/src/main/resources/META-INF/native-image/io.helidon.logging/helidon-logging-log4j/native-image.properties +++ b/logging/log4j/src/main/resources/META-INF/native-image/io.helidon.logging/helidon-logging-log4j/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2020 Oracle and/or its affiliates. +# Copyright (c) 2020, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,7 +16,6 @@ Args=-Dlog4j2.disable.jmx=true \ -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager \ - --allow-incomplete-classpath \ --report-unsupported-elements-at-runtime \ --initialize-at-build-time=org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration \ --initialize-at-build-time=org.apache.logging.log4j.core.config.status.StatusConfiguration \ diff --git a/media/jsonp/src/main/resources/META-INF/native-image/io.helidon.media/helidon-media-jsonp-common/native-image.properties b/media/jsonp/src/main/resources/META-INF/native-image/io.helidon.media/helidon-media-jsonp/native-image.properties similarity index 100% rename from media/jsonp/src/main/resources/META-INF/native-image/io.helidon.media/helidon-media-jsonp-common/native-image.properties rename to media/jsonp/src/main/resources/META-INF/native-image/io.helidon.media/helidon-media-jsonp/native-image.properties diff --git a/media/jsonp/src/main/resources/META-INF/native-image/io.helidon.media/helidon-media-jsonp-common/reflect-config.json b/media/jsonp/src/main/resources/META-INF/native-image/io.helidon.media/helidon-media-jsonp/reflect-config.json similarity index 100% rename from media/jsonp/src/main/resources/META-INF/native-image/io.helidon.media/helidon-media-jsonp-common/reflect-config.json rename to media/jsonp/src/main/resources/META-INF/native-image/io.helidon.media/helidon-media-jsonp/reflect-config.json diff --git a/messaging/connectors/kafka/pom.xml b/messaging/connectors/kafka/pom.xml index f59eaa05c1f..fd3adad6f37 100644 --- a/messaging/connectors/kafka/pom.xml +++ b/messaging/connectors/kafka/pom.xml @@ -65,8 +65,8 @@ true - org.graalvm.nativeimage - svm + org.graalvm.sdk + graal-sdk provided diff --git a/messaging/connectors/kafka/src/main/java/module-info.java b/messaging/connectors/kafka/src/main/java/module-info.java index 7640dc5f74f..b0494c5edbf 100644 --- a/messaging/connectors/kafka/src/main/java/module-info.java +++ b/messaging/connectors/kafka/src/main/java/module-info.java @@ -33,7 +33,7 @@ requires io.helidon.common.configurable; requires io.helidon.messaging; requires microprofile.config.api; - requires static svm; + requires static org.graalvm.sdk; requires java.security.sasl; requires transitive org.slf4j; // To allow KerberosLoginSubstitution diff --git a/config/encryption/src/main/resources/META-INF/native-image/native-image.properties b/metrics/api/src/main/resources/META-INF/native-image/io.helidon.metrics/helidon-metrics-api/native-image.properties similarity index 82% rename from config/encryption/src/main/resources/META-INF/native-image/native-image.properties rename to metrics/api/src/main/resources/META-INF/native-image/io.helidon.metrics/helidon-metrics-api/native-image.properties index 84549270225..5332ad6e545 100644 --- a/config/encryption/src/main/resources/META-INF/native-image/native-image.properties +++ b/metrics/api/src/main/resources/META-INF/native-image/io.helidon.metrics/helidon-metrics-api/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2021 Oracle and/or its affiliates. +# Copyright (c) 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,4 +13,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # -Args=--enable-all-security-services + +Args=--initialize-at-build-time=org.eclipse.microprofile.metrics + diff --git a/metrics/metrics/src/main/resources/META-INF/native-image/io.helidon.metrics/native-image.properties b/metrics/metrics/src/main/resources/META-INF/native-image/io.helidon.metrics/helidon-metrics/native-image.properties similarity index 91% rename from metrics/metrics/src/main/resources/META-INF/native-image/io.helidon.metrics/native-image.properties rename to metrics/metrics/src/main/resources/META-INF/native-image/io.helidon.metrics/helidon-metrics/native-image.properties index 1c4245a3d37..4a39f5603d9 100644 --- a/metrics/metrics/src/main/resources/META-INF/native-image/io.helidon.metrics/native-image.properties +++ b/metrics/metrics/src/main/resources/META-INF/native-image/io.helidon.metrics/helidon-metrics/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2021 Oracle and/or its affiliates. +# Copyright (c) 2021, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/microprofile/cdi/src/main/resources/META-INF/native-image/io.helidon.microprofile.cdi/helidon-microprofile-cdi/native-image.properties b/microprofile/cdi/src/main/resources/META-INF/native-image/io.helidon.microprofile.cdi/helidon-microprofile-cdi/native-image.properties index 1648ad8a7b9..37f73e723ec 100644 --- a/microprofile/cdi/src/main/resources/META-INF/native-image/io.helidon.microprofile.cdi/helidon-microprofile-cdi/native-image.properties +++ b/microprofile/cdi/src/main/resources/META-INF/native-image/io.helidon.microprofile.cdi/helidon-microprofile-cdi/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2021 Oracle and/or its affiliates. +# Copyright (c) 2019, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,10 +14,11 @@ # limitations under the License. # -# We need "report-unsupported-elements-at-runtime" - there is no fine grained control of this switch -Args=--initialize-at-build-time \ - --initialize-at-build-time=io.helidon.microprofile.cdi.BuildTimeInitializer \ +Args=--initialize-at-build-time=io.helidon.microprofile \ + --initialize-at-build-time=org.eclipse.microprofile \ + --initialize-at-build-time=jakarta \ + --initialize-at-build-time=org.jboss \ + --initialize-at-build-time=org.glassfish \ --initialize-at-run-time=org.jboss.weld.probe.Resource \ - --initialize-at-run-time=org.jboss.weld.probe.Resource$14 \ - --report-unsupported-elements-at-runtime + --initialize-at-run-time=org.jboss.weld.probe.Resource$14 diff --git a/openapi/src/main/resources/META-INF/native-image/io.helidon.openapi/helidon-openapi/native-image.properties b/openapi/src/main/resources/META-INF/native-image/io.helidon.openapi/helidon-openapi/native-image.properties index ce86039510f..d4458ccb1ee 100644 --- a/openapi/src/main/resources/META-INF/native-image/io.helidon.openapi/helidon-openapi/native-image.properties +++ b/openapi/src/main/resources/META-INF/native-image/io.helidon.openapi/helidon-openapi/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2020 Oracle and/or its affiliates. +# Copyright (c) 2020, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,4 +14,5 @@ # limitations under the License. # -Args=--initialize-at-run-time=io.smallrye.openapi.runtime.io.OpenApiSerializer +Args=--initialize-at-run-time=io.smallrye.openapi.runtime.io.OpenApiSerializer \ + --initialize-at-build-time=io.smallrye.openapi diff --git a/security/providers/oidc-common/src/main/resources/META-INF/native-image/native-image.properties b/security/providers/oidc-common/src/main/resources/META-INF/native-image/io.helidon.security.providers/helidon-security-providers-oidc-common/native-image.properties similarity index 87% rename from security/providers/oidc-common/src/main/resources/META-INF/native-image/native-image.properties rename to security/providers/oidc-common/src/main/resources/META-INF/native-image/io.helidon.security.providers/helidon-security-providers-oidc-common/native-image.properties index a840c5f2a37..14dc9dc2da9 100644 --- a/security/providers/oidc-common/src/main/resources/META-INF/native-image/native-image.properties +++ b/security/providers/oidc-common/src/main/resources/META-INF/native-image/io.helidon.security.providers/helidon-security-providers-oidc-common/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2021 Oracle and/or its affiliates. +# Copyright (c) 2019, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,5 +16,4 @@ Args=-H:EnableURLProtocols=http \ -H:EnableURLProtocols=https \ - --enable-all-security-services \ --initialize-at-build-time=io.helidon.security.providers.oidc.common diff --git a/security/security/src/main/resources/META-INF/native-image/io.helidon.security/helidon-security/native-image.properties b/security/security/src/main/resources/META-INF/native-image/io.helidon.security/helidon-security/native-image.properties index abc13ca74a8..9f1f44505e7 100644 --- a/security/security/src/main/resources/META-INF/native-image/io.helidon.security/helidon-security/native-image.properties +++ b/security/security/src/main/resources/META-INF/native-image/io.helidon.security/helidon-security/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2021 Oracle and/or its affiliates. +# Copyright (c) 2019, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,12 +14,5 @@ # limitations under the License. # -# -# Graal native image supports additional configuration from this property file. # Security Subject requires this to work -# The `all-security-services` is to support encryption algorithms, -# intermediate solution until we can figure out -# how to do a fine-grained algorithm support -# -Args=-H:IncludeResourceBundles=sun.security.util.Resources \ - --enable-all-security-services +Args=-H:IncludeResourceBundles=sun.security.util.Resources diff --git a/tests/integration/native-image/mp-1/README.md b/tests/integration/native-image/mp-1/README.md index 8dcf795171f..932a81d8b9e 100644 --- a/tests/integration/native-image/mp-1/README.md +++ b/tests/integration/native-image/mp-1/README.md @@ -35,7 +35,6 @@ ${GRAALVM_HOME}/bin/native-image -Dhelidon.native.reflection.trace-parsing=true -H:Name=helidon-tests-native-image-mp-1 \ "-H:IncludeResources=logging.properties|meta-config.yaml|web/resource.txt|web/welcome.txt|verify-jwk.json|META-INF/native-image/tests/mp-1/resource-config.json|META-INF/beans.xml|META-INF/microprofile-config.properties|sign-jwk.json" \ -H:+ReportExceptionStackTraces \ - --no-server \ -jar ./target/helidon-tests-native-image-mp-1.jar ``` diff --git a/tests/integration/native-image/mp-1/pom.xml b/tests/integration/native-image/mp-1/pom.xml index c2df74ec676..b5abfd9817a 100644 --- a/tests/integration/native-image/mp-1/pom.xml +++ b/tests/integration/native-image/mp-1/pom.xml @@ -93,6 +93,13 @@ + + org.graalvm.buildtools + native-maven-plugin + + true + + diff --git a/tests/integration/native-image/mp-2/README.md b/tests/integration/native-image/mp-2/README.md index 75f0bdf7fc0..787287661e4 100644 --- a/tests/integration/native-image/mp-2/README.md +++ b/tests/integration/native-image/mp-2/README.md @@ -11,7 +11,7 @@ mvn clean package -Pnative-image ./target/helidon-tests-native-image-mp-2 ``` -Requires at least GraalVM 21.3.0 +Requires at least GraalVM 22.3.0 This test validates that JPA integration (using Hibernate) and JTA integration work in native image. diff --git a/tests/integration/native-image/mp-2/pom.xml b/tests/integration/native-image/mp-2/pom.xml index d7cb3527e86..dbba9c97cbc 100644 --- a/tests/integration/native-image/mp-2/pom.xml +++ b/tests/integration/native-image/mp-2/pom.xml @@ -125,6 +125,13 @@ + + org.graalvm.buildtools + native-maven-plugin + + true + + org.jboss.jandex jandex-maven-plugin @@ -174,29 +181,4 @@ - - - native-image - - - - io.helidon.build-tools - helidon-maven-plugin - - ${mainClass} - main - - - - native-image - - native-image - - - - - - - - diff --git a/tests/integration/native-image/mp-3/pom.xml b/tests/integration/native-image/mp-3/pom.xml index 389585d6ed4..22d99fd355c 100644 --- a/tests/integration/native-image/mp-3/pom.xml +++ b/tests/integration/native-image/mp-3/pom.xml @@ -53,6 +53,13 @@ + + org.graalvm.buildtools + native-maven-plugin + + true + + org.apache.maven.plugins maven-dependency-plugin diff --git a/tests/integration/native-image/mp-3/src/main/resources/META-INF/microprofile-config.properties b/tests/integration/native-image/mp-3/src/main/resources/META-INF/microprofile-config.properties index 1ef4e8f1dd7..2e4a439fa21 100644 --- a/tests/integration/native-image/mp-3/src/main/resources/META-INF/microprofile-config.properties +++ b/tests/integration/native-image/mp-3/src/main/resources/META-INF/microprofile-config.properties @@ -20,7 +20,6 @@ mp.config.profile=test app.greeting=Wrong Hello # Microprofile server properties -#server.port=7001 server.port=7001 server.host=0.0.0.0 %test.server.port=0 diff --git a/tests/integration/native-image/se-1/pom.xml b/tests/integration/native-image/se-1/pom.xml index b2bd3268876..05d4beab071 100644 --- a/tests/integration/native-image/se-1/pom.xml +++ b/tests/integration/native-image/se-1/pom.xml @@ -132,6 +132,13 @@ + + org.graalvm.buildtools + native-maven-plugin + + true + + org.apache.maven.plugins maven-dependency-plugin diff --git a/tracing/jaeger/src/main/resources/META-INF/native-image/io.helidon.tracing/helidon-tracing-jaeger/native-image.properties b/tracing/jaeger/src/main/resources/META-INF/native-image/io.helidon.tracing/helidon-tracing-jaeger/native-image.properties index 56fb195a344..b0bdcb8a31d 100644 --- a/tracing/jaeger/src/main/resources/META-INF/native-image/io.helidon.tracing/helidon-tracing-jaeger/native-image.properties +++ b/tracing/jaeger/src/main/resources/META-INF/native-image/io.helidon.tracing/helidon-tracing-jaeger/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2021 Oracle and/or its affiliates. +# Copyright (c) 2019, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -16,6 +16,5 @@ Args=--initialize-at-build-time=org.slf4j,io.helidon.tracing.jaeger \ -H:+AddAllCharsets \ - --enable-all-security-services \ -H:EnableURLProtocols=http \ -H:EnableURLProtocols=https diff --git a/tracing/jaeger/src/main/resources/META-INF/native-image/io.helidon.tracing/helidon-tracing-jaeger/reflect-config.json b/tracing/jaeger/src/main/resources/META-INF/native-image/io.helidon.tracing/helidon-tracing-jaeger/reflect-config.json index a06752f7420..c37848ea954 100644 --- a/tracing/jaeger/src/main/resources/META-INF/native-image/io.helidon.tracing/helidon-tracing-jaeger/reflect-config.json +++ b/tracing/jaeger/src/main/resources/META-INF/native-image/io.helidon.tracing/helidon-tracing-jaeger/reflect-config.json @@ -1,106 +1,4 @@ [ - { - "name": "io.jaegertracing.internal.samplers.http.SamplingStrategyResponse", - "allPublicConstructors": true, - "allDeclaredConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true, - "fields": [ - { - "name": "probabilisticSampling", - "allowWrite": true - }, - { - "name": "rateLimitingSampling", - "allowWrite": true - }, - { - "name": "operationSampling", - "allowWrite": true - } - ] - }, - { - "name": "io.jaegertracing.internal.metrics.Metrics", - "allPublicConstructors": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true - }, - { - "name": "io.jaegertracing.internal.samplers.http.ProbabilisticSamplingStrategy", - "allPublicConstructors": true, - "allDeclaredConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true, - "fields": [ - { - "name": "samplingRate", - "allowWrite": true - } - ] - }, - { - "name": "io.jaegertracing.internal.samplers.http.RateLimitingSamplingStrategy", - "allPublicConstructors": true, - "allDeclaredConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true, - "fields": [ - { - "name": "maxTracesPerSecond", - "allowWrite": true - } - ] - }, - { - "name": "io.jaegertracing.internal.samplers.http.PerOperationSamplingParameters", - "allPublicConstructors": true, - "allDeclaredConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true, - "fields": [ - { - "name": "operation", - "allowWrite": true - }, - { - "name": "probabilisticSampling", - "allowWrite": true - } - ] - }, - { - "name": "io.jaegertracing.internal.samplers.http.OperationSamplingParameters", - "allPublicConstructors": true, - "allDeclaredConstructors": true, - "allDeclaredMethods": true, - "allPublicMethods": true, - "allPublicFields": true, - "allDeclaredFields": true, - "fields": [ - { - "name": "defaultSamplingProbability", - "allowWrite": true - }, - { - "name": "defaultLowerBoundTracesPerSecond", - "allowWrite": true - }, - { - "name": "perOperationStrategies", - "allowWrite": true - } - ] - }, { "name": "java.time.Instant", "methods": [ diff --git a/webclient/jaxrs/src/main/resources/META-INF/native-image/native-image.properties b/webclient/jaxrs/src/main/resources/META-INF/native-image/io.helidon.webclient/helidon-webclient-jaxrs/native-image.properties similarity index 76% rename from webclient/jaxrs/src/main/resources/META-INF/native-image/native-image.properties rename to webclient/jaxrs/src/main/resources/META-INF/native-image/io.helidon.webclient/helidon-webclient-jaxrs/native-image.properties index 36175ccda69..a7047e79681 100644 --- a/webclient/jaxrs/src/main/resources/META-INF/native-image/native-image.properties +++ b/webclient/jaxrs/src/main/resources/META-INF/native-image/io.helidon.webclient/helidon-webclient-jaxrs/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2021 Oracle and/or its affiliates. +# Copyright (c) 2019, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -14,6 +14,5 @@ # limitations under the License. # -Args=-H:ReflectionConfigurationResources=${.}/helidon-webclient-jaxrs-reflection-config.json \ - -H:EnableURLProtocols=http \ +Args=-H:EnableURLProtocols=http \ --initialize-at-build-time=io.helidon.webclient.jaxrs diff --git a/webclient/jaxrs/src/main/resources/META-INF/native-image/helidon-webclient-jaxrs-reflection-config.json b/webclient/jaxrs/src/main/resources/META-INF/native-image/io.helidon.webclient/helidon-webclient-jaxrs/reflect-config.json similarity index 100% rename from webclient/jaxrs/src/main/resources/META-INF/native-image/helidon-webclient-jaxrs-reflection-config.json rename to webclient/jaxrs/src/main/resources/META-INF/native-image/io.helidon.webclient/helidon-webclient-jaxrs/reflect-config.json diff --git a/webserver/jersey/src/main/resources/META-INF/native-image/io.helidon.webserver/helidon-webserver-jersey/native-image.properties b/webserver/jersey/src/main/resources/META-INF/native-image/io.helidon.webserver/helidon-webserver-jersey/native-image.properties index f29ca7445ec..908d056c147 100644 --- a/webserver/jersey/src/main/resources/META-INF/native-image/io.helidon.webserver/helidon-webserver-jersey/native-image.properties +++ b/webserver/jersey/src/main/resources/META-INF/native-image/io.helidon.webserver/helidon-webserver-jersey/native-image.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2019, 2021 Oracle and/or its affiliates. +# Copyright (c) 2019, 2022 Oracle and/or its affiliates. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,4 +15,5 @@ # Args=-H:EnableURLProtocols=http,https \ - --initialize-at-run-time=org.glassfish.jersey.client.internal.HttpUrlConnector + --initialize-at-run-time=org.glassfish.jersey.client.internal.HttpUrlConnector \ + --initialize-at-build-time=org.eclipse.yasson diff --git a/webserver/webserver/src/main/resources/META-INF/native-image/io.helidon.webserver/helidon-webserver/native-image.properties b/webserver/webserver/src/main/resources/META-INF/native-image/io.helidon.webserver/helidon-webserver/native-image.properties index 607fa543c0c..c7388254082 100644 --- a/webserver/webserver/src/main/resources/META-INF/native-image/io.helidon.webserver/helidon-webserver/native-image.properties +++ b/webserver/webserver/src/main/resources/META-INF/native-image/io.helidon.webserver/helidon-webserver/native-image.properties @@ -20,8 +20,7 @@ # # allow incomplete classpath - Netty contains classes that depend on Log4j etc, so we need to allow that # -Args=--allow-incomplete-classpath \ - --initialize-at-run-time=io.netty.buffer.UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeNoCleanerDirectByteBuf \ +Args=--initialize-at-run-time=io.netty.buffer.UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeNoCleanerDirectByteBuf \ --initialize-at-run-time=io.netty.buffer.UnreleasableByteBuf \ --initialize-at-run-time=io.netty.handler.codec.compression.BrotliDecoder$1 \ --initialize-at-run-time=io.netty.handler.codec.compression.BrotliOptions \