generator-jhipster 8.7.1 → 8.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/cli/commands.d.mts +89 -89
- package/dist/cli/environment-builder.d.mts +7 -6
- package/dist/cli/environment-builder.mjs +5 -3
- package/dist/cli/jhipster-command.d.mts +2 -2
- package/dist/cli/jhipster-command.mjs +13 -4
- package/dist/cli/program.d.mts +53 -36
- package/dist/cli/program.mjs +41 -32
- package/dist/cli/utils.d.mts +2 -3
- package/dist/cli/utils.mjs +11 -21
- package/dist/generators/angular/generator.js +2 -2
- package/dist/generators/angular/resources/package.json +13 -13
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway-routes.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.model.ts.ejs +1 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.model.ts.ejs +1 -6
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +5 -5
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/service/user-management.service.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.ts.ejs +7 -7
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-jwt.service.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/auth-session.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/csrf.service.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/auth/state-storage.service.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/core/interceptor/notification.interceptor.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +5 -5
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +7 -7
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +7 -7
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/profile.service.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.service.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translate.directive.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/language/translation.module.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort.service.ts.ejs +1 -1
- package/dist/generators/base/api.d.ts +10 -4
- package/dist/generators/base/generator.d.ts +4 -0
- package/dist/generators/base/generator.js +10 -1
- package/dist/generators/base/shared-data.js +2 -0
- package/dist/generators/base/support/faker.d.ts +1 -1
- package/dist/generators/base/support/faker.js +1 -1
- package/dist/generators/base/support/timestamp.js +10 -2
- package/dist/generators/base-application/support/prepare-entity.js +6 -1
- package/dist/generators/base-application/support/prepare-field.js +40 -16
- package/dist/generators/base-application/support/prepare-relationship.d.ts +1 -1
- package/dist/generators/base-application/support/task-type-inference.d.ts +18 -18
- package/dist/generators/base-application/types.d.ts +4 -0
- package/dist/generators/base-core/generator.d.ts +7 -4
- package/dist/generators/base-core/generator.js +31 -35
- package/dist/generators/base-workspaces/generator.d.ts +34 -1
- package/dist/generators/base-workspaces/generator.js +1 -1
- package/dist/generators/base-workspaces/internal/docker-base.js +1 -3
- package/dist/generators/bootstrap/support/eslint-transform.js +2 -2
- package/dist/generators/bootstrap/support/java-unused-imports-transform.js +2 -2
- package/dist/generators/bootstrap/support/prettier-support.js +2 -2
- package/dist/generators/bootstrap-application-base/generator.d.ts +2 -2
- package/dist/generators/bootstrap-application-base/generator.js +19 -5
- package/dist/generators/bootstrap-application-base/utils.d.ts +3 -3
- package/dist/generators/bootstrap-application-base/utils.js +9 -3
- package/dist/generators/bootstrap-workspaces/command.d.ts +12 -2
- package/dist/generators/bootstrap-workspaces/command.js +5 -3
- package/dist/generators/bootstrap-workspaces/generator.d.ts +8 -2
- package/dist/generators/bootstrap-workspaces/generator.js +0 -2
- package/dist/generators/bootstrap-workspaces/index.d.ts +1 -0
- package/dist/generators/bootstrap-workspaces/index.js +1 -0
- package/dist/generators/client/command.d.ts +22 -0
- package/dist/generators/client/command.js +22 -0
- package/dist/generators/client/files-common.js +1 -1
- package/dist/generators/client/generator.js +4 -5
- package/dist/generators/client/prompts.js +10 -9
- package/dist/generators/client/resources/package.json +3 -3
- package/dist/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs +16 -5
- package/dist/generators/common/generator.js +2 -2
- package/dist/generators/common/resources/package.json +1 -1
- package/dist/generators/common/templates/sonar-project.properties.ejs +13 -7
- package/dist/generators/cypress/files.js +6 -0
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +2 -2
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/logout.cy.ts.ejs +39 -0
- package/dist/generators/docker/generator.d.ts +1 -1
- package/dist/generators/docker/templates/docker/keycloak.yml.ejs +2 -1
- package/dist/generators/docker-compose/command.js +9 -1
- package/dist/generators/docker-compose/generator.d.ts +11 -53
- package/dist/generators/docker-compose/generator.js +24 -23
- package/dist/generators/generate-blueprint/command.d.ts +97 -20
- package/dist/generators/generate-blueprint/command.js +28 -0
- package/dist/generators/generate-blueprint/constants.d.ts +2 -2
- package/dist/generators/generate-blueprint/files.d.ts +1 -42
- package/dist/generators/generate-blueprint/files.js +27 -29
- package/dist/generators/generate-blueprint/generator.d.ts +5 -2
- package/dist/generators/generate-blueprint/generator.js +78 -22
- package/dist/generators/generate-blueprint/resources/package.json +3 -3
- package/dist/generators/generate-blueprint/templates/.github/workflows/samples.yml.ejs +6 -8
- package/dist/generators/generate-blueprint/templates/README.md.ejs +12 -2
- package/dist/generators/generate-blueprint/templates/cli/cli-customizations.cjs.ejs +2 -0
- package/dist/generators/generate-blueprint/templates/cli/cli.cjs.ejs +2 -1
- package/dist/generators/generate-blueprint/templates/cli/commands.cjs.ejs +1 -1
- package/dist/generators/generate-blueprint/templates/eslint.config.js.jhi.blueprint.ejs +3 -2
- package/dist/generators/generate-blueprint/templates/generators/generator/command.mjs.ejs +8 -12
- package/dist/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +8 -11
- package/dist/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +2 -2
- package/dist/generators/generate-blueprint/templates/generators/generator/index.mjs.ejs +2 -4
- package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +0 -1
- package/dist/generators/generator-constants.d.ts +2 -2
- package/dist/generators/generator-constants.js +3 -3
- package/dist/generators/git/command.d.ts +10 -0
- package/dist/generators/git/command.js +10 -0
- package/dist/generators/git/generator.d.ts +5 -4
- package/dist/generators/git/generator.js +6 -4
- package/dist/generators/gradle/generators/node-gradle/templates/buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle.ejs +16 -10
- package/dist/generators/gradle/internal/needles.d.ts +3 -1
- package/dist/generators/gradle/internal/needles.js +10 -5
- package/dist/generators/gradle/templates/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/dist/generators/gradle/types.d.ts +3 -2
- package/dist/generators/init/command.d.ts +4 -20
- package/dist/generators/init/command.js +1 -1
- package/dist/generators/init/resources/.node-version +1 -1
- package/dist/generators/java/command.d.ts +3 -5
- package/dist/generators/java/command.js +1 -20
- package/dist/generators/java/generators/bootstrap/command.d.ts +7 -0
- package/dist/generators/java/generators/bootstrap/command.js +7 -0
- package/dist/generators/java/generators/build-tool/generator.js +37 -13
- package/dist/generators/java/generators/graalvm/command.d.ts +5 -0
- package/dist/generators/java/generators/graalvm/command.js +5 -0
- package/dist/generators/java/generators/graalvm/generator.d.ts +9 -0
- package/dist/generators/java/generators/graalvm/generator.js +222 -0
- package/dist/generators/java/generators/graalvm/index.d.ts +20 -0
- package/dist/generators/java/generators/graalvm/index.js +20 -0
- package/dist/generators/java/generators/graalvm/internal/maven-definition.d.ts +8 -0
- package/dist/generators/java/generators/graalvm/internal/maven-definition.js +130 -0
- package/dist/generators/java/generators/graalvm/resources/build.gradle +1 -0
- package/dist/generators/java/generators/graalvm/resources/gradle/libs.versions.toml +5 -0
- package/dist/generators/java/generators/graalvm/templates/README.md.jhi.native.ejs +53 -0
- package/dist/generators/java/generators/graalvm/templates/gradle/native.gradle.ejs +44 -0
- package/dist/generators/java/generators/graalvm/templates/src/main/java/_package_/config/NativeConfiguration.java.ejs +14 -0
- package/dist/generators/java/generators/node/generator.d.ts +6 -18
- package/dist/generators/java/generators/node/generator.js +31 -0
- package/dist/generators/java/generators/openapi-generator/generator.js +2 -2
- package/dist/generators/java/support/util.d.ts +1 -1
- package/dist/generators/java/types.d.ts +4 -1
- package/dist/generators/javascript/generators/bootstrap/command.d.ts +21 -20
- package/dist/generators/javascript/generators/bootstrap/generator.d.ts +1 -2
- package/dist/generators/javascript/generators/bootstrap/generator.js +9 -5
- package/dist/generators/javascript/types.d.ts +9 -2
- package/dist/generators/kubernetes/command.d.ts +12 -0
- package/dist/generators/kubernetes/command.js +12 -0
- package/dist/generators/kubernetes/index.d.ts +1 -0
- package/dist/generators/kubernetes/index.js +1 -0
- package/dist/generators/kubernetes-helm/index.d.ts +1 -0
- package/dist/generators/kubernetes-helm/index.js +1 -0
- package/dist/generators/kubernetes-knative/generator.d.ts +1 -1
- package/dist/generators/kubernetes-knative/index.d.ts +1 -0
- package/dist/generators/kubernetes-knative/index.js +1 -0
- package/dist/generators/languages/entity-files.d.ts +3 -2
- package/dist/generators/languages/entity-files.js +0 -1
- package/dist/generators/languages/generator.d.ts +1 -0
- package/dist/generators/languages/generator.js +1 -0
- package/dist/generators/liquibase/files.js +8 -0
- package/dist/generators/liquibase/generator.d.ts +1 -1
- package/dist/generators/liquibase/generator.js +15 -0
- package/dist/generators/liquibase/templates/src/main/resources/META-INF/native-image/liquibase/reflect-config.json +145 -0
- package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/add_relationship_constraints.ejs +81 -0
- package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity_constraints.xml.ejs +2 -62
- package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +3 -60
- package/dist/generators/maven/generators/frontend-plugin/generator.js +10 -5
- package/dist/generators/maven/types.d.ts +3 -6
- package/dist/generators/project-name/command.d.ts +25 -20
- package/dist/generators/project-name/command.js +20 -4
- package/dist/generators/project-name/generator.d.ts +3 -12
- package/dist/generators/project-name/generator.js +6 -38
- package/dist/generators/react/generator.d.ts +1 -1
- package/dist/generators/react/generator.js +15 -2
- package/dist/generators/react/resources/package.json +26 -25
- package/dist/generators/react/templates/package.json.ejs +0 -3
- package/dist/generators/server/generator.d.ts +1 -7
- package/dist/generators/server/generator.js +22 -50
- package/dist/generators/server/resources/Dockerfile +12 -12
- package/dist/generators/server/resources/gradle/libs.versions.toml +10 -7
- package/dist/generators/server/resources/pom.xml +11 -11
- package/dist/generators/server/types.d.ts +8 -0
- package/dist/generators/spring-boot/cleanup.js +2 -2
- package/dist/generators/spring-boot/command.d.ts +19 -0
- package/dist/generators/spring-boot/command.js +19 -0
- package/dist/generators/spring-boot/generator.d.ts +2 -2
- package/dist/generators/spring-boot/generator.js +5 -9
- package/dist/generators/spring-boot/prompts.js +12 -12
- package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +107 -106
- package/dist/generators/spring-boot/templates/README.md.jhi.spring-boot.ejs +22 -16
- package/dist/generators/spring-boot/templates/gradle/profile_dev.gradle.ejs +2 -46
- package/dist/generators/spring-boot/templates/gradle/profile_prod.gradle.ejs +1 -47
- package/dist/generators/spring-boot/templates/src/main/java/_package_/Application.java.ejs +4 -1
- package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +29 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +32 -6
- package/dist/generators/spring-boot/templates/src/main/java/_package_/config/WebConfigurer.java.ejs +13 -8
- package/dist/generators/spring-boot/templates/src/main/java/_package_/domain/User.java.ejs +2 -3
- package/dist/generators/spring-boot/templates/src/main/resources/config/application-dev.yml.ejs +8 -3
- package/dist/generators/spring-boot/templates/src/main/resources/config/application.yml.ejs +4 -2
- package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +8 -7
- package/dist/generators/spring-cache/generator.d.ts +2 -1
- package/dist/generators/spring-cache/generator.js +22 -0
- package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +1 -1
- package/dist/generators/spring-cloud/generators/gateway/generator.js +2 -2
- package/dist/generators/spring-data-couchbase/generator.js +2 -2
- package/dist/generators/spring-data-mongodb/generator.d.ts +1 -1
- package/dist/generators/spring-data-relational/files.d.ts +1 -0
- package/dist/generators/spring-data-relational/files.js +6 -0
- package/dist/generators/spring-data-relational/generator.d.ts +2 -1
- package/dist/generators/spring-data-relational/generator.js +63 -2
- package/dist/generators/spring-data-relational/internal/dependencies.d.ts +87 -7
- package/dist/generators/spring-data-relational/internal/dependencies.js +30 -18
- package/dist/generators/spring-data-relational/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_persistable.ejs +6 -0
- package/dist/generators/spring-data-relational/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_reactive.ejs +1 -2
- package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/DatabaseConfiguration.java.ejs +8 -3
- package/dist/generators/spring-data-relational/templates/src/main/java/_package_/config/JacksonNativeConfiguration.java.ejs +98 -0
- package/dist/generators/vue/files-vue.js +4 -1
- package/dist/generators/vue/generator.d.ts +1 -1
- package/dist/generators/vue/generator.js +84 -3
- package/dist/generators/vue/resources/package.json +21 -20
- package/dist/generators/vue/support/update-languages.js +1 -1
- package/dist/generators/vue/templates/module-federation.config.cjs.ejs +55 -0
- package/dist/generators/vue/templates/package.json.ejs +11 -62
- package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +1 -1
- package/dist/generators/vue/templates/vite.config.mts.ejs +15 -21
- package/dist/generators/workspaces/generator.d.ts +20 -9
- package/dist/generators/workspaces/generator.js +3 -3
- package/dist/lib/application/field-types.d.ts +2 -1
- package/dist/lib/command/converter.d.ts +6 -2
- package/dist/lib/command/converter.js +4 -1
- package/dist/lib/command/load.js +1 -0
- package/dist/lib/command/lookup-commands-configs.js +9 -12
- package/dist/lib/command/support/merge-union.d.ts +17 -6
- package/dist/lib/command/types.d.ts +38 -11
- package/dist/lib/eslint/index.d.ts +6 -14
- package/dist/lib/eslint/index.js +1 -2
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +7 -3
- package/dist/lib/jdl/core/linters/rules.d.ts +1 -3
- package/dist/lib/jdl/core/parsing/validator.js +2 -2
- package/dist/lib/jhipster/default-application-options.d.ts +83 -15
- package/dist/lib/jhipster/default-application-options.js +28 -28
- package/dist/lib/testing/get-generator.d.ts +1 -0
- package/dist/lib/testing/get-generator.js +6 -2
- package/dist/lib/testing/github-group.d.ts +6 -0
- package/dist/lib/testing/github-group.js +56 -0
- package/dist/lib/testing/github-matrix.d.ts +38 -0
- package/dist/lib/testing/github-matrix.js +72 -0
- package/dist/lib/testing/github.d.ts +1 -0
- package/dist/lib/testing/github.js +6 -2
- package/dist/lib/testing/helpers.d.ts +41 -3
- package/dist/lib/testing/helpers.js +74 -12
- package/dist/lib/testing/index.d.ts +2 -0
- package/dist/lib/testing/index.js +2 -0
- package/dist/lib/testing/support/matcher.d.ts +2 -2
- package/dist/lib/testing/support/matcher.js +3 -3
- package/dist/lib/types/application/application.d.ts +6 -1
- package/dist/lib/types/application/entity.d.ts +3 -1
- package/dist/lib/types/application/field.d.ts +16 -4
- package/dist/lib/types/application/options.d.ts +4 -0
- package/dist/lib/types/application/relationship.d.ts +1 -0
- package/dist/lib/types/application/yo-rc.d.ts +4 -0
- package/dist/lib/types/base/entity.d.ts +1 -0
- package/dist/lib/utils/logger.d.ts +1 -1
- package/dist/lib/utils/yo-rc.d.ts +27 -3
- package/package.json +33 -31
- package/dist/generators/generate-blueprint/templates/vitest.test-setup.ts.ejs +0 -6
- package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +0 -45
|
@@ -329,46 +329,52 @@ sonar.password=admin
|
|
|
329
329
|
|
|
330
330
|
For more information, refer to the [Code quality page][].
|
|
331
331
|
|
|
332
|
-
###
|
|
332
|
+
### Docker Compose support
|
|
333
333
|
|
|
334
|
-
|
|
334
|
+
JHipster generates a number of Docker Compose configuration files in the [<%- dockerServicesDir %>](<%- dockerServicesDir %>) folder to launch required third party services.
|
|
335
335
|
|
|
336
|
-
|
|
337
|
-
For example, to start a <%= prodDatabaseType %> database in a docker container, run:
|
|
336
|
+
For example, to start required services in Docker containers, run:
|
|
338
337
|
|
|
339
338
|
```
|
|
340
|
-
docker compose -f
|
|
339
|
+
docker compose -f <%- dockerServicesDir %>services.yml up -d
|
|
341
340
|
```
|
|
342
341
|
|
|
343
|
-
To stop
|
|
342
|
+
To stop and remove the containers, run:
|
|
344
343
|
|
|
345
344
|
```
|
|
346
|
-
docker compose -f
|
|
345
|
+
docker compose -f <%- dockerServicesDir %>services.yml down
|
|
347
346
|
```
|
|
348
|
-
<%_ } _%>
|
|
349
347
|
|
|
350
|
-
|
|
351
|
-
To achieve this, first build a docker image of your app by running:
|
|
348
|
+
[Spring Docker Compose Integration](https://docs.spring.io/spring-boot/reference/features/dev-services.html) is enable by default. It's possible to disable it in application.yml:
|
|
352
349
|
|
|
350
|
+
```yaml
|
|
351
|
+
spring:
|
|
352
|
+
...
|
|
353
|
+
docker:
|
|
354
|
+
compose:
|
|
355
|
+
enabled: false
|
|
353
356
|
```
|
|
357
|
+
|
|
358
|
+
You can also fully dockerize your application and all the services that it depends on.
|
|
359
|
+
To achieve this, first build a Docker image of your app by running:
|
|
360
|
+
|
|
361
|
+
```sh
|
|
354
362
|
npm run java:docker
|
|
355
363
|
```
|
|
356
364
|
|
|
357
|
-
Or build a arm64
|
|
365
|
+
Or build a arm64 Docker image when using an arm64 processor os like MacOS with M1 processor family running:
|
|
358
366
|
|
|
359
|
-
```
|
|
367
|
+
```sh
|
|
360
368
|
npm run java:docker:arm64
|
|
361
369
|
```
|
|
362
370
|
|
|
363
371
|
Then run:
|
|
364
372
|
|
|
365
|
-
```
|
|
373
|
+
```sh
|
|
366
374
|
docker compose -f <%- dockerServicesDir %>app.yml up -d
|
|
367
375
|
```
|
|
368
376
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
For more information refer to [Using Docker and Docker-Compose][], this page also contains information on the docker-compose sub-generator (`jhipster docker-compose`), which is able to generate docker configurations for one or several JHipster applications.
|
|
377
|
+
For more information refer to [Using Docker and Docker-Compose][], this page also contains information on the Docker Compose sub-generator (`jhipster docker-compose`), which is able to generate Docker configurations for one or several JHipster applications.
|
|
372
378
|
|
|
373
379
|
## Continuous Integration (optional)
|
|
374
380
|
|
|
@@ -24,56 +24,12 @@ sourceSets {
|
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
<%_ } _%>
|
|
28
|
-
<%_ if (databaseTypeSql) { _%>
|
|
29
|
-
|
|
30
|
-
configurations {
|
|
31
|
-
all {
|
|
32
|
-
resolutionStrategy {
|
|
33
|
-
<%_ if (prodDatabaseDriver?.r2dbc?.version) { _%>
|
|
34
|
-
force "<%- prodDatabaseDriver.r2dbc.groupId %>:<%- prodDatabaseDriver.r2dbc.artifactId %>:<%- prodDatabaseDriver.r2dbc.version %>"
|
|
35
|
-
<%_ } _%>
|
|
36
|
-
<%_ if (prodDatabaseDriver?.jdbc?.version) { _%>
|
|
37
|
-
force "<%- prodDatabaseDriver.jdbc.groupId %>:<%- prodDatabaseDriver.jdbc.artifactId %>:<%- prodDatabaseDriver.jdbc.version %>"
|
|
38
|
-
<%_ } _%>
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
27
|
|
|
28
|
+
<%_ } _%>
|
|
43
29
|
dependencies {
|
|
44
30
|
developmentOnly "org.springframework.boot:spring-boot-devtools"
|
|
45
|
-
|
|
46
|
-
implementation "com.h2database:h2"
|
|
47
|
-
<%_ } _%>
|
|
48
|
-
<%_ if (devDatabaseTypeOracle) { _%>
|
|
49
|
-
implementation "com.oracle.database.jdbc:ojdbc8"
|
|
50
|
-
<%_ } _%>
|
|
51
|
-
<%_ if (devDatabaseTypeH2Any && reactive) { _%>
|
|
52
|
-
implementation "io.r2dbc:r2dbc-h2"
|
|
53
|
-
<%_ } _%>
|
|
54
|
-
<%_ if (devDatabaseTypeMariadb || devDatabaseTypeMssql || devDatabaseTypePostgres || devDatabaseTypeMysql) { _%>
|
|
55
|
-
<%_ if (reactive) { _%>
|
|
56
|
-
implementation "<%- prodDatabaseDriver.r2dbc.groupId %>:<%- prodDatabaseDriver.r2dbc.artifactId %>"
|
|
57
|
-
<%_ } _%>
|
|
58
|
-
implementation "<%- prodDatabaseDriver.jdbc.groupId %>:<%- prodDatabaseDriver.jdbc.artifactId %>"
|
|
59
|
-
<%_ } _%>
|
|
60
|
-
<%_ if (prodDatabaseTypeMariadb) { _%>
|
|
61
|
-
testImplementation "org.testcontainers:mariadb"
|
|
62
|
-
<%_ } _%>
|
|
63
|
-
<%_ if (prodDatabaseTypeMssql) { _%>
|
|
64
|
-
testImplementation "org.testcontainers:mssqlserver"
|
|
65
|
-
<%_ } _%>
|
|
66
|
-
<%_ if (prodDatabaseTypeMysql) { _%>
|
|
67
|
-
testImplementation "org.testcontainers:mysql"
|
|
68
|
-
<%_ } _%>
|
|
69
|
-
<%_ if (prodDatabaseTypeOracle) { _%>
|
|
70
|
-
testImplementation "org.testcontainers:oracle-xe"
|
|
71
|
-
<%_ } _%>
|
|
72
|
-
<%_ if (prodDatabaseTypePostgresql) { _%>
|
|
73
|
-
testImplementation "org.testcontainers:postgresql"
|
|
74
|
-
<%_ } _%>
|
|
31
|
+
// jhipster-needle-gradle-dependency - JHipster will add additional dependencies here
|
|
75
32
|
}
|
|
76
|
-
<%_ } _%>
|
|
77
33
|
|
|
78
34
|
ext {
|
|
79
35
|
springProfiles = "dev" + springProfiles
|
|
@@ -16,55 +16,9 @@
|
|
|
16
16
|
See the License for the specific language governing permissions and
|
|
17
17
|
limitations under the License.
|
|
18
18
|
-%>
|
|
19
|
-
<%_ if (devDatabaseType !== prodDatabaseType && (devDatabaseTypeMariadb || devDatabaseTypeMssql || devDatabaseTypeMysql || devDatabaseTypePostgres)) { _%>
|
|
20
|
-
sourceSets {
|
|
21
|
-
test {
|
|
22
|
-
java {
|
|
23
|
-
exclude '<%= packageFolder %>/config/<% if (devDatabaseTypeMariadb) { %>Mariadb<% } else if (devDatabaseTypeMssql) { %>MsSql<% } else if (devDatabaseTypeMysql) { %>Mysql<% } else if (devDatabaseTypePostgres) { %>PostgreSql<% } %>TestContainer.java'
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
<%_ } _%>
|
|
28
|
-
<%_ if (databaseTypeSql) { _%>
|
|
29
|
-
|
|
30
|
-
configurations {
|
|
31
|
-
all {
|
|
32
|
-
resolutionStrategy {
|
|
33
|
-
<%_ if (prodDatabaseDriver?.r2dbc?.version) { _%>
|
|
34
|
-
force "<%- prodDatabaseDriver.r2dbc.groupId %>:<%- prodDatabaseDriver.r2dbc.artifactId %>:<%- prodDatabaseDriver.r2dbc.version %>"
|
|
35
|
-
<%_ } _%>
|
|
36
|
-
<%_ if (prodDatabaseDriver?.jdbc?.version) { _%>
|
|
37
|
-
force "<%- prodDatabaseDriver.jdbc.groupId %>:<%- prodDatabaseDriver.jdbc.artifactId %>:<%- prodDatabaseDriver.jdbc.version %>"
|
|
38
|
-
<%_ } _%>
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
19
|
dependencies {
|
|
44
|
-
|
|
45
|
-
<%_ if (reactive) { _%>
|
|
46
|
-
implementation "<%- prodDatabaseDriver.r2dbc.groupId %>:<%- prodDatabaseDriver.r2dbc.artifactId %>"
|
|
47
|
-
<%_ } _%>
|
|
48
|
-
implementation "<%- prodDatabaseDriver.jdbc.groupId %>:<%- prodDatabaseDriver.jdbc.artifactId %>"
|
|
49
|
-
<%_ } _%>
|
|
50
|
-
<%_ if (prodDatabaseTypeMariadb) { _%>
|
|
51
|
-
testImplementation "org.testcontainers:mariadb"
|
|
52
|
-
<%_ } _%>
|
|
53
|
-
<%_ if (prodDatabaseTypeMssql) { _%>
|
|
54
|
-
testImplementation "org.testcontainers:mssqlserver"
|
|
55
|
-
<%_ } _%>
|
|
56
|
-
<%_ if (prodDatabaseTypeMysql) { _%>
|
|
57
|
-
testImplementation "org.testcontainers:mysql"
|
|
58
|
-
<%_ } _%>
|
|
59
|
-
<%_ if (prodDatabaseTypeOracle) { _%>
|
|
60
|
-
implementation "com.oracle.database.jdbc:ojdbc8"
|
|
61
|
-
testImplementation "org.testcontainers:oracle-xe"
|
|
62
|
-
<%_ } _%>
|
|
63
|
-
<%_ if (prodDatabaseTypePostgresql) { _%>
|
|
64
|
-
testImplementation "org.testcontainers:postgresql"
|
|
65
|
-
<%_ } _%>
|
|
20
|
+
// jhipster-needle-gradle-dependency - JHipster will add additional dependencies here
|
|
66
21
|
}
|
|
67
|
-
<%_ } _%>
|
|
68
22
|
|
|
69
23
|
ext {
|
|
70
24
|
springProfiles = "prod" + springProfiles
|
|
@@ -41,8 +41,11 @@ import java.net.UnknownHostException;
|
|
|
41
41
|
import java.util.Arrays;
|
|
42
42
|
import java.util.Collection;
|
|
43
43
|
import java.util.Optional;
|
|
44
|
+
<%_ if (devDatabaseTypeH2Any) { _%>
|
|
45
|
+
import org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration;
|
|
46
|
+
<%_ } _%>
|
|
44
47
|
|
|
45
|
-
@SpringBootApplication
|
|
48
|
+
@SpringBootApplication(<% if (devDatabaseTypeH2Any) { %>exclude = { H2ConsoleAutoConfiguration.class }<% } %>)
|
|
46
49
|
@EnableConfigurationProperties({<% if (databaseMigrationLiquibase) { %>LiquibaseProperties.class, <% } %>ApplicationProperties.class})
|
|
47
50
|
public class <%= mainClass %> {
|
|
48
51
|
|
|
@@ -51,6 +51,10 @@ import tech.jhipster.web.filter.CookieCsrfFilter;
|
|
|
51
51
|
<%_ if (!skipClient) { _%>
|
|
52
52
|
import <%= packageName %>.web.filter.SpaWebFilter;
|
|
53
53
|
<%_ } _%>
|
|
54
|
+
<%_ if (applicationTypeGateway) { _%>
|
|
55
|
+
import org.springframework.beans.BeansException;
|
|
56
|
+
import org.springframework.beans.factory.config.BeanPostProcessor;
|
|
57
|
+
<%_ } _%>
|
|
54
58
|
<%_ if (authenticationUsesCsrf && !applicationTypeMicroservice) { _%>
|
|
55
59
|
import jakarta.servlet.http.HttpServletRequest;
|
|
56
60
|
import jakarta.servlet.http.HttpServletResponse;
|
|
@@ -113,6 +117,10 @@ import <%= packageName %>.security.oauth2.CustomClaimConverter;
|
|
|
113
117
|
<%_ if(!skipClient) { _%>
|
|
114
118
|
import org.springframework.security.web.header.writers.ReferrerPolicyHeaderWriter;
|
|
115
119
|
<%_ } _%>
|
|
120
|
+
<%_ if (applicationTypeGateway) { _%>
|
|
121
|
+
import org.springframework.security.web.server.WebFilterChainProxy;
|
|
122
|
+
import org.springframework.security.web.server.firewall.ServerWebExchangeFirewall;
|
|
123
|
+
<%_ } _%>
|
|
116
124
|
<%_ if (authenticationUsesCsrf && !applicationTypeMicroservice) { _%>
|
|
117
125
|
import org.springframework.util.StringUtils;
|
|
118
126
|
<%_ } _%>
|
|
@@ -194,17 +202,13 @@ public class SecurityConfiguration {
|
|
|
194
202
|
<%_ if (!skipClient) { _%>
|
|
195
203
|
.requestMatchers(mvc.pattern("/index.html"), mvc.pattern("/*.js"), mvc.pattern("/*.txt"), mvc.pattern("/*.json"), mvc.pattern("/*.map"), mvc.pattern("/*.css")).permitAll()
|
|
196
204
|
.requestMatchers(mvc.pattern("/*.ico"), mvc.pattern("/*.png"), mvc.pattern("/*.svg"), mvc.pattern("/*.webapp")).permitAll()
|
|
197
|
-
<%_ if (
|
|
205
|
+
<%_ if (clientBundlerVite) { _%>
|
|
198
206
|
.requestMatchers(mvc.pattern("/assets/**")).permitAll()
|
|
199
|
-
<%_ if (microfrontend) { _%>
|
|
200
|
-
.requestMatchers(mvc.pattern("/app/**")).permitAll()
|
|
201
|
-
.requestMatchers(mvc.pattern("/i18n/**")).permitAll()
|
|
202
|
-
<%_ } _%>
|
|
203
207
|
<%_ } else { _%>
|
|
204
208
|
.requestMatchers(mvc.pattern("/app/**")).permitAll()
|
|
205
209
|
.requestMatchers(mvc.pattern("/i18n/**")).permitAll()
|
|
206
|
-
<%_ } _%>
|
|
207
210
|
.requestMatchers(mvc.pattern("/content/**")).permitAll()
|
|
211
|
+
<%_ } _%>
|
|
208
212
|
.requestMatchers(mvc.pattern("/swagger-ui/**")).permitAll()
|
|
209
213
|
<%_ } _%>
|
|
210
214
|
<%_ if (authenticationTypeJwt) { _%>
|
|
@@ -227,6 +231,9 @@ public class SecurityConfiguration {
|
|
|
227
231
|
<%_ if (applicationTypeGateway) { _%>
|
|
228
232
|
<%_ if (microfrontend) { _%>
|
|
229
233
|
// microfrontend resources are loaded by webpack without authentication, they need to be public
|
|
234
|
+
<%_ if (clientBundlerVite) { _%>
|
|
235
|
+
.requestMatchers(mvc.pattern("/services/*/assets/**")).permitAll()
|
|
236
|
+
<%_ } _%>
|
|
230
237
|
.requestMatchers(mvc.pattern("/services/*/*.js")).permitAll()
|
|
231
238
|
.requestMatchers(mvc.pattern("/services/*/*.txt")).permitAll()
|
|
232
239
|
.requestMatchers(mvc.pattern("/services/*/*.json")).permitAll()
|
|
@@ -417,4 +424,20 @@ public class SecurityConfiguration {
|
|
|
417
424
|
}
|
|
418
425
|
}
|
|
419
426
|
<%_ } _%>
|
|
427
|
+
<%_ if (applicationTypeGateway) { _%>
|
|
428
|
+
|
|
429
|
+
// Fix for Spring Boot 3.3.5: https://github.com/spring-cloud/spring-cloud-gateway/issues/3568
|
|
430
|
+
@Bean
|
|
431
|
+
BeanPostProcessor beanPostProcessor() {
|
|
432
|
+
return new BeanPostProcessor() {
|
|
433
|
+
@Override
|
|
434
|
+
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
|
|
435
|
+
if (bean instanceof WebFilterChainProxy springSecurity) {
|
|
436
|
+
springSecurity.setFirewall(ServerWebExchangeFirewall.INSECURE_NOOP);
|
|
437
|
+
}
|
|
438
|
+
return bean;
|
|
439
|
+
}
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
<%_ } _%>
|
|
420
443
|
}
|
|
@@ -39,6 +39,10 @@ import org.springframework.boot.autoconfigure.security.SecurityProperties;
|
|
|
39
39
|
<%_ if (!skipClient) { _%>
|
|
40
40
|
import <%= packageName %>.web.filter.SpaWebFilter;
|
|
41
41
|
<%_ } _%>
|
|
42
|
+
<%_ if (applicationTypeGateway) { _%>
|
|
43
|
+
import org.springframework.beans.BeansException;
|
|
44
|
+
import org.springframework.beans.factory.config.BeanPostProcessor;
|
|
45
|
+
<%_ } _%>
|
|
42
46
|
import org.springframework.context.annotation.Bean;
|
|
43
47
|
import org.springframework.context.annotation.Configuration;
|
|
44
48
|
<%_ if (authenticationTypeOauth2) { _%>
|
|
@@ -114,6 +118,10 @@ import org.springframework.security.web.server.savedrequest.NoOpServerRequestCac
|
|
|
114
118
|
<%_ } _%>
|
|
115
119
|
import org.springframework.security.web.server.util.matcher.NegatedServerWebExchangeMatcher;
|
|
116
120
|
import org.springframework.security.web.server.util.matcher.OrServerWebExchangeMatcher;
|
|
121
|
+
<%_ if (applicationTypeGateway) { _%>
|
|
122
|
+
import org.springframework.security.web.server.WebFilterChainProxy;
|
|
123
|
+
import org.springframework.security.web.server.firewall.ServerWebExchangeFirewall;
|
|
124
|
+
<%_ } _%>
|
|
117
125
|
<%_ if (authenticationUsesCsrf) { _%>
|
|
118
126
|
import reactor.core.publisher.Mono;
|
|
119
127
|
<%_ } _%>
|
|
@@ -214,19 +222,16 @@ public class SecurityConfiguration {
|
|
|
214
222
|
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
|
|
215
223
|
http
|
|
216
224
|
.securityMatcher(new NegatedServerWebExchangeMatcher(new OrServerWebExchangeMatcher(
|
|
217
|
-
<%_ if (clientFrameworkVue) { _%>
|
|
218
225
|
pathMatchers(
|
|
226
|
+
<%_ if (clientBundlerVite) { _%>
|
|
219
227
|
"/assets/**",
|
|
220
|
-
|
|
228
|
+
<%_ } else { _%>
|
|
221
229
|
"/app/**",
|
|
222
230
|
"/i18n/**",
|
|
223
231
|
"/content/**",
|
|
224
|
-
|
|
232
|
+
<%_ } _%>
|
|
225
233
|
"/swagger-ui/**"
|
|
226
234
|
)
|
|
227
|
-
<%_ } else { _%>
|
|
228
|
-
pathMatchers("/app/**", "/i18n/**", "/content/**", "/swagger-ui/**")
|
|
229
|
-
<%_ } _%>
|
|
230
235
|
)))
|
|
231
236
|
<%_ if (!applicationTypeMicroservice) { _%>
|
|
232
237
|
.cors(withDefaults())
|
|
@@ -286,10 +291,15 @@ public class SecurityConfiguration {
|
|
|
286
291
|
<%_ if (applicationTypeGateway) { _%>
|
|
287
292
|
<%_ if (microfrontend) { _%>
|
|
288
293
|
// microfrontend resources are loaded by webpack without authentication, they need to be public
|
|
294
|
+
<%_ if (clientBundlerVite) { _%>
|
|
295
|
+
.pathMatchers("/services/*/assets/**").permitAll()
|
|
296
|
+
.pathMatchers("/services/*/*.js").permitAll()
|
|
297
|
+
<%_ } else { _%>
|
|
289
298
|
.pathMatchers("/services/*/*.js").permitAll()
|
|
290
299
|
.pathMatchers("/services/*/*.txt").permitAll()
|
|
291
300
|
.pathMatchers("/services/*/*.json").permitAll()
|
|
292
301
|
.pathMatchers("/services/*/*.js.map").permitAll()
|
|
302
|
+
<%_ } _%>
|
|
293
303
|
<%_ } _%>
|
|
294
304
|
.pathMatchers("/services/*/management/health/readiness").permitAll()
|
|
295
305
|
.pathMatchers("/services/*/v3/api-docs").hasAuthority(AuthoritiesConstants.ADMIN)
|
|
@@ -480,4 +490,20 @@ public class SecurityConfiguration {
|
|
|
480
490
|
return Mono.empty();
|
|
481
491
|
}
|
|
482
492
|
<%_ } _%>
|
|
493
|
+
<%_ if (applicationTypeGateway) { _%>
|
|
494
|
+
|
|
495
|
+
// Fix for Spring Boot 3.3.5: https://github.com/spring-cloud/spring-cloud-gateway/issues/3568
|
|
496
|
+
@Bean
|
|
497
|
+
BeanPostProcessor beanPostProcessor() {
|
|
498
|
+
return new BeanPostProcessor() {
|
|
499
|
+
@Override
|
|
500
|
+
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
|
|
501
|
+
if (bean instanceof WebFilterChainProxy springSecurity) {
|
|
502
|
+
springSecurity.setFirewall(ServerWebExchangeFirewall.INSECURE_NOOP);
|
|
503
|
+
}
|
|
504
|
+
return bean;
|
|
505
|
+
}
|
|
506
|
+
};
|
|
507
|
+
}
|
|
508
|
+
<%_ } _%>
|
|
483
509
|
}
|
package/dist/generators/spring-boot/templates/src/main/java/_package_/config/WebConfigurer.java.ejs
CHANGED
|
@@ -26,6 +26,7 @@ import tech.jhipster.config.JHipsterConstants;
|
|
|
26
26
|
<%_ } _%>
|
|
27
27
|
import tech.jhipster.config.JHipsterProperties;
|
|
28
28
|
<%_ if (devDatabaseTypeH2Any) { _%>
|
|
29
|
+
import tech.jhipster.config.ApplicationProperties;
|
|
29
30
|
import tech.jhipster.config.h2.H2ConfigurationHelper;
|
|
30
31
|
<%_ } _%>
|
|
31
32
|
<%_ if (!skipClient && reactive) { _%>
|
|
@@ -102,14 +103,15 @@ public class WebConfigurer implements <% if (!reactive) { %>ServletContextInitia
|
|
|
102
103
|
<%_ } _%>
|
|
103
104
|
private final JHipsterProperties jHipsterProperties;
|
|
104
105
|
|
|
105
|
-
public WebConfigurer(<% if (!reactive ||
|
|
106
|
+
public WebConfigurer(<% if (!reactive || devDatabaseTypeH2Any) { %>Environment env, <% } %>JHipsterProperties jHipsterProperties) {
|
|
106
107
|
<%_ if (!reactive) { _%>
|
|
107
108
|
this.env = env;
|
|
108
109
|
<%_ } _%>
|
|
109
110
|
this.jHipsterProperties = jHipsterProperties;
|
|
110
111
|
<%_ if (devDatabaseTypeH2Any && reactive) { _%>
|
|
111
|
-
if (env
|
|
112
|
+
if (h2ConsoleIsEnabled(env)) {
|
|
112
113
|
try {
|
|
114
|
+
LOG.info("Initialize H2 console");
|
|
113
115
|
H2ConfigurationHelper.initH2Console();
|
|
114
116
|
} catch (Exception e) {
|
|
115
117
|
// Console may already be running on another app or after a refresh.
|
|
@@ -118,8 +120,6 @@ public class WebConfigurer implements <% if (!reactive) { %>ServletContextInitia
|
|
|
118
120
|
}
|
|
119
121
|
<%_ } _%>
|
|
120
122
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
123
|
<%_ if (!reactive) { _%>
|
|
124
124
|
|
|
125
125
|
@Override
|
|
@@ -129,7 +129,7 @@ public class WebConfigurer implements <% if (!reactive) { %>ServletContextInitia
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
<%_ if (devDatabaseTypeH2Any) { _%>
|
|
132
|
-
if (env
|
|
132
|
+
if (h2ConsoleIsEnabled(env)) {
|
|
133
133
|
initH2Console(servletContext);
|
|
134
134
|
}
|
|
135
135
|
<%_ } _%>
|
|
@@ -170,7 +170,6 @@ public class WebConfigurer implements <% if (!reactive) { %>ServletContextInitia
|
|
|
170
170
|
}
|
|
171
171
|
return extractedPath.substring(0, extractionEndIndex);
|
|
172
172
|
}
|
|
173
|
-
|
|
174
173
|
<%_ } _%>
|
|
175
174
|
<%_ } _%>
|
|
176
175
|
|
|
@@ -230,14 +229,20 @@ public class WebConfigurer implements <% if (!reactive) { %>ServletContextInitia
|
|
|
230
229
|
}
|
|
231
230
|
<%_ } _%>
|
|
232
231
|
<%_ } _%>
|
|
233
|
-
<%_ if (devDatabaseTypeH2Any
|
|
232
|
+
<%_ if (devDatabaseTypeH2Any) { _%>
|
|
233
|
+
|
|
234
|
+
private boolean h2ConsoleIsEnabled(Environment env) {
|
|
235
|
+
return env.acceptsProfiles(Profiles.of(JHipsterConstants.SPRING_PROFILE_DEVELOPMENT)) && "true".equals(env.getProperty("spring.h2.console.enabled"));
|
|
236
|
+
}
|
|
237
|
+
<%_ if (!reactive) { _%>
|
|
234
238
|
|
|
235
239
|
/**
|
|
236
240
|
* Initializes H2 console.
|
|
237
241
|
*/
|
|
238
242
|
private void initH2Console(ServletContext servletContext) {
|
|
239
|
-
LOG.
|
|
243
|
+
LOG.info("Initialize H2 console");
|
|
240
244
|
H2ConfigurationHelper.initH2Console(servletContext);
|
|
241
245
|
}
|
|
246
|
+
<%_ } _%>
|
|
242
247
|
<%_ } _%>
|
|
243
248
|
}
|
|
@@ -41,7 +41,6 @@ import org.hibernate.annotations.CacheConcurrencyStrategy;
|
|
|
41
41
|
<%_ } _%>
|
|
42
42
|
<%_ if (databaseTypeSql && reactive) { _%>
|
|
43
43
|
import org.springframework.data.annotation.Id;
|
|
44
|
-
import org.springframework.data.annotation.Transient;
|
|
45
44
|
import org.springframework.data.relational.core.mapping.Column;
|
|
46
45
|
import org.springframework.data.relational.core.mapping.Table;
|
|
47
46
|
<%_ if (requiresPersistableImplementation) { _%>
|
|
@@ -395,7 +394,7 @@ public class <%= user.persistClass %><% if (generateSpringAuditor) { %> extends
|
|
|
395
394
|
@BatchSize(size = 20)
|
|
396
395
|
<%_ } _%>
|
|
397
396
|
<%_ if (databaseTypeSql && reactive) { _%>
|
|
398
|
-
@Transient
|
|
397
|
+
@org.springframework.data.annotation.Transient
|
|
399
398
|
<%_ } _%>
|
|
400
399
|
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
401
400
|
private Set<Authority> authorities = new HashSet<>();
|
|
@@ -413,7 +412,7 @@ public class <%= user.persistClass %><% if (generateSpringAuditor) { %> extends
|
|
|
413
412
|
<%_ } _%>
|
|
414
413
|
<%_ if (databaseTypeSql && reactive && requiresPersistableImplementation) { _%>
|
|
415
414
|
|
|
416
|
-
@Transient
|
|
415
|
+
@org.springframework.data.annotation.Transient
|
|
417
416
|
private boolean isPersisted;
|
|
418
417
|
<%_ } _%>
|
|
419
418
|
|
package/dist/generators/spring-boot/templates/src/main/resources/config/application-dev.yml.ejs
CHANGED
|
@@ -87,9 +87,10 @@ spring:
|
|
|
87
87
|
additional-exclude: static/**<% if (devDatabaseTypeH2Any) { %>,.h2.server.properties<% } %>
|
|
88
88
|
livereload:
|
|
89
89
|
enabled: false # we use Webpack dev server + BrowserSync for livereload
|
|
90
|
-
<%_ if (devDatabaseTypeH2Any) { _%>
|
|
90
|
+
<%_ if (devDatabaseTypeH2Any && 'dockerServices' in locals && dockerServices && dockerServices.length > 1) { _%>
|
|
91
91
|
docker:
|
|
92
92
|
compose:
|
|
93
|
+
enabled: <%- authenticationTypeOauth2 || messageBrokerAny || serviceDiscoveryAny || cacheProviderRedis %>
|
|
93
94
|
profiles:
|
|
94
95
|
active: dev
|
|
95
96
|
<%_ } _%>
|
|
@@ -154,8 +155,12 @@ spring:
|
|
|
154
155
|
<%_ if (devDatabaseTypeH2Any) { _%>
|
|
155
156
|
h2:
|
|
156
157
|
console:
|
|
157
|
-
#
|
|
158
|
-
|
|
158
|
+
# JHipster uses a custom h2-console initializer
|
|
159
|
+
<%_ if (graalvmSupport) { _%>
|
|
160
|
+
enabled: '@spring.h2.console.enabled@'
|
|
161
|
+
<%_ } else { _%>
|
|
162
|
+
enabled: true
|
|
163
|
+
<%_ } _%>
|
|
159
164
|
<%_ } _%>
|
|
160
165
|
<%_ if (databaseTypeMongodb) { _%>
|
|
161
166
|
data:
|
|
@@ -269,14 +269,16 @@ spring:
|
|
|
269
269
|
group: <%= dasherizedBaseName %>
|
|
270
270
|
<%_ } _%>
|
|
271
271
|
<%_ } _%>
|
|
272
|
+
<%_ if ('dockerServices' in locals && dockerServices && dockerServices.length > 1) { _%>
|
|
272
273
|
docker:
|
|
273
274
|
compose:
|
|
274
275
|
enabled: true
|
|
275
276
|
lifecycle-management: start-only
|
|
276
|
-
<%_ if (applicationTypeMicroservice) { _%>
|
|
277
|
+
<%_ if (applicationTypeMicroservice) { _%>
|
|
277
278
|
file: <%- dockerServicesDir %><%- databaseTypeSql ? prodDatabaseType : databaseType %>.yml
|
|
278
|
-
<%_ } else { _%>
|
|
279
|
+
<%_ } else { _%>
|
|
279
280
|
file: <%- dockerServicesDir %>services.yml
|
|
281
|
+
<%_ } _%>
|
|
280
282
|
<%_ } _%>
|
|
281
283
|
profiles:
|
|
282
284
|
# The commented value for `active` can be replaced with valid Spring profiles to load.
|
|
@@ -329,24 +329,25 @@ if (field.fieldTypeString || field.blobContentTypeText) {
|
|
|
329
329
|
// Generate Strings, using pattern
|
|
330
330
|
try {
|
|
331
331
|
const patternRegExp = new RegExp(field.fieldValidateRulesPattern);
|
|
332
|
-
const randExp = field.createRandexp();
|
|
333
332
|
// set infinite repetitions max range
|
|
334
333
|
if (!patternRegExp.test(sampleTextString.replace(/\\"/g, '"').replace(/\\\\/g, '\\'))) {
|
|
335
|
-
|
|
334
|
+
const value = field.generateFakeDataFromPattern();
|
|
335
|
+
sampleTextString = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
336
336
|
}
|
|
337
337
|
if (!patternRegExp.test(updatedTextString.replace(/\\"/g, '"').replace(/\\\\/g, '\\'))) {
|
|
338
|
-
|
|
338
|
+
const value = field.generateFakeDataFromPattern();
|
|
339
|
+
updatedTextString = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
|
|
339
340
|
}
|
|
340
341
|
} catch (error) {
|
|
341
|
-
|
|
342
|
+
this.log.warn('Error generating test value for entity "' + entityClass +
|
|
342
343
|
'" field "' + field.fieldName + '" with pattern "' + field.fieldValidateRulesPattern +
|
|
343
|
-
'", generating default values for this field. Detailed error message: "' + error.message + '".')
|
|
344
|
+
'", generating default values for this field. Detailed error message: "' + error.message + '".');
|
|
344
345
|
}
|
|
345
346
|
if (sampleTextString === updatedTextString) {
|
|
346
347
|
updatedTextString = updatedTextString + "B";
|
|
347
|
-
|
|
348
|
+
this.log.warn('Randomly generated first and second test values for entity "' + entityClass +
|
|
348
349
|
'" field "' + field.fieldName + '" with pattern "' + field.fieldValidateRulesPattern +
|
|
349
|
-
'" in file "' + entityClass + 'ResourceIT" where equal, added symbol "B" to second value.')
|
|
350
|
+
'" in file "' + entityClass + 'ResourceIT" where equal, added symbol "B" to second value.');
|
|
350
351
|
}
|
|
351
352
|
} _%>
|
|
352
353
|
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
import BaseApplicationGenerator from '../base-application/index.js';
|
|
20
20
|
export default class SpringCacheGenerator extends BaseApplicationGenerator {
|
|
21
21
|
beforeQueue(): Promise<void>;
|
|
22
|
-
get
|
|
22
|
+
get configuring(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/base/tasks.js").TaskParamWithControl, "configure">;
|
|
23
|
+
get preparing(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PreparingTaskParam<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "cancel" | "addNeedles" | "loadDependabot">;
|
|
23
24
|
get writing(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").WritingTaskParam<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "cleanupTask" | "writeTask">;
|
|
24
25
|
get postWriting(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PostWritingTaskParam<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "addDependencies" | "addTestSpringFactory" | "applyGradleScript">;
|
|
25
26
|
get postWritingEntities(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PostWritingEntitiesTaskParam<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "customizeFiles">;
|
|
@@ -30,8 +30,30 @@ export default class SpringCacheGenerator extends BaseApplicationGenerator {
|
|
|
30
30
|
await this.dependsOnBootstrapApplication();
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
+
get configuring() {
|
|
34
|
+
return this.asConfiguringTaskGroup({
|
|
35
|
+
configure() {
|
|
36
|
+
const { databaseType, reactive, cacheProvider } = this.jhipsterConfigWithDefaults;
|
|
37
|
+
if (this.jhipsterConfig.enableHibernateCache && (reactive || databaseType !== 'sql')) {
|
|
38
|
+
this.log.verboseInfo(`Disabling hibernate cache for ${reactive ? 'reactive application' : 'non-SQL databases'}`);
|
|
39
|
+
this.jhipsterConfig.enableHibernateCache = undefined;
|
|
40
|
+
}
|
|
41
|
+
if (reactive && cacheProvider !== 'no') {
|
|
42
|
+
this.log.error(`Cache provider is not supported in reactive application`);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
get [BaseApplicationGenerator.CONFIGURING]() {
|
|
48
|
+
return this.delegateTasksToBlueprint(() => this.configuring);
|
|
49
|
+
}
|
|
33
50
|
get preparing() {
|
|
34
51
|
return this.asPreparingTaskGroup({
|
|
52
|
+
cancel() {
|
|
53
|
+
if (this.jhipsterConfigWithDefaults.cacheProvider === 'no') {
|
|
54
|
+
this.cancelCancellableTasks();
|
|
55
|
+
}
|
|
56
|
+
},
|
|
35
57
|
loadDependabot({ application }) {
|
|
36
58
|
this.loadJavaDependenciesFromGradleCatalog(application.javaDependencies, true);
|
|
37
59
|
},
|
|
@@ -12,4 +12,4 @@ xmemcached-provider = { module = 'com.google.code.simple-spring-memcached:xmemca
|
|
|
12
12
|
|
|
13
13
|
xmemcached = { module = 'com.googlecode.xmemcached:xmemcached', version = '2.4.8' }
|
|
14
14
|
|
|
15
|
-
redisson = { module = 'org.redisson:redisson', version = '3.
|
|
15
|
+
redisson = { module = 'org.redisson:redisson', version = '3.37.0' }
|
|
@@ -62,8 +62,8 @@ export default class GatewayGenerator extends BaseApplicationGenerator {
|
|
|
62
62
|
}
|
|
63
63
|
get writing() {
|
|
64
64
|
return this.asWritingTaskGroup({
|
|
65
|
-
cleanup({ control, application }) {
|
|
66
|
-
control.cleanupFiles({
|
|
65
|
+
async cleanup({ control, application }) {
|
|
66
|
+
await control.cleanupFiles({
|
|
67
67
|
'8.6.1': [
|
|
68
68
|
[
|
|
69
69
|
application.reactive && application.serviceDiscoveryAny,
|
|
@@ -55,11 +55,11 @@ export default class CouchbaseGenerator extends BaseApplicationGenerator {
|
|
|
55
55
|
});
|
|
56
56
|
},
|
|
57
57
|
addDependencies({ application, source }) {
|
|
58
|
-
const { reactive } = application;
|
|
58
|
+
const { reactive, javaDependencies } = application;
|
|
59
59
|
source.addJavaDependencies?.([
|
|
60
60
|
{ groupId: 'commons-codec', artifactId: 'commons-codec' },
|
|
61
61
|
{ groupId: 'com.couchbase.client', artifactId: 'java-client' },
|
|
62
|
-
{ groupId: 'com.github.differentway', artifactId: 'couchmove' },
|
|
62
|
+
{ groupId: 'com.github.differentway', artifactId: 'couchmove', version: javaDependencies.couchmove },
|
|
63
63
|
{ groupId: 'org.springframework.boot', artifactId: `spring-boot-starter-data-couchbase${reactive ? '-reactive' : ''}` },
|
|
64
64
|
{ scope: 'test', groupId: 'org.testcontainers', artifactId: 'junit-jupiter' },
|
|
65
65
|
{ scope: 'test', groupId: 'org.testcontainers', artifactId: 'testcontainers' },
|
|
@@ -28,5 +28,5 @@ export default class MongoDBGenerator extends BaseApplicationGenerator {
|
|
|
28
28
|
cleanupMongodbEntityFilesTask: typeof cleanupMongodbEntityFilesTask;
|
|
29
29
|
writeMongodbEntityFilesTask: (this: import("../index.js").GeneratorBaseCore, params: import("../../lib/types/application/tasks.js").TaskParamWithEntities<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>) => void;
|
|
30
30
|
};
|
|
31
|
-
get postWriting(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PostWritingTaskParam<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "addDependencies" | "
|
|
31
|
+
get postWriting(): import("../../lib/types/base/tasks.js").GenericTaskGroup<any, import("../../lib/types/application/tasks.js").PostWritingTaskParam<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>, import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>>, "addDependencies" | "blockhound" | "addTestSpringFactory">;
|
|
32
32
|
}
|
|
@@ -32,6 +32,7 @@ export declare const sqlFiles: {
|
|
|
32
32
|
renameTo?: string | ((this: import("../index.js").GeneratorBaseCore, data: import("../../lib/types/application/application.js").ApplicationType<import("../base-application/index.js").Entity<import("../base-application/index.js").Field, never>>, filePath: string) => string) | undefined;
|
|
33
33
|
condition: (generator: any) => boolean;
|
|
34
34
|
})[];
|
|
35
|
+
graalvm: import("../base/api.js").WriteFileBlock[];
|
|
35
36
|
};
|
|
36
37
|
export declare const h2Files: {
|
|
37
38
|
serverResource: {
|