generator-jhipster 8.0.0 → 8.1.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 +61 -57
- package/dist/cli/environment-builder.mjs +11 -4
- package/dist/cli/program.mjs +1 -1
- package/dist/generators/angular/cleanup.mjs +7 -0
- package/dist/generators/angular/files-angular.mjs +3 -4
- package/dist/generators/angular/generator.mjs +2 -15
- package/dist/generators/angular/needle-api/needle-client-angular.mjs +2 -8
- package/dist/generators/angular/resources/package.json +23 -23
- package/dist/generators/angular/support/translate-angular.mjs +2 -2
- package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
- package/dist/generators/angular/templates/angular.json.ejs +3 -7
- package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.html.ejs +6 -4
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +39 -33
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +44 -36
- package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +24 -23
- package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +74 -62
- package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.html.ejs +12 -4
- package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +54 -48
- package/dist/generators/angular/templates/src/main/webapp/app/admin/admin.routes.ts.ejs +74 -0
- package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +15 -5
- package/dist/generators/angular/templates/src/main/webapp/app/admin/docs/docs.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +20 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.html.ejs +10 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +9 -3
- package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.html.ejs +12 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +13 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +6 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +3 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +13 -9
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +13 -5
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +21 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +6 -2
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +3 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +16 -7
- package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +3 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +3 -1
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +11 -4
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +20 -11
- package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +48 -34
- package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +73 -0
- package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +67 -0
- package/dist/generators/angular/templates/src/main/webapp/app/app.routes.ts.ejs +85 -0
- package/dist/generators/angular/templates/src/main/webapp/app/core/microfrontend/index.ts.ejs +5 -4
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/data-util.service.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/core/util/event-manager.service.spec.ts.ejs +12 -12
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.model.ts.ejs +4 -4
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +3 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +26 -14
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +38 -25
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.ts.ejs +5 -12
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +55 -21
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +2 -2
- package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +10 -10
- package/dist/generators/angular/templates/src/main/webapp/app/entities/entity.routes.ts.ejs +25 -0
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +21 -17
- package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +5 -2
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +5 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +97 -78
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +6 -4
- package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.html.ejs +6 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.html.ejs +6 -2
- package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +11 -7
- package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +1 -1
- package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +3 -3
- package/dist/generators/angular/templates/src/main/webapp/bootstrap.ts.ejs +5 -5
- package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +1 -1
- package/dist/generators/angular/templates/webpack/webpack.microfrontend.js.ejs +2 -2
- package/dist/generators/app/README.md +108 -0
- package/dist/generators/app/USAGE +3 -0
- package/dist/generators/app/command.mjs +3 -3
- package/dist/generators/app/generator.mjs +11 -0
- package/dist/generators/base/command.mjs +0 -11
- package/dist/generators/base-application/generator.mjs +5 -6
- package/dist/generators/base-application/support/entities.mjs +2 -2
- package/dist/generators/base-application/support/index.mjs +1 -0
- package/dist/generators/base-application/support/prepare-entity.mjs +0 -1
- package/dist/generators/base-application/support/prepare-relationship.mjs +4 -0
- package/dist/generators/base-application/support/update-application-entities-transform.mjs +52 -0
- package/dist/generators/base-core/generator.mjs +17 -4
- package/dist/generators/base-entity-changes/generator.mjs +1 -1
- package/dist/generators/bootstrap/command.mjs +6 -0
- package/dist/generators/bootstrap/generator.mjs +27 -9
- package/dist/generators/bootstrap-application/generator.mjs +1 -19
- package/dist/generators/bootstrap-application-base/command.mjs +30 -0
- package/dist/generators/bootstrap-application-base/generator.mjs +27 -5
- package/dist/generators/bootstrap-application-base/index.mjs +1 -0
- package/dist/generators/bootstrap-application-base/support/export-jdl-transform.mjs +61 -0
- package/dist/generators/bootstrap-application-base/support/import-jdl-transform.mjs +64 -0
- package/dist/generators/bootstrap-application-base/support/index.mjs +2 -0
- package/dist/generators/client/command.mjs +2 -0
- package/dist/generators/client/resources/package.json +4 -4
- package/dist/generators/client/support/entity-definition.mjs +3 -3
- package/dist/generators/client/templates/README.md.jhi.client.ejs +2 -2
- package/dist/generators/client/templates/src/main/webapp/index.html.ejs +2 -2
- package/dist/generators/common/command.mjs +2 -0
- package/dist/generators/common/resources/package.json +3 -3
- package/dist/generators/common/templates/sonar-project.properties.ejs +1 -1
- package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +0 -1
- package/dist/generators/docker/generator.mjs +1 -1
- package/dist/generators/docker/templates/docker/cassandra.yml.ejs +2 -2
- package/dist/generators/docker/templates/docker/keycloak.yml.ejs +1 -1
- package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +4 -1
- package/dist/generators/docker-compose/generator.mjs +4 -11
- package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -1
- package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +4 -1
- package/dist/generators/export-jdl/generator.mjs +1 -1
- package/dist/generators/feign-client/cleanup.mjs +12 -0
- package/dist/generators/feign-client/files.mjs +35 -0
- package/dist/generators/feign-client/generator.mjs +65 -0
- package/dist/generators/feign-client/index.mjs +19 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +174 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizedFeignClient.java.ejs +72 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuth2InterceptedFeignConfiguration.java.ejs +35 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuthIdpTokenResponseDTO.java.ejs +161 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/TokenRelayRequestInterceptor.java.ejs +42 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/client/UserFeignClientInterceptor_jwt.java.ejs +36 -0
- package/dist/generators/feign-client/templates/src/main/java/_package_/config/FeignConfiguration.java.ejs +45 -0
- package/dist/generators/feign-client/templates/src/test/java/_package_/client/AuthorizationHeaderUtilTest.java.ejs +263 -0
- package/dist/generators/generate-blueprint/command.mjs +1 -1
- package/dist/generators/generate-blueprint/resources/package.json +1 -1
- package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -1
- package/dist/generators/generator-constants.mjs +9 -5
- package/dist/generators/generator-list.mjs +1 -0
- package/dist/generators/git/generator.mjs +3 -5
- package/dist/generators/gradle/constants.mjs +1 -1
- package/dist/generators/java/command.mjs +6 -0
- package/dist/generators/java/entity-files.mjs +4 -0
- package/dist/generators/java/generator.mjs +3 -2
- package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +30 -0
- package/dist/generators/jdl/generator.mjs +18 -23
- package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +4 -1
- package/dist/generators/kubernetes/templates/keycloak/keycloak.yml.ejs +1 -1
- package/dist/generators/languages/generator.mjs +24 -15
- package/dist/generators/languages/prompts.mjs +3 -1
- package/dist/generators/languages/support/translate.mjs +1 -1
- package/dist/generators/languages/templates/entity/i18n/entity_pt-br.json.ejs +1 -1
- package/dist/generators/liquibase/README.md +19 -0
- package/dist/generators/project-name/generator.mjs +14 -19
- package/dist/generators/project-name/support/name-resolver.mjs +35 -6
- package/dist/generators/react/resources/package.json +24 -24
- package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +4 -4
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-detail.tsx.ejs +1 -2
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +12 -13
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.tsx.ejs +3 -8
- package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityModel_.model.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.scss.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
- package/dist/generators/react/templates/src/main/webapp/app/shared/util/date-utils.ts.ejs +1 -1
- package/dist/generators/server/cleanup.mjs +5 -0
- package/dist/generators/server/command.mjs +13 -2
- package/dist/generators/server/entity-files.mjs +3 -3
- package/dist/generators/server/files.mjs +2 -38
- package/dist/generators/server/generator.mjs +35 -19
- package/dist/generators/server/jdl/application-definition.mjs +5 -2
- package/dist/generators/server/options/feign-client.mjs +24 -0
- package/dist/generators/server/options/index.mjs +1 -0
- package/dist/generators/server/resources/Dockerfile +16 -16
- package/dist/generators/server/resources/gradle/libs.versions.toml +4 -4
- package/dist/generators/server/resources/pom.xml +11 -11
- package/dist/generators/server/support/config.mjs +1 -0
- package/dist/generators/server/support/prepare-entity.mjs +4 -1
- package/dist/generators/server/templates/build.gradle.ejs +1 -2
- package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -21
- package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +5 -15
- package/dist/generators/server/templates/pom.xml.ejs +1 -4
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/get_all_template.ejs +7 -7
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/search_template.ejs +4 -4
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/repository/_entityClass_Repository.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.java.ejs +2 -2
- package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +3 -3
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +20 -2
- package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +4 -1
- package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/CustomClaimConverter.java.ejs +1 -5
- package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +48 -12
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs +4 -13
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs +5 -11
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/PublicUserResource.java.ejs +3 -3
- package/dist/generators/server/templates/src/main/java/_package_/web/rest/UserResource.java.ejs +6 -6
- package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +8 -7
- package/dist/generators/server/templates/src/test/java/_package_/TechnicalStructureTest.java.ejs +1 -1
- package/dist/generators/server/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +8 -8
- package/dist/generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorTestController.java.ejs +2 -2
- package/dist/generators/spring-cache/internal/dependencies.mjs +1 -1
- package/dist/generators/spring-cache/templates/gradle/cache.gradle.ejs +1 -1
- package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheFactoryConfiguration.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
- package/dist/generators/spring-cloud-stream/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +3 -0
- package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.elastic_search.ejs +1 -1
- package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/repository/search/_entityClass_SearchRepository.java.ejs +1 -1
- package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/repository/search/UserSearchRepository.java.ejs +4 -4
- package/dist/generators/spring-data-neo4j/generator.mjs +43 -1
- package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_neo4j.ejs +1 -1
- package/dist/generators/spring-data-relational/README.md +7 -0
- package/dist/generators/spring-data-relational/generator.mjs +2 -1
- package/dist/generators/spring-data-relational/internal/dependencies.mjs +29 -8
- package/dist/generators/spring-data-relational/support/database-data.mjs +4 -0
- package/dist/generators/spring-data-relational/templates/src/main/java/_package_/repository/EntityManager_reactive.java.ejs +49 -8
- package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +1 -1
- package/dist/generators/upgrade/generator.mjs +3 -3
- package/dist/generators/vue/resources/package.json +21 -21
- package/dist/generators/vue/templates/package.json.ejs +1 -0
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -2
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.spec.ts.ejs +1 -1
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.ts.ejs +3 -3
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +2 -15
- package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +2 -7
- package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -0
- package/dist/jdl/converters/json-to-jdl-converter.js +1 -1
- package/dist/jdl/converters/json-to-jdl-entity-converter.js +1 -0
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.js +5 -0
- package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +0 -27
- package/dist/jdl/exporters/jhipster-entity-exporter.js +3 -2
- package/dist/jdl/jhipster/default-application-options.js +1 -1
- package/dist/jdl/jhipster/field-types.js +1 -1
- package/dist/jdl/jhipster/json-entity.js +6 -0
- package/dist/jdl/models/jdl-entity.js +16 -1
- package/dist/jdl/models/jdl-field.js +13 -0
- package/dist/jdl/models/jdl-object.js +3 -3
- package/dist/jdl/models/jdl-relationship.js +23 -5
- package/dist/jdl/parsing/lexer/application-tokens.js +1 -1
- package/dist/testing/helpers.mjs +10 -3
- package/dist/types/cli/environment-builder.d.mts +2 -0
- package/dist/types/generators/angular/needle-api/needle-client-angular.d.mts +0 -1
- package/dist/types/generators/base/api.d.mts +12 -0
- package/dist/types/generators/base/support/needles.d.mts +1 -1
- package/dist/types/generators/base-application/generator.d.mts +2 -2
- package/dist/types/generators/base-application/support/index.d.mts +1 -0
- package/dist/types/generators/base-application/support/update-application-entities-transform.d.mts +4 -0
- package/dist/types/generators/base-application/types/relationship.d.mts +4 -0
- package/dist/types/generators/base-core/generator.d.mts +7 -1
- package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.mts +8 -0
- package/dist/types/generators/bootstrap-application-base/support/import-jdl-transform.d.mts +6 -0
- package/dist/types/generators/bootstrap-application-base/support/index.d.mts +2 -0
- package/dist/types/generators/client/support/entity-definition.d.mts +2 -2
- package/dist/types/generators/feign-client/types-export.d.ts +1 -0
- package/dist/types/generators/generator-constants.d.mts +52 -48
- package/dist/types/generators/generator-list.d.mts +1 -0
- package/dist/types/generators/project-name/support/name-resolver.d.mts +9 -1
- package/dist/types/generators/server/options/feign-client.d.mts +21 -0
- package/dist/types/generators/server/options/index.d.mts +1 -0
- package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +1 -0
- package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +1 -1
- package/dist/types/jdl/jhipster/json-entity.d.ts +2 -0
- package/dist/types/jdl/models/jdl-entity.d.ts +1 -0
- package/dist/types/jdl/models/jdl-relationship.d.ts +0 -18
- package/dist/types/jdl/types/types.d.mts +2 -2
- package/package.json +27 -27
|
@@ -114,14 +114,13 @@ _%>
|
|
|
114
114
|
</dd>
|
|
115
115
|
<%_ } _%>
|
|
116
116
|
<%_ for (relationship of relationships) {
|
|
117
|
-
const ownerSide = relationship.ownerSide;
|
|
118
117
|
const relationshipName = relationship.relationshipName;
|
|
119
118
|
const relationshipFieldName = relationship.relationshipFieldName;
|
|
120
119
|
const relationshipFieldNamePlural = relationship.relationshipFieldNamePlural;
|
|
121
120
|
const relationshipNameHumanized = relationship.relationshipNameHumanized;
|
|
122
121
|
const otherEntityPkName = relationship.otherEntity.primaryKey && relationship.otherEntity.primaryKey.name || 'id';
|
|
123
122
|
const otherEntityField = relationship.otherEntityField; _%>
|
|
124
|
-
<%_ if (
|
|
123
|
+
<%_ if (relationship.persistableRelationship) { _%>
|
|
125
124
|
<dt>
|
|
126
125
|
<Translate contentKey="<%= i18nKeyPrefix %>.<%= relationshipName %>">
|
|
127
126
|
<%= relationshipNameHumanized %>
|
|
@@ -50,16 +50,16 @@ let uniqueRelationFields = new Set();
|
|
|
50
50
|
|
|
51
51
|
Object.keys(differentRelationships).forEach(key => {
|
|
52
52
|
|
|
53
|
-
const hasAnyRelationshipQuery = differentRelationships[key].some(rel =>
|
|
54
|
-
(rel.relationshipOneToOne && rel.ownerSide && !rel.otherEntityUser)
|
|
55
|
-
|| !rel.relationshipOneToMany);
|
|
53
|
+
const hasAnyRelationshipQuery = differentRelationships[key].some(rel => rel.persistableRelationship);
|
|
56
54
|
if (hasAnyRelationshipQuery) {
|
|
57
55
|
hasRelationshipQuery = true;
|
|
58
56
|
differentRelationships[key].forEach(rel => {
|
|
59
|
-
if (rel.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
if (rel.persistableRelationship) {
|
|
58
|
+
if (rel.relationshipManyToMany) {
|
|
59
|
+
manyToManyOwners.add(rel);
|
|
60
|
+
} else {
|
|
61
|
+
relFieldNames.add(rel);
|
|
62
|
+
}
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
65
|
}
|
|
@@ -169,7 +169,7 @@ _%>
|
|
|
169
169
|
<%= rel.relationshipFieldNamePlural %>: mapIdList(values.<%= rel.relationshipFieldNamePlural %>),
|
|
170
170
|
<%_ }) _%>
|
|
171
171
|
<%_ relFieldNames.forEach(rel => { _%>
|
|
172
|
-
<%_ if (rel.
|
|
172
|
+
<%_ if (rel.persistableRelationship && !rel.collection) { _%>
|
|
173
173
|
<%= rel.relationshipFieldName %>: <%= rel.otherEntityNamePlural %>.find(it => it.<%= rel.otherEntity.primaryKey.name %>.toString() === values.<%= rel.relationshipFieldName %>.toString()),
|
|
174
174
|
<%_ } _%>
|
|
175
175
|
<%_ }) _%>
|
|
@@ -213,9 +213,9 @@ _%>
|
|
|
213
213
|
const otherEntityPkName = rel.otherEntity.primaryKey && rel.otherEntity.primaryKey.name || 'id';
|
|
214
214
|
const relationshipFieldName = rel.relationshipFieldName;
|
|
215
215
|
const relationshipFieldNamePlural = rel.relationshipFieldNamePlural;
|
|
216
|
-
if (rel.
|
|
216
|
+
if (rel.persistableRelationship && !rel.collection) { _%>
|
|
217
217
|
<%= relationshipFieldName %>: <%= entityInstance %>Entity?.<%= relationshipFieldName %>?.<%= otherEntityPkName %>,
|
|
218
|
-
<%_ } else if (rel.
|
|
218
|
+
<%_ } else if (rel.persistableRelationship) { _%>
|
|
219
219
|
<%= relationshipFieldNamePlural %>: <%= entityInstance %>Entity?.<%= relationshipFieldNamePlural %>?.map(e => e.<%= otherEntityPkName %>.toString()),
|
|
220
220
|
<%_ } _%>
|
|
221
221
|
<%_ }) _%>
|
|
@@ -321,7 +321,6 @@ _%>
|
|
|
321
321
|
<%_ } _%>
|
|
322
322
|
<%_ } _%>
|
|
323
323
|
<%_ relationships.forEach(rel => {
|
|
324
|
-
const ownerSide = rel.ownerSide;
|
|
325
324
|
const otherEntityPkName = rel.otherEntity.primaryKey && rel.otherEntity.primaryKey.name || 'id';
|
|
326
325
|
const otherEntityNamePlural = rel.otherEntityNamePlural;
|
|
327
326
|
const relationshipName = rel.relationshipName;
|
|
@@ -331,7 +330,7 @@ _%>
|
|
|
331
330
|
const otherEntityField = rel.otherEntityField;
|
|
332
331
|
const relationshipRequired = rel.relationshipRequired;
|
|
333
332
|
const translationKey = `${i18nKeyPrefix}.${relationshipName}`; _%>
|
|
334
|
-
<%_ if (rel.
|
|
333
|
+
<%_ if (rel.persistableRelationship && !rel.collection) { _%>
|
|
335
334
|
<ValidatedField
|
|
336
335
|
id="<%= entityFileName %>-<%= relationshipName %>"
|
|
337
336
|
name="<%= relationshipFieldName %>"
|
|
@@ -360,7 +359,7 @@ _%>
|
|
|
360
359
|
<%_ if (relationshipRequired) { _%>
|
|
361
360
|
<FormText><Translate contentKey="entity.validation.required">This field is required.</Translate></FormText>
|
|
362
361
|
<%_ } _%>
|
|
363
|
-
<%_ } else if (rel.
|
|
362
|
+
<%_ } else if (rel.persistableRelationship) { _%>
|
|
364
363
|
<ValidatedField
|
|
365
364
|
<%_ if (enableTranslation) { _%>
|
|
366
365
|
label={translate('<%= i18nKeyPrefix %>.<%= relationshipName %>')}
|
|
@@ -376,9 +376,7 @@ export const <%= entityReactName %> = () => {
|
|
|
376
376
|
<th className="hand" onClick={sort('<%= field.fieldName %>')} ><Translate contentKey="<%= `${i18nKeyPrefix}.${field.fieldName}` %>"><%= field.fieldNameHumanized %></Translate> <FontAwesomeIcon icon={getSortIconByFieldName('<%= field.fieldName %>')} /></th>
|
|
377
377
|
<%_ } _%>
|
|
378
378
|
<%_ for (relationship of relationships) { _%>
|
|
379
|
-
<%_ if (relationship.
|
|
380
|
-
|| (relationship.relationshipOneToOne && relationship.ownerSide)
|
|
381
|
-
|| (relationship.relationshipManyToMany && relationship.ownerSide && paginationNo)) { _%>
|
|
379
|
+
<%_ if (relationship.persistableRelationship && (paginationNo || !relationship.collection)) { _%>
|
|
382
380
|
<th><Translate contentKey="<%= `${i18nKeyPrefix}.${relationship.relationshipName}` %>"><%= relationship.relationshipNameHumanized %></Translate> <FontAwesomeIcon icon="sort" /></th>
|
|
383
381
|
<%_ } _%>
|
|
384
382
|
<%_ } _%>
|
|
@@ -442,14 +440,11 @@ _%>
|
|
|
442
440
|
<%_ } _%>
|
|
443
441
|
<%_ for (relationship of relationships) {
|
|
444
442
|
const otherEntity = relationship.otherEntity;
|
|
445
|
-
const ownerSide = relationship.ownerSide;
|
|
446
443
|
const relationshipFieldName = relationship.relationshipFieldName;
|
|
447
444
|
const relationshipFieldNamePlural = relationship.relationshipFieldNamePlural;
|
|
448
445
|
const otherEntityPkName = relationship.otherEntity.primaryKey && relationship.otherEntity.primaryKey.name || 'id';
|
|
449
446
|
const otherEntityField = relationship.otherEntityField; _%>
|
|
450
|
-
<%_ if (relationship.
|
|
451
|
-
|| (relationship.relationshipOneToOne && ownerSide)
|
|
452
|
-
|| (relationship.relationshipManyToMany && ownerSide && paginationNo)) { _%>
|
|
447
|
+
<%_ if (relationship.persistableRelationship && (paginationNo || !relationship.collection)) { _%>
|
|
453
448
|
<td>
|
|
454
449
|
<%_ if (relationship.otherEntityUser) { _%>
|
|
455
450
|
<%_ if (relationship.relationshipManyToMany) { _%>
|
|
@@ -491,7 +486,7 @@ _%>
|
|
|
491
486
|
<Button tag={Link} to={`/<%= entityPage %>/${<%= entityInstance %>.<%= primaryKey.name %>}/edit<%_ if (paginationPagination) { _%>?page=${paginationState.activePage}&sort=${paginationState.sort},${paginationState.order}<%_ } _%>`} color="primary" size="sm" data-cy="entityEditButton">
|
|
492
487
|
<FontAwesomeIcon icon="pencil-alt" /> <span className="d-none d-md-inline"><Translate contentKey="entity.action.edit">Edit</Translate></span>
|
|
493
488
|
</Button>
|
|
494
|
-
<Button onClick={() => location.href=`/<%= entityPage %>/${<%= entityInstance %>.<%= primaryKey.name %>}/delete<%_ if (paginationPagination) { _%>?page=${paginationState.activePage}&sort=${paginationState.sort},${paginationState.order}<%_ } _%>`} color="danger" size="sm" data-cy="entityDeleteButton">
|
|
489
|
+
<Button onClick={() => <% if (entityInstance !== 'window' ) { %>window.<% } %>location.href=`/<%= entityPage %>/${<%= entityInstance %>.<%= primaryKey.name %>}/delete<%_ if (paginationPagination) { _%>?page=${paginationState.activePage}&sort=${paginationState.sort},${paginationState.order}<%_ } _%>`} color="danger" size="sm" data-cy="entityDeleteButton">
|
|
495
490
|
<FontAwesomeIcon icon="trash" /> <span className="d-none d-md-inline"><Translate contentKey="entity.action.delete">Delete</Translate></span>
|
|
496
491
|
</Button>
|
|
497
492
|
<%_ } _%>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
limitations under the License.
|
|
18
18
|
-%>
|
|
19
19
|
<%
|
|
20
|
-
const variablesWithTypes = this.generateEntityClientFields(primaryKey, fields, relationships, dto, '
|
|
20
|
+
const variablesWithTypes = this.generateEntityClientFields(primaryKey, fields, relationships, dto, customDateType = 'dayjs.Dayjs', embedded);
|
|
21
21
|
const typeImports = this.generateEntityClientImports(relationships, dto);
|
|
22
22
|
const defaultVariablesValues = this.generateEntityClientFieldDefaultValues(fields.filter(field => !field.id));
|
|
23
23
|
const enumImports = this.generateEntityClientEnumImports(fields.filter(field => !field.id));
|
package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.scss.ejs
CHANGED
|
@@ -21,7 +21,7 @@ $header-color-secondary: #bbb;
|
|
|
21
21
|
$header-color-hover: darken($header-color, 20%);
|
|
22
22
|
|
|
23
23
|
/* ==========================================================================
|
|
24
|
-
|
|
24
|
+
Development Ribbon
|
|
25
25
|
========================================================================== */
|
|
26
26
|
.ribbon {
|
|
27
27
|
background-color: rgba(170, 0, 0, 0.5);
|
package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs
CHANGED
|
@@ -129,7 +129,7 @@ export const createEntitySlice = <T, Reducers extends SliceCaseReducers<EntitySt
|
|
|
129
129
|
extraReducers(builder);
|
|
130
130
|
/*
|
|
131
131
|
* Common rejection logic is handled here.
|
|
132
|
-
* If you want to add your own
|
|
132
|
+
* If you want to add your own rejection logic, pass `skipRejectionHandling: true`
|
|
133
133
|
* while calling `createEntitySlice`
|
|
134
134
|
* */
|
|
135
135
|
if (!skipRejectionHandling) {
|
|
@@ -23,6 +23,6 @@ import { APP_LOCAL_DATETIME_FORMAT } from 'app/config/constants';
|
|
|
23
23
|
export const convertDateTimeFromServer = date =>
|
|
24
24
|
date ? dayjs(date).format(APP_LOCAL_DATETIME_FORMAT) : null;
|
|
25
25
|
|
|
26
|
-
export const convertDateTimeToServer = date => date ? dayjs(date)
|
|
26
|
+
export const convertDateTimeToServer = (date?: string) : dayjs.Dayjs | null => (date ? dayjs(date) : null);
|
|
27
27
|
|
|
28
28
|
export const displayDefaultDateTime = () => dayjs().startOf('day').format(APP_LOCAL_DATETIME_FORMAT);
|
|
@@ -186,4 +186,9 @@ export default function cleanupOldServerFilesTask(taskParam) {
|
|
|
186
186
|
this.removeFile(`${application.javaPackageTestDir}config/TestContainersSpringContextCustomizerFactory.java`);
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
|
+
if (this.isJhipsterVersionLessThan('8.0.1')) {
|
|
190
|
+
if (application.authenticationTypeOauth2) {
|
|
191
|
+
this.removeFile(`${application.javaPackageSrcDir}security/oauth2/OAuthIdpTokenResponseDTO.java`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
189
194
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import chalk from 'chalk';
|
|
20
|
-
import { GENERATOR_JAVA, GENERATOR_LIQUIBASE, GENERATOR_SPRING_DATA_RELATIONAL } from '../generator-list.mjs';
|
|
20
|
+
import { GENERATOR_COMMON, GENERATOR_JAVA, GENERATOR_LIQUIBASE, GENERATOR_SPRING_DATA_RELATIONAL } from '../generator-list.mjs';
|
|
21
21
|
import { APPLICATION_TYPE_GATEWAY, APPLICATION_TYPE_MICROSERVICE, APPLICATION_TYPE_MONOLITH } from '../../jdl/index.js';
|
|
22
22
|
const command = {
|
|
23
23
|
options: {
|
|
@@ -145,7 +145,18 @@ const command = {
|
|
|
145
145
|
},
|
|
146
146
|
],
|
|
147
147
|
},
|
|
148
|
+
feignClient: {
|
|
149
|
+
description: 'Generate a feign client',
|
|
150
|
+
cli: {
|
|
151
|
+
type: Boolean,
|
|
152
|
+
},
|
|
153
|
+
prompt: {
|
|
154
|
+
type: 'confirm',
|
|
155
|
+
message: 'Do you want to generate a feign client?',
|
|
156
|
+
},
|
|
157
|
+
default: false,
|
|
158
|
+
},
|
|
148
159
|
},
|
|
149
|
-
import: [GENERATOR_JAVA, GENERATOR_LIQUIBASE, GENERATOR_SPRING_DATA_RELATIONAL],
|
|
160
|
+
import: [GENERATOR_COMMON, GENERATOR_JAVA, GENERATOR_LIQUIBASE, GENERATOR_SPRING_DATA_RELATIONAL],
|
|
150
161
|
};
|
|
151
162
|
export default command;
|
|
@@ -75,8 +75,8 @@ const filteringReactiveFiles = {
|
|
|
75
75
|
},
|
|
76
76
|
],
|
|
77
77
|
};
|
|
78
|
-
export const
|
|
79
|
-
|
|
78
|
+
export const repositoryFiles = {
|
|
79
|
+
repositoryFiles: [
|
|
80
80
|
{
|
|
81
81
|
condition: generator => !generator.reactive && !generator.embedded && generator.databaseType !== COUCHBASE,
|
|
82
82
|
...javaMainPackageTemplatesBlock('_entityPackage_/'),
|
|
@@ -175,7 +175,7 @@ export const serverFiles = {
|
|
|
175
175
|
...restFiles,
|
|
176
176
|
...filteringFiles,
|
|
177
177
|
...filteringReactiveFiles,
|
|
178
|
-
...
|
|
178
|
+
...repositoryFiles,
|
|
179
179
|
...serviceFiles,
|
|
180
180
|
...dtoFiles,
|
|
181
181
|
};
|
|
@@ -52,48 +52,12 @@ const reactiveConfigFiles = {
|
|
|
52
52
|
},
|
|
53
53
|
],
|
|
54
54
|
};
|
|
55
|
-
const feignFiles = {
|
|
56
|
-
microserviceFeignFiles: [
|
|
57
|
-
{
|
|
58
|
-
path: `${SERVER_MAIN_SRC_DIR}_package_/`,
|
|
59
|
-
renameTo: moveToJavaPackageSrcDir,
|
|
60
|
-
templates: ['config/FeignConfiguration.java'],
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
condition: generator => generator.authenticationTypeOauth2,
|
|
64
|
-
path: `${SERVER_MAIN_SRC_DIR}_package_/`,
|
|
65
|
-
renameTo: moveToJavaPackageSrcDir,
|
|
66
|
-
templates: [
|
|
67
|
-
'security/oauth2/AuthorizationHeaderUtil.java',
|
|
68
|
-
'client/AuthorizedFeignClient.java',
|
|
69
|
-
'client/OAuth2InterceptedFeignConfiguration.java',
|
|
70
|
-
'client/TokenRelayRequestInterceptor.java',
|
|
71
|
-
],
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
condition: generator => generator.authenticationTypeJwt,
|
|
75
|
-
path: `${SERVER_MAIN_SRC_DIR}_package_/`,
|
|
76
|
-
renameTo: moveToJavaPackageSrcDir,
|
|
77
|
-
templates: ['client/UserFeignClientInterceptor_jwt.java'],
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
condition: generator => generator.authenticationTypeOauth2,
|
|
81
|
-
path: `${SERVER_TEST_SRC_DIR}_package_/`,
|
|
82
|
-
renameTo: moveToJavaPackageTestDir,
|
|
83
|
-
templates: ['security/oauth2/AuthorizationHeaderUtilTest.java'],
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
};
|
|
87
55
|
const oauth2Files = {
|
|
88
56
|
oauth2Files: [
|
|
89
57
|
{
|
|
90
58
|
path: `${SERVER_MAIN_SRC_DIR}_package_/`,
|
|
91
59
|
renameTo: moveToJavaPackageSrcDir,
|
|
92
|
-
templates: [
|
|
93
|
-
'security/oauth2/AudienceValidator.java',
|
|
94
|
-
'security/oauth2/JwtGrantedAuthorityConverter.java',
|
|
95
|
-
'security/oauth2/OAuthIdpTokenResponseDTO.java',
|
|
96
|
-
],
|
|
60
|
+
templates: ['security/oauth2/AudienceValidator.java', 'security/oauth2/JwtGrantedAuthorityConverter.java'],
|
|
97
61
|
},
|
|
98
62
|
{
|
|
99
63
|
path: `${SERVER_TEST_SRC_DIR}_package_/`,
|
|
@@ -581,7 +545,7 @@ export const baseServerFiles = {
|
|
|
581
545
|
},
|
|
582
546
|
],
|
|
583
547
|
};
|
|
584
|
-
export const serverFiles = mergeSections(baseServerFiles, addSectionsCondition(jwtFiles, context => context.authenticationTypeJwt), addSectionsCondition(oauth2Files, context => context.authenticationTypeOauth2), addSectionsCondition(gatewayFiles, context => context.applicationTypeGateway), addSectionsCondition(accountFiles, context => context.generateAuthenticationApi), addSectionsCondition(
|
|
548
|
+
export const serverFiles = mergeSections(baseServerFiles, addSectionsCondition(jwtFiles, context => context.authenticationTypeJwt), addSectionsCondition(oauth2Files, context => context.authenticationTypeOauth2), addSectionsCondition(gatewayFiles, context => context.applicationTypeGateway), addSectionsCondition(accountFiles, context => context.generateAuthenticationApi), addSectionsCondition(userManagementFiles, context => context.generateUserManagement), addSectionsCondition(imperativeConfigFiles, context => !context.reactive), addSectionsCondition(reactiveConfigFiles, context => context.reactive), addSectionsCondition(swaggerFiles, context => context.enableSwaggerCodegen));
|
|
585
549
|
/**
|
|
586
550
|
* @this {import('./index.mjs')}
|
|
587
551
|
*/
|
|
@@ -23,14 +23,14 @@ import os from 'os';
|
|
|
23
23
|
import chalk from 'chalk';
|
|
24
24
|
import { getDBTypeFromDBValue, buildJavaGet as javaGetCall, javaBeanCase as javaBeanClassNameFormat, buildJavaGetter as javaGetter, buildJavaSetter as javaSetter, getJavaValueGeneratorForType as getJavaValueForType, getPrimaryKeyValue as getPKValue, generateKeyStore, addSpringFactory, hibernateSnakeCase, } from './support/index.mjs';
|
|
25
25
|
import { askForOptionalItems, askForServerSideOpts, askForServerTestOpts } from './prompts.mjs';
|
|
26
|
-
import { GENERATOR_BOOTSTRAP_APPLICATION, GENERATOR_SPRING_DATA_CASSANDRA, GENERATOR_COMMON, GENERATOR_SPRING_DATA_COUCHBASE, GENERATOR_CUCUMBER, GENERATOR_DOCKER, GENERATOR_SPRING_DATA_ELASTICSEARCH, GENERATOR_GATLING, GENERATOR_GRADLE, GENERATOR_JAVA, GENERATOR_SPRING_CLOUD_STREAM, GENERATOR_LANGUAGES, GENERATOR_MAVEN, GENERATOR_SPRING_DATA_MONGODB, GENERATOR_SPRING_DATA_NEO4J, GENERATOR_SERVER, GENERATOR_SPRING_CACHE, GENERATOR_SPRING_WEBSOCKET, GENERATOR_SPRING_DATA_RELATIONAL, } from '../generator-list.mjs';
|
|
26
|
+
import { GENERATOR_BOOTSTRAP_APPLICATION, GENERATOR_SPRING_DATA_CASSANDRA, GENERATOR_COMMON, GENERATOR_SPRING_DATA_COUCHBASE, GENERATOR_CUCUMBER, GENERATOR_DOCKER, GENERATOR_SPRING_DATA_ELASTICSEARCH, GENERATOR_GATLING, GENERATOR_GRADLE, GENERATOR_JAVA, GENERATOR_SPRING_CLOUD_STREAM, GENERATOR_LANGUAGES, GENERATOR_MAVEN, GENERATOR_SPRING_DATA_MONGODB, GENERATOR_SPRING_DATA_NEO4J, GENERATOR_SERVER, GENERATOR_SPRING_CACHE, GENERATOR_SPRING_WEBSOCKET, GENERATOR_SPRING_DATA_RELATIONAL, GENERATOR_FEIGN_CLIENT, } from '../generator-list.mjs';
|
|
27
27
|
import BaseApplicationGenerator from '../base-application/index.mjs';
|
|
28
28
|
import { writeFiles } from './files.mjs';
|
|
29
29
|
import { writeFiles as writeEntityFiles } from './entity-files.mjs';
|
|
30
30
|
import { packageJson } from '../../lib/index.mjs';
|
|
31
31
|
import { SERVER_MAIN_SRC_DIR, SERVER_MAIN_RES_DIR, SERVER_TEST_SRC_DIR, SERVER_TEST_RES_DIR, CLIENT_WEBPACK_DIR, MAIN_DIR, LOGIN_REGEX, TEST_DIR, JAVA_VERSION, JAVA_COMPATIBLE_VERSIONS, ADD_SPRING_MILESTONE_REPOSITORY, JHIPSTER_DEPENDENCIES_VERSION, } from '../generator-constants.mjs';
|
|
32
32
|
import statistics from '../statistics.mjs';
|
|
33
|
-
import { applicationTypes, authenticationTypes, buildToolTypes, databaseTypes, cacheTypes, serviceDiscoveryTypes, websocketTypes, fieldTypes, entityOptions, validations, reservedKeywords, searchEngineTypes, messageBrokerTypes, clientFrameworkTypes, testFrameworkTypes, } from '../../jdl/jhipster/index.mjs';
|
|
33
|
+
import { applicationTypes, authenticationTypes, buildToolTypes, databaseTypes, cacheTypes, serviceDiscoveryTypes, websocketTypes, fieldTypes, entityOptions, validations, reservedKeywords, searchEngineTypes, messageBrokerTypes, clientFrameworkTypes, testFrameworkTypes, APPLICATION_TYPE_MICROSERVICE, } from '../../jdl/jhipster/index.mjs';
|
|
34
34
|
import { stringifyApplicationData } from '../base-application/support/index.mjs';
|
|
35
35
|
import { createBase64Secret, createSecret, createNeedleCallback } from '../base/support/index.mjs';
|
|
36
36
|
import command from './command.mjs';
|
|
@@ -121,6 +121,23 @@ export default class JHipsterServerGenerator extends BaseApplicationGenerator {
|
|
|
121
121
|
configure() {
|
|
122
122
|
this._configureServer();
|
|
123
123
|
},
|
|
124
|
+
feignMigration() {
|
|
125
|
+
const { reactive, applicationType, feignClient } = this.jhipsterConfigWithDefaults;
|
|
126
|
+
if (feignClient) {
|
|
127
|
+
if (reactive) {
|
|
128
|
+
this.handleCheckFailure('Feign client is not supported by reactive applications.');
|
|
129
|
+
}
|
|
130
|
+
if (applicationType !== APPLICATION_TYPE_MICROSERVICE) {
|
|
131
|
+
this.handleCheckFailure('Feign client is only supported by microservice applications.');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (feignClient === undefined &&
|
|
135
|
+
this.isJhipsterVersionLessThan('8.0.1') &&
|
|
136
|
+
reactive &&
|
|
137
|
+
applicationType === APPLICATION_TYPE_MICROSERVICE) {
|
|
138
|
+
this.jhipsterConfig.feignClient = true;
|
|
139
|
+
}
|
|
140
|
+
},
|
|
124
141
|
});
|
|
125
142
|
}
|
|
126
143
|
get [BaseApplicationGenerator.CONFIGURING]() {
|
|
@@ -129,7 +146,7 @@ export default class JHipsterServerGenerator extends BaseApplicationGenerator {
|
|
|
129
146
|
get composing() {
|
|
130
147
|
return this.asComposingTaskGroup({
|
|
131
148
|
async composing() {
|
|
132
|
-
const { buildTool, enableTranslation, databaseType, messageBroker, searchEngine, testFrameworks, websocket, cacheProvider } = this.jhipsterConfigWithDefaults;
|
|
149
|
+
const { buildTool, enableTranslation, databaseType, messageBroker, searchEngine, testFrameworks, websocket, cacheProvider, feignClient, } = this.jhipsterConfigWithDefaults;
|
|
133
150
|
if (buildTool === GRADLE) {
|
|
134
151
|
await this.composeWithJHipster(GENERATOR_GRADLE);
|
|
135
152
|
}
|
|
@@ -176,6 +193,9 @@ export default class JHipsterServerGenerator extends BaseApplicationGenerator {
|
|
|
176
193
|
if ([EHCACHE, CAFFEINE, HAZELCAST, INFINISPAN, MEMCACHED, REDIS].includes(cacheProvider)) {
|
|
177
194
|
await this.composeWithJHipster(GENERATOR_SPRING_CACHE);
|
|
178
195
|
}
|
|
196
|
+
if (feignClient) {
|
|
197
|
+
await this.composeWithJHipster(GENERATOR_FEIGN_CLIENT);
|
|
198
|
+
}
|
|
179
199
|
},
|
|
180
200
|
});
|
|
181
201
|
}
|
|
@@ -310,7 +330,7 @@ export default class JHipsterServerGenerator extends BaseApplicationGenerator {
|
|
|
310
330
|
const { applicationTypeMicroservice, applicationTypeGateway, clientFrameworkAny } = application;
|
|
311
331
|
if (entityConfig.microserviceName && !(applicationTypeMicroservice && clientFrameworkAny)) {
|
|
312
332
|
if (!entityConfig.searchEngine) {
|
|
313
|
-
// If a non-
|
|
333
|
+
// If a non-microfrontend microservice entity, should be disabled by default.
|
|
314
334
|
entityConfig.searchEngine = NO_SEARCH_ENGINE;
|
|
315
335
|
}
|
|
316
336
|
}
|
|
@@ -335,7 +355,7 @@ export default class JHipsterServerGenerator extends BaseApplicationGenerator {
|
|
|
335
355
|
entityConfig.jpaMetamodelFiltering = false;
|
|
336
356
|
}
|
|
337
357
|
},
|
|
338
|
-
configureEntityTable({ application, entityName, entityConfig
|
|
358
|
+
configureEntityTable({ application, entityName, entityConfig }) {
|
|
339
359
|
if ((application.applicationTypeGateway && entityConfig.microserviceName) || entityConfig.skipServer)
|
|
340
360
|
return;
|
|
341
361
|
entityConfig.entityTableName = entityConfig.entityTableName || hibernateSnakeCase(entityName);
|
|
@@ -353,19 +373,11 @@ export default class JHipsterServerGenerator extends BaseApplicationGenerator {
|
|
|
353
373
|
(application.applicationType !== GATEWAY || !entityConfig.microserviceName)) {
|
|
354
374
|
entityConfig.pagination = NO_PAGINATION;
|
|
355
375
|
}
|
|
356
|
-
// Validate root entity json content
|
|
357
|
-
if (entityConfig.changelogDate === undefined) {
|
|
358
|
-
const currentDate = this.dateFormatForLiquibase();
|
|
359
|
-
if (entityStorage.existed) {
|
|
360
|
-
this.log.verboseInfo(`changelogDate is missing in .jhipster/${entityConfig.name}.json, using ${currentDate} as fallback`);
|
|
361
|
-
}
|
|
362
|
-
entityConfig.changelogDate = currentDate;
|
|
363
|
-
}
|
|
364
376
|
if (entityConfig.incrementalChangelog === undefined) {
|
|
365
377
|
// Keep entity's original incrementalChangelog option.
|
|
366
378
|
entityConfig.incrementalChangelog =
|
|
367
379
|
application.incrementalChangelog &&
|
|
368
|
-
!existsSync(this.destinationPath(`src/main/resources/config/liquibase/changelog/${entityConfig.changelogDate}_added_entity_${entityConfig.name}.xml`));
|
|
380
|
+
!existsSync(this.destinationPath(`src/main/resources/config/liquibase/changelog/${entityConfig.annotations?.changelogDate}_added_entity_${entityConfig.name}.xml`));
|
|
369
381
|
}
|
|
370
382
|
},
|
|
371
383
|
configureFields({ application, entityConfig, entityName }) {
|
|
@@ -544,7 +556,7 @@ export default class JHipsterServerGenerator extends BaseApplicationGenerator {
|
|
|
544
556
|
'java:docker': './mvnw -ntp verify -DskipTests -Pprod jib:dockerBuild',
|
|
545
557
|
'java:docker:arm64': 'npm run java:docker -- -Djib-maven-plugin.architecture=arm64',
|
|
546
558
|
'backend:unit:test': `./mvnw -ntp${excludeWebapp} verify --batch-mode ${javaCommonLog} ${javaTestLog}`,
|
|
547
|
-
'backend:build-cache': './mvnw dependency:go-offline',
|
|
559
|
+
'backend:build-cache': './mvnw dependency:go-offline -ntp',
|
|
548
560
|
'backend:debug': './mvnw -Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000"',
|
|
549
561
|
});
|
|
550
562
|
}
|
|
@@ -563,7 +575,7 @@ export default class JHipsterServerGenerator extends BaseApplicationGenerator {
|
|
|
563
575
|
'java:docker:arm64': 'npm run java:docker -- -PjibArchitecture=arm64',
|
|
564
576
|
'backend:unit:test': `./gradlew test integrationTest ${excludeWebapp} ${javaCommonLog} ${javaTestLog}`,
|
|
565
577
|
'postci:e2e:package': 'cp build/libs/*.$npm_package_config_packaging e2e.$npm_package_config_packaging',
|
|
566
|
-
'backend:build-cache': 'npm run backend:info && npm run backend:nohttp:test && npm run ci:e2e:package',
|
|
578
|
+
'backend:build-cache': 'npm run backend:info && npm run backend:nohttp:test && npm run ci:e2e:package -- -x webapp -x webapp_test',
|
|
567
579
|
});
|
|
568
580
|
}
|
|
569
581
|
scriptsStorage.set({
|
|
@@ -675,9 +687,13 @@ export default class JHipsterServerGenerator extends BaseApplicationGenerator {
|
|
|
675
687
|
if (!config.devDatabaseType && config.prodDatabaseType) {
|
|
676
688
|
dest.devDatabaseType = config.prodDatabaseType;
|
|
677
689
|
}
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
690
|
+
if (config.websocket && config.websocket !== NO_WEBSOCKET) {
|
|
691
|
+
if (config.reactive) {
|
|
692
|
+
throw new Error('Spring Websocket is not supported with reactive applications.');
|
|
693
|
+
}
|
|
694
|
+
if (config.applicationType === MICROSERVICE) {
|
|
695
|
+
throw new Error('Spring Websocket is not supported with microservice applications.');
|
|
696
|
+
}
|
|
681
697
|
}
|
|
682
698
|
const databaseType = config.databaseType;
|
|
683
699
|
if (databaseType === NO_DATABASE) {
|
|
@@ -19,8 +19,9 @@
|
|
|
19
19
|
import * as _ from 'lodash-es';
|
|
20
20
|
import databaseMigrationOption from '../options/database-migration.mjs';
|
|
21
21
|
import messageBrokerOption from '../options/message-broker.mjs';
|
|
22
|
+
import { feignClientDefinition } from '../options/index.mjs';
|
|
22
23
|
const { upperCase, snakeCase } = _;
|
|
23
|
-
const jdlOptions = [databaseMigrationOption, messageBrokerOption];
|
|
24
|
+
const jdlOptions = [databaseMigrationOption, messageBrokerOption, feignClientDefinition];
|
|
24
25
|
const applicationConfig = {
|
|
25
26
|
tokenConfigs: jdlOptions.map(option => ({
|
|
26
27
|
name: upperCase(snakeCase(option.name)),
|
|
@@ -34,7 +35,9 @@ const applicationConfig = {
|
|
|
34
35
|
msg: `${option.name} property`,
|
|
35
36
|
},
|
|
36
37
|
])),
|
|
37
|
-
optionsValues: Object.fromEntries(jdlOptions
|
|
38
|
+
optionsValues: Object.fromEntries(jdlOptions
|
|
39
|
+
.filter(option => option.knownChoices)
|
|
40
|
+
.map(option => [option.name, Object.fromEntries(option.knownChoices.map(choice => [choice, choice]))])),
|
|
38
41
|
optionsTypes: Object.fromEntries(jdlOptions.map(option => [
|
|
39
42
|
option.name,
|
|
40
43
|
{
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2013-2023 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
|
+
export const FEIGN_CLIENT = 'feignClient';
|
|
20
|
+
export const feignClientDefinition = {
|
|
21
|
+
name: FEIGN_CLIENT,
|
|
22
|
+
type: 'boolean',
|
|
23
|
+
tokenType: 'BOOLEAN',
|
|
24
|
+
};
|
|
@@ -10,52 +10,52 @@ LABEL ALIAS=jhipster-control-center
|
|
|
10
10
|
FROM jhipster/consul-config-loader:v0.4.1
|
|
11
11
|
LABEL ALIAS=consul-config-loader
|
|
12
12
|
|
|
13
|
-
FROM postgres:16.
|
|
13
|
+
FROM postgres:16.1
|
|
14
14
|
LABEL ALIAS=postgresql
|
|
15
15
|
|
|
16
|
-
FROM quay.io/keycloak/keycloak:
|
|
16
|
+
FROM quay.io/keycloak/keycloak:23.0.1
|
|
17
17
|
LABEL ALIAS=keycloak
|
|
18
18
|
|
|
19
19
|
FROM mysql:8.2.0
|
|
20
20
|
|
|
21
|
-
FROM mariadb:11.
|
|
21
|
+
FROM mariadb:11.2.2
|
|
22
22
|
|
|
23
|
-
FROM mongo:7.0.
|
|
23
|
+
FROM mongo:7.0.4
|
|
24
24
|
LABEL ALIAS=mongodb
|
|
25
25
|
|
|
26
|
-
FROM couchbase/server:7.2.
|
|
26
|
+
FROM couchbase/server:7.2.3
|
|
27
27
|
LABEL ALIAS=couchbase
|
|
28
28
|
|
|
29
|
-
FROM cassandra:
|
|
29
|
+
FROM cassandra:4.1.3
|
|
30
30
|
|
|
31
31
|
FROM mcr.microsoft.com/mssql/server:2019-CU16-GDR1-ubuntu-20.04
|
|
32
32
|
LABEL ALIAS=mssql
|
|
33
33
|
|
|
34
|
-
FROM neo4j:5.
|
|
34
|
+
FROM neo4j:5.14.0
|
|
35
35
|
|
|
36
36
|
FROM hazelcast/management-center:5.3.3
|
|
37
37
|
LABEL ALIAS=hazelcast
|
|
38
38
|
|
|
39
39
|
FROM memcached:1.6.22-alpine
|
|
40
40
|
|
|
41
|
-
FROM redis:7.2.
|
|
41
|
+
FROM redis:7.2.3
|
|
42
42
|
|
|
43
|
-
FROM confluentinc/cp-kafka:7.5.
|
|
43
|
+
FROM confluentinc/cp-kafka:7.5.2
|
|
44
44
|
LABEL ALIAS=kafka
|
|
45
45
|
|
|
46
|
-
FROM confluentinc/cp-zookeeper:7.5.
|
|
46
|
+
FROM confluentinc/cp-zookeeper:7.5.2
|
|
47
47
|
LABEL ALIAS=zookeeper
|
|
48
48
|
|
|
49
|
-
FROM apachepulsar/pulsar:3.
|
|
49
|
+
FROM apachepulsar/pulsar:3.1.1
|
|
50
50
|
LABEL ALIAS=pulsar
|
|
51
51
|
|
|
52
|
-
FROM sonarqube:10.
|
|
52
|
+
FROM sonarqube:10.3.0-community
|
|
53
53
|
LABEL ALIAS=sonar
|
|
54
54
|
|
|
55
|
-
FROM docker.io/bitnami/consul:1.
|
|
55
|
+
FROM docker.io/bitnami/consul:1.17.0
|
|
56
56
|
LABEL ALIAS=consul
|
|
57
57
|
|
|
58
|
-
FROM prom/prometheus:v2.
|
|
58
|
+
FROM prom/prometheus:v2.48.0
|
|
59
59
|
LABEL ALIAS=prometheus
|
|
60
60
|
|
|
61
61
|
FROM prom/alertmanager:v0.26.0
|
|
@@ -64,7 +64,7 @@ LABEL ALIAS=prometheus-alertmanager
|
|
|
64
64
|
FROM quay.io/coreos/prometheus-operator:v0.42.1
|
|
65
65
|
LABEL ALIAS=prometheus-operator
|
|
66
66
|
|
|
67
|
-
FROM grafana/grafana:10.2.
|
|
67
|
+
FROM grafana/grafana:10.2.2
|
|
68
68
|
LABEL ALIAS=grafana
|
|
69
69
|
|
|
70
70
|
FROM quay.io/coreos/grafana-watcher:v0.0.8
|
|
@@ -79,5 +79,5 @@ LABEL ALIAS=java-jre
|
|
|
79
79
|
FROM swaggerapi/swagger-editor:latest
|
|
80
80
|
LABEL ALIAS=swagger-editor
|
|
81
81
|
|
|
82
|
-
FROM openzipkin/zipkin:
|
|
82
|
+
FROM openzipkin/zipkin:3.0
|
|
83
83
|
LABEL ALIAS=zipkin
|
|
@@ -3,16 +3,16 @@ gradle-git-properties = { id = 'com.gorylenko.gradle-git-properties', version =
|
|
|
3
3
|
|
|
4
4
|
node-gradle = { id = 'com.github.node-gradle.node', version = '7.0.1' }
|
|
5
5
|
|
|
6
|
-
gradle-liquibase = { id = 'org.liquibase.gradle', version = '2.2.
|
|
6
|
+
gradle-liquibase = { id = 'org.liquibase.gradle', version = '2.2.1' }
|
|
7
7
|
|
|
8
8
|
gradle-sonarqube = { id = 'org.sonarqube', version = '4.4.1.3373' }
|
|
9
9
|
|
|
10
|
-
spotless-gradle-plugin = { id = 'com.diffplug.spotless', version = '6.
|
|
10
|
+
spotless-gradle-plugin = { id = 'com.diffplug.spotless', version = '6.23.3' }
|
|
11
11
|
|
|
12
12
|
gradle-modernizer-plugin = { id = 'com.github.andygoossens.gradle-modernizer-plugin', version = '1.9.0' }
|
|
13
13
|
|
|
14
|
-
gradle-enterprise = { id = 'com.gradle.enterprise', version = '3.
|
|
14
|
+
gradle-enterprise = { id = 'com.gradle.enterprise', version = '3.16' }
|
|
15
15
|
|
|
16
|
-
common-custom-user-data-gradle-plugin = { id = 'com.gradle.common-custom-user-data-gradle-plugin', version = '1.12' }
|
|
16
|
+
common-custom-user-data-gradle-plugin = { id = 'com.gradle.common-custom-user-data-gradle-plugin', version = '1.12.1' }
|
|
17
17
|
|
|
18
18
|
gatling-gradle = { id = 'io.gatling.gradle', version = '3.9.5.6' }
|