diff --git a/archetypes/archetypes/pom.xml b/archetypes/archetypes/pom.xml index 99d392d90e2..b69deee90e4 100644 --- a/archetypes/archetypes/pom.xml +++ b/archetypes/archetypes/pom.xml @@ -1,7 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - files - - .helidon.mustache - README.md.mustache - .gitignore.mustache - src/main/java/**/Main.java.mustache - - - - 1.1.0 - - - io.helidon.logging - helidon-logging-jul - runtime - - - - - diff --git a/archetypes/archetypes/src/main/archetype/common/customize-project.xml b/archetypes/archetypes/src/main/archetype/common/customize-project.xml deleted file mode 100644 index 6bc6844e955..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/customize-project.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - io.helidon.applications - ${helidon-version} - true - ${artifactId} - ${groupId} - ${version} - ${package} - - - - diff --git a/archetypes/archetypes/src/main/archetype/common/docker.xml b/archetypes/archetypes/src/main/archetype/common/docker.xml deleted file mode 100644 index 2df7165a8c5..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/docker.xml +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - files - - src/*/resources/META-INF/**/*.mustache - - - - files - - src/**/native-image/**/resource-config.json - - - - - - - - - files - - .dockerignore - - - - files - - Dockerfile.mustache - Dockerfile.native.mustache - Dockerfile.jlink.mustache - - - - - ADD pom.xml . - - - ADD src src - - - - - - - - - - - - - - - - - -Declipselink.weave.skip - -DskipOpenApiGenerate - - - - - - diff --git a/archetypes/archetypes/src/main/archetype/common/extra.xml b/archetypes/archetypes/src/main/archetype/common/extra.xml deleted file mode 100644 index d204c0eef95..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/extra.xml +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - - - - - - - - - - true - true - true - - - - diff --git a/archetypes/archetypes/src/main/archetype/common/files/src/main/java/__pkg__/Main.java.mustache b/archetypes/archetypes/src/main/archetype/common/files/src/main/java/__pkg__/Main.java.mustache deleted file mode 100644 index c0963bbfa8d..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/files/src/main/java/__pkg__/Main.java.mustache +++ /dev/null @@ -1,37 +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}} - -{{main-class-javadoc}} -public class Main { - -{{#main-class-fields}} -{{.}} -{{/main-class-fields}} - - {{main-method-javadoc}} - public static void main(String[] args) { - {{#main-method-content}} - {{.}} - {{/main-method-content}} - } - -{{#main-class-content}} -{{.}} -{{/main-class-content}} -} \ No newline at end of file diff --git a/archetypes/archetypes/src/main/archetype/common/media.xml b/archetypes/archetypes/src/main/archetype/common/media.xml deleted file mode 100644 index 0d520a71db3..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/media.xml +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - jsonb - jsonp - - - - - - - - - - - - - - - true - false - true - false - ${media.json-lib} - true - - - - - - jakarta.json - jakarta.json-api - - - io.helidon.http.media - helidon-http-media-jsonp - - - - jakarta.json - - - - - diff --git a/archetypes/archetypes/src/main/archetype/common/observability.xml b/archetypes/archetypes/src/main/archetype/common/observability.xml deleted file mode 100644 index 518af2aa3b6..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/observability.xml +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - io.helidon.webserver.observe - helidon-webserver-observe-metrics - - - io.helidon.metrics - helidon-metrics-system-meters - runtime - - - - - - - io.helidon.webserver.observe.metrics - io.helidon.metrics.api - - - - - - - - - - - - - - - - - io.helidon.microprofile.health - helidon-microprofile-health - - - - - - - - - - - io.helidon.webserver.observe - helidon-webserver-observe-health - - - io.helidon.health - helidon-health-checks - - - - org.hamcrest.CoreMatchers.containsString - - - - - - - - - io.helidon.webserver.observe.health - io.helidon.health.checks - - - - - - - - - - - - - - - - - - - true - ${metrics.provider} - ${metrics.builtin} - true - ${health.builtin} - true - ${tracing.provider} - - - io.helidon.microprofile.metrics - helidon-microprofile-metrics - - - - - - diff --git a/archetypes/archetypes/src/main/archetype/common/packaging.xml b/archetypes/archetypes/src/main/archetype/common/packaging.xml deleted file mode 100644 index cd501ad6806..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/packaging.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - files - - app.yaml.mustache - - - - - - - - - - - - - - files - - v8o.yaml.mustache - - - - - - - - files - - src/main/java/**/module-info.java.mustache - src/main/java/**/Main.java.mustache - - - - - - - diff --git a/archetypes/archetypes/src/main/archetype/common/security.xml b/archetypes/archetypes/src/main/archetype/common/security.xml deleted file mode 100644 index 6d5ccf3dfa3..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/security.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - true - true - - - - - - - - - true - - - diff --git a/archetypes/archetypes/src/main/archetype/features/customize-project/inputs.xml b/archetypes/archetypes/src/main/archetype/features/customize-project/inputs.xml new file mode 100644 index 00000000000..c7e28fdfaad --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/customize-project/inputs.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/customize-project/output.xml b/archetypes/archetypes/src/main/archetype/features/customize-project/output.xml new file mode 100644 index 00000000000..a18768245f1 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/customize-project/output.xml @@ -0,0 +1,34 @@ + + + + + + + io.helidon.applications + ${helidon-version} + true + ${artifactId} + ${groupId} + ${version} + ${package} + + + diff --git a/archetypes/archetypes/src/main/archetype/common/multi-module.xml b/archetypes/archetypes/src/main/archetype/features/includes/multi-module-output.xml similarity index 96% rename from archetypes/archetypes/src/main/archetype/common/multi-module.xml rename to archetypes/archetypes/src/main/archetype/features/includes/multi-module-output.xml index 472b40f06d4..78c8c5e5295 100644 --- a/archetypes/archetypes/src/main/archetype/common/multi-module.xml +++ b/archetypes/archetypes/src/main/archetype/features/includes/multi-module-output.xml @@ -1,7 +1,7 @@ + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/jlink/output.xml b/archetypes/archetypes/src/main/archetype/features/jlink/output.xml new file mode 100644 index 00000000000..ccc09688dfb --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/jlink/output.xml @@ -0,0 +1,38 @@ + + + + + + + files + + Dockerfile.jlink.mustache + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/kubernetes/files/README.md.mustache b/archetypes/archetypes/src/main/archetype/features/kubernetes/files/README.md.mustache new file mode 100644 index 00000000000..4d91174943b --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/kubernetes/files/README.md.mustache @@ -0,0 +1,34 @@ + +## Run the application in Kubernetes + +If you don’t have access to a Kubernetes cluster, you can [install one](https://helidon.io/docs/latest/#/about/kubernetes) on your desktop. + +### Verify connectivity to cluster + +``` +kubectl cluster-info # Verify which cluster +kubectl get pods # Verify connectivity to cluster +``` +{{#k8s-readme-sections}} + {{#first}} + + {{/first}} + {{.}} +{{/k8s-readme-sections}} + +### Deploy the application to Kubernetes + +``` +kubectl create -f app.yaml # Deploy application +kubectl get pods # Wait for quickstart pod to be RUNNING +kubectl get service {{artifactId}} # Get service info +kubectl port-forward service/{{artifactId}} 8081:8080 # Forward service port to 8081 +``` + +You can now exercise the application as you did before but use the port number 8081. + +After you’re done, cleanup. + +``` +kubectl delete -f app.yaml +``` diff --git a/archetypes/archetypes/src/main/archetype/common/files/app.yaml.mustache b/archetypes/archetypes/src/main/archetype/features/kubernetes/files/app.yaml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/app.yaml.mustache rename to archetypes/archetypes/src/main/archetype/features/kubernetes/files/app.yaml.mustache diff --git a/archetypes/archetypes/src/main/archetype/features/kubernetes/inputs.xml b/archetypes/archetypes/src/main/archetype/features/kubernetes/inputs.xml new file mode 100644 index 00000000000..02af998fa2e --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/kubernetes/inputs.xml @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/kubernetes/output.xml b/archetypes/archetypes/src/main/archetype/features/kubernetes/output.xml new file mode 100644 index 00000000000..039e8b4994c --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/kubernetes/output.xml @@ -0,0 +1,38 @@ + + + + + + + files + + app.yaml.mustache + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/common/files/pom.xml.mustache b/archetypes/archetypes/src/main/archetype/features/maven/files/pom.xml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/pom.xml.mustache rename to archetypes/archetypes/src/main/archetype/features/maven/files/pom.xml.mustache diff --git a/archetypes/archetypes/src/main/archetype/features/maven/output.xml b/archetypes/archetypes/src/main/archetype/features/maven/output.xml new file mode 100644 index 00000000000..2190a36d715 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/maven/output.xml @@ -0,0 +1,31 @@ + + + + + + + files + + pom.xml.mustache + + + + diff --git a/archetypes/archetypes/src/main/archetype/common/files/v8o.yaml.mustache b/archetypes/archetypes/src/main/archetype/features/verrazzano/files/v8o.yaml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/v8o.yaml.mustache rename to archetypes/archetypes/src/main/archetype/features/verrazzano/files/v8o.yaml.mustache diff --git a/archetypes/archetypes/src/main/archetype/features/verrazzano/inputs.xml b/archetypes/archetypes/src/main/archetype/features/verrazzano/inputs.xml new file mode 100644 index 00000000000..89b8e870447 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/verrazzano/inputs.xml @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/verrazzano/output.xml b/archetypes/archetypes/src/main/archetype/features/verrazzano/output.xml new file mode 100644 index 00000000000..5dd0e1b8c53 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/verrazzano/output.xml @@ -0,0 +1,30 @@ + + + + + + files + + v8o.yaml.mustache + + + + diff --git a/archetypes/archetypes/src/main/archetype/flavor.xml b/archetypes/archetypes/src/main/archetype/inputs.xml similarity index 81% rename from archetypes/archetypes/src/main/archetype/flavor.xml rename to archetypes/archetypes/src/main/archetype/inputs.xml index 159fb6cf431..e448aca3dd9 100644 --- a/archetypes/archetypes/src/main/archetype/flavor.xml +++ b/archetypes/archetypes/src/main/archetype/inputs.xml @@ -1,7 +1,7 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/archetypes/archetypes/src/main/archetype/mp/quickstart/files/microprofile-config.properties b/archetypes/archetypes/src/main/archetype/mp/quickstart/files/microprofile-config.properties deleted file mode 100644 index 71896191a15..00000000000 --- a/archetypes/archetypes/src/main/archetype/mp/quickstart/files/microprofile-config.properties +++ /dev/null @@ -1,2 +0,0 @@ -# Application properties. This is the default greeting -app.greeting=Hello diff --git a/archetypes/archetypes/src/main/archetype/common/files/.gitignore.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/.gitignore.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/.gitignore.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/.gitignore.mustache diff --git a/archetypes/archetypes/src/main/archetype/common/files/.helidon.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/.helidon.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/.helidon.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/.helidon.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/common/files/.idea/runConfigurations/configuration.xml.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/.idea/runConfigurations/configuration.xml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/common/files/.idea/runConfigurations/configuration.xml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/.idea/runConfigurations/configuration.xml.mustache diff --git a/archetypes/archetypes/src/main/archetype/common/files/README.md.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/README.md.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/README.md.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/README.md.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/common/files/src/main/java/__pkg__/package-info.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/main/java/__pkg__/package-info.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/common/files/src/main/java/__pkg__/package-info.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/main/java/__pkg__/package-info.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/common/files/src/main/resources/META-INF/beans.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/main/resources/META-INF/beans.xml similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/common/files/src/main/resources/META-INF/beans.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/main/resources/META-INF/beans.xml diff --git a/archetypes/archetypes/src/main/archetype/mp/common/files/src/main/resources/META-INF/microprofile-config.properties.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/main/resources/META-INF/microprofile-config.properties.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/common/files/src/main/resources/META-INF/microprofile-config.properties.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/main/resources/META-INF/microprofile-config.properties.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/common/files/src/main/resources/logging.properties.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/main/resources/logging.properties.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/common/files/src/main/resources/logging.properties.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/main/resources/logging.properties.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/common/files/src/test/java/__pkg__/MainTest.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/test/java/__pkg__/MainTest.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/common/files/src/test/java/__pkg__/MainTest.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/test/java/__pkg__/MainTest.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/common/files/src/test/resources/META-INF/microprofile-config.properties.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/test/resources/META-INF/microprofile-config.properties.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/common/files/src/test/resources/META-INF/microprofile-config.properties.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/test/resources/META-INF/microprofile-config.properties.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/common/files/src/test/resources/application-test.yaml.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/test/resources/application-test.yaml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/common/files/src/test/resources/application-test.yaml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/files/src/test/resources/application-test.yaml.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/common/common-mp.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/output.xml similarity index 61% rename from archetypes/archetypes/src/main/archetype/mp/common/common-mp.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/common/output.xml index ed488578cce..6dd36d64d2a 100644 --- a/archetypes/archetypes/src/main/archetype/mp/common/common-mp.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/common/output.xml @@ -20,19 +20,66 @@ - - - + + + + + + + + + + + + + + + + + + + + + + files + + src/*/java/**/*.java.mustache + + files + src/*/resources/**/*.mustache + + + + files + + src/*/resources/** + + + **/*.mustache + + + + files + + .helidon.mustache + README.md.mustache + .gitignore.mustache .idea/runConfigurations/configuration.xml.mustache helidon-mp + 1.1.0 + + io.helidon.logging + helidon-logging-jul + runtime + io.smallrye jandex @@ -63,7 +110,8 @@ make-index - ]]> + ]]> + jakarta.inject.Inject @@ -80,33 +128,6 @@ 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/archetypes/src/main/archetype/mp/custom/files/src/test/java/__pkg__/TestCORS.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/cors/files/src/test/java/__pkg__/TestCORS.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/test/java/__pkg__/TestCORS.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/cors/files/src/test/java/__pkg__/TestCORS.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/cors/output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/cors/output.xml new file mode 100644 index 00000000000..7c76373454f --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/cors/output.xml @@ -0,0 +1,150 @@ + + + + + + files + + src/*/java/**/TestCORS.java.mustache + + + + true + + + io.helidon.microprofile + helidon-microprofile-cors + + + + io.helidon.microprofile.cors.CrossOrigin + jakarta.ws.rs.OPTIONS + jakarta.ws.rs.PUT + jakarta.ws.rs.core.Response + jakarta.ws.rs.HttpMethod + + + @AddExtension(CorsCdiExtension.class) + + + io.helidon.microprofile.cors.CorsCdiExtension + + + + + + + + + + + io.helidon.microprofile.cors + + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/database/files/README.md b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/README.md similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/database/files/README.md rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/README.md diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/README.md.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/README.md.mustache new file mode 100644 index 00000000000..b4f1d522861 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/README.md.mustache @@ -0,0 +1,7 @@ + +### Database Setup + +Start your database before running this example. + +Example docker commands to start databases in temporary containers: +{{start-db}} diff --git a/archetypes/archetypes/src/main/archetype/mp/database/files/src/main/java/__pkg__/Pokemon.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/java/__pkg__/Pokemon.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/database/files/src/main/java/__pkg__/Pokemon.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/java/__pkg__/Pokemon.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/database/files/src/main/java/__pkg__/PokemonResource.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/java/__pkg__/PokemonResource.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/database/files/src/main/java/__pkg__/PokemonResource.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/java/__pkg__/PokemonResource.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/database/files/src/main/java/__pkg__/PokemonType.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/java/__pkg__/PokemonType.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/database/files/src/main/java/__pkg__/PokemonType.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/java/__pkg__/PokemonType.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/database/files/src/main/java/__pkg__/PokemonTypeResource.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/java/__pkg__/PokemonTypeResource.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/database/files/src/main/java/__pkg__/PokemonTypeResource.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/java/__pkg__/PokemonTypeResource.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/database/files/src/main/resources/META-INF/init_script.sql.default b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/resources/META-INF/init_script.sql.default similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/database/files/src/main/resources/META-INF/init_script.sql.default rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/resources/META-INF/init_script.sql.default diff --git a/archetypes/archetypes/src/main/archetype/mp/database/files/src/main/resources/META-INF/init_script.sql.oracle b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/resources/META-INF/init_script.sql.oracle similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/database/files/src/main/resources/META-INF/init_script.sql.oracle rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/resources/META-INF/init_script.sql.oracle diff --git a/archetypes/archetypes/src/main/archetype/mp/database/files/src/main/resources/META-INF/persistence.xml.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/resources/META-INF/persistence.xml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/database/files/src/main/resources/META-INF/persistence.xml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/resources/META-INF/persistence.xml.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/database/files/src/main/resources/hibernate.properties.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/resources/hibernate.properties.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/database/files/src/main/resources/hibernate.properties.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/src/main/resources/hibernate.properties.mustache diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/inputs.xml new file mode 100644 index 00000000000..8d384090cf6 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/inputs.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/database-outputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/output.xml similarity index 96% rename from archetypes/archetypes/src/main/archetype/mp/custom/database-outputs.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/database/output.xml index 359ddee62fe..073984526bf 100644 --- a/archetypes/archetypes/src/main/archetype/mp/custom/database-outputs.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/database/output.xml @@ -24,7 +24,7 @@ - ../database/files + files src/main/resources/**/hibernate.properties.mustache @@ -177,19 +177,20 @@ - Helidon MP application that uses JPA with an in-memory H2 database. h2 H2 - +]]> + hibernate.column_ordering_strategy @@ -265,7 +266,8 @@ For details, see https://www.h2database.com/html/cheatSheet.html .get(JsonArray.class); return pokemons.size(); } -]]> +]]> + @@ -282,14 +284,14 @@ For details, see https://www.h2database.com/html/cheatSheet.html - false Helidon MP application that uses the dbclient API with MySQL database. helidon-integrations-db-mysql MySQL - +]]> + hibernate.column_ordering_strategy @@ -328,7 +331,7 @@ docker run --rm --name mysql -p 3306:3306 \ - false @@ -343,7 +346,8 @@ Oracle: docker run --rm --name xe -p 1521:1521 -p 8888:8080 wnameless/oracle-xe-11g-r2 ``` For details on an Oracle Docker image, see https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance -]]> +]]> + hibernate.column_ordering_strategy @@ -385,7 +389,7 @@ For details on an Oracle Docker image, see https://github.com/oracle/docker-imag - ../database/files + files src/main/java/** src/*/resources/*/persistence.xml.mustache @@ -471,19 +475,15 @@ For details on an Oracle Docker image, see https://github.com/oracle/docker-imag jakarta.transaction - + ObjectStore/ PutObjectStoreDirHere/ + + + diff --git a/archetypes/archetypes/src/main/archetype/common/files/.dockerignore b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/.dockerignore similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/.dockerignore rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/.dockerignore diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/Dockerfile.jlink.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/Dockerfile.jlink.mustache new file mode 100644 index 00000000000..4659123c983 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/Dockerfile.jlink.mustache @@ -0,0 +1,35 @@ + +# 1st stage, build the app +FROM container-registry.oracle.com/java/jdk-no-fee-term:21 as build + +WORKDIR /usr/share + +# Install maven +RUN set -x && \ + curl -O https://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz && \ + tar -xvf apache-maven-*-bin.tar.gz && \ + rm apache-maven-*-bin.tar.gz && \ + mv apache-maven-* maven && \ + ln -s /usr/share/maven/bin/mvn /bin/ + +WORKDIR /helidon + +# Create a first layer to cache the "Maven World" in the local repository. +# Incremental docker builds will always resume after that, unless you update +# the pom +ADD pom.xml . +RUN mvn package -Dmaven.test.skip -Declipselink.weave.skip + +# Do the Maven build to create the custom Java Runtime Image +# Incremental docker builds will resume here when you change sources +ADD src src +RUN mvn package -Pjlink-image -DskipTests +RUN echo "done!" + +# 2nd stage, build the final image with the JRI built in the 1st stage + +FROM debian:stretch-slim +WORKDIR /helidon +COPY --from=build /helidon/target/{{artifactId}}-jri ./ +ENTRYPOINT ["/bin/bash", "/helidon/bin/start"] +EXPOSE 8080 diff --git a/archetypes/archetypes/src/main/archetype/common/files/Dockerfile.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/Dockerfile.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/Dockerfile.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/Dockerfile.mustache diff --git a/archetypes/archetypes/src/main/archetype/common/files/Dockerfile.native.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/Dockerfile.native.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/Dockerfile.native.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/Dockerfile.native.mustache diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.md.jlink.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.md.jlink.mustache new file mode 100644 index 00000000000..9eeec989e18 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.md.jlink.mustache @@ -0,0 +1,34 @@ + +## Building a Custom Runtime Image + +Build the custom runtime image using the jlink image profile: + +``` +mvn package -Pjlink-image +``` + +This uses the helidon-maven-plugin to perform the custom image generation. +After the build completes it will report some statistics about the build including the reduction in image size. + +The target/{{artifactId}}-jri directory is a self contained custom image of your application. It contains your application, +its runtime dependencies and the JDK modules it depends on. You can start your application using the provide start script: + +``` +./target/{{artifactId}}-jri/bin/start +``` + +Class Data Sharing (CDS) Archive +Also included in the custom image is a Class Data Sharing (CDS) archive that improves your application’s startup +performance and in-memory footprint. You can learn more about Class Data Sharing in the JDK documentation. + +The CDS archive increases your image size to get these performance optimizations. It can be of significant size (tens of MB). +The size of the CDS archive is reported at the end of the build output. + +If you’d rather have a smaller image size (with a slightly increased startup time) you can skip the creation of the CDS +archive by executing your build like this: + +``` +mvn package -Pjlink-image -Djlink.image.addClassDataSharingArchive=false +``` + +For more information on available configuration options see the helidon-maven-plugin documentation. diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.md.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.md.mustache new file mode 100644 index 00000000000..254d62d913c --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.md.mustache @@ -0,0 +1,19 @@ + +## Building the Docker Image + +``` +docker build -t {{artifactId}} . +``` + +## Running the Docker Image + +{{#docker-run-readme-section}} +{{.}} +{{/docker-run-readme-section}} +{{^docker-run-readme-section}} +``` +docker run --rm -p 8080:8080 {{artifactId}}:latest +``` +{{/docker-run-readme-section}} + +Exercise the application as described above. diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.md.native-image.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.md.native-image.mustache new file mode 100644 index 00000000000..15b9c34dd0f --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.md.native-image.mustache @@ -0,0 +1,6 @@ + +## Building a Native Image + +{{#native-sections}} +{{.}} +{{/native-sections}} diff --git a/archetypes/archetypes/src/main/archetype/common/files/README.native.md b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.native.md similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/README.native.md rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/files/README.native.md diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/inputs.xml new file mode 100644 index 00000000000..931dde89dc4 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/inputs.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/output.xml new file mode 100644 index 00000000000..79667675145 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/docker/output.xml @@ -0,0 +1,64 @@ + + + + + + + files + + .dockerignore + + + + files + + Dockerfile.mustache + Dockerfile.native.mustache + Dockerfile.jlink.mustache + + + + + ADD pom.xml . + + + ADD src src + + + + + + + + + + + -Declipselink.weave.skip + -DskipOpenApiGenerate + + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/FtResource.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/fault-tolerance/files/src/main/java/__pkg__/FtResource.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/FtResource.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/fault-tolerance/files/src/main/java/__pkg__/FtResource.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/src/test/java/__pkg__/FtResourceTest.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/fault-tolerance/files/src/test/java/__pkg__/FtResourceTest.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/test/java/__pkg__/FtResourceTest.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/fault-tolerance/files/src/test/java/__pkg__/FtResourceTest.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/fault-tolerance/output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/fault-tolerance/output.xml new file mode 100644 index 00000000000..8f95d361a54 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/fault-tolerance/output.xml @@ -0,0 +1,58 @@ + + + + + + + files + + src/*/java/**/FtResource.java.mustache + src/*/java/**/FtResourceTest.java.mustache + + + + true + + + io.helidon.microprofile + helidon-microprofile-fault-tolerance + + + + io.helidon.microprofile.faulttolerance + + + + org.apache.maven.plugins + maven-surefire-plugin + + + true + + + +]]> + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/health/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/health/inputs.xml new file mode 100644 index 00000000000..e8557d3fe34 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/health/inputs.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/health/output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/health/output.xml new file mode 100644 index 00000000000..a29c9b48c05 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/health/output.xml @@ -0,0 +1,67 @@ + + + + + + + + true + + + + + + + + ${health.builtin} + + + io.helidon.microprofile.health + helidon-microprofile-health + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/files/src/main/java/__pkg__/Main.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/files/src/main/java/__pkg__/Main.java.mustache new file mode 100644 index 00000000000..b70ff3b6871 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/files/src/main/java/__pkg__/Main.java.mustache @@ -0,0 +1,50 @@ + +package {{package}}; + +{{#Main-java-imports}} + TODO - remove all the 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}} + + +/** + * Main entry point of the application. + *

+ * 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}. + */ +public class Main { + + + /** + * Cannot be instantiated. + */ + private Main() { + } + + + + /** + * Main method. Starts CDI (and the application). + * + * @param args ignored + */ + public static void main(String[] args) { + io.helidon.Main.main(args); + } + +} \ No newline at end of file diff --git a/archetypes/archetypes/src/main/archetype/common/files/src/main/java/module-info.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/files/src/main/java/module-info.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/src/main/java/module-info.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/files/src/main/java/module-info.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/inputs.xml new file mode 100644 index 00000000000..e872023244b --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/inputs.xml @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/output.xml new file mode 100644 index 00000000000..a62295308ad --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/output.xml @@ -0,0 +1,34 @@ + + + + + + files + + src/main/java/**/module-info.java.mustache + src/main/java/**/Main.java.mustache + + + + ${package}.Main + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/FileService.java.multipart.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/FileService.java.multipart.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/FileService.java.multipart.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/FileService.java.multipart.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/FileStorage.java.multipart.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/FileStorage.java.multipart.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/FileStorage.java.multipart.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/FileStorage.java.multipart.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/Message.java.json.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/Message.java.json.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/Message.java.json.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/Message.java.json.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/MultiPartFeatureProvider.java.multipart.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/MultiPartFeatureProvider.java.multipart.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/MultiPartFeatureProvider.java.multipart.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/MultiPartFeatureProvider.java.multipart.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/SimpleGreetResource.java.json.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/SimpleGreetResource.java.json.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/SimpleGreetResource.java.json.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/SimpleGreetResource.java.json.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/SimpleGreetResource.java.jsonp.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/SimpleGreetResource.java.jsonp.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/SimpleGreetResource.java.jsonp.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/SimpleGreetResource.java.jsonp.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/SimpleGreetResource.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/SimpleGreetResource.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/java/__pkg__/SimpleGreetResource.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/main/java/__pkg__/SimpleGreetResource.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/src/test/java/__pkg__/FileServiceTest.java.multipart.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/test/java/__pkg__/FileServiceTest.java.multipart.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/src/test/java/__pkg__/FileServiceTest.java.multipart.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/src/test/java/__pkg__/FileServiceTest.java.multipart.mustache diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/inputs.xml new file mode 100644 index 00000000000..ba30838745a --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/inputs.xml @@ -0,0 +1,35 @@ + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/output.xml new file mode 100644 index 00000000000..aab0e7e5513 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/media/output.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + com.fasterxml.jackson.core + jackson-databind + + + org.glassfish.jersey.media + jersey-media-json-jackson + runtime + + + jakarta.xml.bind + jakarta.xml.bind-api + + + + com.fasterxml.jackson.core + + + com.fasterxml.jackson.annotation + com.fasterxml.jackson.core + jakarta.xml.bind + + + + + + + + + + jakarta.json.bind + jakarta.json.bind-api + + + org.glassfish.jersey.media + jersey-media-json-binding + runtime + + + + jakarta.json.bind + + + + + + + + + + org.glassfish.jersey.media + jersey-media-multipart + + + + + jersey.media.multipart + + + + + + + org.jvnet.mimepull + + + + + + + + + + + + + files + + src/*/java/**/SimpleGreetResource.java.mustache + + + + files + + src/*/java/**/*.json.mustache + + + + files + + src/*/java/**/*.multipart.mustache + + + + + true + false + true + false + ${media.json-lib} + true + + + + + + jakarta.json + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/inputs.xml new file mode 100644 index 00000000000..1deff0c5d9e --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/inputs.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/metrics-micrometer.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/micrometer-output.xml similarity index 97% rename from archetypes/archetypes/src/main/archetype/mp/custom/metrics-micrometer.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/micrometer-output.xml index e9fe2cefc79..e90aa4e255d 100644 --- a/archetypes/archetypes/src/main/archetype/mp/custom/metrics-micrometer.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/micrometer-output.xml @@ -106,6 +106,7 @@ + ${metrics.provider} io.helidon.microprofile.metrics @@ -135,9 +136,9 @@ private static final String PERSONALIZED_GETS_COUNTER_NAME = "personalizedGets"; private static final String PERSONALIZED_GETS_COUNTER_DESCRIPTION = "Counts personalized GET operations"; private static final String GETS_TIMER_NAME = "allGets"; - private static final String GETS_TIMER_DESCRIPTION = "Tracks all GET operations";]]> + private static final String GETS_TIMER_DESCRIPTION = "Tracks all GET operations";]]> + - org.eclipse.microprofile.metrics.Counter org.eclipse.microprofile.metrics.MetricRegistry @@ -151,7 +152,8 @@ + private MetricRegistry registry;]]> + +]]> + static org.junit.jupiter.api.Assertions.assertEquals diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/metrics-microprofile.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/microprofile-output.xml similarity index 96% rename from archetypes/archetypes/src/main/archetype/mp/custom/metrics-microprofile.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/microprofile-output.xml index cadbadcebc5..99dbea2cb2a 100644 --- a/archetypes/archetypes/src/main/archetype/mp/custom/metrics-microprofile.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/microprofile-output.xml @@ -115,6 +115,7 @@ + ${metrics.provider} +]]> + @@ -154,7 +156,8 @@ curl -H 'Accept: application/json' -X GET http://localhost:8080/metrics private static final String PERSONALIZED_GETS_COUNTER_NAME = "personalizedGets"; private static final String PERSONALIZED_GETS_COUNTER_DESCRIPTION = "Counts personalized GET operations"; private static final String GETS_TIMER_NAME = "allGets"; - private static final String GETS_TIMER_DESCRIPTION = "Tracks all GET operations";]]> + private static final String GETS_TIMER_DESCRIPTION = "Tracks all GET operations";]]> + org.eclipse.microprofile.metrics.Counter @@ -175,12 +178,14 @@ curl -H 'Accept: application/json' -X GET http://localhost:8080/metrics static void clear() { MetricsFactory.closeAll(); } -]]> +]]> + + private MetricRegistry registry;]]> + io.helidon.microprofile.metrics diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/Dockerfile.native.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/Dockerfile.native.mustache new file mode 100644 index 00000000000..4ff85c6391e --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/Dockerfile.native.mustache @@ -0,0 +1,39 @@ + +# 1st stage, build the app +FROM ghcr.io/graalvm/graalvm-community:21.0.0-ol9 as build + +WORKDIR /usr/share + +# Install maven +RUN set -x && \ + curl -O https://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz && \ + tar -xvf apache-maven-*-bin.tar.gz && \ + rm apache-maven-*-bin.tar.gz && \ + mv apache-maven-* maven && \ + ln -s /usr/share/maven/bin/mvn /bin/ + +WORKDIR /helidon + +# Create a first layer to cache the "Maven World" in the local repository. +# Incremental docker builds will always resume after that, unless you update +# the pom +ADD pom.xml . +RUN mvn package -Pnative-image -Dnative.image.skip -Dmaven.test.skip -Declipselink.weave.skip + +# Do the Maven build! +# Incremental docker builds will resume here when you change sources +ADD src src +RUN mvn package -Pnative-image -Dnative.image.buildStatic -DskipTests + +RUN echo "done!" + +# 2nd stage, build the runtime image +FROM scratch +WORKDIR /helidon + +# Copy the binary built in the 1st stage +COPY --from=build /helidon/target/{{artifactId}} . + +ENTRYPOINT ["./{{artifactId}}"] + +EXPOSE 8080 diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/README.native.md b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/README.native.md new file mode 100644 index 00000000000..13e443e87c5 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/README.native.md @@ -0,0 +1,12 @@ +The generation of native binaries requires an installation of GraalVM 22.1.0+. + +You can build a native binary using Maven as follows: + +``` +mvn -Pnative-image install -DskipTests +``` + +The generation of the executable binary may take a few minutes to complete depending on +your hardware and operating system. When completed, the executable file will be available +under the `target` directory and be named after the artifact ID you have chosen during the +project generation phase. diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/files/README.native.md.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/README.native.md.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/custom/files/README.native.md.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/README.native.md.mustache diff --git a/archetypes/archetypes/src/main/archetype/common/files/src/main/resources/META-INF/native-image/groupid/artifactid/native-image.properties.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/src/main/resources/META-INF/native-image/groupid/artifactid/native-image.properties.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/src/main/resources/META-INF/native-image/groupid/artifactid/native-image.properties.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/src/main/resources/META-INF/native-image/groupid/artifactid/native-image.properties.mustache diff --git a/archetypes/archetypes/src/main/archetype/common/files/src/main/resources/META-INF/native-image/jakarta/xml/bind/jakarta.xml.bind-api/resource-config.json b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/src/main/resources/META-INF/native-image/jakarta/xml/bind/jakarta.xml.bind-api/resource-config.json similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/src/main/resources/META-INF/native-image/jakarta/xml/bind/jakarta.xml.bind-api/resource-config.json rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/files/src/main/resources/META-INF/native-image/jakarta/xml/bind/jakarta.xml.bind-api/resource-config.json diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/inputs.xml new file mode 100644 index 00000000000..5b06cf7c311 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/inputs.xml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/common/sources.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/output.xml similarity index 64% rename from archetypes/archetypes/src/main/archetype/common/sources.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/output.xml index 91f689d9343..16cd563df41 100644 --- a/archetypes/archetypes/src/main/archetype/common/sources.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/output.xml @@ -1,7 +1,7 @@ + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/README.md b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/README.md new file mode 100644 index 00000000000..11f8d94f10a --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/README.md @@ -0,0 +1,5 @@ +# Legacy folder + +This folder exist to keep backward compatibility with generated code from the archetype before +the layout refactoring. The plan is to remove and it and merge the content with the matching `output.xml` file +once the test coverage is much better. \ No newline at end of file diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/abac-output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/abac-output.xml new file mode 100644 index 00000000000..ed29b599461 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/abac-output.xml @@ -0,0 +1,36 @@ + + + + + + + + + io.helidon.security.providers + helidon-security-providers-abac + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/files/config.yaml.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/files/config.yaml.mustache new file mode 100644 index 00000000000..ebbb7ffb4a2 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/files/config.yaml.mustache @@ -0,0 +1,10 @@ + + security: + defaults: + authenticate: true + web-server: + # protected paths on the web server - do not include paths served by Jersey, as those are protected directly + paths: + {{#paths-config-entries}} + {{.}} + {{/paths-config-entries}} diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/google-output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/google-output.xml new file mode 100644 index 00000000000..5cb5e9ee7a4 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/google-output.xml @@ -0,0 +1,44 @@ + + + + + + + + + io.helidon.security.providers + helidon-security-providers-google-login + + + + + + + + io.helidon.webserver.context + io.helidon.webserver.staticcontent + io.helidon.security.providers.google.login + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/http-signature-output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/http-signature-output.xml new file mode 100644 index 00000000000..8f588095091 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/http-signature-output.xml @@ -0,0 +1,34 @@ + + + + + + + + + + io.helidon.security.providers + helidon-security-providers-http-sign + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/jwt-output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/jwt-output.xml new file mode 100644 index 00000000000..e0cb75641e3 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/jwt-output.xml @@ -0,0 +1,30 @@ + + + + + + + + io.helidon.webserver.context + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/legacy.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/legacy.xml new file mode 100644 index 00000000000..57338ebd5f3 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/legacy.xml @@ -0,0 +1,28 @@ + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/output.xml new file mode 100644 index 00000000000..9dee6e034e9 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/legacy/output.xml @@ -0,0 +1,32 @@ + + + + + + + true + true + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/security-outputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/output.xml similarity index 89% rename from archetypes/archetypes/src/main/archetype/mp/custom/security-outputs.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/security/output.xml index 93aa72fbe53..f894609352b 100644 --- a/archetypes/archetypes/src/main/archetype/mp/custom/security-outputs.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/security/output.xml @@ -1,7 +1,7 @@ + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/legacy/legacy.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/legacy/legacy.xml new file mode 100644 index 00000000000..af7adda1efe --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/legacy/legacy.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/tracing-outputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/output.xml similarity index 87% rename from archetypes/archetypes/src/main/archetype/mp/custom/tracing-outputs.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/output.xml index cdeb17729b0..3226afea3f6 100644 --- a/archetypes/archetypes/src/main/archetype/mp/custom/tracing-outputs.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/output.xml @@ -1,7 +1,7 @@ + + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/custom-mp.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/custom/output.xml similarity index 65% rename from archetypes/archetypes/src/main/archetype/mp/custom/custom-mp.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/custom/output.xml index da43804981e..8724c364151 100644 --- a/archetypes/archetypes/src/main/archetype/mp/custom/custom-mp.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/custom/output.xml @@ -1,7 +1,7 @@ + + + + + json + + true + microprofile + true + true + true + false + + false + true + true + true + true + false + false + true + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/database/database-mp.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/database/output.xml similarity index 75% rename from archetypes/archetypes/src/main/archetype/mp/database/database-mp.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/database/output.xml index 5a3b9397802..bca8217a642 100644 --- a/archetypes/archetypes/src/main/archetype/mp/database/database-mp.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/database/output.xml @@ -1,7 +1,7 @@ Helidon MP application that uses JPA with an in-memory H2 database. - - - diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/README-Description.md b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README-Description.md similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/README-Description.md rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README-Description.md diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README.md.docker.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README.md.docker.mustache new file mode 100644 index 00000000000..e2ab33fa0a3 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README.md.docker.mustache @@ -0,0 +1,5 @@ + +``` +docker run --rm -p 8080:8080 -v ~/.oci:/root/.oci:ro {{artifactId}}:latest +``` +This will mount `~/.oci` as a volume in the running docker container. diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README.md.run-commands.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README.md.run-commands.mustache new file mode 100644 index 00000000000..4d5a64f0a08 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README.md.run-commands.mustache @@ -0,0 +1,35 @@ + +### Build the application + +1. Build without running a test + ```bash + mvn clean package -DskipTests + ``` +2. Build with run default test profile using mocked unit tests + ```bash + mvn clean package + ``` +3. Build and run `test` test profile that performs authentication for OCI services via .oci config file + ```bash + mvn clean package -Ptest + ``` +4. Build and execute `prod` test profile that performs OCI services authentication via instance +principal when running it in an oci compute instance. + ```bash + mvn clean package -Pprod + ``` + +### Run the application + +1. Default with no profile will use `config_file,instance_principals,resource_principal` authentication strategy + ```bash + java -jar server/target/{{artifactId}}.jar + ``` +2. `test` profile will use user principal via oci config file authentication + ```bash + java -Dconfig.profile=test -jar server/target/{{artifactId}}.jar + ``` +3. `prod` profile will use instance principal authentication + ```bash + java -Dconfig.profile=prod -jar server/target/{{artifactId}}.jar + ``` diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/client/README.md.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/client/README.md.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/client/README.md.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/client/README.md.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/client/pom.xml.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/client/pom.xml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/client/pom.xml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/client/pom.xml.mustache diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/maven-plugins.xml.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/maven-plugins.xml.mustache new file mode 100644 index 00000000000..0d5b1ae423e --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/maven-plugins.xml.mustache @@ -0,0 +1,48 @@ + + io.smallrye + jandex-maven-plugin + + + make-index + + + + + org.openapitools + openapi-generator-maven-plugin + + + generate-server + + generate + + + ${skipOpenApiGenerate} + ${project.basedir}/../spec/api.yaml + java-helidon-server + false + false + false + false + ${project.build.directory}/generated-sources/server + + {{package}}.server.api + false + {{helidon-version}} + mp + {{package}}.server.model + jackson + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + **/*MockedTest + + + \ No newline at end of file diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/maven-profiles.xml.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/maven-profiles.xml.mustache new file mode 100644 index 00000000000..fd3b60d5013 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/maven-profiles.xml.mustache @@ -0,0 +1,35 @@ + + + + test + + + + org.apache.maven.plugins + maven-surefire-plugin + + + **/*ConfigFileTest + + + + + + + + prod + + + + org.apache.maven.plugins + maven-surefire-plugin + + + **/*InstancePrincipalTest + + + + + + + \ No newline at end of file diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/pom.xml.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/pom.xml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/pom.xml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/pom.xml.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/README.md.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/README.md.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/README.md.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/README.md.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/java/__pkg__/server/GreetLivenessCheck.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetLivenessCheck.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/java/__pkg__/server/GreetLivenessCheck.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetLivenessCheck.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/java/__pkg__/server/GreetReadinessCheck.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetReadinessCheck.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/java/__pkg__/server/GreetReadinessCheck.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetReadinessCheck.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/java/__pkg__/server/GreetResource.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetResource.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/java/__pkg__/server/GreetResource.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetResource.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/java/__pkg__/server/GreetingProvider.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetingProvider.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/java/__pkg__/server/GreetingProvider.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetingProvider.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/java/__pkg__/server/package-info.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/package-info.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/java/__pkg__/server/package-info.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/package-info.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/resources/META-INF/microprofile-config-prod.properties b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/resources/META-INF/microprofile-config-prod.properties similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/resources/META-INF/microprofile-config-prod.properties rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/resources/META-INF/microprofile-config-prod.properties diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/resources/META-INF/microprofile-config-test.properties b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/resources/META-INF/microprofile-config-test.properties similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/main/resources/META-INF/microprofile-config-test.properties rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/resources/META-INF/microprofile-config-test.properties diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/test/java/__pkg__/server/Common.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/Common.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/test/java/__pkg__/server/Common.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/Common.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/test/java/__pkg__/server/GreetResourceConfigFileTest.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/GreetResourceConfigFileTest.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/test/java/__pkg__/server/GreetResourceConfigFileTest.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/GreetResourceConfigFileTest.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/test/java/__pkg__/server/GreetResourceInstancePrincipalTest.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/GreetResourceInstancePrincipalTest.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/test/java/__pkg__/server/GreetResourceInstancePrincipalTest.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/GreetResourceInstancePrincipalTest.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/test/java/__pkg__/server/GreetResourceMockedTest.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/GreetResourceMockedTest.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/server/src/test/java/__pkg__/server/GreetResourceMockedTest.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/GreetResourceMockedTest.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/spec/README.md b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/spec/README.md similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/spec/README.md rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/spec/README.md diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/files/spec/api.yaml b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/spec/api.yaml similarity index 100% rename from archetypes/archetypes/src/main/archetype/mp/oci/files/spec/api.yaml rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/spec/api.yaml diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/inputs.xml new file mode 100644 index 00000000000..1ca6c35380b --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/inputs.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /nodes/mp/features/common/files + + .helidon.mustache + README.md.mustache + .gitignore.mustache + + + + 1.1.0 + + + io.helidon.logging + helidon-logging-jul + runtime + + + + + + + + server + true + + + false + true + false + false + true + false + false + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/oci/oci-mp.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/output.xml similarity index 63% rename from archetypes/archetypes/src/main/archetype/mp/oci/oci-mp.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/output.xml index 5b0d9ea67de..9f1ae97491c 100644 --- a/archetypes/archetypes/src/main/archetype/mp/oci/oci-mp.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/output.xml @@ -1,7 +1,7 @@ + + + + + json + + true + microprofile + true + true + true + false + + false + true + true + true + true + false + false + false + + + diff --git a/archetypes/archetypes/src/main/archetype/mp/quickstart/quickstart-mp.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/quickstart/output.xml similarity index 91% rename from archetypes/archetypes/src/main/archetype/mp/quickstart/quickstart-mp.xml rename to archetypes/archetypes/src/main/archetype/nodes/mp/nodes/quickstart/output.xml index a88e63cc175..45f5686e773 100644 --- a/archetypes/archetypes/src/main/archetype/mp/quickstart/quickstart-mp.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/nodes/quickstart/output.xml @@ -1,7 +1,7 @@ + + + + + + + + + ${app-type} + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/steps/customize-project.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/customize-project.xml new file mode 100644 index 00000000000..a899e4ec96a --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/customize-project.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/steps/database.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/database.xml new file mode 100644 index 00000000000..dc0c2d0c812 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/database.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/steps/extra.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/extra.xml new file mode 100644 index 00000000000..adee67ac385 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/extra.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/steps/media.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/media.xml new file mode 100644 index 00000000000..17066a0e08b --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/media.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/steps/observability-output.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/observability-output.xml new file mode 100644 index 00000000000..b6e0370cc32 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/observability-output.xml @@ -0,0 +1,34 @@ + + + + + + + true + + + io.helidon.microprofile.metrics + helidon-microprofile-metrics + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/steps/observability.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/observability.xml new file mode 100644 index 00000000000..c6adaab8ed0 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/observability.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/steps/packaging.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/packaging.xml new file mode 100644 index 00000000000..480324e7171 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/packaging.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/steps/security.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/security.xml new file mode 100644 index 00000000000..c5a939c4c91 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/security.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/mp/steps/steps.xml b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/steps.xml new file mode 100644 index 00000000000..b5864d8c3fa --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/mp/steps/steps.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/.gitignore.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/.gitignore.mustache new file mode 100644 index 00000000000..d952d72e9c2 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/.gitignore.mustache @@ -0,0 +1,39 @@ +# Compiled class file +*.class + +# Maven +target/ +.m2/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# IntelliJ Idea +.idea/* +!.idea/runConfigurations +*.iws +*.ipr +*.iml +*.releaseBackup +atlassian-ide-plugin.xml + +# Netbeans +nbactions.xml +nb-configuration.xml + +# Eclipse +.settings +.settings/ +.project +.classpath +.factorypath + +{{#gitignore}} +{{.}} +{{/gitignore}} diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/.helidon.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/.helidon.mustache new file mode 100644 index 00000000000..e4a1bbad842 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/.helidon.mustache @@ -0,0 +1,6 @@ +#Helidon Project Configuration +#{{current-date}} +schema.version={{dot-helidon-schema-version}} +helidon.version={{helidon-version}} +project.flavor={{flavor}} +project.archetype={{app-type}} diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/README.md.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/README.md.mustache new file mode 100644 index 00000000000..fa778d0ee47 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/README.md.mustache @@ -0,0 +1,29 @@ +# {{artifactId}} + +{{readme-description}} + +## Build and run + +{{#readme-run-notes}} +{{.}} +{{/readme-run-notes}} + +{{#readme-run-commands}} +{{.}} +{{/readme-run-commands}} +{{^readme-run-commands}} +With JDK21 +```bash +mvn package +java -jar target/{{artifactId}}.jar +``` +{{/readme-run-commands}} + +## Exercise the application +{{#readme-exercise-the-application}} +{{.}} +{{/readme-exercise-the-application}} + +{{#readme-sections}} +{{.}} +{{/readme-sections}} diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/main/java/__pkg__/Main.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/main/java/__pkg__/Main.java.mustache new file mode 100644 index 00000000000..dc7c0a188b1 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/main/java/__pkg__/Main.java.mustache @@ -0,0 +1,78 @@ + +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}} + +{{main-class-javadoc}} +public class Main { + +{{#main-class-fields}} +{{.}} +{{/main-class-fields}} + + {{main-method-javadoc}} + public static void main(String[] args) { + + // load logging configuration + LogConfig.configureRuntime(); + + // initialize global config from default configuration + Config config = Config.create(); + Config.global(config); + + {{#Main-main}} + {{.}} + {{/Main-main}} + + WebServer server = WebServer.builder() + .config(config.get("server")) + {{#Main-server-builder}} + {{.}} + {{/Main-server-builder}} + .routing(Main::routing) + .build() + .start(); + + {{#Main-after-server}} + {{.}} + {{/Main-after-server}} + + System.out.println("WEB server is up! http://localhost:" + server.port() + "/simple-greet"); + {{#Main-logging}} + {{.}} + {{/Main-logging}} + {{#main-method-content}} + {{.}} + {{/main-method-content}} + } + + /** + * Updates HTTP Routing. + */ + static void routing(HttpRouting.Builder routing) { + {{#Main-routing}} + {{.}} + {{/Main-routing}} + routing + {{#Main-routing-builder}} + {{.}}{{#last}}; {{/last}} + {{/Main-routing-builder}} + } +{{#main-class-content}} +{{.}} +{{/main-class-content}} +} \ No newline at end of file diff --git a/archetypes/archetypes/src/main/archetype/se/common/files/src/main/java/__pkg__/package-info.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/main/java/__pkg__/package-info.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/common/files/src/main/java/__pkg__/package-info.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/main/java/__pkg__/package-info.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/common/files/src/main/resources/application.yaml.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/main/resources/application.yaml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/common/files/src/main/resources/application.yaml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/main/resources/application.yaml.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/common/files/src/main/resources/logging.properties.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/main/resources/logging.properties.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/common/files/src/main/resources/logging.properties.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/main/resources/logging.properties.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/common/files/src/test/java/__pkg__/AbstractMainTest.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/test/java/__pkg__/AbstractMainTest.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/common/files/src/test/java/__pkg__/AbstractMainTest.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/test/java/__pkg__/AbstractMainTest.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/common/files/src/test/java/__pkg__/MainIT.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/test/java/__pkg__/MainIT.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/common/files/src/test/java/__pkg__/MainIT.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/test/java/__pkg__/MainIT.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/common/files/src/test/java/__pkg__/MainTest.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/test/java/__pkg__/MainTest.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/common/files/src/test/java/__pkg__/MainTest.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/test/java/__pkg__/MainTest.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/common/files/src/test/resources/application-test.yaml.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/test/resources/application-test.yaml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/common/files/src/test/resources/application-test.yaml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/common/files/src/test/resources/application-test.yaml.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/common/common-se.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/output.xml similarity index 62% rename from archetypes/archetypes/src/main/archetype/se/common/common-se.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/features/common/output.xml index 8aa5442fb25..067cb8bcce0 100644 --- a/archetypes/archetypes/src/main/archetype/se/common/common-se.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/common/output.xml @@ -1,7 +1,7 @@ + + + + true + + + io.helidon.webserver + helidon-webserver-cors + + + io.helidon.cors + helidon-cors + + + + io.helidon.webserver.cors + io.helidon.cors + java.logging + + + + io.helidon.cors.CrossOriginConfig + io.helidon.webserver.cors.CorsSupport + + + java.util.logging.Logger + + + + + + + + + + + { + Logger.getLogger(Main.class.getName()).info("Using the override configuration"); + corsBuilder.mappedConfig(c); + }); + corsBuilder + .config(restrictiveConfig) // restricted sharing for PUT, DELETE + .addCrossOrigin(CrossOriginConfig.create()) // open sharing for other methods + .build(); + + return corsBuilder.build(); + } +]]> + + + + java.util.Optional + + + io.helidon.http.Headers + io.helidon.cors.CrossOriginConfig + + + io.helidon.http.HeaderNames.ACCESS_CONTROL_ALLOW_ORIGIN + io.helidon.http.HeaderNames.HOST + io.helidon.http.HeaderNames.ORIGIN + org.hamcrest.CoreMatchers.containsString + + + it + .set(ORIGIN, "http://foo.com") + .set(HOST, "here.com")) + .request()) { + + assertThat(response.status().code(), is(200)); + String payload = response.entity().as(String.class); + assertThat(payload, containsString("Hello World")); + Headers responseHeaders = response.headers(); + Optional allowOrigin = responseHeaders.value(ACCESS_CONTROL_ALLOW_ORIGIN); + assertThat("Expected CORS header " + CrossOriginConfig.ACCESS_CONTROL_ALLOW_ORIGIN + " is absent", + allowOrigin.isPresent(), is(true)); + assertThat(allowOrigin.get(), is("*")); + } + } +]]> + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/README.md.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/README.md.mustache new file mode 100644 index 00000000000..603ca996cc2 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/README.md.mustache @@ -0,0 +1,8 @@ + +### Database Setup + +In the `pom.xml` and `application.yaml` we provide configuration needed for {{server}} database. +Start your database before running this example. + +Example docker commands to start databases in temporary containers: +{{start-db}} diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/application-jdbc.yaml.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/application-jdbc.yaml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/application-jdbc.yaml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/application-jdbc.yaml.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/application-mongo.yaml.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/application-mongo.yaml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/application-mongo.yaml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/application-mongo.yaml.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/application-test-jdbc.yaml.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/application-test-jdbc.yaml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/application-test-jdbc.yaml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/application-test-jdbc.yaml.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/application-test-mongo.yaml.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/application-test-mongo.yaml.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/application-test-mongo.yaml.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/application-test-mongo.yaml.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/src/main/java/__pkg__/Pokemon.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/java/__pkg__/Pokemon.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/src/main/java/__pkg__/Pokemon.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/java/__pkg__/Pokemon.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/src/main/java/__pkg__/PokemonMapper.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/java/__pkg__/PokemonMapper.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/src/main/java/__pkg__/PokemonMapper.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/java/__pkg__/PokemonMapper.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/src/main/java/__pkg__/PokemonMapperProvider.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/java/__pkg__/PokemonMapperProvider.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/src/main/java/__pkg__/PokemonMapperProvider.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/java/__pkg__/PokemonMapperProvider.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/src/main/java/__pkg__/PokemonService.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/java/__pkg__/PokemonService.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/src/main/java/__pkg__/PokemonService.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/java/__pkg__/PokemonService.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/src/main/resources/META-INF/services/io.helidon.dbclient.spi.DbMapperProvider.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/resources/META-INF/services/io.helidon.dbclient.spi.DbMapperProvider.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/src/main/resources/META-INF/services/io.helidon.dbclient.spi.DbMapperProvider.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/resources/META-INF/services/io.helidon.dbclient.spi.DbMapperProvider.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/src/main/resources/pokemon-types.json b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/resources/pokemon-types.json similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/src/main/resources/pokemon-types.json rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/resources/pokemon-types.json diff --git a/archetypes/archetypes/src/main/archetype/se/database/files/src/main/resources/pokemons.json b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/resources/pokemons.json similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/database/files/src/main/resources/pokemons.json rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/src/main/resources/pokemons.json diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/database/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/inputs.xml new file mode 100644 index 00000000000..b9afb0aee99 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/inputs.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/se/custom/database-output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/output.xml similarity index 93% rename from archetypes/archetypes/src/main/archetype/se/custom/database-output.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/features/database/output.xml index 7163f50a199..416a446f681 100644 --- a/archetypes/archetypes/src/main/archetype/se/custom/database-output.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/database/output.xml @@ -36,15 +36,17 @@ + password:]]> + - +]]> + @@ -69,9 +71,10 @@ For details, see https://www.h2database.com/html/cheatSheet.html + password: changeit]]> + - +]]> + @@ -102,7 +106,8 @@ docker run --rm --name mysql -p 3306:3306 \ + password: oracle]]> + +]]> + @@ -145,17 +151,18 @@ For details on an Oracle Docker image, see https://github.com/oracle/docker-imag io.helidon.dbclient.DbClient - + - + - +]]> + @@ -177,10 +184,10 @@ docker run --rm --name mongo -p 27017:27017 mongo - + - + @@ -223,7 +230,7 @@ docker run --rm --name mongo -p 27017:27017 mongo - ../database/files + files src/main/** @@ -279,7 +286,8 @@ docker run --rm --name mongo -p 27017:27017 mongo +]]> + .register("/db", new PokemonService()) @@ -361,7 +369,8 @@ docker run --rm --name mongo -p 27017:27017 mongo response = client.get("/db/pokemon/7").request(String.class); assertThat(response.status(), is(Status.NOT_FOUND_404)); } -]]> +]]> + pokemonNames() { try (JsonReader reader = Json.createReader(PokemonService.class.getResourceAsStream("/pokemons.json"))) { @@ -374,7 +383,8 @@ docker run --rm --name mongo -p 27017:27017 mongo return reader.readArray().stream().map(e -> e.asJsonObject().getString("name")).toList(); } } -]]> +]]> + io.helidon.dbclient @@ -407,23 +417,17 @@ curl -i -X PUT -d '{"id":7,"name":"Raticate","idType":2}' http://localhost:8080/ # Delete Pokémon with id 7 curl -i -X DELETE http://localhost:8080/db/pokemon/7 ``` -]]> +]]> + +]]> + - + ObjectStore/ diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/.dockerignore b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/.dockerignore new file mode 100644 index 00000000000..c8b241f2215 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/.dockerignore @@ -0,0 +1 @@ +target/* \ No newline at end of file diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/Dockerfile.jlink.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/Dockerfile.jlink.mustache new file mode 100644 index 00000000000..4659123c983 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/Dockerfile.jlink.mustache @@ -0,0 +1,35 @@ + +# 1st stage, build the app +FROM container-registry.oracle.com/java/jdk-no-fee-term:21 as build + +WORKDIR /usr/share + +# Install maven +RUN set -x && \ + curl -O https://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz && \ + tar -xvf apache-maven-*-bin.tar.gz && \ + rm apache-maven-*-bin.tar.gz && \ + mv apache-maven-* maven && \ + ln -s /usr/share/maven/bin/mvn /bin/ + +WORKDIR /helidon + +# Create a first layer to cache the "Maven World" in the local repository. +# Incremental docker builds will always resume after that, unless you update +# the pom +ADD pom.xml . +RUN mvn package -Dmaven.test.skip -Declipselink.weave.skip + +# Do the Maven build to create the custom Java Runtime Image +# Incremental docker builds will resume here when you change sources +ADD src src +RUN mvn package -Pjlink-image -DskipTests +RUN echo "done!" + +# 2nd stage, build the final image with the JRI built in the 1st stage + +FROM debian:stretch-slim +WORKDIR /helidon +COPY --from=build /helidon/target/{{artifactId}}-jri ./ +ENTRYPOINT ["/bin/bash", "/helidon/bin/start"] +EXPOSE 8080 diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/Dockerfile.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/Dockerfile.mustache new file mode 100644 index 00000000000..11f2945897c --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/Dockerfile.mustache @@ -0,0 +1,43 @@ + +# 1st stage, build the app +FROM container-registry.oracle.com/java/jdk-no-fee-term:21 as build + +# Install maven +WORKDIR /usr/share +RUN set -x && \ + curl -O https://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz && \ + tar -xvf apache-maven-*-bin.tar.gz && \ + rm apache-maven-*-bin.tar.gz && \ + mv apache-maven-* maven && \ + ln -s /usr/share/maven/bin/mvn /bin/ + +WORKDIR /helidon + +# Create a first layer to cache the "Maven World" in the local repository. +# Incremental docker builds will always resume after that, unless you update +# the pom +{{#poms}} +{{.}} +{{/poms}} +RUN mvn package -Dmaven.test.skip -Declipselink.weave.skip {{#docker-phase1-options}}{{.}}{{^last}} {{/last}}{{/docker-phase1-options}} + +# Do the Maven build! +# Incremental docker builds will resume here when you change sources +{{#src-dirs}} +{{.}} +{{/src-dirs}} +RUN mvn package -DskipTests + +RUN echo "done!" + +# 2nd stage, build the runtime image +FROM container-registry.oracle.com/java/jdk-no-fee-term:21 +WORKDIR /helidon + +# Copy the binary built in the 1st stage +COPY --from=build /helidon/{{#module-dir}}{{.}}/{{/module-dir}}target/{{artifactId}}.jar ./ +COPY --from=build /helidon/{{#module-dir}}{{.}}/{{/module-dir}}target/libs ./libs + +CMD ["java", "-jar", "{{artifactId}}.jar"] + +EXPOSE 8080 diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/Dockerfile.native.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/Dockerfile.native.mustache new file mode 100644 index 00000000000..4ff85c6391e --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/Dockerfile.native.mustache @@ -0,0 +1,39 @@ + +# 1st stage, build the app +FROM ghcr.io/graalvm/graalvm-community:21.0.0-ol9 as build + +WORKDIR /usr/share + +# Install maven +RUN set -x && \ + curl -O https://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz && \ + tar -xvf apache-maven-*-bin.tar.gz && \ + rm apache-maven-*-bin.tar.gz && \ + mv apache-maven-* maven && \ + ln -s /usr/share/maven/bin/mvn /bin/ + +WORKDIR /helidon + +# Create a first layer to cache the "Maven World" in the local repository. +# Incremental docker builds will always resume after that, unless you update +# the pom +ADD pom.xml . +RUN mvn package -Pnative-image -Dnative.image.skip -Dmaven.test.skip -Declipselink.weave.skip + +# Do the Maven build! +# Incremental docker builds will resume here when you change sources +ADD src src +RUN mvn package -Pnative-image -Dnative.image.buildStatic -DskipTests + +RUN echo "done!" + +# 2nd stage, build the runtime image +FROM scratch +WORKDIR /helidon + +# Copy the binary built in the 1st stage +COPY --from=build /helidon/target/{{artifactId}} . + +ENTRYPOINT ["./{{artifactId}}"] + +EXPOSE 8080 diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.md.jlink.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.md.jlink.mustache new file mode 100644 index 00000000000..9eeec989e18 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.md.jlink.mustache @@ -0,0 +1,34 @@ + +## Building a Custom Runtime Image + +Build the custom runtime image using the jlink image profile: + +``` +mvn package -Pjlink-image +``` + +This uses the helidon-maven-plugin to perform the custom image generation. +After the build completes it will report some statistics about the build including the reduction in image size. + +The target/{{artifactId}}-jri directory is a self contained custom image of your application. It contains your application, +its runtime dependencies and the JDK modules it depends on. You can start your application using the provide start script: + +``` +./target/{{artifactId}}-jri/bin/start +``` + +Class Data Sharing (CDS) Archive +Also included in the custom image is a Class Data Sharing (CDS) archive that improves your application’s startup +performance and in-memory footprint. You can learn more about Class Data Sharing in the JDK documentation. + +The CDS archive increases your image size to get these performance optimizations. It can be of significant size (tens of MB). +The size of the CDS archive is reported at the end of the build output. + +If you’d rather have a smaller image size (with a slightly increased startup time) you can skip the creation of the CDS +archive by executing your build like this: + +``` +mvn package -Pjlink-image -Djlink.image.addClassDataSharingArchive=false +``` + +For more information on available configuration options see the helidon-maven-plugin documentation. diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.md.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.md.mustache new file mode 100644 index 00000000000..254d62d913c --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.md.mustache @@ -0,0 +1,19 @@ + +## Building the Docker Image + +``` +docker build -t {{artifactId}} . +``` + +## Running the Docker Image + +{{#docker-run-readme-section}} +{{.}} +{{/docker-run-readme-section}} +{{^docker-run-readme-section}} +``` +docker run --rm -p 8080:8080 {{artifactId}}:latest +``` +{{/docker-run-readme-section}} + +Exercise the application as described above. diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.md.native-image.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.md.native-image.mustache new file mode 100644 index 00000000000..15b9c34dd0f --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.md.native-image.mustache @@ -0,0 +1,6 @@ + +## Building a Native Image + +{{#native-sections}} +{{.}} +{{/native-sections}} diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.native.md b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.native.md new file mode 100644 index 00000000000..13e443e87c5 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/files/README.native.md @@ -0,0 +1,12 @@ +The generation of native binaries requires an installation of GraalVM 22.1.0+. + +You can build a native binary using Maven as follows: + +``` +mvn -Pnative-image install -DskipTests +``` + +The generation of the executable binary may take a few minutes to complete depending on +your hardware and operating system. When completed, the executable file will be available +under the `target` directory and be named after the artifact ID you have chosen during the +project generation phase. diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/inputs.xml new file mode 100644 index 00000000000..bbc058c29a3 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/inputs.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/output.xml new file mode 100644 index 00000000000..b94452f153a --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/docker/output.xml @@ -0,0 +1,60 @@ + + + + + + + files + + .dockerignore + + + + files + + Dockerfile.mustache + Dockerfile.native.mustache + Dockerfile.jlink.mustache + + + + + ADD pom.xml . + + + ADD src src + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/FtService.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/fault-tolerance/files/src/main/java/__pkg__/FtService.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/FtService.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/fault-tolerance/files/src/main/java/__pkg__/FtService.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/custom/extra.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/fault-tolerance/output.xml similarity index 93% rename from archetypes/archetypes/src/main/archetype/se/custom/extra.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/features/fault-tolerance/output.xml index 2d70312d83d..eec94a9d218 100644 --- a/archetypes/archetypes/src/main/archetype/se/custom/extra.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/fault-tolerance/output.xml @@ -1,7 +1,7 @@ + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/health/output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/health/output.xml new file mode 100644 index 00000000000..04c095de852 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/health/output.xml @@ -0,0 +1,86 @@ + + + + + + + + true + + + + + + + + ${health.builtin} + + + io.helidon.webserver.observe + helidon-webserver-observe-health + + + io.helidon.health + helidon-health-checks + + + + org.hamcrest.CoreMatchers.containsString + + + + + + + + + + + io.helidon.webserver.observe.health + io.helidon.health.checks + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/jpms/files/src/main/java/module-info.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/jpms/files/src/main/java/module-info.java.mustache new file mode 100644 index 00000000000..4e520db9fc8 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/jpms/files/src/main/java/module-info.java.mustache @@ -0,0 +1,15 @@ + +module {{package}} { +{{#module-requires}} + requires {{.}}; +{{/module-requires}} + + exports {{package}}; + +{{#module-opens}} + opens {{.}}; +{{/module-opens}} +{{#module-opens-package}} + opens {{package}}; +{{/module-opens-package}} +} \ No newline at end of file diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/jpms/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/jpms/inputs.xml new file mode 100644 index 00000000000..e872023244b --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/jpms/inputs.xml @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/jpms/output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/jpms/output.xml new file mode 100644 index 00000000000..6775591e5cc --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/jpms/output.xml @@ -0,0 +1,30 @@ + + + + + + files + + src/main/java/**/module-info.java.mustache + + + + diff --git a/archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/FileService.java.multipart.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/java/__pkg__/FileService.java.multipart.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/FileService.java.multipart.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/java/__pkg__/FileService.java.multipart.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/GreetService.java.json.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/java/__pkg__/GreetService.java.json.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/GreetService.java.json.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/java/__pkg__/GreetService.java.json.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/GreetService.java.jsonp.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/java/__pkg__/GreetService.java.jsonp.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/GreetService.java.jsonp.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/java/__pkg__/GreetService.java.jsonp.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/GreetService.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/java/__pkg__/GreetService.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/GreetService.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/java/__pkg__/GreetService.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/Message.java.json.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/java/__pkg__/Message.java.json.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/Message.java.json.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/java/__pkg__/Message.java.json.mustache diff --git a/archetypes/archetypes/src/main/archetype/se/custom/files/src/main/resources/WEB/index.html b/archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/resources/WEB/index.html similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/custom/files/src/main/resources/WEB/index.html rename to archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/resources/WEB/index.html diff --git a/archetypes/archetypes/src/main/archetype/se/custom/database-inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/media/inputs.xml similarity index 51% rename from archetypes/archetypes/src/main/archetype/se/custom/database-inputs.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/features/media/inputs.xml index ece226d03df..9ea6bde896e 100644 --- a/archetypes/archetypes/src/main/archetype/se/custom/database-inputs.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/media/inputs.xml @@ -1,7 +1,7 @@ + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/media/output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/media/output.xml new file mode 100644 index 00000000000..b9d8e5cf515 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/media/output.xml @@ -0,0 +1,238 @@ + + + + + + + + + + jakarta.json.JsonObject + + + response = client.get("/greet").request(JsonObject.class); + assertThat(response.status(), is(Status.OK_200)); + assertThat(response.entity().getString("message"), is("Hello World!")); + } +]]> + + + + + + + + + + + com.fasterxml.jackson.core + jackson-databind + + + io.helidon.http.media + helidon-http-media-jackson + + + + com.fasterxml.jackson.annotation + com.fasterxml.jackson.core + + + + + + + + + + io.helidon.http.media + helidon-http-media-jsonb + + + + response = client.get("/greet").request(Message.class); + assertThat(response.status(), is(Status.OK_200)); + assertThat(response.entity().getMessage(), is("Hello World!")); + } + + @Test + void testGreetJoe() { + ClientResponseTyped response = client.get("/greet/Joe").request(Message.class); + assertThat(response.status(), is(Status.OK_200)); + assertThat(response.entity().getMessage(), is("Hello Joe!")); + } +]]> + + + + jakarta.json.bind + + + + + + + + + + io.helidon.http.media + helidon-http-media-multipart + + + io.helidon.webserver + helidon-webserver-static-content + + + + io.helidon.http.media.multipart + io.helidon.webserver.staticcontent + + + WEB + + + io.helidon.http.Status + io.helidon.http.HeaderNames + io.helidon.http.HeaderValues + io.helidon.webserver.staticcontent.StaticContentService + + + { + res.status(Status.MOVED_PERMANENTLY_301); + res.header(HeaderValues.createCached(HeaderNames.LOCATION, "/ui")); + res.send(); + }) + .register("/ui", StaticContentService.builder("WEB") + .welcomeFileName("index.html") + .build()) + .register("/api", new FileService())]]> + + + + + + + + + + + + + + + + + + + files + + src/*/java/**/SimpleGreetResource.java.mustache + src/*/java/**/GreetService.java.mustache + + + + files + + src/*/java/**/*.java.jsonp.mustache + + + + files + + src/*/java/**/*.json.mustache + + + + files + + src/*/java/**/*.multipart.mustache + + + + + true + false + true + false + ${media.json-lib} + true + + + + + + + jakarta.json + jakarta.json-api + + + io.helidon.http.media + helidon-http-media-jsonp + + + + jakarta.json + + + + + + + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/metrics/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/metrics/inputs.xml new file mode 100644 index 00000000000..c0711972343 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/metrics/inputs.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/metrics/output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/metrics/output.xml new file mode 100644 index 00000000000..66ff8933c68 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/metrics/output.xml @@ -0,0 +1,82 @@ + + + + + + + + + true + + + + + + + + ${metrics.builtin} + + + io.helidon.webserver.observe + helidon-webserver-observe-metrics + + + io.helidon.metrics + helidon-metrics-system-meters + runtime + + + + + + + + io.helidon.webserver.observe.metrics + io.helidon.metrics.api + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/files/Dockerfile.native.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/files/Dockerfile.native.mustache new file mode 100644 index 00000000000..4ff85c6391e --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/files/Dockerfile.native.mustache @@ -0,0 +1,39 @@ + +# 1st stage, build the app +FROM ghcr.io/graalvm/graalvm-community:21.0.0-ol9 as build + +WORKDIR /usr/share + +# Install maven +RUN set -x && \ + curl -O https://archive.apache.org/dist/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz && \ + tar -xvf apache-maven-*-bin.tar.gz && \ + rm apache-maven-*-bin.tar.gz && \ + mv apache-maven-* maven && \ + ln -s /usr/share/maven/bin/mvn /bin/ + +WORKDIR /helidon + +# Create a first layer to cache the "Maven World" in the local repository. +# Incremental docker builds will always resume after that, unless you update +# the pom +ADD pom.xml . +RUN mvn package -Pnative-image -Dnative.image.skip -Dmaven.test.skip -Declipselink.weave.skip + +# Do the Maven build! +# Incremental docker builds will resume here when you change sources +ADD src src +RUN mvn package -Pnative-image -Dnative.image.buildStatic -DskipTests + +RUN echo "done!" + +# 2nd stage, build the runtime image +FROM scratch +WORKDIR /helidon + +# Copy the binary built in the 1st stage +COPY --from=build /helidon/target/{{artifactId}} . + +ENTRYPOINT ["./{{artifactId}}"] + +EXPOSE 8080 diff --git a/archetypes/archetypes/src/main/archetype/se/custom/files/README.md.native.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/files/README.md.native.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/custom/files/README.md.native.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/files/README.md.native.mustache diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/files/src/main/resources/META-INF/native-image/groupid/artifactid/native-image.properties.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/files/src/main/resources/META-INF/native-image/groupid/artifactid/native-image.properties.mustache new file mode 100644 index 00000000000..6df51e051c3 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/files/src/main/resources/META-INF/native-image/groupid/artifactid/native-image.properties.mustache @@ -0,0 +1 @@ +Args=--initialize-at-build-time={{package}}{{#initialize-at-build-time}},{{.}}{{/initialize-at-build-time}} \ No newline at end of file diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/inputs.xml new file mode 100644 index 00000000000..5b06cf7c311 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/inputs.xml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/output.xml new file mode 100644 index 00000000000..6cf48a826ed --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/native-image/output.xml @@ -0,0 +1,38 @@ + + + + + + + files + + src/*/resources/META-INF/**/*.mustache + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/se/custom/observability.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/output.xml similarity index 91% rename from archetypes/archetypes/src/main/archetype/se/custom/observability.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/features/output.xml index db722caf323..92f8ed323a3 100644 --- a/archetypes/archetypes/src/main/archetype/se/custom/observability.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/output.xml @@ -1,7 +1,7 @@ + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/README.md b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/README.md new file mode 100644 index 00000000000..11f8d94f10a --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/README.md @@ -0,0 +1,5 @@ +# Legacy folder + +This folder exist to keep backward compatibility with generated code from the archetype before +the layout refactoring. The plan is to remove and it and merge the content with the matching `output.xml` file +once the test coverage is much better. \ No newline at end of file diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/abac-output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/abac-output.xml new file mode 100644 index 00000000000..ed29b599461 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/abac-output.xml @@ -0,0 +1,36 @@ + + + + + + + + + io.helidon.security.providers + helidon-security-providers-abac + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/files/config.yaml.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/files/config.yaml.mustache new file mode 100644 index 00000000000..ebbb7ffb4a2 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/files/config.yaml.mustache @@ -0,0 +1,10 @@ + + security: + defaults: + authenticate: true + web-server: + # protected paths on the web server - do not include paths served by Jersey, as those are protected directly + paths: + {{#paths-config-entries}} + {{.}} + {{/paths-config-entries}} diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/google-output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/google-output.xml new file mode 100644 index 00000000000..5cb5e9ee7a4 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/google-output.xml @@ -0,0 +1,44 @@ + + + + + + + + + io.helidon.security.providers + helidon-security-providers-google-login + + + + + + + + io.helidon.webserver.context + io.helidon.webserver.staticcontent + io.helidon.security.providers.google.login + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/http-signature-output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/http-signature-output.xml new file mode 100644 index 00000000000..8f588095091 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/http-signature-output.xml @@ -0,0 +1,34 @@ + + + + + + + + + + io.helidon.security.providers + helidon-security-providers-http-sign + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/jwt-output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/jwt-output.xml new file mode 100644 index 00000000000..e0cb75641e3 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/jwt-output.xml @@ -0,0 +1,30 @@ + + + + + + + + io.helidon.webserver.context + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/legacy.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/legacy.xml new file mode 100644 index 00000000000..57338ebd5f3 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/legacy.xml @@ -0,0 +1,28 @@ + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/output.xml new file mode 100644 index 00000000000..9dee6e034e9 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/legacy/output.xml @@ -0,0 +1,32 @@ + + + + + + + true + true + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/se/custom/security-outputs.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/output.xml similarity index 95% rename from archetypes/archetypes/src/main/archetype/se/custom/security-outputs.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/features/security/output.xml index 5bd5b2e0e51..d1078b205c2 100644 --- a/archetypes/archetypes/src/main/archetype/se/custom/security-outputs.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/security/output.xml @@ -50,13 +50,15 @@ # as a role mapper. Using minimal configuration here client-id: "your-client-id" client-secret: "changeit" - identity-uri: "https://your-tenant-id.identity.oracle.com"]]> + identity-uri: "https://your-tenant-id.identity.oracle.com"]]> + + roles-allowed: ["my_admins"]]]> + @@ -84,7 +86,8 @@ Security security = Security.create(config.get("security")); // this is needed for proper encryption/decryption of cookies Contexts.globalContext().register(security); -]]> +]]> + +]]> + res.send("You have been logged out"))]]> + .get("/loggedout", (req, res) -> res.send("You have been logged out"))]]> + io.helidon.security @@ -134,7 +139,8 @@ Build and run the application and then try the endpoints: 1. Open http://localhost:7987/rest/profile in your browser. This should present you with a response highlighting your logged in role (null) correctly as you are not logged in 2. Open `http://localhost:7987/oidc/logout` in your browser. This will log you out from your IDCS and Helidon sessions -]]> +]]> + @@ -180,7 +186,8 @@ Build and run the application and then try the endpoints: .addProvider(GoogleTokenProvider.builder() .clientId("your-client-id.apps.googleusercontent.com")) .build(); -]]> +]]> + +]]> + +]]> + + System.out.println("Check Google login http://localhost:" + server.port() + "/google-login.html");]]> + + proxy-host: ""]]> + + #}]]> + - +]]> + @@ -301,12 +314,14 @@ Update the following files with your client id (it should support http://localho +]]> + +]]> + +]]> + +]]> + @@ -344,7 +361,7 @@ Update the following files with your client id (it should support http://localho io.helidon.webclient.http1 - +]]> + @@ -367,6 +385,12 @@ curl -u "jill:changeit" http://localhost:8080/override src/*/java/**/Service2.java.mustache + + files + + src/main/resources/keystore.p12 + + @@ -438,19 +462,22 @@ curl -u "jill:changeit" http://localhost:8080/override } }); } -]]> +]]> + +]]> + +]]> + Optional.ofNullable(USERS.get(login)); } -]]> +]]> + socket - .routing(Main::routing2))]]> + .routing(Main::routing2))]]> + @@ -571,7 +600,7 @@ private static void routing2(HttpRouting.Builder routing) { io.helidon.security.providers.httpsign - +]]> + @@ -602,7 +632,8 @@ curl -v -u "john:changeit" http://localhost:8080/service1 - abac: fail-on-unvalidated: true fail-if-none-validated: true -]]> +]]> + @@ -625,7 +656,8 @@ curl -v -u "john:changeit" http://localhost:8080/service1 +]]> + io.helidon.security.integration.common @@ -633,20 +665,7 @@ security: - + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/files/README.jaeger.md b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/files/README.jaeger.md new file mode 100644 index 00000000000..f418b4b3743 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/files/README.jaeger.md @@ -0,0 +1,28 @@ +## Tracing + +### Set up Jaeger + +First, you need to run the Jaeger tracer. Helidon will communicate with this tracer at runtime. + +Run Jaeger within a docker container: +``` +docker run -d --name jaeger\ + -e COLLECTOR_ZIPKIN_HOST_PORT=:9411\ + -e COLLECTOR_OTLP_ENABLED=true\ + -p 6831:6831/udp\ + -p 6832:6832/udp\ + -p 5778:5778\ + -p 16686:16686\ + -p 4317:4317\ + -p 4318:4318\ + -p 14250:14250\ + -p 14268:14268\ + -p 14269:14269\ + -p 9411:9411\ + jaegertracing/all-in-one:1.43 +``` + +### View Tracing Using Jaeger UI + +Jaeger provides a web-based UI at http://localhost:16686, where you can see a visual representation of +the same data and the relationship between spans within a trace. diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/files/README.zipkin.md b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/files/README.zipkin.md new file mode 100644 index 00000000000..d1ae33b0aea --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/files/README.zipkin.md @@ -0,0 +1,47 @@ +## Tracing + +### Set up Zipkin + +First, you need to run the Zipkin tracer. Helidon will communicate with this tracer at runtime. + +Run Zipkin within a docker container, then check the Zipkin server health: +``` +docker run -d --name zipkin -p 9411:9411 openzipkin/zipkin +``` +Run the Zipkin docker image named openzipkin/zipkin. +Check the Zipkin server health: +``` +curl http://localhost:9411/health +``` +Invoke the Zipkin REST API to check the Zipkin server health. +``` +Response body +{ + "status": "UP", + "zipkin": { + "status": "UP", + "details": { + "InMemoryStorage{}": { + "status": "UP" + } + } + } +} +``` +All status fields should be UP. + +### View Tracing Using Zipkin REST API + +Run the curl command and check the response: +``` +curl http://localhost:9411/api/v2/services +``` +Response body +``` +["helidon-mp-1"] +``` + +### View Tracing Using Zipkin UI + +Zipkin provides a web-based UI at http://localhost:9411/zipkin, where you can see a visual representation of +the same data and the relationship between spans within a trace. diff --git a/archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/TracedService.java.mustache b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/files/src/main/java/__pkg__/TracedService.java.mustache similarity index 100% rename from archetypes/archetypes/src/main/archetype/se/custom/files/src/main/java/__pkg__/TracedService.java.mustache rename to archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/files/src/main/java/__pkg__/TracedService.java.mustache diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/inputs.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/inputs.xml new file mode 100644 index 00000000000..6bbea87670a --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/inputs.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/legacy/legacy.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/legacy/legacy.xml new file mode 100644 index 00000000000..af7adda1efe --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/legacy/legacy.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/se/custom/tracing-outputs.xml b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/output.xml similarity index 92% rename from archetypes/archetypes/src/main/archetype/se/custom/tracing-outputs.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/output.xml index 34e3d8f154a..e239c635a22 100644 --- a/archetypes/archetypes/src/main/archetype/se/custom/tracing-outputs.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/output.xml @@ -1,7 +1,7 @@ + + + + + files + + src/*/java/**/WebClientMain.java.mustache + + + + true + + + io.helidon.webclient + helidon-webclient + + + + io.helidon.webclient + + + + + + + org.hamcrest.CoreMatchers.containsString + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/se/se.xml b/archetypes/archetypes/src/main/archetype/nodes/se/inputs.xml similarity index 81% rename from archetypes/archetypes/src/main/archetype/se/se.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/inputs.xml index 10837bdf0f7..5dbbd68c47c 100644 --- a/archetypes/archetypes/src/main/archetype/se/se.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/inputs.xml @@ -29,25 +29,20 @@ optional="true"> - - - ${app-type} - - diff --git a/archetypes/archetypes/src/main/archetype/mp/custom/observability.xml b/archetypes/archetypes/src/main/archetype/nodes/se/nodes/custom/inputs.xml similarity index 84% rename from archetypes/archetypes/src/main/archetype/mp/custom/observability.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/nodes/custom/inputs.xml index ad0cb9d1ee4..3ed83ff1d87 100644 --- a/archetypes/archetypes/src/main/archetype/mp/custom/observability.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/nodes/custom/inputs.xml @@ -19,7 +19,5 @@ - - - + diff --git a/archetypes/archetypes/src/main/archetype/se/custom/custom-se.xml b/archetypes/archetypes/src/main/archetype/nodes/se/nodes/custom/output.xml similarity index 62% rename from archetypes/archetypes/src/main/archetype/se/custom/custom-se.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/nodes/custom/output.xml index 988a0cc38c2..348c537b586 100644 --- a/archetypes/archetypes/src/main/archetype/se/custom/custom-se.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/nodes/custom/output.xml @@ -1,7 +1,7 @@ + + + + json + + true + microprofile + true + true + true + false + + false + true + true + true + true + false + false + false + + + diff --git a/archetypes/archetypes/src/main/archetype/se/quickstart/quickstart-se.xml b/archetypes/archetypes/src/main/archetype/nodes/se/nodes/quickstart/output.xml similarity index 70% rename from archetypes/archetypes/src/main/archetype/se/quickstart/quickstart-se.xml rename to archetypes/archetypes/src/main/archetype/nodes/se/nodes/quickstart/output.xml index d5d6d708822..b004c02471a 100644 --- a/archetypes/archetypes/src/main/archetype/se/quickstart/quickstart-se.xml +++ b/archetypes/archetypes/src/main/archetype/nodes/se/nodes/quickstart/output.xml @@ -1,7 +1,7 @@ - - - false - - + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="https://helidon.io/archetype/2.0 https://helidon.io/xsd/archetype-2.0.xsd"> + Sample Helidon SE project that includes multiple REST operations. diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/output.xml b/archetypes/archetypes/src/main/archetype/nodes/se/output.xml new file mode 100644 index 00000000000..a24846b406b --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/output.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + ${app-type} + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/steps/customize-project.xml b/archetypes/archetypes/src/main/archetype/nodes/se/steps/customize-project.xml new file mode 100644 index 00000000000..a899e4ec96a --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/steps/customize-project.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/steps/database.xml b/archetypes/archetypes/src/main/archetype/nodes/se/steps/database.xml new file mode 100644 index 00000000000..be8376ad599 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/steps/database.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/steps/extra.xml b/archetypes/archetypes/src/main/archetype/nodes/se/steps/extra.xml new file mode 100644 index 00000000000..98c012f92b1 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/steps/extra.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/steps/media.xml b/archetypes/archetypes/src/main/archetype/nodes/se/steps/media.xml new file mode 100644 index 00000000000..d292596432f --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/steps/media.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/steps/observability.xml b/archetypes/archetypes/src/main/archetype/nodes/se/steps/observability.xml new file mode 100644 index 00000000000..74bd3b5e492 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/steps/observability.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/steps/packaging.xml b/archetypes/archetypes/src/main/archetype/nodes/se/steps/packaging.xml new file mode 100644 index 00000000000..2b6184ef34e --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/steps/packaging.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/steps/security.xml b/archetypes/archetypes/src/main/archetype/nodes/se/steps/security.xml new file mode 100644 index 00000000000..fbda21a4ac5 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/steps/security.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/nodes/se/steps/steps.xml b/archetypes/archetypes/src/main/archetype/nodes/se/steps/steps.xml new file mode 100644 index 00000000000..c787837c8f5 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/nodes/se/steps/steps.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/output.xml b/archetypes/archetypes/src/main/archetype/output.xml new file mode 100644 index 00000000000..531ca9fa87b --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/output.xml @@ -0,0 +1,30 @@ + + + + + + + + ${helidon-version} + ${flavor} + + +