generator-jhipster 7.6.0 → 7.7.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 +1 -3
- 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 +1 -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/prompts.js +1 -1
- package/generators/ci-cd/templates/github-actions.yml.ejs +2 -2
- package/generators/client/esm.mjs +5 -3
- package/generators/client/files-angular.js +9 -0
- package/generators/client/files-common.js +8 -7
- package/generators/client/files-vue.js +7 -6
- package/generators/client/index.js +2 -1
- package/generators/client/templates/angular/angular.json.ejs +1 -1
- package/generators/client/templates/angular/package.json +25 -22
- package/generators/client/templates/angular/package.json.ejs +5 -1
- 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/update/user-management-update.component.html.ejs +11 -11
- 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 +19 -0
- package/generators/client/templates/common/package.json +2 -2
- package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +1 -7
- package/generators/client/templates/react/package.json +33 -33
- package/generators/client/templates/vue/package.json +23 -23
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +3 -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/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 +3 -3
- 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/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 +11 -15
- package/generators/entity/prompts.js +4 -1
- package/generators/entity-client/esm.mjs +2 -3
- 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/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 +2 -2
- package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +1 -1
- 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 +1 -1
- 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-server/esm.mjs +2 -3
- package/generators/entity-server/files-couchbase.js +23 -2
- package/generators/entity-server/files.js +16 -2
- package/generators/entity-server/index.js +8 -1
- 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 +23 -59
- 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/src/main/java/package/common/get_all_template.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/common/inject_template.ejs +4 -4
- package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +3 -3
- 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 +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +31 -18
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +3 -3
- 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 +90 -0
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +2 -2
- package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +1 -1
- package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +3 -5
- package/generators/entity-server/templates/src/main/java/package/repository/search/{SortToFieldSortBuilderConverter.java.ejs → SortToSortBuilderListConverter.java.ejs} +4 -3
- 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 +1 -1
- package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +6 -6
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +1 -1
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +5 -5
- 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.js +128 -23
- package/generators/generator-constants.js +18 -16
- package/generators/generator-list.js +2 -0
- 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/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/esm.mjs +2 -2
- package/generators/server/files-couchbase.js +28 -31
- package/generators/server/files.js +14 -1
- package/generators/server/index.js +13 -13
- package/generators/server/needle-api/needle-server-maven.js +1 -1
- 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 +43 -64
- 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/gradle/profile_prod.gradle.ejs +4 -0
- package/generators/server/templates/gradle.properties.ejs +6 -6
- package/generators/server/templates/npmw +14 -5
- package/generators/server/templates/pom.xml.ejs +47 -42
- package/generators/server/templates/src/main/docker/app.yml.ejs +4 -2
- package/generators/server/templates/src/main/docker/zipkin.yml.ejs +25 -0
- package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +26 -16
- 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_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/UserRepository.java.ejs +48 -72
- 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/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 +2 -0
- package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +3 -1
- package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +21 -15
- package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +2 -0
- 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/SecurityUtilsUnitTest_reactive.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
- 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 +13 -6
- 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/UserResourceIT.java.ejs +40 -42
- package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -1
- 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/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 +27 -23
- package/utils/entity.js +19 -2
- package/utils/faker.js +3 -3
- package/utils/field.js +61 -49
- package/utils/relationship.js +5 -3
- 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/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/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/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/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/main/java/package/repository/UserRepository.java.ejs
CHANGED
|
@@ -62,10 +62,7 @@ import org.apache.commons.beanutils.BeanComparator;
|
|
|
62
62
|
import org.springframework.cache.annotation.Cacheable;
|
|
63
63
|
<%_ } _%>
|
|
64
64
|
<%_ if (databaseTypeSql || databaseTypeCouchbase || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
65
|
-
|
|
66
|
-
import org.springframework.data.domain.Page;
|
|
67
|
-
<%_ } _%>
|
|
68
|
-
import org.springframework.data.domain.Pageable;
|
|
65
|
+
import org.springframework.data.domain.*;
|
|
69
66
|
<%_ } _%>
|
|
70
67
|
<%_ if (databaseTypeSql) { _%>
|
|
71
68
|
<%_ if (reactive) { _%>
|
|
@@ -93,12 +90,7 @@ import org.springframework.data.mongodb.repository.<% if (reactive) { %>Reactive
|
|
|
93
90
|
import org.springframework.data.neo4j.repository.<% if (reactive) { %>Reactive<% } %>Neo4jRepository;
|
|
94
91
|
<%_ } _%>
|
|
95
92
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
96
|
-
import com.couchbase.client.java.query.QueryScanConsistency;
|
|
97
93
|
import org.springframework.data.couchbase.repository.Query;
|
|
98
|
-
import org.springframework.data.couchbase.repository.ScanConsistency;
|
|
99
|
-
<%_ if (!reactive) { _%>
|
|
100
|
-
import org.springframework.data.domain.PageImpl;
|
|
101
|
-
<%_ } _%>
|
|
102
94
|
<%_ } _%>
|
|
103
95
|
<%_ if (reactive && databaseTypeCassandra) { _%>
|
|
104
96
|
import org.springframework.data.cassandra.ReactiveResultSet;
|
|
@@ -157,13 +149,6 @@ import java.util.UUID;
|
|
|
157
149
|
<%_ if (!databaseTypeCassandra && !(databaseTypeSql && reactive) && !authenticationTypeOauth2) { _%>
|
|
158
150
|
import java.time.Instant;
|
|
159
151
|
<%_ } _%>
|
|
160
|
-
<% if (databaseTypeCouchbase) { %>
|
|
161
|
-
import static <%= packageName %>.config.Constants.ID_DELIMITER;
|
|
162
|
-
<% } %>
|
|
163
|
-
<%_ if (searchEngineCouchbase) { _%>
|
|
164
|
-
import static <%= packageName %>.repository.JHipsterCouchbaseRepository.pageableStatement;
|
|
165
|
-
import static <%= packageName %>.repository.JHipsterCouchbaseRepository.searchQuery;
|
|
166
|
-
<%_ } _%>
|
|
167
152
|
/**
|
|
168
153
|
* Spring Data <% if (databaseTypeSql && !reactive) { %>JPA<% } else if (databaseTypeSql && reactive) { %>R2DBC<% } else if (databaseTypeMongodb) { %>MongoDB<% } else if (databaseTypeCouchbase) { %>Couchbase<% } else if (databaseTypeCassandra) { %>Cassandra<% } else if (databaseTypeNeo4j) { %>Neo4j<% } %> repository for the {@link <%= asEntity('User') %>} entity.
|
|
169
154
|
*/
|
|
@@ -174,37 +159,45 @@ import static <%= packageName %>.repository.JHipsterCouchbaseRepository.searchQu
|
|
|
174
159
|
_%>
|
|
175
160
|
<%_ if ((databaseTypeSql && !reactive) || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%>
|
|
176
161
|
@Repository
|
|
177
|
-
public interface UserRepository extends <% if (databaseTypeSql) { %>JpaRepository<<%= asEntity('User') %>, <%= user.primaryKey.type %>><% } %><% if (reactive && !databaseTypeCouchbase) { %>Reactive<% } %><% if (databaseTypeMongodb) { %>MongoRepository<<%= asEntity('User') %>, String><% } %><% if (databaseTypeNeo4j) { %>Neo4jRepository<<%= asEntity('User') %>, String><% } %><% if (databaseTypeCouchbase) { %>JHipsterCouchbaseRepository<<%= asEntity('User') %>, String><% } %> {
|
|
162
|
+
public interface UserRepository extends <% if (databaseTypeSql) { %>JpaRepository<<%= asEntity('User') %>, <%= user.primaryKey.type %>><% } %><% if (reactive && !databaseTypeCouchbase) { %>Reactive<% } %><% if (databaseTypeMongodb) { %>MongoRepository<<%= asEntity('User') %>, String><% } %><% if (databaseTypeNeo4j) { %>Neo4jRepository<<%= asEntity('User') %>, String><% } %><% if (databaseTypeCouchbase) { %>JHipsterCouchbaseRepository<<%= asEntity('User') %>, String><% } %><% if (searchEngineCouchbase) { %>, CouchbaseSearchRepository<<%= asEntity('User') %>, String><% } %> {
|
|
178
163
|
<%_ if (cacheManagerIsAvailable) { _%>
|
|
179
164
|
|
|
180
165
|
String USERS_BY_LOGIN_CACHE = "usersByLogin";
|
|
181
166
|
|
|
182
167
|
String USERS_BY_EMAIL_CACHE = "usersByEmail";
|
|
183
168
|
<%_ } _%>
|
|
184
|
-
<%_ if (databaseTypeCouchbase) { _%>
|
|
185
|
-
// @ScanConsistency is to fix index issues with Spring Data Couchbase
|
|
186
|
-
// https://github.com/spring-projects/spring-data-couchbase/issues/897
|
|
187
|
-
<%_ } _%>
|
|
188
169
|
<%_ if (!authenticationTypeOauth2) { _%>
|
|
170
|
+
<% if (databaseTypeCouchbase) { %>default <% } %><%= optionalOrMono %><<%= asEntity('User') %>> findOneByActivationKey(String activationKey)<% if (!databaseTypeCouchbase) { %>;<% } else { %> {
|
|
171
|
+
return findIdByActivationKey(activationKey)
|
|
172
|
+
.map(User::getId)
|
|
173
|
+
.flatMap(this::findById);
|
|
174
|
+
}
|
|
189
175
|
|
|
190
|
-
|
|
191
|
-
|
|
176
|
+
@Query(FIND_IDS_QUERY + " AND activationKey = $1")
|
|
177
|
+
<%= optionalOrMono %><User> findIdByActivationKey(String activationKey);
|
|
192
178
|
<%_ } _%>
|
|
193
|
-
<%= optionalOrMono %><<%= asEntity('User') %>> findOneByActivationKey(String activationKey);
|
|
194
179
|
<%_ } _%>
|
|
195
180
|
<%_ if (!authenticationTypeOauth2) { _%>
|
|
196
181
|
|
|
197
|
-
<%
|
|
198
|
-
|
|
182
|
+
<% if (databaseTypeCouchbase) { %>default <% } %><%= listOrFlux %><<%= asEntity('User') %>> findAllByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(Instant dateTime)<% if (!databaseTypeCouchbase) { %>;<% } else { %> {
|
|
183
|
+
return findAllById(toIds(findAllIdsByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(dateTime)));
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
@Query(FIND_IDS_QUERY + " AND activated = false AND activationKey IS NOT NULL AND createdDate < $1")
|
|
187
|
+
<%= listOrFlux %><User> findAllIdsByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(Instant dateTime);
|
|
199
188
|
<%_ } _%>
|
|
200
|
-
<%= listOrFlux %><<%= asEntity('User') %>> findAllByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(Instant dateTime);
|
|
201
189
|
<%_ } _%>
|
|
202
190
|
|
|
203
191
|
<%_ if (!authenticationTypeOauth2) { _%>
|
|
204
|
-
<%
|
|
205
|
-
|
|
192
|
+
<% if (databaseTypeCouchbase) { %>default <% } %><%= optionalOrMono %><<%= asEntity('User') %>> findOneByResetKey(String resetKey)<% if (!databaseTypeCouchbase) { %>;<% } else { %> {
|
|
193
|
+
return findIdByResetKey(resetKey)
|
|
194
|
+
.map(User::getId)
|
|
195
|
+
.flatMap(this::findById);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
@Query(FIND_IDS_QUERY + " AND resetKey = $1")
|
|
199
|
+
<%= optionalOrMono %><User> findIdByResetKey(String resetKey);
|
|
206
200
|
<%_ } _%>
|
|
207
|
-
<%= optionalOrMono %><<%= asEntity('User') %>> findOneByResetKey(String resetKey);
|
|
208
201
|
<%_ } _%>
|
|
209
202
|
|
|
210
203
|
<%_ if (!authenticationTypeOauth2) { _%>
|
|
@@ -213,20 +206,23 @@ public interface UserRepository extends <% if (databaseTypeSql) { %>JpaRepositor
|
|
|
213
206
|
@Cacheable(cacheNames = USERS_BY_EMAIL_CACHE)
|
|
214
207
|
<%_ } _%>
|
|
215
208
|
<%_ } _%>
|
|
216
|
-
<%
|
|
217
|
-
|
|
218
|
-
|
|
209
|
+
<% if (databaseTypeCouchbase) { %>default <% } %><%= optionalOrMono %><<%= asEntity('User') %>> findOneByEmailIgnoreCase(String email)<% if (!databaseTypeCouchbase) { %>;<% } else { %> {
|
|
210
|
+
return findIdByEmailIgnoreCase(email)
|
|
211
|
+
.map(User::getId)
|
|
212
|
+
.flatMap(this::findById);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
@Query(FIND_IDS_QUERY + " AND LOWER(email) = LOWER($1)")
|
|
216
|
+
<%= optionalOrMono %><User> findIdByEmailIgnoreCase(String email);
|
|
219
217
|
<%_ } _%>
|
|
220
|
-
<%= optionalOrMono %><<%= asEntity('User') %>> findOneByEmailIgnoreCase(String email);
|
|
221
218
|
|
|
222
219
|
<%_ } _%>
|
|
223
220
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
224
221
|
<%_ if (cacheManagerIsAvailable) { _%>
|
|
225
222
|
@Cacheable(cacheNames = USERS_BY_LOGIN_CACHE)
|
|
226
223
|
<%_ } _%>
|
|
227
|
-
@ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
|
|
228
224
|
default <%= optionalOrMono %><<%= asEntity('User') %>> findOneByLogin(String login) {
|
|
229
|
-
return findById(
|
|
225
|
+
return findById(login);
|
|
230
226
|
}
|
|
231
227
|
<%_ } else if (databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
232
228
|
<%_ if (cacheManagerIsAvailable) { _%>
|
|
@@ -260,55 +256,35 @@ public interface UserRepository extends <% if (databaseTypeSql) { %>JpaRepositor
|
|
|
260
256
|
<%_ } _%>
|
|
261
257
|
|
|
262
258
|
<% if (reactive) { %>
|
|
263
|
-
<%_ if (databaseTypeCouchbase) { _%>
|
|
264
|
-
@ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
|
|
265
|
-
<%_ } _%>
|
|
259
|
+
<%_ if (!databaseTypeCouchbase) { _%>
|
|
266
260
|
Flux<<%= asEntity('User') %>>findAllByIdNotNull(Pageable pageable);
|
|
267
|
-
|
|
268
|
-
<%_ if (databaseTypeCouchbase) { _%>
|
|
269
|
-
@ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
|
|
270
261
|
<%_ } _%>
|
|
271
|
-
Flux<<%= asEntity('User') %>>findAllBy<% if (!databaseTypeCouchbase) { %>IdNotNullAnd<% } %>ActivatedIsTrue(Pageable pageable);
|
|
272
262
|
|
|
273
263
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
274
|
-
|
|
264
|
+
default Flux<User> findAllByActivatedIsTrue(Pageable pageable) {
|
|
265
|
+
return findAllById(toIds(findAllIdsByActivatedIsTrue(pageable)));
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
@Query(FIND_IDS_QUERY + " AND activated = true")
|
|
269
|
+
Flux<User> findAllIdsByActivatedIsTrue(Pageable pageable);
|
|
270
|
+
<%_ } else { _%>
|
|
271
|
+
Flux<<%= asEntity('User') %>>findAllByIdNotNullAndActivatedIsTrue(Pageable pageable);
|
|
275
272
|
<%_ } _%>
|
|
273
|
+
|
|
276
274
|
Mono<Long> count();
|
|
277
275
|
<% } else { %>
|
|
278
276
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
279
|
-
default Page
|
|
280
|
-
|
|
277
|
+
default Page<User> findAllByActivatedIsTrue(Pageable pageable) {
|
|
278
|
+
Page<User> page = findAllIdsByActivatedIsTrue(pageable);
|
|
279
|
+
return new PageImpl<>(findAllById(toIds(page.getContent())), pageable, page.getTotalElements());
|
|
281
280
|
}
|
|
281
|
+
|
|
282
|
+
@Query(FIND_IDS_QUERY + " AND activated = true")
|
|
283
|
+
Page<User> findAllIdsByActivatedIsTrue(Pageable pageable);
|
|
282
284
|
<%_ } else { _%>
|
|
283
285
|
Page<<%= asEntity('User') %>> findAllByIdNotNullAndActivatedIsTrue(Pageable pageable);
|
|
284
286
|
<%_ } _%>
|
|
285
287
|
<% } %>
|
|
286
|
-
|
|
287
|
-
<%_ if (databaseTypeCouchbase && !reactive) { _%>
|
|
288
|
-
@Query("#{#n1ql.selectEntity} WHERE #{#n1ql.filter} AND activated = true #{[0]}")
|
|
289
|
-
@ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
|
|
290
|
-
List<<%= asEntity('User') %>> findAllByActivatedIsTrue(String pageableStatement);
|
|
291
|
-
|
|
292
|
-
@Query("SELECT COUNT(*) as count FROM #{#n1ql.bucket} WHERE #{#n1ql.filter} AND activated = true")
|
|
293
|
-
@ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
|
|
294
|
-
Long countAllByActivatedIsTrue();
|
|
295
|
-
<%_ } _%>
|
|
296
|
-
|
|
297
|
-
<%_ if (searchEngineCouchbase) { _%>
|
|
298
|
-
@Query("#{#n1ql.selectEntity} WHERE #{#n1ql.filter} AND SEARCH(#{n1ql.bucket}, #{[0]) #{[1]}")
|
|
299
|
-
<%= listOrFlux %><User> search(String queryString, String pageableStatement);
|
|
300
|
-
|
|
301
|
-
default <%= listOrFlux %><User> search(String queryString) {
|
|
302
|
-
return search(searchQuery(queryString).toString(), "");
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
default <%= pageOrFlux %><User> search(String queryString, Pageable pageable) {
|
|
306
|
-
return
|
|
307
|
-
<% if (!reactive) { %>new PageImpl<>(<% } %>
|
|
308
|
-
search(searchQuery(queryString).toString(), pageableStatement(pageable))
|
|
309
|
-
<% if (!reactive) { %>)<% } %>;
|
|
310
|
-
}
|
|
311
|
-
<%_ } _%>
|
|
312
288
|
}
|
|
313
289
|
<%_ } else if (databaseTypeSql && reactive) { _%>
|
|
314
290
|
@Repository
|
|
@@ -136,7 +136,7 @@ public class UserService {
|
|
|
136
136
|
private final CacheManager cacheManager;
|
|
137
137
|
<%_ } _%>
|
|
138
138
|
|
|
139
|
-
public UserService(UserRepository userRepository<% if (!authenticationTypeOauth2) { %>, PasswordEncoder passwordEncoder<% } %><% if (searchEngineElasticsearch) { %>, UserSearchRepository userSearchRepository<% } %><% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { %><% if (authenticationTypeSession
|
|
139
|
+
public UserService(UserRepository userRepository<% if (!authenticationTypeOauth2) { %>, PasswordEncoder passwordEncoder<% } %><% if (searchEngineElasticsearch) { %>, UserSearchRepository userSearchRepository<% } %><% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { %><% if (authenticationTypeSession && !reactive) { %>, PersistentTokenRepository persistentTokenRepository<% } %>, AuthorityRepository authorityRepository<% } %><% if (cacheManagerIsAvailable) { %>, CacheManager cacheManager<% } %>) {
|
|
140
140
|
this.userRepository = userRepository;
|
|
141
141
|
<%_ if (!authenticationTypeOauth2) { _%>
|
|
142
142
|
this.passwordEncoder = passwordEncoder;
|
|
@@ -145,7 +145,7 @@ public class UserService {
|
|
|
145
145
|
this.userSearchRepository = userSearchRepository;
|
|
146
146
|
<%_ } _%>
|
|
147
147
|
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%>
|
|
148
|
-
<%_ if (authenticationTypeSession
|
|
148
|
+
<%_ if (authenticationTypeSession && !reactive) { _%>
|
|
149
149
|
this.persistentTokenRepository = persistentTokenRepository;
|
|
150
150
|
<%_ } _%>
|
|
151
151
|
this.authorityRepository = authorityRepository;
|
|
@@ -402,8 +402,10 @@ public class UserService {
|
|
|
402
402
|
@Transactional
|
|
403
403
|
<%_ } _%>
|
|
404
404
|
public <% if (reactive) { %>Mono<<%= asEntity('User') %>><% } else { %><%= asEntity('User') %><% } %> createUser(<%= asDto('AdminUser') %> userDTO) {
|
|
405
|
-
<%= asEntity('User') %> user = new <%= asEntity('User') %>()
|
|
406
|
-
|
|
405
|
+
<%= asEntity('User') %> user = new <%= asEntity('User') %>();
|
|
406
|
+
<%_ if (databaseTypeCassandra) { _%>
|
|
407
|
+
user.setId(UUID.randomUUID().toString());
|
|
408
|
+
<%_ } _%>
|
|
407
409
|
user.setLogin(userDTO.getLogin().toLowerCase());
|
|
408
410
|
user.setFirstName(userDTO.getFirstName());
|
|
409
411
|
user.setLastName(userDTO.getLastName());
|
|
@@ -598,7 +600,7 @@ public class UserService {
|
|
|
598
600
|
});
|
|
599
601
|
}
|
|
600
602
|
<%_ } _%>
|
|
601
|
-
<%_ } /* authenticationType !== 'oauth2'*/
|
|
603
|
+
<%_ } /* authenticationType !== 'oauth2'*/ _%>
|
|
602
604
|
|
|
603
605
|
/**
|
|
604
606
|
* Update basic information (first name, last name, email, language) for the current user.
|
|
@@ -751,7 +753,7 @@ public class UserService {
|
|
|
751
753
|
<%_ } _%>
|
|
752
754
|
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%>
|
|
753
755
|
public <% if (reactive) { %>Flux<% } else { %>Page<% } %><<%= asDto('AdminUser') %>> getAllManagedUsers(Pageable pageable) {
|
|
754
|
-
return userRepository.findAll<% if (reactive) { %><% if (databaseTypeSql) { %>WithAuthorities<% } else { %>
|
|
756
|
+
return userRepository.findAll<% if (reactive) { %><% if (databaseTypeSql) { %>WithAuthorities<% } else { %>By<% if (!databaseTypeCouchbase) { %>IdNotNull<% }}} %>(pageable).map(<%= asDto('AdminUser') %>::new);
|
|
755
757
|
}
|
|
756
758
|
|
|
757
759
|
<%_ if (databaseTypeSql) { _%>
|
|
@@ -46,7 +46,6 @@ public class OAuth2ReactiveRefreshTokensWebFilter implements WebFilter {
|
|
|
46
46
|
.filter(principal -> principal instanceof OAuth2AuthenticationToken)
|
|
47
47
|
.cast(OAuth2AuthenticationToken.class)
|
|
48
48
|
.flatMap(authentication -> authorizedClient(exchange, authentication))
|
|
49
|
-
.onErrorResume(e -> Mono.empty())
|
|
50
49
|
.thenReturn(exchange)
|
|
51
50
|
.flatMap(chain::filter);
|
|
52
51
|
}
|
|
@@ -216,7 +216,7 @@ public class AccountResource {
|
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
|
-
<%_ } else {
|
|
219
|
+
<%_ } else { /* not oauth, not skipUserManagement */ _%>
|
|
220
220
|
<%_ if (authenticationTypeSession && !reactive) { _%>
|
|
221
221
|
import <%= packageName %>.domain.PersistentToken;
|
|
222
222
|
import <%= packageName %>.repository.PersistentTokenRepository;
|
package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs
CHANGED
|
@@ -194,10 +194,10 @@ public class PublicUserResource {
|
|
|
194
194
|
<%_ } _%>
|
|
195
195
|
<%_ } else { _%>
|
|
196
196
|
<%_ if (reactive) { _%>
|
|
197
|
-
return userRepository.search(
|
|
197
|
+
return userRepository.search(query).map(<%= asDto('User') %>::new).collectList();
|
|
198
198
|
<%_ } else { _%>
|
|
199
199
|
return StreamSupport
|
|
200
|
-
.stream(userRepository.search(
|
|
200
|
+
.stream(userRepository.search(query).spliterator(), false)
|
|
201
201
|
.map(<%= asDto('User') %>::new)
|
|
202
202
|
.collect(Collectors.toList());
|
|
203
203
|
<%_ } _%>
|
|
@@ -255,6 +255,11 @@ spring:
|
|
|
255
255
|
cache: false
|
|
256
256
|
<%_ if (serviceDiscoveryType || applicationTypeGateway || applicationTypeMicroservice) { _%>
|
|
257
257
|
sleuth:
|
|
258
|
+
# https://github.com/spring-projects/spring-framework/issues/27844#issuescomment-1002866885
|
|
259
|
+
# https://github.com/spring-cloud/spring-cloud-sleuth/issues/2094
|
|
260
|
+
async:
|
|
261
|
+
enabled: false
|
|
262
|
+
enabled: false
|
|
258
263
|
sampler:
|
|
259
264
|
probability: 1 # report 100% of traces
|
|
260
265
|
zipkin: # Use the "zipkin" Maven profile to have the Spring Cloud Zipkin dependencies
|
|
@@ -290,6 +295,7 @@ jhipster:
|
|
|
290
295
|
database:
|
|
291
296
|
couchbase:
|
|
292
297
|
bucket-name: <%= baseName %>
|
|
298
|
+
scope-name: <%= camelizedBaseName %>
|
|
293
299
|
<%_ } _%>
|
|
294
300
|
<%_ if (!cacheProviderNo) { _%>
|
|
295
301
|
cache: # Cache configuration
|
|
@@ -350,6 +356,8 @@ jhipster:
|
|
|
350
356
|
cors:
|
|
351
357
|
# Allow Ionic for JHipster by default (* no longer allowed in Spring Boot 2.4+)
|
|
352
358
|
allowed-origins: "http://localhost:8100,https://localhost:8100,http://localhost:9000,https://localhost:9000<%_ if (!skipClient) { _%>,http://localhost:<%= devServerPort %>,https://localhost:<%= devServerPort %><%_ if (applicationTypeGateway && microfrontend) { for ({applicationIndex, devServerPort: microserviceDevServerPort = devServerPort + applicationIndex} of Object.values(jhipsterConfig.applications || {})) { _%>,http://localhost:<%= microserviceDevServerPort %>,https://localhost:<%= microserviceDevServerPort %><%_ } } _%><%_ } _%>"
|
|
359
|
+
# Enable CORS when running in GitHub Codespaces
|
|
360
|
+
allowed-origin-patterns: 'https://*.githubpreview.dev'
|
|
353
361
|
allowed-methods: "*"
|
|
354
362
|
allowed-headers: "*"
|
|
355
363
|
<%_ if (authenticationTypeSession) { _%>
|
|
@@ -209,6 +209,11 @@ spring:
|
|
|
209
209
|
cache: true
|
|
210
210
|
<%_ if (serviceDiscoveryType || applicationTypeGateway || applicationTypeMicroservice) { _%>
|
|
211
211
|
sleuth:
|
|
212
|
+
# https://github.com/spring-projects/spring-framework/issues/27844#issuescomment-1002866885
|
|
213
|
+
# https://github.com/spring-cloud/spring-cloud-sleuth/issues/2094
|
|
214
|
+
async:
|
|
215
|
+
enabled: false
|
|
216
|
+
enabled: false
|
|
212
217
|
sampler:
|
|
213
218
|
probability: 1 # report 100% of traces
|
|
214
219
|
zipkin: # Use the "zipkin" Maven profile to have the Spring Cloud Zipkin dependencies
|
|
@@ -269,6 +274,7 @@ jhipster:
|
|
|
269
274
|
database:
|
|
270
275
|
couchbase:
|
|
271
276
|
bucket-name: <%= baseName %>
|
|
277
|
+
scope-name: <%= camelizedBaseName %>
|
|
272
278
|
<%_ } _%>
|
|
273
279
|
<%_ if (!cacheProviderNo) { _%>
|
|
274
280
|
cache: # Cache configuration
|
|
@@ -20,7 +20,8 @@ package <%= packageName %>;
|
|
|
20
20
|
|
|
21
21
|
import <%= packageName %>.<%= mainClass %>;
|
|
22
22
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
23
|
-
import
|
|
23
|
+
import org.springframework.test.context.ActiveProfiles;
|
|
24
|
+
import tech.jhipster.config.JHipsterConstants;
|
|
24
25
|
<%_ } _%>
|
|
25
26
|
<%_ if (databaseTypeNeo4j) { _%>
|
|
26
27
|
import <%= packageName %>.AbstractNeo4jIT;
|
|
@@ -63,6 +64,7 @@ import java.lang.annotation.Target;
|
|
|
63
64
|
<%_ } _%>
|
|
64
65
|
<%_ if (databaseTypeCouchbase) { _%>
|
|
65
66
|
@ExtendWith(CouchbaseTestContainerExtension.class)
|
|
67
|
+
@ActiveProfiles(JHipsterConstants.SPRING_PROFILE_TEST)
|
|
66
68
|
<%_ } _%>
|
|
67
69
|
<%_ if (databaseTypeMongodb) { _%>
|
|
68
70
|
@ExtendWith(MongoDbTestContainerExtension.class)
|
|
@@ -27,6 +27,11 @@ import static com.tngtech.archunit.base.DescribedPredicate.alwaysTrue;
|
|
|
27
27
|
import static com.tngtech.archunit.core.domain.JavaClass.Predicates.belongToAnyOf;
|
|
28
28
|
import static com.tngtech.archunit.library.Architectures.layeredArchitecture;
|
|
29
29
|
|
|
30
|
+
<%_
|
|
31
|
+
const hasClientLayer = !reactive && (applicationTypeMicroservice || applicationTypeGateway);
|
|
32
|
+
const hasDomainLayer = !databaseTypeNo;
|
|
33
|
+
const hasConstants = !skipUserManagement || databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j;
|
|
34
|
+
_%>
|
|
30
35
|
@AnalyzeClasses(packagesOf = <%= mainClass %>.class, importOptions = DoNotIncludeTests.class)
|
|
31
36
|
class TechnicalStructureTest {
|
|
32
37
|
|
|
@@ -34,36 +39,37 @@ class TechnicalStructureTest {
|
|
|
34
39
|
@ArchTest
|
|
35
40
|
static final ArchRule respectsTechnicalArchitectureLayers = layeredArchitecture()
|
|
36
41
|
.layer("Config").definedBy("..config..")
|
|
37
|
-
<%_ if (
|
|
42
|
+
<%_ if (hasClientLayer) { _%>
|
|
38
43
|
.layer("Client").definedBy("..client..")
|
|
39
44
|
<%_ } _%>
|
|
40
45
|
.layer("Web").definedBy("..web..")
|
|
41
|
-
|
|
42
|
-
.layer("Service").definedBy("..service..")
|
|
43
|
-
<%_ } _%>
|
|
46
|
+
.optionalLayer("Service").definedBy("..service..")
|
|
44
47
|
.layer("Security").definedBy("..security..")
|
|
45
|
-
<%_ if (
|
|
48
|
+
<%_ if (hasDomainLayer) { _%>
|
|
46
49
|
.layer("Persistence").definedBy("..repository..")
|
|
47
50
|
.layer("Domain").definedBy("..domain..")
|
|
48
51
|
<%_ } _%>
|
|
49
52
|
|
|
50
|
-
<%_ if (messageBrokerKafka) { _%>
|
|
51
|
-
.whereLayer("Config").mayOnlyBeAccessedByLayers("Web")
|
|
52
|
-
<%_ } else { _%>
|
|
53
53
|
.whereLayer("Config").mayNotBeAccessedByAnyLayer()
|
|
54
|
-
<%_
|
|
55
|
-
<%_ if (applicationTypeMicroservice) { _%>
|
|
54
|
+
<%_ if (hasClientLayer) { _%>
|
|
56
55
|
.whereLayer("Client").mayNotBeAccessedByAnyLayer()
|
|
57
56
|
<%_ } _%>
|
|
58
57
|
.whereLayer("Web").mayOnlyBeAccessedByLayers("Config")
|
|
59
|
-
<%_ if (!databaseTypeNo || authenticationTypeOauth2) { _%>
|
|
60
58
|
.whereLayer("Service").mayOnlyBeAccessedByLayers("Web", "Config")
|
|
61
|
-
<%
|
|
62
|
-
|
|
63
|
-
<%_ if (!databaseTypeNo) { _%>
|
|
59
|
+
.whereLayer("Security").mayOnlyBeAccessedByLayers("Config", <% if (hasClientLayer) { %>"Client", <% } %>"Service", "Web")
|
|
60
|
+
<%_ if (hasDomainLayer) { _%>
|
|
64
61
|
.whereLayer("Persistence").mayOnlyBeAccessedByLayers("Service", "Security", "Web", "Config")
|
|
65
62
|
.whereLayer("Domain").mayOnlyBeAccessedByLayers("Persistence", "Service", "Security", "Web", "Config")
|
|
66
63
|
<%_ } _%>
|
|
67
64
|
|
|
68
|
-
.ignoreDependency(belongToAnyOf(<%= mainClass %>.class), alwaysTrue())
|
|
65
|
+
.ignoreDependency(belongToAnyOf(<%= mainClass %>.class), alwaysTrue())
|
|
66
|
+
.ignoreDependency(alwaysTrue(), belongToAnyOf(
|
|
67
|
+
<%_ if (hasConstants) { _%>
|
|
68
|
+
<%= packageName %>.config.Constants.class,
|
|
69
|
+
<%_ } _%>
|
|
70
|
+
<%_ if (messageBrokerKafka) { _%>
|
|
71
|
+
<%= packageName %>.config.KafkaProperties.class,
|
|
72
|
+
<%_ } _%>
|
|
73
|
+
<%= packageName %>.config.ApplicationProperties.class
|
|
74
|
+
));
|
|
69
75
|
}
|
|
@@ -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
|
|
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
|
}
|
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
|
<%_ } _%>
|
package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs
CHANGED
|
@@ -20,8 +20,6 @@ package <%= packageName %>.web.rest;
|
|
|
20
20
|
|
|
21
21
|
<%_ if (databaseTypeCassandra) { _%>
|
|
22
22
|
import <%= packageName %>.AbstractCassandraTest;
|
|
23
|
-
<%_ } else if (databaseTypeCouchbase) { _%>
|
|
24
|
-
import <%= packageName %>.CouchbaseTestContainerExtension;
|
|
25
23
|
<%_ } _%>
|
|
26
24
|
import <%= packageName %>.IntegrationTest;
|
|
27
25
|
import <%= packageName %>.config.Constants;
|
|
@@ -29,7 +27,7 @@ import <%= packageName %>.config.Constants;
|
|
|
29
27
|
import <%= packageName %>.domain.PersistentToken;
|
|
30
28
|
<%_ } _%>
|
|
31
29
|
import <%= packageName %>.domain.<%= asEntity('User') %>;
|
|
32
|
-
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j
|
|
30
|
+
<%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
|
|
33
31
|
import <%= packageName %>.repository.AuthorityRepository;
|
|
34
32
|
<%_ } _%>
|
|
35
33
|
<%_ if (authenticationTypeSession && !reactive) { _%>
|
|
@@ -51,9 +49,6 @@ import org.apache.commons.lang3.RandomStringUtils;
|
|
|
51
49
|
import org.junit.jupiter.api.BeforeEach;
|
|
52
50
|
<%_ } _%>
|
|
53
51
|
import org.junit.jupiter.api.Test;
|
|
54
|
-
<%_ if (databaseTypeCouchbase) { _%>
|
|
55
|
-
import org.junit.jupiter.api.extension.ExtendWith;
|
|
56
|
-
<%_ } _%>
|
|
57
52
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
58
53
|
<%_ if (reactive) { _%>
|
|
59
54
|
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
|
|
@@ -104,6 +99,9 @@ import static org.springframework.security.test.web.servlet.request.SecurityMock
|
|
|
104
99
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
|
|
105
100
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
|
|
106
101
|
<%_ } _%>
|
|
102
|
+
<%_ if (databaseTypeCouchbase) { _%>
|
|
103
|
+
import static org.springframework.security.test.web.servlet.response.SecurityMockMvcResultHandlers.exportTestSecurityContext;
|
|
104
|
+
<%_ } _%>
|
|
107
105
|
|
|
108
106
|
/**
|
|
109
107
|
* Integration tests for the {@link AccountResource} REST controller.
|
|
@@ -341,6 +339,9 @@ class AccountResourceIT <% if (databaseTypeCassandra) { %>extends AbstractCassan
|
|
|
341
339
|
.contentType(MediaType.APPLICATION_JSON)
|
|
342
340
|
.content(TestUtil.convertObjectToJsonBytes(invalidUser))<% if (testsNeedCsrf) { %>
|
|
343
341
|
.with(csrf())<% } %>)
|
|
342
|
+
<%_ if (databaseTypeCouchbase) { _%>
|
|
343
|
+
.andDo(exportTestSecurityContext())
|
|
344
|
+
<%_ } _%>
|
|
344
345
|
.andExpect(status().isBadRequest());
|
|
345
346
|
<%_ } else { _%>
|
|
346
347
|
accountWebTestClient.post().uri("/api/register")
|
|
@@ -537,6 +538,9 @@ class AccountResourceIT <% if (databaseTypeCassandra) { %>extends AbstractCassan
|
|
|
537
538
|
.contentType(MediaType.APPLICATION_JSON)
|
|
538
539
|
.content(TestUtil.convertObjectToJsonBytes(secondUser))<% if (testsNeedCsrf) { %>
|
|
539
540
|
.with(csrf())<% } %>)
|
|
541
|
+
<%_ if (databaseTypeCouchbase) { _%>
|
|
542
|
+
.andDo(exportTestSecurityContext())
|
|
543
|
+
<%_ } _%>
|
|
540
544
|
.andExpect(status().isCreated());
|
|
541
545
|
<%_ } _%>
|
|
542
546
|
|
|
@@ -903,6 +907,9 @@ class AccountResourceIT <% if (databaseTypeCassandra) { %>extends AbstractCassan
|
|
|
903
907
|
.contentType(MediaType.APPLICATION_JSON)
|
|
904
908
|
.content(TestUtil.convertObjectToJsonBytes(userDTO))<% if (testsNeedCsrf) { %>
|
|
905
909
|
.with(csrf())<% } %>)
|
|
910
|
+
<%_ if (databaseTypeCouchbase) { _%>
|
|
911
|
+
.andDo(exportTestSecurityContext())
|
|
912
|
+
<%_ } _%>
|
|
906
913
|
.andExpect(status().isBadRequest());
|
|
907
914
|
<%_ } _%>
|
|
908
915
|
|