From 6bb20914dd3519b43eb03463bf12055369b0e378 Mon Sep 17 00:00:00 2001 From: tvallin Date: Mon, 29 Jul 2024 18:12:36 +0200 Subject: [PATCH 1/2] Create new archetype layout --- .github/workflows/validate.yml | 2 +- .../archetypes/.live-plugins/plugin.groovy | 111 +++ archetypes/archetypes/README.md | 22 + archetypes/archetypes/pom.xml | 3 +- .../archetypes/src/main/archetype/README.md | 17 + .../src/main/archetype/common/common.xml | 64 -- .../archetype/common/customize-project.xml | 54 -- .../src/main/archetype/common/docker.xml | 158 ---- .../src/main/archetype/common/extra.xml | 374 ---------- .../common/files/Dockerfile.jlink.mustache | 35 - .../common/files/Dockerfile.mustache | 43 -- .../common/files/Dockerfile.native.mustache | 39 - .../src/main/java/__pkg__/Main.java.mustache | 37 - .../main/archetype/common/media-sources.xml | 51 -- .../src/main/archetype/common/media.xml | 237 ------ .../main/archetype/common/observability.xml | 245 ------- .../src/main/archetype/common/packaging.xml | 97 --- .../src/main/archetype/common/security.xml | 121 ---- .../src/main/archetype/defaults.xml | 89 +++ .../features/customize-project/inputs.xml | 31 + .../features/customize-project/output.xml | 32 + .../docker}/files/.dockerignore | 0 .../features/docker/files/Dockerfile.hbs | 107 +++ .../features/docker/files/README.md.hbs | 19 + .../main/archetype/features/docker/inputs.xml | 35 + .../main/archetype/features/docker/output.xml | 76 ++ .../features/jlink/files/README.md.hbs | 33 + .../main/archetype/features/jlink/inputs.xml | 29 + .../jlink/output.xml} | 10 +- .../files/src/main/java/module-info.java.hbs} | 11 +- .../main/archetype/features/jpms/inputs.xml | 30 + .../main/archetype/features/jpms/output.xml | 94 +++ .../features/kubernetes/files/README.md.hbs | 33 + .../kubernetes/files/app.yaml.hbs} | 0 .../archetype/features/kubernetes/inputs.xml | 30 + .../archetype/features/kubernetes/output.xml | 38 + .../maven/files/pom.xml.hbs} | 32 +- .../main/archetype/features/maven/inputs.xml | 22 + .../main/archetype/features/maven/output.xml | 31 + .../features/multi-module/files/pom.xml.hbs | 87 +++ .../features/multi-module/inputs.xml | 34 + .../features/multi-module/output.xml | 35 + .../native-image/files/README.md.hbs} | 17 +- .../native-image.properties.mustache | 0 .../features/native-image/inputs.xml | 29 + .../features/native-image/output.xml | 36 + .../.gitignore.hbs} | 0 .../.helidon.mustache => files/.helidon.hbs} | 0 .../README.md.hbs} | 4 +- .../main/java/__pkg__/package-info.java.hbs} | 0 .../main/archetype/{flavor.xml => inputs.xml} | 26 +- .../main/archetype/mp/common/common-mp.xml | 112 --- .../configuration.xml.mustache | 14 - .../java/__pkg__/package-info.java.mustache | 2 - .../microprofile-config.properties.mustache | 24 - .../resources/logging.properties.mustache | 26 - .../microprofile-config.properties.mustache | 3 - .../main/archetype/mp/custom/custom-mp.xml | 112 --- .../archetype/mp/custom/database-input.xml | 51 -- .../archetype/mp/custom/database-outputs.xml | 489 ------------- .../main/archetype/mp/custom/extra-output.xml | 38 - .../mp/custom/files/README.native.md.mustache | 20 - .../main/resources/application.yaml.mustache | 16 - .../mp/custom/metrics-micrometer.xml | 172 ----- .../archetype/mp/custom/security-outputs.xml | 140 ---- .../archetype/mp/custom/tracing-outputs.xml | 93 --- .../src/main/archetype/mp/oci/oci-mp.xml | 439 ----------- .../__pkg__/GreetResource.java.jsonp.mustache | 127 ---- .../files/README-Exercise-Application.md | 9 + .../mp/features/coherence/files/README.md | 3 + .../java/__pkg__/CoherenceResource.java.hbs} | 19 +- .../src/main/java/__pkg__/Person.java.hbs} | 0 .../META-INF/microprofile-config.properties} | 0 .../__pkg__/CoherenceResourceTest.java.hbs} | 8 +- .../mp/features/coherence/output.xml} | 27 +- .../nodes/mp/features/cors/files/README.md | 72 ++ .../src/test/java/__pkg__/TestCORS.java.hbs} | 0 .../nodes/mp/features/cors/output.xml | 77 ++ .../mp/features}/database/files/README.md | 0 .../mp/features/database/files/README.md.hbs | 7 + .../mp/features/database/files/gitignore | 2 + .../src/main/java/__pkg__/Pokemon.java.hbs} | 7 +- .../java/__pkg__/PokemonResource.java.hbs} | 1 - .../main/java/__pkg__/PokemonType.java.hbs} | 1 - .../__pkg__/PokemonTypeResource.java.hbs} | 1 - .../resources/META-INF/persistence.xml.hbs} | 0 .../nodes/mp/features/database/inputs.xml | 48 ++ .../nodes/eclipselink/files/maven-plugins.xml | 23 + .../database/nodes/eclipselink/output.xml | 72 ++ .../database/nodes/h2/files/README.md | 5 + .../main/resources/META-INF/init_script.sql} | 0 .../mp/features/database/nodes/h2/output.xml | 131 ++++ .../nodes/hibernate/files/maven-plugins.xml | 16 + .../main/resources/hibernate.properties.hbs} | 0 .../database/nodes/hibernate/output.xml | 55 ++ .../microprofile-config.properties.hbs | 5 + .../microprofile-config.properties.hbs | 5 + .../database/nodes/hikaricp/output.xml | 44 ++ .../database/nodes/mysql/files/README.md | 9 + .../main/resources/META-INF/init_script.sql | 25 + .../features/database/nodes/mysql/output.xml | 66 ++ .../database/nodes/oracledb/files/README.md | 5 + .../main/resources/META-INF/init_script.sql} | 0 .../database/nodes/oracledb/output.xml | 73 ++ .../microprofile-config.properties.hbs | 4 + .../microprofile-config.properties.hbs | 5 + .../mp/features/database/nodes/ucp/output.xml | 40 ++ .../nodes/mp/features/database/output.xml | 130 ++++ .../fault-tolerance/files/maven-plugins.xml | 9 + .../main/java/__pkg__/FtResource.java.hbs} | 0 .../java/__pkg__/FtResourceTest.java.hbs} | 0 .../mp/features/fault-tolerance/output.xml | 51 ++ .../nodes/mp/features/health/files/README.md | 7 + .../nodes/mp/features/health/output.xml | 52 ++ .../files/src/main/java/__pkg__/Main.java.hbs | 29 + .../nodes/mp/features/jpms/output.xml | 39 + .../nodes/mp/features/media/files/README.md | 13 + .../__pkg__/SimpleGreetResource.java.hbs} | 9 +- .../nodes/mp/features/media/inputs.xml | 30 + .../mp/features/media/nodes/json/inputs.xml | 28 + .../src/main/java/__pkg__/Message.java.hbs | 30 + .../__pkg__/SimpleGreetResource.java.hbs} | 1 - .../media/nodes/json/nodes/jackson/output.xml | 58 ++ .../src/main/java/__pkg__/Message.java.hbs} | 0 .../__pkg__/SimpleGreetResource.java.hbs} | 16 +- .../media/nodes/json/nodes/jsonb/output.xml | 50 ++ .../mp/features/media/nodes/json/output.xml | 26 + .../main/java/__pkg__/FileService.java.hbs} | 0 .../main/java/__pkg__/FileStorage.java.hbs} | 0 .../MultiPartFeatureProvider.java.hbs} | 0 .../java/__pkg__/FileServiceTest.java.hbs} | 3 +- .../features/media/nodes/multipart/output.xml | 59 ++ .../nodes/mp/features/media/output.xml | 40 ++ .../nodes/mp/features/metrics/inputs.xml | 49 ++ .../metrics/nodes/micrometer/output.xml | 26 + .../nodes/microprofile/files/README.md | 13 + .../metrics/nodes/microprofile/output.xml} | 52 +- .../nodes/mp/features/metrics/output.xml | 25 + .../jakarta.xml.bind-api/resource-config.json | 0 .../nodes/mp/features/native-image/output.xml | 30 + .../src/main/resources/application.yaml.hbs | 9 + .../src/main/resources/simple-greet.yaml | 3 + .../src/main/resources/application.yaml} | 0 .../features/security/nodes/abac/output.xml | 39 + .../src/main/resources/application.yaml} | 0 .../main/resources/security-server-paths.yaml | 3 + .../security/nodes/google/output.xml} | 40 +- .../src/main/resources/application.yaml} | 0 .../files/src/main/resources/keystore.p12 | Bin .../security/nodes/http-signature/output.xml} | 32 +- .../java/__pkg__/JwtApplication.java.hbs} | 0 .../main/java/__pkg__/JwtResource.java.hbs} | 0 .../mp/features/security/nodes/jwt/output.xml | 48 ++ .../security/nodes/oidc/files/README.md | 6 + .../main/java/__pkg__/OidcResource.java.hbs} | 0 .../src/main/resources/application.yaml} | 0 .../features/security/nodes/oidc/output.xml | 48 ++ .../nodes/mp/features/security/output.xml | 53 ++ .../nodes/mp/features/tracing/files/README.md | 13 + .../java/__pkg__/TracedResource.java.hbs} | 1 - .../microprofile-config.properties.hbs | 4 + .../features/tracing/nodes/jaeger/output.xml | 36 + .../features/tracing/nodes/zipkin/output.xml | 36 + .../nodes/mp/features/tracing/output.xml | 58 ++ .../main/archetype/nodes/mp/files/README.md | 5 + .../nodes/mp/files/configuration.xml.hbs | 14 + .../nodes/mp/files/maven-plugins.xml | 9 + .../src/main/resources/META-INF/beans.xml | 0 .../resources/META-INF/greeting.properties} | 0 .../microprofile-config.properties.hbs | 10 + .../src/main/resources/application.yaml.hbs | 1 + .../src/test/java/__pkg__/MainTest.java.hbs} | 6 - .../microprofile-config.properties.hbs | 3 + .../{mp/mp.xml => nodes/mp/inputs.xml} | 50 +- .../mp/nodes/database/inputs.xml} | 5 +- .../mp/nodes/database/output.xml} | 9 +- .../mp/nodes/oci/files/README-description.md} | 0 .../oci/files/README-exercise-application.md | 19 + .../nodes/mp/nodes/oci/files/README-k8s.md | 19 + .../mp/nodes/oci/files/README.md.docker.hbs | 5 + .../oci/files/README.md.run-commands.hbs | 35 + .../mp/nodes/oci/files/client/README.md.hbs} | 0 .../mp/nodes/oci/files/client/pom.xml.hbs} | 0 .../mp/nodes/oci/files/plugin-management.xml | 19 + .../mp/nodes/oci/files/pom.xml.hbs} | 0 .../mp/nodes/oci/files/server/README.md.hbs} | 0 .../oci/files/server/maven-plugins.xml.hbs | 48 ++ .../oci/files/server/maven-profiles.xml.hbs | 34 + .../mp/nodes/oci/files/server/pom.xml.hbs | 72 ++ .../server/GreetLivenessCheck.java.hbs} | 0 .../server/GreetReadinessCheck.java.hbs} | 0 .../__pkg__/server/GreetResource.java.hbs} | 0 .../__pkg__/server/GreetingProvider.java.hbs} | 0 .../__pkg__/server/package-info.java.hbs} | 0 .../src/main/resources/META-INF/beans.xml | 8 + .../microprofile-config-prod.properties | 0 .../microprofile-config-test.properties | 0 .../META-INF/microprofile-config.properties | 12 + .../src/main/resources/application.yaml | 14 + .../src/main/resources/logging.properties | 29 + .../test/java/__pkg__/server/Common.java.hbs} | 0 .../GreetResourceConfigFileTest.java.hbs} | 0 ...eetResourceInstancePrincipalTest.java.hbs} | 0 .../server/GreetResourceMockedTest.java.hbs} | 0 .../mp/nodes}/oci/files/spec/README.md | 0 .../mp/nodes}/oci/files/spec/api.yaml | 0 .../archetype/nodes/mp/nodes/oci/inputs.xml | 41 ++ .../archetype/nodes/mp/nodes/oci/output.xml | 251 +++++++ .../files/microprofile-config.properties | 0 .../main/java/__pkg__/GreetResource.java.hbs} | 1 - .../java/__pkg__/GreetingProvider.java.hbs} | 1 - .../quickstart/features/media/output.xml} | 52 +- .../nodes/mp/nodes/quickstart/inputs.xml | 42 ++ .../nodes/mp/nodes/quickstart/output.xml | 29 + .../src/main/archetype/nodes/mp/output.xml | 190 +++++ .../files/README-Exercise-Application.md} | 0 .../se/features/coherence/files/README.md | 3 + .../java/__pkg__/CoherenceService.java.hbs} | 8 +- .../src/main/java/__pkg__/Person.java.hbs} | 0 .../main/resources/coherence-cache-config.xml | 0 .../__pkg__/CoherenceServiceTest.java.hbs} | 2 +- .../se/features/coherence/output.xml} | 26 +- .../nodes/se/features/cors/files/README.md | 21 + .../se/features/cors/files/application.yaml | 10 + .../nodes/se/features/cors/output.xml | 122 ++++ .../se/features/database/files/README.md | 23 + .../se/features/database/files/README.md.hbs | 8 + .../se/features/database/files/gitignore | 2 + .../src/main/java/__pkg__/Pokemon.java.hbs} | 0 .../main/java/__pkg__/PokemonMapper.java.hbs} | 0 .../__pkg__/PokemonMapperProvider.java.hbs} | 0 .../java/__pkg__/PokemonService.java.hbs} | 0 ...helidon.dbclient.spi.DbMapperProvider.hbs} | 0 .../src/main/resources/application.yaml.hbs} | 0 .../src/main/resources/pokemon-types.json | 0 .../files/src/main/resources/pokemons.json | 0 .../test/resources/application-test.yaml.hbs} | 0 .../nodes/se/features/database/inputs.xml | 39 + .../database/nodes/h2/files/README.md | 5 + .../files/src/main/resources/application.yaml | 3 + .../se/features/database/nodes/h2/output.xml | 40 ++ .../database/nodes/mongodb/files/README.md | 4 + .../src/main/resources/application.yaml.hbs} | 0 .../test/resources/application-test.yaml.hbs} | 0 .../database/nodes/mongodb/output.xml | 65 ++ .../database/nodes/mysql/files/README.md | 9 + .../files/src/main/resources/application.yaml | 3 + .../features/database/nodes/mysql/output.xml | 50 ++ .../database/nodes/oracledb/files/README.md | 5 + .../files/src/main/resources/application.yaml | 3 + .../database/nodes/oracledb/output.xml | 46 ++ .../se/features/database/output.xml} | 269 ++----- .../src/main/java/__pkg__/FtService.java.hbs} | 0 .../se/features/fault-tolerance/output.xml} | 23 +- .../nodes/se/features/health/files/README.md | 14 + .../nodes/se/features/health/inputs.xml | 38 + .../nodes/se/features/health/output.xml | 57 ++ .../nodes/se/features/media/files/README.md | 13 + .../main/java/__pkg__/GreetService.java.hbs} | 0 .../files/src/main/resources/greeting.yaml | 2 + .../se/features/media/inputs.xml} | 30 +- .../main/java/__pkg__/GreetService.java.hbs} | 0 .../src/main/java/__pkg__/Message.java.hbs} | 0 .../features/media/nodes/jackson/output.xml | 65 ++ .../main/java/__pkg__/GreetService.java.hbs | 107 +++ .../src/main/java/__pkg__/Message.java.hbs | 27 + .../se/features/media/nodes/jsonb/output.xml | 78 ++ .../main/java/__pkg__/GreetService.java.hbs} | 0 .../se/features/media/nodes/jsonp/output.xml | 66 ++ .../main/java/__pkg__/FileService.java.hbs} | 0 .../files/src/main/resources/WEB/index.html | 0 .../features/media/nodes/multipart/output.xml | 103 +++ .../nodes/se/features/media/output.xml | 61 ++ .../nodes/se/features/metrics/files/README.md | 13 + .../nodes/se/features/metrics/inputs.xml | 38 + .../nodes/se/features/metrics/output.xml | 55 ++ .../src/main/resources/application.yaml.hbs | 8 + .../main/resources/server-features.yaml.hbs | 9 + .../src/test/resources/application.yaml} | 0 .../nodes/se/features/security/inputs.xml | 42 ++ .../files/src/main/resources/application.yaml | 3 + .../main/resources/security-server-paths.yaml | 1 + .../features/security/nodes/abac/output.xml | 46 ++ .../security/nodes/google/files/README.md | 9 + .../src/main/resources/WEB/google-login.html | 0 .../resources/WEB/static.js/google-app.js | 0 .../files/src/main/resources/application.yaml | 20 + .../main/resources/security-properties.yaml | 2 + .../main/resources/security-server-paths.yaml | 3 + .../features/security/nodes/google/output.xml | 122 ++++ .../nodes/http-signature/files/README.md | 7 + .../src/main/java/__pkg__/Service1.java.hbs} | 0 .../src/main/java/__pkg__/Service2.java.hbs} | 0 .../files/src/main/resources/keystore.p12 | Bin 0 -> 2693 bytes .../java/__pkg__/SignatureMainTest.java.hbs} | 0 .../security/nodes/http-signature/output.xml | 254 +++++++ .../security/nodes/jwt/files/README.md | 8 + .../java/__pkg__/JwtOverrideService.java.hbs} | 0 .../src/main/resources/application.yaml} | 0 .../main/resources/backend-service-jwt.yaml | 0 .../main/resources/client-service-jwt.yaml | 2 +- .../files/src/main/resources/signing-jwk.json | 0 .../src/main/resources/verifying-jwk.json | 0 .../__pkg__/OutboundOverrideJwtTest.java.hbs} | 0 .../se/features/security/nodes/jwt/output.xml | 125 ++++ .../security/nodes/oidc/files/README.md | 22 + .../files/src/main/resources/application.yaml | 26 + .../main/resources/security-server-paths.yaml | 4 + .../features/security/nodes/oidc/output.xml | 91 +++ .../nodes/se/features/security/output.xml | 55 ++ .../nodes/se/features/tracing/files/README.md | 4 + .../main/java/__pkg__/TracedService.java.hbs} | 0 .../files/src/main/resources/application.yaml | 2 + .../nodes/se/features/tracing/inputs.xml | 44 ++ .../tracing/nodes/jaeger/files/README.md} | 0 .../files/src/test/resources/application.yaml | 2 + .../features/tracing/nodes/jaeger/output.xml | 38 + .../tracing/nodes/zipkin/files/README.md} | 0 .../features/tracing/nodes/zipkin/output.xml} | 17 +- .../se/features/tracing/output.xml} | 52 +- .../se/features/webclient/files/README.md.hbs | 21 + .../main/java/__pkg__/WebClientMain.java.hbs} | 0 .../nodes/se/features/webclient/output.xml | 60 ++ .../main/archetype/nodes/se/files/README.md | 5 + .../files/src/main/java/__pkg__/Main.java.hbs | 90 +++ .../src/main/resources/application.yaml.hbs | 10 + .../main/resources/logging.properties.hbs} | 0 .../java/__pkg__/AbstractMainTest.java.hbs} | 27 +- .../src/test/java/__pkg__/MainIT.java.hbs} | 0 .../src/test/java/__pkg__/MainTest.java.hbs} | 0 .../test/resources/application-test.yaml.hbs | 1 + .../src/main/archetype/nodes/se/inputs.xml | 71 ++ .../nodes/se/nodes/database/inputs.xml | 41 ++ .../se/nodes/database/output.xml} | 8 +- .../nodes/se/nodes/quickstart/inputs.xml | 41 ++ .../se/nodes/quickstart/output.xml} | 11 +- .../src/main/archetype/nodes/se/output.xml | 187 +++++ .../archetypes/src/main/archetype/output.xml | 83 +++ .../main/archetype/se/common/common-se.xml | 160 ----- .../main/resources/application.yaml.mustache | 13 - .../resources/application-test.yaml.mustache | 3 - .../main/archetype/se/custom/custom-se.xml | 78 -- .../se/custom/files/README.md.native.mustache | 20 - .../archetype/se/custom/security-outputs.xml | 679 ------------------ .../archetypes/src/main/archetype/se/se.xml | 53 -- .../archetypes/src/test/archetype/rules.xml | 82 ++- 346 files changed, 7155 insertions(+), 5003 deletions(-) create mode 100644 archetypes/archetypes/.live-plugins/plugin.groovy create mode 100644 archetypes/archetypes/README.md create mode 100644 archetypes/archetypes/src/main/archetype/README.md delete mode 100644 archetypes/archetypes/src/main/archetype/common/common.xml delete mode 100644 archetypes/archetypes/src/main/archetype/common/customize-project.xml delete mode 100644 archetypes/archetypes/src/main/archetype/common/docker.xml delete mode 100644 archetypes/archetypes/src/main/archetype/common/extra.xml delete mode 100644 archetypes/archetypes/src/main/archetype/common/files/Dockerfile.jlink.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/common/files/Dockerfile.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/common/files/Dockerfile.native.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/common/files/src/main/java/__pkg__/Main.java.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/common/media-sources.xml delete mode 100644 archetypes/archetypes/src/main/archetype/common/media.xml delete mode 100644 archetypes/archetypes/src/main/archetype/common/observability.xml delete mode 100644 archetypes/archetypes/src/main/archetype/common/packaging.xml delete mode 100644 archetypes/archetypes/src/main/archetype/common/security.xml create mode 100644 archetypes/archetypes/src/main/archetype/defaults.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/customize-project/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/customize-project/output.xml rename archetypes/archetypes/src/main/archetype/{common => features/docker}/files/.dockerignore (100%) create mode 100644 archetypes/archetypes/src/main/archetype/features/docker/files/Dockerfile.hbs create mode 100644 archetypes/archetypes/src/main/archetype/features/docker/files/README.md.hbs create mode 100644 archetypes/archetypes/src/main/archetype/features/docker/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/docker/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/jlink/files/README.md.hbs create mode 100644 archetypes/archetypes/src/main/archetype/features/jlink/inputs.xml rename archetypes/archetypes/src/main/archetype/{se/custom/observability.xml => features/jlink/output.xml} (77%) rename archetypes/archetypes/src/main/archetype/{common/files/src/main/java/module-info.java.mustache => features/jpms/files/src/main/java/module-info.java.hbs} (83%) create mode 100644 archetypes/archetypes/src/main/archetype/features/jpms/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/jpms/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/kubernetes/files/README.md.hbs rename archetypes/archetypes/src/main/archetype/{common/files/app.yaml.mustache => features/kubernetes/files/app.yaml.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/features/kubernetes/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/kubernetes/output.xml rename archetypes/archetypes/src/main/archetype/{common/files/pom.xml.mustache => features/maven/files/pom.xml.hbs} (79%) create mode 100644 archetypes/archetypes/src/main/archetype/features/maven/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/maven/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/multi-module/files/pom.xml.hbs create mode 100644 archetypes/archetypes/src/main/archetype/features/multi-module/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/multi-module/output.xml rename archetypes/archetypes/src/main/archetype/{common/files/README.native.md => features/native-image/files/README.md.hbs} (63%) rename archetypes/archetypes/src/main/archetype/{common => features/native-image}/files/src/main/resources/META-INF/native-image/groupid/artifactid/native-image.properties.mustache (100%) create mode 100644 archetypes/archetypes/src/main/archetype/features/native-image/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/features/native-image/output.xml rename archetypes/archetypes/src/main/archetype/{common/files/.gitignore.mustache => files/.gitignore.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{common/files/.helidon.mustache => files/.helidon.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{common/files/README.md.mustache => files/README.md.hbs} (97%) rename archetypes/archetypes/src/main/archetype/{se/common/files/src/main/java/__pkg__/package-info.java.mustache => files/src/main/java/__pkg__/package-info.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{flavor.xml => inputs.xml} (72%) delete mode 100644 archetypes/archetypes/src/main/archetype/mp/common/common-mp.xml delete mode 100644 archetypes/archetypes/src/main/archetype/mp/common/files/.idea/runConfigurations/configuration.xml.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/mp/common/files/src/main/java/__pkg__/package-info.java.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/mp/common/files/src/main/resources/META-INF/microprofile-config.properties.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/mp/common/files/src/main/resources/logging.properties.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/mp/common/files/src/test/resources/META-INF/microprofile-config.properties.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/mp/custom/custom-mp.xml delete mode 100644 archetypes/archetypes/src/main/archetype/mp/custom/database-input.xml delete mode 100644 archetypes/archetypes/src/main/archetype/mp/custom/database-outputs.xml delete mode 100644 archetypes/archetypes/src/main/archetype/mp/custom/extra-output.xml delete mode 100644 archetypes/archetypes/src/main/archetype/mp/custom/files/README.native.md.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/mp/custom/files/src/main/resources/application.yaml.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/mp/custom/metrics-micrometer.xml delete mode 100644 archetypes/archetypes/src/main/archetype/mp/custom/security-outputs.xml delete mode 100644 archetypes/archetypes/src/main/archetype/mp/custom/tracing-outputs.xml delete mode 100644 archetypes/archetypes/src/main/archetype/mp/oci/oci-mp.xml delete mode 100644 archetypes/archetypes/src/main/archetype/mp/quickstart/files/src/main/java/__pkg__/GreetResource.java.jsonp.mustache create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/coherence/files/README-Exercise-Application.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/coherence/files/README.md rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/CoherenceResource.java.mustache => nodes/mp/features/coherence/files/src/main/java/__pkg__/CoherenceResource.java.hbs} (82%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/Person.java.mustache => nodes/mp/features/coherence/files/src/main/java/__pkg__/Person.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/resources/META-INF/microprofile-config-coherence.properties.mustache => nodes/mp/features/coherence/files/src/main/resources/META-INF/microprofile-config.properties} (100%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/test/java/__pkg__/CoherenceResourceTest.java.mustache => nodes/mp/features/coherence/files/src/test/java/__pkg__/CoherenceResourceTest.java.hbs} (83%) rename archetypes/archetypes/src/main/archetype/{mp/custom/coherence-output.xml => nodes/mp/features/coherence/output.xml} (75%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/cors/files/README.md rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/test/java/__pkg__/TestCORS.java.mustache => nodes/mp/features/cors/files/src/test/java/__pkg__/TestCORS.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/cors/output.xml rename archetypes/archetypes/src/main/archetype/{mp => nodes/mp/features}/database/files/README.md (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/README.md.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/files/gitignore rename archetypes/archetypes/src/main/archetype/{mp/database/files/src/main/java/__pkg__/Pokemon.java.mustache => nodes/mp/features/database/files/src/main/java/__pkg__/Pokemon.java.hbs} (91%) rename archetypes/archetypes/src/main/archetype/{mp/database/files/src/main/java/__pkg__/PokemonResource.java.mustache => nodes/mp/features/database/files/src/main/java/__pkg__/PokemonResource.java.hbs} (99%) rename archetypes/archetypes/src/main/archetype/{mp/database/files/src/main/java/__pkg__/PokemonType.java.mustache => nodes/mp/features/database/files/src/main/java/__pkg__/PokemonType.java.hbs} (99%) rename archetypes/archetypes/src/main/archetype/{mp/database/files/src/main/java/__pkg__/PokemonTypeResource.java.mustache => nodes/mp/features/database/files/src/main/java/__pkg__/PokemonTypeResource.java.hbs} (99%) rename archetypes/archetypes/src/main/archetype/{mp/database/files/src/main/resources/META-INF/persistence.xml.mustache => nodes/mp/features/database/files/src/main/resources/META-INF/persistence.xml.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/eclipselink/files/maven-plugins.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/eclipselink/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/h2/files/README.md rename archetypes/archetypes/src/main/archetype/{mp/database/files/src/main/resources/META-INF/init_script.sql.default => nodes/mp/features/database/nodes/h2/files/src/main/resources/META-INF/init_script.sql} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/h2/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/hibernate/files/maven-plugins.xml rename archetypes/archetypes/src/main/archetype/{mp/database/files/src/main/resources/hibernate.properties.mustache => nodes/mp/features/database/nodes/hibernate/files/src/main/resources/hibernate.properties.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/hibernate/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/hikaricp/files/src/main/resources/META-INF/microprofile-config.properties.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/hikaricp/files/src/test/resources/META-INF/microprofile-config.properties.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/hikaricp/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/mysql/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/mysql/files/src/main/resources/META-INF/init_script.sql create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/mysql/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/oracledb/files/README.md rename archetypes/archetypes/src/main/archetype/{mp/database/files/src/main/resources/META-INF/init_script.sql.oracle => nodes/mp/features/database/nodes/oracledb/files/src/main/resources/META-INF/init_script.sql} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/oracledb/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/ucp/files/src/main/resources/META-INF/microprofile-config.properties.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/ucp/files/src/test/resources/META-INF/microprofile-config.properties.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/nodes/ucp/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/database/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/fault-tolerance/files/maven-plugins.xml rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/FtResource.java.mustache => nodes/mp/features/fault-tolerance/files/src/main/java/__pkg__/FtResource.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/test/java/__pkg__/FtResourceTest.java.mustache => nodes/mp/features/fault-tolerance/files/src/test/java/__pkg__/FtResourceTest.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/fault-tolerance/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/health/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/health/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/files/src/main/java/__pkg__/Main.java.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/jpms/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/media/files/README.md rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/SimpleGreetResource.java.mustache => nodes/mp/features/media/files/src/main/java/__pkg__/SimpleGreetResource.java.hbs} (86%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/media/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/media/nodes/json/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/media/nodes/json/nodes/jackson/files/src/main/java/__pkg__/Message.java.hbs rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/SimpleGreetResource.java.json.mustache => nodes/mp/features/media/nodes/json/nodes/jackson/files/src/main/java/__pkg__/SimpleGreetResource.java.hbs} (99%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/media/nodes/json/nodes/jackson/output.xml rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/Message.java.json.mustache => nodes/mp/features/media/nodes/json/nodes/jsonb/files/src/main/java/__pkg__/Message.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/SimpleGreetResource.java.jsonp.mustache => nodes/mp/features/media/nodes/json/nodes/jsonb/files/src/main/java/__pkg__/SimpleGreetResource.java.hbs} (73%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/media/nodes/json/nodes/jsonb/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/media/nodes/json/output.xml rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/FileService.java.multipart.mustache => nodes/mp/features/media/nodes/multipart/files/src/main/java/__pkg__/FileService.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/FileStorage.java.multipart.mustache => nodes/mp/features/media/nodes/multipart/files/src/main/java/__pkg__/FileStorage.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/MultiPartFeatureProvider.java.multipart.mustache => nodes/mp/features/media/nodes/multipart/files/src/main/java/__pkg__/MultiPartFeatureProvider.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/test/java/__pkg__/FileServiceTest.java.multipart.mustache => nodes/mp/features/media/nodes/multipart/files/src/test/java/__pkg__/FileServiceTest.java.hbs} (97%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/media/nodes/multipart/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/media/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/nodes/micrometer/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/nodes/microprofile/files/README.md rename archetypes/archetypes/src/main/archetype/{mp/custom/metrics-microprofile.xml => nodes/mp/features/metrics/nodes/microprofile/output.xml} (87%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/metrics/output.xml rename archetypes/archetypes/src/main/archetype/{common => nodes/mp/features/native-image}/files/src/main/resources/META-INF/native-image/jakarta/xml/bind/jakarta.xml.bind-api/resource-config.json (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/native-image/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/security/files/src/main/resources/application.yaml.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/security/files/src/main/resources/simple-greet.yaml rename archetypes/archetypes/src/main/archetype/{mp/custom/files/application.abac.yaml => nodes/mp/features/security/nodes/abac/files/src/main/resources/application.yaml} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/security/nodes/abac/output.xml rename archetypes/archetypes/src/main/archetype/{mp/custom/files/application.google.yaml => nodes/mp/features/security/nodes/google/files/src/main/resources/application.yaml} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/security/nodes/google/files/src/main/resources/security-server-paths.yaml rename archetypes/archetypes/src/main/archetype/{common/multi-module.xml => nodes/mp/features/security/nodes/google/output.xml} (50%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/application.http-signature.yaml => nodes/mp/features/security/nodes/http-signature/files/src/main/resources/application.yaml} (100%) rename archetypes/archetypes/src/main/archetype/{common => nodes/mp/features/security/nodes/http-signature}/files/src/main/resources/keystore.p12 (100%) rename archetypes/archetypes/src/main/archetype/{common/sources.xml => nodes/mp/features/security/nodes/http-signature/output.xml} (58%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/JwtApplication.java.mustache => nodes/mp/features/security/nodes/jwt/files/src/main/java/__pkg__/JwtApplication.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/JwtResource.java.mustache => nodes/mp/features/security/nodes/jwt/files/src/main/java/__pkg__/JwtResource.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/security/nodes/jwt/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/security/nodes/oidc/files/README.md rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/OidcResource.java.mustache => nodes/mp/features/security/nodes/oidc/files/src/main/java/__pkg__/OidcResource.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/application.oidc.yaml => nodes/mp/features/security/nodes/oidc/files/src/main/resources/application.yaml} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/security/nodes/oidc/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/security/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/files/README.md rename archetypes/archetypes/src/main/archetype/{mp/custom/files/src/main/java/__pkg__/TracedResource.java.mustache => nodes/mp/features/tracing/files/src/main/java/__pkg__/TracedResource.java.hbs} (99%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/files/src/main/resources/META-INF/microprofile-config.properties.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/nodes/jaeger/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/nodes/zipkin/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/features/tracing/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/files/configuration.xml.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/files/maven-plugins.xml rename archetypes/archetypes/src/main/archetype/{mp/common => nodes/mp}/files/src/main/resources/META-INF/beans.xml (100%) rename archetypes/archetypes/src/main/archetype/{mp/custom/files/microprofile-config.properties => nodes/mp/files/src/main/resources/META-INF/greeting.properties} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/files/src/main/resources/META-INF/microprofile-config.properties.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/files/src/main/resources/application.yaml.hbs rename archetypes/archetypes/src/main/archetype/{mp/common/files/src/test/java/__pkg__/MainTest.java.mustache => nodes/mp/files/src/test/java/__pkg__/MainTest.java.hbs} (87%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/files/src/test/resources/META-INF/microprofile-config.properties.hbs rename archetypes/archetypes/src/main/archetype/{mp/mp.xml => nodes/mp/inputs.xml} (54%) rename archetypes/archetypes/src/main/archetype/{common/presets.xml => nodes/mp/nodes/database/inputs.xml} (91%) rename archetypes/archetypes/src/main/archetype/{se/database/database-se.xml => nodes/mp/nodes/database/output.xml} (78%) rename archetypes/archetypes/src/main/archetype/{mp/oci/files/README-Description.md => nodes/mp/nodes/oci/files/README-description.md} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README-exercise-application.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README-k8s.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README.md.docker.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/README.md.run-commands.hbs rename archetypes/archetypes/src/main/archetype/{mp/oci/files/client/README.md.mustache => nodes/mp/nodes/oci/files/client/README.md.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/oci/files/client/pom.xml.mustache => nodes/mp/nodes/oci/files/client/pom.xml.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/plugin-management.xml rename archetypes/archetypes/src/main/archetype/{mp/oci/files/pom.xml.mustache => nodes/mp/nodes/oci/files/pom.xml.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/oci/files/server/README.md.mustache => nodes/mp/nodes/oci/files/server/README.md.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/maven-plugins.xml.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/maven-profiles.xml.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/pom.xml.hbs rename archetypes/archetypes/src/main/archetype/{mp/oci/files/server/src/main/java/__pkg__/server/GreetLivenessCheck.java.mustache => nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetLivenessCheck.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/oci/files/server/src/main/java/__pkg__/server/GreetReadinessCheck.java.mustache => nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetReadinessCheck.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/oci/files/server/src/main/java/__pkg__/server/GreetResource.java.mustache => nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetResource.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/oci/files/server/src/main/java/__pkg__/server/GreetingProvider.java.mustache => nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/GreetingProvider.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/oci/files/server/src/main/java/__pkg__/server/package-info.java.mustache => nodes/mp/nodes/oci/files/server/src/main/java/__pkg__/server/package-info.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/resources/META-INF/beans.xml rename archetypes/archetypes/src/main/archetype/{mp => nodes/mp/nodes}/oci/files/server/src/main/resources/META-INF/microprofile-config-prod.properties (100%) rename archetypes/archetypes/src/main/archetype/{mp => nodes/mp/nodes}/oci/files/server/src/main/resources/META-INF/microprofile-config-test.properties (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/resources/META-INF/microprofile-config.properties create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/resources/application.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/files/server/src/main/resources/logging.properties rename archetypes/archetypes/src/main/archetype/{mp/oci/files/server/src/test/java/__pkg__/server/Common.java.mustache => nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/Common.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/oci/files/server/src/test/java/__pkg__/server/GreetResourceConfigFileTest.java.mustache => nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/GreetResourceConfigFileTest.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/oci/files/server/src/test/java/__pkg__/server/GreetResourceInstancePrincipalTest.java.mustache => nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/GreetResourceInstancePrincipalTest.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp/oci/files/server/src/test/java/__pkg__/server/GreetResourceMockedTest.java.mustache => nodes/mp/nodes/oci/files/server/src/test/java/__pkg__/server/GreetResourceMockedTest.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{mp => nodes/mp/nodes}/oci/files/spec/README.md (100%) rename archetypes/archetypes/src/main/archetype/{mp => nodes/mp/nodes}/oci/files/spec/api.yaml (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/oci/output.xml rename archetypes/archetypes/src/main/archetype/{mp/quickstart => nodes/mp/nodes/quickstart/features/media}/files/microprofile-config.properties (100%) rename archetypes/archetypes/src/main/archetype/{mp/quickstart/files/src/main/java/__pkg__/GreetResource.java.json.mustache => nodes/mp/nodes/quickstart/features/media/files/src/main/java/__pkg__/GreetResource.java.hbs} (99%) rename archetypes/archetypes/src/main/archetype/{mp/quickstart/files/src/main/java/__pkg__/GreetingProvider.java.mustache => nodes/mp/nodes/quickstart/features/media/files/src/main/java/__pkg__/GreetingProvider.java.hbs} (99%) rename archetypes/archetypes/src/main/archetype/{mp/quickstart/quickstart-mp.xml => nodes/mp/nodes/quickstart/features/media/output.xml} (60%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/quickstart/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/nodes/quickstart/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/mp/output.xml rename archetypes/archetypes/src/main/archetype/{common/files/README.coherence.exercise.app.md => nodes/se/features/coherence/files/README-Exercise-Application.md} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/coherence/files/README.md rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/CoherenceService.java.mustache => nodes/se/features/coherence/files/src/main/java/__pkg__/CoherenceService.java.hbs} (91%) rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/Person.java.mustache => nodes/se/features/coherence/files/src/main/java/__pkg__/Person.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/custom => nodes/se/features/coherence}/files/src/main/resources/coherence-cache-config.xml (100%) rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/test/java/__pkg__/CoherenceServiceTest.java.mustache => nodes/se/features/coherence/files/src/test/java/__pkg__/CoherenceServiceTest.java.hbs} (96%) rename archetypes/archetypes/src/main/archetype/{se/custom/coherence-output.xml => nodes/se/features/coherence/output.xml} (78%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/cors/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/cors/files/application.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/cors/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/README.md.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/files/gitignore rename archetypes/archetypes/src/main/archetype/{se/database/files/src/main/java/__pkg__/Pokemon.java.mustache => nodes/se/features/database/files/src/main/java/__pkg__/Pokemon.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/database/files/src/main/java/__pkg__/PokemonMapper.java.mustache => nodes/se/features/database/files/src/main/java/__pkg__/PokemonMapper.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/database/files/src/main/java/__pkg__/PokemonMapperProvider.java.mustache => nodes/se/features/database/files/src/main/java/__pkg__/PokemonMapperProvider.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/database/files/src/main/java/__pkg__/PokemonService.java.mustache => nodes/se/features/database/files/src/main/java/__pkg__/PokemonService.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/database/files/src/main/resources/META-INF/services/io.helidon.dbclient.spi.DbMapperProvider.mustache => nodes/se/features/database/files/src/main/resources/META-INF/services/io.helidon.dbclient.spi.DbMapperProvider.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/database/files/application-jdbc.yaml.mustache => nodes/se/features/database/files/src/main/resources/application.yaml.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se => nodes/se/features}/database/files/src/main/resources/pokemon-types.json (100%) rename archetypes/archetypes/src/main/archetype/{se => nodes/se/features}/database/files/src/main/resources/pokemons.json (100%) rename archetypes/archetypes/src/main/archetype/{se/database/files/application-test-jdbc.yaml.mustache => nodes/se/features/database/files/src/test/resources/application-test.yaml.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/h2/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/h2/files/src/main/resources/application.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/h2/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/mongodb/files/README.md rename archetypes/archetypes/src/main/archetype/{se/database/files/application-mongo.yaml.mustache => nodes/se/features/database/nodes/mongodb/files/src/main/resources/application.yaml.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/database/files/application-test-mongo.yaml.mustache => nodes/se/features/database/nodes/mongodb/files/src/test/resources/application-test.yaml.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/mongodb/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/mysql/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/mysql/files/src/main/resources/application.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/mysql/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/oracledb/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/oracledb/files/src/main/resources/application.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/database/nodes/oracledb/output.xml rename archetypes/archetypes/src/main/archetype/{se/custom/database-output.xml => nodes/se/features/database/output.xml} (50%) rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/FtService.java.mustache => nodes/se/features/fault-tolerance/files/src/main/java/__pkg__/FtService.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/custom/extra-output.xml => nodes/se/features/fault-tolerance/output.xml} (89%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/health/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/health/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/health/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/README.md rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/GreetService.java.mustache => nodes/se/features/media/files/src/main/java/__pkg__/GreetService.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/media/files/src/main/resources/greeting.yaml rename archetypes/archetypes/src/main/archetype/{se/custom/database-inputs.xml => nodes/se/features/media/inputs.xml} (51%) rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/GreetService.java.json.mustache => nodes/se/features/media/nodes/jackson/files/src/main/java/__pkg__/GreetService.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/Message.java.json.mustache => nodes/se/features/media/nodes/jackson/files/src/main/java/__pkg__/Message.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/media/nodes/jackson/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/media/nodes/jsonb/files/src/main/java/__pkg__/GreetService.java.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/media/nodes/jsonb/files/src/main/java/__pkg__/Message.java.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/media/nodes/jsonb/output.xml rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/GreetService.java.jsonp.mustache => nodes/se/features/media/nodes/jsonp/files/src/main/java/__pkg__/GreetService.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/media/nodes/jsonp/output.xml rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/FileService.java.multipart.mustache => nodes/se/features/media/nodes/multipart/files/src/main/java/__pkg__/FileService.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/custom => nodes/se/features/media/nodes/multipart}/files/src/main/resources/WEB/index.html (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/media/nodes/multipart/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/media/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/metrics/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/metrics/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/metrics/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/files/src/main/resources/application.yaml.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/files/src/main/resources/server-features.yaml.hbs rename archetypes/archetypes/src/main/archetype/{mp/common/files/src/test/resources/application-test.yaml.mustache => nodes/se/features/security/files/src/test/resources/application.yaml} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/abac/files/src/main/resources/application.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/abac/files/src/main/resources/security-server-paths.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/abac/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/google/files/README.md rename archetypes/archetypes/src/main/archetype/{se/custom => nodes/se/features/security/nodes/google}/files/src/main/resources/WEB/google-login.html (100%) rename archetypes/archetypes/src/main/archetype/{se/custom => nodes/se/features/security/nodes/google}/files/src/main/resources/WEB/static.js/google-app.js (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/google/files/src/main/resources/application.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/google/files/src/main/resources/security-properties.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/google/files/src/main/resources/security-server-paths.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/google/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/http-signature/files/README.md rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/Service1.java.mustache => nodes/se/features/security/nodes/http-signature/files/src/main/java/__pkg__/Service1.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/Service2.java.mustache => nodes/se/features/security/nodes/http-signature/files/src/main/java/__pkg__/Service2.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/http-signature/files/src/main/resources/keystore.p12 rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/test/java/__pkg__/SignatureMainTest.java.mustache => nodes/se/features/security/nodes/http-signature/files/src/test/java/__pkg__/SignatureMainTest.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/http-signature/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/jwt/files/README.md rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/JwtOverrideService.java.mustache => nodes/se/features/security/nodes/jwt/files/src/main/java/__pkg__/JwtOverrideService.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/custom/files/application.jwt.yaml => nodes/se/features/security/nodes/jwt/files/src/main/resources/application.yaml} (100%) rename archetypes/archetypes/src/main/archetype/{se/custom => nodes/se/features/security/nodes/jwt}/files/src/main/resources/backend-service-jwt.yaml (100%) rename archetypes/archetypes/src/main/archetype/{se/custom => nodes/se/features/security/nodes/jwt}/files/src/main/resources/client-service-jwt.yaml (97%) rename archetypes/archetypes/src/main/archetype/{se/custom => nodes/se/features/security/nodes/jwt}/files/src/main/resources/signing-jwk.json (100%) rename archetypes/archetypes/src/main/archetype/{se/custom => nodes/se/features/security/nodes/jwt}/files/src/main/resources/verifying-jwk.json (100%) rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/test/java/__pkg__/OutboundOverrideJwtTest.java.mustache => nodes/se/features/security/nodes/jwt/files/src/test/java/__pkg__/OutboundOverrideJwtTest.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/jwt/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/oidc/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/oidc/files/src/main/resources/application.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/oidc/files/src/main/resources/security-server-paths.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/nodes/oidc/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/security/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/files/README.md rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/TracedService.java.mustache => nodes/se/features/tracing/files/src/main/java/__pkg__/TracedService.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/files/src/main/resources/application.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/inputs.xml rename archetypes/archetypes/src/main/archetype/{common/files/README.jaeger.md => nodes/se/features/tracing/nodes/jaeger/files/README.md} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/nodes/jaeger/files/src/test/resources/application.yaml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/tracing/nodes/jaeger/output.xml rename archetypes/archetypes/src/main/archetype/{common/files/README.zipkin.md => nodes/se/features/tracing/nodes/zipkin/files/README.md} (100%) rename archetypes/archetypes/src/main/archetype/{mp/database/database-mp.xml => nodes/se/features/tracing/nodes/zipkin/output.xml} (72%) rename archetypes/archetypes/src/main/archetype/{se/custom/tracing-outputs.xml => nodes/se/features/tracing/output.xml} (54%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/webclient/files/README.md.hbs rename archetypes/archetypes/src/main/archetype/{se/custom/files/src/main/java/__pkg__/WebClientMain.java.mustache => nodes/se/features/webclient/files/src/main/java/__pkg__/WebClientMain.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/features/webclient/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/files/README.md create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/files/src/main/java/__pkg__/Main.java.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/files/src/main/resources/application.yaml.hbs rename archetypes/archetypes/src/main/archetype/{se/common/files/src/main/resources/logging.properties.mustache => nodes/se/files/src/main/resources/logging.properties.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/common/files/src/test/java/__pkg__/AbstractMainTest.java.mustache => nodes/se/files/src/test/java/__pkg__/AbstractMainTest.java.hbs} (81%) rename archetypes/archetypes/src/main/archetype/{se/common/files/src/test/java/__pkg__/MainIT.java.mustache => nodes/se/files/src/test/java/__pkg__/MainIT.java.hbs} (100%) rename archetypes/archetypes/src/main/archetype/{se/common/files/src/test/java/__pkg__/MainTest.java.mustache => nodes/se/files/src/test/java/__pkg__/MainTest.java.hbs} (100%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/files/src/test/resources/application-test.yaml.hbs create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/inputs.xml create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/nodes/database/inputs.xml rename archetypes/archetypes/src/main/archetype/{mp/custom/observability.xml => nodes/se/nodes/database/output.xml} (83%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/nodes/quickstart/inputs.xml rename archetypes/archetypes/src/main/archetype/{se/quickstart/quickstart-se.xml => nodes/se/nodes/quickstart/output.xml} (70%) create mode 100644 archetypes/archetypes/src/main/archetype/nodes/se/output.xml create mode 100644 archetypes/archetypes/src/main/archetype/output.xml delete mode 100644 archetypes/archetypes/src/main/archetype/se/common/common-se.xml delete mode 100644 archetypes/archetypes/src/main/archetype/se/common/files/src/main/resources/application.yaml.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/se/common/files/src/test/resources/application-test.yaml.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/se/custom/custom-se.xml delete mode 100644 archetypes/archetypes/src/main/archetype/se/custom/files/README.md.native.mustache delete mode 100644 archetypes/archetypes/src/main/archetype/se/custom/security-outputs.xml delete mode 100644 archetypes/archetypes/src/main/archetype/se/se.xml diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 2ae8478284e..6c532c0ac4e 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -269,7 +269,7 @@ jobs: - { group: r1, start: 1, end: 25 } - { group: r2, start: 26, end: 50 } - { group: r3, start: 51, end: 75 } - - { group: r4, start: 75, end: 100 } + - { group: r4, start: 76, end: 100 } - { group: r5, start: 101, end: -1 } - { packaging: jar } runs-on: ubuntu-22.04 diff --git a/archetypes/archetypes/.live-plugins/plugin.groovy b/archetypes/archetypes/.live-plugins/plugin.groovy new file mode 100644 index 00000000000..5efa1e47fbf --- /dev/null +++ b/archetypes/archetypes/.live-plugins/plugin.groovy @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2024 Oracle and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import com.intellij.openapi.extensions.* +import com.intellij.patterns.XmlPatterns +import com.intellij.psi.* +import com.intellij.psi.impl.source.resolve.reference.PsiReferenceContributorEP +import com.intellij.psi.util.PsiTreeUtil +import com.intellij.psi.xml.* +import com.intellij.util.ProcessingContext + +// depends-on-plugin org.jetbrains.kotlin + +/* + This script provides some IntelliJ support for the archetype scripts. + It supports navigation for the src attributes of and elements. + Setup: + - Install the plugin named "LivePlugin" from the IntelliJ marketplace. + - Then right click on this script and select "Run live plugin" + - Optionally, enable "Run Plugins on IDE start" on the Live Plugins panel + Development: + - Mark the parent directory as as source or resource root + - Enable "Add LivePlugin and IDE Jars to Project" on the Live Plugins panel + - Resolve imports > Add library to classpath > "LivePlugin and IDE jar" + See: + - https://github.com/dkandalov/live-plugin + - https://gist.github.com/dkandalov/49f17eb3f6a2e87fdb1f2dc3d1eba609 + */ + +class ArchetypeScriptReference extends PsiPolyVariantReferenceBase { + + static final String SOURCE_ROOT = "src/main/archetype" + + ArchetypeScriptReference(XmlAttributeValue element) { + super(element, true) + } + + def fileRef() { + def elementFile = element.containingFile.virtualFile + if (element.value.startsWith("/")) { + def index = elementFile.path.lastIndexOf(SOURCE_ROOT) + def path = elementFile.path.substring(0, index + SOURCE_ROOT.length()) + element.value + return elementFile.fileSystem.findFileByPath(path) + } else { + return elementFile.parent.findFileByRelativePath(element.value) + } + } + + @Override + ResolveResult[] multiResolve(boolean incomplete) { + def result = fileRef() + if (result != null) { + def psiManager = PsiManager.getInstance(element.project) + def file = psiManager.findFile(result) + if (file != null) { + return new ResolveResult[]{new PsiElementResolveResult(file)} + } + } + return ResolveResult.EMPTY_ARRAY + } + + @Override + boolean isReferenceTo(PsiElement element) { + return false + } +} + +class ArchetypeScriptContributor extends PsiReferenceContributor { + + @Override + void registerReferenceProviders(PsiReferenceRegistrar registrar) { + registrar.registerReferenceProvider(XmlPatterns.xmlAttributeValue(), new PsiReferenceProvider() { + @Override + PsiReference[] getReferencesByElement(PsiElement element, ProcessingContext context) { + // enable only for archetype-script documents and src attributes + def doc = PsiTreeUtil.getParentOfType(element, XmlDocument.class) + def attr = PsiTreeUtil.getParentOfType(element, XmlAttribute.class) + def tag = PsiTreeUtil.getParentOfType(element, XmlTag.class) + if (doc != null && doc.rootTag.name == "archetype-script" + && attr != null && attr.name == "src" + && tag != null && (tag.name == "exec" || tag.name == "source")) { + return new PsiReference[]{ + new ArchetypeScriptReference((XmlAttributeValue) element) + } + } + return PsiReference.EMPTY_ARRAY + } + }, PsiReferenceRegistrar.LOWER_PRIORITY) + } +} + +def extension = new PsiReferenceContributorEP().tap { + language = "XML" + implementationClass = ArchetypeScriptContributor.class.name + pluginDescriptor = new DefaultPluginDescriptor(PluginId.getId("LivePlugin"), + ArchetypeScriptContributor.class.classLoader) +} +PsiReferenceContributor.EP_NAME.point.registerExtension(extension, pluginDisposable) diff --git a/archetypes/archetypes/README.md b/archetypes/archetypes/README.md new file mode 100644 index 00000000000..60e7cb07762 --- /dev/null +++ b/archetypes/archetypes/README.md @@ -0,0 +1,22 @@ +# Archetype + +Document description + +## Conventions + +### Features + +- Must have an HTTP endpoint to exercise the feature (no generic path like 'api' or 'endpoint') +- Must have a unit test class +- Must have README.md documentation +- Must have javadoc following Helidon standard + +### Architecture + +- directories group (files/features/nodes) +- files names is flexible but has to self explainatory +- inputs and output must be splited +- archetype flow has to go through all inputs and then the output +- paths relative and absolute +- snippet should be placed at the same location then the template (in terms of path) +- files must start at line 1 and end with a new line diff --git a/archetypes/archetypes/pom.xml b/archetypes/archetypes/pom.xml index 103b7fd4ce4..8cd5d17114f 100644 --- a/archetypes/archetypes/pom.xml +++ b/archetypes/archetypes/pom.xml @@ -49,7 +49,8 @@ ${project.version} - + + diff --git a/archetypes/archetypes/src/main/archetype/README.md b/archetypes/archetypes/src/main/archetype/README.md new file mode 100644 index 00000000000..84d983385dc --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/README.md @@ -0,0 +1,17 @@ +rename readme-sections + +Dernières étapes : + +Create issue in build-tools for sorted list + +Convention: + +relative path for subdirectories, absolute path for upper from cwd. +application.yaml have to be under src/main/resources directory -> done + +Follow-up issue + +- Media should not own the service, it should be abstracted from the media. + + +write convention in readme diff --git a/archetypes/archetypes/src/main/archetype/common/common.xml b/archetypes/archetypes/src/main/archetype/common/common.xml deleted file mode 100644 index 4e256f258cf..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/common.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 b9775f383fb..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 f732ce42080..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/extra.xml +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - - - - - - - - - - - true - true - true - true - - - - diff --git a/archetypes/archetypes/src/main/archetype/common/files/Dockerfile.jlink.mustache b/archetypes/archetypes/src/main/archetype/common/files/Dockerfile.jlink.mustache deleted file mode 100644 index 0e2cd04d462..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/files/Dockerfile.jlink.mustache +++ /dev/null @@ -1,35 +0,0 @@ - -# 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/common/files/Dockerfile.mustache deleted file mode 100644 index 04f7ddb1015..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/files/Dockerfile.mustache +++ /dev/null @@ -1,43 +0,0 @@ - -# 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/common/files/Dockerfile.native.mustache b/archetypes/archetypes/src/main/archetype/common/files/Dockerfile.native.mustache deleted file mode 100644 index 7178e31c620..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/files/Dockerfile.native.mustache +++ /dev/null @@ -1,39 +0,0 @@ - -# 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/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-sources.xml b/archetypes/archetypes/src/main/archetype/common/media-sources.xml deleted file mode 100644 index 5f34067e8b7..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/media-sources.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - files - - src/*/java/**/SimpleGreetService.java.mustache - 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 - - - - 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 82beaf7dd0e..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 3b9471d0d96..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/packaging.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - files - - app.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 db0378cf9a8..00000000000 --- a/archetypes/archetypes/src/main/archetype/common/security.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - true - true - - - - - - - - - - true - - - diff --git a/archetypes/archetypes/src/main/archetype/defaults.xml b/archetypes/archetypes/src/main/archetype/defaults.xml new file mode 100644 index 00000000000..d1e12073302 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/defaults.xml @@ -0,0 +1,89 @@ + + + + + + . + + false + + + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + false + + 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..6dce4c373eb --- /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..59c63f52460 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/customize-project/output.xml @@ -0,0 +1,32 @@ + + + + + + + + ${artifactId} + ${groupId} + ${version} + ${package} + + + diff --git a/archetypes/archetypes/src/main/archetype/common/files/.dockerignore b/archetypes/archetypes/src/main/archetype/features/docker/files/.dockerignore similarity index 100% rename from archetypes/archetypes/src/main/archetype/common/files/.dockerignore rename to archetypes/archetypes/src/main/archetype/features/docker/files/.dockerignore diff --git a/archetypes/archetypes/src/main/archetype/features/docker/files/Dockerfile.hbs b/archetypes/archetypes/src/main/archetype/features/docker/files/Dockerfile.hbs new file mode 100644 index 00000000000..b1d54aa75ee --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/docker/files/Dockerfile.hbs @@ -0,0 +1,107 @@ +# 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 +ADD pom.xml . +{{#multi-module}} +{{#module-names}} +ADD {{.}}/pom.xml {{.}}/pom.xml +{{/module-names}} +{{/multi-module}} +RUN mvn package \ +{{#multi-module}} + -pl {{module-name}} -am \ +{{/multi-module}} +{{#native-image}} + -Pnative-image -Dnative.image.skip \ +{{/native-image}} +{{#jlink}} + -Pjlink-image -DskipJavaImage \ +{{/jlink}} +{{#eclipselink}} + -Declipselink.weave.skip \ +{{/eclipselink}} +{{#openapi-generator}} + -DskipOpenApiGenerate \ +{{/openapi-generator}} + -Dmaven.test.skip + +# Do the Maven build! +# Incremental docker builds will resume here when you change sources +{{#multi-module}} +{{#module-names}} +ADD {{.}}/src {{.}}/src +{{/module-names}} +RUN mvn package \ + -pl {{module-name}} -am \ +{{#native-image}} + -Pnative-image \ +{{/native-image}} +{{#jlink}} + -Pjlink-image \ +{{/jlink}} + -Dmaven.test.skip +{{/multi-module}} +{{^multi-module}} +ADD src src +RUN mvn package \ +{{#native-image}} + -Pnative-image \ +{{/native-image}} +{{#jlink}} + -Pjlink-image \ +{{/jlink}} + -Dmaven.test.skip +{{/multi-module}} + +RUN echo "done!" + +# 2nd stage, build the runtime image +{{#native-image}} +FROM scratch +WORKDIR /helidon + +# Copy the binary built in the 1st stage +COPY --from=build /helidon/target/{{artifactId}} . + +ENTRYPOINT ["./{{artifactId}}"] +{{/native-image}} +{{^native-image}} +{{#jlink}} +FROM debian:stretch-slim +WORKDIR /helidon +COPY --from=build /helidon/target/{{artifactId}}-jri ./ +ENTRYPOINT ["/bin/bash", "/helidon/bin/start"] +{{/jlink}} +{{^jlink}} +FROM container-registry.oracle.com/java/jdk-no-fee-term:21 +WORKDIR /helidon + +# Copy the binary built in the 1st stage +{{#multi-module}} +COPY --from=build /helidon/{{module-name}}/target/{{artifactId}}.jar ./ +COPY --from=build /helidon/{{module-name}}/target/libs ./libs +{{/multi-module}} +{{^multi-module}} +COPY --from=build /helidon/target/{{artifactId}}.jar ./ +COPY --from=build /helidon/target/libs ./libs +{{/multi-module}} + +CMD ["java", "-jar", "{{basedir}}/{{artifactId}}.jar"] +{{/jlink}} +{{/native-image}} + +EXPOSE 8080 diff --git a/archetypes/archetypes/src/main/archetype/features/docker/files/README.md.hbs b/archetypes/archetypes/src/main/archetype/features/docker/files/README.md.hbs new file mode 100644 index 00000000000..a411434e979 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/docker/files/README.md.hbs @@ -0,0 +1,19 @@ + +## Building the Docker Image + +```shell +docker build -t {{artifactId}} . +``` + +## Running the Docker Image + +{{#docker-run-readme-section}} +{{.}} +{{/docker-run-readme-section}} +{{^docker-run-readme-section}} +```shell +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/features/docker/inputs.xml b/archetypes/archetypes/src/main/archetype/features/docker/inputs.xml new file mode 100644 index 00000000000..e531b611bee --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/docker/inputs.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/docker/output.xml b/archetypes/archetypes/src/main/archetype/features/docker/output.xml new file mode 100644 index 00000000000..702ffc86689 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/docker/output.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + files + + Dockerfile.hbs + + + false + false + + + + files + + Dockerfile.hbs + + + true + false + + + + files + + Dockerfile.hbs + + + false + true + + + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/jlink/files/README.md.hbs b/archetypes/archetypes/src/main/archetype/features/jlink/files/README.md.hbs new file mode 100644 index 00000000000..2abffe74dd0 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/jlink/files/README.md.hbs @@ -0,0 +1,33 @@ +## Building a Custom Runtime Image + +Build the custom runtime image using the jlink image profile: + +```shell +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: + +```shell +./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: + +```shell +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/features/jlink/inputs.xml b/archetypes/archetypes/src/main/archetype/features/jlink/inputs.xml new file mode 100644 index 00000000000..a900cf459f8 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/jlink/inputs.xml @@ -0,0 +1,29 @@ + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/se/custom/observability.xml b/archetypes/archetypes/src/main/archetype/features/jlink/output.xml similarity index 77% rename from archetypes/archetypes/src/main/archetype/se/custom/observability.xml rename to archetypes/archetypes/src/main/archetype/features/jlink/output.xml index db722caf323..a0fdfb8dfb8 100644 --- a/archetypes/archetypes/src/main/archetype/se/custom/observability.xml +++ b/archetypes/archetypes/src/main/archetype/features/jlink/output.xml @@ -1,7 +1,7 @@ + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/jpms/output.xml b/archetypes/archetypes/src/main/archetype/features/jpms/output.xml new file mode 100644 index 00000000000..1f2a5888715 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/jpms/output.xml @@ -0,0 +1,94 @@ + + + + + + + files + + src/main/java/**/module-info.java.hbs + + + + + + java.logging + jakarta.annotation + jakarta.cdi + jakarta.inject + jakarta.json + jakarta.json.bind + jakarta.persistence + jakarta.transaction + jakarta.ws.rs + jakarta.xml.bind + io.helidon + io.helidon.common.pki + io.helidon.config + io.helidon.cors + io.helidon.dbclient + io.helidon.dbclient.metrics + io.helidon.dbclient.tracing + io.helidon.faulttolerance + io.helidon.health.checks + io.helidon.http + io.helidon.http.media.multipart + io.helidon.logging.common + io.helidon.metrics.api + io.helidon.microprofile.cors + io.helidon.microprofile.faulttolerance + io.helidon.microprofile.jwt.auth + io.helidon.microprofile.metrics + io.helidon.microprofile.openapi + io.helidon.microprofile.telemetry + io.helidon.microprofile.config + io.helidon.security + io.helidon.security.annotations + io.helidon.security.integration.common + io.helidon.security.providers.common + io.helidon.security.providers.google.login + io.helidon.security.providers.httpauth + io.helidon.security.providers.httpsign + io.helidon.security.providers.jwt + io.helidon.security.providers.oidc + io.helidon.tracing + io.helidon.webclient.http1 + io.helidon.webclient.security + io.helidon.webserver + io.helidon.webserver.context + io.helidon.webserver.cors + io.helidon.webserver.http2 + io.helidon.webserver.observe + io.helidon.webserver.observe.health + io.helidon.webserver.observe.metrics + io.helidon.webserver.observe.tracing + io.helidon.webserver.security + io.helidon.webserver.staticcontent + jersey.media.multipart + org.jvnet.mimepull + com.fasterxml.jackson.annotation + com.fasterxml.jackson.core + com.oracle.coherence + com.oracle.coherence.cdi + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/kubernetes/files/README.md.hbs b/archetypes/archetypes/src/main/archetype/features/kubernetes/files/README.md.hbs new file mode 100644 index 00000000000..759a3f4fc7f --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/kubernetes/files/README.md.hbs @@ -0,0 +1,33 @@ +## 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 + +```shell +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 + +```shell +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. + +```shell +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.hbs 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.hbs 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..bca8499b530 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/kubernetes/output.xml @@ -0,0 +1,38 @@ + + + + + + + files + + app.yaml.hbs + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/common/files/pom.xml.mustache b/archetypes/archetypes/src/main/archetype/features/maven/files/pom.xml.hbs similarity index 79% rename from archetypes/archetypes/src/main/archetype/common/files/pom.xml.mustache rename to archetypes/archetypes/src/main/archetype/features/maven/files/pom.xml.hbs index 9e35d616f35..62a3159d116 100644 --- a/archetypes/archetypes/src/main/archetype/common/files/pom.xml.mustache +++ b/archetypes/archetypes/src/main/archetype/features/maven/files/pom.xml.hbs @@ -4,12 +4,10 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - {{parent-groupId}} + io.helidon.applications {{parent-artifactId}} - {{parent-version}} -{{#remote-parent-pom}} + {{helidon-version}} -{{/remote-parent-pom}} {{groupId}} {{artifactId}} @@ -49,10 +47,10 @@ {{#first}} {{/first}} - - {{groupId}} - {{artifactId}} - + + {{groupId}} + {{artifactId}} + {{#last}} {{/last}} @@ -83,6 +81,18 @@ {{#optional}} {{.}} {{/optional}} +{{#exclusions}} +{{#first}} + +{{/first}} + + {{groupId}} + {{artifactId}} + +{{#first}} + +{{/first}} +{{/exclusions}} {{#last}} @@ -105,7 +115,7 @@ {{/maven-plugins}} - {{#maven-profiles}} - {{.}} - {{/maven-profiles}} +{{#maven-profiles}} +{{.}} +{{/maven-profiles}} diff --git a/archetypes/archetypes/src/main/archetype/features/maven/inputs.xml b/archetypes/archetypes/src/main/archetype/features/maven/inputs.xml new file mode 100644 index 00000000000..42030c32b5f --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/maven/inputs.xml @@ -0,0 +1,22 @@ + + + + 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..95380dadcd6 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/maven/output.xml @@ -0,0 +1,31 @@ + + + + + + + files + + pom.xml.hbs + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/multi-module/files/pom.xml.hbs b/archetypes/archetypes/src/main/archetype/features/multi-module/files/pom.xml.hbs new file mode 100644 index 00000000000..771460a2646 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/multi-module/files/pom.xml.hbs @@ -0,0 +1,87 @@ + + + 4.0.0 + {{groupId}} + {{artifactId}}-aggregator + {{project-version}} + pom +{{#parent-pom-properties}} +{{#first}} + + +{{/first}} + <{{key}}>{{value}} +{{#last}} + +{{/last}} +{{/parent-pom-properties}} +{{#parent-dependencies-management}} +{{#first}} + + + +{{/first}} + + {{groupId}} + {{artifactId}} +{{#version}} + {{.}} +{{/version}} +{{#scope}} + {{.}} +{{/scope}} +{{#type}} + {{.}} +{{/type}} +{{#optional}} + {{.}} +{{/optional}} +{{#exclusions}} +{{#first}} + +{{/first}} + + {{groupId}} + {{artifactId}} + +{{#last}} + +{{/last}} +{{/exclusions}} + +{{#last}} + + +{{/last}} +{{/parent-dependencies-management}} +{{#parent-build}} + + +{{#parent-plugin-management}} +{{#first}} + + +{{/first}} +{{.}} +{{#last}} + + +{{/last}} +{{/parent-plugin-management}} + +{{/parent-build}} +{{#module-names}} +{{#first}} + + +{{/first}} +{{#module-name}} + {{.}} +{{/module-name}} +{{#last}} + +{{/last}} +{{/module-names}} + diff --git a/archetypes/archetypes/src/main/archetype/features/multi-module/inputs.xml b/archetypes/archetypes/src/main/archetype/features/multi-module/inputs.xml new file mode 100644 index 00000000000..c1fa60be9ca --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/multi-module/inputs.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/archetypes/archetypes/src/main/archetype/features/multi-module/output.xml b/archetypes/archetypes/src/main/archetype/features/multi-module/output.xml new file mode 100644 index 00000000000..103e0a405f2 --- /dev/null +++ b/archetypes/archetypes/src/main/archetype/features/multi-module/output.xml @@ -0,0 +1,35 @@ + + + + + + ${module-name} + + +