generator-jhipster 7.7.0 → 7.9.0
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 +2 -3
- package/cli/environment-builder.js +3 -1
- package/cli/import-jdl.js +61 -35
- package/cli/jdl.js +5 -4
- package/cli/jhipster-command.js +1 -1
- package/cli/jhipster.js +0 -0
- package/cli/program.js +5 -3
- package/generators/app/index.js +21 -0
- package/generators/app/prompts.js +60 -12
- package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +3 -3
- package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +3 -3
- package/generators/bootstrap/index.js +1 -0
- package/generators/bootstrap-application/generator.mjs +1 -0
- package/generators/ci-cd/index.js +1 -1
- package/generators/ci-cd/templates/.gitlab-ci.yml.ejs +2 -3
- package/generators/ci-cd/templates/github-actions.yml.ejs +4 -4
- package/generators/client/files-angular.js +72 -89
- package/generators/client/files-common.js +1 -2
- package/generators/client/files-react.js +83 -71
- package/generators/client/files-vue.js +8 -54
- package/generators/client/index.js +19 -12
- package/generators/client/needle-api/needle-client-angular.js +1 -4
- package/generators/client/needle-api/needle-client-react.js +11 -8
- package/generators/client/prompts.js +1 -0
- package/generators/client/templates/angular/.eslintrc.json.ejs +10 -1
- package/generators/client/templates/angular/angular.json.ejs +1 -10
- package/generators/client/templates/angular/jest.conf.js.ejs +4 -2
- package/generators/client/templates/angular/package.json +33 -34
- package/generators/client/templates/angular/package.json.ejs +24 -23
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.html.ejs +15 -15
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.ts.ejs +17 -11
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +16 -16
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +14 -9
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +9 -9
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.html.ejs +27 -27
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +28 -13
- package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.html.ejs +7 -7
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.html.ejs +19 -19
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.ts.ejs +35 -37
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +7 -7
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.html.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.module.ts.ejs +0 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +3 -3
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +10 -10
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +10 -10
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +9 -9
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +14 -14
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +16 -16
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +3 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +133 -138
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +22 -24
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +40 -49
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/user-management.model.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/user-management.module.ts.ejs +0 -1
- package/generators/client/templates/angular/src/main/webapp/app/config/navigation.constants.ts.ejs +23 -0
- package/generators/client/templates/angular/src/main/webapp/app/config/pagination.constants.ts.ejs +2 -3
- package/generators/client/templates/angular/src/main/webapp/app/core/request/request-util.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.model.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.ts.ejs +7 -3
- package/generators/client/templates/angular/src/main/webapp/app/home/home.component.html.ejs +14 -14
- package/generators/client/templates/angular/src/main/webapp/app/layouts/error/error.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/layouts/footer/footer.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +21 -21
- package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.html.ejs +9 -9
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +16 -27
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.component.html.ejs +10 -0
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.component.ts.ejs +23 -0
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +40 -0
- package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.model.ts.ejs +95 -0
- package/generators/client/templates/angular/src/main/webapp/app/shared/pagination/item-count.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/shared.module.ts.ejs +3 -0
- package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort.service.ts.ejs +31 -0
- package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +3 -8
- package/generators/client/templates/angular/tsconfig.json.ejs +6 -0
- package/generators/client/templates/angular/tsconfig.spec.json.ejs +1 -1
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +17 -2
- package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +1 -1
- package/generators/client/templates/common/package.json +8 -7
- package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +2 -0
- package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +2 -3
- package/generators/client/templates/react/.eslintrc.json.ejs +10 -1
- package/generators/client/templates/react/jest.conf.js.ejs +4 -2
- package/generators/client/templates/react/package.json +58 -59
- package/generators/client/templates/react/package.json.ejs +4 -3
- package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/app.tsx.ejs +3 -3
- package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +53 -6
- package/generators/client/templates/react/src/main/webapp/app/config/translation-middleware.ts.ejs +58 -0
- package/generators/client/templates/react/src/main/webapp/app/entities/menu.tsx.ejs +45 -0
- package/generators/client/templates/react/src/main/webapp/app/entities/reducers.ts.ejs +25 -0
- package/generators/client/templates/react/src/main/webapp/app/entities/routes.tsx.ejs +49 -0
- package/generators/client/templates/react/src/main/webapp/app/index.tsx.ejs +7 -7
- package/generators/client/templates/react/src/main/webapp/app/main.tsx.ejs +19 -0
- package/generators/client/templates/react/src/main/webapp/app/modules/account/activate/activate.tsx.ejs +8 -4
- package/generators/client/templates/react/src/main/webapp/app/modules/account/index.tsx.ejs +9 -6
- package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +1 -0
- package/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/finish/password-reset-finish.tsx.ejs +8 -5
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/administration.reducer.ts.ejs +6 -7
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health-modal.tsx.ejs +3 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health.tsx.ejs +4 -4
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/index.tsx.ejs +14 -11
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/logs/logs.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +8 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/index.tsx.ejs +13 -13
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-delete-dialog.tsx.ejs +7 -4
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-detail.tsx.ejs +5 -3
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-update.tsx.ejs +10 -6
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +20 -27
- package/generators/client/templates/react/src/main/webapp/app/modules/login/login-modal.tsx.ejs +5 -1
- package/generators/client/templates/react/src/main/webapp/app/modules/login/login-redirect.tsx.ejs +6 -3
- package/generators/client/templates/react/src/main/webapp/app/modules/login/login.tsx.ejs +6 -5
- package/generators/client/templates/react/src/main/webapp/app/routes.tsx.ejs +70 -25
- package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +30 -27
- package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.tsx.ejs +35 -34
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-routes.spec.tsx.ejs +55 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-routes.tsx.ejs +21 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.spec.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-loading.tsx.ejs +13 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/error/page-not-found.tsx.ejs +9 -13
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.spec.tsx.ejs +3 -5
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +5 -8
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +35 -7
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-item.tsx.ejs +12 -11
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/index.ts.ejs +9 -2
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +9 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +21 -5
- package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +15 -0
- package/generators/client/templates/react/src/main/webapp/microfrontends/entities-menu.tsx.ejs +3 -0
- package/generators/client/templates/react/src/main/webapp/microfrontends/entities-routes.tsx.ejs +3 -0
- package/generators/client/templates/react/tsconfig.json.ejs +5 -7
- package/generators/client/templates/react/tsconfig.test.json.ejs +10 -1
- package/generators/client/templates/react/webpack/webpack.common.js.ejs +12 -15
- package/generators/client/templates/react/webpack/webpack.dev.js.ejs +7 -8
- package/generators/client/templates/react/webpack/webpack.microfrontend.js.jhi.react.ejs +99 -0
- package/generators/client/templates/react/webpack/webpack.prod.js.ejs +31 -21
- package/generators/client/templates/vue/.eslintrc.js.ejs +10 -1
- package/generators/client/templates/vue/package.json +42 -42
- package/generators/client/templates/vue/package.json.ejs +4 -4
- package/generators/client/templates/vue/src/main/webapp/app/account/login-form/login-form.component.ts.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.vue.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +6 -3
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/shared/date/filters.ts.ejs +0 -6
- package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +7 -2
- package/generators/client/templates/vue/src/test/javascript/spec/app/account/register/register.component.spec.ts.ejs +1 -1
- package/generators/client/templates/vue/tsconfig.json.ejs +1 -4
- package/generators/client/templates/vue/tsconfig.spec.json.ejs +2 -2
- package/generators/client/templates/vue/webpack/webpack.common.js.ejs +6 -2
- package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +4 -0
- package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +8 -1
- package/generators/client/transform-angular.cjs +117 -0
- package/generators/client/transform-react.cjs +126 -0
- package/generators/client/transform-vue.cjs +42 -0
- package/generators/common/files.js +2 -9
- package/generators/common/templates/.husky/pre-commit.ejs +0 -0
- package/generators/common/templates/README.md.jhi.ejs +21 -5
- package/generators/common/templates/package.json +3 -3
- package/generators/cypress/files.js +34 -22
- package/generators/cypress/index.js +42 -19
- package/generators/cypress/templates/cypress-audits.config.ts.ejs +28 -0
- package/generators/cypress/templates/cypress.config.ts.ejs +57 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/login-page.spec.ts.ejs → e2e/account/login-page.cy.ts.ejs} +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/password-page.spec.ts.ejs → e2e/account/password-page.cy.ts.ejs} +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/register-page.spec.ts.ejs → e2e/account/register-page.cy.ts.ejs} +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/reset-password-page.spec.ts.ejs → e2e/account/reset-password-page.cy.ts.ejs} +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/settings-page.spec.ts.ejs → e2e/account/settings-page.cy.ts.ejs} +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/{integration/administration/administration.spec.ts.ejs → e2e/administration/administration.cy.ts.ejs} +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/{integration → e2e}/lighthouse.audits.ts.ejs +0 -0
- package/generators/cypress/templates/src/test/javascript/cypress/plugins/global.d.ts.ejs +25 -0
- package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +13 -14
- package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +4 -4
- package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +8 -8
- package/generators/cypress/templates/src/test/javascript/cypress/tsconfig.json.ejs +8 -5
- package/generators/database-changelog-liquibase/files.js +1 -1
- package/generators/database-changelog-liquibase/index.js +3 -0
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +1 -1
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity_constraints.xml.ejs +1 -1
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +1 -1
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +2 -2
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_migrate.xml.ejs +1 -1
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/fake-data/table_entity.csv.ejs +2 -2
- package/generators/docker-base.js +6 -3
- package/generators/docker-compose/files.js +5 -2
- package/generators/docker-compose/index.js +18 -25
- package/generators/docker-compose/templates/README-DOCKER-COMPOSE.md.ejs +1 -1
- package/generators/docker-compose/templates/docker-compose.yml.ejs +10 -8
- package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +62 -4
- package/generators/docker-prompts.js +1 -2
- package/generators/docker-utils.js +0 -1
- package/generators/entity/index.js +39 -34
- package/generators/entity/prompts.js +1 -52
- package/generators/entity-client/files-angular.cjs +169 -0
- package/generators/entity-client/files-cypress.cjs +52 -0
- package/generators/entity-client/files-react.cjs +113 -0
- package/generators/entity-client/files-vue.cjs +140 -0
- package/generators/entity-client/files.js +10 -381
- package/generators/entity-client/index.js +126 -17
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.html.ejs +4 -5
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.ts.ejs +2 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +12 -11
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +0 -5
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +18 -25
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.test-samples.ts.ejs +45 -0
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +45 -37
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +47 -28
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +292 -94
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +5 -106
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +2 -82
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +5 -5
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.ts.ejs +5 -5
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +2 -3
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +89 -175
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +69 -44
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-form.service.spec.ts.ejs +111 -0
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-form.service.ts.ejs +263 -0
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +99 -120
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +47 -71
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +79 -195
- package/generators/entity-client/templates/{common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs → cypress/src/test/javascript/cypress/e2e/entity/entity.cy.ts.ejs} +27 -17
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +12 -7
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-detail.tsx.ejs +10 -7
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +29 -23
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +2 -2
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +32 -30
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/index.tsx.ejs +13 -13
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/react_validators.ejs +25 -32
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +2 -2
- package/generators/entity-i18n/templates/i18n/entity_fr.json.ejs +1 -1
- package/generators/entity-server/cleanup.js +41 -0
- package/generators/entity-server/files.js +148 -63
- package/generators/entity-server/index.js +30 -25
- package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +1 -1
- package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +31 -8
- package/generators/entity-server/templates/partials/save_template.ejs +1 -1
- package/generators/entity-server/templates/partials/update_template.ejs +77 -0
- package/generators/entity-server/templates/reactive/partials/save_template.ejs +1 -1
- package/generators/entity-server/templates/reactive/partials/update_template.ejs +41 -0
- package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +13 -7
- package/generators/entity-server/templates/src/main/java/package/common/get_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/common/inject_template.ejs +13 -4
- package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +2 -1
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.elastic_search.ejs +17 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_lifecycle_events.ejs +31 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_cassandra.ejs +3 -1
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_persistable.ejs +54 -0
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_reactive.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/domain/EntityCallback.java.ejs +43 -0
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +12 -7
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +23 -27
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationships.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +17 -9
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +18 -26
- package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +50 -26
- package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +3 -3
- package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +10 -2
- package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +22 -6
- package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +61 -90
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +8 -9
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +165 -144
- package/generators/gae/index.js +1 -1
- package/generators/generate-blueprint/constants.mjs +22 -2
- package/generators/generate-blueprint/esm.mjs +0 -0
- package/generators/generate-blueprint/generator.mjs +25 -6
- package/generators/generate-blueprint/templates/.github/workflows/generator.yml.ejs +5 -3
- package/generators/generate-blueprint/templates/cli/cli.mjs.ejs +0 -0
- package/generators/generate-blueprint/templates/cli/commands.cjs.ejs +2 -1
- package/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +6 -5
- package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +10 -1
- package/generators/generate-blueprint/templates/generators/generator/templates/template-file.ejs +0 -0
- package/generators/generator-base-blueprint.js +19 -20
- package/generators/generator-base-private.js +117 -65
- package/generators/generator-base.js +270 -91
- package/generators/generator-constants.js +119 -67
- package/generators/generator-defaults.js +1 -0
- package/generators/generator-transforms.js +0 -1
- package/generators/gradle/constants.cjs +1 -1
- package/generators/heroku/index.js +5 -4
- package/generators/heroku/templates/application-heroku.yml.ejs +1 -2
- package/generators/heroku/templates/heroku.gradle.ejs +28 -1
- package/generators/heroku/templates/pom-profile.xml.ejs +29 -0
- package/generators/init/templates/.husky/pre-commit +0 -0
- package/generators/java/index.cjs +2 -2
- package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -2
- package/generators/kubernetes/templates/db/mongodb.yml.ejs +1 -2
- package/generators/kubernetes/templates/ingress.yml.ejs +11 -4
- package/generators/kubernetes/templates/kubectl-apply.sh.ejs +0 -0
- package/generators/kubernetes/templates/monitoring/jhipster-grafana.yml.ejs +6 -2
- package/generators/kubernetes/templates/registry/consul.yml.ejs +1 -2
- package/generators/kubernetes/templates/registry/jhipster-registry.yml.ejs +1 -2
- package/generators/kubernetes-knative/templates/kubectl-apply.sh.ejs +0 -0
- package/generators/languages/templates/src/main/webapp/i18n/al/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ar-ly/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/bg/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/bn/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/by/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ca/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/cs/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/da/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/el/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/en/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/en/health.json.ejs +3 -0
- package/generators/languages/templates/src/main/webapp/i18n/es/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/et/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/fa/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/fi/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/fr/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/gl/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/hi/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/hr/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/hu/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/hy/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/in/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/it/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ja/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ko/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/mr/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/my/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/nl/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/pa/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/pl/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/pt-br/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/pt-pt/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ro/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ru/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/si/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/sk/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/sr/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/sv/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ta/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/te/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/th/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/tr/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/ua/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/vi/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/zh-cn/global.json.ejs +7 -1
- package/generators/languages/templates/src/main/webapp/i18n/zh-tw/global.json.ejs +7 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_al.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ar_LY.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_bg.properties.ejs +1 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_bn.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_by.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ca.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_cs.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_da.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_de.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_el.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_es.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_et.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_fa.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_fi.properties.ejs +1 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_gl.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_hi.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_hr.properties.ejs +1 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_hu.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_hy.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_in.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_it.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ja.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ko.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_mr.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_my.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_nl.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_pa.properties.ejs +1 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_pl.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_pt_BR.properties.ejs +1 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_pt_PT.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ro.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ru.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_si.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_sk.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_sr.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_sv.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ta.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_te.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_th.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_tr.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_ua.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_uz_Cyrl_UZ.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_uz_Latn_UZ.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_vi.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_zh_CN.properties.ejs +4 -1
- package/generators/languages/templates/src/test/resources/i18n/messages_zh_TW.properties.ejs +4 -1
- package/generators/maven/files.cjs +0 -1
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
- package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
- package/generators/maven/templates/mvnw +13 -7
- package/generators/maven/templates/mvnw.cmd +19 -13
- package/generators/maven/templates/pom.xml.jhi.ejs +2 -2
- package/generators/openapi-client/files.js +2 -8
- package/generators/openapi-client/index.js +2 -0
- package/generators/openshift/templates/registry/consul.yml.ejs +1 -2
- package/generators/openshift/templates/registry/jhipster-registry.yml.ejs +1 -2
- package/generators/project-name/index.cjs +8 -5
- package/generators/server/cleanup-angular.js +37 -0
- package/generators/server/cleanup-cache-provider.js +46 -0
- package/generators/server/cleanup-cassandra.js +49 -0
- package/generators/server/cleanup-cucumber.js +40 -0
- package/generators/server/cleanup-elasticsearch.js +48 -0
- package/generators/server/cleanup-gradle.js +40 -0
- package/generators/server/cleanup-kafka.js +41 -0
- package/generators/server/cleanup-maven.js +37 -0
- package/generators/server/cleanup-mongodb.js +40 -0
- package/generators/server/cleanup-oauth2.js +43 -0
- package/generators/server/cleanup-reactive.js +38 -0
- package/generators/server/cleanup-sql.js +48 -0
- package/generators/server/cleanup.js +89 -39
- package/generators/server/esm.mjs +1 -0
- package/generators/server/files-couchbase.js +11 -10
- package/generators/server/files-sql.js +197 -4
- package/generators/server/files.js +239 -248
- package/generators/server/index.js +38 -86
- package/generators/server/needle-api/needle-server-gradle.js +38 -0
- package/generators/server/needles.cjs +79 -0
- package/generators/server/templates/.mvn/jvm.config +1 -0
- package/generators/server/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
- package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
- package/generators/server/templates/.npmrc.ejs +1 -0
- package/generators/server/templates/build.gradle.ejs +126 -229
- package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +24 -1
- package/generators/server/templates/couchbase/src/test/java/package/config/CouchbaseTestContainer.java.ejs +67 -0
- package/generators/server/templates/couchbase/src/test/java/package/config/EmbeddedCouchbase.java.ejs +30 -0
- package/generators/server/templates/devcontainer/Dockerfile.ejs +25 -0
- package/generators/server/templates/devcontainer/devcontainer.json.ejs +64 -0
- package/generators/server/templates/gradle/docker.gradle.ejs +6 -0
- package/generators/server/templates/gradle/profile_dev.gradle.ejs +95 -3
- package/generators/server/templates/gradle/profile_prod.gradle.ejs +80 -4
- package/generators/server/templates/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/generators/server/templates/gradle.properties.ejs +17 -13
- package/generators/server/templates/gradlew +0 -0
- package/generators/server/templates/mvnw +13 -7
- package/generators/server/templates/mvnw.cmd +19 -13
- package/generators/server/templates/npmw +0 -0
- package/generators/server/templates/pom.xml.ejs +287 -236
- package/generators/server/templates/settings.gradle.ejs +8 -5
- package/generators/server/templates/sql/common/src/main/docker/config/mariadb/my.cnf +49 -0
- package/generators/server/templates/sql/common/src/main/docker/config/mysql/my.cnf +82 -0
- package/generators/server/templates/{src → sql/common/src}/main/docker/mariadb.yml.ejs +2 -0
- package/generators/server/templates/{src → sql/common/src}/main/docker/mssql.yml.ejs +0 -0
- package/generators/server/templates/{src → sql/common/src}/main/docker/mysql.yml.ejs +2 -1
- package/generators/server/templates/{src → sql/common/src}/main/docker/postgresql.yml.ejs +0 -0
- package/generators/server/templates/{src → sql/common/src}/main/java/package/config/LiquibaseConfiguration.java.ejs +0 -0
- package/generators/server/templates/{src → sql/common/src}/main/resources/h2.server.properties.ejs +0 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/EmbeddedSQL.java.ejs +30 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/MariadbTestContainer.java.ejs +60 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/MsSqlTestContainer.java.ejs +59 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/MysqlTestContainer.java.ejs +69 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/PostgreSqlTestContainer.java.ejs +59 -0
- package/generators/server/templates/sql/common/src/test/java/package/config/SqlTestContainer.java.ejs +28 -0
- package/generators/server/templates/{src → sql/common/src}/test/java/package/config/timezone/HibernateTimeZoneIT.java.ejs +0 -0
- package/generators/server/templates/{src → sql/common/src}/test/java/package/repository/timezone/DateTimeWrapper.java.ejs +0 -0
- package/generators/server/templates/{src → sql/common/src}/test/java/package/repository/timezone/DateTimeWrapperRepository.java.ejs +0 -0
- package/generators/server/templates/sql/common/src/test/resources/config/application-testdev.yml.ejs +93 -0
- package/generators/server/templates/{src/test/resources/config/application-testcontainers.yml.ejs → sql/common/src/test/resources/config/application-testprod.yml.ejs} +17 -33
- package/generators/server/templates/sql/common/src/test/resources/testcontainers/mariadb/my.cnf +49 -0
- package/generators/server/templates/sql/common/src/test/resources/testcontainers/mysql/my.cnf +83 -0
- package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/EntityManager.java.ejs +48 -38
- package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/rowmapper/ColumnConverter.java.ejs +0 -0
- package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/rowmapper/UserRowMapper.java.ejs +0 -0
- package/generators/server/templates/src/main/docker/app.yml.ejs +18 -20
- package/generators/server/templates/src/main/docker/cassandra-migration.yml.ejs +1 -0
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +64 -7
- package/generators/server/templates/src/main/docker/jhipster-control-center.yml.ejs +1 -1
- package/generators/server/templates/src/main/docker/jhipster-registry.yml.ejs +1 -1
- package/generators/server/templates/src/main/docker/jib/entrypoint.sh.ejs +36 -1
- package/generators/server/templates/src/main/docker/keycloak.yml.ejs +8 -6
- package/generators/server/templates/src/main/java/package/config/ApplicationProperties.java.ejs +3 -0
- package/generators/server/templates/src/main/java/package/config/AsyncConfiguration.java.ejs +2 -0
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +1 -1
- package/generators/{client/templates/react/src/main/webapp/app/entities/index.tsx.ejs → server/templates/src/main/java/package/config/KafkaSseConsumer.java.ejs} +8 -14
- package/generators/server/templates/src/main/java/package/config/KafkaSseProducer.java.ejs +30 -0
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +21 -33
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +108 -15
- package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +6 -0
- package/generators/server/templates/src/main/java/package/security/DomainUserDetailsService.java.ejs +6 -3
- package/generators/server/templates/src/main/java/package/security/jwt/JWTFilter.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +10 -3
- package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +12 -2
- package/generators/server/templates/src/main/java/package/web/rest/KafkaResource.java.ejs +60 -108
- package/generators/server/templates/src/main/java/package/web/rest/KafkaResource_reactive.java.ejs +74 -0
- package/generators/server/templates/src/main/java/package/web/rest/LogoutResource.java.ejs +1 -5
- package/generators/server/templates/src/main/java/package/web/rest/LogoutResource_reactive.java.ejs +1 -5
- package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +3 -4
- package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +4 -3
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +27 -23
- package/generators/server/templates/src/main/resources/config/liquibase/changelog/initial_schema.xml.ejs +1 -1
- package/generators/server/templates/src/main/resources/config/liquibase/master.xml.ejs +54 -24
- package/generators/server/templates/src/main/resources/swagger/api.yml.ejs +3 -3
- package/generators/server/templates/src/test/java/package/CassandraKeyspaceIT.java.ejs +3 -4
- package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +40 -21
- package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +0 -3
- package/generators/server/templates/src/test/java/package/{repository/search/UserSearchRepositoryMockConfiguration.java.ejs → config/AsyncSyncConfiguration.java.ejs} +12 -10
- package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs +141 -0
- package/generators/{entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs → server/templates/src/test/java/package/config/ElasticsearchReactiveTestConfiguration.java.ejs} +14 -11
- package/generators/server/templates/src/test/java/package/config/ElasticsearchTestContainer.java.ejs +68 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedCassandra.java.ejs +30 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedElasticsearch.java.ejs +30 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedKafka.java.ejs +30 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedMongo.java.ejs +30 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedNeo4j.java.ejs +29 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedRedis.java.ejs +30 -0
- package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +11 -2
- package/generators/server/templates/src/test/java/package/config/KafkaTestContainer.java.ejs +56 -0
- package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs +67 -0
- package/generators/server/templates/src/test/java/package/config/Neo4jTestContainer.java.ejs +66 -0
- package/generators/server/templates/src/test/java/package/config/RedisTestContainer.java.ejs +57 -0
- package/generators/server/templates/src/test/java/package/config/{NoOpMailConfiguration.java.ejs → SpringBootTestClassOrderer.java.ejs} +16 -16
- package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +250 -0
- package/generators/server/templates/src/test/java/package/config/WebConfigurerTest.java.ejs +0 -23
- package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +3 -10
- package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +6 -7
- package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +5 -5
- package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +9 -19
- package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +9 -15
- package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +20 -74
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_oauth2.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +1 -12
- package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT.java.ejs +52 -123
- package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT_reactive.java.ejs +99 -0
- package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs +7 -10
- package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +13 -10
- package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +78 -56
- package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -4
- package/generators/server/templates/src/test/resources/META-INF/spring.factories.ejs +1 -1
- package/generators/server/templates/src/test/resources/config/application.yml.ejs +33 -81
- package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +1 -0
- package/generators/server/templates/src/test/resources/templates/mail/activationEmail.html.ejs +19 -0
- package/generators/server/templates/src/test/resources/templates/mail/creationEmail.html.ejs +19 -0
- package/generators/server/templates/src/test/resources/templates/mail/passwordResetEmail.html.ejs +21 -0
- package/generators/server/templates/src/test/resources/testcontainers.properties.ejs +1 -0
- package/generators/spring-controller/index.js +16 -1
- package/generators/sql-constants.js +85 -0
- package/generators/statistics.js +6 -5
- package/generators/upgrade/index.js +1 -1
- package/generators/utils.js +32 -30
- package/generators/workspaces/index.js +32 -28
- package/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +2 -3
- package/jdl/converters/json-to-jdl-converter.js +23 -6
- package/jdl/exporters/applications/jhipster-application-formatter.js +7 -0
- package/jdl/jhipster/application-options.js +8 -0
- package/jdl/jhipster/default-application-options.js +2 -2
- package/jdl/parsing/lexer/application-tokens.js +6 -0
- package/jdl/parsing/validator.js +7 -0
- package/jdl/validators/application-validator.js +3 -1
- package/jdl/validators/jdl-with-application-validator.js +1 -0
- package/jdl/validators/jdl-without-application-validator.js +3 -2
- package/lib/support/base.cjs +43 -0
- package/lib/support/needles.cjs +221 -0
- package/lib/support/shared-data.cjs +2 -2
- package/package.json +34 -32
- package/utils/blueprint.js +1 -1
- package/utils/entity.js +11 -1
- package/utils/field.js +26 -6
- package/utils/liquibase.js +5 -8
- package/utils/relationship.js +13 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.spec.tsx.ejs +0 -33
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.tsx.ejs +0 -17
- package/generators/cypress/templates/cypress-audits.json.ejs +0 -32
- package/generators/cypress/templates/cypress.json.ejs +0 -46
- package/generators/docker-compose/templates/realm-config/jhipster-users-0.json.ejs +0 -61
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +0 -81
- package/generators/entity-server/templates/src/main/java/package/repository/search/SortToSortBuilderListConverter.java.ejs +0 -25
- package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
- package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
- package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +0 -56
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-users-0.json.ejs +0 -61
- package/generators/server/templates/src/main/java/package/config/KafkaProperties.java.ejs +0 -68
- package/generators/server/templates/src/test/java/package/AbstractCassandraTest.java.ejs +0 -125
- package/generators/server/templates/src/test/java/package/AbstractNeo4jIT.java.ejs +0 -44
- package/generators/server/templates/src/test/java/package/MongoDbTestContainerExtension.java.ejs +0 -37
- package/generators/server/templates/src/test/java/package/ReactiveSqlTestContainerExtension.java.ejs +0 -79
- package/generators/server/templates/src/test/java/package/RedisTestContainerExtension.java.ejs +0 -44
- package/generators/server/templates/src/test/java/package/TestContainersSpringContextCustomizerFactory.java.ejs +0 -24
- package/generators/server/templates/src/test/resources/testcontainers/mariadb/my.cnf +0 -2
|
@@ -19,29 +19,42 @@
|
|
|
19
19
|
package <%= packageName %>;
|
|
20
20
|
|
|
21
21
|
import <%= packageName %>.<%= mainClass %>;
|
|
22
|
+
import <%= packageName %>.config.AsyncSyncConfiguration;
|
|
22
23
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
23
24
|
import org.springframework.test.context.ActiveProfiles;
|
|
24
25
|
import tech.jhipster.config.JHipsterConstants;
|
|
25
26
|
<%_ } _%>
|
|
26
|
-
<%_ if (databaseTypeNeo4j) { _%>
|
|
27
|
-
import <%= packageName %>.AbstractNeo4jIT;
|
|
28
|
-
<%_ } _%>
|
|
29
27
|
<%_ if (databaseTypeMongodb) { _%>
|
|
30
|
-
|
|
28
|
+
import <%= packageName %>.config.EmbeddedMongo;
|
|
29
|
+
<%_ } _%>
|
|
30
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
31
|
+
import <%= packageName %>.config.EmbeddedCassandra;
|
|
32
|
+
<%_ } _%>
|
|
33
|
+
<%_ if (databaseTypeCouchbase || searchEngineCouchbase) { _%>
|
|
34
|
+
import <%= packageName %>.config.EmbeddedCouchbase;
|
|
35
|
+
<%_ } _%>
|
|
36
|
+
<%_ if (searchEngineElasticsearch) { _%>
|
|
37
|
+
import <%= packageName %>.config.EmbeddedElasticsearch;
|
|
38
|
+
<%_ } _%>
|
|
39
|
+
<%_ if (messageBrokerKafka) { _%>
|
|
40
|
+
import <%= packageName %>.config.EmbeddedKafka;
|
|
41
|
+
<%_ } _%>
|
|
42
|
+
<%_ if (databaseTypeNeo4j) { _%>
|
|
43
|
+
import <%= packageName %>.config.EmbeddedNeo4j;
|
|
31
44
|
<%_ } _%>
|
|
32
|
-
<%_ if (
|
|
33
|
-
import <%= packageName %>.
|
|
45
|
+
<%_ if (databaseTypeSql) { _%>
|
|
46
|
+
import <%= packageName %>.config.EmbeddedSQL;
|
|
34
47
|
<%_ } _%>
|
|
35
48
|
<%_ if (cacheProviderRedis) { _%>
|
|
36
|
-
import <%= packageName %>.
|
|
49
|
+
import <%= packageName %>.config.EmbeddedRedis;
|
|
37
50
|
<%_ } _%>
|
|
38
51
|
<%_ if (authenticationTypeOauth2) { _%>
|
|
39
52
|
import <%= packageName %>.config.TestSecurityConfiguration;
|
|
40
53
|
<%_ } _%>
|
|
41
|
-
<%_ if (cacheProviderRedis
|
|
54
|
+
<%_ if (cacheProviderRedis) { _%>
|
|
42
55
|
import org.junit.jupiter.api.extension.ExtendWith;
|
|
43
56
|
<%_ } _%>
|
|
44
|
-
|
|
57
|
+
import org.springframework.test.annotation.DirtiesContext;
|
|
45
58
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
46
59
|
|
|
47
60
|
import java.lang.annotation.ElementType;
|
|
@@ -54,27 +67,33 @@ import java.lang.annotation.Target;
|
|
|
54
67
|
*/
|
|
55
68
|
@Target(ElementType.TYPE)
|
|
56
69
|
@Retention(RetentionPolicy.RUNTIME)
|
|
57
|
-
<%
|
|
58
|
-
@SpringBootTest(classes = {<%= mainClass %>.class, TestSecurityConfiguration.class})
|
|
59
|
-
<%_ } else { _%>
|
|
60
|
-
@SpringBootTest(classes = <%= mainClass %>.class)
|
|
61
|
-
<%_ } _%>
|
|
70
|
+
@SpringBootTest(classes = {<%= mainClass %>.class, AsyncSyncConfiguration.class<% if (authenticationTypeOauth2) { %>, TestSecurityConfiguration.class<% } %>})
|
|
62
71
|
<%_ if (cacheProviderRedis) { _%>
|
|
63
|
-
@
|
|
72
|
+
@EmbeddedRedis
|
|
64
73
|
<%_ } _%>
|
|
65
|
-
<%_ if (databaseTypeCouchbase) { _%>
|
|
66
|
-
@
|
|
74
|
+
<%_ if (databaseTypeCouchbase || searchEngineCouchbase) { _%>
|
|
75
|
+
@EmbeddedCouchbase
|
|
67
76
|
@ActiveProfiles(JHipsterConstants.SPRING_PROFILE_TEST)
|
|
68
77
|
<%_ } _%>
|
|
69
78
|
<%_ if (databaseTypeMongodb) { _%>
|
|
70
|
-
@
|
|
79
|
+
@EmbeddedMongo
|
|
80
|
+
<%_ } _%>
|
|
81
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
82
|
+
@EmbeddedCassandra
|
|
83
|
+
<%_ } _%>
|
|
84
|
+
<%_ if (searchEngineElasticsearch) { _%>
|
|
85
|
+
@EmbeddedElasticsearch
|
|
86
|
+
<%_ } _%>
|
|
87
|
+
<%_ if (messageBrokerKafka) { _%>
|
|
88
|
+
@EmbeddedKafka
|
|
71
89
|
<%_ } _%>
|
|
72
90
|
<%_ if (databaseTypeNeo4j) { _%>
|
|
73
|
-
@
|
|
91
|
+
@EmbeddedNeo4j
|
|
74
92
|
<%_ } _%>
|
|
75
|
-
<%_ if (
|
|
76
|
-
@
|
|
93
|
+
<%_ if (databaseTypeSql) { _%>
|
|
94
|
+
@EmbeddedSQL
|
|
77
95
|
<%_ } _%>
|
|
96
|
+
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
|
|
78
97
|
public @interface IntegrationTest {
|
|
79
98
|
<%_ if (reactive) { _%>
|
|
80
99
|
// 5s is the spring default https://github.com/spring-projects/spring-framework/blob/29185a3d28fa5e9c1b4821ffe519ef6f56b51962/spring-test/src/main/java/org/springframework/test/web/reactive/server/DefaultWebTestClient.java#L106
|
|
@@ -66,9 +66,6 @@ class TechnicalStructureTest {
|
|
|
66
66
|
.ignoreDependency(alwaysTrue(), belongToAnyOf(
|
|
67
67
|
<%_ if (hasConstants) { _%>
|
|
68
68
|
<%= packageName %>.config.Constants.class,
|
|
69
|
-
<%_ } _%>
|
|
70
|
-
<%_ if (messageBrokerKafka) { _%>
|
|
71
|
-
<%= packageName %>.config.KafkaProperties.class,
|
|
72
69
|
<%_ } _%>
|
|
73
70
|
<%= packageName %>.config.ApplicationProperties.class
|
|
74
71
|
));
|
|
@@ -16,19 +16,21 @@
|
|
|
16
16
|
See the License for the specific language governing permissions and
|
|
17
17
|
limitations under the License.
|
|
18
18
|
-%>
|
|
19
|
-
package <%=
|
|
19
|
+
package <%=packageName%>.config;
|
|
20
20
|
|
|
21
|
-
import org.springframework.
|
|
21
|
+
import org.springframework.context.annotation.Bean;
|
|
22
22
|
import org.springframework.context.annotation.Configuration;
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
@Configuration
|
|
29
|
-
public class UserSearchRepositoryMockConfiguration {
|
|
24
|
+
import org.springframework.context.annotation.Primary;
|
|
25
|
+
import org.springframework.core.task.SyncTaskExecutor;
|
|
26
|
+
|
|
27
|
+
import java.util.concurrent.Executor;
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
@Configuration
|
|
30
|
+
public class AsyncSyncConfiguration {
|
|
33
31
|
|
|
32
|
+
@Bean(name = "taskExecutor")
|
|
33
|
+
public Executor taskExecutor() {
|
|
34
|
+
return new SyncTaskExecutor();
|
|
35
|
+
}
|
|
34
36
|
}
|
package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.config;
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
import static java.nio.file.Files.newDirectoryStream;
|
|
23
|
+
import static java.nio.file.Paths.get;
|
|
24
|
+
import static java.util.Spliterator.SORTED;
|
|
25
|
+
import static java.util.Spliterators.spliteratorUnknownSize;
|
|
26
|
+
import static java.util.stream.StreamSupport.stream;
|
|
27
|
+
|
|
28
|
+
import com.datastax.driver.core.Cluster;
|
|
29
|
+
import com.datastax.driver.core.Session;
|
|
30
|
+
import com.datastax.oss.driver.api.core.CqlSession;
|
|
31
|
+
import java.io.IOException;
|
|
32
|
+
import java.net.InetSocketAddress;
|
|
33
|
+
import java.net.URISyntaxException;
|
|
34
|
+
import java.net.URL;
|
|
35
|
+
import java.nio.file.Path;
|
|
36
|
+
import java.time.Duration;
|
|
37
|
+
import java.time.temporal.ChronoUnit;
|
|
38
|
+
import java.util.Iterator;
|
|
39
|
+
import java.util.Spliterator;
|
|
40
|
+
|
|
41
|
+
import com.datastax.oss.driver.api.core.CqlSessionBuilder;
|
|
42
|
+
import com.datastax.oss.driver.api.core.config.DefaultDriverOption;
|
|
43
|
+
import com.datastax.oss.driver.api.core.config.DriverConfigLoader;
|
|
44
|
+
import org.cassandraunit.CQLDataLoader;
|
|
45
|
+
import org.cassandraunit.dataset.cql.ClassPathCQLDataSet;
|
|
46
|
+
import org.springframework.beans.factory.DisposableBean;
|
|
47
|
+
import org.springframework.beans.factory.InitializingBean;
|
|
48
|
+
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
|
49
|
+
import org.slf4j.Logger;
|
|
50
|
+
import org.slf4j.LoggerFactory;
|
|
51
|
+
import org.testcontainers.containers.CassandraContainer;
|
|
52
|
+
import org.testcontainers.containers.output.Slf4jLogConsumer;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Base class for starting/stopping Cassandra during tests.
|
|
56
|
+
*/
|
|
57
|
+
public class CassandraTestContainer implements InitializingBean, DisposableBean {
|
|
58
|
+
|
|
59
|
+
private static final Logger log = LoggerFactory.getLogger(CassandraTestContainer.class);
|
|
60
|
+
private static final Integer DATABASE_REQUEST_TIMEOUT = 20;
|
|
61
|
+
private static final Integer CONTAINER_STARTUP_TIMEOUT_MINUTES = 10;
|
|
62
|
+
private CassandraContainer cassandraContainer;
|
|
63
|
+
|
|
64
|
+
@Override
|
|
65
|
+
public void destroy() {
|
|
66
|
+
if (null != cassandraContainer && cassandraContainer.isRunning()) {
|
|
67
|
+
cassandraContainer.close();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@Override
|
|
72
|
+
public void afterPropertiesSet() {
|
|
73
|
+
if (null == cassandraContainer) {
|
|
74
|
+
cassandraContainer = (CassandraContainer) new CassandraContainer("<%= DOCKER_CASSANDRA %>")
|
|
75
|
+
.withStartupTimeout(Duration.of(CONTAINER_STARTUP_TIMEOUT_MINUTES, ChronoUnit.MINUTES))
|
|
76
|
+
.withLogConsumer(new Slf4jLogConsumer(log))
|
|
77
|
+
.withReuse(true);
|
|
78
|
+
}
|
|
79
|
+
if (!cassandraContainer.isRunning()) {
|
|
80
|
+
cassandraContainer.start();
|
|
81
|
+
Cluster cluster = cassandraContainer.getCluster();
|
|
82
|
+
|
|
83
|
+
try(Session session = cluster.connect()) {
|
|
84
|
+
createTestKeyspace(session);
|
|
85
|
+
}
|
|
86
|
+
CqlSession cqlSession = new CqlSessionBuilder()
|
|
87
|
+
.addContactPoint(
|
|
88
|
+
new InetSocketAddress(
|
|
89
|
+
cassandraContainer.getHost(),
|
|
90
|
+
cassandraContainer.getMappedPort(CassandraContainer.CQL_PORT))
|
|
91
|
+
).withLocalDatacenter(cluster.getMetadata().getAllHosts().iterator().next().getDatacenter())
|
|
92
|
+
.withKeyspace(CQLDataLoader.DEFAULT_KEYSPACE_NAME)
|
|
93
|
+
.withConfigLoader(getConfigLoader())
|
|
94
|
+
.build();
|
|
95
|
+
CQLDataLoader dataLoader = new CQLDataLoader(cqlSession);
|
|
96
|
+
applyScripts(dataLoader, "config/cql/changelog/", "*.cql");
|
|
97
|
+
cqlSession.close();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
public CassandraContainer getCassandraContainer() {
|
|
102
|
+
return cassandraContainer;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
private DriverConfigLoader getConfigLoader() {
|
|
106
|
+
return DriverConfigLoader.programmaticBuilder()
|
|
107
|
+
.withDuration(DefaultDriverOption.REQUEST_TIMEOUT, Duration.ofSeconds(DATABASE_REQUEST_TIMEOUT))
|
|
108
|
+
.build();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
private void createTestKeyspace(Session session) {
|
|
112
|
+
String createQuery =
|
|
113
|
+
"CREATE KEYSPACE " + CQLDataLoader.DEFAULT_KEYSPACE_NAME + " WITH replication={'class' : 'SimpleStrategy', 'replication_factor':1}";
|
|
114
|
+
session.execute(createQuery);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
private void applyScripts(CQLDataLoader dataLoader, String cqlDir, String pattern) {
|
|
118
|
+
URL dirUrl = ClassLoader.getSystemResource(cqlDir);
|
|
119
|
+
if (dirUrl == null) { // protect for empty directory
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
Iterator<Path> pathIterator = null;
|
|
124
|
+
try {
|
|
125
|
+
pathIterator = newDirectoryStream(get(dirUrl.toURI()), pattern).iterator();
|
|
126
|
+
} catch (IOException e) {
|
|
127
|
+
log.error("error trying to reading CQL chagelog", e);
|
|
128
|
+
} catch (URISyntaxException e) {
|
|
129
|
+
log.error("error trying to get CQL chagelog uri", e);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
Spliterator<Path> pathSpliterator = spliteratorUnknownSize(pathIterator, SORTED);
|
|
133
|
+
stream(pathSpliterator, false)
|
|
134
|
+
.map(Path::getFileName)
|
|
135
|
+
.map(Path::toString)
|
|
136
|
+
.sorted()
|
|
137
|
+
.map(file -> cqlDir + file)
|
|
138
|
+
.map(dataSetLocation -> new ClassPathCQLDataSet(dataSetLocation, false, false, dataLoader.getSession().getKeyspace().get().toString()))
|
|
139
|
+
.forEach(dataLoader::load);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
@@ -16,19 +16,22 @@
|
|
|
16
16
|
See the License for the specific language governing permissions and
|
|
17
17
|
limitations under the License.
|
|
18
18
|
-%>
|
|
19
|
-
package <%=
|
|
19
|
+
package <%= packageName %>.config;
|
|
20
20
|
|
|
21
|
-
import
|
|
21
|
+
import javax.annotation.PostConstruct;
|
|
22
|
+
|
|
23
|
+
import org.springframework.beans.factory.annotation.Autowired;
|
|
22
24
|
import org.springframework.context.annotation.Configuration;
|
|
25
|
+
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchTemplate;
|
|
26
|
+
import org.springframework.data.elasticsearch.core.RefreshPolicy;
|
|
23
27
|
|
|
24
|
-
/**
|
|
25
|
-
* Configure a Mock version of {@link <%= entityClass %>SearchRepository} to test the
|
|
26
|
-
* application without starting Elasticsearch.
|
|
27
|
-
*/
|
|
28
28
|
@Configuration
|
|
29
|
-
public class
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
public class ElasticsearchReactiveTestConfiguration {
|
|
30
|
+
@Autowired
|
|
31
|
+
ReactiveElasticsearchTemplate template;
|
|
32
|
+
|
|
33
|
+
@PostConstruct
|
|
34
|
+
public void configureTemplate() {
|
|
35
|
+
this.template.setRefreshPolicy(RefreshPolicy.IMMEDIATE);
|
|
36
|
+
}
|
|
34
37
|
}
|
package/generators/server/templates/src/test/java/package/config/ElasticsearchTestContainer.java.ejs
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.config;
|
|
20
|
+
|
|
21
|
+
import org.slf4j.Logger;
|
|
22
|
+
import org.slf4j.LoggerFactory;
|
|
23
|
+
import org.springframework.beans.factory.DisposableBean;
|
|
24
|
+
import org.springframework.beans.factory.InitializingBean;
|
|
25
|
+
import org.testcontainers.containers.output.Slf4jLogConsumer;
|
|
26
|
+
import org.testcontainers.elasticsearch.ElasticsearchContainer;
|
|
27
|
+
import org.testcontainers.utility.DockerImageName;
|
|
28
|
+
|
|
29
|
+
import java.time.Duration;
|
|
30
|
+
import java.time.temporal.ChronoUnit;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Base class for starting/stopping ElasticSearch during tests.
|
|
34
|
+
*/
|
|
35
|
+
public class ElasticsearchTestContainer implements InitializingBean, DisposableBean {
|
|
36
|
+
|
|
37
|
+
private static final Logger log = LoggerFactory.getLogger(ElasticsearchTestContainer.class);
|
|
38
|
+
private static final Integer CONTAINER_STARTUP_TIMEOUT_MINUTES = 10;
|
|
39
|
+
private ElasticsearchContainer elasticsearchContainer;
|
|
40
|
+
|
|
41
|
+
@Override
|
|
42
|
+
public void destroy() {
|
|
43
|
+
if (null != elasticsearchContainer && elasticsearchContainer.isRunning()) {
|
|
44
|
+
elasticsearchContainer.close();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@Override
|
|
49
|
+
public void afterPropertiesSet() {
|
|
50
|
+
if (null == elasticsearchContainer) {
|
|
51
|
+
elasticsearchContainer =
|
|
52
|
+
new ElasticsearchContainer(DockerImageName.parse("<%= DOCKER_ELASTICSEARCH_CONTAINER %>").withTag("<%= ELASTICSEARCH_VERSION %>%>"))
|
|
53
|
+
.withStartupTimeout(Duration.of(CONTAINER_STARTUP_TIMEOUT_MINUTES, ChronoUnit.MINUTES))
|
|
54
|
+
.withSharedMemorySize(256000000L)
|
|
55
|
+
.withEnv("ES_JAVA_OPTS", "-Xms256m -Xmx256m")
|
|
56
|
+
.withLogConsumer(new Slf4jLogConsumer(log))
|
|
57
|
+
.withReuse(true);
|
|
58
|
+
}
|
|
59
|
+
if (!elasticsearchContainer.isRunning()) {
|
|
60
|
+
elasticsearchContainer.start();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public ElasticsearchContainer getElasticsearchContainer() {
|
|
65
|
+
return elasticsearchContainer;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.config;
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
import java.lang.annotation.ElementType;
|
|
23
|
+
import java.lang.annotation.Retention;
|
|
24
|
+
import java.lang.annotation.RetentionPolicy;
|
|
25
|
+
import java.lang.annotation.Target;
|
|
26
|
+
|
|
27
|
+
@Target(ElementType.TYPE)
|
|
28
|
+
@Retention(RetentionPolicy.RUNTIME)
|
|
29
|
+
public @interface EmbeddedCassandra {
|
|
30
|
+
}
|
package/generators/server/templates/src/test/java/package/config/EmbeddedElasticsearch.java.ejs
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.config;
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
import java.lang.annotation.ElementType;
|
|
23
|
+
import java.lang.annotation.Retention;
|
|
24
|
+
import java.lang.annotation.RetentionPolicy;
|
|
25
|
+
import java.lang.annotation.Target;
|
|
26
|
+
|
|
27
|
+
@Target(ElementType.TYPE)
|
|
28
|
+
@Retention(RetentionPolicy.RUNTIME)
|
|
29
|
+
public @interface EmbeddedElasticsearch {
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.config;
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
import java.lang.annotation.ElementType;
|
|
23
|
+
import java.lang.annotation.Retention;
|
|
24
|
+
import java.lang.annotation.RetentionPolicy;
|
|
25
|
+
import java.lang.annotation.Target;
|
|
26
|
+
|
|
27
|
+
@Target(ElementType.TYPE)
|
|
28
|
+
@Retention(RetentionPolicy.RUNTIME)
|
|
29
|
+
public @interface EmbeddedKafka {
|
|
30
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.config;
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
import java.lang.annotation.ElementType;
|
|
23
|
+
import java.lang.annotation.Retention;
|
|
24
|
+
import java.lang.annotation.RetentionPolicy;
|
|
25
|
+
import java.lang.annotation.Target;
|
|
26
|
+
|
|
27
|
+
@Target(ElementType.TYPE)
|
|
28
|
+
@Retention(RetentionPolicy.RUNTIME)
|
|
29
|
+
public @interface EmbeddedMongo {
|
|
30
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.config;
|
|
20
|
+
|
|
21
|
+
import java.lang.annotation.ElementType;
|
|
22
|
+
import java.lang.annotation.Retention;
|
|
23
|
+
import java.lang.annotation.RetentionPolicy;
|
|
24
|
+
import java.lang.annotation.Target;
|
|
25
|
+
|
|
26
|
+
@Target(ElementType.TYPE)
|
|
27
|
+
@Retention(RetentionPolicy.RUNTIME)
|
|
28
|
+
public @interface EmbeddedNeo4j {
|
|
29
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.config;
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
import java.lang.annotation.ElementType;
|
|
23
|
+
import java.lang.annotation.Retention;
|
|
24
|
+
import java.lang.annotation.RetentionPolicy;
|
|
25
|
+
import java.lang.annotation.Target;
|
|
26
|
+
|
|
27
|
+
@Target(ElementType.TYPE)
|
|
28
|
+
@Retention(RetentionPolicy.RUNTIME)
|
|
29
|
+
public @interface EmbeddedRedis {
|
|
30
|
+
}
|
|
@@ -28,11 +28,20 @@ public class JHipsterBlockHoundIntegration implements BlockHoundIntegration {
|
|
|
28
28
|
builder.allowBlockingCallsInside("reactor.core.scheduler.BoundedElasticScheduler$BoundedState", "dispose");
|
|
29
29
|
builder.allowBlockingCallsInside("reactor.core.scheduler.BoundedElasticScheduler", "schedule");
|
|
30
30
|
builder.allowBlockingCallsInside("org.springframework.validation.beanvalidation.SpringValidatorAdapter", "validate");
|
|
31
|
-
|
|
31
|
+
builder.allowBlockingCallsInside("<%= packageName %>.service.MailService", "sendEmailFromTemplate");
|
|
32
|
+
builder.allowBlockingCallsInside("<%= packageName %>.security.DomainUserDetailsService", "createSpringSecurityUser");
|
|
33
|
+
<%_ if (databaseTypeCouchbase) { _%>
|
|
32
34
|
builder.allowBlockingCallsInside("org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter", "read");
|
|
33
35
|
builder.allowBlockingCallsInside("com.github.couchmove.repository.CouchbaseRepositoryImpl", "lambda$query$2");
|
|
34
36
|
builder.allowBlockingCallsInside("com.github.couchmove.repository.CouchbaseRepositoryImpl", "lambda$importFtsIndex$1");
|
|
35
|
-
|
|
37
|
+
<%_} _%>
|
|
38
|
+
<%_ if (prodDatabaseTypeMysql || prodDatabaseTypeMariadb) { _%>
|
|
39
|
+
builder.allowBlockingCallsInside("org.mariadb.r2dbc.message.client.HandshakeResponse", "writeConnectAttributes");
|
|
40
|
+
builder.allowBlockingCallsInside("org.mariadb.r2dbc.client.MariadbPacketDecoder", "decode");
|
|
41
|
+
<%_} _%>
|
|
42
|
+
<%_ if (searchEngineElasticsearch) { _%>
|
|
43
|
+
builder.allowBlockingCallsInside("org.elasticsearch.client.indices.CreateIndexRequest", "settings");
|
|
44
|
+
<%_} _%>
|
|
36
45
|
}
|
|
37
46
|
|
|
38
47
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2022 the original author or authors from the JHipster project.
|
|
3
|
+
|
|
4
|
+
This file is part of the JHipster project, see https://www.jhipster.tech/
|
|
5
|
+
for more information.
|
|
6
|
+
|
|
7
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
you may not use this file except in compliance with the License.
|
|
9
|
+
You may obtain a copy of the License at
|
|
10
|
+
|
|
11
|
+
https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
|
|
13
|
+
Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
See the License for the specific language governing permissions and
|
|
17
|
+
limitations under the License.
|
|
18
|
+
-%>
|
|
19
|
+
package <%= packageName %>.config;
|
|
20
|
+
|
|
21
|
+
import org.springframework.beans.factory.DisposableBean;
|
|
22
|
+
import org.springframework.beans.factory.InitializingBean;
|
|
23
|
+
import org.slf4j.Logger;
|
|
24
|
+
import org.slf4j.LoggerFactory;
|
|
25
|
+
import org.testcontainers.containers.KafkaContainer;
|
|
26
|
+
import org.testcontainers.containers.output.Slf4jLogConsumer;
|
|
27
|
+
import org.testcontainers.utility.DockerImageName;
|
|
28
|
+
|
|
29
|
+
public class KafkaTestContainer implements InitializingBean, DisposableBean {
|
|
30
|
+
|
|
31
|
+
private KafkaContainer kafkaContainer;
|
|
32
|
+
private static final Logger log = LoggerFactory.getLogger(KafkaTestContainer.class);
|
|
33
|
+
|
|
34
|
+
@Override
|
|
35
|
+
public void destroy() {
|
|
36
|
+
if (null != kafkaContainer && kafkaContainer.isRunning()) {
|
|
37
|
+
kafkaContainer.close();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@Override
|
|
42
|
+
public void afterPropertiesSet() {
|
|
43
|
+
if (null == kafkaContainer) {
|
|
44
|
+
kafkaContainer = new KafkaContainer(DockerImageName.parse("<%= DOCKER_KAFKA %>"))
|
|
45
|
+
.withLogConsumer(new Slf4jLogConsumer(log))
|
|
46
|
+
.withReuse(true);
|
|
47
|
+
}
|
|
48
|
+
if (!kafkaContainer.isRunning()) {
|
|
49
|
+
kafkaContainer.start();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public KafkaContainer getKafkaContainer() {
|
|
54
|
+
return kafkaContainer;
|
|
55
|
+
}
|
|
56
|
+
}
|