generator-jhipster 7.3.0 → 7.5.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/cli/import-jdl.js +3 -2
- package/cli/jhipster-command.js +2 -2
- package/cli/program.js +32 -29
- package/generators/app/index.js +46 -27
- package/generators/aws/index.js +8 -8
- package/generators/aws/lib/eb.js +1 -1
- package/generators/azure-app-service/index.js +16 -9
- package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +2 -2
- package/generators/azure-spring-cloud/index.js +16 -9
- package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +2 -2
- package/generators/bootstrap/index.js +57 -62
- package/generators/ci-cd/index.js +11 -8
- package/generators/ci-cd/templates/github-actions.yml.ejs +1 -1
- package/generators/ci-cd/templates/travis.yml.ejs +9 -4
- package/generators/cleanup.js +27 -171
- package/generators/client/files-angular.js +12 -1
- package/generators/client/files-common.js +6 -2
- package/generators/client/files-react.js +13 -2
- package/generators/client/files-vue.js +59 -7
- package/generators/client/index.js +46 -32
- package/generators/client/needle-api/needle-client-angular.js +1 -1
- package/generators/client/needle-api/needle-client-vue.js +57 -7
- package/generators/client/templates/angular/.eslintrc.json.ejs +1 -0
- package/generators/client/templates/angular/angular.json.ejs +5 -0
- package/generators/client/templates/angular/jest.conf.js.ejs +2 -0
- package/generators/client/templates/angular/package.json +29 -29
- package/generators/client/templates/angular/package.json.ejs +3 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +52 -54
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +65 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.spec.ts.ejs +35 -37
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.spec.ts.ejs +78 -80
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/password/password.service.spec.ts.ejs +41 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +73 -75
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +62 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +44 -46
- package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +61 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +122 -123
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/account/register/register.service.spec.ts.ejs +66 -0
- package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +75 -77
- package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +80 -80
- package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +48 -50
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +45 -47
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +66 -0
- package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +99 -101
- package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +61 -63
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +2 -2
- package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +28 -30
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +35 -37
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +40 -42
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +89 -91
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +81 -83
- package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +8 -8
- package/generators/client/templates/angular/src/main/webapp/app/app-routing.module.ts.ejs +14 -3
- package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +8 -29
- package/generators/client/templates/angular/src/main/webapp/app/config/datepicker-adapter.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/config/dayjs.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +14 -9
- package/generators/client/templates/angular/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/entities/entity-navbar-items.ts.ejs +29 -0
- package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +106 -98
- package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +166 -168
- package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +20 -0
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +74 -70
- package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +41 -2
- package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +27 -29
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +114 -115
- package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +132 -134
- package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +29 -31
- package/generators/client/templates/angular/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +4 -4
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/duration.pipe.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.spec.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-date.pipe.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.spec.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/date/format-medium-datetime.pipe.ts.ejs +1 -1
- package/generators/client/templates/angular/src/main/webapp/app/shared/language/translate.directive.ts.ejs +6 -6
- package/generators/client/templates/angular/src/main/webapp/app/shared/language/translation.module.ts.ejs +83 -0
- package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +16 -2
- package/generators/client/templates/angular/tsconfig.json.ejs +2 -0
- package/generators/client/templates/angular/tsconfig.spec.json.ejs +0 -1
- package/generators/client/templates/angular/webpack/proxy.conf.js.ejs +0 -2
- package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +0 -16
- package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +12 -5
- package/generators/client/templates/common/package.json +6 -6
- package/generators/client/templates/common/src/main/webapp/robots.txt.ejs +0 -1
- package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +86 -56
- package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +56 -0
- package/generators/client/templates/react/.eslintrc.json.ejs +1 -0
- package/generators/client/templates/react/package.json +54 -53
- package/generators/client/templates/react/package.json.ejs +6 -1
- package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +0 -3
- package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +3 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/configuration/configuration.tsx.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/gateway/gateway.tsx.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +6 -6
- package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +8 -8
- package/generators/client/templates/react/src/main/webapp/app/modules/home/home.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.scss.ejs +9 -0
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +2 -2
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +3 -3
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +7 -7
- package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-components.tsx.ejs +1 -1
- package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +1 -1
- package/generators/client/templates/react/webpack/webpack.dev.js.ejs +17 -3
- package/generators/client/templates/react/webpack/webpack.prod.js.ejs +13 -1
- package/generators/client/templates/vue/.eslintrc.js.ejs +8 -5
- package/generators/client/templates/vue/package.json +40 -49
- package/generators/client/templates/vue/package.json.ejs +13 -17
- package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +23 -12
- package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.vue.ejs +7 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.vue.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +1 -1
- package/generators/client/templates/vue/src/main/webapp/app/constants.ts.ejs +16 -6
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +27 -8
- package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +6 -0
- package/generators/client/templates/vue/src/main/webapp/app/declarations.d.ts.ejs +41 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.component.ts.ejs +34 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.vue.ejs +13 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +20 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/entities.vue.ejs +5 -0
- package/generators/client/templates/vue/src/main/webapp/app/entities/user/{user.oauth2.service.ts.ejs → user.service.ts.ejs} +1 -1
- package/generators/client/templates/vue/{webpack/utils.js.ejs → src/main/webapp/app/index.ts.ejs} +1 -12
- package/generators/client/templates/vue/src/main/webapp/app/locale/translation.service.ts.ejs +26 -9
- package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +20 -18
- package/generators/client/templates/vue/src/main/webapp/app/router/entities.ts.ejs +45 -3
- package/generators/client/templates/vue/src/main/webapp/app/router/index.ts.ejs +19 -3
- package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +0 -2
- package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +3 -1
- package/generators/client/templates/vue/src/main/webapp/app/shims-vue.d.ts.ejs +17 -3
- package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +25 -10
- package/generators/client/templates/vue/src/test/javascript/spec/app/account/login-form/login-form.component.spec.ts.ejs +2 -2
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +6 -4
- package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +4 -2
- package/generators/client/templates/vue/src/test/javascript/spec/app/core/jhi-navbar/jhi-navbar.component.spec.ts.ejs +10 -4
- package/generators/client/templates/vue/src/test/javascript/spec/app/entities/entities-menu.spec.ts.ejs +52 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.component.ts.ejs +4 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.vue.ejs +7 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-router.ts.ejs +1 -0
- package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +0 -1
- package/generators/client/templates/vue/tsconfig.json.ejs +6 -10
- package/generators/client/templates/vue/tsconfig.spec.json.ejs +37 -0
- package/generators/client/templates/vue/webpack/config.js.ejs +50 -0
- package/generators/client/templates/vue/webpack/vue.utils.js.ejs +33 -32
- package/generators/client/templates/vue/webpack/webpack.common.js.ejs +150 -126
- package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +19 -76
- package/generators/client/templates/vue/webpack/webpack.microfrontend.js.jhi.vue.ejs +77 -0
- package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +5 -41
- package/generators/cloudfoundry/index.js +9 -9
- package/generators/common/index.js +12 -10
- package/generators/common/templates/.prettierrc.ejs +1 -1
- package/generators/common/templates/README.md.jhi.ejs +19 -0
- package/generators/common/templates/package.json +4 -4
- package/generators/cypress/index.js +12 -9
- package/generators/cypress/templates/cypress.json.ejs +16 -2
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/login-page.spec.ts.ejs +3 -14
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/password-page.spec.ts.ejs +33 -39
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/register-page.spec.ts.ejs +52 -62
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/reset-password-page.spec.ts.ejs +2 -10
- package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +25 -34
- package/generators/cypress/templates/src/test/javascript/cypress/integration/administration/administration.spec.ts.ejs +1 -22
- package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +4 -4
- package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +67 -7
- package/generators/cypress/templates/src/test/javascript/cypress/support/entity.ts.ejs +4 -4
- package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -6
- package/generators/cypress/templates/src/test/javascript/cypress/support/management.ts.ejs +1 -1
- package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +8 -8
- package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +0 -9
- package/generators/database-changelog/index.js +33 -22
- package/generators/database-changelog-liquibase/index.js +12 -8
- package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +1 -1
- package/generators/docker-compose/index.js +11 -12
- package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +1 -1
- package/generators/entities/index.js +35 -26
- package/generators/entities-client/index.js +10 -7
- package/generators/entity/index.js +81 -32
- package/generators/entity-client/files.js +7 -16
- package/generators/entity-client/index.js +22 -12
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +42 -44
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.spec.ts.ejs +58 -60
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +1 -35
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +4 -4
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +110 -112
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +9 -2
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +8 -8
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +8 -8
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +8 -8
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +15 -6
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +1 -1
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +203 -198
- package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +5 -5
- package/generators/entity-client/templates/angular/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
- package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +264 -127
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +17 -14
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +5 -4
- package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +11 -13
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +32 -25
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.vue.ejs +6 -9
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +2 -1
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
- package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs +2 -6
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +10 -7
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.component.spec.ts.ejs +5 -1
- package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.service.spec.ts.ejs +1 -1
- package/generators/entity-i18n/index.js +7 -4
- package/generators/entity-server/files.js +14 -0
- package/generators/entity-server/index.js +12 -8
- package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +2 -2
- 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 +9 -8
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +16 -29
- package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +3 -3
- package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +46 -0
- 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 +18 -2
- package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +24 -0
- package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +8 -6
- package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +5 -1
- package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +41 -43
- package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +3 -3
- package/generators/gae/index.js +10 -10
- package/generators/generator-base-blueprint.js +14 -46
- package/generators/generator-base-private.js +44 -23
- package/generators/generator-base.js +58 -18
- package/generators/generator-constants.js +30 -23
- package/generators/generator-transforms.js +39 -27
- package/generators/heroku/index.js +14 -33
- package/generators/init/constants.cjs +1 -1
- package/generators/java/constants.cjs +1 -1
- package/generators/kubernetes/files.js +3 -0
- package/generators/kubernetes/index.js +10 -10
- package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -1
- package/generators/kubernetes/templates/deployment.yml.ejs +8 -3
- package/generators/kubernetes/templates/istio/destination-rule.yml.ejs +1 -1
- package/generators/kubernetes/templates/istio/gateway/grafana-gateway.yml.ejs +5 -2
- package/generators/kubernetes/templates/istio/gateway/jhipster-grafana-gateway.yml.ejs +5 -2
- package/generators/kubernetes/templates/istio/gateway/kiali-gateway.yml.ejs +10 -8
- package/generators/kubernetes/templates/istio/gateway/zipkin-gateway.yml.ejs +5 -2
- package/generators/kubernetes/templates/istio/gateway.yml.ejs +7 -5
- package/generators/kubernetes/templates/secret/couchbase-secret.yml.ejs +9 -0
- package/generators/kubernetes-base.js +1 -0
- package/generators/kubernetes-helm/files.js +3 -8
- package/generators/kubernetes-helm/index.js +10 -10
- package/generators/kubernetes-helm/templates/README-KUBERNETES-HELM.md.ejs +0 -1
- package/generators/kubernetes-helm/templates/app/Chart.yml.ejs +5 -0
- package/generators/kubernetes-helm/templates/app/helpers.tpl.ejs +0 -11
- package/generators/kubernetes-helm/templates/app/requirements.yml.ejs +5 -0
- package/generators/kubernetes-helm/templates/app/values.yml.ejs +68 -5
- package/generators/kubernetes-helm/templates/csvc/Chart.yml.ejs +1 -1
- package/generators/kubernetes-helm/templates/csvc/requirements.yml.ejs +1 -1
- package/generators/kubernetes-knative/index.js +10 -10
- package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +6 -4
- package/generators/kubernetes-knative/templates/service.yml.ejs +1 -1
- package/generators/languages/index.js +13 -13
- package/generators/languages/templates/src/main/webapp/i18n/vi/login.json +1 -1
- package/generators/openapi-client/index.js +13 -10
- package/generators/openshift/index.js +10 -11
- package/generators/openshift/templates/deployment.yml.ejs +1 -1
- package/generators/page/index.js +12 -10
- package/generators/server/__snapshots__/generator.spec.mjs.snap +28 -15
- package/generators/server/cleanup.js +151 -0
- package/generators/server/files-sql.js +52 -0
- package/generators/server/files.js +31 -14
- package/generators/server/index.js +86 -33
- package/generators/server/templates/build.gradle.ejs +231 -189
- package/generators/server/templates/gradle.properties.ejs +12 -12
- package/generators/server/templates/npmw +8 -6
- package/generators/server/templates/npmw.cmd +13 -8
- package/generators/server/templates/pom.xml.ejs +425 -217
- package/generators/server/templates/sql/reactive/src/main/java/package/repository/UserSqlHelper.java.ejs +48 -0
- package/generators/server/templates/src/main/docker/app.yml.ejs +1 -1
- package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -2
- package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +3 -2
- package/generators/server/templates/src/main/java/package/config/OpenApiConfiguration.java.ejs +17 -54
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +5 -5
- package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +4 -6
- package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +0 -3
- package/generators/server/templates/src/main/java/package/config/neo4j/Neo4jMigrations.java.ejs +19 -9
- package/generators/server/templates/src/main/java/package/management/SecurityMetersService.java.ejs +68 -0
- package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +2 -2
- package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +0 -25
- package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +31 -4
- package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +23 -11
- package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +16 -8
- package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +6 -6
- package/generators/server/templates/src/main/java/package/web/filter/ModifyServersOpenApiFilter.java.ejs +3 -2
- package/generators/server/templates/src/main/java/package/web/filter/SpaWebFilter.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/java/package/web/rest/UserResource.java.ejs +2 -2
- package/generators/server/templates/src/main/resources/config/application.yml.ejs +22 -8
- package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +1 -2
- package/generators/server/templates/src/main/resources/static/microservices_index.html.ejs +1 -1
- package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +2 -6
- package/generators/server/templates/src/test/java/package/cucumber/CucumberTestContextConfiguration.java.ejs +2 -3
- package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +41 -6
- package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +113 -0
- package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +6 -1
- package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +198 -0
- package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs +13 -3
- package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +17 -3
- package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +63 -0
- package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +1 -1
- package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +2 -3
- package/generators/server/templates/src/test/java/package/web/rest/ClientForwardControllerTest.java.ejs +9 -0
- package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +2 -0
- package/generators/server/templates/src/test/resources/logback.xml.ejs +1 -1
- package/generators/server/templates/src/test/{features → resources/package/features}/gitkeep +0 -0
- package/generators/server/templates/src/test/{features → resources/package/features}/user/user.feature.ejs +0 -0
- package/generators/spring-controller/index.js +9 -7
- package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs +1 -1
- package/generators/spring-service/index.js +10 -7
- package/generators/upgrade/index.js +4 -5
- package/generators/utils.js +2 -2
- package/generators/workspaces/index.js +16 -7
- package/jdl/jhipster/default-application-options.js +9 -7
- package/package.json +22 -22
- package/utils/entity.js +17 -4
- package/utils/field.js +11 -1
- package/utils/multi-step-transform/index.js +8 -8
- package/generators/client/templates/react/.npmrc.ejs +0 -1
- package/generators/client/templates/vue/webpack/dev.env.js.ejs +0 -17
- package/generators/client/templates/vue/webpack/env.js.ejs +0 -67
- package/generators/client/templates/vue/webpack/loader.conf.js.ejs +0 -20
- package/generators/client/templates/vue/webpack/prod.env.js.ejs +0 -15
- package/generators/server/templates/src/main/java/package/config/apidocs/GatewaySwaggerResourcesProvider.java.ejs +0 -91
- package/generators/server/templates/src/test/java/package/config/apidocs/GatewaySwaggerResourcesProviderTest.java.ejs +0 -79
- package/generators/server/templates/src/test/resources/cucumber.properties.ejs +0 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<%#
|
|
2
|
+
Copyright 2013-2021 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 <%= entityAbsolutePackage %>.repository;
|
|
20
|
+
|
|
21
|
+
import java.util.ArrayList;
|
|
22
|
+
import java.util.List;
|
|
23
|
+
|
|
24
|
+
import org.springframework.data.relational.core.sql.Column;
|
|
25
|
+
import org.springframework.data.relational.core.sql.Expression;
|
|
26
|
+
import org.springframework.data.relational.core.sql.Table;
|
|
27
|
+
|
|
28
|
+
public class <%= entityClass %>SqlHelper {
|
|
29
|
+
|
|
30
|
+
public static List<Expression> getColumns(Table table, String columnPrefix) {
|
|
31
|
+
List<Expression> columns = new ArrayList<>();
|
|
32
|
+
<%_ fields.forEach(function(field) {
|
|
33
|
+
let col = field.fieldNameAsDatabaseColumn;
|
|
34
|
+
_%>
|
|
35
|
+
columns.add(Column.aliased("<%= col %>", table, columnPrefix + "_<%= col %>"));
|
|
36
|
+
<%_ if ((field.fieldTypeBinary) && !field.blobContentTypeText) { _%>
|
|
37
|
+
columns.add(Column.aliased("<%= col %>_content_type", table, columnPrefix + "_<%= col %>_content_type"));
|
|
38
|
+
<%_ } _%>
|
|
39
|
+
<%_ }); _%>
|
|
40
|
+
|
|
41
|
+
<%_ reactiveRegularEagerRelations.forEach(function(rel) { _%>
|
|
42
|
+
columns.add(Column.aliased("<%= getColumnName(rel.relationshipName) %>_id", table, columnPrefix + "_<%= getColumnName(rel.relationshipName) %>_id"));
|
|
43
|
+
<%_ }); _%>
|
|
44
|
+
return columns;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -39,7 +39,7 @@ import <%= entityAbsolutePackage %>.domain.<%= persistClass %>;
|
|
|
39
39
|
<%_ Object.keys(uniqueEnums).forEach(function(element) { _%>
|
|
40
40
|
import <%= entityAbsolutePackage %>.domain.enumeration.<%= element %>;
|
|
41
41
|
<%_ }); _%>
|
|
42
|
-
import <%=
|
|
42
|
+
import <%= packageName %>.service.ColumnConverter;
|
|
43
43
|
|
|
44
44
|
import io.r2dbc.spi.Row;
|
|
45
45
|
|
|
@@ -29,6 +29,12 @@ import org.springframework.data.domain.Page;
|
|
|
29
29
|
import org.springframework.data.domain.PageImpl;
|
|
30
30
|
<%_ } _%>
|
|
31
31
|
import org.springframework.data.domain.Pageable;
|
|
32
|
+
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
|
33
|
+
import org.elasticsearch.search.sort.FieldSortBuilder;
|
|
34
|
+
import java.util.List;
|
|
35
|
+
import org.springframework.data.domain.PageRequest;
|
|
36
|
+
|
|
37
|
+
|
|
32
38
|
<%_ } _%>
|
|
33
39
|
<%_ if (reactive) { _%>
|
|
34
40
|
import org.springframework.data.elasticsearch.core.ReactiveElasticsearchTemplate;
|
|
@@ -72,9 +78,19 @@ class <%= entityClass %>SearchRepositoryInternalImpl implements <%= entityClass
|
|
|
72
78
|
|
|
73
79
|
@Override
|
|
74
80
|
public Flux<<%= entityClass %>> search(String query<% if (!paginationNo) { %>, Pageable pageable<% } %>) {
|
|
75
|
-
NativeSearchQuery nativeSearchQuery = new NativeSearchQuery(queryStringQuery(query));
|
|
76
81
|
<%_ if (!paginationNo) { _%>
|
|
77
|
-
|
|
82
|
+
List<FieldSortBuilder> builders = new SortToFieldSortBuilderConverter().convert(pageable.getSort());
|
|
83
|
+
|
|
84
|
+
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder().withQuery(queryStringQuery(query))
|
|
85
|
+
.withPageable(PageRequest.of(pageable.getPageNumber(), pageable.getPageSize()));
|
|
86
|
+
|
|
87
|
+
builders.stream().forEach(builder -> {
|
|
88
|
+
queryBuilder.withSort(builder);
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
NativeSearchQuery nativeSearchQuery = queryBuilder.build();
|
|
92
|
+
<%_ } else { _%>
|
|
93
|
+
NativeSearchQuery nativeSearchQuery = new NativeSearchQuery(queryStringQuery(query));
|
|
78
94
|
<%_ } _%>
|
|
79
95
|
return reactiveElasticsearchTemplate
|
|
80
96
|
.search(nativeSearchQuery, <%= entityClass %>.class)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
package <%= entityAbsolutePackage %>.repository.search;
|
|
2
|
+
|
|
3
|
+
import org.elasticsearch.search.sort.FieldSortBuilder;
|
|
4
|
+
import org.elasticsearch.search.sort.SortOrder;
|
|
5
|
+
import org.springframework.core.convert.converter.Converter;
|
|
6
|
+
import org.springframework.data.domain.Sort;
|
|
7
|
+
|
|
8
|
+
import java.util.ArrayList;
|
|
9
|
+
import java.util.List;
|
|
10
|
+
|
|
11
|
+
public class SortToFieldSortBuilderConverter implements Converter<Sort, List<FieldSortBuilder>> {
|
|
12
|
+
|
|
13
|
+
@Override
|
|
14
|
+
public List<FieldSortBuilder> convert(Sort sort) {
|
|
15
|
+
List<FieldSortBuilder> builders = new ArrayList<>();
|
|
16
|
+
sort.stream().forEach(order -> {
|
|
17
|
+
String property = order.getProperty() + ".keyword";
|
|
18
|
+
SortOrder sortOrder = SortOrder.fromString(order.getDirection().name());
|
|
19
|
+
builders.add(new FieldSortBuilder(property).order(sortOrder));
|
|
20
|
+
|
|
21
|
+
});
|
|
22
|
+
return builders;
|
|
23
|
+
}
|
|
24
|
+
}
|
package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs
CHANGED
|
@@ -19,10 +19,8 @@
|
|
|
19
19
|
package <%= entityAbsolutePackage %>.service.dto;
|
|
20
20
|
|
|
21
21
|
import java.util.Objects;
|
|
22
|
-
<%_ if (typeof javadoc !== 'undefined') { _%>
|
|
23
|
-
import io.swagger.annotations.
|
|
24
|
-
<%_ } if (importApiModelProperty) { _%>
|
|
25
|
-
import io.swagger.annotations.ApiModelProperty;
|
|
22
|
+
<%_ if (typeof javadoc !== 'undefined' || importApiModelProperty) { _%>
|
|
23
|
+
import io.swagger.v3.oas.annotations.media.Schema;
|
|
26
24
|
<%_ } _%>
|
|
27
25
|
<%_ if (fieldsContainInstant) { _%>
|
|
28
26
|
import java.time.Instant;
|
|
@@ -60,11 +58,15 @@ import javax.persistence.Lob;
|
|
|
60
58
|
import <%= entityAbsolutePackage %>.domain.enumeration.<%= element %>;
|
|
61
59
|
<%_ }); _%>
|
|
62
60
|
|
|
61
|
+
<%_ for (const otherEntity of otherEntities.filter(otherEntity => otherEntity.entityPackage !== entityPackage)) { _%>
|
|
62
|
+
import <%= `${otherEntity.entityAbsolutePackage}.service.dto.${otherEntity.dtoClass}` %>;
|
|
63
|
+
<%_ } _%>
|
|
64
|
+
|
|
63
65
|
/**
|
|
64
66
|
* A DTO for the {@link <%= entityAbsolutePackage %>.domain.<%= persistClass %>} entity.
|
|
65
67
|
*/
|
|
66
68
|
<%_ if (typeof javadoc !== 'undefined') { _%>
|
|
67
|
-
@
|
|
69
|
+
@Schema(description = "<%- formatAsApiDescription(javadoc) %>")
|
|
68
70
|
<%_ } _%>
|
|
69
71
|
public class <%= dtoClass %> implements Serializable {
|
|
70
72
|
|
|
@@ -81,7 +83,7 @@ _%>
|
|
|
81
83
|
<%_ }
|
|
82
84
|
} _%>
|
|
83
85
|
<%_ if (reference.doc) { _%>
|
|
84
|
-
@
|
|
86
|
+
@Schema(description = "<%- formatAsApiDescription(reference.doc) %>"<% if (required) { %>, required = true<% } %>)
|
|
85
87
|
<%_ } _%>
|
|
86
88
|
<%_ if (field && field.fieldTypeBytes && databaseTypeSql) { _%>
|
|
87
89
|
@Lob
|
|
@@ -38,9 +38,13 @@ _%>
|
|
|
38
38
|
import java.util.Set;
|
|
39
39
|
<%_ } _%>
|
|
40
40
|
|
|
41
|
-
import <%=
|
|
41
|
+
import <%= entityAbsoluteClass %>;
|
|
42
42
|
import <%= entityAbsolutePackage %>.service.dto.<%= dtoClass %>;
|
|
43
43
|
|
|
44
|
+
<%_ for (const otherEntity of _.uniq(dtoReferences.filter(ref => ref.relationship).map(ref => ref.relationship.otherEntity).filter(otherEntity => otherEntity.entityPackage !== entityPackage))) { _%>
|
|
45
|
+
import <%= `${otherEntity.entityAbsolutePackage}.service.mapper.${otherEntity.entityClass}Mapper` %>;
|
|
46
|
+
<%_ } _%>
|
|
47
|
+
|
|
44
48
|
import org.mapstruct.*;
|
|
45
49
|
<%_ if (uuidMapMethod) { _%>
|
|
46
50
|
|
package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs
CHANGED
|
@@ -20,14 +20,6 @@ package <%= entityAbsolutePackage %>.web.rest;
|
|
|
20
20
|
|
|
21
21
|
<%_
|
|
22
22
|
const viaService = !serviceNo;
|
|
23
|
-
|
|
24
|
-
let manyToManyWithUser = false;
|
|
25
|
-
for (const relationship of relationships) {
|
|
26
|
-
if (relationship.otherEntityUser && relationship.relationshipManyToMany) {
|
|
27
|
-
manyToManyWithUser = true;
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
23
|
_%>
|
|
32
24
|
<%_ if (!dtoMapstruct || serviceNo) { _%>
|
|
33
25
|
import <%= entityAbsolutePackage %>.domain.<%= persistClass %>;
|
|
@@ -73,7 +65,6 @@ import org.springframework.data.domain.Pageable;
|
|
|
73
65
|
import org.springframework.data.domain.PageImpl;
|
|
74
66
|
<%_ } _%>
|
|
75
67
|
import org.springframework.http.HttpHeaders;
|
|
76
|
-
import org.springframework.http.HttpStatus;
|
|
77
68
|
<%_ if (reactive) { _%>
|
|
78
69
|
import org.springframework.http.server.reactive.ServerHttpRequest;
|
|
79
70
|
<%_ } _%>
|
|
@@ -82,7 +73,8 @@ import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
|
|
|
82
73
|
<%_ } else { _%>
|
|
83
74
|
import org.springframework.web.util.UriComponentsBuilder;
|
|
84
75
|
<%_ } _%>
|
|
85
|
-
<%_ }
|
|
76
|
+
<%_ } _%>
|
|
77
|
+
<%_ if (reactive || (!jpaMetamodelFiltering && !paginationNo)) { _%>
|
|
86
78
|
import org.springframework.http.HttpStatus;
|
|
87
79
|
<%_ } _%>
|
|
88
80
|
<%_ if (reactive) { _%>
|
|
@@ -177,17 +169,19 @@ public class <%= entityClass %>Resource {
|
|
|
177
169
|
throw new BadRequestAlertException("A new <%= entityInstance %> cannot already have an ID", ENTITY_NAME, "idexists");
|
|
178
170
|
}
|
|
179
171
|
<%_ if (saveUserSnapshot) { _%>
|
|
180
|
-
<%
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
172
|
+
<% for (const userRelationship of relationships.filter(rel => rel.otherEntity.builtInUser)) { %>
|
|
173
|
+
<%_ if (userRelationship.collection) { _%>
|
|
174
|
+
if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>() != null) {
|
|
175
|
+
// Save users in case they are new and only exist in gateway
|
|
176
|
+
userRepository.saveAll(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>());
|
|
177
|
+
}
|
|
178
|
+
<%_ } else { _%>
|
|
179
|
+
if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>() != null) {
|
|
180
|
+
// Save user in case it's new and only exists in gateway
|
|
181
|
+
userRepository.save(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>());
|
|
182
|
+
}
|
|
183
|
+
<%_ } _%>
|
|
184
|
+
<% } %>
|
|
191
185
|
<%_ } _%>
|
|
192
186
|
<%_ for (field of primaryKey.fields.filter(f => f.autoGenerateByService)) { _%>
|
|
193
187
|
<%= instanceName %>.set<%= field.fieldNameCapitalized %>(UUID.randomUUID());
|
|
@@ -245,17 +239,19 @@ public class <%= entityClass %>Resource {
|
|
|
245
239
|
<%_ } _%>
|
|
246
240
|
|
|
247
241
|
<%_ if (saveUserSnapshot) { _%>
|
|
248
|
-
<%
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
242
|
+
<% for (const userRelationship of relationships.filter(rel => rel.otherEntity.builtInUser)) { %>
|
|
243
|
+
<%_ if (userRelationship.collection) { _%>
|
|
244
|
+
if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>() != null) {
|
|
245
|
+
// Save users in case they are new and only exist in gateway
|
|
246
|
+
userRepository.saveAll(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>());
|
|
247
|
+
}
|
|
248
|
+
<%_ } else { _%>
|
|
249
|
+
if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>() != null) {
|
|
250
|
+
// Save user in case it's new and only exists in gateway
|
|
251
|
+
userRepository.save(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>());
|
|
252
|
+
}
|
|
253
|
+
<%_ } _%>
|
|
254
|
+
<% } %>
|
|
259
255
|
<%_ } _%>
|
|
260
256
|
<%- include('/partials/save_template', {asEntity, asDto, viaService: viaService, returnDirectly: false, isUsingMapsId: false, mapsIdAssoc: mapsIdAssoc}); -%>
|
|
261
257
|
<%_ if (!reactive) { _%>
|
|
@@ -308,17 +304,19 @@ public class <%= entityClass %>Resource {
|
|
|
308
304
|
<%_ } _%>
|
|
309
305
|
|
|
310
306
|
<%_ if (saveUserSnapshot) { _%>
|
|
311
|
-
<%
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
307
|
+
<% for (const userRelationship of relationships.filter(rel => rel.otherEntity.builtInUser)) { %>
|
|
308
|
+
<%_ if (userRelationship.collection) { _%>
|
|
309
|
+
if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>() != null) {
|
|
310
|
+
// Save users in case they are new and only exist in gateway
|
|
311
|
+
userRepository.saveAll(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalizedPlural %>());
|
|
312
|
+
}
|
|
313
|
+
<%_ } else { _%>
|
|
314
|
+
if (<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>() != null) {
|
|
315
|
+
// Save user in case it's new and only exists in gateway
|
|
316
|
+
userRepository.save(<%= instanceName %>.get<%= userRelationship.relationshipNameCapitalized %>());
|
|
317
|
+
}
|
|
318
|
+
<%_ } _%>
|
|
319
|
+
<% } %>
|
|
322
320
|
<%_ } _%>
|
|
323
321
|
|
|
324
322
|
<%- include('../../common/patch_template', {asEntity, asDto, isService: false, viaService: viaService}); -%>
|
package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs
CHANGED
|
@@ -48,7 +48,7 @@ if (databaseTypeSql && reactive) {
|
|
|
48
48
|
let idValue = `${persistInstance}.get${primaryKey.nameCapitalized}()`;
|
|
49
49
|
if (primaryKey.typeLong) {
|
|
50
50
|
idValue = idValue + '.intValue()';
|
|
51
|
-
} else if (primaryKey.
|
|
51
|
+
} else if (primaryKey.typeUUID) {
|
|
52
52
|
idValue = idValue + '.toString()';
|
|
53
53
|
}
|
|
54
54
|
let transactionalAnnotation = '';
|
|
@@ -84,7 +84,7 @@ import <%= entityAbsolutePackage %>.repository.UserRepository;
|
|
|
84
84
|
<%_ } _%>
|
|
85
85
|
import <%= entityAbsolutePackage %>.repository.<%= entityClass %>Repository;
|
|
86
86
|
<%_ if (databaseTypeSql && reactive) { _%>
|
|
87
|
-
import <%=
|
|
87
|
+
import <%= packageName %>.service.EntityManager;
|
|
88
88
|
<%_ } _%>
|
|
89
89
|
<%_ if (isUsingMapsId && (!dtoMapstruct && serviceNo)) { _%>
|
|
90
90
|
import <%= entityAbsolutePackage %>.repository.<%= mapsIdAssoc.otherEntityNameCapitalized %>Repository;
|
|
@@ -815,7 +815,7 @@ _%>
|
|
|
815
815
|
<%_ } _%>
|
|
816
816
|
<%= entityInstance %>Repository.save(<%= persistInstance %>)<%= callBlock %>;
|
|
817
817
|
|
|
818
|
-
List<<%= entityClass %>> <%= entityInstance %>List = webTestClient.get().uri(ENTITY_API_URL)
|
|
818
|
+
List<<%= asEntity(entityClass) %>> <%= entityInstance %>List = webTestClient.get().uri(ENTITY_API_URL)
|
|
819
819
|
.accept(MediaType.APPLICATION_NDJSON)
|
|
820
820
|
.exchange()
|
|
821
821
|
.expectStatus().isOk()
|
package/generators/gae/index.js
CHANGED
|
@@ -35,11 +35,11 @@ const { MAVEN, GRADLE } = require('../../jdl/jhipster/build-tool-types');
|
|
|
35
35
|
|
|
36
36
|
const NO_CACHE_PROVIDER = cacheProviders.NO;
|
|
37
37
|
|
|
38
|
-
let useBlueprints;
|
|
39
38
|
module.exports = class extends BaseBlueprintGenerator {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
39
|
+
async _postConstruct() {
|
|
40
|
+
if (!this.fromBlueprint) {
|
|
41
|
+
await this.composeWithBlueprints(GENERATOR_GAE);
|
|
42
|
+
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
_initializing() {
|
|
@@ -121,7 +121,7 @@ module.exports = class extends BaseBlueprintGenerator {
|
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
get initializing() {
|
|
124
|
-
if (
|
|
124
|
+
if (this.delegateToBlueprint) return {};
|
|
125
125
|
return this._initializing();
|
|
126
126
|
}
|
|
127
127
|
|
|
@@ -607,7 +607,7 @@ module.exports = class extends BaseBlueprintGenerator {
|
|
|
607
607
|
}
|
|
608
608
|
|
|
609
609
|
get prompting() {
|
|
610
|
-
if (
|
|
610
|
+
if (this.delegateToBlueprint) return {};
|
|
611
611
|
return this._prompting();
|
|
612
612
|
}
|
|
613
613
|
|
|
@@ -748,7 +748,7 @@ module.exports = class extends BaseBlueprintGenerator {
|
|
|
748
748
|
}
|
|
749
749
|
|
|
750
750
|
get configuring() {
|
|
751
|
-
if (
|
|
751
|
+
if (this.delegateToBlueprint) return {};
|
|
752
752
|
return this._configuring();
|
|
753
753
|
}
|
|
754
754
|
|
|
@@ -761,7 +761,7 @@ module.exports = class extends BaseBlueprintGenerator {
|
|
|
761
761
|
}
|
|
762
762
|
|
|
763
763
|
get loading() {
|
|
764
|
-
if (
|
|
764
|
+
if (this.delegateToBlueprint) return {};
|
|
765
765
|
return this._loading();
|
|
766
766
|
}
|
|
767
767
|
|
|
@@ -831,7 +831,7 @@ module.exports = class extends BaseBlueprintGenerator {
|
|
|
831
831
|
}
|
|
832
832
|
|
|
833
833
|
get writing() {
|
|
834
|
-
if (
|
|
834
|
+
if (this.delegateToBlueprint) return {};
|
|
835
835
|
return this._writing();
|
|
836
836
|
}
|
|
837
837
|
|
|
@@ -877,7 +877,7 @@ module.exports = class extends BaseBlueprintGenerator {
|
|
|
877
877
|
}
|
|
878
878
|
|
|
879
879
|
get end() {
|
|
880
|
-
if (
|
|
880
|
+
if (this.delegateToBlueprint) return {};
|
|
881
881
|
return this._end();
|
|
882
882
|
}
|
|
883
883
|
|
|
@@ -51,8 +51,13 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
|
|
|
51
51
|
// jhipsterContext is the original generator
|
|
52
52
|
this.jhipsterContext = this.options.jhipsterContext;
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
try {
|
|
55
|
+
// Fallback to the original generator if the file does not exists in the blueprint.
|
|
56
|
+
this.jhipsterTemplatesFolders.push(this.jhipsterTemplatePath());
|
|
57
|
+
} catch (error) {
|
|
58
|
+
this.warning('Error adding current blueprint templates as alternative for JHipster templates.');
|
|
59
|
+
this.log(error);
|
|
60
|
+
}
|
|
56
61
|
}
|
|
57
62
|
}
|
|
58
63
|
|
|
@@ -224,44 +229,6 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
|
|
|
224
229
|
return false;
|
|
225
230
|
}
|
|
226
231
|
|
|
227
|
-
/**
|
|
228
|
-
* @private
|
|
229
|
-
* @deprecated
|
|
230
|
-
* Instantiates the blueprint generators, if any.
|
|
231
|
-
* @param {string} subGen - sub generator
|
|
232
|
-
* @param {any} extraOptions - extra options to pass to blueprint generator
|
|
233
|
-
* @return {true} useBlueprints - true if one or more blueprints generators have been constructed; false otherwise
|
|
234
|
-
*/
|
|
235
|
-
instantiateBlueprints(subGen, extraOptions) {
|
|
236
|
-
if (this.options.help) {
|
|
237
|
-
// Ignore blueprint registered options.
|
|
238
|
-
return false;
|
|
239
|
-
}
|
|
240
|
-
let useBlueprints = false;
|
|
241
|
-
|
|
242
|
-
if (!this.configOptions.blueprintConfigured) {
|
|
243
|
-
this.configOptions.blueprintConfigured = true;
|
|
244
|
-
this._configureBlueprints();
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
const blueprints = this.jhipsterConfig.blueprints;
|
|
248
|
-
if (blueprints && blueprints.length > 0) {
|
|
249
|
-
blueprints.forEach(blueprint => {
|
|
250
|
-
const blueprintGenerator = this._composeBlueprint(blueprint.name, subGen, extraOptions);
|
|
251
|
-
if (blueprintGenerator) {
|
|
252
|
-
if (blueprintGenerator.sbsBlueprint) {
|
|
253
|
-
// If sbsBlueprint, add templatePath to the original generator templatesFolder.
|
|
254
|
-
this.jhipsterTemplatesFolders.unshift(blueprintGenerator.templatePath());
|
|
255
|
-
} else {
|
|
256
|
-
// If the blueprints does not sets sbsBlueprint property, ignore normal workflow.
|
|
257
|
-
useBlueprints = true;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
return useBlueprints;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
232
|
/**
|
|
266
233
|
* @private
|
|
267
234
|
* Composes with blueprint generators, if any.
|
|
@@ -353,7 +320,7 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
|
|
|
353
320
|
* @param {any} options - options to pass to blueprint generator
|
|
354
321
|
* @return {Generator|undefined}
|
|
355
322
|
*/
|
|
356
|
-
_composeBlueprint(blueprint, subGen, extraOptions = {}) {
|
|
323
|
+
async _composeBlueprint(blueprint, subGen, extraOptions = {}) {
|
|
357
324
|
blueprint = normalizeBlueprintName(blueprint);
|
|
358
325
|
if (!this.configOptions.skipChecks && !this.options.skipChecks) {
|
|
359
326
|
this._checkBlueprint(blueprint);
|
|
@@ -362,16 +329,17 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
|
|
|
362
329
|
const generatorName = packageNameToNamespace(blueprint);
|
|
363
330
|
const generatorNamespace = `${generatorName}:${subGen}`;
|
|
364
331
|
if (!this.env.isPackageRegistered(generatorName)) {
|
|
365
|
-
this.env.lookup({ filterPaths: true, packagePatterns: blueprint });
|
|
332
|
+
await this.env.lookup({ filterPaths: true, packagePatterns: blueprint });
|
|
366
333
|
}
|
|
367
|
-
if (!this.env.get(generatorNamespace)) {
|
|
334
|
+
if (!(await this.env.get(generatorNamespace))) {
|
|
368
335
|
this.debug(
|
|
369
|
-
`No blueprint found for blueprint ${chalk.yellow(blueprint)} and ${chalk.yellow(
|
|
370
|
-
|
|
336
|
+
`No blueprint found for blueprint ${chalk.yellow(blueprint)} and ${chalk.yellow(subGen)} with namespace ${chalk.yellow(
|
|
337
|
+
generatorNamespace
|
|
371
338
|
)} subgenerator: falling back to default generator`
|
|
372
339
|
);
|
|
373
340
|
return undefined;
|
|
374
341
|
}
|
|
342
|
+
this.debug(`Found blueprint ${chalk.yellow(blueprint)} and ${chalk.yellow(subGen)} with namespace ${chalk.yellow(generatorNamespace)}`);
|
|
375
343
|
|
|
376
344
|
const finalOptions = {
|
|
377
345
|
...this.options,
|
|
@@ -380,7 +348,7 @@ module.exports = class JHipsterBaseBlueprintGenerator extends BaseGenerator {
|
|
|
380
348
|
jhipsterContext: this,
|
|
381
349
|
};
|
|
382
350
|
|
|
383
|
-
const blueprintGenerator = this.composeWith(generatorNamespace, finalOptions, true);
|
|
351
|
+
const blueprintGenerator = await this.composeWith(generatorNamespace, finalOptions, true);
|
|
384
352
|
if (blueprintGenerator instanceof Error) {
|
|
385
353
|
throw blueprintGenerator;
|
|
386
354
|
}
|
|
@@ -29,16 +29,13 @@ const https = require('https');
|
|
|
29
29
|
const { reproducibleConfigForTests: projectNameReproducibleConfigForTests } = require('./project-name/config.cjs');
|
|
30
30
|
const packagejs = require('../package.json');
|
|
31
31
|
const jhipsterUtils = require('./utils');
|
|
32
|
-
const
|
|
32
|
+
const { JAVA_COMPATIBLE_VERSIONS, SERVER_TEST_SRC_DIR, SUPPORTED_CLIENT_FRAMEWORKS } = require('./generator-constants');
|
|
33
33
|
const { languageToJavaLanguage } = require('./utils');
|
|
34
34
|
const JSONToJDLEntityConverter = require('../jdl/converters/json-to-jdl-entity-converter');
|
|
35
35
|
const JSONToJDLOptionConverter = require('../jdl/converters/json-to-jdl-option-converter');
|
|
36
36
|
const { stringify } = require('../utils');
|
|
37
37
|
|
|
38
|
-
const
|
|
39
|
-
const ANGULAR = constants.SUPPORTED_CLIENT_FRAMEWORKS.ANGULAR;
|
|
40
|
-
const REACT = constants.SUPPORTED_CLIENT_FRAMEWORKS.REACT;
|
|
41
|
-
const VUE = constants.SUPPORTED_CLIENT_FRAMEWORKS.VUE;
|
|
38
|
+
const { ANGULAR, REACT, VUE } = SUPPORTED_CLIENT_FRAMEWORKS;
|
|
42
39
|
const dbTypes = require('../jdl/jhipster/field-types');
|
|
43
40
|
const { REQUIRED } = require('../jdl/jhipster/validations');
|
|
44
41
|
|
|
@@ -358,7 +355,8 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
358
355
|
}
|
|
359
356
|
try {
|
|
360
357
|
const content = languages.reduce(
|
|
361
|
-
(content, language) =>
|
|
358
|
+
(content, language) =>
|
|
359
|
+
`${content}import 'dayjs/${this.clientFrameworkAngular ? 'esm/' : ''}locale/${this.getDayjsLocaleId(language)}'\n`,
|
|
362
360
|
'// jhipster-needle-i18n-language-dayjs-imports - JHipster will import languages from dayjs here\n'
|
|
363
361
|
);
|
|
364
362
|
|
|
@@ -809,17 +807,12 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
809
807
|
this.warning('Java is not found on your computer.');
|
|
810
808
|
} else {
|
|
811
809
|
const javaVersion = stderr.match(/(?:java|openjdk) version "(.*)"/)[1];
|
|
812
|
-
if (
|
|
813
|
-
|
|
814
|
-
!javaVersion.match(new RegExp('15')) &&
|
|
815
|
-
!javaVersion.match(new RegExp('14')) &&
|
|
816
|
-
!javaVersion.match(new RegExp('13')) &&
|
|
817
|
-
!javaVersion.match(new RegExp('12')) &&
|
|
818
|
-
!javaVersion.match(new RegExp('11')) &&
|
|
819
|
-
!javaVersion.match(new RegExp('1.8'.replace('.', '\\.')))
|
|
820
|
-
) {
|
|
810
|
+
if (!javaVersion.match(new RegExp(`(${JAVA_COMPATIBLE_VERSIONS.map(ver => `^${ver}`).join('|')})`))) {
|
|
811
|
+
const [latest, ...others] = JAVA_COMPATIBLE_VERSIONS.reverse();
|
|
821
812
|
this.warning(
|
|
822
|
-
`Java
|
|
813
|
+
`Java ${others.reverse().join(', ')} or ${latest} are not found on your computer. Your Java version is: ${chalk.yellow(
|
|
814
|
+
javaVersion
|
|
815
|
+
)}`
|
|
823
816
|
);
|
|
824
817
|
}
|
|
825
818
|
}
|
|
@@ -995,8 +988,9 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
995
988
|
const fileName = _.kebabCase(field.fieldType);
|
|
996
989
|
if (field.fieldIsEnum && (!uniqueEnums[field.fieldType] || (uniqueEnums[field.fieldType] && field.fieldValues.length !== 0))) {
|
|
997
990
|
const importType = `${field.fieldType}`;
|
|
991
|
+
const basePath = clientFramework === VUE ? '@' : 'app';
|
|
998
992
|
const modelPath = clientFramework === ANGULAR ? 'entities' : 'shared/model';
|
|
999
|
-
const importPath =
|
|
993
|
+
const importPath = `${basePath}/${modelPath}/enumerations/${fileName}.model`;
|
|
1000
994
|
uniqueEnums[field.fieldType] = field.fieldType;
|
|
1001
995
|
typeImports.set(importType, importPath);
|
|
1002
996
|
}
|
|
@@ -1146,13 +1140,40 @@ module.exports = class JHipsterBasePrivateGenerator extends Generator {
|
|
|
1146
1140
|
* @param {any} primaryKey - primary key definition.
|
|
1147
1141
|
* @param {number} [index] - index of the primary key sample, pass undefined for a random key.
|
|
1148
1142
|
*/
|
|
1149
|
-
generateTestEntityPrimaryKey(primaryKey, index
|
|
1143
|
+
generateTestEntityPrimaryKey(primaryKey, index) {
|
|
1144
|
+
return JSON.stringify(
|
|
1145
|
+
this.generateTestEntity(
|
|
1146
|
+
primaryKey.fields.map(f => f.reference),
|
|
1147
|
+
index
|
|
1148
|
+
)
|
|
1149
|
+
);
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1152
|
+
/**
|
|
1153
|
+
* Generate a test entity, according to the type
|
|
1154
|
+
*
|
|
1155
|
+
* @param {any} primaryKey - primary key definition.
|
|
1156
|
+
* @param {number} [index] - index of the primary key sample, pass undefined for a random key.
|
|
1157
|
+
*/
|
|
1158
|
+
generateTestEntity(references, index = 'random') {
|
|
1150
1159
|
const random = index === 'random';
|
|
1151
|
-
const entries =
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1160
|
+
const entries = references
|
|
1161
|
+
.map(reference => {
|
|
1162
|
+
if (random && reference.field) {
|
|
1163
|
+
const field = reference.field;
|
|
1164
|
+
const fakeData = field.generateFakeData('json-serializable');
|
|
1165
|
+
if (reference.field.fieldWithContentType) {
|
|
1166
|
+
return [
|
|
1167
|
+
[reference.name, fakeData],
|
|
1168
|
+
[field.contentTypeFieldName, 'unknown'],
|
|
1169
|
+
];
|
|
1170
|
+
}
|
|
1171
|
+
return [[reference.name, fakeData]];
|
|
1172
|
+
}
|
|
1173
|
+
return [[reference.name, this.generateTestEntityId(reference.type, index, false)]];
|
|
1174
|
+
})
|
|
1175
|
+
.flat();
|
|
1176
|
+
return Object.fromEntries(entries);
|
|
1156
1177
|
}
|
|
1157
1178
|
|
|
1158
1179
|
/**
|