generator-jhipster 7.6.0 → 7.8.1
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 +1 -4
- package/cli/commands.js +3 -0
- package/cli/environment-builder.js +53 -18
- package/cli/import-jdl.js +3 -0
- package/cli/index.mjs +20 -0
- package/cli/jhipster.js +19 -11
- package/cli/program.js +94 -38
- package/generators/app/esm.mjs +1 -3
- package/generators/app/index.js +11 -16
- package/generators/aws/esm.mjs +1 -3
- package/generators/azure-app-service/esm.mjs +1 -3
- package/generators/azure-spring-cloud/esm.mjs +1 -3
- package/generators/base/esm.mjs +1 -3
- package/generators/bootstrap/esm.mjs +1 -3
- package/generators/bootstrap/index.js +36 -86
- package/generators/bootstrap-application/esm.mjs +19 -0
- package/generators/bootstrap-application/generator.mjs +353 -0
- package/generators/bootstrap-application/index.mjs +19 -0
- package/generators/ci-cd/esm.mjs +1 -3
- package/generators/ci-cd/index.js +1 -1
- package/generators/ci-cd/prompts.js +1 -1
- package/generators/ci-cd/templates/github-actions.yml.ejs +6 -6
- package/generators/client/esm.mjs +5 -3
- package/generators/client/files-angular.js +9 -0
- package/generators/client/files-common.js +9 -9
- package/generators/client/files-react.js +25 -2
- package/generators/client/files-vue.js +7 -6
- package/generators/client/index.js +3 -2
- package/generators/client/needle-api/needle-client-react.js +11 -8
- package/generators/client/templates/angular/angular.json.ejs +2 -10
- package/generators/client/templates/angular/jest.conf.js.ejs +1 -1
- package/generators/client/templates/angular/package.json +29 -27
- package/generators/client/templates/angular/package.json.ejs +6 -2
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.html.ejs +7 -7
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +3 -3
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.html.ejs +10 -10
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.html.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +51 -49
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +16 -16
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +32 -32
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +18 -18
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +12 -12
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +11 -11
- 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/layouts/navbar/navbar.component.html.ejs +4 -2
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.scss.ejs +0 -6
- package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +0 -6
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.html.ejs +3 -3
- package/generators/client/templates/angular/src/main/webapp/content/scss/_bootstrap-variables.scss.ejs +5 -5
- package/generators/client/templates/angular/src/main/webapp/content/scss/global.scss.ejs +29 -0
- package/generators/client/templates/angular/src/main/webapp/content/scss/vendor.scss.ejs +0 -4
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +31 -1
- package/generators/client/templates/common/package.json +7 -6
- package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +1 -7
- package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +2 -3
- package/generators/client/templates/react/.eslintrc.json.ejs +1 -1
- package/generators/client/templates/react/jest.conf.js.ejs +1 -1
- package/generators/client/templates/react/package.json +44 -45
- package/generators/client/templates/react/package.json.ejs +1 -0
- package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +1 -1
- 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 +47 -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/administration/logs/logs.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +2 -1
- 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/routes.tsx.ejs +24 -7
- package/generators/client/templates/react/src/main/webapp/app/shared/error/error-loading.tsx.ejs +15 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +34 -6
- 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 +3 -3
- package/generators/client/templates/react/tsconfig.test.json.ejs +9 -1
- package/generators/client/templates/react/webpack/webpack.common.js.ejs +6 -13
- 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/package.json +30 -31
- package/generators/client/templates/vue/package.json.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +4 -3
- package/generators/client/templates/vue/src/main/webapp/app/entities/user/user.service.ts.ejs +0 -0
- package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +29 -1
- package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +2 -2
- package/generators/client/templates/vue/src/main/webapp/app/shared/config/config.ts.ejs +0 -4
- package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +1 -1
- package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +2 -2
- package/generators/client/templates/vue/tsconfig.json.ejs +0 -3
- package/generators/client/templates/vue/webpack/webpack.common.js.ejs +6 -2
- package/generators/cloudfoundry/esm.mjs +1 -3
- package/generators/common/esm.mjs +2 -3
- package/generators/common/files.js +1 -2
- package/generators/common/index.js +6 -0
- package/generators/common/templates/.husky/{pre-commit → pre-commit.ejs} +4 -0
- package/generators/common/templates/README.md.jhi.ejs +3 -1
- package/generators/common/templates/package.json +4 -4
- package/generators/common/templates/sonar-project.properties.ejs +1 -1
- package/generators/cypress/esm.mjs +2 -3
- package/generators/cypress/files.js +2 -1
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +18 -14
- package/generators/database-changelog/esm.mjs +1 -3
- package/generators/database-changelog/index.js +1 -1
- package/generators/database-changelog-liquibase/esm.mjs +2 -3
- package/generators/docker-compose/esm.mjs +1 -3
- package/generators/docker-compose/index.js +9 -5
- package/generators/entities/esm.mjs +1 -3
- package/generators/entities/index.js +2 -2
- package/generators/entities-client/esm.mjs +1 -3
- package/generators/entity/esm.mjs +1 -3
- package/generators/entity/index.js +39 -28
- package/generators/entity/prompts.js +4 -1
- package/generators/entity-client/esm.mjs +2 -3
- package/generators/entity-client/index.js +8 -0
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.html.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +2 -2
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +20 -21
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +14 -16
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +3 -3
- package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +2 -1
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +3 -3
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-detail.tsx.ejs +5 -4
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-reducer.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +20 -19
- 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 +21 -20
- package/generators/entity-client/templates/react/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
- package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
- package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
- package/generators/entity-i18n/esm.mjs +2 -3
- package/generators/entity-i18n/templates/i18n/entity_fr.json.ejs +1 -1
- package/generators/entity-server/esm.mjs +2 -3
- package/generators/entity-server/files-couchbase.js +23 -2
- package/generators/entity-server/files.js +40 -6
- package/generators/entity-server/index.js +27 -2
- package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +11 -13
- package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +30 -43
- package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.fts.ejs +5 -6
- package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.n1ql.ejs +5 -0
- package/generators/entity-server/templates/partials/it_patch_update.partial.java.ejs +2 -2
- 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 +5 -5
- 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 +17 -8
- package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +5 -5
- package/generators/entity-server/templates/src/main/java/package/common/search_stream_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +4 -3
- 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_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 +36 -23
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +24 -28
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationships.java.ejs +37 -0
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +91 -0
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +17 -25
- 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 +3 -3
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +12 -27
- 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/criteria/EntityCriteria.java.ejs +8 -6
- package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +21 -5
- 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 +6 -4
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +33 -20
- package/generators/export-jdl/esm.mjs +1 -3
- package/generators/gae/esm.mjs +1 -3
- package/generators/generate-blueprint/constants.mjs +146 -0
- package/generators/generate-blueprint/esm.mjs +19 -0
- package/generators/generate-blueprint/files.mjs +81 -0
- package/generators/generate-blueprint/generator.mjs +363 -0
- package/generators/generate-blueprint/index.mjs +20 -0
- package/generators/generate-blueprint/templates/.eslintrc.json.ejs +41 -0
- package/generators/generate-blueprint/templates/.github/workflows/generator.yml.ejs +32 -0
- package/generators/generate-blueprint/templates/.mocharc.cjs.ejs +29 -0
- package/generators/{server/templates/couchbase/src/main/java/package/config/couchbase/package-info.java.ejs → generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs} +4 -7
- package/generators/generate-blueprint/templates/README.md.ejs +75 -0
- package/generators/generate-blueprint/templates/cli/cli.mjs.ejs +35 -0
- package/generators/generate-blueprint/templates/cli/commands.cjs.ejs +25 -0
- package/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +98 -0
- package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +42 -0
- package/generators/generate-blueprint/templates/generators/generator/index.mjs.ejs +19 -0
- package/generators/generate-blueprint/templates/generators/generator/templates/template-file.ejs +0 -0
- package/generators/generate-blueprint/templates/test/utils.mjs.ejs +17 -0
- package/generators/generator-base-blueprint.js +29 -0
- package/generators/generator-base-docker.js +1 -0
- package/generators/generator-base-entities.cjs +368 -0
- package/generators/generator-base-private.js +1 -1
- package/generators/generator-base.js +157 -23
- package/generators/generator-constants.js +22 -20
- package/generators/generator-list.js +2 -0
- package/generators/generator-transforms.js +0 -1
- package/generators/gradle/constants.cjs +1 -1
- package/generators/gradle/esm.mjs +19 -0
- package/generators/heroku/esm.mjs +1 -3
- package/generators/info/esm.mjs +1 -3
- package/generators/init/esm.mjs +19 -0
- package/generators/init/files.cjs +9 -3
- package/generators/init/index.cjs +5 -0
- package/generators/init/templates/.gitignore.jhi.ejs +5 -0
- package/generators/init/templates/{.lintstagedrc.js.ejs → .lintstagedrc.cjs.ejs} +0 -0
- package/generators/java/esm.mjs +19 -0
- package/generators/java/index.cjs +58 -2
- package/generators/kubernetes/esm.mjs +1 -3
- package/generators/kubernetes-helm/esm.mjs +1 -3
- package/generators/kubernetes-knative/esm.mjs +1 -3
- package/generators/languages/esm.mjs +2 -3
- package/generators/languages/templates/src/test/resources/i18n/messages_fr.properties.ejs +4 -1
- package/generators/maven/esm.mjs +19 -0
- 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 +1 -1
- package/generators/openapi-client/esm.mjs +1 -3
- package/generators/openapi-client/index.js +11 -4
- package/generators/openshift/esm.mjs +1 -3
- package/generators/page/esm.mjs +1 -3
- package/generators/project-name/esm.mjs +19 -0
- package/generators/server/cleanup.js +19 -3
- package/generators/server/esm.mjs +2 -2
- package/generators/server/files-couchbase.js +28 -31
- package/generators/server/files.js +115 -18
- package/generators/server/index.js +23 -17
- package/generators/server/needle-api/needle-server-gradle.js +38 -0
- package/generators/server/needle-api/needle-server-maven.js +1 -1
- 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/build.gradle.ejs +7 -5
- package/generators/server/templates/couchbase/src/main/java/package/repository/CouchbaseSearchRepository.java.ejs +91 -0
- package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +47 -45
- package/generators/server/templates/couchbase/src/main/java/package/repository/PersistentTokenRepository_couchbase.java.ejs +2 -2
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_ADMIN.json.ejs +3 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_USER.json.ejs +3 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__admin.json.ejs → user/admin.json.ejs} +2 -2
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__user.json.ejs → user/user.json.ejs} +2 -2
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.2__create_indexes.n1ql.ejs +34 -0
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_collections.n1ql.ejs +8 -0
- package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +4 -3
- package/generators/server/templates/couchbase/src/test/java/package/repository/{JHipsterCouchbaseRepositoryTest.java.ejs → CouchbaseSearchRepositoryTest.java.ejs} +2 -2
- package/generators/server/templates/devcontainer/Dockerfile.ejs +25 -0
- package/generators/server/templates/devcontainer/devcontainer.json.ejs +64 -0
- package/generators/server/templates/gradle/profile_prod.gradle.ejs +4 -0
- package/generators/server/templates/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/generators/server/templates/gradle.properties.ejs +8 -8
- package/generators/server/templates/mvnw +13 -7
- package/generators/server/templates/mvnw.cmd +19 -13
- package/generators/server/templates/npmw +14 -5
- package/generators/server/templates/pom.xml.ejs +65 -58
- package/generators/server/templates/settings.gradle.ejs +6 -4
- package/generators/server/templates/src/main/docker/app.yml.ejs +4 -6
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -1
- package/generators/server/templates/src/main/docker/mysql.yml.ejs +1 -0
- package/generators/server/templates/src/main/docker/zipkin.yml.ejs +25 -0
- package/generators/server/templates/src/main/java/package/config/AsyncConfiguration.java.ejs +6 -0
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +26 -16
- 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/LocaleConfiguration_reactive.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +12 -10
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +2 -1
- package/generators/server/templates/src/main/java/package/domain/Authority.java.ejs +11 -0
- package/generators/server/templates/src/main/java/package/domain/PersistentToken.java.ejs +6 -6
- package/generators/server/templates/src/main/java/package/domain/User.java.ejs +9 -7
- package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +1 -11
- package/generators/server/templates/src/main/java/package/repository/EntityManager.java.ejs +48 -38
- package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +48 -72
- 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 +1 -1
- package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +8 -6
- package/generators/server/templates/src/main/java/package/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs +0 -1
- package/generators/server/templates/src/main/java/package/web/rest/AccountResource.java.ejs +1 -1
- 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_reactive.java.ejs +1 -1
- package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
- package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +8 -0
- package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +6 -0
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +28 -22
- package/generators/server/templates/src/test/java/package/CassandraKeyspaceIT.java.ejs +3 -4
- package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +12 -4
- package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +18 -15
- package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs +122 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedCassandra.java.ejs +11 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedKafka.java.ejs +11 -0
- package/generators/server/templates/src/test/java/package/config/EmbeddedMongo.java.ejs +11 -0
- package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +2 -0
- package/generators/server/templates/src/test/java/package/config/KafkaTestContainer.java.ejs +38 -0
- package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs +67 -0
- package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +114 -0
- package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +3 -10
- package/generators/server/templates/src/test/java/package/cucumber/stepdefs/StepDefs.java.ejs +8 -0
- package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +17 -3
- package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +1 -4
- package/generators/server/templates/src/test/java/package/security/SecurityUtilsUnitTest_reactive.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +5 -5
- package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +2 -4
- package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +1 -4
- 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 +15 -8
- 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 -4
- 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 +1 -6
- 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 +42 -47
- 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 +2 -5
- 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 +21 -20
- package/generators/server/templates/src/test/resources/testcontainers.properties.ejs +1 -0
- package/generators/spring-boot/esm.mjs +19 -0
- package/generators/spring-controller/esm.mjs +1 -3
- package/generators/spring-service/esm.mjs +1 -3
- package/generators/upgrade/esm.mjs +1 -3
- package/generators/upgrade-config/esm.mjs +1 -3
- package/generators/workspaces/esm.mjs +1 -3
- package/generators/workspaces/index.js +2 -1
- package/lib/constants/logo.cjs +30 -0
- package/lib/constants/priorities.cjs +216 -2
- package/lib/constants/priorities.mjs +29 -1
- package/lib/index.mjs +6 -0
- package/lib/support/mixin.cjs +5 -1
- package/lib/support/shared-data.cjs +34 -1
- package/package.json +33 -29
- package/utils/entity.js +21 -2
- package/utils/faker.js +3 -3
- package/utils/field.js +69 -52
- package/utils/relationship.js +15 -4
- package/utils/user.js +109 -0
- package/generators/app/generator.spec.mjs +0 -47
- package/generators/aws/generator.spec.mjs +0 -47
- package/generators/azure-app-service/generator.spec.mjs +0 -47
- package/generators/azure-spring-cloud/generator.spec.mjs +0 -47
- package/generators/base/generator.spec.mjs +0 -44
- package/generators/bootstrap/generator.spec.mjs +0 -44
- package/generators/ci-cd/generator.spec.mjs +0 -47
- package/generators/client/__workflow/devserver-angular.json +0 -13
- package/generators/client/__workflow/devserver-react.json +0 -13
- package/generators/client/__workflow/devserver-vue.json +0 -13
- package/generators/client/generator.spec.mjs +0 -47
- package/generators/cloudfoundry/generator.spec.mjs +0 -47
- package/generators/common/generator.spec.mjs +0 -47
- package/generators/cypress/generator.spec.mjs +0 -47
- package/generators/database-changelog/generator.spec.mjs +0 -47
- package/generators/database-changelog-liquibase/generator.spec.mjs +0 -47
- package/generators/docker-compose/generator.spec.mjs +0 -44
- package/generators/entities/generator.spec.mjs +0 -47
- package/generators/entities-client/generator.spec.mjs +0 -47
- package/generators/entity/generator.spec.mjs +0 -47
- package/generators/entity-client/generator.spec.mjs +0 -47
- package/generators/entity-i18n/generator.spec.mjs +0 -47
- package/generators/entity-server/generator.spec.mjs +0 -47
- package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +0 -24
- package/generators/export-jdl/generator.spec.mjs +0 -44
- package/generators/gae/generator.spec.mjs +0 -47
- package/generators/gradle/__snapshots__/generator.spec.cjs.snap +0 -59
- package/generators/gradle/generator.spec.cjs +0 -71
- package/generators/heroku/generator.spec.mjs +0 -47
- package/generators/info/generator.spec.mjs +0 -44
- package/generators/init/__snapshots__/generator.spec.cjs.snap +0 -65
- package/generators/init/generator.spec.cjs +0 -112
- package/generators/java/__snapshots__/generator.spec.cjs.snap +0 -118
- package/generators/java/generator.spec.cjs +0 -87
- package/generators/kubernetes/generator.spec.mjs +0 -44
- package/generators/kubernetes-helm/generator.spec.mjs +0 -44
- package/generators/kubernetes-knative/generator.spec.mjs +0 -44
- package/generators/languages/generator.spec.mjs +0 -47
- package/generators/maven/__snapshots__/generator.spec.cjs.snap +0 -53
- package/generators/maven/generator.spec.cjs +0 -78
- package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
- package/generators/openapi-client/generator.spec.mjs +0 -47
- package/generators/openshift/generator.spec.mjs +0 -44
- package/generators/page/generator.spec.mjs +0 -47
- package/generators/project-name/generator.spec.cjs +0 -43
- package/generators/server/__snapshots__/generator.spec.mjs.snap +0 -1931
- package/generators/server/generator.spec.mjs +0 -52
- package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactory.java.ejs +0 -83
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactoryBean.java.ejs +0 -40
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryQuery.java.ejs +0 -44
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlQueryCreator.java.ejs +0 -162
- package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlRepositoryQueryExecutor.java.ejs +0 -104
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_ADMIN.json.ejs +0 -3
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_USER.json.ejs +0 -3
- package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_indexes.n1ql.ejs +0 -19
- 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/MongoDbTestContainerExtension.java.ejs +0 -37
- package/generators/server/templates/src/test/java/package/TestContainersSpringContextCustomizerFactory.java.ejs +0 -24
- package/generators/spring-boot/__snapshots__/generator.spec.cjs.snap +0 -80
- package/generators/spring-boot/generator.spec.cjs +0 -64
- package/generators/spring-controller/generator.spec.mjs +0 -47
- package/generators/spring-service/generator.spec.mjs +0 -47
- package/generators/upgrade/generator.spec.mjs +0 -44
- package/generators/upgrade-config/generator.spec.mjs +0 -44
- package/generators/workspaces/generator.spec.mjs +0 -47
package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
package <%= packageName %>.config;
|
|
2
|
+
|
|
3
|
+
import static java.nio.file.Files.newDirectoryStream;
|
|
4
|
+
import static java.nio.file.Paths.get;
|
|
5
|
+
import static java.util.Spliterator.SORTED;
|
|
6
|
+
import static java.util.Spliterators.spliteratorUnknownSize;
|
|
7
|
+
import static java.util.stream.StreamSupport.stream;
|
|
8
|
+
|
|
9
|
+
import com.datastax.driver.core.Cluster;
|
|
10
|
+
import com.datastax.driver.core.Session;
|
|
11
|
+
import com.datastax.oss.driver.api.core.CqlSession;
|
|
12
|
+
import java.io.IOException;
|
|
13
|
+
import java.net.InetSocketAddress;
|
|
14
|
+
import java.net.URISyntaxException;
|
|
15
|
+
import java.net.URL;
|
|
16
|
+
import java.nio.file.Path;
|
|
17
|
+
import java.time.Duration;
|
|
18
|
+
import java.time.temporal.ChronoUnit;
|
|
19
|
+
import java.util.Iterator;
|
|
20
|
+
import java.util.Spliterator;
|
|
21
|
+
|
|
22
|
+
import com.datastax.oss.driver.api.core.CqlSessionBuilder;
|
|
23
|
+
import com.datastax.oss.driver.api.core.config.DefaultDriverOption;
|
|
24
|
+
import com.datastax.oss.driver.api.core.config.DriverConfigLoader;
|
|
25
|
+
import org.cassandraunit.CQLDataLoader;
|
|
26
|
+
import org.cassandraunit.dataset.cql.ClassPathCQLDataSet;
|
|
27
|
+
import org.springframework.beans.factory.DisposableBean;
|
|
28
|
+
import org.springframework.beans.factory.InitializingBean;
|
|
29
|
+
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
|
30
|
+
import org.slf4j.Logger;
|
|
31
|
+
import org.slf4j.LoggerFactory;
|
|
32
|
+
import org.testcontainers.containers.CassandraContainer;
|
|
33
|
+
import org.testcontainers.containers.output.Slf4jLogConsumer;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Base class for starting/stopping Cassandra during tests.
|
|
37
|
+
*/
|
|
38
|
+
public class CassandraTestContainer implements InitializingBean, DisposableBean {
|
|
39
|
+
|
|
40
|
+
private static final Logger log = LoggerFactory.getLogger(CassandraTestContainer.class);
|
|
41
|
+
private static final Integer DATABASE_REQUEST_TIMEOUT = 20;
|
|
42
|
+
private static final Integer CONTAINER_STARTUP_TIMEOUT_MINUTES = 10;
|
|
43
|
+
private CassandraContainer cassandraContainer;
|
|
44
|
+
|
|
45
|
+
@Override
|
|
46
|
+
public void destroy() {
|
|
47
|
+
if (null != cassandraContainer && cassandraContainer.isRunning()) {
|
|
48
|
+
cassandraContainer.stop();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@Override
|
|
53
|
+
public void afterPropertiesSet() {
|
|
54
|
+
if (null == cassandraContainer) {
|
|
55
|
+
cassandraContainer = (CassandraContainer) new CassandraContainer("<%= DOCKER_CASSANDRA %>")
|
|
56
|
+
.withStartupTimeout(Duration.of(CONTAINER_STARTUP_TIMEOUT_MINUTES, ChronoUnit.MINUTES))
|
|
57
|
+
.withLogConsumer(new Slf4jLogConsumer(log))
|
|
58
|
+
.withReuse(true);
|
|
59
|
+
}
|
|
60
|
+
if (!cassandraContainer.isRunning()) {
|
|
61
|
+
cassandraContainer.start();
|
|
62
|
+
Cluster cluster = cassandraContainer.getCluster();
|
|
63
|
+
|
|
64
|
+
try(Session session = cluster.connect()) {
|
|
65
|
+
createTestKeyspace(session);
|
|
66
|
+
}
|
|
67
|
+
CqlSession cqlSession = new CqlSessionBuilder()
|
|
68
|
+
.addContactPoint(
|
|
69
|
+
new InetSocketAddress(
|
|
70
|
+
cassandraContainer.getHost(),
|
|
71
|
+
cassandraContainer.getMappedPort(CassandraContainer.CQL_PORT))
|
|
72
|
+
).withLocalDatacenter(cluster.getMetadata().getAllHosts().iterator().next().getDatacenter())
|
|
73
|
+
.withKeyspace(CQLDataLoader.DEFAULT_KEYSPACE_NAME)
|
|
74
|
+
.withConfigLoader(getConfigLoader())
|
|
75
|
+
.build();
|
|
76
|
+
CQLDataLoader dataLoader = new CQLDataLoader(cqlSession);
|
|
77
|
+
applyScripts(dataLoader, "config/cql/changelog/", "*.cql");
|
|
78
|
+
cqlSession.close();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
public CassandraContainer getCassandraContainer() {
|
|
83
|
+
return cassandraContainer;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
private DriverConfigLoader getConfigLoader() {
|
|
87
|
+
return DriverConfigLoader.programmaticBuilder()
|
|
88
|
+
.withDuration(DefaultDriverOption.REQUEST_TIMEOUT, Duration.ofSeconds(DATABASE_REQUEST_TIMEOUT))
|
|
89
|
+
.build();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
private void createTestKeyspace(Session session) {
|
|
93
|
+
String createQuery =
|
|
94
|
+
"CREATE KEYSPACE " + CQLDataLoader.DEFAULT_KEYSPACE_NAME + " WITH replication={'class' : 'SimpleStrategy', 'replication_factor':1}";
|
|
95
|
+
session.execute(createQuery);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
private void applyScripts(CQLDataLoader dataLoader, String cqlDir, String pattern) {
|
|
99
|
+
URL dirUrl = ClassLoader.getSystemResource(cqlDir);
|
|
100
|
+
if (dirUrl == null) { // protect for empty directory
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
Iterator<Path> pathIterator = null;
|
|
105
|
+
try {
|
|
106
|
+
pathIterator = newDirectoryStream(get(dirUrl.toURI()), pattern).iterator();
|
|
107
|
+
} catch (IOException e) {
|
|
108
|
+
log.error("error trying to reading CQL chagelog", e);
|
|
109
|
+
} catch (URISyntaxException e) {
|
|
110
|
+
log.error("error trying to get CQL chagelog uri", e);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
Spliterator<Path> pathSpliterator = spliteratorUnknownSize(pathIterator, SORTED);
|
|
114
|
+
stream(pathSpliterator, false)
|
|
115
|
+
.map(Path::getFileName)
|
|
116
|
+
.map(Path::toString)
|
|
117
|
+
.sorted()
|
|
118
|
+
.map(file -> cqlDir + file)
|
|
119
|
+
.map(dataSetLocation -> new ClassPathCQLDataSet(dataSetLocation, false, false, dataLoader.getSession().getKeyspace().get().toString()))
|
|
120
|
+
.forEach(dataLoader::load);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
package <%= packageName %>.config;
|
|
2
|
+
|
|
3
|
+
import java.lang.annotation.ElementType;
|
|
4
|
+
import java.lang.annotation.Retention;
|
|
5
|
+
import java.lang.annotation.RetentionPolicy;
|
|
6
|
+
import java.lang.annotation.Target;
|
|
7
|
+
|
|
8
|
+
@Target(ElementType.TYPE)
|
|
9
|
+
@Retention(RetentionPolicy.RUNTIME)
|
|
10
|
+
public @interface EmbeddedCassandra {
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
package <%= packageName %>.config;
|
|
2
|
+
|
|
3
|
+
import java.lang.annotation.ElementType;
|
|
4
|
+
import java.lang.annotation.Retention;
|
|
5
|
+
import java.lang.annotation.RetentionPolicy;
|
|
6
|
+
import java.lang.annotation.Target;
|
|
7
|
+
|
|
8
|
+
@Target(ElementType.TYPE)
|
|
9
|
+
@Retention(RetentionPolicy.RUNTIME)
|
|
10
|
+
public @interface EmbeddedKafka {
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
package <%= packageName %>.config;
|
|
2
|
+
|
|
3
|
+
import java.lang.annotation.ElementType;
|
|
4
|
+
import java.lang.annotation.Retention;
|
|
5
|
+
import java.lang.annotation.RetentionPolicy;
|
|
6
|
+
import java.lang.annotation.Target;
|
|
7
|
+
|
|
8
|
+
@Target(ElementType.TYPE)
|
|
9
|
+
@Retention(RetentionPolicy.RUNTIME)
|
|
10
|
+
public @interface EmbeddedMongo {
|
|
11
|
+
}
|
|
@@ -30,6 +30,8 @@ public class JHipsterBlockHoundIntegration implements BlockHoundIntegration {
|
|
|
30
30
|
builder.allowBlockingCallsInside("org.springframework.validation.beanvalidation.SpringValidatorAdapter", "validate");
|
|
31
31
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
32
32
|
builder.allowBlockingCallsInside("org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter", "read");
|
|
33
|
+
builder.allowBlockingCallsInside("com.github.couchmove.repository.CouchbaseRepositoryImpl", "lambda$query$2");
|
|
34
|
+
builder.allowBlockingCallsInside("com.github.couchmove.repository.CouchbaseRepositoryImpl", "lambda$importFtsIndex$1");
|
|
33
35
|
<%_} _%>
|
|
34
36
|
}
|
|
35
37
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
package <%= packageName %>.config;
|
|
2
|
+
|
|
3
|
+
import org.springframework.beans.factory.DisposableBean;
|
|
4
|
+
import org.springframework.beans.factory.InitializingBean;
|
|
5
|
+
import org.slf4j.Logger;
|
|
6
|
+
import org.slf4j.LoggerFactory;
|
|
7
|
+
import org.testcontainers.containers.KafkaContainer;
|
|
8
|
+
import org.testcontainers.containers.output.Slf4jLogConsumer;
|
|
9
|
+
import org.testcontainers.utility.DockerImageName;
|
|
10
|
+
|
|
11
|
+
public class KafkaTestContainer implements InitializingBean, DisposableBean {
|
|
12
|
+
|
|
13
|
+
private KafkaContainer kafkaContainer;
|
|
14
|
+
private static final Logger log = LoggerFactory.getLogger(KafkaTestContainer.class);
|
|
15
|
+
|
|
16
|
+
@Override
|
|
17
|
+
public void destroy() {
|
|
18
|
+
if (null != kafkaContainer && kafkaContainer.isRunning()) {
|
|
19
|
+
kafkaContainer.stop();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@Override
|
|
24
|
+
public void afterPropertiesSet() {
|
|
25
|
+
if (null == kafkaContainer) {
|
|
26
|
+
kafkaContainer = new KafkaContainer(DockerImageName.parse("<%= DOCKER_KAFKA %>"))
|
|
27
|
+
.withLogConsumer(new Slf4jLogConsumer(log))
|
|
28
|
+
.withReuse(true);
|
|
29
|
+
}
|
|
30
|
+
if (!kafkaContainer.isRunning()) {
|
|
31
|
+
kafkaContainer.start();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public KafkaContainer getKafkaContainer() {
|
|
36
|
+
return kafkaContainer;
|
|
37
|
+
}
|
|
38
|
+
}
|
package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
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.util.Collections;
|
|
22
|
+
|
|
23
|
+
import org.springframework.beans.factory.DisposableBean;
|
|
24
|
+
import org.springframework.beans.factory.InitializingBean;
|
|
25
|
+
import org.slf4j.Logger;
|
|
26
|
+
import org.slf4j.LoggerFactory;
|
|
27
|
+
import org.testcontainers.containers.MongoDBContainer;
|
|
28
|
+
import org.testcontainers.containers.output.Slf4jLogConsumer;
|
|
29
|
+
|
|
30
|
+
public class MongoDbTestContainer implements InitializingBean, DisposableBean {
|
|
31
|
+
private final long memoryInBytes = Math.round(1024 * 1024 * 1024 * 0.6);
|
|
32
|
+
private final long memorySwapInBytes = Math.round(1024 * 1024 * 1024 * 0.8);
|
|
33
|
+
private final long nanoCpu = Math.round(1_000_000_000L * 0.1);
|
|
34
|
+
private static final Logger log = LoggerFactory.getLogger(MongoDbTestContainer.class);
|
|
35
|
+
|
|
36
|
+
private MongoDBContainer mongodbContainer;
|
|
37
|
+
|
|
38
|
+
@Override
|
|
39
|
+
public void destroy() {
|
|
40
|
+
if (null != mongodbContainer && mongodbContainer.isRunning()) {
|
|
41
|
+
mongodbContainer.stop();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@Override
|
|
46
|
+
public void afterPropertiesSet() {
|
|
47
|
+
if (null == mongodbContainer) {
|
|
48
|
+
mongodbContainer = new MongoDBContainer("<%= DOCKER_MONGODB %>")
|
|
49
|
+
.withTmpFs(Collections.singletonMap("/testtmpfs", "rw"))
|
|
50
|
+
.withCommand(
|
|
51
|
+
"--nojournal --wiredTigerCacheSizeGB 0.25 --wiredTigerCollectionBlockCompressor none --slowOpSampleRate 0 --setParameter ttlMonitorEnabled=false --setParameter diagnosticDataCollectionEnabled=false --setParameter logicalSessionRefreshMillis=6000000 --setParameter enableFlowControl=false --setParameter oplogFetcherUsesExhaust=false --setParameter disableResumableRangeDeleter=true --setParameter enableShardedIndexConsistencyCheck=false --setParameter enableFinerGrainedCatalogCacheRefresh=false --setParameter readHedgingMode=off --setParameter loadRoutingTableOnStartup=false --setParameter rangeDeleterBatchDelayMS=2000000 --setParameter skipShardingConfigurationChecks=true --setParameter syncdelay=3600"
|
|
52
|
+
)
|
|
53
|
+
.withCreateContainerCmdModifier(cmd ->
|
|
54
|
+
cmd.getHostConfig().withMemory(memoryInBytes).withMemorySwap(memorySwapInBytes).withNanoCPUs(nanoCpu)
|
|
55
|
+
)
|
|
56
|
+
.withLogConsumer(new Slf4jLogConsumer(log))
|
|
57
|
+
.withReuse(true);
|
|
58
|
+
}
|
|
59
|
+
if (!mongodbContainer.isRunning()) {
|
|
60
|
+
mongodbContainer.start();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public MongoDBContainer getMongoDBContainer() {
|
|
65
|
+
return mongodbContainer;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
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.util.List;
|
|
22
|
+
|
|
23
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
24
|
+
import org.cassandraunit.CQLDataLoader;
|
|
25
|
+
<%_ } _%>
|
|
26
|
+
|
|
27
|
+
import org.slf4j.Logger;
|
|
28
|
+
import org.slf4j.LoggerFactory;
|
|
29
|
+
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
|
30
|
+
import org.springframework.beans.factory.support.DefaultSingletonBeanRegistry;
|
|
31
|
+
import org.springframework.core.annotation.AnnotatedElementUtils;
|
|
32
|
+
|
|
33
|
+
import org.springframework.test.context.ContextConfigurationAttributes;
|
|
34
|
+
import org.springframework.test.context.ContextCustomizer;
|
|
35
|
+
import org.springframework.test.context.ContextCustomizerFactory;
|
|
36
|
+
import org.springframework.boot.test.util.TestPropertyValues;
|
|
37
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
38
|
+
import org.testcontainers.containers.CassandraContainer;
|
|
39
|
+
<%_ } _%>
|
|
40
|
+
<%_ if (messageBrokerKafka) { _%>
|
|
41
|
+
import org.testcontainers.containers.KafkaContainer;
|
|
42
|
+
<%_ } _%>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
public class TestContainersSpringContextCustomizerFactory implements ContextCustomizerFactory {
|
|
46
|
+
|
|
47
|
+
private Logger log = LoggerFactory.getLogger(TestContainersSpringContextCustomizerFactory.class);
|
|
48
|
+
<%_ if (messageBrokerKafka) { _%>
|
|
49
|
+
private static KafkaTestContainer kafkaBean;
|
|
50
|
+
<%_ } _%>
|
|
51
|
+
<%_ if (databaseTypeMongodb) { _%>
|
|
52
|
+
private static MongoDbTestContainer mongoDbBean;
|
|
53
|
+
<%_ } _%>
|
|
54
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
55
|
+
private static CassandraTestContainer cassandraBean;
|
|
56
|
+
<%_ } _%>
|
|
57
|
+
|
|
58
|
+
@Override
|
|
59
|
+
public ContextCustomizer createContextCustomizer(Class<?> testClass, List<ContextConfigurationAttributes> configAttributes) {
|
|
60
|
+
|
|
61
|
+
return (context, mergedConfig) -> {
|
|
62
|
+
ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
|
|
63
|
+
TestPropertyValues testValues = TestPropertyValues.empty();
|
|
64
|
+
<%_ if (databaseTypeMongodb) { _%>
|
|
65
|
+
EmbeddedMongo mongoAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedMongo.class);
|
|
66
|
+
if (null != mongoAnnotation) {
|
|
67
|
+
log.debug("detected the EmbeddedMongo annotation on class {}", testClass.getName());
|
|
68
|
+
if (mongoDbBean == null) {
|
|
69
|
+
log.info("Warming up the mongo database");
|
|
70
|
+
mongoDbBean = new MongoDbTestContainer();
|
|
71
|
+
beanFactory.initializeBean(mongoDbBean, MongoDbTestContainer.class.getName().toLowerCase());
|
|
72
|
+
beanFactory.registerSingleton(MongoDbTestContainer.class.getName().toLowerCase(), mongoDbBean);
|
|
73
|
+
((DefaultSingletonBeanRegistry)beanFactory).registerDisposableBean(MongoDbTestContainer.class.getName().toLowerCase(), mongoDbBean);
|
|
74
|
+
}
|
|
75
|
+
testValues = testValues.and("spring.data.mongodb.uri=" + mongoDbBean.getMongoDBContainer().getReplicaSetUrl());
|
|
76
|
+
}
|
|
77
|
+
<%_ } _%>
|
|
78
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
79
|
+
EmbeddedCassandra cassandraAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedCassandra.class);
|
|
80
|
+
if (null != cassandraAnnotation) {
|
|
81
|
+
log.debug("detected the EmbeddedCassandra annotation on class {}", testClass.getName());
|
|
82
|
+
if (cassandraBean == null) {
|
|
83
|
+
log.info("Warming up the cassandra database");
|
|
84
|
+
cassandraBean = new CassandraTestContainer();
|
|
85
|
+
beanFactory.initializeBean(cassandraBean, CassandraTestContainer.class.getName().toLowerCase());
|
|
86
|
+
beanFactory.registerSingleton(CassandraTestContainer.class.getName().toLowerCase(), cassandraBean);
|
|
87
|
+
((DefaultSingletonBeanRegistry)beanFactory).registerDisposableBean(CassandraTestContainer.class.getName().toLowerCase(), cassandraBean);
|
|
88
|
+
}
|
|
89
|
+
testValues = testValues.and("spring.data.cassandra.port=" + cassandraBean.getCassandraContainer().getMappedPort(CassandraContainer.CQL_PORT))
|
|
90
|
+
.and("spring.data.cassandra.contact-points=" + cassandraBean.getCassandraContainer().getHost())
|
|
91
|
+
.and("spring.data.cassandra.keyspace-name=" + CQLDataLoader.DEFAULT_KEYSPACE_NAME)
|
|
92
|
+
.and("spring.data.cassandra.local-datacenter=" + cassandraBean.getCassandraContainer().getCluster().getMetadata().getAllHosts().iterator().next().getDatacenter())
|
|
93
|
+
.and("spring.data.cassandra.cluster-name=" + cassandraBean.getCassandraContainer().getCluster().getMetadata().getClusterName());
|
|
94
|
+
}
|
|
95
|
+
<%_ } _%>
|
|
96
|
+
|
|
97
|
+
<%_ if (messageBrokerKafka) { _%>
|
|
98
|
+
EmbeddedKafka kafkaAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedKafka.class);
|
|
99
|
+
if (null != kafkaAnnotation) {
|
|
100
|
+
log.debug("detected the EmbeddedKafka annotation on class {}", testClass.getName());
|
|
101
|
+
if (kafkaBean == null) {
|
|
102
|
+
log.info("Warming up the kafka broker");
|
|
103
|
+
kafkaBean = new KafkaTestContainer();
|
|
104
|
+
beanFactory.initializeBean(kafkaBean, KafkaTestContainer.class.getName().toLowerCase());
|
|
105
|
+
beanFactory.registerSingleton(KafkaTestContainer.class.getName().toLowerCase(), kafkaBean);
|
|
106
|
+
((DefaultSingletonBeanRegistry)beanFactory).registerDisposableBean(KafkaTestContainer.class.getName().toLowerCase(), kafkaBean);
|
|
107
|
+
}
|
|
108
|
+
testValues = testValues.and("spring.cloud.stream.kafka.binder.brokers=" + kafkaBean.getKafkaContainer().getHost() + ':' + kafkaBean.getKafkaContainer().getMappedPort(KafkaContainer.KAFKA_PORT));
|
|
109
|
+
}
|
|
110
|
+
<%_ } _%>
|
|
111
|
+
testValues.applyTo(context);
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -18,18 +18,11 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.cucumber;
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
import <%= packageName %>.AbstractCassandraTest;
|
|
23
|
-
<%_ } _%>
|
|
24
|
-
<%_ if (databaseTypeNeo4j) { _%>
|
|
25
|
-
import <%= packageName %>.AbstractNeo4jIT;
|
|
26
|
-
<%_ } _%>
|
|
21
|
+
import <%= packageName %>.IntegrationTest;
|
|
27
22
|
import io.cucumber.junit.platform.engine.Cucumber;
|
|
28
23
|
|
|
29
24
|
@Cucumber
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<%_ } _%>
|
|
33
|
-
class CucumberIT <% if (databaseTypeCassandra) { %>extends AbstractCassandraTest<% } %> {
|
|
25
|
+
@IntegrationTest
|
|
26
|
+
class CucumberIT {
|
|
34
27
|
|
|
35
28
|
}
|
package/generators/server/templates/src/test/java/package/cucumber/stepdefs/StepDefs.java.ejs
CHANGED
|
@@ -18,10 +18,18 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.cucumber.stepdefs;
|
|
20
20
|
|
|
21
|
+
<%_ if (reactive) { _%>
|
|
22
|
+
import org.springframework.test.web.reactive.server.WebTestClient;
|
|
23
|
+
<%_ } else { _%>
|
|
21
24
|
import org.springframework.test.web.servlet.ResultActions;
|
|
25
|
+
<%_ } _%>
|
|
22
26
|
|
|
23
27
|
public abstract class StepDefs {
|
|
24
28
|
|
|
29
|
+
<%_ if (reactive) { _%>
|
|
30
|
+
protected WebTestClient.ResponseSpec actions;
|
|
31
|
+
<%_ } else { _%>
|
|
25
32
|
protected ResultActions actions;
|
|
33
|
+
<%_ } _%>
|
|
26
34
|
|
|
27
35
|
}
|
package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs
CHANGED
|
@@ -40,6 +40,7 @@ import <%= packageName %>.security.AuthoritiesConstants;
|
|
|
40
40
|
|
|
41
41
|
<%_ if (reactive) { _%>
|
|
42
42
|
import org.springframework.test.web.reactive.server.WebTestClient;
|
|
43
|
+
import static org.hamcrest.Matchers.is;
|
|
43
44
|
<%_ } else { _%>
|
|
44
45
|
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
|
45
46
|
import org.springframework.test.web.servlet.MockMvc;
|
|
@@ -72,29 +73,42 @@ public class UserStepDefs extends StepDefs {
|
|
|
72
73
|
SecurityContext context = SecurityContextHolder.createEmptyContext();
|
|
73
74
|
context.setAuthentication(authentication);
|
|
74
75
|
SecurityContextHolder.setContext(context);
|
|
76
|
+
<%_ if (reactive) { _%>
|
|
77
|
+
this.userResourceMock = WebTestClient.bindToController(userResource).build();
|
|
78
|
+
<%_ } else { _%>
|
|
75
79
|
this.userResourceMock = MockMvcBuilders.standaloneSetup(userResource).build();
|
|
80
|
+
<%_ } _%>
|
|
76
81
|
}
|
|
77
82
|
|
|
78
83
|
@When("I search user {string}")
|
|
79
84
|
public void i_search_user(String userId) throws Throwable {
|
|
80
85
|
<%_ if (reactive) { _%>
|
|
81
|
-
actions = userResourceMock.get().uri("/api/admin/users/" + userId)
|
|
86
|
+
actions = userResourceMock.get().uri("/api/admin/users/" + userId).accept(MediaType.APPLICATION_JSON).exchange();
|
|
82
87
|
<%_ } else { _%>
|
|
83
|
-
actions = userResourceMock.perform(get("/api/admin/users/" + userId)
|
|
88
|
+
actions = userResourceMock.perform(get("/api/admin/users/" + userId).accept(MediaType.APPLICATION_JSON));
|
|
84
89
|
<%_ } _%>
|
|
85
|
-
.accept(MediaType.APPLICATION_JSON)<% if (!reactive) { %>)<%_ } _%>;
|
|
86
90
|
}
|
|
87
91
|
|
|
88
92
|
@Then("the user is found")
|
|
89
93
|
public void the_user_is_found() throws Throwable {
|
|
94
|
+
<%_ if (reactive) { _%>
|
|
95
|
+
actions
|
|
96
|
+
.expectStatus().isOk()
|
|
97
|
+
.expectHeader().contentTypeCompatibleWith(MediaType.APPLICATION_JSON_VALUE);
|
|
98
|
+
<%_ } else { _%>
|
|
90
99
|
actions
|
|
91
100
|
.andExpect(status().isOk())
|
|
92
101
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON_VALUE));
|
|
102
|
+
<%_ } _%>
|
|
93
103
|
}
|
|
94
104
|
|
|
95
105
|
@Then("his last name is {string}")
|
|
96
106
|
public void his_last_name_is(String lastName) throws Throwable {
|
|
107
|
+
<%_ if (reactive) { _%>
|
|
108
|
+
actions.expectBody().jsonPath("$.lastName").value(is(lastName));
|
|
109
|
+
<%_ } else { _%>
|
|
97
110
|
actions.andExpect(jsonPath("$.lastName").value(lastName));
|
|
111
|
+
<%_ } _%>
|
|
98
112
|
}
|
|
99
113
|
|
|
100
114
|
}
|
|
@@ -18,9 +18,6 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.security;
|
|
20
20
|
|
|
21
|
-
<%_ if (databaseTypeCassandra) { _%>
|
|
22
|
-
import <%= packageName %>.AbstractCassandraTest;
|
|
23
|
-
<%_ } _%>
|
|
24
21
|
import <%= packageName %>.IntegrationTest;
|
|
25
22
|
<%_ if (databaseTypeSql && reactive) { _%>
|
|
26
23
|
import <%= packageName %>.config.Constants;
|
|
@@ -64,7 +61,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
|
|
64
61
|
@WithMockUser("test-user-one")
|
|
65
62
|
<%_ } _%>
|
|
66
63
|
@IntegrationTest
|
|
67
|
-
class DomainUserDetailsServiceIT
|
|
64
|
+
class DomainUserDetailsServiceIT {
|
|
68
65
|
|
|
69
66
|
private static final String USER_ONE_LOGIN = "test-user-one";
|
|
70
67
|
private static final String USER_ONE_EMAIL = "test-user-one@localhost";
|
package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs
CHANGED
|
@@ -93,7 +93,7 @@ class JWTFilterTest {
|
|
|
93
93
|
MockServerWebExchange exchange = MockServerWebExchange.from(request);
|
|
94
94
|
jwtFilter.filter(
|
|
95
95
|
exchange,
|
|
96
|
-
it -> Mono.
|
|
96
|
+
it -> Mono.deferContextual(Mono::just)
|
|
97
97
|
.flatMap(c -> ReactiveSecurityContextHolder.getContext())
|
|
98
98
|
.map(SecurityContext::getAuthentication)
|
|
99
99
|
.doOnSuccess(auth -> assertThat(auth.getName()).isEqualTo("test-user"))
|
|
@@ -123,7 +123,7 @@ class JWTFilterTest {
|
|
|
123
123
|
MockServerWebExchange exchange = MockServerWebExchange.from(request);
|
|
124
124
|
jwtFilter.filter(
|
|
125
125
|
exchange,
|
|
126
|
-
it -> Mono.
|
|
126
|
+
it -> Mono.deferContextual(Mono::just)
|
|
127
127
|
.flatMap(c -> ReactiveSecurityContextHolder.getContext())
|
|
128
128
|
.map(SecurityContext::getAuthentication)
|
|
129
129
|
.doOnSuccess(auth -> assertThat(auth).isNull())
|
|
@@ -149,7 +149,7 @@ class JWTFilterTest {
|
|
|
149
149
|
MockServerWebExchange exchange = MockServerWebExchange.from(request);
|
|
150
150
|
jwtFilter.filter(
|
|
151
151
|
exchange,
|
|
152
|
-
it -> Mono.
|
|
152
|
+
it -> Mono.deferContextual(Mono::just)
|
|
153
153
|
.flatMap(c -> ReactiveSecurityContextHolder.getContext())
|
|
154
154
|
.map(SecurityContext::getAuthentication)
|
|
155
155
|
.doOnSuccess(auth -> assertThat(auth).isNull())
|
|
@@ -175,7 +175,7 @@ class JWTFilterTest {
|
|
|
175
175
|
MockServerWebExchange exchange = MockServerWebExchange.from(request);
|
|
176
176
|
jwtFilter.filter(
|
|
177
177
|
exchange,
|
|
178
|
-
it -> Mono.
|
|
178
|
+
it -> Mono.deferContextual(Mono::just)
|
|
179
179
|
.flatMap(c -> ReactiveSecurityContextHolder.getContext())
|
|
180
180
|
.map(SecurityContext::getAuthentication)
|
|
181
181
|
.doOnSuccess(auth -> assertThat(auth).isNull())
|
|
@@ -208,7 +208,7 @@ class JWTFilterTest {
|
|
|
208
208
|
MockServerWebExchange exchange = MockServerWebExchange.from(request);
|
|
209
209
|
jwtFilter.filter(
|
|
210
210
|
exchange,
|
|
211
|
-
it -> Mono.
|
|
211
|
+
it -> Mono.deferContextual(Mono::just)
|
|
212
212
|
.flatMap(c -> ReactiveSecurityContextHolder.getContext())
|
|
213
213
|
.map(SecurityContext::getAuthentication)
|
|
214
214
|
.doOnSuccess(auth -> assertThat(auth).isNull())
|
|
@@ -19,8 +19,6 @@
|
|
|
19
19
|
package <%= packageName %>.service;
|
|
20
20
|
|
|
21
21
|
import <%= packageName %>.config.Constants;
|
|
22
|
-
<% if (databaseTypeCassandra) { %>
|
|
23
|
-
import <%= packageName %>.AbstractCassandraTest;<% } %>
|
|
24
22
|
import <%= packageName %>.IntegrationTest;
|
|
25
23
|
import <%= packageName %>.domain.<%= asEntity('User') %>;
|
|
26
24
|
import tech.jhipster.config.JHipsterProperties;
|
|
@@ -59,7 +57,7 @@ import static org.mockito.Mockito.*;
|
|
|
59
57
|
* Integration tests for {@link MailService}.
|
|
60
58
|
*/
|
|
61
59
|
@IntegrationTest
|
|
62
|
-
class MailServiceIT
|
|
60
|
+
class MailServiceIT {
|
|
63
61
|
|
|
64
62
|
private static final String[] languages = {
|
|
65
63
|
// jhipster-needle-i18n-language-constant - JHipster will add/remove languages in this array
|
|
@@ -154,9 +152,9 @@ class MailServiceIT <% if (databaseTypeCassandra) { %>extends AbstractCassandraT
|
|
|
154
152
|
@Test
|
|
155
153
|
void testSendEmailFromTemplate() throws Exception {
|
|
156
154
|
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
155
|
+
user.setLangKey(Constants.DEFAULT_LANGUAGE);
|
|
157
156
|
user.setLogin("john");
|
|
158
157
|
user.setEmail("john.doe@example.com");
|
|
159
|
-
user.setLangKey("en");
|
|
160
158
|
mailService.sendEmailFromTemplate(user, "mail/testEmail", "email.test.title");
|
|
161
159
|
verify(javaMailSender).send(messageCaptor.capture());
|
|
162
160
|
MimeMessage message = messageCaptor.getValue();
|
|
@@ -18,9 +18,6 @@
|
|
|
18
18
|
-%>
|
|
19
19
|
package <%= packageName %>.service;
|
|
20
20
|
|
|
21
|
-
<%_ if (databaseTypeCassandra) { _%>
|
|
22
|
-
import <%= packageName %>.AbstractCassandraTest;
|
|
23
|
-
<%_ } _%>
|
|
24
21
|
import <%= packageName %>.IntegrationTest;
|
|
25
22
|
import <%= packageName %>.config.Constants;
|
|
26
23
|
<%_ if ((databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) && authenticationTypeSession && !reactive) { _%>
|
|
@@ -135,7 +132,7 @@ import static org.mockito.Mockito.when;
|
|
|
135
132
|
<%_ if (databaseTypeSql && !reactive) { _%>
|
|
136
133
|
@Transactional
|
|
137
134
|
<%_ } _%>
|
|
138
|
-
class UserServiceIT
|
|
135
|
+
class UserServiceIT {
|
|
139
136
|
|
|
140
137
|
private static final String DEFAULT_LOGIN = "johndoe";
|
|
141
138
|
|
package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs
CHANGED
|
@@ -44,7 +44,7 @@ class UserMapperTest {
|
|
|
44
44
|
|
|
45
45
|
private static final String DEFAULT_LOGIN = "johndoe";
|
|
46
46
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
47
|
-
private static final String DEFAULT_ID =
|
|
47
|
+
private static final String DEFAULT_ID = DEFAULT_LOGIN;
|
|
48
48
|
<%_ } else { _%>
|
|
49
49
|
private static final <%= user.primaryKey.type %> DEFAULT_ID = <%- getPrimaryKeyValue(user.primaryKey.type) %>;
|
|
50
50
|
<%_ } _%>
|