generator-jhipster 8.3.0 → 8.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.
Files changed (430) hide show
  1. package/dist/generators/angular/generator.js +34 -0
  2. package/dist/generators/angular/resources/package.json +13 -13
  3. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +1 -1
  4. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +1 -1
  5. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +2 -2
  6. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +3 -6
  7. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +1 -1
  8. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +2 -2
  9. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +3 -6
  10. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +1 -1
  11. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +3 -6
  12. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +1 -1
  13. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +11 -11
  14. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +0 -2
  15. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +1 -1
  16. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/user-route-access.service.ts.ejs +1 -1
  17. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +0 -3
  18. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +2 -2
  19. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +2 -2
  20. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.ts.ejs +10 -6
  21. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +1 -1
  22. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +3 -3
  23. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +11 -17
  24. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +6 -6
  25. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/active-menu.directive.ts.ejs +3 -3
  26. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +1 -1
  27. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +2 -2
  28. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +3 -4
  29. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +2 -2
  30. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.spec.ts.ejs +10 -8
  31. package/dist/generators/angular/templates/src/main/webapp/app/shared/auth/has-any-authority.directive.ts.ejs +3 -8
  32. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +6 -2
  33. package/dist/generators/angular/templates/webpack/webpack.custom.js.ejs +1 -1
  34. package/dist/generators/app/generator.js +6 -33
  35. package/dist/generators/app/support/config.js +1 -3
  36. package/dist/generators/base/generator.js +15 -16
  37. package/dist/generators/base/priorities.js +12 -1
  38. package/dist/generators/base-application/generator.js +14 -2
  39. package/dist/generators/base-application/priorities.js +1 -0
  40. package/dist/generators/base-application/support/prepare-entity.js +7 -8
  41. package/dist/generators/base-application/support/prepare-field.js +1 -1
  42. package/dist/generators/base-application/support/prepare-relationship.js +3 -2
  43. package/dist/generators/base-core/generator.js +45 -11
  44. package/dist/generators/base-entity-changes/generator.js +24 -0
  45. package/dist/generators/bootstrap-application-base/generator.js +46 -1
  46. package/dist/generators/bootstrap-application-server/generator.js +5 -7
  47. package/dist/generators/ci-cd/generator.js +0 -5
  48. package/dist/generators/client/command.js +2 -2
  49. package/dist/generators/client/generator.js +0 -22
  50. package/dist/generators/client/generators/common/command.js +5 -0
  51. package/dist/generators/client/generators/common/generator.js +79 -0
  52. package/dist/generators/{app/prompts.js → client/generators/common/index.js} +2 -15
  53. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/headers.ts.ejs +57 -0
  54. package/dist/generators/client/generators/common/templates/src/main/webapp/app/shared/jhipster/problem-details.ts.ejs +51 -0
  55. package/dist/generators/client/resources/package.json +6 -6
  56. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
  57. package/dist/generators/common/command.js +13 -0
  58. package/dist/generators/common/generator.js +17 -3
  59. package/dist/generators/common/resources/package.json +2 -2
  60. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/login-page.cy.ts.ejs +4 -4
  61. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/password-page.cy.ts.ejs +2 -2
  62. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/register-page.cy.ts.ejs +1 -1
  63. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/reset-password-page.cy.ts.ejs +1 -1
  64. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +10 -10
  65. package/dist/generators/docker/templates/docker/mysql.yml.ejs +1 -1
  66. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +14 -3
  67. package/dist/generators/docker-compose/generator.js +1 -5
  68. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +14 -3
  69. package/dist/generators/entity/generator.js +2 -10
  70. package/dist/generators/entity/prompts.js +6 -11
  71. package/dist/generators/export-jdl/generator.js +0 -5
  72. package/dist/generators/gatling/README.md +15 -0
  73. package/dist/generators/gatling/templates/buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle.ejs +1 -1
  74. package/dist/generators/gatling/templates/src/test/java/gatling/simulations/_entityClass_GatlingTest.java.ejs +2 -10
  75. package/dist/generators/generate-blueprint/command.js +16 -0
  76. package/dist/generators/generate-blueprint/files.js +8 -0
  77. package/dist/generators/generate-blueprint/generator.js +17 -10
  78. package/dist/generators/generate-blueprint/resources/package.json +1 -1
  79. package/dist/generators/generate-blueprint/templates/.blueprint/cli/commands.mjs.ejs +6 -0
  80. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/command.mjs.ejs +20 -0
  81. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +9 -13
  82. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/build-matrix.mjs.ejs +22 -0
  83. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/generator.mjs.ejs +24 -0
  84. package/dist/generators/generate-blueprint/templates/.blueprint/github-build-matrix/index.mjs.ejs +1 -0
  85. package/dist/generators/generate-blueprint/templates/.eslintrc.json.ejs +2 -2
  86. package/dist/generators/generate-blueprint/templates/README.md.ejs +16 -8
  87. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -0
  88. package/dist/generators/generator-constants.js +1 -1
  89. package/dist/generators/heroku/generator.js +0 -5
  90. package/dist/generators/info/generator.js +1 -3
  91. package/dist/generators/init/generator.js +2 -2
  92. package/dist/generators/init/resources/.node-version +1 -1
  93. package/dist/generators/java/generators/build-tool/command.js +4 -1
  94. package/dist/generators/java/generators/domain/generator.js +16 -0
  95. package/dist/generators/java/generators/domain/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +1 -5
  96. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +3 -3
  97. package/dist/generators/java/generators/domain/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +3 -3
  98. package/dist/generators/java/support/add-java-annotation.js +28 -7
  99. package/dist/generators/java/support/generated-annotation-transform.js +1 -1
  100. package/dist/generators/java/support/index.js +1 -1
  101. package/dist/generators/jdl/generator.js +1 -5
  102. package/dist/generators/kubernetes/files.js +1 -1
  103. package/dist/generators/kubernetes/generator.js +0 -5
  104. package/dist/generators/kubernetes/templates/db/mysql.yml.ejs +0 -1
  105. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +14 -3
  106. package/dist/generators/kubernetes-helm/generator.js +0 -5
  107. package/dist/generators/kubernetes-knative/generator.js +0 -5
  108. package/dist/generators/languages/files.js +2 -2
  109. package/dist/generators/languages/generator.js +4 -8
  110. package/dist/generators/languages/templates/src/main/webapp/i18n/al/home.json.ejs +19 -0
  111. package/dist/generators/languages/templates/src/main/webapp/i18n/ar-ly/home.json.ejs +19 -0
  112. package/dist/generators/languages/templates/src/main/webapp/i18n/az-Latn-az/home.json.ejs +19 -0
  113. package/dist/generators/languages/templates/src/main/webapp/i18n/bg/home.json.ejs +19 -0
  114. package/dist/generators/languages/templates/src/main/webapp/i18n/bn/home.json.ejs +19 -0
  115. package/dist/generators/languages/templates/src/main/webapp/i18n/by/home.json.ejs +19 -0
  116. package/dist/generators/languages/templates/src/main/webapp/i18n/ca/home.json.ejs +19 -0
  117. package/dist/generators/languages/templates/src/main/webapp/i18n/cs/home.json.ejs +19 -0
  118. package/dist/generators/languages/templates/src/main/webapp/i18n/da/home.json.ejs +19 -0
  119. package/dist/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +2 -2
  120. package/dist/generators/languages/templates/src/main/webapp/i18n/de/home.json.ejs +19 -0
  121. package/dist/generators/languages/templates/src/main/webapp/i18n/el/home.json.ejs +19 -0
  122. package/dist/generators/languages/templates/src/main/webapp/i18n/en/home.json.ejs +19 -0
  123. package/dist/generators/languages/templates/src/main/webapp/i18n/es/home.json.ejs +19 -0
  124. package/dist/generators/languages/templates/src/main/webapp/i18n/et/home.json.ejs +19 -0
  125. package/dist/generators/languages/templates/src/main/webapp/i18n/fa/home.json.ejs +19 -0
  126. package/dist/generators/languages/templates/src/main/webapp/i18n/fi/home.json.ejs +19 -0
  127. package/dist/generators/languages/templates/src/main/webapp/i18n/fr/home.json.ejs +19 -0
  128. package/dist/generators/languages/templates/src/main/webapp/i18n/gl/home.json.ejs +19 -0
  129. package/dist/generators/languages/templates/src/main/webapp/i18n/hi/home.json.ejs +19 -0
  130. package/dist/generators/languages/templates/src/main/webapp/i18n/hr/home.json.ejs +19 -0
  131. package/dist/generators/languages/templates/src/main/webapp/i18n/hu/home.json.ejs +19 -0
  132. package/dist/generators/languages/templates/src/main/webapp/i18n/hy/home.json.ejs +19 -0
  133. package/dist/generators/languages/templates/src/main/webapp/i18n/id/home.json.ejs +19 -0
  134. package/dist/generators/languages/templates/src/main/webapp/i18n/it/home.json.ejs +19 -0
  135. package/dist/generators/languages/templates/src/main/webapp/i18n/ja/home.json.ejs +19 -0
  136. package/dist/generators/languages/templates/src/main/webapp/i18n/ko/home.json.ejs +19 -0
  137. package/dist/generators/languages/templates/src/main/webapp/i18n/kr-Latn-kr/home.json.ejs +19 -0
  138. package/dist/generators/languages/templates/src/main/webapp/i18n/mr/home.json.ejs +19 -0
  139. package/dist/generators/languages/templates/src/main/webapp/i18n/my/home.json.ejs +19 -0
  140. package/dist/generators/languages/templates/src/main/webapp/i18n/nl/home.json.ejs +19 -0
  141. package/dist/generators/languages/templates/src/main/webapp/i18n/pa/{home.json → home.json.ejs} +2 -2
  142. package/dist/generators/languages/templates/src/main/webapp/i18n/pl/home.json.ejs +19 -0
  143. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-br/home.json.ejs +19 -0
  144. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-pt/home.json.ejs +19 -0
  145. package/dist/generators/languages/templates/src/main/webapp/i18n/ro/home.json.ejs +19 -0
  146. package/dist/generators/languages/templates/src/main/webapp/i18n/ru/home.json.ejs +19 -0
  147. package/dist/generators/languages/templates/src/main/webapp/i18n/si/{home.json → home.json.ejs} +6 -6
  148. package/dist/generators/languages/templates/src/main/webapp/i18n/sk/home.json.ejs +19 -0
  149. package/dist/generators/languages/templates/src/main/webapp/i18n/sr/home.json.ejs +19 -0
  150. package/dist/generators/languages/templates/src/main/webapp/i18n/sv/home.json.ejs +19 -0
  151. package/dist/generators/languages/templates/src/main/webapp/i18n/ta/home.json.ejs +19 -0
  152. package/dist/generators/languages/templates/src/main/webapp/i18n/te/{home.json → home.json.ejs} +1 -1
  153. package/dist/generators/languages/templates/src/main/webapp/i18n/th/home.json.ejs +19 -0
  154. package/dist/generators/languages/templates/src/main/webapp/i18n/tr/home.json.ejs +19 -0
  155. package/dist/generators/languages/templates/src/main/webapp/i18n/ua/home.json.ejs +19 -0
  156. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/home.json.ejs +19 -0
  157. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/home.json.ejs +19 -0
  158. package/dist/generators/languages/templates/src/main/webapp/i18n/vi/home.json.ejs +19 -0
  159. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-cn/home.json.ejs +19 -0
  160. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-tw/home.json.ejs +19 -0
  161. package/dist/generators/liquibase/generator.js +59 -12
  162. package/dist/generators/liquibase/support/prepare-field.js +16 -1
  163. package/dist/generators/liquibase/support/relationship.js +1 -0
  164. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +1 -1
  165. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +3 -3
  166. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +26 -1
  167. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/fake-data/table_entity.csv.ejs +3 -3
  168. package/dist/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -2
  169. package/dist/generators/maven/templates/mvnw +185 -243
  170. package/dist/generators/maven/templates/mvnw.cmd +121 -180
  171. package/dist/generators/react/generator.js +10 -0
  172. package/dist/generators/react/resources/package.json +30 -30
  173. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +1 -1
  174. package/dist/generators/react/templates/src/main/webapp/app/config/axios-interceptor.ts.ejs +1 -1
  175. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +1 -1
  176. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.ts.ejs +80 -87
  177. package/dist/generators/react/templates/src/main/webapp/app/config/store.ts.ejs +1 -1
  178. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +3 -3
  179. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +12 -7
  180. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +7 -7
  181. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +2 -3
  182. package/dist/generators/react/templates/webpack/webpack.microfrontend.js.jhi.react.ejs +0 -8
  183. package/dist/generators/server/command.js +0 -11
  184. package/dist/generators/server/generator.js +19 -115
  185. package/dist/generators/server/jdl/application-definition.js +3 -1
  186. package/dist/generators/server/resources/Dockerfile +15 -15
  187. package/dist/generators/server/resources/gradle/libs.versions.toml +12 -10
  188. package/dist/generators/server/resources/pom.xml +10 -10
  189. package/dist/generators/server/support/config.js +4 -8
  190. package/dist/generators/server/support/prepare-entity.js +5 -6
  191. package/dist/generators/server/support/prepare-field.js +7 -2
  192. package/dist/generators/server/support/prepare-relationship.js +7 -2
  193. package/dist/generators/server/support/relationship.js +5 -2
  194. package/dist/generators/server/templates/build.gradle.ejs +5 -3
  195. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -2
  196. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +3 -2
  197. package/dist/generators/server/templates/gradle.properties.ejs +1 -1
  198. package/dist/generators/server/templates/pom.xml.ejs +7 -9
  199. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +1 -1
  200. package/dist/generators/server/templates/src/main/java/_package_/config/Constants.java.ejs +0 -2
  201. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +57 -24
  202. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +1 -15
  203. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityJwtConfiguration.java.ejs +0 -20
  204. package/dist/generators/server/templates/src/main/java/_package_/security/SecurityUtils.java.ejs +65 -5
  205. package/dist/generators/server/templates/src/main/java/_package_/service/dto/UserDTO.java.ejs +23 -0
  206. package/dist/generators/server/templates/src/main/java/_package_/service/mapper/UserMapper.java.ejs +8 -4
  207. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource_skipUserManagement.java.ejs +43 -9
  208. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +60 -22
  209. package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
  210. package/dist/generators/server/templates/src/main/resources/static/index_microservices.html.ejs +8 -8
  211. package/dist/generators/server/templates/src/main/resources/swagger/api.yml.ejs +1 -1
  212. package/dist/generators/server/templates/src/test/java/_package_/security/DomainUserDetailsServiceIT.java.ejs +31 -13
  213. package/dist/generators/server/templates/src/test/java/_package_/service/mapper/UserMapperTest.java.ejs +84 -17
  214. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +62 -6
  215. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT_oauth2.java.ejs +22 -0
  216. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +20 -10
  217. package/dist/generators/spring-boot/cleanup.js +3 -0
  218. package/dist/generators/spring-boot/command.js +127 -7
  219. package/dist/generators/spring-boot/files.js +0 -10
  220. package/dist/generators/spring-boot/generator.js +54 -4
  221. package/dist/generators/{server → spring-boot}/prompts.js +8 -72
  222. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +380 -588
  223. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/service/UserServiceIT.java.ejs +47 -11
  224. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/PublicUserResourceIT.java.ejs +60 -24
  225. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/UserResourceIT.java.ejs +195 -318
  226. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +58 -51
  227. package/dist/generators/spring-cache/internal/dependencies.js +2 -2
  228. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +2 -2
  229. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +4 -0
  230. package/dist/generators/spring-cloud/generators/gateway/command.js +5 -1
  231. package/dist/generators/spring-cloud/generators/gateway/generator.js +13 -0
  232. package/dist/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.js +6 -0
  233. package/dist/generators/spring-data-cassandra/generator.js +2 -2
  234. package/dist/generators/spring-data-relational/support/h2-reserved-keywords.js +22 -0
  235. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +3 -1
  236. package/dist/generators/upgrade/generator.js +0 -4
  237. package/dist/generators/vue/resources/package.json +22 -22
  238. package/dist/generators/vue/templates/src/main/webapp/app/account/change-password/change-password.vue.ejs +1 -1
  239. package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.vue.ejs +1 -1
  240. package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.vue.ejs +1 -1
  241. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.vue.ejs +1 -1
  242. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/init/reset-password-init.vue.ejs +1 -1
  243. package/dist/generators/vue/templates/src/main/webapp/app/account/settings/settings.vue.ejs +1 -1
  244. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.spec.ts.ejs +1 -1
  245. package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management-edit.vue.ejs +1 -1
  246. package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.vue.ejs +7 -7
  247. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -1
  248. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +2 -2
  249. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +1 -1
  250. package/dist/generators/vue/templates/src/main/webapp/app/shared/alert/alert.service.spec.ts.ejs +8 -8
  251. package/dist/generators/vue/templates/src/main/webapp/app/shared/data/data-utils.service.spec.ts.ejs +1 -1
  252. package/dist/generators/vue/templates/tsconfig.app.json.ejs +1 -1
  253. package/dist/generators/vue/templates/vite.config.mts.ejs +5 -4
  254. package/dist/generators/vue/templates/vitest.config.mts.ejs +1 -1
  255. package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +0 -9
  256. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -1
  257. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +4 -4
  258. package/dist/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.js +9 -9
  259. package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +2 -2
  260. package/dist/jdl/converters/json-to-jdl-application-converter.js +1 -1
  261. package/dist/jdl/converters/json-to-jdl-converter.js +6 -5
  262. package/dist/jdl/converters/json-to-jdl-entity-converter.js +14 -14
  263. package/dist/jdl/converters/json-to-jdl-option-converter.js +1 -2
  264. package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -1
  265. package/dist/jdl/converters/parsed-jdl-to-jdl-object/option-converter.js +2 -2
  266. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +7 -6
  267. package/dist/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.js +1 -1
  268. package/dist/jdl/exporters/applications/jhipster-application-formatter.js +16 -23
  269. package/dist/jdl/exporters/config.js +1 -0
  270. package/dist/jdl/exporters/jhipster-deployment-exporter.js +5 -5
  271. package/dist/jdl/exporters/jhipster-entity-exporter.js +1 -1
  272. package/dist/jdl/jdl-importer.js +22 -20
  273. package/dist/jdl/jhipster/binary-options.js +12 -8
  274. package/dist/jdl/jhipster/json-entity.js +1 -1
  275. package/dist/jdl/models/abstract-jdl-option.js +2 -2
  276. package/dist/jdl/models/jdl-application-configuration-factory.js +2 -0
  277. package/dist/jdl/models/jdl-binary-option.js +2 -2
  278. package/dist/jdl/models/jdl-deployment.js +11 -0
  279. package/dist/jdl/models/jdl-entity.js +1 -1
  280. package/dist/jdl/models/jdl-enum.js +1 -1
  281. package/dist/jdl/models/jdl-enums.js +0 -18
  282. package/dist/jdl/models/jdl-field.js +2 -2
  283. package/dist/jdl/models/jdl-object-wrapper.js +1 -0
  284. package/dist/jdl/models/jdl-object.js +23 -45
  285. package/dist/jdl/models/jdl-options.js +0 -18
  286. package/dist/jdl/models/jdl-relationships.js +8 -16
  287. package/dist/jdl/models/jdl-unary-option.js +1 -1
  288. package/dist/jdl/models/list-jdl-application-configuration-option.js +5 -2
  289. package/dist/jdl/parsing/jdl-ast-builder-visitor.js +12 -0
  290. package/dist/jdl/parsing/jdl-parser.js +14 -0
  291. package/dist/jdl/parsing/lexer/lexer.js +17 -11
  292. package/dist/jdl/parsing/validator.js +16 -2
  293. package/dist/jdl/readers/json-reader.js +1 -1
  294. package/dist/jdl/utils/array-utils.js +6 -0
  295. package/dist/jdl/utils/set-utils.js +3 -2
  296. package/dist/jdl/validators/jdl-without-application-validator.js +2 -2
  297. package/dist/testing/helpers.js +4 -0
  298. package/dist/types/generators/base/api.d.ts +6 -2
  299. package/dist/types/generators/base/generator.d.ts +10 -4
  300. package/dist/types/generators/base/priorities.d.ts +4 -0
  301. package/dist/types/generators/base/shared-data.d.ts +1 -1
  302. package/dist/types/generators/base-application/priorities.d.ts +2 -0
  303. package/dist/types/generators/base-application/support/entity.d.ts +2 -2
  304. package/dist/types/generators/base-application/support/prepare-entity.d.ts +3 -3
  305. package/dist/types/generators/base-application/support/relationship.d.ts +5 -5
  306. package/dist/types/generators/base-application/types.d.ts +15 -0
  307. package/dist/types/generators/base-core/generator.d.ts +16 -1
  308. package/dist/types/generators/base-entity-changes/types.d.ts +2 -0
  309. package/dist/types/generators/generator-constants.d.ts +1 -1
  310. package/dist/types/generators/java/support/add-java-annotation.d.ts +10 -20
  311. package/dist/types/generators/java/support/doc.d.ts +1 -1
  312. package/dist/types/generators/java/support/index.d.ts +1 -1
  313. package/dist/types/generators/server/support/relationship.d.ts +2 -2
  314. package/dist/types/generators/server/types.d.ts +5 -0
  315. package/dist/types/generators/spring-cloud/generators/gateway/jdl/jdl-routes-option.d.ts +2 -0
  316. package/dist/types/generators/spring-cloud/generators/gateway/types.d.ts +4 -0
  317. package/dist/types/generators/spring-data-relational/support/h2-reserved-keywords.d.ts +20 -0
  318. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +2 -2
  319. package/dist/types/jdl/converters/jdl-to-json/jdl-with-applications-to-json-converter.d.ts +2 -1
  320. package/dist/types/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.d.ts +3 -1
  321. package/dist/types/jdl/converters/json-to-jdl-application-converter.d.ts +9 -2
  322. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +3 -3
  323. package/dist/types/jdl/converters/json-to-jdl-entity-converter.d.ts +2 -4
  324. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/application-converter.d.ts +3 -1
  325. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/deployment-converter.d.ts +2 -1
  326. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.d.ts +3 -1
  327. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/enum-converter.d.ts +2 -1
  328. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/field-converter.d.ts +2 -1
  329. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +3 -3
  330. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.d.ts +2 -1
  331. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/relationship-converter.d.ts +2 -1
  332. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/types.d.ts +110 -0
  333. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/validation-converter.d.ts +2 -1
  334. package/dist/types/jdl/converters/types.d.ts +102 -14
  335. package/dist/types/jdl/exporters/applications/jhipster-application-formatter.d.ts +4 -4
  336. package/dist/types/jdl/exporters/config.d.ts +2 -1
  337. package/dist/types/jdl/exporters/export-utils.d.ts +2 -1
  338. package/dist/types/jdl/exporters/jdl-exporter.d.ts +2 -1
  339. package/dist/types/jdl/exporters/jhipster-deployment-exporter.d.ts +3 -1
  340. package/dist/types/jdl/exporters/jhipster-entity-exporter.d.ts +3 -1
  341. package/dist/types/jdl/exporters/types.d.ts +61 -0
  342. package/dist/types/jdl/jhipster/binary-options.d.ts +8 -26
  343. package/dist/types/jdl/jhipster/field-types.d.ts +2 -2
  344. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -2
  345. package/dist/types/jdl/models/abstract-jdl-option.d.ts +14 -9
  346. package/dist/types/jdl/models/boolean-jdl-application-configuration-option.d.ts +1 -1
  347. package/dist/types/jdl/models/integer-jdl-application-configuration-option.d.ts +1 -1
  348. package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -1
  349. package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +4 -4
  350. package/dist/types/jdl/models/jdl-application-configuration.d.ts +4 -4
  351. package/dist/types/jdl/models/jdl-application-definition.d.ts +4 -4
  352. package/dist/types/jdl/models/jdl-application-entities.d.ts +4 -4
  353. package/dist/types/jdl/models/jdl-application.d.ts +16 -13
  354. package/dist/types/jdl/models/jdl-binary-option.d.ts +5 -3
  355. package/dist/types/jdl/models/jdl-deployment.d.ts +13 -1
  356. package/dist/types/jdl/models/jdl-entity.d.ts +5 -5
  357. package/dist/types/jdl/models/jdl-enum-value.d.ts +4 -4
  358. package/dist/types/jdl/models/jdl-enum.d.ts +9 -5
  359. package/dist/types/jdl/models/jdl-enums.d.ts +6 -5
  360. package/dist/types/jdl/models/jdl-field.d.ts +10 -8
  361. package/dist/types/jdl/models/jdl-object-wrapper.d.ts +25 -0
  362. package/dist/types/jdl/models/jdl-object.d.ts +23 -19
  363. package/dist/types/jdl/models/jdl-options.d.ts +7 -24
  364. package/dist/types/jdl/models/jdl-relationship.d.ts +16 -10
  365. package/dist/types/jdl/models/jdl-relationships.d.ts +5 -5
  366. package/dist/types/jdl/models/jdl-validation.d.ts +3 -3
  367. package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +4 -3
  368. package/dist/types/jdl/models/string-jdl-application-configuration-option.d.ts +2 -2
  369. package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +1 -0
  370. package/dist/types/jdl/parsing/jdl-parser.d.ts +1 -0
  371. package/dist/types/jdl/parsing/jdl-parsing-types.d.ts +23 -0
  372. package/dist/types/jdl/parsing/lexer/lexer.d.ts +6 -2
  373. package/dist/types/jdl/parsing/validator.d.ts +1 -1
  374. package/dist/types/jdl/utils/array-utils.d.ts +1 -0
  375. package/dist/types/jdl/utils/set-utils.d.ts +1 -19
  376. package/dist/types/jdl/validators/deployment-validator.d.ts +2 -1
  377. package/dist/types/testing/helpers.d.ts +13 -3
  378. package/package.json +30 -30
  379. package/dist/generators/languages/templates/src/main/webapp/i18n/al/home.json +0 -19
  380. package/dist/generators/languages/templates/src/main/webapp/i18n/ar-ly/home.json +0 -19
  381. package/dist/generators/languages/templates/src/main/webapp/i18n/az-Latn-az/home.json +0 -19
  382. package/dist/generators/languages/templates/src/main/webapp/i18n/bg/home.json +0 -19
  383. package/dist/generators/languages/templates/src/main/webapp/i18n/bn/home.json +0 -19
  384. package/dist/generators/languages/templates/src/main/webapp/i18n/by/home.json +0 -19
  385. package/dist/generators/languages/templates/src/main/webapp/i18n/ca/home.json +0 -19
  386. package/dist/generators/languages/templates/src/main/webapp/i18n/cs/home.json +0 -19
  387. package/dist/generators/languages/templates/src/main/webapp/i18n/da/home.json +0 -19
  388. package/dist/generators/languages/templates/src/main/webapp/i18n/de/home.json +0 -19
  389. package/dist/generators/languages/templates/src/main/webapp/i18n/el/home.json +0 -19
  390. package/dist/generators/languages/templates/src/main/webapp/i18n/en/home.json +0 -19
  391. package/dist/generators/languages/templates/src/main/webapp/i18n/es/home.json +0 -19
  392. package/dist/generators/languages/templates/src/main/webapp/i18n/et/home.json +0 -19
  393. package/dist/generators/languages/templates/src/main/webapp/i18n/fa/home.json +0 -19
  394. package/dist/generators/languages/templates/src/main/webapp/i18n/fi/home.json +0 -19
  395. package/dist/generators/languages/templates/src/main/webapp/i18n/fr/home.json +0 -19
  396. package/dist/generators/languages/templates/src/main/webapp/i18n/gl/home.json +0 -19
  397. package/dist/generators/languages/templates/src/main/webapp/i18n/hi/home.json +0 -19
  398. package/dist/generators/languages/templates/src/main/webapp/i18n/hr/home.json +0 -19
  399. package/dist/generators/languages/templates/src/main/webapp/i18n/hu/home.json +0 -19
  400. package/dist/generators/languages/templates/src/main/webapp/i18n/hy/home.json +0 -19
  401. package/dist/generators/languages/templates/src/main/webapp/i18n/id/home.json +0 -19
  402. package/dist/generators/languages/templates/src/main/webapp/i18n/it/home.json +0 -19
  403. package/dist/generators/languages/templates/src/main/webapp/i18n/ja/home.json +0 -19
  404. package/dist/generators/languages/templates/src/main/webapp/i18n/ko/home.json +0 -19
  405. package/dist/generators/languages/templates/src/main/webapp/i18n/kr-Latn-kr/home.json +0 -19
  406. package/dist/generators/languages/templates/src/main/webapp/i18n/mr/home.json +0 -19
  407. package/dist/generators/languages/templates/src/main/webapp/i18n/my/home.json +0 -19
  408. package/dist/generators/languages/templates/src/main/webapp/i18n/nl/home.json +0 -19
  409. package/dist/generators/languages/templates/src/main/webapp/i18n/pl/home.json +0 -19
  410. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-br/home.json +0 -19
  411. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-pt/home.json +0 -19
  412. package/dist/generators/languages/templates/src/main/webapp/i18n/ro/home.json +0 -19
  413. package/dist/generators/languages/templates/src/main/webapp/i18n/ru/home.json +0 -19
  414. package/dist/generators/languages/templates/src/main/webapp/i18n/sk/home.json +0 -19
  415. package/dist/generators/languages/templates/src/main/webapp/i18n/sr/home.json +0 -19
  416. package/dist/generators/languages/templates/src/main/webapp/i18n/sv/home.json +0 -19
  417. package/dist/generators/languages/templates/src/main/webapp/i18n/ta/home.json +0 -19
  418. package/dist/generators/languages/templates/src/main/webapp/i18n/th/home.json +0 -19
  419. package/dist/generators/languages/templates/src/main/webapp/i18n/tr/home.json +0 -19
  420. package/dist/generators/languages/templates/src/main/webapp/i18n/ua/home.json +0 -19
  421. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json +0 -148
  422. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/home.json +0 -19
  423. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/home.json +0 -19
  424. package/dist/generators/languages/templates/src/main/webapp/i18n/vi/home.json +0 -19
  425. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-cn/home.json +0 -19
  426. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-tw/home.json +0 -19
  427. package/dist/generators/server/templates/src/main/java/_package_/config/LocaleConfiguration_imperative.java.ejs +0 -43
  428. package/dist/generators/server/templates/src/main/java/_package_/config/LocaleConfiguration_reactive.java.ejs +0 -184
  429. package/dist/generators/statistics.js +0 -223
  430. /package/dist/jdl/converters/{types.js → parsed-jdl-to-jdl-object/types.js} +0 -0
@@ -19,14 +19,24 @@
19
19
  package <%= packageName %>.service.mapper;
20
20
 
21
21
  import <%= user.entityAbsoluteClass %>;
22
+ import <%= packageName %>.security.AuthoritiesConstants;
22
23
  import <%= packageName %>.service.dto.<%= user.adminUserDto %>;
23
24
  import <%= packageName %>.service.dto.<%= user.dtoClass %>;
25
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
26
+ import <%= packageName %>.domain.Authority;
27
+ <%_ } else { _%>
28
+ import java.util.stream.Stream;
29
+ import java.util.stream.Collectors;
30
+ <%_ } _%>
24
31
  <%_ if (!authenticationTypeOauth2) { _%>
25
32
  import org.apache.commons.lang3.RandomStringUtils;
26
33
  <%_ } _%>
27
34
  import org.junit.jupiter.api.BeforeEach;
28
35
  import org.junit.jupiter.api.Test;
29
36
 
37
+ <%_ if (generateSpringAuditor) { _%>
38
+ import java.time.Instant;
39
+ <%_ } _%>
30
40
  import java.util.ArrayList;
31
41
  import java.util.HashSet;
32
42
  import java.util.List;
@@ -67,12 +77,74 @@ class UserMapperTest {
67
77
  user.setLastName("doe");
68
78
  <%_ if (!databaseTypeCassandra) { _%>
69
79
  user.setImageUrl("image_url");
80
+ <%_ } _%>
81
+ <%_ if (generateSpringAuditor) { _%>
82
+ user.setCreatedBy(DEFAULT_LOGIN);
83
+ user.setCreatedDate(Instant.now());
84
+ user.setLastModifiedBy(DEFAULT_LOGIN);
85
+ user.setLastModifiedDate(Instant.now());
70
86
  <%_ } _%>
71
87
  user.setLangKey("en");
72
88
 
89
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
90
+ Set<Authority> authorities = new HashSet<>();
91
+ Authority authority = new Authority();
92
+ authority.setName(AuthoritiesConstants.USER);
93
+ authorities.add(authority);
94
+ user.setAuthorities(authorities);
95
+ <%_ } else { _%>
96
+ user.setAuthorities(Stream.of(AuthoritiesConstants.USER).collect(Collectors.toSet()));
97
+ <%_ } _%>
98
+
73
99
  userDto = new <%= user.adminUserDto %>(user);
74
100
  }
75
101
 
102
+ @Test
103
+ void testUserToUserDTO() {
104
+ <%= user.adminUserDto %> convertedUserDto = userMapper.userToAdminUserDTO(user);
105
+
106
+ assertThat(convertedUserDto.getId()).isEqualTo(user.getId());
107
+ assertThat(convertedUserDto.getLogin()).isEqualTo(user.getLogin());
108
+ assertThat(convertedUserDto.getFirstName()).isEqualTo(user.getFirstName());
109
+ assertThat(convertedUserDto.getLastName()).isEqualTo(user.getLastName());
110
+ assertThat(convertedUserDto.getEmail()).isEqualTo(user.getEmail());
111
+ assertThat(convertedUserDto.isActivated()).isEqualTo(user.isActivated());
112
+ <%_ if (!databaseTypeCassandra) { _%>
113
+ assertThat(convertedUserDto.getImageUrl()).isEqualTo(user.getImageUrl());
114
+ <%_ } _%>
115
+ <%_ if (generateSpringAuditor) { _%>
116
+ assertThat(convertedUserDto.getCreatedBy()).isEqualTo(user.getCreatedBy());
117
+ assertThat(convertedUserDto.getCreatedDate()).isEqualTo(user.getCreatedDate());
118
+ assertThat(convertedUserDto.getLastModifiedBy()).isEqualTo(user.getLastModifiedBy());
119
+ assertThat(convertedUserDto.getLastModifiedDate()).isEqualTo(user.getLastModifiedDate());
120
+ <%_ } _%>
121
+ assertThat(convertedUserDto.getLangKey()).isEqualTo(user.getLangKey());
122
+ assertThat(convertedUserDto.getAuthorities()).containsExactly(AuthoritiesConstants.USER);
123
+ }
124
+
125
+ @Test
126
+ void testUserDTOtoUser() {
127
+ <%= user.persistClass %> convertedUser = userMapper.userDTOToUser(userDto);
128
+
129
+ assertThat(convertedUser.getId()).isEqualTo(userDto.getId());
130
+ assertThat(convertedUser.getLogin()).isEqualTo(userDto.getLogin());
131
+ assertThat(convertedUser.getFirstName()).isEqualTo(userDto.getFirstName());
132
+ assertThat(convertedUser.getLastName()).isEqualTo(userDto.getLastName());
133
+ assertThat(convertedUser.getEmail()).isEqualTo(userDto.getEmail());
134
+ assertThat(convertedUser.isActivated()).isEqualTo(userDto.isActivated());
135
+ <%_ if (!databaseTypeCassandra) { _%>
136
+ assertThat(convertedUser.getImageUrl()).isEqualTo(userDto.getImageUrl());
137
+ <%_ } _%>
138
+ assertThat(convertedUser.getLangKey()).isEqualTo(userDto.getLangKey());
139
+ <%_ if (generateSpringAuditor) { _%>
140
+ assertThat(convertedUser.getCreatedBy()).isEqualTo(userDto.getCreatedBy());
141
+ assertThat(convertedUser.getCreatedDate()).isEqualTo(userDto.getCreatedDate());
142
+ assertThat(convertedUser.getLastModifiedBy()).isEqualTo(userDto.getLastModifiedBy());
143
+ assertThat(convertedUser.getLastModifiedDate()).isEqualTo(userDto.getLastModifiedDate());
144
+ <%_ } _%>
145
+ assertThat(convertedUser.getAuthorities())<% if (!databaseTypeCassandra && !databaseTypeCouchbase) { %>.extracting("name")<%_ } _%>.containsExactly(AuthoritiesConstants.USER);
146
+ }
147
+
76
148
  @Test
77
149
  void usersToUserDTOsShouldMapOnlyNonNullUsers() {
78
150
  List<<%= user.persistClass %>> users = new ArrayList<>();
@@ -141,20 +213,15 @@ class UserMapperTest {
141
213
 
142
214
  @Test
143
215
  void userDTOToUserMapWithAuthoritiesStringShouldReturnUserWithAuthorities() {
144
- Set<String> authoritiesAsString = new HashSet<>();
145
- authoritiesAsString.add("ADMIN");
146
- userDto.setAuthorities(authoritiesAsString);
147
-
148
- <%= user.persistClass %> user = userMapper.userDTOToUser(userDto);
216
+ <%= user.persistClass %> convertedUser = userMapper.userDTOToUser(userDto);
149
217
 
150
- assertThat(user).isNotNull();
151
- assertThat(user.getAuthorities()).isNotNull();
152
- assertThat(user.getAuthorities()).isNotEmpty();
153
- <%_ if (databaseTypeSql || databaseTypeMongodb) { _%>
154
- assertThat(user.getAuthorities().iterator().next().getName()).isEqualTo("ADMIN");
155
- <%_ } _%>
156
- <%_ if (databaseTypeCassandra || databaseTypeCouchbase) { _%>
157
- assertThat(user.getAuthorities().iterator().next()).isEqualTo("ADMIN");
218
+ assertThat(convertedUser).isNotNull();
219
+ assertThat(convertedUser.getAuthorities()).isNotNull();
220
+ assertThat(convertedUser.getAuthorities()).isNotEmpty();
221
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
222
+ assertThat(convertedUser.getAuthorities().iterator().next().getName()).isEqualTo(AuthoritiesConstants.USER);
223
+ <%_ } else { _%>
224
+ assertThat(convertedUser.getAuthorities().iterator().next()).isEqualTo(AuthoritiesConstants.USER);
158
225
  <%_ } _%>
159
226
  }
160
227
 
@@ -162,11 +229,11 @@ class UserMapperTest {
162
229
  void userDTOToUserMapWithNullAuthoritiesStringShouldReturnUserWithEmptyAuthorities() {
163
230
  userDto.setAuthorities(null);
164
231
 
165
- <%= user.persistClass %> user = userMapper.userDTOToUser(userDto);
232
+ <%= user.persistClass %> persistUser = userMapper.userDTOToUser(userDto);
166
233
 
167
- assertThat(user).isNotNull();
168
- assertThat(user.getAuthorities()).isNotNull();
169
- assertThat(user.getAuthorities()).isEmpty();
234
+ assertThat(persistUser).isNotNull();
235
+ assertThat(persistUser.getAuthorities()).isNotNull();
236
+ assertThat(persistUser.getAuthorities()).isEmpty();
170
237
  }
171
238
 
172
239
  @Test
@@ -44,9 +44,8 @@ import <%= packageName %>.web.rest.vm.ManagedUserVM;
44
44
 
45
45
  import com.fasterxml.jackson.databind.ObjectMapper;
46
46
  import org.apache.commons.lang3.RandomStringUtils;
47
- <%_ if (reactive && authenticationUsesCsrf || databaseTypeMongodb || databaseTypeNeo4j) { _%>
47
+ import org.junit.jupiter.api.AfterEach;
48
48
  import org.junit.jupiter.api.BeforeEach;
49
- <%_ } _%>
50
49
  import org.junit.jupiter.api.Test;
51
50
  import org.junit.jupiter.params.ParameterizedTest;
52
51
  import org.junit.jupiter.params.provider.MethodSource;
@@ -144,10 +143,12 @@ class AccountResourceIT {
144
143
  private MockMvc restAccountMockMvc;
145
144
  <%_ } _%>
146
145
 
147
- <%_ if (databaseTypeMongodb || databaseTypeNeo4j) { _%>
146
+ <%_ if (!databaseTypeCassandra && !requiresDeleteAllUsers) { _%>
147
+ private Long numberOfUsers;
148
+
148
149
  @BeforeEach
149
- public void setup() {
150
- userRepository.deleteAll()<% if (reactive) { %>.block()<% } %>;
150
+ public void countUsers() {
151
+ numberOfUsers = userRepository.count()<%- reactorBlock %>;
151
152
  }
152
153
 
153
154
  <%_ } _%>
@@ -158,6 +159,16 @@ class AccountResourceIT {
158
159
  }
159
160
 
160
161
  <%_ } _%>
162
+ @AfterEach
163
+ public void cleanupAndCheck() {
164
+ <%_ if (requiresDeleteAllUsers) { _%>
165
+ userRepository.deleteAll()<%- reactorBlock %>;
166
+ <%_ } else if (!databaseTypeCassandra) { _%>
167
+ assertThat(userRepository.count()<%- reactorBlock %>).isEqualTo(numberOfUsers);
168
+ numberOfUsers = null;
169
+ <%_ } _%>
170
+ }
171
+
161
172
  @Test
162
173
  @WithUnauthenticatedMockUser
163
174
  <%_ if (reactive) { _%>
@@ -246,6 +257,8 @@ class AccountResourceIT {
246
257
  .andExpect(jsonPath("$.authorities").value(AuthoritiesConstants.ADMIN));
247
258
 
248
259
  <%_ } _%>
260
+
261
+ userService.deleteUser(TEST_USER_LOGIN)<%- reactorBlock %>;
249
262
  }
250
263
 
251
264
  @Test
@@ -301,6 +314,8 @@ class AccountResourceIT {
301
314
  <%_ } _%>
302
315
 
303
316
  assertThat(userRepository.findOneByLogin("test-register-valid")<% if (reactive) { %>.blockOptional()<% } %>).isPresent();
317
+
318
+ userService.deleteUser("test-register-valid")<%- reactorBlock %>;
304
319
  }
305
320
 
306
321
  @Test
@@ -484,6 +499,8 @@ class AccountResourceIT {
484
499
  .with(csrf())<% } %>)
485
500
  .andExpect(status().is4xxClientError());
486
501
  <%_ } _%>
502
+
503
+ userService.deleteUser("alice")<%- reactorBlock %>;
487
504
  }
488
505
 
489
506
  @Test
@@ -610,6 +627,8 @@ class AccountResourceIT {
610
627
  .with(csrf())<% } %>)
611
628
  .andExpect(status().is4xxClientError());
612
629
  <%_ } _%>
630
+
631
+ userService.deleteUser("test-register-duplicate-email-3")<%- reactorBlock %>;
613
632
  }
614
633
 
615
634
  @Test
@@ -649,6 +668,8 @@ class AccountResourceIT {
649
668
  assertThat(userDup).isPresent();
650
669
  assertThat(userDup.orElseThrow().getAuthorities()).hasSize(1)
651
670
  .containsExactly(<% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { %>authorityRepository.findById(AuthoritiesConstants.USER).<% if (reactive) { %>block<% } else { %>orElseThrow<% } %>()<% } %><% if (databaseTypeCassandra || databaseTypeCouchbase) { %>AuthoritiesConstants.USER<% } %>);
671
+
672
+ userService.deleteUser("badguy")<%- reactorBlock %>;
652
673
  }
653
674
 
654
675
  @Test
@@ -683,6 +704,8 @@ class AccountResourceIT {
683
704
 
684
705
  user = userRepository.findOneByLogin(user.getLogin())<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
685
706
  assertThat(user.isActivated()).isTrue();
707
+
708
+ userService.deleteUser("activate-account")<%- reactorBlock %>;
686
709
  }
687
710
 
688
711
  @Test
@@ -757,6 +780,8 @@ class AccountResourceIT {
757
780
  <%_ } _%>
758
781
  assertThat(updatedUser.isActivated()).isTrue();
759
782
  assertThat(updatedUser.getAuthorities()).isEmpty();
783
+
784
+ userService.deleteUser("save-account")<%- reactorBlock %>;
760
785
  }
761
786
 
762
787
  @Test
@@ -810,6 +835,8 @@ class AccountResourceIT {
810
835
  <%_ } _%>
811
836
 
812
837
  assertThat(userRepository.findOneByEmailIgnoreCase("invalid email")<% if (reactive) { %>.blockOptional()<% } %>).isNotPresent();
838
+
839
+ userService.deleteUser("save-invalid-email")<%- reactorBlock %>;
813
840
  }
814
841
 
815
842
  @Test
@@ -872,8 +899,11 @@ class AccountResourceIT {
872
899
  .andExpect(status().isBadRequest());
873
900
  <%_ } _%>
874
901
 
875
- <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
902
+ <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email")<%_ if (reactive) { _%>.block()<% } else { %>.orElseThrow()<% } %>;
876
903
  assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email@example.com");
904
+
905
+ userService.deleteUser("save-existing-email")<%- reactorBlock %>;
906
+ userService.deleteUser("save-existing-email2")<%- reactorBlock %>;
877
907
  }
878
908
 
879
909
  @Test
@@ -924,6 +954,8 @@ class AccountResourceIT {
924
954
 
925
955
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("save-existing-email-and-login")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
926
956
  assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email-and-login@example.com");
957
+
958
+ userService.deleteUser("save-existing-email-and-login")<%- reactorBlock %>;
927
959
  }
928
960
 
929
961
  @Test
@@ -963,6 +995,8 @@ class AccountResourceIT {
963
995
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-wrong-existing-password")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
964
996
  assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isFalse();
965
997
  assertThat(passwordEncoder.matches(currentPassword, updatedUser.getPassword())).isTrue();
998
+
999
+ userService.deleteUser("change-password-wrong-existing-password")<%- reactorBlock %>;
966
1000
  }
967
1001
 
968
1002
  @Test
@@ -1001,6 +1035,8 @@ class AccountResourceIT {
1001
1035
 
1002
1036
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1003
1037
  assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isTrue();
1038
+
1039
+ userService.deleteUser("change-password")<%- reactorBlock %>;
1004
1040
  }
1005
1041
 
1006
1042
  @Test
@@ -1041,6 +1077,8 @@ class AccountResourceIT {
1041
1077
 
1042
1078
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-too-small")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1043
1079
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1080
+
1081
+ userService.deleteUser("change-password-too-small")<%- reactorBlock %>;
1044
1082
  }
1045
1083
 
1046
1084
  @Test
@@ -1081,6 +1119,8 @@ class AccountResourceIT {
1081
1119
 
1082
1120
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-too-long")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1083
1121
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1122
+
1123
+ userService.deleteUser("change-password-too-long")<%- reactorBlock %>;
1084
1124
  }
1085
1125
 
1086
1126
  @Test
@@ -1119,6 +1159,8 @@ class AccountResourceIT {
1119
1159
 
1120
1160
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin("change-password-empty")<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1121
1161
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1162
+
1163
+ userService.deleteUser("change-password-empty")<%- reactorBlock %>;
1122
1164
  }
1123
1165
  <%_ if (authenticationTypeSession && !reactive) { _%>
1124
1166
 
@@ -1165,6 +1207,9 @@ class AccountResourceIT {
1165
1207
  .andExpect(jsonPath("$.[*].ipAddress").value(hasItem(token.getIpAddress())))
1166
1208
  .andExpect(jsonPath("$.[*].userAgent").value(hasItem(token.getUserAgent())))
1167
1209
  .andExpect(jsonPath("$.[*].tokenDate").value(hasItem(containsString(<% if (databaseTypeCassandra) { %>"2017-03-28T15:25:57.123Z"<% } else { %>token.getTokenDate().toString()<% } %>))));
1210
+
1211
+ persistentTokenRepository.delete(token);
1212
+ userService.deleteUser("current-sessions")<%- reactorBlock %>;
1168
1213
  }
1169
1214
 
1170
1215
  @Test
@@ -1210,6 +1255,9 @@ class AccountResourceIT {
1210
1255
  .andExpect(status().isOk());
1211
1256
 
1212
1257
  assertThat(persistentTokenRepository.findByUser(user)).isEmpty();
1258
+
1259
+ persistentTokenRepository.delete(token);
1260
+ userService.deleteUser("invalidate-session")<%- reactorBlock %>;
1213
1261
  }
1214
1262
  <%_ } _%>
1215
1263
 
@@ -1244,6 +1292,8 @@ class AccountResourceIT {
1244
1292
  .with(csrf())<%_ } _%>)
1245
1293
  .andExpect(status().isOk());
1246
1294
  <%_ } _%>
1295
+
1296
+ userService.deleteUser("password-reset")<%- reactorBlock %>;
1247
1297
  }
1248
1298
 
1249
1299
  @Test
@@ -1277,6 +1327,8 @@ class AccountResourceIT {
1277
1327
  .with(csrf())<%_ } _%>)
1278
1328
  .andExpect(status().isOk());
1279
1329
  <%_ } _%>
1330
+
1331
+ userService.deleteUser("password-reset-upper-case")<%- reactorBlock %>;
1280
1332
  }
1281
1333
 
1282
1334
  @Test
@@ -1336,6 +1388,8 @@ class AccountResourceIT {
1336
1388
 
1337
1389
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (reactive) { _%>.block()<% } else { %>.orElse(null)<% } %>;
1338
1390
  assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isTrue();
1391
+
1392
+ userService.deleteUser("finish-password-reset")<%- reactorBlock %>;
1339
1393
  }
1340
1394
 
1341
1395
  @Test
@@ -1378,6 +1432,8 @@ class AccountResourceIT {
1378
1432
 
1379
1433
  <%= user.persistClass %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1380
1434
  assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isFalse();
1435
+
1436
+ userService.deleteUser("finish-password-reset-too-small")<%- reactorBlock %>;
1381
1437
  }
1382
1438
 
1383
1439
  @Test
@@ -34,11 +34,17 @@ import static org.mockito.Mockito.*;
34
34
 
35
35
  import <%= packageName %>.IntegrationTest;
36
36
  import <%= packageName %>.security.AuthoritiesConstants;
37
+ <%_ if (syncUserWithIdp) { _%>
38
+ import <%= packageName %>.repository.UserRepository;
39
+ <%_ } _%>
37
40
 
38
41
  import org.junit.jupiter.api.Test;
39
42
  import org.springframework.beans.factory.annotation.Autowired;
40
43
  import org.springframework.http.MediaType;
41
44
  import org.springframework.security.test.context.support.WithMockUser;
45
+ <%_ if (authenticationTypeOauth2) { _%>
46
+ import org.junit.jupiter.api.AfterEach;
47
+ <%_ } _%>
42
48
  <%_ if (reactive) { _%>
43
49
  import org.junit.jupiter.api.BeforeEach;
44
50
  import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;
@@ -74,6 +80,11 @@ import org.springframework.transaction.annotation.Transactional;
74
80
  <%_ } _%>
75
81
  @IntegrationTest
76
82
  class AccountResourceIT {
83
+ <%_ if (syncUserWithIdp) { _%>
84
+
85
+ @Autowired
86
+ private UserRepository userRepository;
87
+ <%_ } _%>
77
88
 
78
89
  <%_ if (reactive) { _%>
79
90
  private Map<String, Object> claims;
@@ -106,6 +117,17 @@ class AccountResourceIT {
106
117
  claims.put("email", "jane.doe@jhipster.com");
107
118
  }
108
119
 
120
+ <%_ } _%>
121
+ <%_ if (syncUserWithIdp) { _%>
122
+ @AfterEach
123
+ public void cleanup() {
124
+ // Remove syncUserWithIdp users
125
+ <%_ if (databaseTypeSql && reactive) { _%>
126
+ userRepository.deleteAllUserAuthorities()<%- reactorBlock %>;
127
+ <%_ } _%>
128
+ userRepository.deleteAll()<%- reactorBlock %>;
129
+ }
130
+
109
131
  <%_ } _%>
110
132
  @Test
111
133
  <%_ if (databaseTypeSql && !reactive) { _%>
@@ -132,13 +132,32 @@ spring:
132
132
  allow-bean-definition-overriding: true
133
133
  messages:
134
134
  basename: i18n/messages
135
- <%_ if (generateInMemoryUserCredentials) { _%>
135
+ <%_ if (generateInMemoryUserCredentials || authenticationTypeOauth2 || authenticationTypeJwt) { _%>
136
136
  security:
137
+ <%_ if (generateInMemoryUserCredentials) { _%>
137
138
  user:
138
139
  name: test
139
140
  password: test
140
141
  roles:
141
142
  - USER
143
+ <%_ } _%>
144
+ <%_ if (authenticationTypeOauth2) { _%>
145
+ oauth2:
146
+ client:
147
+ provider:
148
+ oidc:
149
+ issuer-uri: http://DO_NOT_CALL:9080/realms/jhipster
150
+ resourceserver:
151
+ jwt:
152
+ principal-claim-name: preferred_username
153
+ <%_ } _%>
154
+ <%_ if (authenticationTypeJwt) { _%>
155
+ oauth2:
156
+ resourceserver:
157
+ jwt:
158
+ authority-prefix: ''
159
+ authorities-claim-name: auth
160
+ <%_ } _%>
142
161
  <%_ } _%>
143
162
  task:
144
163
  execution:
@@ -153,15 +172,6 @@ spring:
153
172
  size: 20
154
173
  thymeleaf:
155
174
  mode: HTML
156
- <%_ if (authenticationTypeOauth2) { _%>
157
- # Allow SecurityConfiguration to initialize w/o specifying an empty issuer-uri is OK
158
- security:
159
- oauth2:
160
- client:
161
- provider:
162
- oidc:
163
- issuer-uri: http://DO_NOT_CALL:9080/realms/jhipster
164
- <%_ } _%>
165
175
 
166
176
  server:
167
177
  port: 10344
@@ -197,4 +197,7 @@ export default asWritingTask(function cleanupTask(taskParam) {
197
197
  this.removeFile('gradle/sonar.gradle');
198
198
  }
199
199
  }
200
+ if (this.isJhipsterVersionLessThan('8.4.0')) {
201
+ this.removeFile(`${application.javaPackageSrcDir}config/LocaleConfiguration.java`);
202
+ }
200
203
  });
@@ -1,5 +1,27 @@
1
+ /**
2
+ * Copyright 2013-2024 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
+ import chalk from 'chalk';
1
20
  import { GENERATOR_JAVA, GENERATOR_LIQUIBASE, GENERATOR_SPRING_DATA_RELATIONAL } from '../generator-list.js';
2
- import { APPLICATION_TYPE_MICROSERVICE } from '../../jdl/index.js';
21
+ import { createBase64Secret, createSecret } from '../base/support/secret.js';
22
+ import { authenticationTypes, applicationTypes } from '../../jdl/index.js';
23
+ const { OAUTH2, SESSION, JWT } = authenticationTypes;
24
+ const { GATEWAY, MICROSERVICE } = applicationTypes;
3
25
  const command = {
4
26
  options: {
5
27
  fakeKeytool: {
@@ -11,18 +33,92 @@ const command = {
11
33
  },
12
34
  },
13
35
  configs: {
36
+ reactive: {
37
+ cli: {
38
+ description: 'Generate a reactive backend',
39
+ type: Boolean,
40
+ },
41
+ prompt: gen => ({
42
+ when: () => ['monolith', 'microservice'].includes(gen.jhipsterConfigWithDefaults.applicationType),
43
+ type: 'confirm',
44
+ message: 'Do you want to make it reactive with Spring WebFlux?',
45
+ }),
46
+ },
47
+ serverPort: {
48
+ prompt: gen => ({
49
+ when: () => ['gateway', 'microservice'].includes(gen.jhipsterConfigWithDefaults.applicationType),
50
+ type: 'input',
51
+ validate: input => (/^([0-9]*)$/.test(input) ? true : 'This is not a valid port number.'),
52
+ message: 'As you are running in a microservice architecture, on which port would like your server to run? It should be unique to avoid port conflicts.',
53
+ default: () => gen.jhipsterConfigWithDefaults.serverPort,
54
+ }),
55
+ configure: gen => {
56
+ if (gen.jhipsterConfig.serverPort === undefined && gen.jhipsterConfig.applicationIndex !== undefined) {
57
+ gen.jhipsterConfig.serverPort = 8080 + gen.jhipsterConfig.applicationIndex;
58
+ }
59
+ },
60
+ },
61
+ serviceDiscoveryType: {
62
+ cli: {
63
+ description: 'Service discovery type',
64
+ type: String,
65
+ },
66
+ prompt: gen => ({
67
+ when: () => ['gateway', 'microservice'].includes(gen.jhipsterConfigWithDefaults.applicationType),
68
+ type: 'list',
69
+ message: 'Which service discovery server do you want to use?',
70
+ default: 'consul',
71
+ }),
72
+ choices: [
73
+ { value: 'consul', name: 'Consul (recommended)' },
74
+ { value: 'eureka', name: 'JHipster Registry (legacy, uses Eureka, provides Spring Cloud Config support)' },
75
+ { value: 'no', name: 'No service discovery' },
76
+ ],
77
+ },
78
+ authenticationType: {
79
+ cli: {
80
+ name: 'auth',
81
+ description: 'Provide authentication type for the application when skipping server side generation',
82
+ type: String,
83
+ },
84
+ prompt: (gen, config) => ({
85
+ type: 'list',
86
+ message: `Which ${chalk.yellow('*type*')} of authentication would you like to use?`,
87
+ choices: () => gen.jhipsterConfigWithDefaults.applicationType !== 'monolith'
88
+ ? config.choices.filter(({ value }) => value !== 'session')
89
+ : config.choices,
90
+ default: () => gen.jhipsterConfigWithDefaults.authenticationType,
91
+ }),
92
+ choices: [
93
+ { value: 'jwt', name: 'JWT authentication (stateless, with a token)' },
94
+ { value: 'oauth2', name: 'OAuth 2.0 / OIDC Authentication (stateful, works with Keycloak and Okta)' },
95
+ { value: 'session', name: 'HTTP Session Authentication (stateful, default Spring Security mechanism)' },
96
+ ],
97
+ configure: gen => {
98
+ const { jwtSecretKey, rememberMeKey, authenticationType, applicationType } = gen.jhipsterConfigWithDefaults;
99
+ if (authenticationType === SESSION && !rememberMeKey) {
100
+ gen.jhipsterConfig.rememberMeKey = createSecret();
101
+ }
102
+ else if (authenticationType === OAUTH2 && gen.jhipsterConfig.skipUserManagement === undefined) {
103
+ gen.jhipsterConfig.skipUserManagement = true;
104
+ }
105
+ else if (jwtSecretKey === undefined &&
106
+ (authenticationType === JWT || applicationType === MICROSERVICE || applicationType === GATEWAY)) {
107
+ gen.jhipsterConfig.jwtSecretKey = createBase64Secret(64, gen.options.reproducibleTests);
108
+ }
109
+ },
110
+ },
14
111
  feignClient: {
15
112
  description: 'Generate a feign client',
16
113
  cli: {
17
114
  type: Boolean,
18
115
  },
19
- prompt: {
116
+ prompt: gen => ({
20
117
  type: 'confirm',
21
118
  message: 'Do you want to generate a feign client?',
22
- when: currentAnswer => currentAnswer.applicationType === APPLICATION_TYPE_MICROSERVICE &&
23
- currentAnswer.reactive !== undefined &&
24
- !currentAnswer.reactive,
25
- },
119
+ when: ({ reactive }) => [MICROSERVICE].includes(gen.jhipsterConfigWithDefaults.applicationType) &&
120
+ (reactive ?? gen.jhipsterConfigWithDefaults.reactive) === false,
121
+ }),
26
122
  default: false,
27
123
  },
28
124
  syncUserWithIdp: {
@@ -35,7 +131,31 @@ const command = {
35
131
  message: 'Do you want to allow relationships with User entity?',
36
132
  when: ({ authenticationType }) => (authenticationType ?? gen.jhipsterConfigWithDefaults.authenticationType) === 'oauth2',
37
133
  }),
38
- default: false,
134
+ configure: gen => {
135
+ if (gen.jhipsterConfig.syncUserWithIdp === undefined && gen.jhipsterConfigWithDefaults.authenticationType === 'oauth2') {
136
+ if (gen.isJhipsterVersionLessThan('8.1.1')) {
137
+ gen.jhipsterConfig.syncUserWithIdp = true;
138
+ }
139
+ }
140
+ else if (gen.jhipsterConfig.syncUserWithIdp && gen.jhipsterConfig.authenticationType !== OAUTH2) {
141
+ throw new Error('syncUserWithIdp is only supported with authenticationType oauth2');
142
+ }
143
+ },
144
+ },
145
+ defaultPackaging: {
146
+ description: 'Default packaging for the application',
147
+ cli: {
148
+ type: String,
149
+ hide: true,
150
+ },
151
+ choices: ['jar', 'war'],
152
+ default: 'jar',
153
+ scope: 'storage',
154
+ configure: gen => {
155
+ if (process.env.JHI_WAR === '1') {
156
+ gen.jhipsterConfig.defaultPackaging = 'war';
157
+ }
158
+ },
39
159
  },
40
160
  },
41
161
  import: [GENERATOR_JAVA, GENERATOR_LIQUIBASE, GENERATOR_SPRING_DATA_RELATIONAL],
@@ -401,20 +401,10 @@ export const baseServerFiles = {
401
401
  ],
402
402
  },
403
403
  {
404
- condition: generator => generator.generateUserManagement ||
405
- generator.authenticationTypeOauth2 ||
406
- generator.databaseTypeSql ||
407
- generator.databaseTypeMongodb ||
408
- generator.databaseTypeCouchbase,
409
404
  path: `${SERVER_MAIN_SRC_DIR}_package_/`,
410
405
  renameTo: moveToJavaPackageSrcDir,
411
406
  templates: ['config/Constants.java'],
412
407
  },
413
- {
414
- path: `${SERVER_MAIN_SRC_DIR}_package_/`,
415
- renameTo: moveToJavaPackageSrcDir,
416
- templates: [data => `config/LocaleConfiguration_${data.imperativeOrReactive}.java`],
417
- },
418
408
  ],
419
409
  serverJavaDomain: [
420
410
  {