generator-jhipster 7.1.0 → 7.4.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 (917) hide show
  1. package/README.md +1 -1
  2. package/cli/commands.js +21 -0
  3. package/cli/environment-builder.js +10 -2
  4. package/cli/import-jdl.js +7 -10
  5. package/cli/jdl.js +1 -0
  6. package/cli/jhipster-command.js +14 -28
  7. package/cli/program.js +37 -29
  8. package/generators/add/index.cjs +78 -0
  9. package/generators/app/esm.mjs +21 -0
  10. package/generators/app/generator.spec.mjs +47 -0
  11. package/generators/app/index.js +38 -34
  12. package/generators/app/prompts.js +1 -1
  13. package/generators/aws/esm.mjs +21 -0
  14. package/generators/aws/generator.spec.mjs +47 -0
  15. package/generators/aws/index.js +8 -8
  16. package/generators/aws/lib/eb.js +1 -1
  17. package/generators/azure-app-service/esm.mjs +21 -0
  18. package/generators/azure-app-service/generator.spec.mjs +47 -0
  19. package/generators/azure-app-service/index.js +30 -19
  20. package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +3 -3
  21. package/generators/azure-spring-cloud/esm.mjs +21 -0
  22. package/generators/azure-spring-cloud/generator.spec.mjs +47 -0
  23. package/generators/azure-spring-cloud/index.js +68 -46
  24. package/generators/azure-spring-cloud/templates/application-azure.yml.ejs +4 -4
  25. package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +3 -3
  26. package/generators/base/esm.mjs +21 -0
  27. package/generators/base/generator.spec.mjs +44 -0
  28. package/generators/bootstrap/esm.mjs +21 -0
  29. package/generators/bootstrap/generator.spec.mjs +44 -0
  30. package/generators/bootstrap/index.js +55 -58
  31. package/generators/ci-cd/esm.mjs +21 -0
  32. package/generators/ci-cd/generator.spec.mjs +47 -0
  33. package/generators/ci-cd/index.js +30 -47
  34. package/generators/ci-cd/templates/github-actions.yml.ejs +5 -2
  35. package/generators/ci-cd/templates/travis.yml.ejs +9 -4
  36. package/generators/cleanup.js +5 -0
  37. package/generators/client/__workflow/devserver-angular.json +13 -0
  38. package/generators/client/__workflow/devserver-react.json +13 -0
  39. package/generators/client/__workflow/devserver-vue.json +13 -0
  40. package/generators/client/esm.mjs +21 -0
  41. package/generators/client/files-angular.js +8 -9
  42. package/generators/client/files-common.js +7 -3
  43. package/generators/client/files-react.js +11 -1
  44. package/generators/client/files-vue.js +56 -6
  45. package/generators/client/generator.spec.mjs +47 -0
  46. package/generators/client/index.js +127 -51
  47. package/generators/client/needle-api/needle-client-vue.js +5 -5
  48. package/generators/client/templates/angular/.eslintrc.json.ejs +1 -0
  49. package/generators/client/templates/angular/README.md.jhi.client.angular.ejs +48 -0
  50. package/generators/client/templates/angular/angular.json.ejs +0 -1
  51. package/generators/client/templates/angular/package.json +28 -25
  52. package/generators/client/templates/angular/package.json.ejs +18 -18
  53. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.spec.ts.ejs +52 -54
  54. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.service.spec.ts.ejs +65 -0
  55. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.spec.ts.ejs +35 -37
  56. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.spec.ts.ejs +78 -80
  57. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.service.spec.ts.ejs +41 -0
  58. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.spec.ts.ejs +73 -75
  59. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.service.spec.ts.ejs +62 -0
  60. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.spec.ts.ejs +44 -46
  61. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.service.spec.ts.ejs +61 -0
  62. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.spec.ts.ejs +116 -118
  63. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.service.spec.ts.ejs +66 -0
  64. package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.spec.ts.ejs +75 -77
  65. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +74 -76
  66. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +1 -1
  67. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.spec.ts.ejs +48 -50
  68. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.service.spec.ts.ejs +50 -52
  69. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +45 -47
  70. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +1 -2
  71. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.service.spec.ts.ejs +66 -0
  72. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.spec.ts.ejs +99 -101
  73. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.ts.ejs +3 -5
  74. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +1 -1
  75. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.spec.ts.ejs +61 -63
  76. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.service.spec.ts.ejs +19 -21
  77. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.service.ts.ejs +1 -1
  78. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +2 -2
  79. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.ts.ejs +1 -1
  80. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.spec.ts.ejs +28 -30
  81. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.service.spec.ts.ejs +62 -64
  82. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.spec.ts.ejs +35 -37
  83. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +40 -42
  84. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +1 -1
  85. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +87 -89
  86. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +3 -3
  87. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/service/user-management.service.spec.ts.ejs +41 -43
  88. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +81 -83
  89. package/generators/client/templates/angular/src/main/webapp/app/app.constants.ts.ejs +0 -4
  90. package/generators/client/templates/angular/src/main/webapp/app/app.module.ts.ejs +3 -1
  91. package/generators/client/templates/angular/src/main/webapp/app/config/error.constants.ts.ejs +2 -2
  92. package/generators/client/templates/angular/src/main/webapp/app/config/translation.config.ts.ejs +1 -2
  93. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +179 -172
  94. package/generators/client/templates/angular/src/main/webapp/app/core/auth/account.service.ts.ejs +9 -9
  95. package/generators/client/templates/angular/src/main/webapp/app/core/config/application-config.service.ts.ejs +9 -0
  96. package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.spec.ts.ejs +2 -1
  97. package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +14 -22
  98. package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.spec.ts.ejs +87 -89
  99. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.spec.ts.ejs +93 -95
  100. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +166 -168
  101. package/generators/client/templates/angular/src/main/webapp/app/layouts/main/main.component.ts.ejs +2 -2
  102. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +66 -68
  103. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +1 -1
  104. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.spec.ts.ejs +27 -29
  105. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.spec.ts.ejs +112 -114
  106. package/generators/client/templates/angular/src/main/webapp/app/login/login.service.ts.ejs +1 -11
  107. package/generators/client/templates/angular/src/main/webapp/app/login/logout.model.ts.ejs +1 -1
  108. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert-error.component.spec.ts.ejs +132 -134
  109. package/generators/client/templates/angular/src/main/webapp/app/shared/alert/alert.component.spec.ts.ejs +29 -31
  110. package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +24 -37
  111. package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort-by.directive.ts.ejs +5 -3
  112. package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort.directive.spec.ts.ejs +7 -5
  113. package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort.directive.ts.ejs +7 -10
  114. package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +8 -1
  115. package/generators/client/templates/angular/webpack/environment.js.ejs +2 -2
  116. package/generators/client/templates/angular/webpack/logo-jhipster.png +0 -0
  117. package/generators/client/templates/angular/webpack/proxy.conf.js.ejs +2 -3
  118. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +23 -7
  119. package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +3 -3
  120. package/generators/client/templates/common/README.md.jhi.client.ejs +224 -0
  121. package/generators/client/templates/common/package.json +9 -10
  122. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +56 -0
  123. package/generators/client/templates/react/.eslintrc.json.ejs +1 -0
  124. package/generators/client/templates/react/jest.conf.js.ejs +7 -1
  125. package/generators/client/templates/react/package.json +61 -64
  126. package/generators/client/templates/react/package.json.ejs +22 -31
  127. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +0 -3
  128. package/generators/client/templates/react/src/main/webapp/app/app.tsx.ejs +1 -2
  129. package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.spec.ts.ejs +0 -3
  130. package/generators/client/templates/react/src/main/webapp/app/config/axios-interceptor.ts.ejs +0 -2
  131. package/generators/client/templates/react/src/main/webapp/app/config/constants.ts.ejs +0 -9
  132. package/generators/client/templates/react/src/main/webapp/app/config/error-middleware.ts.ejs +2 -2
  133. package/generators/client/templates/react/src/main/webapp/app/config/logger-middleware.ts.ejs +1 -1
  134. package/generators/client/templates/react/src/main/webapp/app/config/notification-middleware.ts.ejs +1 -3
  135. package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +1 -3
  136. package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +2 -2
  137. package/generators/client/templates/react/src/main/webapp/app/modules/account/settings/settings.reducer.spec.ts.ejs +0 -4
  138. package/generators/client/templates/react/src/main/webapp/app/modules/account/settings/settings.reducer.ts.ejs +1 -1
  139. package/generators/client/templates/react/src/main/webapp/app/modules/administration/administration.reducer.spec.ts.ejs +1 -2
  140. package/generators/client/templates/react/src/main/webapp/app/modules/administration/configuration/configuration.tsx.ejs +4 -4
  141. package/generators/client/templates/react/src/main/webapp/app/modules/administration/gateway/gateway.tsx.ejs +2 -2
  142. package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health-modal.tsx.ejs +1 -2
  143. package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health.tsx.ejs +3 -1
  144. package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +6 -6
  145. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +8 -8
  146. package/generators/client/templates/react/src/main/webapp/app/modules/home/home.tsx.ejs +5 -1
  147. package/generators/client/templates/react/src/main/webapp/app/modules/login/logout.tsx.ejs +1 -6
  148. package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +0 -3
  149. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.spec.tsx.ejs +0 -3
  150. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.spec.tsx.ejs +0 -3
  151. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.tsx.ejs +1 -2
  152. package/generators/client/templates/react/src/main/webapp/app/shared/layout/footer/footer.tsx.ejs +1 -1
  153. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header-components.tsx.ejs +3 -5
  154. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.spec.tsx.ejs +0 -3
  155. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.tsx.ejs +1 -1
  156. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +0 -3
  157. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.tsx.ejs +3 -3
  158. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/admin.tsx.ejs +7 -7
  159. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-components.tsx.ejs +1 -1
  160. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.spec.ts.ejs +1 -5
  161. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/authentication.ts.ejs +0 -2
  162. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/index.ts.ejs +12 -12
  163. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +1 -1
  164. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +0 -1
  165. package/generators/client/templates/react/src/main/webapp/app/shared/util/date-utils.ts.ejs +1 -1
  166. package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +6 -0
  167. package/generators/client/templates/react/webpack/environment.js.ejs +35 -0
  168. package/generators/client/templates/react/webpack/webpack.common.js.ejs +31 -37
  169. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +21 -7
  170. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +14 -7
  171. package/generators/client/templates/vue/.eslintrc.js.ejs +8 -5
  172. package/generators/client/templates/vue/package.json +47 -55
  173. package/generators/client/templates/vue/package.json.ejs +33 -40
  174. package/generators/client/templates/vue/src/main/webapp/app/account/account.service.ts.ejs +4 -5
  175. package/generators/client/templates/vue/src/main/webapp/app/account/activate/activate.component.ts.ejs +2 -2
  176. package/generators/client/templates/vue/src/main/webapp/app/account/change-password/change-password.component.ts.ejs +1 -1
  177. package/generators/client/templates/vue/src/main/webapp/app/account/reset-password/finish/reset-password-finish.component.ts.ejs +1 -1
  178. package/generators/client/templates/vue/src/main/webapp/app/account/reset-password/init/reset-password-init.component.ts.ejs +1 -1
  179. package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.component.ts.ejs +1 -1
  180. package/generators/client/templates/vue/src/main/webapp/app/account/settings/settings.vue.ejs +7 -1
  181. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.component.ts.ejs +1 -1
  182. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +1 -1
  183. package/generators/client/templates/vue/src/main/webapp/app/admin/configuration/configuration.vue.ejs +1 -1
  184. package/generators/client/templates/vue/src/main/webapp/app/admin/health/health-modal.component.ts.ejs +2 -4
  185. package/generators/client/templates/vue/src/main/webapp/app/admin/health/health.component.ts.ejs +1 -2
  186. package/generators/client/templates/vue/src/main/webapp/app/admin/health/health.service.ts.ejs +5 -9
  187. package/generators/client/templates/vue/src/main/webapp/app/admin/logs/logs.component.ts.ejs +2 -2
  188. package/generators/client/templates/vue/src/main/webapp/app/admin/logs/logs.service.ts.ejs +1 -1
  189. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.component.ts.ejs +1 -1
  190. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.service.ts.ejs +1 -6
  191. package/generators/client/templates/vue/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +5 -4
  192. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +9 -0
  193. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-view.component.ts.ejs +5 -0
  194. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management.component.ts.ejs +6 -1
  195. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management.service.ts.ejs +3 -2
  196. package/generators/client/templates/vue/src/main/webapp/app/constants.ts.ejs +18 -9
  197. package/generators/client/templates/vue/src/main/webapp/app/core/home/home.component.ts.ejs +1 -1
  198. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +16 -16
  199. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +6 -0
  200. package/generators/client/templates/vue/src/main/webapp/app/declarations.d.ts.ejs +41 -0
  201. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.component.ts.ejs +34 -0
  202. package/generators/client/templates/vue/src/main/webapp/app/entities/entities-menu.vue.ejs +13 -0
  203. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.component.ts.ejs +12 -0
  204. package/generators/client/templates/vue/src/main/webapp/app/entities/entities.vue.ejs +5 -0
  205. package/generators/{common/templates/.huskyrc.ejs → client/templates/vue/src/main/webapp/app/index.ts.ejs} +1 -5
  206. package/generators/client/templates/vue/src/main/webapp/app/locale/translation.service.ts.ejs +26 -10
  207. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +12 -5
  208. package/generators/client/templates/vue/src/main/webapp/app/router/admin.ts.ejs +4 -4
  209. package/generators/client/templates/vue/src/main/webapp/app/router/entities.ts.ejs +44 -1
  210. package/generators/client/templates/vue/src/main/webapp/app/router/index.ts.ejs +11 -0
  211. package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +61 -0
  212. package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +5 -3
  213. package/generators/client/templates/vue/src/main/webapp/app/shared/config/config.ts.ejs +3 -1
  214. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +13 -18
  215. package/generators/client/templates/vue/src/main/webapp/app/shims-vue.d.ts.ejs +18 -0
  216. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +28 -8
  217. package/generators/client/templates/vue/src/test/javascript/spec/app/account/account.service.spec.ts.ejs +2 -2
  218. package/generators/client/templates/vue/src/test/javascript/spec/app/account/login-form/login-form.component.spec.ts.ejs +1 -1
  219. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.component.spec.ts.ejs +12 -12
  220. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/tracker/tracker.service.spec.ts.ejs +2 -1
  221. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-edit.component.spec.ts.ejs +3 -1
  222. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management-view.component.spec.ts.ejs +2 -1
  223. package/generators/client/templates/vue/src/test/javascript/spec/app/admin/user-management/user-management.component.spec.ts.ejs +3 -1
  224. package/generators/client/templates/vue/src/test/javascript/spec/app/entities/entities-menu.spec.ts.ejs +52 -0
  225. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.component.ts.ejs +4 -0
  226. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-menu.vue.ejs +7 -0
  227. package/generators/client/templates/vue/src/test/javascript/spec/app/microfrontends/entities-router.ts.ejs +1 -0
  228. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/alert/alert.service.spec.ts.ejs +124 -0
  229. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/config/axios-interceptor.spec.ts.ejs +33 -1
  230. package/generators/client/templates/vue/src/test/javascript/spec/app/shared/data/data-utils.service.spec.ts.ejs +6 -6
  231. package/generators/client/templates/vue/tsconfig.json.ejs +5 -9
  232. package/generators/{server/templates/src/main/java/package/repository/search/SearchCouchbaseRepository.java.ejs → client/templates/vue/tsconfig.spec.json.ejs} +17 -21
  233. package/generators/client/templates/vue/webpack/config.js.ejs +50 -0
  234. package/generators/client/templates/vue/webpack/vue.utils.js.ejs +33 -32
  235. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +164 -119
  236. package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +19 -80
  237. package/generators/client/templates/vue/webpack/webpack.microfrontend.js.jhi.vue.ejs +77 -0
  238. package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +5 -46
  239. package/generators/cloudfoundry/esm.mjs +21 -0
  240. package/generators/cloudfoundry/generator.spec.mjs +47 -0
  241. package/generators/cloudfoundry/index.js +38 -24
  242. package/generators/common/esm.mjs +21 -0
  243. package/generators/common/files.js +9 -2
  244. package/generators/common/generator.spec.mjs +47 -0
  245. package/generators/common/index.js +66 -11
  246. package/generators/common/templates/.husky/pre-commit +4 -0
  247. package/generators/common/templates/.prettierrc.ejs +1 -1
  248. package/generators/common/templates/{README.md.ejs → README.md.jhi.ejs} +85 -171
  249. package/generators/common/templates/package.json +5 -5
  250. package/generators/cypress/esm.mjs +21 -0
  251. package/generators/cypress/generator.spec.mjs +47 -0
  252. package/generators/cypress/index.js +17 -14
  253. package/generators/cypress/templates/cypress.json.ejs +8 -1
  254. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/login-page.spec.ts.ejs +4 -4
  255. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/password-page.spec.ts.ejs +2 -2
  256. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/register-page.spec.ts.ejs +1 -1
  257. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/reset-password-page.spec.ts.ejs +1 -1
  258. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +4 -4
  259. package/generators/cypress/templates/src/test/javascript/cypress/integration/administration/administration.spec.ts.ejs +1 -3
  260. package/generators/cypress/templates/src/test/javascript/cypress/integration/lighthouse.audits.ts.ejs +3 -3
  261. package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +6 -44
  262. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +30 -2
  263. package/generators/cypress/templates/src/test/javascript/cypress/support/entity.ts.ejs +4 -4
  264. package/generators/cypress/templates/src/test/javascript/cypress/support/index.ts.ejs +1 -1
  265. package/generators/cypress/templates/src/test/javascript/cypress/support/management.ts.ejs +1 -1
  266. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
  267. package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +104 -79
  268. package/generators/database-changelog/esm.mjs +21 -0
  269. package/generators/database-changelog/generator.spec.mjs +47 -0
  270. package/generators/database-changelog/index.js +35 -24
  271. package/generators/database-changelog-liquibase/esm.mjs +21 -0
  272. package/generators/database-changelog-liquibase/generator.spec.mjs +47 -0
  273. package/generators/database-changelog-liquibase/index.js +17 -11
  274. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +2 -1
  275. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +3 -3
  276. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +4 -4
  277. package/generators/docker-base.js +3 -3
  278. package/generators/docker-compose/esm.mjs +21 -0
  279. package/generators/docker-compose/generator.spec.mjs +44 -0
  280. package/generators/docker-compose/index.js +23 -11
  281. package/generators/docker-compose/templates/README-DOCKER-COMPOSE.md.ejs +1 -1
  282. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +113 -39
  283. package/generators/docker-prompts.js +3 -3
  284. package/generators/entities/esm.mjs +21 -0
  285. package/generators/entities/generator.spec.mjs +47 -0
  286. package/generators/entities/index.js +37 -28
  287. package/generators/entities-client/esm.mjs +21 -0
  288. package/generators/entities-client/generator.spec.mjs +47 -0
  289. package/generators/entities-client/index.js +12 -9
  290. package/generators/entity/esm.mjs +21 -0
  291. package/generators/entity/generator.spec.mjs +47 -0
  292. package/generators/entity/index.js +54 -36
  293. package/generators/entity-client/esm.mjs +21 -0
  294. package/generators/entity-client/files.js +6 -11
  295. package/generators/entity-client/generator.spec.mjs +47 -0
  296. package/generators/entity-client/index.js +77 -10
  297. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.spec.ts.ejs +42 -44
  298. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.spec.ts.ejs +57 -54
  299. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +2 -2
  300. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +2 -2
  301. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +105 -107
  302. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +17 -4
  303. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +3 -4
  304. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +6 -0
  305. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +52 -54
  306. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +1 -1
  307. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +173 -175
  308. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +2 -4
  309. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +193 -195
  310. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +7 -0
  311. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +262 -110
  312. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +5 -2
  313. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +26 -23
  314. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +7 -7
  315. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-details.component.ts.ejs +5 -0
  316. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +22 -3
  317. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.vue.ejs +6 -9
  318. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.component.ts.ejs +9 -1
  319. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.model.ts.ejs +1 -1
  320. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs +2 -6
  321. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-details.component.spec.ts.ejs +2 -1
  322. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity-update.component.spec.ts.ejs +2 -0
  323. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.component.spec.ts.ejs +3 -1
  324. package/generators/entity-client/templates/vue/src/test/javascript/spec/app/entities/entity.service.spec.ts.ejs +1 -1
  325. package/generators/entity-i18n/esm.mjs +21 -0
  326. package/generators/entity-i18n/files.js +61 -26
  327. package/generators/entity-i18n/generator.spec.mjs +47 -0
  328. package/generators/entity-i18n/index.js +12 -9
  329. package/generators/entity-i18n/templates/i18n/entity_hr.json.ejs +0 -0
  330. package/generators/entity-i18n/templates/i18n/entity_pa.json.ejs +69 -0
  331. package/generators/entity-server/esm.mjs +21 -0
  332. package/generators/entity-server/files-couchbase.js +73 -0
  333. package/generators/entity-server/files.js +102 -31
  334. package/generators/entity-server/generator.spec.mjs +47 -0
  335. package/generators/entity-server/index.js +29 -13
  336. package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +212 -0
  337. package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +138 -0
  338. package/generators/entity-server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/entity.fts.ejs +6 -3
  339. package/generators/entity-server/templates/partials/save_template.ejs +2 -2
  340. package/generators/entity-server/templates/src/main/java/package/common/search_stream_template.ejs +3 -3
  341. package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +2 -2
  342. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +375 -0
  343. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.elastic_search.ejs +25 -0
  344. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.hibernate_cache.ejs +41 -0
  345. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_persistence.ejs +130 -0
  346. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_validation.ejs +51 -0
  347. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_cassandra.ejs +48 -0
  348. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_mongodb.ejs +82 -0
  349. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_neo4j.ejs +97 -0
  350. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_reactive.ejs +114 -0
  351. package/generators/entity-server/templates/src/main/java/package/domain/enumeration/Enum.java.ejs +11 -4
  352. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +10 -15
  353. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +17 -30
  354. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +6 -9
  355. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +46 -0
  356. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +3 -3
  357. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +61 -10
  358. package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +12 -8
  359. package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +4 -4
  360. package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +18 -13
  361. package/generators/entity-server/templates/src/main/java/package/service/dto/EntityDTO.java.ejs +8 -4
  362. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +9 -9
  363. package/generators/entity-server/templates/src/main/java/package/service/mapper/BaseEntityMapper.java.ejs +1 -1
  364. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +7 -3
  365. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +52 -54
  366. package/generators/entity-server/templates/src/test/java/package/domain/EntityTest.java.ejs +1 -1
  367. package/generators/entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs +1 -1
  368. package/generators/entity-server/templates/src/test/java/package/service/dto/EntityDTOTest.java.ejs +1 -1
  369. package/generators/entity-server/templates/src/test/java/package/service/mapper/EntityMapperTest.java.ejs +1 -1
  370. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +36 -22
  371. package/generators/export-jdl/esm.mjs +21 -0
  372. package/generators/export-jdl/generator.spec.mjs +44 -0
  373. package/generators/export-jdl/index.js +2 -2
  374. package/generators/gae/esm.mjs +21 -0
  375. package/generators/gae/generator.spec.mjs +47 -0
  376. package/generators/gae/index.js +60 -41
  377. package/generators/gae/templates/dispatch.yaml.ejs +2 -2
  378. package/generators/generator-base-blueprint.js +35 -37
  379. package/generators/generator-base-docker.js +4 -24
  380. package/generators/generator-base-private.js +59 -116
  381. package/generators/generator-base.js +544 -91
  382. package/generators/generator-constants.js +43 -29
  383. package/generators/generator-defaults.js +1 -0
  384. package/generators/generator-list.js +27 -2
  385. package/generators/generator-transforms.js +31 -24
  386. package/generators/gradle/__snapshots__/generator.spec.cjs.snap +59 -0
  387. package/generators/gradle/constants.cjs +29 -0
  388. package/generators/gradle/files.cjs +37 -0
  389. package/generators/gradle/generator.spec.cjs +71 -0
  390. package/generators/gradle/index.cjs +136 -0
  391. package/generators/gradle/templates/.eslintignore.jhi.gradle.ejs +19 -0
  392. package/generators/gradle/templates/.gitignore.jhi.gradle.ejs +28 -0
  393. package/generators/gradle/templates/.prettierignore.jhi.gradle.ejs +22 -0
  394. package/generators/gradle/templates/build.gradle.jhi.ejs +48 -0
  395. package/generators/gradle/templates/gradle.properties.jhi.ejs +57 -0
  396. package/generators/gradle/templates/settings.gradle.jhi.ejs +20 -0
  397. package/generators/heroku/esm.mjs +21 -0
  398. package/generators/heroku/generator.spec.mjs +47 -0
  399. package/generators/heroku/index.js +92 -80
  400. package/generators/heroku/templates/Procfile.ejs +1 -1
  401. package/generators/heroku/templates/application-heroku.yml.ejs +9 -9
  402. package/generators/heroku/templates/bootstrap-heroku.yml.ejs +2 -2
  403. package/generators/heroku/templates/pom-profile.xml.ejs +1 -1
  404. package/generators/info/esm.mjs +21 -0
  405. package/generators/info/generator.spec.mjs +44 -0
  406. package/generators/info/index.js +4 -2
  407. package/generators/init/__snapshots__/generator.spec.cjs.snap +65 -0
  408. package/generators/init/config.cjs +36 -0
  409. package/generators/init/constants.cjs +35 -0
  410. package/generators/init/files.cjs +51 -0
  411. package/generators/init/generator.spec.cjs +112 -0
  412. package/generators/init/index.cjs +283 -0
  413. package/generators/init/mixin.cjs +76 -0
  414. package/generators/init/options.cjs +27 -0
  415. package/generators/init/templates/.editorconfig.jhi.ejs +40 -0
  416. package/generators/init/templates/.eslintignore.jhi.ejs +21 -0
  417. package/generators/init/templates/.gitattributes.jhi.ejs +170 -0
  418. package/generators/init/templates/.gitignore.jhi.ejs +128 -0
  419. package/generators/init/templates/.husky/pre-commit +4 -0
  420. package/generators/{client/templates/vue/webpack/utils.js.ejs → init/templates/.lintstagedrc.js.ejs} +1 -10
  421. package/generators/init/templates/.prettierignore.jhi.ejs +23 -0
  422. package/generators/init/templates/.prettierrc.yml.jhi.ejs +29 -0
  423. package/generators/init/templates/README.md.ejs +19 -0
  424. package/generators/init/templates/package.json +6 -0
  425. package/generators/init/templates/package.json.ejs +41 -0
  426. package/generators/java/__snapshots__/generator.spec.cjs.snap +118 -0
  427. package/generators/java/config.cjs +43 -0
  428. package/generators/java/constants.cjs +69 -0
  429. package/generators/java/files.cjs +26 -0
  430. package/generators/java/generator.spec.cjs +87 -0
  431. package/generators/java/index.cjs +226 -0
  432. package/generators/java/mixin.cjs +120 -0
  433. package/generators/java/options.cjs +32 -0
  434. package/generators/java/templates/.editorconfig.jhi.java.ejs +23 -0
  435. package/generators/java/templates/.gitignore.jhi.java.ejs +34 -0
  436. package/generators/java/templates/.prettierrc.yml.jhi.java.ejs +25 -0
  437. package/generators/kubernetes/esm.mjs +21 -0
  438. package/generators/kubernetes/files.js +20 -8
  439. package/generators/kubernetes/generator.spec.mjs +44 -0
  440. package/generators/kubernetes/index.js +126 -64
  441. package/generators/kubernetes/kubernetes-constants.js +50 -0
  442. package/generators/kubernetes/prompts.js +25 -16
  443. package/generators/kubernetes/templates/README-KUBERNETES.md.ejs +12 -13
  444. package/generators/kubernetes/templates/db/couchbase.yml.ejs +3 -3
  445. package/generators/kubernetes/templates/db/elasticsearch.yml.ejs +5 -5
  446. package/generators/kubernetes/templates/db/mariadb.yml.ejs +5 -5
  447. package/generators/kubernetes/templates/db/mongodb.yml.ejs +2 -2
  448. package/generators/kubernetes/templates/db/mssql.yml.ejs +5 -5
  449. package/generators/kubernetes/templates/db/mysql.yml.ejs +5 -5
  450. package/generators/kubernetes/templates/db/neo4j.yml.ejs +5 -5
  451. package/generators/kubernetes/templates/db/postgresql.yml.ejs +5 -5
  452. package/generators/kubernetes/templates/deployment.yml.ejs +61 -56
  453. package/generators/kubernetes/templates/ingress.yml.ejs +2 -2
  454. package/generators/kubernetes/templates/istio/destination-rule.yml.ejs +1 -1
  455. package/generators/kubernetes/templates/istio/gateway/grafana-gateway.yml.ejs +5 -2
  456. package/generators/kubernetes/templates/istio/gateway/jhipster-grafana-gateway.yml.ejs +5 -2
  457. package/generators/kubernetes/templates/istio/gateway/kiali-gateway.yml.ejs +10 -8
  458. package/generators/kubernetes/templates/istio/gateway/zipkin-gateway.yml.ejs +5 -2
  459. package/generators/kubernetes/templates/istio/gateway.yml.ejs +11 -9
  460. package/generators/kubernetes/templates/kubectl-apply.sh.ejs +24 -23
  461. package/generators/kubernetes/templates/kustomize/kustomization.yml.ejs +27 -27
  462. package/generators/kubernetes/templates/messagebroker/kafka.yml.ejs +4 -4
  463. package/generators/kubernetes/templates/monitoring/jhipster-grafana-dashboard.yml.ejs +2 -2
  464. package/generators/kubernetes/templates/monitoring/jhipster-grafana.yml.ejs +6 -6
  465. package/generators/kubernetes/templates/monitoring/jhipster-prometheus-crd.yml.ejs +2 -2
  466. package/generators/kubernetes/templates/registry/application-configmap.yml.ejs +6 -6
  467. package/generators/kubernetes/templates/registry/consul.yml.ejs +2 -2
  468. package/generators/kubernetes/templates/registry/jhipster-registry.yml.ejs +4 -4
  469. package/generators/kubernetes/templates/secret/couchbase-secret.yml.ejs +9 -0
  470. package/generators/kubernetes/templates/service.yml.ejs +8 -8
  471. package/generators/kubernetes-base.js +44 -18
  472. package/generators/kubernetes-helm/esm.mjs +21 -0
  473. package/generators/kubernetes-helm/files.js +20 -21
  474. package/generators/kubernetes-helm/generator.spec.mjs +44 -0
  475. package/generators/kubernetes-helm/index.js +106 -46
  476. package/generators/kubernetes-helm/templates/README-KUBERNETES-HELM.md.ejs +2 -3
  477. package/generators/kubernetes-helm/templates/app/Chart.yml.ejs +27 -0
  478. package/generators/kubernetes-helm/templates/app/helpers.tpl.ejs +4 -15
  479. package/generators/kubernetes-helm/templates/app/requirements.yml.ejs +11 -6
  480. package/generators/kubernetes-helm/templates/app/values.yml.ejs +73 -10
  481. package/generators/kubernetes-helm/templates/csvc/Chart.yml.ejs +17 -0
  482. package/generators/kubernetes-helm/templates/csvc/helpers.tpl.ejs +1 -1
  483. package/generators/kubernetes-helm/templates/csvc/requirements.yml.ejs +3 -3
  484. package/generators/kubernetes-helm/templates/csvc/values.yml.ejs +6 -6
  485. package/generators/kubernetes-helm/templates/helm-apply.sh.ejs +2 -2
  486. package/generators/kubernetes-helm/templates/helm-upgrade.sh.ejs +1 -1
  487. package/generators/kubernetes-knative/esm.mjs +21 -0
  488. package/generators/kubernetes-knative/files.js +30 -19
  489. package/generators/kubernetes-knative/generator.spec.mjs +44 -0
  490. package/generators/kubernetes-knative/index.js +134 -72
  491. package/generators/kubernetes-knative/prompts.js +7 -3
  492. package/generators/kubernetes-knative/templates/README-KUBERNETES-KNATIVE.md.ejs +5 -5
  493. package/generators/kubernetes-knative/templates/helm-apply.sh.ejs +1 -1
  494. package/generators/kubernetes-knative/templates/istio/gateway.yml.ejs +10 -8
  495. package/generators/kubernetes-knative/templates/kubectl-apply.sh.ejs +24 -19
  496. package/generators/kubernetes-knative/templates/service.yml.ejs +32 -32
  497. package/generators/languages/esm.mjs +21 -0
  498. package/generators/languages/files.js +73 -0
  499. package/generators/languages/generator.spec.mjs +47 -0
  500. package/generators/languages/index.js +45 -22
  501. package/generators/languages/prompts.js +1 -1
  502. package/generators/languages/templates/src/main/resources/i18n/messages_hr.properties.ejs +0 -0
  503. package/generators/languages/templates/src/main/resources/i18n/messages_pa.properties.ejs +41 -0
  504. package/generators/languages/templates/src/main/webapp/i18n/al/global.json.ejs +2 -2
  505. package/generators/languages/templates/src/main/webapp/i18n/al/health.json.ejs +17 -15
  506. package/generators/languages/templates/src/main/webapp/i18n/ar-ly/global.json.ejs +2 -2
  507. package/generators/languages/templates/src/main/webapp/i18n/ar-ly/health.json.ejs +17 -15
  508. package/generators/languages/templates/src/main/webapp/i18n/bg/global.json.ejs +2 -2
  509. package/generators/languages/templates/src/main/webapp/i18n/bg/health.json.ejs +19 -16
  510. package/generators/languages/templates/src/main/webapp/i18n/bn/global.json.ejs +2 -2
  511. package/generators/languages/templates/src/main/webapp/i18n/bn/health.json.ejs +17 -15
  512. package/generators/languages/templates/src/main/webapp/i18n/by/global.json.ejs +2 -2
  513. package/generators/languages/templates/src/main/webapp/i18n/by/health.json.ejs +17 -15
  514. package/generators/languages/templates/src/main/webapp/i18n/ca/global.json.ejs +2 -2
  515. package/generators/languages/templates/src/main/webapp/i18n/ca/health.json.ejs +17 -15
  516. package/generators/languages/templates/src/main/webapp/i18n/cs/global.json.ejs +2 -2
  517. package/generators/languages/templates/src/main/webapp/i18n/cs/health.json.ejs +17 -15
  518. package/generators/languages/templates/src/main/webapp/i18n/da/global.json.ejs +2 -2
  519. package/generators/languages/templates/src/main/webapp/i18n/da/health.json.ejs +17 -15
  520. package/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +2 -2
  521. package/generators/languages/templates/src/main/webapp/i18n/de/health.json.ejs +17 -15
  522. package/generators/languages/templates/src/main/webapp/i18n/el/global.json.ejs +2 -2
  523. package/generators/languages/templates/src/main/webapp/i18n/el/health.json.ejs +17 -15
  524. package/generators/languages/templates/src/main/webapp/i18n/en/global.json.ejs +2 -2
  525. package/generators/languages/templates/src/main/webapp/i18n/en/health.json.ejs +17 -15
  526. package/generators/languages/templates/src/main/webapp/i18n/es/global.json.ejs +2 -2
  527. package/generators/languages/templates/src/main/webapp/i18n/es/health.json.ejs +17 -15
  528. package/generators/languages/templates/src/main/webapp/i18n/et/global.json.ejs +2 -2
  529. package/generators/languages/templates/src/main/webapp/i18n/et/health.json.ejs +17 -15
  530. package/generators/languages/templates/src/main/webapp/i18n/fa/global.json.ejs +2 -2
  531. package/generators/languages/templates/src/main/webapp/i18n/fa/health.json.ejs +17 -15
  532. package/generators/languages/templates/src/main/webapp/i18n/fi/global.json.ejs +2 -2
  533. package/generators/languages/templates/src/main/webapp/i18n/fi/health.json.ejs +17 -15
  534. package/generators/languages/templates/src/main/webapp/i18n/fr/global.json.ejs +2 -2
  535. package/generators/languages/templates/src/main/webapp/i18n/fr/health.json.ejs +17 -15
  536. package/generators/languages/templates/src/main/webapp/i18n/gl/global.json.ejs +2 -2
  537. package/generators/languages/templates/src/main/webapp/i18n/gl/health.json.ejs +17 -15
  538. package/generators/languages/templates/src/main/webapp/i18n/hi/global.json.ejs +2 -2
  539. package/generators/languages/templates/src/main/webapp/i18n/hi/health.json.ejs +17 -15
  540. package/generators/languages/templates/src/main/webapp/i18n/hr/activate.json.ejs +0 -0
  541. package/generators/languages/templates/src/main/webapp/i18n/hr/configuration.json +0 -0
  542. package/generators/languages/templates/src/main/webapp/i18n/hr/error.json +0 -0
  543. package/generators/languages/templates/src/main/webapp/i18n/hr/gateway.json +0 -0
  544. package/generators/languages/templates/src/main/webapp/i18n/hr/global.json.ejs +2 -2
  545. package/generators/languages/templates/src/main/webapp/i18n/hr/health.json.ejs +15 -13
  546. package/generators/languages/templates/src/main/webapp/i18n/hr/home.json +0 -0
  547. package/generators/languages/templates/src/main/webapp/i18n/hr/login.json +0 -0
  548. package/generators/languages/templates/src/main/webapp/i18n/hr/logs.json +0 -0
  549. package/generators/languages/templates/src/main/webapp/i18n/hr/metrics.json +0 -0
  550. package/generators/languages/templates/src/main/webapp/i18n/hr/password.json +0 -0
  551. package/generators/languages/templates/src/main/webapp/i18n/hr/register.json +0 -0
  552. package/generators/languages/templates/src/main/webapp/i18n/hr/reset.json.ejs +1 -2
  553. package/generators/languages/templates/src/main/webapp/i18n/hr/sessions.json +0 -0
  554. package/generators/languages/templates/src/main/webapp/i18n/hr/settings.json +0 -0
  555. package/generators/languages/templates/src/main/webapp/i18n/hr/tracker.json +0 -0
  556. package/generators/languages/templates/src/main/webapp/i18n/hr/user-management.json +0 -0
  557. package/generators/languages/templates/src/main/webapp/i18n/hu/global.json.ejs +2 -2
  558. package/generators/languages/templates/src/main/webapp/i18n/hu/health.json.ejs +17 -15
  559. package/generators/languages/templates/src/main/webapp/i18n/hy/global.json.ejs +2 -2
  560. package/generators/languages/templates/src/main/webapp/i18n/hy/health.json.ejs +17 -15
  561. package/generators/languages/templates/src/main/webapp/i18n/in/global.json.ejs +2 -2
  562. package/generators/languages/templates/src/main/webapp/i18n/in/health.json.ejs +17 -15
  563. package/generators/languages/templates/src/main/webapp/i18n/it/global.json.ejs +2 -2
  564. package/generators/languages/templates/src/main/webapp/i18n/it/health.json.ejs +17 -15
  565. package/generators/languages/templates/src/main/webapp/i18n/ja/global.json.ejs +2 -2
  566. package/generators/languages/templates/src/main/webapp/i18n/ja/health.json.ejs +17 -15
  567. package/generators/languages/templates/src/main/webapp/i18n/ko/global.json.ejs +2 -2
  568. package/generators/languages/templates/src/main/webapp/i18n/ko/health.json.ejs +17 -15
  569. package/generators/languages/templates/src/main/webapp/i18n/mr/global.json.ejs +2 -2
  570. package/generators/languages/templates/src/main/webapp/i18n/mr/health.json.ejs +17 -15
  571. package/generators/languages/templates/src/main/webapp/i18n/my/global.json.ejs +2 -2
  572. package/generators/languages/templates/src/main/webapp/i18n/my/health.json.ejs +17 -15
  573. package/generators/languages/templates/src/main/webapp/i18n/nl/global.json.ejs +2 -2
  574. package/generators/languages/templates/src/main/webapp/i18n/nl/health.json.ejs +17 -15
  575. package/generators/languages/templates/src/main/webapp/i18n/pa/activate.json.ejs +27 -0
  576. package/generators/languages/templates/src/main/webapp/i18n/pa/configuration.json +10 -0
  577. package/generators/languages/templates/src/main/webapp/i18n/pa/error.json +14 -0
  578. package/generators/languages/templates/src/main/webapp/i18n/pa/gateway.json +15 -0
  579. package/generators/languages/templates/src/main/webapp/i18n/pa/global.json.ejs +162 -0
  580. package/generators/languages/templates/src/main/webapp/i18n/pa/health.json.ejs +71 -0
  581. package/generators/languages/templates/src/main/webapp/i18n/pa/home.json +19 -0
  582. package/generators/languages/templates/src/main/webapp/i18n/pa/login.json +19 -0
  583. package/generators/languages/templates/src/main/webapp/i18n/pa/logs.json +11 -0
  584. package/generators/languages/templates/src/main/webapp/i18n/pa/metrics.json +102 -0
  585. package/generators/languages/templates/src/main/webapp/i18n/pa/password.json +12 -0
  586. package/generators/languages/templates/src/main/webapp/i18n/pa/register.json +24 -0
  587. package/generators/languages/templates/src/main/webapp/i18n/pa/reset.json.ejs +44 -0
  588. package/generators/languages/templates/src/main/webapp/i18n/pa/sessions.json +15 -0
  589. package/generators/languages/templates/src/main/webapp/i18n/pa/settings.json +32 -0
  590. package/generators/languages/templates/src/main/webapp/i18n/pa/tracker.json +12 -0
  591. package/generators/languages/templates/src/main/webapp/i18n/pa/user-management.json +31 -0
  592. package/generators/languages/templates/src/main/webapp/i18n/pl/global.json.ejs +2 -2
  593. package/generators/languages/templates/src/main/webapp/i18n/pl/health.json.ejs +17 -15
  594. package/generators/languages/templates/src/main/webapp/i18n/pt-br/global.json.ejs +2 -2
  595. package/generators/languages/templates/src/main/webapp/i18n/pt-br/health.json.ejs +17 -15
  596. package/generators/languages/templates/src/main/webapp/i18n/pt-pt/global.json.ejs +2 -2
  597. package/generators/languages/templates/src/main/webapp/i18n/pt-pt/health.json.ejs +17 -15
  598. package/generators/languages/templates/src/main/webapp/i18n/ro/global.json.ejs +2 -2
  599. package/generators/languages/templates/src/main/webapp/i18n/ro/health.json.ejs +17 -15
  600. package/generators/languages/templates/src/main/webapp/i18n/ru/global.json.ejs +2 -2
  601. package/generators/languages/templates/src/main/webapp/i18n/ru/health.json.ejs +17 -15
  602. package/generators/languages/templates/src/main/webapp/i18n/si/global.json.ejs +2 -2
  603. package/generators/languages/templates/src/main/webapp/i18n/si/health.json.ejs +17 -15
  604. package/generators/languages/templates/src/main/webapp/i18n/sk/global.json.ejs +2 -2
  605. package/generators/languages/templates/src/main/webapp/i18n/sk/health.json.ejs +17 -15
  606. package/generators/languages/templates/src/main/webapp/i18n/sr/global.json.ejs +2 -2
  607. package/generators/languages/templates/src/main/webapp/i18n/sr/health.json.ejs +16 -14
  608. package/generators/languages/templates/src/main/webapp/i18n/sv/global.json.ejs +2 -2
  609. package/generators/languages/templates/src/main/webapp/i18n/sv/health.json.ejs +17 -15
  610. package/generators/languages/templates/src/main/webapp/i18n/ta/global.json.ejs +2 -2
  611. package/generators/languages/templates/src/main/webapp/i18n/ta/health.json.ejs +17 -15
  612. package/generators/languages/templates/src/main/webapp/i18n/te/global.json.ejs +2 -2
  613. package/generators/languages/templates/src/main/webapp/i18n/te/health.json.ejs +17 -15
  614. package/generators/languages/templates/src/main/webapp/i18n/th/global.json.ejs +2 -2
  615. package/generators/languages/templates/src/main/webapp/i18n/th/health.json.ejs +17 -15
  616. package/generators/languages/templates/src/main/webapp/i18n/tr/global.json.ejs +2 -2
  617. package/generators/languages/templates/src/main/webapp/i18n/tr/health.json.ejs +17 -15
  618. package/generators/languages/templates/src/main/webapp/i18n/ua/global.json.ejs +2 -2
  619. package/generators/languages/templates/src/main/webapp/i18n/ua/health.json.ejs +17 -15
  620. package/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json.ejs +2 -2
  621. package/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/health.json.ejs +16 -14
  622. package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/global.json.ejs +2 -2
  623. package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/health.json.ejs +17 -15
  624. package/generators/languages/templates/src/main/webapp/i18n/vi/global.json.ejs +2 -2
  625. package/generators/languages/templates/src/main/webapp/i18n/vi/health.json.ejs +17 -15
  626. package/generators/languages/templates/src/main/webapp/i18n/zh-cn/global.json.ejs +2 -2
  627. package/generators/languages/templates/src/main/webapp/i18n/zh-cn/health.json.ejs +17 -15
  628. package/generators/languages/templates/src/main/webapp/i18n/zh-tw/global.json.ejs +2 -2
  629. package/generators/languages/templates/src/main/webapp/i18n/zh-tw/health.json.ejs +17 -15
  630. package/generators/languages/templates/src/test/resources/i18n/messages_hr.properties.ejs +0 -0
  631. package/generators/languages/templates/src/test/resources/i18n/messages_pa.properties.ejs +4 -0
  632. package/generators/maven/__snapshots__/generator.spec.cjs.snap +53 -0
  633. package/generators/maven/constants.cjs +27 -0
  634. package/generators/maven/files.cjs +36 -0
  635. package/generators/maven/generator.spec.cjs +78 -0
  636. package/generators/maven/index.cjs +131 -0
  637. package/generators/maven/templates/.eslintignore.jhi.maven.ejs +19 -0
  638. package/generators/maven/templates/.gitignore.jhi.maven.ejs +9 -0
  639. package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +117 -0
  640. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  641. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +2 -0
  642. package/generators/maven/templates/.prettierignore.jhi.maven.ejs +3 -0
  643. package/generators/maven/templates/mvnw +310 -0
  644. package/generators/maven/templates/mvnw.cmd +182 -0
  645. package/generators/maven/templates/pom.xml.jhi.ejs +98 -0
  646. package/generators/openapi-client/esm.mjs +21 -0
  647. package/generators/openapi-client/files.js +21 -15
  648. package/generators/openapi-client/generator.spec.mjs +47 -0
  649. package/generators/openapi-client/index.js +80 -28
  650. package/generators/openapi-client/prompts.js +6 -2
  651. package/generators/openshift/esm.mjs +21 -0
  652. package/generators/openshift/files.js +12 -5
  653. package/generators/openshift/generator.spec.mjs +44 -0
  654. package/generators/openshift/index.js +136 -64
  655. package/generators/openshift/prompts.js +12 -4
  656. package/generators/openshift/templates/apply.sh.ejs +6 -6
  657. package/generators/openshift/templates/db/cassandra.yml.ejs +8 -9
  658. package/generators/openshift/templates/db/couchbase.yml.ejs +8 -9
  659. package/generators/openshift/templates/db/elasticsearch.yml.ejs +8 -9
  660. package/generators/openshift/templates/db/mariadb.yml.ejs +8 -9
  661. package/generators/openshift/templates/db/mongodb.yml.ejs +8 -9
  662. package/generators/openshift/templates/db/mysql.yml.ejs +8 -9
  663. package/generators/openshift/templates/db/postgresql.yml.ejs +8 -9
  664. package/generators/openshift/templates/deployment.yml.ejs +46 -46
  665. package/generators/openshift/templates/messagebroker/kafka.yml.ejs +13 -14
  666. package/generators/openshift/templates/monitoring/jhipster-metrics.yml.ejs +17 -17
  667. package/generators/openshift/templates/registry/application-configmap.yml.ejs +6 -6
  668. package/generators/options.js +63 -0
  669. package/generators/page/esm.mjs +21 -0
  670. package/generators/page/generator.spec.mjs +47 -0
  671. package/generators/page/index.js +17 -13
  672. package/generators/project-name/config.cjs +40 -0
  673. package/generators/project-name/constants.cjs +37 -0
  674. package/generators/project-name/generator.spec.cjs +43 -0
  675. package/generators/project-name/index.cjs +194 -0
  676. package/generators/project-name/mixin.cjs +82 -0
  677. package/generators/project-name/options.cjs +33 -0
  678. package/generators/server/__snapshots__/generator.spec.mjs.snap +1848 -0
  679. package/generators/server/esm.mjs +21 -0
  680. package/generators/server/files-couchbase.js +155 -0
  681. package/generators/server/files-sql.js +52 -0
  682. package/generators/server/files.js +302 -286
  683. package/generators/server/generator.spec.mjs +52 -0
  684. package/generators/server/index.js +193 -97
  685. package/generators/server/needle-api/needle-server-cache.js +7 -8
  686. package/generators/server/prompts.js +104 -62
  687. package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +1 -1
  688. package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +1 -1
  689. package/generators/server/templates/build.gradle.ejs +43 -9
  690. package/generators/server/templates/checkstyle.xml.ejs +2 -2
  691. package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase/Couchbase.Dockerfile.ejs +0 -0
  692. package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase/scripts/configure-node.sh.ejs +4 -4
  693. package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase-cluster.yml.ejs +0 -0
  694. package/generators/server/templates/{src → couchbase/src}/main/docker/couchbase.yml.ejs +0 -0
  695. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactory.java.ejs +83 -0
  696. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactoryBean.java.ejs +40 -0
  697. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryQuery.java.ejs +44 -0
  698. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlQueryCreator.java.ejs +162 -0
  699. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlRepositoryQueryExecutor.java.ejs +104 -0
  700. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/package-info.java.ejs +25 -0
  701. package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +114 -0
  702. package/generators/server/templates/couchbase/src/main/java/package/repository/PersistentTokenRepository_couchbase.java.ejs +49 -0
  703. package/generators/server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_ADMIN.json.ejs +0 -0
  704. package/generators/server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_USER.json.ejs +0 -0
  705. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/user__admin.json.ejs +18 -0
  706. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/user__user.json.ejs +17 -0
  707. package/generators/server/templates/{src → couchbase/src}/main/resources/config/couchmove/changelog/V0__create_indexes.n1ql.ejs +3 -6
  708. package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +55 -0
  709. package/generators/server/templates/{src/test/java/package/repository/CustomN1qlCouchbaseRepositoryTest.java.ejs → couchbase/src/test/java/package/repository/JHipsterCouchbaseRepositoryTest.java.ejs} +3 -4
  710. package/generators/server/templates/gradle/docker.gradle.ejs +3 -3
  711. package/generators/server/templates/gradle/profile_dev.gradle.ejs +36 -12
  712. package/generators/server/templates/gradle/profile_prod.gradle.ejs +7 -7
  713. package/generators/server/templates/gradle/war.gradle.ejs +4 -4
  714. package/generators/server/templates/gradle.properties.ejs +21 -17
  715. package/generators/server/templates/mvnw +1 -1
  716. package/generators/server/templates/mvnw.cmd +1 -1
  717. package/generators/server/templates/npmw +1 -1
  718. package/generators/server/templates/npmw.cmd +1 -1
  719. package/generators/server/templates/package.json.ejs +4 -8
  720. package/generators/server/templates/pom.xml.ejs +352 -160
  721. package/generators/server/templates/settings.gradle.ejs +38 -9
  722. package/generators/server/templates/sql/reactive/src/main/java/package/repository/UserSqlHelper.java.ejs +48 -0
  723. package/generators/server/templates/src/main/docker/app.yml.ejs +80 -75
  724. package/generators/server/templates/src/main/docker/config/README.md.ejs +2 -2
  725. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +117 -41
  726. package/generators/server/templates/src/main/docker/elasticsearch.yml.ejs +12 -1
  727. package/generators/server/templates/src/main/docker/jhipster-control-center.yml.ejs +8 -8
  728. package/generators/server/templates/src/main/docker/jhipster-registry.yml.ejs +3 -3
  729. package/generators/server/templates/src/main/docker/prometheus/prometheus.yml.ejs +1 -1
  730. package/generators/server/templates/src/main/java/package/Application.java.ejs +6 -5
  731. package/generators/server/templates/src/main/java/package/aop/logging/LoggingAspect.java.ejs +1 -1
  732. package/generators/server/templates/src/main/java/package/client/OAuth2InterceptedFeignConfiguration.java.ejs +1 -1
  733. package/generators/server/templates/src/main/java/package/config/CacheConfiguration.java.ejs +94 -96
  734. package/generators/server/templates/src/main/java/package/config/Constants.java.ejs +8 -8
  735. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_cassandra.java.ejs +2 -8
  736. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +116 -33
  737. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_mongodb.java.ejs +4 -6
  738. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_neo4j.java.ejs +4 -6
  739. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_sql.java.ejs +13 -13
  740. package/generators/server/templates/src/main/java/package/config/ElasticsearchConfiguration.java.ejs +5 -4
  741. package/generators/server/templates/src/main/java/package/config/FeignConfiguration.java.ejs +6 -1
  742. package/generators/server/templates/src/main/java/package/config/JacksonConfiguration.java.ejs +3 -3
  743. package/generators/server/templates/src/main/java/package/config/LiquibaseConfiguration.java.ejs +5 -5
  744. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration.java.ejs +1 -4
  745. package/generators/server/templates/src/main/java/package/config/LoggingConfiguration.java.ejs +13 -13
  746. package/generators/server/templates/src/main/java/package/config/OAuth2Configuration.java.ejs +38 -0
  747. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +99 -102
  748. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +114 -66
  749. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +31 -32
  750. package/generators/server/templates/src/main/java/package/config/WebsocketSecurityConfiguration.java.ejs +4 -2
  751. package/generators/server/templates/src/main/java/package/config/apidocs/GatewaySwaggerResourcesProvider.java.ejs +5 -5
  752. package/generators/server/templates/src/main/java/package/config/dbmigrations/InitialSetupMigration.java.ejs +2 -6
  753. package/generators/server/templates/src/main/java/package/domain/AbstractAuditingEntity.java.ejs +48 -36
  754. package/generators/server/templates/src/main/java/package/domain/Authority.java.ejs +20 -20
  755. package/generators/server/templates/src/main/java/package/domain/PersistentToken.java.ejs +55 -55
  756. package/generators/server/templates/src/main/java/package/domain/User.java.ejs +185 -160
  757. package/generators/server/templates/src/main/java/package/management/SecurityMetersService.java.ejs +68 -0
  758. package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +40 -15
  759. package/generators/server/templates/src/main/java/package/repository/PersistentTokenRepository.java.ejs +14 -36
  760. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +209 -163
  761. package/generators/server/templates/src/main/java/package/repository/rowmapper/UserRowMapper.java.ejs +4 -4
  762. package/generators/server/templates/src/main/java/package/repository/search/UserSearchRepository.java.ejs +33 -7
  763. package/generators/server/templates/src/main/java/package/repository/search/package-info.java.ejs +2 -2
  764. package/generators/server/templates/src/main/java/package/security/DomainUserDetailsService.java.ejs +11 -11
  765. package/generators/server/templates/src/main/java/package/security/PersistentTokenRememberMeServices.java.ejs +43 -45
  766. package/generators/server/templates/src/main/java/package/security/SecurityUtils.java.ejs +62 -29
  767. package/generators/server/templates/src/main/java/package/security/jwt/JWTFilter.java.ejs +10 -10
  768. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +31 -6
  769. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +29 -4
  770. package/generators/server/templates/src/main/java/package/service/MailService.java.ejs +2 -2
  771. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +326 -304
  772. package/generators/server/templates/src/main/java/package/service/dto/AdminUserDTO.java.ejs +24 -24
  773. package/generators/server/templates/src/main/java/package/service/dto/UserDTO.java.ejs +7 -7
  774. package/generators/server/templates/src/main/java/package/service/mapper/UserMapper.java.ejs +11 -11
  775. package/generators/server/templates/src/main/java/package/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs +71 -0
  776. package/generators/server/templates/src/main/java/package/web/filter/OAuth2RefreshTokensWebFilter.java.ejs +103 -0
  777. package/generators/server/templates/src/main/java/package/web/filter/SpaWebFilter.java.ejs +3 -3
  778. package/generators/server/templates/src/main/java/package/web/rest/AccountResource.java.ejs +77 -76
  779. package/generators/server/templates/src/main/java/package/web/rest/ClientForwardController.java.ejs +3 -3
  780. package/generators/server/templates/src/main/java/package/web/rest/KafkaResource.java.ejs +12 -12
  781. package/generators/server/templates/src/main/java/package/web/rest/LogoutResource.java.ejs +58 -22
  782. package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +62 -39
  783. package/generators/server/templates/src/main/java/package/web/rest/UserJWTController.java.ejs +3 -3
  784. package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +51 -51
  785. package/generators/server/templates/src/main/java/package/web/rest/errors/ErrorConstants.java.ejs +4 -4
  786. package/generators/server/templates/src/main/java/package/web/rest/errors/ExceptionTranslator.java.ejs +19 -19
  787. package/generators/server/templates/src/main/java/package/web/rest/vm/ManagedUserVM.java.ejs +4 -4
  788. package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +105 -102
  789. package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +78 -78
  790. package/generators/server/templates/src/main/resources/config/application-tls.yml.ejs +1 -1
  791. package/generators/server/templates/src/main/resources/config/application.yml.ejs +42 -55
  792. package/generators/server/templates/src/main/resources/config/bootstrap-prod.yml.ejs +7 -7
  793. package/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +6 -6
  794. package/generators/server/templates/src/main/resources/config/cql/changelog/create-tables.cql.ejs +1 -1
  795. package/generators/server/templates/src/main/resources/config/liquibase/changelog/initial_schema.xml.ejs +26 -34
  796. package/generators/server/templates/src/main/resources/config/liquibase/data/user.csv.ejs +2 -2
  797. package/generators/server/templates/src/main/resources/config/liquibase/data/user_authority.csv.ejs +1 -1
  798. package/generators/server/templates/src/main/resources/config/liquibase/master.xml.ejs +14 -14
  799. package/generators/server/templates/src/main/resources/config/{couchmove/changelog/V0.1__initial_setup → neo4j/migrations}/user__admin.json.ejs +2 -2
  800. package/generators/server/templates/src/main/resources/config/{couchmove/changelog/V0.1__initial_setup → neo4j/migrations}/user__user.json.ejs +2 -2
  801. package/generators/server/templates/src/main/resources/h2.server.properties.ejs +2 -2
  802. package/generators/server/templates/src/main/resources/logback-spring.xml.ejs +55 -55
  803. package/generators/server/templates/src/main/resources/static/microservices_index.html.ejs +1 -1
  804. package/generators/server/templates/src/main/resources/swagger/api.yml.ejs +6 -6
  805. package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +13 -7
  806. package/generators/server/templates/src/test/java/package/ReactiveSqlTestContainerExtension.java.ejs +9 -9
  807. package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +3 -0
  808. package/generators/server/templates/src/test/java/package/config/TestSecurityConfiguration.java.ejs +27 -28
  809. package/generators/server/templates/src/test/java/package/config/WebConfigurerTest.java.ejs +5 -7
  810. package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +6 -4
  811. package/generators/server/templates/src/test/java/package/management/SecurityMetersServiceTests.java.ejs +113 -0
  812. package/generators/server/templates/src/test/java/package/repository/timezone/DateTimeWrapper.java.ejs +3 -3
  813. package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +24 -24
  814. package/generators/server/templates/src/test/java/package/security/SecurityUtilsUnitTest.java.ejs +97 -10
  815. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +23 -18
  816. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderSecurityMetersTests.java.ejs +198 -0
  817. package/generators/server/templates/src/test/java/package/security/jwt/TokenProviderTest.java.ejs +13 -3
  818. package/generators/server/templates/src/test/java/package/security/oauth2/AuthorizationHeaderUtilTest.java.ejs +16 -2
  819. package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +108 -4
  820. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +4 -4
  821. package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +133 -133
  822. package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +17 -17
  823. package/generators/server/templates/src/test/java/package/test/util/OAuth2TestUtil.java.ejs +104 -0
  824. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +397 -338
  825. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_oauth2.java.ejs +67 -70
  826. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +20 -20
  827. package/generators/server/templates/src/test/java/package/web/rest/ClientForwardControllerTest.java.ejs +2 -2
  828. package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT.java.ejs +14 -14
  829. package/generators/server/templates/src/test/java/package/web/rest/LogoutResourceIT.java.ejs +41 -34
  830. package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs +59 -59
  831. package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +25 -55
  832. package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs +35 -35
  833. package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +263 -261
  834. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT.java.ejs +13 -13
  835. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorTestController.java.ejs +3 -3
  836. package/generators/server/templates/src/test/resources/config/application-testcontainers.yml.ejs +17 -17
  837. package/generators/server/templates/src/test/resources/config/application.yml.ejs +34 -36
  838. package/generators/server/templates/src/test/resources/config/bootstrap.yml.ejs +4 -4
  839. package/generators/server/templates/src/test/resources/logback.xml.ejs +54 -52
  840. package/generators/spring-boot/__snapshots__/generator.spec.cjs.snap +80 -0
  841. package/generators/spring-boot/config.cjs +30 -0
  842. package/generators/spring-boot/constants.cjs +28 -0
  843. package/generators/spring-boot/files.cjs +46 -0
  844. package/generators/spring-boot/generator.spec.cjs +64 -0
  845. package/generators/spring-boot/index.cjs +162 -0
  846. package/generators/spring-boot/mixin.cjs +82 -0
  847. package/generators/spring-boot/options.cjs +19 -0
  848. package/generators/spring-boot/templates/build.gradle.jhi.spring-boot.ejs +29 -0
  849. package/generators/spring-boot/templates/pom.xml.jhi.spring-boot.ejs +45 -0
  850. package/generators/spring-boot/templates/src/main/java/package/Application.java.jhi.ejs +31 -0
  851. package/generators/spring-boot/templates/src/main/resources/application.properties.jhi.ejs +19 -0
  852. package/generators/spring-boot/templates/src/test/java/package/ApplicationTests.java.jhi.ejs +31 -0
  853. package/generators/spring-controller/esm.mjs +21 -0
  854. package/generators/spring-controller/generator.spec.mjs +47 -0
  855. package/generators/spring-controller/index.js +39 -19
  856. package/generators/spring-controller/templates/src/main/java/package/web/rest/Resource.java.ejs +5 -5
  857. package/generators/spring-controller/templates/src/test/java/package/web/rest/ResourceIT.java.ejs +2 -2
  858. package/generators/spring-service/esm.mjs +21 -0
  859. package/generators/spring-service/generator.spec.mjs +47 -0
  860. package/generators/spring-service/index.js +33 -13
  861. package/generators/spring-service/templates/src/main/java/package/service/Service.java.ejs +16 -8
  862. package/generators/spring-service/templates/src/main/java/package/service/impl/ServiceImpl.java.ejs +9 -5
  863. package/generators/statistics.js +3 -1
  864. package/generators/upgrade/esm.mjs +21 -0
  865. package/generators/upgrade/generator.spec.mjs +44 -0
  866. package/generators/upgrade/index.js +5 -6
  867. package/generators/upgrade-config/esm.mjs +21 -0
  868. package/generators/upgrade-config/generator.spec.mjs +44 -0
  869. package/generators/upgrade-config/index.js +2 -2
  870. package/generators/utils.js +78 -11
  871. package/generators/workspaces/esm.mjs +21 -0
  872. package/generators/workspaces/generator.spec.mjs +47 -0
  873. package/generators/workspaces/index.js +20 -12
  874. package/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +8 -0
  875. package/jdl/converters/json-to-jdl-entity-converter.js +1 -0
  876. package/jdl/jhipster/application-options.js +18 -3
  877. package/jdl/jhipster/default-application-options.js +13 -7
  878. package/jdl/jhipster/deployment-options.js +25 -12
  879. package/jdl/jhipster/kubernetes-platform-types.js +40 -0
  880. package/jdl/jhipster/message-broker-types.js +1 -0
  881. package/jdl/jhipster/openapi-options.js +21 -0
  882. package/jdl/jhipster/openshift-platform-types.js +27 -0
  883. package/jdl/models/jdl-enum-value.js +2 -1
  884. package/jdl/models/jdl-enum.js +11 -1
  885. package/jdl/parsing/jdl-ast-builder-visitor.js +10 -2
  886. package/jdl/parsing/jdl-parser.js +3 -0
  887. package/jdl/parsing/lexer/application-tokens.js +4 -0
  888. package/jdl/parsing/validator.js +7 -1
  889. package/jdl/validators/application-validator.js +1 -0
  890. package/lib/constants/generators.mjs +20 -0
  891. package/lib/constants/priorities.cjs +131 -0
  892. package/lib/constants/priorities.mjs +19 -0
  893. package/lib/support/index.cjs +21 -0
  894. package/lib/support/mixin.cjs +199 -0
  895. package/lib/support/shared-data.cjs +74 -0
  896. package/package.json +55 -36
  897. package/utils/entity.js +21 -4
  898. package/utils/field.js +27 -3
  899. package/utils/liquibase.js +31 -20
  900. package/utils/multi-step-transform/index.js +52 -0
  901. package/utils/multi-step-transform/template-data.js +60 -0
  902. package/utils/multi-step-transform/template-file-fs.js +43 -0
  903. package/utils/multi-step-transform/template-file.js +84 -0
  904. package/NOTICE +0 -4
  905. package/generators/client/templates/angular/.npmrc.ejs +0 -1
  906. package/generators/client/templates/vue/webpack/dev.env.js.ejs +0 -18
  907. package/generators/client/templates/vue/webpack/env.js.ejs +0 -67
  908. package/generators/client/templates/vue/webpack/loader.conf.js.ejs +0 -20
  909. package/generators/client/templates/vue/webpack/prod.env.js.ejs +0 -16
  910. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.ejs +0 -769
  911. package/generators/server/templates/src/main/java/package/config/OAuth2SsoConfiguration.java.ejs +0 -94
  912. package/generators/server/templates/src/main/java/package/config/OAuth2TokenServicesConfiguration.java.ejs +0 -68
  913. package/generators/server/templates/src/main/java/package/repository/CustomN1qlCouchbaseRepository.java.ejs +0 -135
  914. package/generators/server/templates/src/main/java/package/repository/CustomReactiveN1qlCouchbaseRepository.java.ejs +0 -157
  915. package/generators/server/templates/src/main/java/package/repository/N1qlCouchbaseRepository.java.ejs +0 -46
  916. package/generators/server/templates/src/main/java/package/repository/ReactiveN1qlCouchbaseRepository.java.ejs +0 -47
  917. package/generators/server/templates/src/test/java/package/config/DatabaseConfigurationIT.java.ejs +0 -112
@@ -18,23 +18,25 @@
18
18
  -%>
19
19
  package <%= packageName %>.web.rest;
20
20
 
21
- <%_ if (databaseType === 'cassandra') { _%>
21
+ <%_ if (databaseTypeCassandra) { _%>
22
22
  import <%= packageName %>.AbstractCassandraTest;
23
+ <%_ } else if (databaseTypeCouchbase) { _%>
24
+ import <%= packageName %>.CouchbaseTestContainerExtension;
23
25
  <%_ } _%>
24
26
  import <%= packageName %>.IntegrationTest;
25
27
  import <%= packageName %>.config.Constants;
26
- <%_ if (authenticationType === 'session' && !reactive) { _%>
28
+ <%_ if (authenticationTypeSession && !reactive) { _%>
27
29
  import <%= packageName %>.domain.PersistentToken;
28
30
  <%_ } _%>
29
31
  import <%= packageName %>.domain.<%= asEntity('User') %>;
30
- <%_ if (databaseType === 'sql' || databaseType === 'mongodb' || databaseType === 'neo4j' || databaseType === 'couchbase') { _%>
32
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase) { _%>
31
33
  import <%= packageName %>.repository.AuthorityRepository;
32
34
  <%_ } _%>
33
- <%_ if (authenticationType === 'session' && !reactive) { _%>
35
+ <%_ if (authenticationTypeSession && !reactive) { _%>
34
36
  import <%= packageName %>.repository.PersistentTokenRepository;
35
37
  <%_ } _%>
36
38
  import <%= packageName %>.repository.UserRepository;
37
- <%_ if (reactive && searchEngine === 'elasticsearch') { _%>
39
+ <%_ if (reactive && searchEngineElasticsearch) { _%>
38
40
  import <%= packageName %>.repository.search.UserSearchRepository;
39
41
  <%_ } _%>
40
42
  import <%= packageName %>.security.AuthoritiesConstants;
@@ -45,10 +47,13 @@ import <%= packageName %>.service.dto.<%= asDto('User') %>;
45
47
  import <%= packageName %>.web.rest.vm.KeyAndPasswordVM;
46
48
  import <%= packageName %>.web.rest.vm.ManagedUserVM;
47
49
  import org.apache.commons.lang3.RandomStringUtils;
48
- <%_ if (reactive && testsNeedCsrf || databaseType === 'mongodb' || databaseType === 'neo4j') { _%>
50
+ <%_ if (reactive && testsNeedCsrf || databaseTypeMongodb || databaseTypeNeo4j) { _%>
49
51
  import org.junit.jupiter.api.BeforeEach;
50
52
  <%_ } _%>
51
53
  import org.junit.jupiter.api.Test;
54
+ <%_ if (databaseTypeCouchbase) { _%>
55
+ import org.junit.jupiter.api.extension.ExtendWith;
56
+ <%_ } _%>
52
57
  import org.springframework.beans.factory.annotation.Autowired;
53
58
  <%_ if (!reactive) { _%>
54
59
  import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
@@ -67,32 +72,32 @@ import org.springframework.test.web.reactive.server.WebTestClient;
67
72
  <%_ if (!reactive) { _%>
68
73
  import org.springframework.test.web.servlet.MockMvc;
69
74
  <%_ } _%>
70
- <%_ if (databaseType === 'sql' && !reactive) { _%>
75
+ <%_ if (databaseTypeSql && !reactive) { _%>
71
76
  import org.springframework.transaction.annotation.Transactional;
72
77
  <%_ } _%>
73
- <%_ if (reactive && searchEngine === 'elasticsearch') { _%>
78
+ <%_ if (reactive && searchEngineElasticsearch) { _%>
74
79
  import reactor.core.publisher.Mono;
75
80
  <%_ } _%>
76
81
 
77
82
  import java.time.Instant;
78
- <%_ if (authenticationType === 'session' && !reactive && ['sql', 'mongodb', 'neo4j', 'couchbase'].includes(databaseType)) { _%>
83
+ <%_ if (authenticationTypeSession && !reactive && (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j || databaseTypeCouchbase)) { _%>
79
84
  import java.time.LocalDate;
80
85
  <%_ } _%>
81
86
  import java.util.*;
82
87
 
83
88
  import static org.assertj.core.api.Assertions.assertThat;
84
- <%_ if (reactive && searchEngine === 'elasticsearch') { _%>
89
+ <%_ if (reactive && searchEngineElasticsearch) { _%>
85
90
  import static org.mockito.Mockito.*;
86
91
  <%_ } _%>
87
- <%_ if (authenticationType === 'session' && !reactive) { _%>
92
+ <%_ if (authenticationTypeSession && !reactive) { _%>
88
93
  import static org.hamcrest.Matchers.containsString;
89
94
  import static org.hamcrest.Matchers.hasItem;
90
95
  <%_ } _%>
91
96
  import static <%= packageName %>.web.rest.AccountResourceIT.TEST_USER_LOGIN;
92
97
  <%_ if (!reactive) { _%>
93
- <%_ if (testsNeedCsrf) { _%>
98
+ <%_ if (testsNeedCsrf) { _%>
94
99
  import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf;
95
- <%_ } _%>
100
+ <%_ } _%>
96
101
  import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
97
102
  import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
98
103
  <%_ } else if (testsNeedCsrf) { _%>
@@ -109,12 +114,12 @@ import static org.springframework.security.test.web.reactive.server.SecurityMock
109
114
  <%_ } _%>
110
115
  @WithMockUser(value = TEST_USER_LOGIN)
111
116
  @IntegrationTest
112
- class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends AbstractCassandraTest <% } %>{
117
+ class AccountResourceIT <% if (databaseTypeCassandra) { %>extends AbstractCassandraTest <% } %>{
113
118
  static final String TEST_USER_LOGIN = "test";
114
119
 
115
120
  @Autowired
116
121
  private UserRepository userRepository;
117
- <%_ if (databaseType === 'sql' || databaseType === 'mongodb' || databaseType === 'neo4j') { _%>
122
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
118
123
 
119
124
  @Autowired
120
125
  private AuthorityRepository authorityRepository;
@@ -122,16 +127,16 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
122
127
 
123
128
  @Autowired
124
129
  private UserService userService;
125
- <%_ if (authenticationType === 'session' && !reactive) { _%>
130
+ <%_ if (authenticationTypeSession && !reactive) { _%>
126
131
 
127
132
  @Autowired
128
133
  private PersistentTokenRepository persistentTokenRepository;
129
134
  <%_ } _%>
130
- <%_ if (searchEngine === 'elasticsearch' && reactive) { _%>
135
+ <%_ if (searchEngineElasticsearch && reactive) { _%>
131
136
 
132
137
  @Autowired
133
138
  private UserSearchRepository mockUserSearchRepository;
134
- <%_ } _%>
139
+ <%_ } _%>
135
140
 
136
141
  @Autowired
137
142
  private PasswordEncoder passwordEncoder;
@@ -143,40 +148,40 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
143
148
  private WebTestClient accountWebTestClient;
144
149
  <%_ } _%>
145
150
 
146
- <%_ if (databaseType === 'mongodb' || databaseType === 'neo4j') { _%>
151
+ <%_ if (databaseTypeMongodb || databaseTypeNeo4j) { _%>
147
152
  @BeforeEach
148
153
  public void setup() {
149
154
  userRepository.deleteAll()<% if (reactive) { %>.block()<% } %>;
150
155
  }
151
156
 
152
- <%_ } _%>
153
- <%_ if (reactive && testsNeedCsrf) { _%>
157
+ <%_ } _%>
158
+ <%_ if (reactive && testsNeedCsrf) { _%>
154
159
  @BeforeEach
155
160
  public void setupCsrf() {
156
161
  accountWebTestClient = accountWebTestClient.mutateWith(csrf());
157
162
  }
158
163
 
159
- <%_ } _%>
164
+ <%_ } _%>
160
165
  @Test
161
166
  @WithUnauthenticatedMockUser
162
- <%_ if (!reactive) { _%>
167
+ <%_ if (!reactive) { _%>
163
168
  void testNonAuthenticatedUser() <% if (!reactive) { %>throws Exception <% } %>{
164
169
  restAccountMockMvc.perform(get("/api/authenticate")
165
170
  .accept(MediaType.APPLICATION_JSON))
166
171
  .andExpect(status().isOk())
167
172
  .andExpect(content().string(""));
168
- <%_ } else { _%>
173
+ <%_ } else { _%>
169
174
  void testNonAuthenticatedUser() {
170
175
  accountWebTestClient.get().uri("/api/authenticate")
171
176
  .accept(MediaType.APPLICATION_JSON)
172
177
  .exchange()
173
178
  .expectStatus().isOk()
174
179
  .expectBody().isEmpty();
175
- <%_ } _%>
180
+ <%_ } _%>
176
181
  }
177
182
 
178
183
  @Test
179
- <%_ if (!reactive) { _%>
184
+ <%_ if (!reactive) { _%>
180
185
  void testAuthenticatedUser() <% if (!reactive) { %>throws Exception <% } %>{
181
186
  restAccountMockMvc.perform(get("/api/authenticate")
182
187
  .with(request -> {
@@ -186,7 +191,7 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
186
191
  .accept(MediaType.APPLICATION_JSON))
187
192
  .andExpect(status().isOk())
188
193
  .andExpect(content().string(TEST_USER_LOGIN));
189
- <%_ } else { _%>
194
+ <%_ } else { _%>
190
195
  void testAuthenticatedUser() {
191
196
  accountWebTestClient
192
197
  .get().uri("/api/authenticate")
@@ -194,17 +199,17 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
194
199
  .exchange()
195
200
  .expectStatus().isOk()
196
201
  .expectBody(String.class).isEqualTo(TEST_USER_LOGIN);
197
- <%_ } _%>
202
+ <%_ } _%>
198
203
  }
199
204
 
200
205
  @Test
201
206
  void testGetExistingAccount()<% if (!reactive) { %> throws Exception<% } %> {
202
- <%_ if (searchEngine === 'elasticsearch' && reactive) { _%>
207
+ <%_ if (searchEngineElasticsearch && reactive) { _%>
203
208
  // Configure the mock search repository
204
209
  when(mockUserSearchRepository.save(any()))
205
210
  .thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
206
211
 
207
- <%_ } _%>
212
+ <%_ } _%>
208
213
  Set<String> authorities = new HashSet<>();
209
214
  authorities.add(AuthoritiesConstants.ADMIN);
210
215
 
@@ -213,14 +218,14 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
213
218
  user.setFirstName("john");
214
219
  user.setLastName("doe");
215
220
  user.setEmail("john.doe@jhipster.com");
216
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
221
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
217
222
  user.setImageUrl("http://placehold.it/50x50");
218
- <%_ } _%>
223
+ <%_ } _%>
219
224
  user.setLangKey("en");
220
225
  user.setAuthorities(authorities);
221
226
  userService.createUser(user)<% if (reactive) { %>.block()<% } %>;
222
227
 
223
- <%_ if (!reactive) { _%>
228
+ <%_ if (!reactive) { _%>
224
229
  restAccountMockMvc.perform(get("/api/account")
225
230
  .accept(MediaType.APPLICATION_JSON))
226
231
  .andExpect(status().isOk())
@@ -229,12 +234,12 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
229
234
  .andExpect(jsonPath("$.firstName").value("john"))
230
235
  .andExpect(jsonPath("$.lastName").value("doe"))
231
236
  .andExpect(jsonPath("$.email").value("john.doe@jhipster.com"))
232
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
237
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
233
238
  .andExpect(jsonPath("$.imageUrl").value("http://placehold.it/50x50"))
234
- <%_ } _%>
239
+ <%_ } _%>
235
240
  .andExpect(jsonPath("$.langKey").value("en"))
236
241
  .andExpect(jsonPath("$.authorities").value(AuthoritiesConstants.ADMIN));
237
- <%_ } else { _%>
242
+ <%_ } else { _%>
238
243
  accountWebTestClient.get().uri("/api/account")
239
244
  .accept(MediaType.APPLICATION_JSON)
240
245
  .exchange()
@@ -245,71 +250,75 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
245
250
  .jsonPath("$.firstName").isEqualTo("john")
246
251
  .jsonPath("$.lastName").isEqualTo("doe")
247
252
  .jsonPath("$.email").isEqualTo("john.doe@jhipster.com")
248
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
253
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
249
254
  .jsonPath("$.imageUrl").isEqualTo("http://placehold.it/50x50")
250
- <%_ } _%>
255
+ <%_ } _%>
251
256
  .jsonPath("$.langKey").isEqualTo("en")
252
257
  .jsonPath("$.authorities").isEqualTo(AuthoritiesConstants.ADMIN);
253
- <%_ } _%>
258
+ <%_ } _%>
254
259
  }
255
260
 
256
261
  @Test
257
- <%_ if (!reactive) { _%>
262
+ <%_ if (!reactive) { _%>
258
263
  void testGetUnknownAccount() throws Exception {
259
264
  restAccountMockMvc.perform(get("/api/account")
260
265
  .accept(MediaType.APPLICATION_PROBLEM_JSON))
261
266
  .andExpect(status().isInternalServerError());
262
- <%_ } else { _%>
267
+ <%_ } else { _%>
263
268
  void testGetUnknownAccount() {
264
269
  accountWebTestClient.get().uri("/api/account")
265
270
  .accept(MediaType.APPLICATION_JSON)
266
271
  .exchange()
267
272
  .expectStatus().isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR);
268
- <%_ } _%>
273
+ <%_ } _%>
269
274
  }
270
275
 
271
- @Test<% if (databaseType === 'sql' && !reactive) { %>
272
- @Transactional<% } %>
276
+ @Test
277
+ <%_ if (databaseTypeSql && !reactive) { _%>
278
+ @Transactional
279
+ <%_ } _%>
273
280
  void testRegisterValid() throws Exception {
274
- <%_ if (searchEngine === 'elasticsearch' && reactive) { _%>
281
+ <%_ if (searchEngineElasticsearch && reactive) { _%>
275
282
  // Configure the mock search repository
276
283
  when(mockUserSearchRepository.save(any()))
277
284
  .thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
278
285
 
279
- <%_ } _%>
286
+ <%_ } _%>
280
287
  ManagedUserVM validUser = new ManagedUserVM();
281
288
  validUser.setLogin("test-register-valid");
282
289
  validUser.setPassword("password");
283
290
  validUser.setFirstName("Alice");
284
291
  validUser.setLastName("Test");
285
292
  validUser.setEmail("test-register-valid@example.com");
286
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
293
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
287
294
  validUser.setImageUrl("http://placehold.it/50x50");
288
- <%_ } _%>
295
+ <%_ } _%>
289
296
  validUser.setLangKey(Constants.DEFAULT_LANGUAGE);
290
297
  validUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
291
298
  assertThat(userRepository.findOneByLogin("test-register-valid")<% if (reactive) { %>.blockOptional()<% } %>).isEmpty();
292
299
 
293
- <%_ if (!reactive) { _%>
300
+ <%_ if (!reactive) { _%>
294
301
  restAccountMockMvc.perform(
295
302
  post("/api/register")
296
303
  .contentType(MediaType.APPLICATION_JSON)
297
304
  .content(TestUtil.convertObjectToJsonBytes(validUser))<% if (testsNeedCsrf) { %>
298
305
  .with(csrf())<% } %>)
299
306
  .andExpect(status().isCreated());
300
- <%_ } else { _%>
307
+ <%_ } else { _%>
301
308
  accountWebTestClient.post().uri("/api/register")
302
309
  .contentType(MediaType.APPLICATION_JSON)
303
310
  .bodyValue(TestUtil.convertObjectToJsonBytes(validUser))
304
311
  .exchange()
305
312
  .expectStatus().isCreated();
306
- <%_ } _%>
313
+ <%_ } _%>
307
314
 
308
315
  assertThat(userRepository.findOneByLogin("test-register-valid")<% if (reactive) { %>.blockOptional()<% } %>).isPresent();
309
316
  }
310
317
 
311
- @Test<% if (databaseType === 'sql' && !reactive) { %>
312
- @Transactional<% } %>
318
+ @Test
319
+ <%_ if (databaseTypeSql && !reactive) { _%>
320
+ @Transactional
321
+ <%_ } _%>
313
322
  void testRegisterInvalidLogin() throws Exception {
314
323
  ManagedUserVM invalidUser = new ManagedUserVM();
315
324
  invalidUser.setLogin("funky-log(n");// <-- invalid
@@ -318,33 +327,35 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
318
327
  invalidUser.setLastName("One");
319
328
  invalidUser.setEmail("funky@example.com");
320
329
  invalidUser.setActivated(true);
321
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
330
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
322
331
  invalidUser.setImageUrl("http://placehold.it/50x50");
323
- <%_ } _%>
332
+ <%_ } _%>
324
333
  invalidUser.setLangKey(Constants.DEFAULT_LANGUAGE);
325
334
  invalidUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
326
335
 
327
- <%_ if (!reactive) { _%>
336
+ <%_ if (!reactive) { _%>
328
337
  restAccountMockMvc.perform(
329
338
  post("/api/register")
330
339
  .contentType(MediaType.APPLICATION_JSON)
331
340
  .content(TestUtil.convertObjectToJsonBytes(invalidUser))<% if (testsNeedCsrf) { %>
332
341
  .with(csrf())<% } %>)
333
342
  .andExpect(status().isBadRequest());
334
- <%_ } else { _%>
343
+ <%_ } else { _%>
335
344
  accountWebTestClient.post().uri("/api/register")
336
345
  .contentType(MediaType.APPLICATION_JSON)
337
346
  .bodyValue(TestUtil.convertObjectToJsonBytes(invalidUser))
338
347
  .exchange()
339
348
  .expectStatus().isBadRequest();
340
- <%_ } _%>
349
+ <%_ } _%>
341
350
 
342
351
  Optional<<%= asEntity('User') %>> user = userRepository.findOneByEmailIgnoreCase("funky@example.com")<% if (reactive) { %>.blockOptional()<% } %>;
343
352
  assertThat(user).isEmpty();
344
353
  }
345
354
 
346
- @Test<% if (databaseType === 'sql' && !reactive) { %>
347
- @Transactional<% } %>
355
+ @Test
356
+ <%_ if (databaseTypeSql && !reactive) { _%>
357
+ @Transactional
358
+ <%_ } _%>
348
359
  void testRegisterInvalidEmail() throws Exception {
349
360
  ManagedUserVM invalidUser = new ManagedUserVM();
350
361
  invalidUser.setLogin("bob");
@@ -353,33 +364,35 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
353
364
  invalidUser.setLastName("Green");
354
365
  invalidUser.setEmail("invalid");// <-- invalid
355
366
  invalidUser.setActivated(true);
356
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
367
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
357
368
  invalidUser.setImageUrl("http://placehold.it/50x50");
358
- <%_ } _%>
369
+ <%_ } _%>
359
370
  invalidUser.setLangKey(Constants.DEFAULT_LANGUAGE);
360
371
  invalidUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
361
372
 
362
- <%_ if (!reactive) { _%>
373
+ <%_ if (!reactive) { _%>
363
374
  restAccountMockMvc.perform(
364
375
  post("/api/register")
365
376
  .contentType(MediaType.APPLICATION_JSON)
366
377
  .content(TestUtil.convertObjectToJsonBytes(invalidUser))<% if (testsNeedCsrf) { %>
367
378
  .with(csrf())<% } %>)
368
379
  .andExpect(status().isBadRequest());
369
- <%_ } else { _%>
380
+ <%_ } else { _%>
370
381
  accountWebTestClient.post().uri("/api/register")
371
382
  .contentType(MediaType.APPLICATION_JSON)
372
383
  .bodyValue(TestUtil.convertObjectToJsonBytes(invalidUser))
373
384
  .exchange()
374
385
  .expectStatus().isBadRequest();
375
- <%_ } _%>
386
+ <%_ } _%>
376
387
 
377
388
  Optional<<%= asEntity('User') %>> user = userRepository.findOneByLogin("bob")<% if (reactive) { %>.blockOptional()<% } %>;
378
389
  assertThat(user).isEmpty();
379
390
  }
380
391
 
381
- @Test<% if (databaseType === 'sql' && !reactive) { %>
382
- @Transactional<% } %>
392
+ @Test
393
+ <%_ if (databaseTypeSql && !reactive) { _%>
394
+ @Transactional
395
+ <%_ } _%>
383
396
  void testRegisterInvalidPassword() throws Exception {
384
397
  ManagedUserVM invalidUser = new ManagedUserVM();
385
398
  invalidUser.setLogin("bob");
@@ -388,33 +401,35 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
388
401
  invalidUser.setLastName("Green");
389
402
  invalidUser.setEmail("bob@example.com");
390
403
  invalidUser.setActivated(true);
391
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
404
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
392
405
  invalidUser.setImageUrl("http://placehold.it/50x50");
393
- <%_ } _%>
406
+ <%_ } _%>
394
407
  invalidUser.setLangKey(Constants.DEFAULT_LANGUAGE);
395
408
  invalidUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
396
409
 
397
- <%_ if (!reactive) { _%>
410
+ <%_ if (!reactive) { _%>
398
411
  restAccountMockMvc.perform(
399
412
  post("/api/register")
400
413
  .contentType(MediaType.APPLICATION_JSON)
401
414
  .content(TestUtil.convertObjectToJsonBytes(invalidUser))<% if (testsNeedCsrf) { %>
402
415
  .with(csrf())<% } %>)
403
416
  .andExpect(status().isBadRequest());
404
- <%_ } else { _%>
417
+ <%_ } else { _%>
405
418
  accountWebTestClient.post().uri("/api/register")
406
419
  .contentType(MediaType.APPLICATION_JSON)
407
420
  .bodyValue(TestUtil.convertObjectToJsonBytes(invalidUser))
408
421
  .exchange()
409
422
  .expectStatus().isBadRequest();
410
- <%_ } _%>
423
+ <%_ } _%>
411
424
 
412
425
  Optional<<%= asEntity('User') %>> user = userRepository.findOneByLogin("bob")<% if (reactive) { %>.blockOptional()<% } %>;
413
426
  assertThat(user).isEmpty();
414
427
  }
415
428
 
416
- @Test<% if (databaseType === 'sql' && !reactive) { %>
417
- @Transactional<% } %>
429
+ @Test
430
+ <%_ if (databaseTypeSql && !reactive) { _%>
431
+ @Transactional
432
+ <%_ } _%>
418
433
  void testRegisterNullPassword() throws Exception {
419
434
  ManagedUserVM invalidUser = new ManagedUserVM();
420
435
  invalidUser.setLogin("bob");
@@ -423,40 +438,42 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
423
438
  invalidUser.setLastName("Green");
424
439
  invalidUser.setEmail("bob@example.com");
425
440
  invalidUser.setActivated(true);
426
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
441
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
427
442
  invalidUser.setImageUrl("http://placehold.it/50x50");
428
- <%_ } _%>
443
+ <%_ } _%>
429
444
  invalidUser.setLangKey(Constants.DEFAULT_LANGUAGE);
430
445
  invalidUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
431
446
 
432
- <%_ if (!reactive) { _%>
447
+ <%_ if (!reactive) { _%>
433
448
  restAccountMockMvc.perform(
434
449
  post("/api/register")
435
450
  .contentType(MediaType.APPLICATION_JSON)
436
451
  .content(TestUtil.convertObjectToJsonBytes(invalidUser))<% if (testsNeedCsrf) { %>
437
452
  .with(csrf())<% } %>)
438
453
  .andExpect(status().isBadRequest());
439
- <%_ } else { _%>
454
+ <%_ } else { _%>
440
455
  accountWebTestClient.post().uri("/api/register")
441
456
  .contentType(MediaType.APPLICATION_JSON)
442
457
  .bodyValue(TestUtil.convertObjectToJsonBytes(invalidUser))
443
458
  .exchange()
444
459
  .expectStatus().isBadRequest();
445
- <%_ } _%>
460
+ <%_ } _%>
446
461
 
447
462
  Optional<<%= asEntity('User') %>> user = userRepository.findOneByLogin("bob")<% if (reactive) { %>.blockOptional()<% } %>;
448
463
  assertThat(user).isEmpty();
449
464
  }
450
465
 
451
- @Test<% if (databaseType === 'sql' && !reactive) { %>
452
- @Transactional<% } %>
466
+ @Test
467
+ <%_ if (databaseTypeSql && !reactive) { _%>
468
+ @Transactional
469
+ <%_ } _%>
453
470
  void testRegisterDuplicateLogin() throws Exception {
454
- <%_ if (searchEngine === 'elasticsearch' && reactive) { _%>
471
+ <%_ if (searchEngineElasticsearch && reactive) { _%>
455
472
  // Configure the mock search repository
456
473
  when(mockUserSearchRepository.save(any()))
457
474
  .thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
458
475
 
459
- <%_ } _%>
476
+ <%_ } _%>
460
477
  // First registration
461
478
  ManagedUserVM firstUser = new ManagedUserVM();
462
479
  firstUser.setLogin("alice");
@@ -464,9 +481,9 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
464
481
  firstUser.setFirstName("Alice");
465
482
  firstUser.setLastName("Something");
466
483
  firstUser.setEmail("alice@example.com");
467
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
484
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
468
485
  firstUser.setImageUrl("http://placehold.it/50x50");
469
- <%_ } _%>
486
+ <%_ } _%>
470
487
  firstUser.setLangKey(Constants.DEFAULT_LANGUAGE);
471
488
  firstUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
472
489
 
@@ -477,49 +494,49 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
477
494
  secondUser.setFirstName(firstUser.getFirstName());
478
495
  secondUser.setLastName(firstUser.getLastName());
479
496
  secondUser.setEmail("alice2@example.com");
480
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
497
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
481
498
  secondUser.setImageUrl(firstUser.getImageUrl());
482
- <%_ } _%>
499
+ <%_ } _%>
483
500
  secondUser.setLangKey(firstUser.getLangKey());
484
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
501
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
485
502
  secondUser.setCreatedBy(firstUser.getCreatedBy());
486
503
  secondUser.setCreatedDate(firstUser.getCreatedDate());
487
504
  secondUser.setLastModifiedBy(firstUser.getLastModifiedBy());
488
505
  secondUser.setLastModifiedDate(firstUser.getLastModifiedDate());
489
- <%_ } _%>
506
+ <%_ } _%>
490
507
  secondUser.setAuthorities(new HashSet<>(firstUser.getAuthorities()));
491
508
 
492
509
  // First user
493
- <%_ if (!reactive) { _%>
510
+ <%_ if (!reactive) { _%>
494
511
  restAccountMockMvc.perform(
495
512
  post("/api/register")
496
513
  .contentType(MediaType.APPLICATION_JSON)
497
514
  .content(TestUtil.convertObjectToJsonBytes(firstUser))<% if (testsNeedCsrf) { %>
498
515
  .with(csrf())<% } %>)
499
516
  .andExpect(status().isCreated());
500
- <%_ } else { _%>
517
+ <%_ } else { _%>
501
518
  accountWebTestClient.post().uri("/api/register")
502
519
  .contentType(MediaType.APPLICATION_JSON)
503
520
  .bodyValue(TestUtil.convertObjectToJsonBytes(firstUser))
504
521
  .exchange()
505
522
  .expectStatus().isCreated();
506
- <%_ } _%>
523
+ <%_ } _%>
507
524
 
508
525
  // Second (non activated) user
509
- <%_ if (!reactive) { _%>
526
+ <%_ if (!reactive) { _%>
510
527
  restAccountMockMvc.perform(
511
528
  post("/api/register")
512
529
  .contentType(MediaType.APPLICATION_JSON)
513
530
  .content(TestUtil.convertObjectToJsonBytes(secondUser))<% if (testsNeedCsrf) { %>
514
531
  .with(csrf())<% } %>)
515
532
  .andExpect(status().isCreated());
516
- <%_ } else { _%>
533
+ <%_ } else { _%>
517
534
  accountWebTestClient.post().uri("/api/register")
518
535
  .contentType(MediaType.APPLICATION_JSON)
519
536
  .bodyValue(TestUtil.convertObjectToJsonBytes(secondUser))
520
537
  .exchange()
521
538
  .expectStatus().isCreated();
522
- <%_ } _%>
539
+ <%_ } _%>
523
540
 
524
541
  Optional<<%= asEntity('User') %>> testUser = userRepository.findOneByEmailIgnoreCase("alice2@example.com")<% if (reactive) { %>.blockOptional()<% } %>;
525
542
  assertThat(testUser).isPresent();
@@ -527,31 +544,33 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
527
544
  userRepository.save(testUser.get())<% if (reactive) { %>.block()<% } %>;
528
545
 
529
546
  // Second (already activated) user
530
- <%_ if (!reactive) { _%>
547
+ <%_ if (!reactive) { _%>
531
548
  restAccountMockMvc.perform(
532
549
  post("/api/register")
533
550
  .contentType(MediaType.APPLICATION_JSON)
534
551
  .content(TestUtil.convertObjectToJsonBytes(secondUser))<% if (testsNeedCsrf) { %>
535
552
  .with(csrf())<% } %>)
536
553
  .andExpect(status().is4xxClientError());
537
- <%_ } else { _%>
554
+ <%_ } else { _%>
538
555
  accountWebTestClient.post().uri("/api/register")
539
556
  .contentType(MediaType.APPLICATION_JSON)
540
557
  .bodyValue(TestUtil.convertObjectToJsonBytes(secondUser))
541
558
  .exchange()
542
559
  .expectStatus().isBadRequest();
543
- <%_ } _%>
560
+ <%_ } _%>
544
561
  }
545
562
 
546
- @Test<% if (databaseType === 'sql' && !reactive) { %>
547
- @Transactional<% } %>
563
+ @Test
564
+ <%_ if (databaseTypeSql && !reactive) { _%>
565
+ @Transactional
566
+ <%_ } _%>
548
567
  void testRegisterDuplicateEmail() throws Exception {
549
- <%_ if (searchEngine === 'elasticsearch' && reactive) { _%>
568
+ <%_ if (searchEngineElasticsearch && reactive) { _%>
550
569
  // Configure the mock search repository
551
570
  when(mockUserSearchRepository.save(any()))
552
571
  .thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
553
572
 
554
- <%_ } _%>
573
+ <%_ } _%>
555
574
  // First user
556
575
  ManagedUserVM firstUser = new ManagedUserVM();
557
576
  firstUser.setLogin("test-register-duplicate-email");
@@ -559,27 +578,27 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
559
578
  firstUser.setFirstName("Alice");
560
579
  firstUser.setLastName("Test");
561
580
  firstUser.setEmail("test-register-duplicate-email@example.com");
562
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
581
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
563
582
  firstUser.setImageUrl("http://placehold.it/50x50");
564
- <%_ } _%>
583
+ <%_ } _%>
565
584
  firstUser.setLangKey(Constants.DEFAULT_LANGUAGE);
566
585
  firstUser.setAuthorities(Collections.singleton(AuthoritiesConstants.USER));
567
586
 
568
587
  // Register first user
569
- <%_ if (!reactive) { _%>
588
+ <%_ if (!reactive) { _%>
570
589
  restAccountMockMvc.perform(
571
590
  post("/api/register")
572
591
  .contentType(MediaType.APPLICATION_JSON)
573
592
  .content(TestUtil.convertObjectToJsonBytes(firstUser))<% if (testsNeedCsrf) { %>
574
593
  .with(csrf())<% } %>)
575
594
  .andExpect(status().isCreated());
576
- <%_ } else { _%>
595
+ <%_ } else { _%>
577
596
  accountWebTestClient.post().uri("/api/register")
578
597
  .contentType(MediaType.APPLICATION_JSON)
579
598
  .bodyValue(TestUtil.convertObjectToJsonBytes(firstUser))
580
599
  .exchange()
581
600
  .expectStatus().isCreated();
582
- <%_ } _%>
601
+ <%_ } _%>
583
602
 
584
603
  Optional<<%= asEntity('User') %>> testUser1 = userRepository.findOneByLogin("test-register-duplicate-email")<% if (reactive) { %>.blockOptional()<% } %>;
585
604
  assertThat(testUser1).isPresent();
@@ -591,27 +610,27 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
591
610
  secondUser.setFirstName(firstUser.getFirstName());
592
611
  secondUser.setLastName(firstUser.getLastName());
593
612
  secondUser.setEmail(firstUser.getEmail());
594
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
613
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
595
614
  secondUser.setImageUrl(firstUser.getImageUrl());
596
- <%_ } _%>
615
+ <%_ } _%>
597
616
  secondUser.setLangKey(firstUser.getLangKey());
598
617
  secondUser.setAuthorities(new HashSet<>(firstUser.getAuthorities()));
599
618
 
600
619
  // Register second (non activated) user
601
- <%_ if (!reactive) { _%>
620
+ <%_ if (!reactive) { _%>
602
621
  restAccountMockMvc.perform(
603
622
  post("/api/register")
604
623
  .contentType(MediaType.APPLICATION_JSON)
605
624
  .content(TestUtil.convertObjectToJsonBytes(secondUser))<% if (testsNeedCsrf) { %>
606
625
  .with(csrf())<% } %>)
607
626
  .andExpect(status().isCreated());
608
- <%_ } else { _%>
627
+ <%_ } else { _%>
609
628
  accountWebTestClient.post().uri("/api/register")
610
629
  .contentType(MediaType.APPLICATION_JSON)
611
630
  .bodyValue(TestUtil.convertObjectToJsonBytes(secondUser))
612
631
  .exchange()
613
632
  .expectStatus().isCreated();
614
- <%_ } _%>
633
+ <%_ } _%>
615
634
 
616
635
  Optional<<%= asEntity('User') %>> testUser2 = userRepository.findOneByLogin("test-register-duplicate-email")<% if (reactive) { %>.blockOptional()<% } %>;
617
636
  assertThat(testUser2).isEmpty();
@@ -627,27 +646,27 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
627
646
  userWithUpperCaseEmail.setFirstName(firstUser.getFirstName());
628
647
  userWithUpperCaseEmail.setLastName(firstUser.getLastName());
629
648
  userWithUpperCaseEmail.setEmail("TEST-register-duplicate-email@example.com");
630
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
649
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
631
650
  userWithUpperCaseEmail.setImageUrl(firstUser.getImageUrl());
632
- <%_ } _%>
651
+ <%_ } _%>
633
652
  userWithUpperCaseEmail.setLangKey(firstUser.getLangKey());
634
653
  userWithUpperCaseEmail.setAuthorities(new HashSet<>(firstUser.getAuthorities()));
635
654
 
636
655
  // Register third (not activated) user
637
- <%_ if (!reactive) { _%>
656
+ <%_ if (!reactive) { _%>
638
657
  restAccountMockMvc.perform(
639
658
  post("/api/register")
640
659
  .contentType(MediaType.APPLICATION_JSON)
641
660
  .content(TestUtil.convertObjectToJsonBytes(userWithUpperCaseEmail))<% if (testsNeedCsrf) { %>
642
661
  .with(csrf())<% } %>)
643
662
  .andExpect(status().isCreated());
644
- <%_ } else { _%>
663
+ <%_ } else { _%>
645
664
  accountWebTestClient.post().uri("/api/register")
646
665
  .contentType(MediaType.APPLICATION_JSON)
647
666
  .bodyValue(TestUtil.convertObjectToJsonBytes(userWithUpperCaseEmail))
648
667
  .exchange()
649
668
  .expectStatus().isCreated();
650
- <%_ } _%>
669
+ <%_ } _%>
651
670
 
652
671
  Optional<<%= asEntity('User') %>> testUser4 = userRepository.findOneByLogin("test-register-duplicate-email-3")<% if (reactive) { %>.blockOptional()<% } %>;
653
672
  assertThat(testUser4).isPresent();
@@ -657,24 +676,26 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
657
676
  userService.updateUser((new <%= asDto('AdminUser') %>(testUser4.get())))<% if (reactive) { %>.block()<% } %>;
658
677
 
659
678
  // Register 4th (already activated) user
660
- <%_ if (!reactive) { _%>
679
+ <%_ if (!reactive) { _%>
661
680
  restAccountMockMvc.perform(
662
681
  post("/api/register")
663
682
  .contentType(MediaType.APPLICATION_JSON)
664
683
  .content(TestUtil.convertObjectToJsonBytes(secondUser))<% if (testsNeedCsrf) { %>
665
684
  .with(csrf())<% } %>)
666
685
  .andExpect(status().is4xxClientError());
667
- <%_ } else { _%>
686
+ <%_ } else { _%>
668
687
  accountWebTestClient.post().uri("/api/register")
669
688
  .contentType(MediaType.APPLICATION_JSON)
670
689
  .bodyValue(TestUtil.convertObjectToJsonBytes(secondUser))
671
690
  .exchange()
672
691
  .expectStatus().is4xxClientError();
673
- <%_ } _%>
692
+ <%_ } _%>
674
693
  }
675
694
 
676
- @Test<% if (databaseType === 'sql' && !reactive) { %>
677
- @Transactional<% } %>
695
+ @Test
696
+ <%_ if (databaseTypeSql && !reactive) { _%>
697
+ @Transactional
698
+ <%_ } _%>
678
699
  void testRegisterAdminIsIgnored() throws Exception {
679
700
  ManagedUserVM validUser = new ManagedUserVM();
680
701
  validUser.setLogin("badguy");
@@ -683,168 +704,178 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
683
704
  validUser.setLastName("Guy");
684
705
  validUser.setEmail("badguy@example.com");
685
706
  validUser.setActivated(true);
686
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
707
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
687
708
  validUser.setImageUrl("http://placehold.it/50x50");
688
- <%_ } _%>
709
+ <%_ } _%>
689
710
  validUser.setLangKey(Constants.DEFAULT_LANGUAGE);
690
711
  validUser.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
691
712
 
692
- <%_ if (searchEngine === 'elasticsearch' && reactive) { _%>
713
+ <%_ if (searchEngineElasticsearch && reactive) { _%>
693
714
  // Configure the mock search repository
694
715
  when(mockUserSearchRepository.save(any()))
695
716
  .thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
696
717
 
697
- <%_ } _%>
698
- <%_ if (!reactive) { _%>
718
+ <%_ } _%>
719
+ <%_ if (!reactive) { _%>
699
720
  restAccountMockMvc.perform(
700
721
  post("/api/register")
701
722
  .contentType(MediaType.APPLICATION_JSON)
702
723
  .content(TestUtil.convertObjectToJsonBytes(validUser))<% if (testsNeedCsrf) { %>
703
724
  .with(csrf())<% } %>)
704
725
  .andExpect(status().isCreated());
705
- <%_ } else { _%>
726
+ <%_ } else { _%>
706
727
  accountWebTestClient.post().uri("/api/register")
707
728
  .contentType(MediaType.APPLICATION_JSON)
708
729
  .bodyValue(TestUtil.convertObjectToJsonBytes(validUser))
709
730
  .exchange()
710
731
  .expectStatus().isCreated();
711
- <%_ } _%>
732
+ <%_ } _%>
712
733
 
713
- Optional<<%= asEntity('User') %>> userDup = userRepository.findOne<% if (databaseType === 'sql') { %>WithAuthorities<% } %>ByLogin("badguy")<% if (reactive) { %>.blockOptional()<% } %>;
734
+ Optional<<%= asEntity('User') %>> userDup = userRepository.findOne<% if (databaseTypeSql) { %>WithAuthorities<% } %>ByLogin("badguy")<% if (reactive) { %>.blockOptional()<% } %>;
714
735
  assertThat(userDup).isPresent();
715
736
  assertThat(userDup.get().getAuthorities()).hasSize(1)
716
- .containsExactly(<% if (databaseType === 'sql' || databaseType === 'mongodb' || databaseType === 'neo4j') { %>authorityRepository.findById(AuthoritiesConstants.USER).<% if (reactive) { %>block<% } else { %>get<% } %>()<% } %><% if (databaseType === 'cassandra' || databaseType === 'couchbase') { %>AuthoritiesConstants.USER<% } %>);
737
+ .containsExactly(<% if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { %>authorityRepository.findById(AuthoritiesConstants.USER).<% if (reactive) { %>block<% } else { %>get<% } %>()<% } %><% if (databaseTypeCassandra || databaseTypeCouchbase) { %>AuthoritiesConstants.USER<% } %>);
717
738
  }
718
739
 
719
- @Test<% if (databaseType === 'sql' && !reactive) { %>
720
- @Transactional<% } %>
740
+ @Test
741
+ <%_ if (databaseTypeSql && !reactive) { _%>
742
+ @Transactional
743
+ <%_ } _%>
721
744
  void testActivateAccount()<% if (!reactive) { %> throws Exception<% } %> {
722
- <%_ if (searchEngine === 'elasticsearch' && reactive) { _%>
745
+ <%_ if (searchEngineElasticsearch && reactive) { _%>
723
746
  // Configure the mock search repository
724
747
  when(mockUserSearchRepository.save(any()))
725
748
  .thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
726
749
 
727
- <%_ } _%>
750
+ <%_ } _%>
728
751
  final String activationKey = "some activation key";
729
752
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
730
- <%_ if (databaseType === 'cassandra') { _%>
753
+ <%_ if (databaseTypeCassandra) { _%>
731
754
  user.setId(UUID.randomUUID().toString());
732
- <%_ } _%>
755
+ <%_ } _%>
733
756
  user.setLogin("activate-account");
734
757
  user.setEmail("activate-account@example.com");
735
758
  user.setPassword(RandomStringUtils.random(60));
736
759
  user.setActivated(false);
737
760
  user.setActivationKey(activationKey);
738
- <%_ if (databaseType === 'sql' && reactive) { _%>
761
+ <%_ if (databaseTypeSql && reactive) { _%>
739
762
  user.setCreatedBy(Constants.SYSTEM);
740
- <%_ } _%>
763
+ <%_ } _%>
741
764
 
742
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
765
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
743
766
 
744
- <%_ if (!reactive) { _%>
767
+ <%_ if (!reactive) { _%>
745
768
  restAccountMockMvc.perform(get("/api/activate?key={activationKey}", activationKey))
746
769
  .andExpect(status().isOk());
747
- <%_ } else { _%>
770
+ <%_ } else { _%>
748
771
  accountWebTestClient.get().uri("/api/activate?key={activationKey}", activationKey)
749
772
  .exchange()
750
773
  .expectStatus().isOk();
751
- <%_ } _%>
774
+ <%_ } _%>
752
775
 
753
776
  user = userRepository.findOneByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
754
777
  assertThat(user.isActivated()).isTrue();
755
778
  }
756
779
 
757
- @Test<% if (databaseType === 'sql' && !reactive) { %>
758
- @Transactional<% } %>
780
+ @Test
781
+ <%_ if (databaseTypeSql && !reactive) { _%>
782
+ @Transactional
783
+ <%_ } _%>
759
784
  void testActivateAccountWithWrongKey() <% if (!reactive) { %>throws Exception <% } %>{
760
- <%_ if (!reactive) { _%>
785
+ <%_ if (!reactive) { _%>
761
786
  restAccountMockMvc.perform(get("/api/activate?key=wrongActivationKey"))
762
787
  .andExpect(status().isInternalServerError());
763
- <%_ } else { _%>
788
+ <%_ } else { _%>
764
789
  accountWebTestClient.get().uri("/api/activate?key=wrongActivationKey")
765
790
  .exchange()
766
791
  .expectStatus().isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR);
767
- <%_ } _%>
792
+ <%_ } _%>
768
793
  }
769
794
 
770
- @Test<% if (databaseType === 'sql' && !reactive) { %>
771
- @Transactional<% } %>
795
+ @Test
796
+ <%_ if (databaseTypeSql && !reactive) { _%>
797
+ @Transactional
798
+ <%_ } _%>
772
799
  @WithMockUser("save-account")
773
800
  void testSaveAccount() throws Exception {
774
801
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
775
- <%_ if (databaseType === 'cassandra') { _%>
802
+ <%_ if (databaseTypeCassandra) { _%>
776
803
  user.setId(UUID.randomUUID().toString());
777
- <%_ } _%>
804
+ <%_ } _%>
778
805
  user.setLogin("save-account");
779
806
  user.setEmail("save-account@example.com");
780
807
  user.setPassword(RandomStringUtils.random(60));
781
808
  user.setActivated(true);
782
- <%_ if (databaseType === 'sql' && reactive) { _%>
809
+ <%_ if (databaseTypeSql && reactive) { _%>
783
810
  user.setCreatedBy(Constants.SYSTEM);
784
- <%_ } _%>
785
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
811
+ <%_ } _%>
812
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
786
813
 
787
- <%_ if (searchEngine === 'elasticsearch' && reactive) { _%>
814
+ <%_ if (searchEngineElasticsearch && reactive) { _%>
788
815
  // Configure the mock search repository
789
816
  when(mockUserSearchRepository.save(any()))
790
817
  .thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
791
818
 
792
- <%_ } _%>
819
+ <%_ } _%>
793
820
  <%= asDto('AdminUser') %> userDTO = new <%= asDto('AdminUser') %>();
794
821
  userDTO.setLogin("not-used");
795
822
  userDTO.setFirstName("firstname");
796
823
  userDTO.setLastName("lastname");
797
824
  userDTO.setEmail("save-account@example.com");
798
825
  userDTO.setActivated(false);
799
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
826
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
800
827
  userDTO.setImageUrl("http://placehold.it/50x50");
801
- <%_ } _%>
828
+ <%_ } _%>
802
829
  userDTO.setLangKey(Constants.DEFAULT_LANGUAGE);
803
830
  userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
804
831
 
805
- <%_ if (!reactive) { _%>
832
+ <%_ if (!reactive) { _%>
806
833
  restAccountMockMvc.perform(
807
834
  post("/api/account")
808
835
  .contentType(MediaType.APPLICATION_JSON)
809
836
  .content(TestUtil.convertObjectToJsonBytes(userDTO))<% if (testsNeedCsrf) { %>
810
837
  .with(csrf())<% } %>)
811
838
  .andExpect(status().isOk());
812
- <%_ } else { _%>
839
+ <%_ } else { _%>
813
840
  accountWebTestClient.post().uri("/api/account")
814
841
  .contentType(MediaType.APPLICATION_JSON)
815
842
  .bodyValue(TestUtil.convertObjectToJsonBytes(userDTO))
816
843
  .exchange()
817
844
  .expectStatus().isOk();
818
- <%_ } _%>
845
+ <%_ } _%>
819
846
 
820
- <%= asEntity('User') %> updatedUser = userRepository.findOne<% if (databaseType === 'sql') { %>WithAuthorities<% } %>ByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
847
+ <%= asEntity('User') %> updatedUser = userRepository.findOne<% if (databaseTypeSql) { %>WithAuthorities<% } %>ByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
821
848
  assertThat(updatedUser.getFirstName()).isEqualTo(userDTO.getFirstName());
822
849
  assertThat(updatedUser.getLastName()).isEqualTo(userDTO.getLastName());
823
850
  assertThat(updatedUser.getEmail()).isEqualTo(userDTO.getEmail());
824
851
  assertThat(updatedUser.getLangKey()).isEqualTo(userDTO.getLangKey());
825
- assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());<% if (databaseType === 'mongodb' || databaseType === 'couchbase' || databaseType === 'sql' || databaseType === 'neo4j') { %>
826
- assertThat(updatedUser.getImageUrl()).isEqualTo(userDTO.getImageUrl());<% } %>
852
+ assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
853
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
854
+ assertThat(updatedUser.getImageUrl()).isEqualTo(userDTO.getImageUrl());
855
+ <%_ } _%>
827
856
  assertThat(updatedUser.isActivated()).isTrue();
828
857
  assertThat(updatedUser.getAuthorities()).isEmpty();
829
858
  }
830
859
 
831
- @Test<% if (databaseType === 'sql' && !reactive) { %>
832
- @Transactional<% } %>
860
+ @Test
861
+ <%_ if (databaseTypeSql && !reactive) { _%>
862
+ @Transactional
863
+ <%_ } _%>
833
864
  @WithMockUser("save-invalid-email")
834
865
  void testSaveInvalidEmail() throws Exception {
835
866
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
836
- <%_ if (databaseType === 'cassandra') { _%>
867
+ <%_ if (databaseTypeCassandra) { _%>
837
868
  user.setId(UUID.randomUUID().toString());
838
- <%_ } _%>
869
+ <%_ } _%>
839
870
  user.setLogin("save-invalid-email");
840
871
  user.setEmail("save-invalid-email@example.com");
841
872
  user.setPassword(RandomStringUtils.random(60));
842
873
  user.setActivated(true);
843
- <%_ if (databaseType === 'sql' && reactive) { _%>
874
+ <%_ if (databaseTypeSql && reactive) { _%>
844
875
  user.setCreatedBy(Constants.SYSTEM);
845
- <%_ } _%>
876
+ <%_ } _%>
846
877
 
847
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
878
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
848
879
 
849
880
  <%= asDto('AdminUser') %> userDTO = new <%= asDto('AdminUser') %>();
850
881
  userDTO.setLogin("not-used");
@@ -852,60 +883,62 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
852
883
  userDTO.setLastName("lastname");
853
884
  userDTO.setEmail("invalid email");
854
885
  userDTO.setActivated(false);
855
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
886
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
856
887
  userDTO.setImageUrl("http://placehold.it/50x50");
857
- <%_ } _%>
888
+ <%_ } _%>
858
889
  userDTO.setLangKey(Constants.DEFAULT_LANGUAGE);
859
890
  userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
860
891
 
861
- <%_ if (!reactive) { _%>
892
+ <%_ if (!reactive) { _%>
862
893
  restAccountMockMvc.perform(
863
894
  post("/api/account")
864
895
  .contentType(MediaType.APPLICATION_JSON)
865
896
  .content(TestUtil.convertObjectToJsonBytes(userDTO))<% if (testsNeedCsrf) { %>
866
897
  .with(csrf())<% } %>)
867
898
  .andExpect(status().isBadRequest());
868
- <%_ } else { _%>
899
+ <%_ } else { _%>
869
900
  accountWebTestClient.post().uri("/api/account")
870
901
  .contentType(MediaType.APPLICATION_JSON)
871
902
  .bodyValue(TestUtil.convertObjectToJsonBytes(userDTO))
872
903
  .exchange()
873
904
  .expectStatus().isBadRequest();
874
- <%_ } _%>
905
+ <%_ } _%>
875
906
 
876
907
  assertThat(userRepository.findOneByEmailIgnoreCase("invalid email")<% if (reactive) { %>.blockOptional()<% } %>).isNotPresent();
877
908
  }
878
909
 
879
- @Test<% if (databaseType === 'sql' && !reactive) { %>
880
- @Transactional<% } %>
910
+ @Test
911
+ <%_ if (databaseTypeSql && !reactive) { _%>
912
+ @Transactional
913
+ <%_ } _%>
881
914
  @WithMockUser("save-existing-email")
882
915
  void testSaveExistingEmail() throws Exception {
883
916
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
884
- <%_ if (databaseType === 'cassandra') { _%>
917
+ <%_ if (databaseTypeCassandra) { _%>
885
918
  user.setId(UUID.randomUUID().toString());
886
- <%_ } _%>
919
+ <%_ } _%>
887
920
  user.setLogin("save-existing-email");
888
921
  user.setEmail("save-existing-email@example.com");
889
922
  user.setPassword(RandomStringUtils.random(60));
890
923
  user.setActivated(true);
891
- <%_ if (databaseType === 'sql' && reactive) { _%>
924
+ <%_ if (databaseTypeSql && reactive) { _%>
892
925
  user.setCreatedBy(Constants.SYSTEM);
893
- <%_ } _%>
894
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
926
+ <%_ } _%>
927
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
895
928
 
896
929
  <%= asEntity('User') %> anotherUser = new <%= asEntity('User') %>();
897
- <%_ if (databaseType === 'cassandra') { _%>
930
+ <%_ if (databaseTypeCassandra) { _%>
898
931
  anotherUser.setId(UUID.randomUUID().toString());
899
- <%_ } _%>
932
+ <%_ } _%>
900
933
  anotherUser.setLogin("save-existing-email2");
901
934
  anotherUser.setEmail("save-existing-email2@example.com");
902
935
  anotherUser.setPassword(RandomStringUtils.random(60));
903
936
  anotherUser.setActivated(true);
904
- <%_ if (databaseType === 'sql' && reactive) { _%>
937
+ <%_ if (databaseTypeSql && reactive) { _%>
905
938
  anotherUser.setCreatedBy(Constants.SYSTEM);
906
- <%_ } _%>
939
+ <%_ } _%>
907
940
 
908
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(anotherUser)<% if (reactive) { %>.block()<% } %>;
941
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(anotherUser)<% if (reactive) { %>.block()<% } %>;
909
942
 
910
943
  <%= asDto('AdminUser') %> userDTO = new <%= asDto('AdminUser') %>();
911
944
  userDTO.setLogin("not-used");
@@ -913,348 +946,364 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
913
946
  userDTO.setLastName("lastname");
914
947
  userDTO.setEmail("save-existing-email2@example.com");
915
948
  userDTO.setActivated(false);
916
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
949
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
917
950
  userDTO.setImageUrl("http://placehold.it/50x50");
918
- <%_ } _%>
951
+ <%_ } _%>
919
952
  userDTO.setLangKey(Constants.DEFAULT_LANGUAGE);
920
953
  userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
921
954
 
922
- <%_ if (!reactive) { _%>
955
+ <%_ if (!reactive) { _%>
923
956
  restAccountMockMvc.perform(
924
957
  post("/api/account")
925
958
  .contentType(MediaType.APPLICATION_JSON)
926
959
  .content(TestUtil.convertObjectToJsonBytes(userDTO))<% if (testsNeedCsrf) { %>
927
960
  .with(csrf())<% } %>)
928
961
  .andExpect(status().isBadRequest());
929
- <%_ } else { _%>
962
+ <%_ } else { _%>
930
963
  accountWebTestClient.post().uri("/api/account")
931
964
  .contentType(MediaType.APPLICATION_JSON)
932
965
  .bodyValue(TestUtil.convertObjectToJsonBytes(userDTO))
933
966
  .exchange()
934
967
  .expectStatus().isBadRequest();
935
- <%_ } _%>
968
+ <%_ } _%>
936
969
 
937
970
  <%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("save-existing-email")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
938
971
  assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email@example.com");
939
972
  }
940
973
 
941
- @Test<% if (databaseType === 'sql' && !reactive) { %>
942
- @Transactional<% } %>
974
+ @Test
975
+ <%_ if (databaseTypeSql && !reactive) { _%>
976
+ @Transactional
977
+ <%_ } _%>
943
978
  @WithMockUser("save-existing-email-and-login")
944
979
  void testSaveExistingEmailAndLogin() throws Exception {
945
980
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
946
- <%_ if (databaseType === 'cassandra') { _%>
981
+ <%_ if (databaseTypeCassandra) { _%>
947
982
  user.setId(UUID.randomUUID().toString());
948
- <%_ } _%>
983
+ <%_ } _%>
949
984
  user.setLogin("save-existing-email-and-login");
950
985
  user.setEmail("save-existing-email-and-login@example.com");
951
986
  user.setPassword(RandomStringUtils.random(60));
952
987
  user.setActivated(true);
953
- <%_ if (databaseType === 'sql' && reactive) { _%>
988
+ <%_ if (databaseTypeSql && reactive) { _%>
954
989
  user.setCreatedBy(Constants.SYSTEM);
955
- <%_ } _%>
956
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
990
+ <%_ } _%>
991
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
957
992
 
958
- <%_ if (searchEngine === 'elasticsearch' && reactive) { _%>
993
+ <%_ if (searchEngineElasticsearch && reactive) { _%>
959
994
  // Configure the mock search repository
960
995
  when(mockUserSearchRepository.save(any()))
961
996
  .thenAnswer(invocation -> Mono.just(invocation.getArgument(0)));
962
997
 
963
- <%_ } _%>
998
+ <%_ } _%>
964
999
  <%= asDto('AdminUser') %> userDTO = new <%= asDto('AdminUser') %>();
965
1000
  userDTO.setLogin("not-used");
966
1001
  userDTO.setFirstName("firstname");
967
1002
  userDTO.setLastName("lastname");
968
1003
  userDTO.setEmail("save-existing-email-and-login@example.com");
969
1004
  userDTO.setActivated(false);
970
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
1005
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
971
1006
  userDTO.setImageUrl("http://placehold.it/50x50");
972
- <%_ } _%>
1007
+ <%_ } _%>
973
1008
  userDTO.setLangKey(Constants.DEFAULT_LANGUAGE);
974
1009
  userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
975
1010
 
976
- <%_ if (!reactive) { _%>
1011
+ <%_ if (!reactive) { _%>
977
1012
  restAccountMockMvc.perform(
978
1013
  post("/api/account")
979
1014
  .contentType(MediaType.APPLICATION_JSON)
980
1015
  .content(TestUtil.convertObjectToJsonBytes(userDTO))<% if (testsNeedCsrf) { %>
981
1016
  .with(csrf())<% } %>)
982
1017
  .andExpect(status().isOk());
983
- <%_ } else { _%>
1018
+ <%_ } else { _%>
984
1019
  accountWebTestClient.post().uri("/api/account")
985
1020
  .contentType(MediaType.APPLICATION_JSON)
986
1021
  .bodyValue(TestUtil.convertObjectToJsonBytes(userDTO))
987
1022
  .exchange()
988
1023
  .expectStatus().isOk();
989
- <%_ } _%>
1024
+ <%_ } _%>
990
1025
 
991
1026
  <%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("save-existing-email-and-login")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
992
1027
  assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email-and-login@example.com");
993
1028
  }
994
1029
 
995
- @Test<% if (databaseType === 'sql' && !reactive) { %>
996
- @Transactional<% } %>
1030
+ @Test
1031
+ <%_ if (databaseTypeSql && !reactive) { _%>
1032
+ @Transactional
1033
+ <%_ } _%>
997
1034
  @WithMockUser("change-password-wrong-existing-password")
998
1035
  void testChangePasswordWrongExistingPassword() throws Exception {
999
1036
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1000
- <%_ if (databaseType === 'cassandra') { _%>
1037
+ <%_ if (databaseTypeCassandra) { _%>
1001
1038
  user.setId(UUID.randomUUID().toString());
1002
- <%_ } _%>
1039
+ <%_ } _%>
1003
1040
  String currentPassword = RandomStringUtils.random(60);
1004
1041
  user.setPassword(passwordEncoder.encode(currentPassword));
1005
1042
  user.setLogin("change-password-wrong-existing-password");
1006
1043
  user.setEmail("change-password-wrong-existing-password@example.com");
1007
- <%_ if (databaseType === 'sql' && reactive) { _%>
1044
+ <%_ if (databaseTypeSql && reactive) { _%>
1008
1045
  user.setCreatedBy(Constants.SYSTEM);
1009
- <%_ } _%>
1010
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1046
+ <%_ } _%>
1047
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1011
1048
 
1012
- <%_ if (!reactive) { _%>
1049
+ <%_ if (!reactive) { _%>
1013
1050
  restAccountMockMvc.perform(post("/api/account/change-password")
1014
1051
  .contentType(MediaType.APPLICATION_JSON)
1015
1052
  .content(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO("1"+currentPassword, "new password")))
1016
1053
  <%_ if (testsNeedCsrf) { _%>
1017
1054
  .with(csrf())<%_ } _%>)
1018
1055
  .andExpect(status().isBadRequest());
1019
- <%_ } else { _%>
1056
+ <%_ } else { _%>
1020
1057
  accountWebTestClient.post().uri("/api/account/change-password")
1021
1058
  .contentType(MediaType.APPLICATION_JSON)
1022
1059
  .bodyValue(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO("1"+currentPassword, "new password")))
1023
1060
  .exchange()
1024
1061
  .expectStatus().isBadRequest();
1025
- <%_ } _%>
1062
+ <%_ } _%>
1026
1063
 
1027
1064
  <%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("change-password-wrong-existing-password")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1028
1065
  assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isFalse();
1029
1066
  assertThat(passwordEncoder.matches(currentPassword, updatedUser.getPassword())).isTrue();
1030
1067
  }
1031
1068
 
1032
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1033
- @Transactional<% } %>
1069
+ @Test
1070
+ <%_ if (databaseTypeSql && !reactive) { _%>
1071
+ @Transactional
1072
+ <%_ } _%>
1034
1073
  @WithMockUser("change-password")
1035
1074
  void testChangePassword() throws Exception {
1036
1075
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1037
- <%_ if (databaseType === 'cassandra') { _%>
1076
+ <%_ if (databaseTypeCassandra) { _%>
1038
1077
  user.setId(UUID.randomUUID().toString());
1039
- <%_ } _%>
1078
+ <%_ } _%>
1040
1079
  String currentPassword = RandomStringUtils.random(60);
1041
1080
  user.setPassword(passwordEncoder.encode(currentPassword));
1042
1081
  user.setLogin("change-password");
1043
1082
  user.setEmail("change-password@example.com");
1044
- <%_ if (databaseType === 'sql' && reactive) { _%>
1083
+ <%_ if (databaseTypeSql && reactive) { _%>
1045
1084
  user.setCreatedBy(Constants.SYSTEM);
1046
- <%_ } _%>
1047
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1085
+ <%_ } _%>
1086
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1048
1087
 
1049
- <%_ if (!reactive) { _%>
1088
+ <%_ if (!reactive) { _%>
1050
1089
  restAccountMockMvc.perform(post("/api/account/change-password")
1051
1090
  .contentType(MediaType.APPLICATION_JSON)
1052
1091
  .content(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, "new password")))
1053
1092
  <%_ if (testsNeedCsrf) { _%>
1054
1093
  .with(csrf())<%_ } _%>)
1055
1094
  .andExpect(status().isOk());
1056
- <%_ } else { _%>
1095
+ <%_ } else { _%>
1057
1096
  accountWebTestClient.post().uri("/api/account/change-password")
1058
1097
  .contentType(MediaType.APPLICATION_JSON)
1059
1098
  .bodyValue(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, "new password")))
1060
1099
  .exchange()
1061
1100
  .expectStatus().isOk();
1062
- <%_ } _%>
1101
+ <%_ } _%>
1063
1102
 
1064
1103
  <%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("change-password")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1065
1104
  assertThat(passwordEncoder.matches("new password", updatedUser.getPassword())).isTrue();
1066
1105
  }
1067
1106
 
1068
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1069
- @Transactional<% } %>
1107
+ @Test
1108
+ <%_ if (databaseTypeSql && !reactive) { _%>
1109
+ @Transactional
1110
+ <%_ } _%>
1070
1111
  @WithMockUser("change-password-too-small")
1071
1112
  void testChangePasswordTooSmall() throws Exception {
1072
1113
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1073
- <%_ if (databaseType === 'cassandra') { _%>
1114
+ <%_ if (databaseTypeCassandra) { _%>
1074
1115
  user.setId(UUID.randomUUID().toString());
1075
- <%_ } _%>
1116
+ <%_ } _%>
1076
1117
  String currentPassword = RandomStringUtils.random(60);
1077
1118
  user.setPassword(passwordEncoder.encode(currentPassword));
1078
1119
  user.setLogin("change-password-too-small");
1079
1120
  user.setEmail("change-password-too-small@example.com");
1080
- <%_ if (databaseType === 'sql' && reactive) { _%>
1121
+ <%_ if (databaseTypeSql && reactive) { _%>
1081
1122
  user.setCreatedBy(Constants.SYSTEM);
1082
- <%_ } _%>
1083
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1123
+ <%_ } _%>
1124
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1084
1125
 
1085
1126
  String newPassword = RandomStringUtils.random(ManagedUserVM.PASSWORD_MIN_LENGTH - 1);
1086
1127
 
1087
- <%_ if (!reactive) { _%>
1128
+ <%_ if (!reactive) { _%>
1088
1129
  restAccountMockMvc.perform(post("/api/account/change-password")
1089
1130
  .contentType(MediaType.APPLICATION_JSON)
1090
1131
  .content(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, newPassword)))
1091
1132
  <%_ if (testsNeedCsrf) { _%>
1092
1133
  .with(csrf())<%_ } _%>)
1093
1134
  .andExpect(status().isBadRequest());
1094
- <%_ } else { _%>
1135
+ <%_ } else { _%>
1095
1136
  accountWebTestClient.post().uri("/api/account/change-password")
1096
1137
  .contentType(MediaType.APPLICATION_JSON)
1097
1138
  .bodyValue(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, newPassword)))
1098
1139
  .exchange()
1099
1140
  .expectStatus().isBadRequest();
1100
- <%_ } _%>
1141
+ <%_ } _%>
1101
1142
 
1102
1143
  <%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("change-password-too-small")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1103
1144
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1104
1145
  }
1105
1146
 
1106
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1107
- @Transactional<% } %>
1147
+ @Test
1148
+ <%_ if (databaseTypeSql && !reactive) { _%>
1149
+ @Transactional
1150
+ <%_ } _%>
1108
1151
  @WithMockUser("change-password-too-long")
1109
1152
  void testChangePasswordTooLong() throws Exception {
1110
1153
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1111
- <%_ if (databaseType === 'cassandra') { _%>
1154
+ <%_ if (databaseTypeCassandra) { _%>
1112
1155
  user.setId(UUID.randomUUID().toString());
1113
- <%_ } _%>
1156
+ <%_ } _%>
1114
1157
  String currentPassword = RandomStringUtils.random(60);
1115
1158
  user.setPassword(passwordEncoder.encode(currentPassword));
1116
1159
  user.setLogin("change-password-too-long");
1117
1160
  user.setEmail("change-password-too-long@example.com");
1118
- <%_ if (databaseType === 'sql' && reactive) { _%>
1161
+ <%_ if (databaseTypeSql && reactive) { _%>
1119
1162
  user.setCreatedBy(Constants.SYSTEM);
1120
- <%_ } _%>
1121
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1163
+ <%_ } _%>
1164
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1122
1165
 
1123
1166
  String newPassword = RandomStringUtils.random(ManagedUserVM.PASSWORD_MAX_LENGTH + 1);
1124
1167
 
1125
- <%_ if (!reactive) { _%>
1168
+ <%_ if (!reactive) { _%>
1126
1169
  restAccountMockMvc.perform(post("/api/account/change-password")
1127
1170
  .contentType(MediaType.APPLICATION_JSON)
1128
1171
  .content(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, newPassword)))
1129
1172
  <%_ if (testsNeedCsrf) { _%>
1130
1173
  .with(csrf())<%_ } _%>)
1131
1174
  .andExpect(status().isBadRequest());
1132
- <%_ } else { _%>
1175
+ <%_ } else { _%>
1133
1176
  accountWebTestClient.post().uri("/api/account/change-password")
1134
1177
  .contentType(MediaType.APPLICATION_JSON)
1135
1178
  .bodyValue(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, newPassword)))
1136
1179
  .exchange()
1137
1180
  .expectStatus().isBadRequest();
1138
- <%_ } _%>
1181
+ <%_ } _%>
1139
1182
 
1140
1183
  <%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("change-password-too-long")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1141
1184
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1142
1185
  }
1143
1186
 
1144
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1145
- @Transactional<% } %>
1187
+ @Test
1188
+ <%_ if (databaseTypeSql && !reactive) { _%>
1189
+ @Transactional
1190
+ <%_ } _%>
1146
1191
  @WithMockUser("change-password-empty")
1147
1192
  void testChangePasswordEmpty() throws Exception {
1148
1193
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1149
- <%_ if (databaseType === 'cassandra') { _%>
1194
+ <%_ if (databaseTypeCassandra) { _%>
1150
1195
  user.setId(UUID.randomUUID().toString());
1151
- <%_ } _%>
1196
+ <%_ } _%>
1152
1197
  String currentPassword = RandomStringUtils.random(60);
1153
1198
  user.setPassword(passwordEncoder.encode(currentPassword));
1154
1199
  user.setLogin("change-password-empty");
1155
1200
  user.setEmail("change-password-empty@example.com");
1156
- <%_ if (databaseType === 'sql' && reactive) { _%>
1201
+ <%_ if (databaseTypeSql && reactive) { _%>
1157
1202
  user.setCreatedBy(Constants.SYSTEM);
1158
- <%_ } _%>
1159
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1203
+ <%_ } _%>
1204
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1160
1205
 
1161
- <%_ if (!reactive) { _%>
1206
+ <%_ if (!reactive) { _%>
1162
1207
  restAccountMockMvc.perform(post("/api/account/change-password")
1163
1208
  .contentType(MediaType.APPLICATION_JSON)
1164
1209
  .content(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, "")))
1165
1210
  <%_ if (testsNeedCsrf) { _%>
1166
1211
  .with(csrf())<%_ } _%>)
1167
1212
  .andExpect(status().isBadRequest());
1168
- <%_ } else { _%>
1213
+ <%_ } else { _%>
1169
1214
  accountWebTestClient.post().uri("/api/account/change-password")
1170
1215
  .contentType(MediaType.APPLICATION_JSON)
1171
1216
  .bodyValue(TestUtil.convertObjectToJsonBytes(new PasswordChangeDTO(currentPassword, "")))
1172
1217
  .exchange()
1173
1218
  .expectStatus().isBadRequest();
1174
- <%_ } _%>
1219
+ <%_ } _%>
1175
1220
 
1176
1221
  <%= asEntity('User') %> updatedUser = userRepository.findOneByLogin("change-password-empty")<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1177
1222
  assertThat(updatedUser.getPassword()).isEqualTo(user.getPassword());
1178
1223
  }
1179
- <%_ if (authenticationType === 'session' && !reactive) { _%>
1224
+ <%_ if (authenticationTypeSession && !reactive) { _%>
1180
1225
 
1181
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1182
- @Transactional<% } %>
1226
+ @Test
1227
+ <%_ if (databaseTypeSql && !reactive) { _%>
1228
+ @Transactional
1229
+ <%_ } _%>
1183
1230
  @WithMockUser("current-sessions")
1184
1231
  void testGetCurrentSessions() <% if (!reactive) { %>throws Exception <% } %>{
1185
1232
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1186
- <%_ if (databaseType === 'cassandra') { _%>
1233
+ <%_ if (databaseTypeCassandra) { _%>
1187
1234
  user.setId(UUID.randomUUID().toString());
1188
- <%_ } _%>
1235
+ <%_ } _%>
1189
1236
  user.setPassword(RandomStringUtils.random(60));
1190
1237
  user.setLogin("current-sessions");
1191
1238
  user.setEmail("current-sessions@example.com");
1192
- <%_ if (databaseType === 'sql' && reactive) { _%>
1239
+ <%_ if (databaseTypeSql && reactive) { _%>
1193
1240
  user.setCreatedBy(Constants.SYSTEM);
1194
- <%_ } _%>
1195
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1241
+ <%_ } _%>
1242
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1196
1243
 
1197
1244
  PersistentToken token = new PersistentToken();
1198
1245
  token.setSeries("current-sessions");
1199
- <%_ if (databaseType === 'sql' || databaseType === 'mongodb' || databaseType === 'neo4j') { _%>
1246
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
1200
1247
  token.setUser(user);
1201
- <%_ } else if (databaseType === 'cassandra') { _%>
1248
+ <%_ } else if (databaseTypeCassandra) { _%>
1202
1249
  token.setUserId(user.getId());
1203
- <%_ } else if (databaseType === 'couchbase') { _%>
1250
+ <%_ } else if (databaseTypeCouchbase) { _%>
1204
1251
  token.setLogin(user.getLogin());
1205
- <%_ } _%>
1252
+ <%_ } _%>
1206
1253
  token.setTokenValue("current-session-data");
1207
- <%_ if (databaseType === 'cassandra') { _%>
1254
+ <%_ if (databaseTypeCassandra) { _%>
1208
1255
  token.setTokenDate(Instant.parse("2017-03-28T15:25:57.123Z"));
1209
- <%_ } else { _%>
1256
+ <%_ } else { _%>
1210
1257
  token.setTokenDate(LocalDate.of(2017, 3, 23));
1211
- <% } %>
1258
+ <% } %>
1212
1259
  token.setIpAddress("127.0.0.1");
1213
1260
  token.setUserAgent("Test agent");
1214
- persistentTokenRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(token);
1261
+ persistentTokenRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(token);
1215
1262
 
1216
1263
  restAccountMockMvc.perform(get("/api/account/sessions"))
1217
1264
  .andExpect(status().isOk())
1218
1265
  .andExpect(jsonPath("$.[*].series").value(hasItem(token.getSeries())))
1219
1266
  .andExpect(jsonPath("$.[*].ipAddress").value(hasItem(token.getIpAddress())))
1220
1267
  .andExpect(jsonPath("$.[*].userAgent").value(hasItem(token.getUserAgent())))
1221
- .andExpect(jsonPath("$.[*].tokenDate").value(hasItem(containsString(<% if (databaseType === 'cassandra') { %>"2017-03-28T15:25:57.123Z"<% } else { %>token.getTokenDate().toString()<% } %>))));
1268
+ .andExpect(jsonPath("$.[*].tokenDate").value(hasItem(containsString(<% if (databaseTypeCassandra) { %>"2017-03-28T15:25:57.123Z"<% } else { %>token.getTokenDate().toString()<% } %>))));
1222
1269
  }
1223
1270
 
1224
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1225
- @Transactional<% } %>
1271
+ @Test
1272
+ <%_ if (databaseTypeSql && !reactive) { _%>
1273
+ @Transactional
1274
+ <%_ } _%>
1226
1275
  @WithMockUser("invalidate-session")
1227
1276
  void testInvalidateSession() <% if (!reactive) { %>throws Exception <% } %>{
1228
1277
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1229
- <%_ if (databaseType === 'cassandra') { _%>
1278
+ <%_ if (databaseTypeCassandra) { _%>
1230
1279
  user.setId(UUID.randomUUID().toString());
1231
- <%_ } _%>
1280
+ <%_ } _%>
1232
1281
  user.setPassword(RandomStringUtils.random(60));
1233
1282
  user.setLogin("invalidate-session");
1234
1283
  user.setEmail("invalidate-session@example.com");
1235
- <%_ if (databaseType === 'sql' && reactive) { _%>
1284
+ <%_ if (databaseTypeSql && reactive) { _%>
1236
1285
  user.setCreatedBy(Constants.SYSTEM);
1237
- <%_ } _%>
1238
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1286
+ <%_ } _%>
1287
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1239
1288
 
1240
1289
  PersistentToken token = new PersistentToken();
1241
1290
  token.setSeries("invalidate-session");
1242
- <%_ if (databaseType === 'sql' || databaseType === 'mongodb' || databaseType === 'neo4j') { _%>
1291
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeNeo4j) { _%>
1243
1292
  token.setUser(user);
1244
- <%_ } else if (databaseType === 'cassandra') { _%>
1293
+ <%_ } else if (databaseTypeCassandra) { _%>
1245
1294
  token.setUserId(user.getId());
1246
- <%_ } else { _%>
1295
+ <%_ } else { _%>
1247
1296
  token.setLogin(user.getLogin());
1248
- <%_ } _%>
1297
+ <%_ } _%>
1249
1298
  token.setTokenValue("invalidate-data");
1250
- <%_ if (['sql', 'mongodb', 'couchbase', 'neo4j'].includes(databaseType)) { _%>
1299
+ <%_ if (databaseTypeSql || databaseTypeMongodb || databaseTypeCouchbase || databaseTypeNeo4j) { _%>
1251
1300
  token.setTokenDate(LocalDate.of(2017, 3, 23));
1252
- <%_ } else if (databaseType === 'cassandra') { _%>
1301
+ <%_ } else if (databaseTypeCassandra) { _%>
1253
1302
  token.setTokenDate(Instant.now());
1254
- <%_ } _%>
1303
+ <%_ } _%>
1255
1304
  token.setIpAddress("127.0.0.1");
1256
1305
  token.setUserAgent("Test agent");
1257
- persistentTokenRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(token);
1306
+ persistentTokenRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(token);
1258
1307
 
1259
1308
  assertThat(persistentTokenRepository.findByUser(user)).hasSize(1);
1260
1309
 
@@ -1265,183 +1314,193 @@ class AccountResourceIT <% if (databaseType === 'cassandra') { %>extends Abstrac
1265
1314
  }
1266
1315
  <%_ } _%>
1267
1316
 
1268
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1269
- @Transactional<% } %>
1317
+ @Test
1318
+ <%_ if (databaseTypeSql && !reactive) { _%>
1319
+ @Transactional
1320
+ <%_ } _%>
1270
1321
  void testRequestPasswordReset()<% if (!reactive) { %> throws Exception<% } %> {
1271
1322
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1272
- <%_ if (databaseType === 'cassandra') { _%>
1323
+ <%_ if (databaseTypeCassandra) { _%>
1273
1324
  user.setId(UUID.randomUUID().toString());
1274
- <%_ } _%>
1325
+ <%_ } _%>
1275
1326
  user.setPassword(RandomStringUtils.random(60));
1276
1327
  user.setActivated(true);
1277
1328
  user.setLogin("password-reset");
1278
1329
  user.setEmail("password-reset@example.com");
1279
- <%_ if (databaseType === 'sql' && reactive) { _%>
1330
+ <%_ if (databaseTypeSql && reactive) { _%>
1280
1331
  user.setCreatedBy(Constants.SYSTEM);
1281
- <%_ } _%>
1282
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1332
+ <%_ } _%>
1333
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1283
1334
 
1284
- <%_ if (!reactive) { _%>
1335
+ <%_ if (!reactive) { _%>
1285
1336
  restAccountMockMvc.perform(post("/api/account/reset-password/init")
1286
1337
  .content("password-reset@example.com")
1287
1338
  <%_ if (testsNeedCsrf) { _%>
1288
1339
  .with(csrf())<%_ } _%>)
1289
1340
  .andExpect(status().isOk());
1290
- <%_ } else { _%>
1341
+ <%_ } else { _%>
1291
1342
  accountWebTestClient.post().uri("/api/account/reset-password/init")
1292
1343
  .bodyValue("password-reset@example.com")
1293
1344
  .exchange()
1294
1345
  .expectStatus().isOk();
1295
- <%_ } _%>
1346
+ <%_ } _%>
1296
1347
  }
1297
1348
 
1298
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1299
- @Transactional<% } %>
1349
+ @Test
1350
+ <%_ if (databaseTypeSql && !reactive) { _%>
1351
+ @Transactional
1352
+ <%_ } _%>
1300
1353
  void testRequestPasswordResetUpperCaseEmail()<% if (!reactive) { %> throws Exception<% } %> {
1301
1354
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1302
- <%_ if (databaseType === 'cassandra') { _%>
1355
+ <%_ if (databaseTypeCassandra) { _%>
1303
1356
  user.setId(UUID.randomUUID().toString());
1304
- <%_ } _%>
1357
+ <%_ } _%>
1305
1358
  user.setPassword(RandomStringUtils.random(60));
1306
1359
  user.setActivated(true);
1307
1360
  user.setLogin("password-reset-upper-case");
1308
1361
  user.setEmail("password-reset-upper-case@example.com");
1309
- <%_ if (databaseType === 'sql' && reactive) { _%>
1362
+ <%_ if (databaseTypeSql && reactive) { _%>
1310
1363
  user.setCreatedBy(Constants.SYSTEM);
1311
- <%_ } _%>
1312
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1364
+ <%_ } _%>
1365
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1313
1366
 
1314
- <%_ if (!reactive) { _%>
1367
+ <%_ if (!reactive) { _%>
1315
1368
  restAccountMockMvc.perform(post("/api/account/reset-password/init")
1316
1369
  .content("password-reset-upper-case@EXAMPLE.COM")
1317
1370
  <%_ if (testsNeedCsrf) { _%>
1318
1371
  .with(csrf())<%_ } _%>)
1319
1372
  .andExpect(status().isOk());
1320
- <%_ } else { _%>
1373
+ <%_ } else { _%>
1321
1374
  accountWebTestClient.post().uri("/api/account/reset-password/init")
1322
1375
  .bodyValue("password-reset-upper-case@EXAMPLE.COM")
1323
1376
  .exchange()
1324
1377
  .expectStatus().isOk();
1325
- <%_ } _%>
1378
+ <%_ } _%>
1326
1379
  }
1327
1380
 
1328
1381
  @Test
1329
- <%_ if (!reactive) { _%>
1382
+ <%_ if (!reactive) { _%>
1330
1383
  void testRequestPasswordResetWrongEmail() <% if (!reactive) { %>throws Exception <% } %>{
1331
1384
  restAccountMockMvc.perform(
1332
1385
  post("/api/account/reset-password/init")
1333
1386
  .content("password-reset-wrong-email@example.com")<% if (testsNeedCsrf) { %>
1334
1387
  .with(csrf())<% } %>)
1335
1388
  .andExpect(status().isOk());
1336
- <%_ } else { _%>
1389
+ <%_ } else { _%>
1337
1390
  void testRequestPasswordResetWrongEmail() {
1338
1391
  accountWebTestClient.post().uri("/api/account/reset-password/init")
1339
1392
  .bodyValue("password-reset-wrong-email@example.com")
1340
1393
  .exchange()
1341
1394
  .expectStatus().isOk();
1342
- <%_ } _%>
1395
+ <%_ } _%>
1343
1396
  }
1344
1397
 
1345
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1346
- @Transactional<% } %>
1398
+ @Test
1399
+ <%_ if (databaseTypeSql && !reactive) { _%>
1400
+ @Transactional
1401
+ <%_ } _%>
1347
1402
  void testFinishPasswordReset() throws Exception {
1348
1403
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1349
- <%_ if (databaseType === 'cassandra') { _%>
1404
+ <%_ if (databaseTypeCassandra) { _%>
1350
1405
  user.setId(UUID.randomUUID().toString());
1351
- <%_ } _%>
1406
+ <%_ } _%>
1352
1407
  user.setPassword(RandomStringUtils.random(60));
1353
1408
  user.setLogin("finish-password-reset");
1354
1409
  user.setEmail("finish-password-reset@example.com");
1355
1410
  user.setResetDate(Instant.now().plusSeconds(60));
1356
1411
  user.setResetKey("reset key");
1357
- <%_ if (databaseType === 'sql' && reactive) { _%>
1412
+ <%_ if (databaseTypeSql && reactive) { _%>
1358
1413
  user.setCreatedBy(Constants.SYSTEM);
1359
- <%_ } _%>
1360
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1414
+ <%_ } _%>
1415
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1361
1416
 
1362
1417
  KeyAndPasswordVM keyAndPassword = new KeyAndPasswordVM();
1363
1418
  keyAndPassword.setKey(user.getResetKey());
1364
1419
  keyAndPassword.setNewPassword("new password");
1365
1420
 
1366
- <%_ if (!reactive) { _%>
1421
+ <%_ if (!reactive) { _%>
1367
1422
  restAccountMockMvc.perform(
1368
1423
  post("/api/account/reset-password/finish")
1369
1424
  .contentType(MediaType.APPLICATION_JSON)
1370
1425
  .content(TestUtil.convertObjectToJsonBytes(keyAndPassword))<% if (testsNeedCsrf) { %>
1371
1426
  .with(csrf())<% } %>)
1372
1427
  .andExpect(status().isOk());
1373
- <%_ } else { _%>
1428
+ <%_ } else { _%>
1374
1429
  accountWebTestClient.post().uri("/api/account/reset-password/finish")
1375
1430
  .contentType(MediaType.APPLICATION_JSON)
1376
1431
  .bodyValue(TestUtil.convertObjectToJsonBytes(keyAndPassword))
1377
1432
  .exchange()
1378
1433
  .expectStatus().isOk();
1379
- <%_ } _%>
1434
+ <%_ } _%>
1380
1435
 
1381
1436
  <%= asEntity('User') %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1382
1437
  assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isTrue();
1383
1438
  }
1384
1439
 
1385
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1386
- @Transactional<% } %>
1440
+ @Test
1441
+ <%_ if (databaseTypeSql && !reactive) { _%>
1442
+ @Transactional
1443
+ <%_ } _%>
1387
1444
  void testFinishPasswordResetTooSmall() throws Exception {
1388
1445
  <%= asEntity('User') %> user = new <%= asEntity('User') %>();
1389
- <%_ if (databaseType === 'cassandra') { _%>
1446
+ <%_ if (databaseTypeCassandra) { _%>
1390
1447
  user.setId(UUID.randomUUID().toString());
1391
- <%_ } _%>
1448
+ <%_ } _%>
1392
1449
  user.setPassword(RandomStringUtils.random(60));
1393
1450
  user.setLogin("finish-password-reset-too-small");
1394
1451
  user.setEmail("finish-password-reset-too-small@example.com");
1395
1452
  user.setResetDate(Instant.now().plusSeconds(60));
1396
1453
  user.setResetKey("reset key too small");
1397
- <%_ if (databaseType === 'sql' && reactive) { _%>
1454
+ <%_ if (databaseTypeSql && reactive) { _%>
1398
1455
  user.setCreatedBy(Constants.SYSTEM);
1399
- <%_ } _%>
1400
- userRepository.save<% if (databaseType === 'sql' && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1456
+ <%_ } _%>
1457
+ userRepository.save<% if (databaseTypeSql && !reactive) { %>AndFlush<% } %>(user)<% if (reactive) { %>.block()<% } %>;
1401
1458
 
1402
1459
  KeyAndPasswordVM keyAndPassword = new KeyAndPasswordVM();
1403
1460
  keyAndPassword.setKey(user.getResetKey());
1404
1461
  keyAndPassword.setNewPassword("foo");
1405
1462
 
1406
- <%_ if (!reactive) { _%>
1463
+ <%_ if (!reactive) { _%>
1407
1464
  restAccountMockMvc.perform(
1408
1465
  post("/api/account/reset-password/finish")
1409
1466
  .contentType(MediaType.APPLICATION_JSON)
1410
1467
  .content(TestUtil.convertObjectToJsonBytes(keyAndPassword))<% if (testsNeedCsrf) { %>
1411
1468
  .with(csrf())<% } %>)
1412
1469
  .andExpect(status().isBadRequest());
1413
- <%_ } else { _%>
1470
+ <%_ } else { _%>
1414
1471
  accountWebTestClient.post().uri("/api/account/reset-password/finish")
1415
1472
  .contentType(MediaType.APPLICATION_JSON)
1416
1473
  .bodyValue(TestUtil.convertObjectToJsonBytes(keyAndPassword))
1417
1474
  .exchange()
1418
1475
  .expectStatus().isBadRequest();
1419
- <%_ } _%>
1476
+ <%_ } _%>
1420
1477
 
1421
1478
  <%= asEntity('User') %> updatedUser = userRepository.findOneByLogin(user.getLogin())<%_ if (!reactive) { _%>.orElse(null)<% } else { %>.block()<% } %>;
1422
1479
  assertThat(passwordEncoder.matches(keyAndPassword.getNewPassword(), updatedUser.getPassword())).isFalse();
1423
1480
  }
1424
1481
 
1425
- @Test<% if (databaseType === 'sql' && !reactive) { %>
1426
- @Transactional<% } %>
1482
+ @Test
1483
+ <%_ if (databaseTypeSql && !reactive) { _%>
1484
+ @Transactional
1485
+ <%_ } _%>
1427
1486
  void testFinishPasswordResetWrongKey() throws Exception {
1428
1487
  KeyAndPasswordVM keyAndPassword = new KeyAndPasswordVM();
1429
1488
  keyAndPassword.setKey("wrong reset key");
1430
1489
  keyAndPassword.setNewPassword("new password");
1431
1490
 
1432
- <%_ if (!reactive) { _%>
1491
+ <%_ if (!reactive) { _%>
1433
1492
  restAccountMockMvc.perform(
1434
1493
  post("/api/account/reset-password/finish")
1435
1494
  .contentType(MediaType.APPLICATION_JSON)
1436
1495
  .content(TestUtil.convertObjectToJsonBytes(keyAndPassword))<% if (testsNeedCsrf) { %>
1437
1496
  .with(csrf())<% } %>)
1438
1497
  .andExpect(status().isInternalServerError());
1439
- <%_ } else { _%>
1498
+ <%_ } else { _%>
1440
1499
  accountWebTestClient.post().uri("/api/account/reset-password/finish")
1441
1500
  .contentType(MediaType.APPLICATION_JSON)
1442
1501
  .bodyValue(TestUtil.convertObjectToJsonBytes(keyAndPassword))
1443
1502
  .exchange()
1444
1503
  .expectStatus().isEqualTo(HttpStatus.INTERNAL_SERVER_ERROR);
1445
- <%_ } _%>
1504
+ <%_ } _%>
1446
1505
  }
1447
1506
  }