From 0f8a5707ab535d293c976cedd00ee602b78aa8d6 Mon Sep 17 00:00:00 2001 From: Thibault Vallin Date: Fri, 6 Oct 2023 23:51:03 +0200 Subject: [PATCH] 4.x: Fix several issue in archetype and add `native-image.properties` to generated projects (#7731) * Uplevel Main template * Add javadoc + native-image.properties Signed-off-by: tvallin --- .../src/main/archetype/common/common.xml | 8 +- .../src/main/archetype/common/docker.xml | 11 ++- .../src/main/archetype/common/extra.xml | 5 +- .../src/main/java/__pkg__/Main.java.mustache | 37 +++++++++ .../native-image.properties.mustache | 1 + .../main/archetype/common/observability.xml | 4 +- .../main/archetype/mp/common/common-mp.xml | 27 +++++++ .../src/main/java/__pkg__/Main.java.mustache | 17 ---- .../main/archetype/se/common/common-se.xml | 56 ++++++++++++++ .../src/main/java/__pkg__/Main.java.mustache | 77 ------------------- .../archetype/se/custom/observability.xml | 2 +- 11 files changed, 141 insertions(+), 104 deletions(-) create mode 100644 archetypes/helidon/src/main/archetype/common/files/src/main/java/__pkg__/Main.java.mustache create mode 100644 archetypes/helidon/src/main/archetype/common/files/src/main/resources/META-INF/groupid/artifactid/native-image.properties.mustache delete mode 100644 archetypes/helidon/src/main/archetype/mp/common/files/src/main/java/__pkg__/Main.java.mustache delete mode 100644 archetypes/helidon/src/main/archetype/se/common/files/src/main/java/__pkg__/Main.java.mustache diff --git a/archetypes/helidon/src/main/archetype/common/common.xml b/archetypes/helidon/src/main/archetype/common/common.xml index 57dd1567815..610b30ede52 100644 --- a/archetypes/helidon/src/main/archetype/common/common.xml +++ b/archetypes/helidon/src/main/archetype/common/common.xml @@ -40,12 +40,16 @@ - + + + + + files .helidon.mustache README.md.mustache - src/main/java/module-info.java.mustache + src/main/java/**/*.java.mustache diff --git a/archetypes/helidon/src/main/archetype/common/docker.xml b/archetypes/helidon/src/main/archetype/common/docker.xml index fe51e337d5f..c8af8e37a4a 100644 --- a/archetypes/helidon/src/main/archetype/common/docker.xml +++ b/archetypes/helidon/src/main/archetype/common/docker.xml @@ -31,7 +31,16 @@ name="GraalVM Native Image Support" description="Add a native-image capable Dockerfile to your project" default="false" - optional="true"/> + optional="true"> + + + files + + src/*/resources/META-INF/**/*.mustache + + + + io.helidon.microprofile.faulttolerance - - java.util.concurrent.TimeoutException - @@ -284,7 +281,7 @@ restrictive-cors: - + java.time.Duration - + - + = 8; diff --git a/archetypes/helidon/src/main/archetype/mp/common/common-mp.xml b/archetypes/helidon/src/main/archetype/mp/common/common-mp.xml index 3ecb707ee28..ce902df7030 100644 --- a/archetypes/helidon/src/main/archetype/mp/common/common-mp.xml +++ b/archetypes/helidon/src/main/archetype/mp/common/common-mp.xml @@ -81,6 +81,33 @@ static org.hamcrest.MatcherAssert.assertThat static org.hamcrest.Matchers.is + + * Note that this class is required when using modules as the module main class must be in a package that is either exported + * or opened by the module, see {@link java.lang.module.ModuleDescriptor#read(java.io.InputStream, java.util.function.Supplier)}. + *

+ * This class provides a proper module main class and calls the {@link io.helidon.Main#main(String[]) built-in main class}. + */]]> + + + + + + + diff --git a/archetypes/helidon/src/main/archetype/mp/common/files/src/main/java/__pkg__/Main.java.mustache b/archetypes/helidon/src/main/archetype/mp/common/files/src/main/java/__pkg__/Main.java.mustache deleted file mode 100644 index 5042d20dcbc..00000000000 --- a/archetypes/helidon/src/main/archetype/mp/common/files/src/main/java/__pkg__/Main.java.mustache +++ /dev/null @@ -1,17 +0,0 @@ - -package {{package}}; - -/** - * Main entry point of the application. - * This class is registered as the main class in the jar manifest, as well as the main class of the module. - */ -public class Main { - /** - * Main method. Starts CDI (and the application). - * - * @param args ignored - */ - public static void main(String[] args) { - io.helidon.Main.main(args); - } -} diff --git a/archetypes/helidon/src/main/archetype/se/common/common-se.xml b/archetypes/helidon/src/main/archetype/se/common/common-se.xml index 62b94b6d70e..8f9c035ad2c 100644 --- a/archetypes/helidon/src/main/archetype/se/common/common-se.xml +++ b/archetypes/helidon/src/main/archetype/se/common/common-se.xml @@ -92,6 +92,62 @@ app: app: greeting: "Hello"]]> + + + + + + + + + + + diff --git a/archetypes/helidon/src/main/archetype/se/common/files/src/main/java/__pkg__/Main.java.mustache b/archetypes/helidon/src/main/archetype/se/common/files/src/main/java/__pkg__/Main.java.mustache deleted file mode 100644 index db721961d17..00000000000 --- a/archetypes/helidon/src/main/archetype/se/common/files/src/main/java/__pkg__/Main.java.mustache +++ /dev/null @@ -1,77 +0,0 @@ -package {{package}}; - -{{#Main-java-imports}} -import {{.}}; -{{/Main-java-imports}} - -{{#Main-helidon-imports}} -import {{.}}; -{{/Main-helidon-imports}} - -{{#Main-other-imports}} -import {{.}}; -{{/Main-other-imports}} - -{{#Main-static-imports}} -import {{.}}; -{{/Main-static-imports}} - -/** - * The application main class. - */ -public final class Main { - -{{#Main-fields}} -{{.}} -{{/Main-fields}} - - /** - * Cannot be instantiated. - */ - private Main() { - } - - /** - * Application main entry point. - * @param args command line arguments. - */ - public static void main(final String[] args) { - // load logging configuration - LogConfig.configureRuntime(); - - {{#Main-main}} - {{.}} - {{/Main-main}} - - // initialize global config from default configuration - Config config = Config.create(); - Config.global(config); - - WebServer server = WebServer.builder() - .config(Config.global().get("server")) - .routing(Main::routing) - .build() - .start(); - - System.out.println("WEB server is up! http://localhost:" + server.port() + "/simple-greet"); - } - - /** - * Updates HTTP Routing. - */ - static void routing(HttpRouting.Builder routing) { - Config config = Config.global(); - {{#Main-routing}} - {{.}} - {{/Main-routing}} - - routing - {{#Main-routing-builder}} - {{.}}{{#last}}; {{/last}} - {{/Main-routing-builder}} - } - -{{#Main-content}} -{{.}} -{{/Main-content}} -} diff --git a/archetypes/helidon/src/main/archetype/se/custom/observability.xml b/archetypes/helidon/src/main/archetype/se/custom/observability.xml index 742f8cb16b3..1cd49fe53c9 100644 --- a/archetypes/helidon/src/main/archetype/se/custom/observability.xml +++ b/archetypes/helidon/src/main/archetype/se/custom/observability.xml @@ -76,7 +76,7 @@ - +