generator-jhipster 7.7.0 → 7.9.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 (603) hide show
  1. package/README.md +2 -3
  2. package/cli/environment-builder.js +3 -1
  3. package/cli/import-jdl.js +61 -35
  4. package/cli/jdl.js +5 -4
  5. package/cli/jhipster-command.js +1 -1
  6. package/cli/jhipster.js +0 -0
  7. package/cli/program.js +5 -3
  8. package/generators/app/index.js +21 -0
  9. package/generators/app/prompts.js +60 -12
  10. package/generators/azure-app-service/templates/github/workflows/azure-app-service.yml.ejs +3 -3
  11. package/generators/azure-spring-cloud/templates/github/workflows/azure-spring-cloud.yml.ejs +3 -3
  12. package/generators/bootstrap/index.js +1 -0
  13. package/generators/bootstrap-application/generator.mjs +1 -0
  14. package/generators/ci-cd/index.js +1 -1
  15. package/generators/ci-cd/templates/.gitlab-ci.yml.ejs +2 -3
  16. package/generators/ci-cd/templates/github-actions.yml.ejs +4 -4
  17. package/generators/client/files-angular.js +72 -89
  18. package/generators/client/files-common.js +1 -2
  19. package/generators/client/files-react.js +83 -71
  20. package/generators/client/files-vue.js +8 -54
  21. package/generators/client/index.js +19 -12
  22. package/generators/client/needle-api/needle-client-angular.js +1 -4
  23. package/generators/client/needle-api/needle-client-react.js +11 -8
  24. package/generators/client/prompts.js +1 -0
  25. package/generators/client/templates/angular/.eslintrc.json.ejs +10 -1
  26. package/generators/client/templates/angular/angular.json.ejs +1 -10
  27. package/generators/client/templates/angular/jest.conf.js.ejs +4 -2
  28. package/generators/client/templates/angular/package.json +33 -34
  29. package/generators/client/templates/angular/package.json.ejs +24 -23
  30. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.html.ejs +4 -4
  31. package/generators/client/templates/angular/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html.ejs +1 -1
  32. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.html.ejs +15 -15
  33. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.ts.ejs +17 -11
  34. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +16 -16
  35. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +14 -9
  36. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +9 -9
  37. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.html.ejs +27 -27
  38. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.ts.ejs +28 -13
  39. package/generators/client/templates/angular/src/main/webapp/app/account/sessions/sessions.component.html.ejs +7 -7
  40. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.html.ejs +19 -19
  41. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.spec.ts.ejs +1 -1
  42. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.ts.ejs +35 -37
  43. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +4 -4
  44. package/generators/client/templates/angular/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +7 -7
  45. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.html.ejs +6 -6
  46. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.module.ts.ejs +0 -1
  47. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +3 -3
  48. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +5 -5
  49. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +1 -1
  50. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.html.ejs +5 -5
  51. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +10 -10
  52. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +10 -10
  53. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +9 -9
  54. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +8 -8
  55. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +5 -5
  56. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +4 -4
  57. package/generators/client/templates/angular/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +5 -5
  58. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +4 -4
  59. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +14 -14
  60. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +16 -16
  61. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +3 -2
  62. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +133 -138
  63. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.spec.ts.ejs +22 -24
  64. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.ts.ejs +40 -49
  65. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/user-management.model.ts.ejs +2 -2
  66. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/user-management.module.ts.ejs +0 -1
  67. package/generators/client/templates/angular/src/main/webapp/app/config/navigation.constants.ts.ejs +23 -0
  68. package/generators/client/templates/angular/src/main/webapp/app/config/pagination.constants.ts.ejs +2 -3
  69. package/generators/client/templates/angular/src/main/webapp/app/core/request/request-util.ts.ejs +1 -1
  70. package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +1 -1
  71. package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
  72. package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.model.ts.ejs +2 -2
  73. package/generators/client/templates/angular/src/main/webapp/app/entities/user/user.service.ts.ejs +7 -3
  74. package/generators/client/templates/angular/src/main/webapp/app/home/home.component.html.ejs +14 -14
  75. package/generators/client/templates/angular/src/main/webapp/app/layouts/error/error.component.html.ejs +1 -1
  76. package/generators/client/templates/angular/src/main/webapp/app/layouts/footer/footer.component.html.ejs +1 -1
  77. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +21 -21
  78. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
  79. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.html.ejs +9 -9
  80. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.ts.ejs +16 -27
  81. package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.component.html.ejs +10 -0
  82. package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.component.ts.ejs +23 -0
  83. package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +40 -0
  84. package/generators/client/templates/angular/src/main/webapp/app/shared/filter/filter.model.ts.ejs +95 -0
  85. package/generators/client/templates/angular/src/main/webapp/app/shared/pagination/item-count.component.ts.ejs +1 -1
  86. package/generators/client/templates/angular/src/main/webapp/app/shared/shared.module.ts.ejs +3 -0
  87. package/generators/client/templates/angular/src/main/webapp/app/shared/sort/sort.service.ts.ejs +31 -0
  88. package/generators/client/templates/angular/src/main/webapp/declarations.d.ts.ejs +3 -8
  89. package/generators/client/templates/angular/tsconfig.json.ejs +6 -0
  90. package/generators/client/templates/angular/tsconfig.spec.json.ejs +1 -1
  91. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +17 -2
  92. package/generators/client/templates/angular/webpack/webpack.microfrontend.js.ejs +1 -1
  93. package/generators/client/templates/common/package.json +8 -7
  94. package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +2 -0
  95. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +2 -3
  96. package/generators/client/templates/react/.eslintrc.json.ejs +10 -1
  97. package/generators/client/templates/react/jest.conf.js.ejs +4 -2
  98. package/generators/client/templates/react/package.json +58 -59
  99. package/generators/client/templates/react/package.json.ejs +4 -3
  100. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +1 -1
  101. package/generators/client/templates/react/src/main/webapp/app/app.tsx.ejs +3 -3
  102. package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +53 -6
  103. package/generators/client/templates/react/src/main/webapp/app/config/translation-middleware.ts.ejs +58 -0
  104. package/generators/client/templates/react/src/main/webapp/app/entities/menu.tsx.ejs +45 -0
  105. package/generators/client/templates/react/src/main/webapp/app/entities/reducers.ts.ejs +25 -0
  106. package/generators/client/templates/react/src/main/webapp/app/entities/routes.tsx.ejs +49 -0
  107. package/generators/client/templates/react/src/main/webapp/app/index.tsx.ejs +7 -7
  108. package/generators/client/templates/react/src/main/webapp/app/main.tsx.ejs +19 -0
  109. package/generators/client/templates/react/src/main/webapp/app/modules/account/activate/activate.tsx.ejs +8 -4
  110. package/generators/client/templates/react/src/main/webapp/app/modules/account/index.tsx.ejs +9 -6
  111. package/generators/client/templates/react/src/main/webapp/app/modules/account/password/password.tsx.ejs +1 -0
  112. package/generators/client/templates/react/src/main/webapp/app/modules/account/password-reset/finish/password-reset-finish.tsx.ejs +8 -5
  113. package/generators/client/templates/react/src/main/webapp/app/modules/administration/administration.reducer.ts.ejs +6 -7
  114. package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health-modal.tsx.ejs +3 -2
  115. package/generators/client/templates/react/src/main/webapp/app/modules/administration/health/health.tsx.ejs +4 -4
  116. package/generators/client/templates/react/src/main/webapp/app/modules/administration/index.tsx.ejs +14 -11
  117. package/generators/client/templates/react/src/main/webapp/app/modules/administration/logs/logs.tsx.ejs +1 -1
  118. package/generators/client/templates/react/src/main/webapp/app/modules/administration/metrics/metrics.tsx.ejs +8 -2
  119. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/index.tsx.ejs +13 -13
  120. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-delete-dialog.tsx.ejs +7 -4
  121. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-detail.tsx.ejs +5 -3
  122. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management-update.tsx.ejs +10 -6
  123. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +20 -27
  124. package/generators/client/templates/react/src/main/webapp/app/modules/login/login-modal.tsx.ejs +5 -1
  125. package/generators/client/templates/react/src/main/webapp/app/modules/login/login-redirect.tsx.ejs +6 -3
  126. package/generators/client/templates/react/src/main/webapp/app/modules/login/login.tsx.ejs +6 -5
  127. package/generators/client/templates/react/src/main/webapp/app/routes.tsx.ejs +70 -25
  128. package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.spec.tsx.ejs +30 -27
  129. package/generators/client/templates/react/src/main/webapp/app/shared/auth/private-route.tsx.ejs +35 -34
  130. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-routes.spec.tsx.ejs +55 -0
  131. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-routes.tsx.ejs +21 -0
  132. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.spec.tsx.ejs +1 -1
  133. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary.tsx.ejs +1 -1
  134. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-loading.tsx.ejs +13 -0
  135. package/generators/client/templates/react/src/main/webapp/app/shared/error/page-not-found.tsx.ejs +9 -13
  136. package/generators/client/templates/react/src/main/webapp/app/shared/layout/header/header.spec.tsx.ejs +3 -5
  137. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/account.spec.tsx.ejs +5 -8
  138. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +35 -7
  139. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/menu-item.tsx.ejs +12 -11
  140. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/index.ts.ejs +9 -2
  141. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +9 -3
  142. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +21 -5
  143. package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +15 -0
  144. package/generators/client/templates/react/src/main/webapp/microfrontends/entities-menu.tsx.ejs +3 -0
  145. package/generators/client/templates/react/src/main/webapp/microfrontends/entities-routes.tsx.ejs +3 -0
  146. package/generators/client/templates/react/tsconfig.json.ejs +5 -7
  147. package/generators/client/templates/react/tsconfig.test.json.ejs +10 -1
  148. package/generators/client/templates/react/webpack/webpack.common.js.ejs +12 -15
  149. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +7 -8
  150. package/generators/client/templates/react/webpack/webpack.microfrontend.js.jhi.react.ejs +99 -0
  151. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +31 -21
  152. package/generators/client/templates/vue/.eslintrc.js.ejs +10 -1
  153. package/generators/client/templates/vue/package.json +42 -42
  154. package/generators/client/templates/vue/package.json.ejs +4 -4
  155. package/generators/client/templates/vue/src/main/webapp/app/account/login-form/login-form.component.ts.ejs +2 -2
  156. package/generators/client/templates/vue/src/main/webapp/app/admin/metrics/metrics.vue.ejs +1 -1
  157. package/generators/client/templates/vue/src/main/webapp/app/admin/user-management/user-management-edit.component.ts.ejs +2 -2
  158. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +6 -3
  159. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +2 -2
  160. package/generators/client/templates/vue/src/main/webapp/app/shared/alert/alert.service.ts.ejs +1 -1
  161. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +1 -1
  162. package/generators/client/templates/vue/src/main/webapp/app/shared/date/filters.ts.ejs +0 -6
  163. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +7 -2
  164. package/generators/client/templates/vue/src/test/javascript/spec/app/account/register/register.component.spec.ts.ejs +1 -1
  165. package/generators/client/templates/vue/tsconfig.json.ejs +1 -4
  166. package/generators/client/templates/vue/tsconfig.spec.json.ejs +2 -2
  167. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +6 -2
  168. package/generators/client/templates/vue/webpack/webpack.dev.js.ejs +4 -0
  169. package/generators/client/templates/vue/webpack/webpack.prod.js.ejs +8 -1
  170. package/generators/client/transform-angular.cjs +117 -0
  171. package/generators/client/transform-react.cjs +126 -0
  172. package/generators/client/transform-vue.cjs +42 -0
  173. package/generators/common/files.js +2 -9
  174. package/generators/common/templates/.husky/pre-commit.ejs +0 -0
  175. package/generators/common/templates/README.md.jhi.ejs +21 -5
  176. package/generators/common/templates/package.json +3 -3
  177. package/generators/cypress/files.js +34 -22
  178. package/generators/cypress/index.js +42 -19
  179. package/generators/cypress/templates/cypress-audits.config.ts.ejs +28 -0
  180. package/generators/cypress/templates/cypress.config.ts.ejs +57 -0
  181. package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/login-page.spec.ts.ejs → e2e/account/login-page.cy.ts.ejs} +0 -0
  182. package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/password-page.spec.ts.ejs → e2e/account/password-page.cy.ts.ejs} +0 -0
  183. package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/register-page.spec.ts.ejs → e2e/account/register-page.cy.ts.ejs} +0 -0
  184. package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/reset-password-page.spec.ts.ejs → e2e/account/reset-password-page.cy.ts.ejs} +0 -0
  185. package/generators/cypress/templates/src/test/javascript/cypress/{integration/account/settings-page.spec.ts.ejs → e2e/account/settings-page.cy.ts.ejs} +0 -0
  186. package/generators/cypress/templates/src/test/javascript/cypress/{integration/administration/administration.spec.ts.ejs → e2e/administration/administration.cy.ts.ejs} +1 -1
  187. package/generators/cypress/templates/src/test/javascript/cypress/{integration → e2e}/lighthouse.audits.ts.ejs +0 -0
  188. package/generators/cypress/templates/src/test/javascript/cypress/plugins/global.d.ts.ejs +25 -0
  189. package/generators/cypress/templates/src/test/javascript/cypress/plugins/index.ts.ejs +13 -14
  190. package/generators/cypress/templates/src/test/javascript/cypress/support/commands.ts.ejs +4 -4
  191. package/generators/cypress/templates/src/test/javascript/cypress/support/navbar.ts.ejs +1 -1
  192. package/generators/cypress/templates/src/test/javascript/cypress/support/oauth2.ts.ejs +8 -8
  193. package/generators/cypress/templates/src/test/javascript/cypress/tsconfig.json.ejs +8 -5
  194. package/generators/database-changelog-liquibase/files.js +1 -1
  195. package/generators/database-changelog-liquibase/index.js +3 -0
  196. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +1 -1
  197. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity_constraints.xml.ejs +1 -1
  198. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +1 -1
  199. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +2 -2
  200. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_migrate.xml.ejs +1 -1
  201. package/generators/database-changelog-liquibase/templates/src/main/resources/config/liquibase/fake-data/table_entity.csv.ejs +2 -2
  202. package/generators/docker-base.js +6 -3
  203. package/generators/docker-compose/files.js +5 -2
  204. package/generators/docker-compose/index.js +18 -25
  205. package/generators/docker-compose/templates/README-DOCKER-COMPOSE.md.ejs +1 -1
  206. package/generators/docker-compose/templates/docker-compose.yml.ejs +10 -8
  207. package/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +62 -4
  208. package/generators/docker-prompts.js +1 -2
  209. package/generators/docker-utils.js +0 -1
  210. package/generators/entity/index.js +39 -34
  211. package/generators/entity/prompts.js +1 -52
  212. package/generators/entity-client/files-angular.cjs +169 -0
  213. package/generators/entity-client/files-cypress.cjs +52 -0
  214. package/generators/entity-client/files-react.cjs +113 -0
  215. package/generators/entity-client/files-vue.cjs +140 -0
  216. package/generators/entity-client/files.js +10 -381
  217. package/generators/entity-client/index.js +126 -17
  218. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.html.ejs +4 -5
  219. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.ts.ejs +2 -1
  220. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +12 -11
  221. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity-management.module.ts.ejs +0 -5
  222. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.model.ts.ejs +18 -25
  223. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/entity.test-samples.ts.ejs +45 -0
  224. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +45 -37
  225. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.spec.ts.ejs +47 -28
  226. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +292 -94
  227. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/infinite-scroll-template.ejs +5 -106
  228. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/pagination-template.ejs +2 -82
  229. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.spec.ts.ejs +5 -5
  230. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing-resolve.service.ts.ejs +5 -5
  231. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/route/entity-management-routing.module.ts.ejs +2 -3
  232. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.spec.ts.ejs +89 -175
  233. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/service/entity.service.ts.ejs +69 -44
  234. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-form.service.spec.ts.ejs +111 -0
  235. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-form.service.ts.ejs +263 -0
  236. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +99 -120
  237. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.spec.ts.ejs +47 -71
  238. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +79 -195
  239. package/generators/entity-client/templates/{common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs → cypress/src/test/javascript/cypress/e2e/entity/entity.cy.ts.ejs} +27 -17
  240. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +12 -7
  241. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-detail.tsx.ejs +10 -7
  242. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +29 -23
  243. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +2 -2
  244. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +32 -30
  245. package/generators/entity-client/templates/react/src/main/webapp/app/entities/index.tsx.ejs +13 -13
  246. package/generators/entity-client/templates/react/src/main/webapp/app/entities/react_validators.ejs +25 -32
  247. package/generators/entity-client/templates/vue/src/main/webapp/app/entities/entity-update.component.ts.ejs +2 -2
  248. package/generators/entity-i18n/templates/i18n/entity_fr.json.ejs +1 -1
  249. package/generators/entity-server/cleanup.js +41 -0
  250. package/generators/entity-server/files.js +148 -63
  251. package/generators/entity-server/index.js +30 -25
  252. package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +1 -1
  253. package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +31 -8
  254. package/generators/entity-server/templates/partials/save_template.ejs +1 -1
  255. package/generators/entity-server/templates/partials/update_template.ejs +77 -0
  256. package/generators/entity-server/templates/reactive/partials/save_template.ejs +1 -1
  257. package/generators/entity-server/templates/reactive/partials/update_template.ejs +41 -0
  258. package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +13 -7
  259. package/generators/entity-server/templates/src/main/java/package/common/get_template.ejs +1 -1
  260. package/generators/entity-server/templates/src/main/java/package/common/inject_template.ejs +13 -4
  261. package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +2 -2
  262. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +2 -1
  263. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.elastic_search.ejs +17 -0
  264. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_lifecycle_events.ejs +31 -0
  265. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_cassandra.ejs +3 -1
  266. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_persistable.ejs +54 -0
  267. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_reactive.ejs +1 -1
  268. package/generators/entity-server/templates/src/main/java/package/domain/EntityCallback.java.ejs +43 -0
  269. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +12 -7
  270. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +23 -27
  271. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationships.java.ejs +2 -2
  272. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +17 -9
  273. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +18 -26
  274. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +2 -2
  275. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +2 -2
  276. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +50 -26
  277. package/generators/entity-server/templates/src/main/java/package/service/EntityQueryService.java.ejs +3 -3
  278. package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +10 -2
  279. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +22 -6
  280. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +61 -90
  281. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +8 -9
  282. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +165 -144
  283. package/generators/gae/index.js +1 -1
  284. package/generators/generate-blueprint/constants.mjs +22 -2
  285. package/generators/generate-blueprint/esm.mjs +0 -0
  286. package/generators/generate-blueprint/generator.mjs +25 -6
  287. package/generators/generate-blueprint/templates/.github/workflows/generator.yml.ejs +5 -3
  288. package/generators/generate-blueprint/templates/cli/cli.mjs.ejs +0 -0
  289. package/generators/generate-blueprint/templates/cli/commands.cjs.ejs +2 -1
  290. package/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +6 -5
  291. package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +10 -1
  292. package/generators/generate-blueprint/templates/generators/generator/templates/template-file.ejs +0 -0
  293. package/generators/generator-base-blueprint.js +19 -20
  294. package/generators/generator-base-private.js +117 -65
  295. package/generators/generator-base.js +270 -91
  296. package/generators/generator-constants.js +119 -67
  297. package/generators/generator-defaults.js +1 -0
  298. package/generators/generator-transforms.js +0 -1
  299. package/generators/gradle/constants.cjs +1 -1
  300. package/generators/heroku/index.js +5 -4
  301. package/generators/heroku/templates/application-heroku.yml.ejs +1 -2
  302. package/generators/heroku/templates/heroku.gradle.ejs +28 -1
  303. package/generators/heroku/templates/pom-profile.xml.ejs +29 -0
  304. package/generators/init/templates/.husky/pre-commit +0 -0
  305. package/generators/java/index.cjs +2 -2
  306. package/generators/kubernetes/templates/db/couchbase.yml.ejs +1 -2
  307. package/generators/kubernetes/templates/db/mongodb.yml.ejs +1 -2
  308. package/generators/kubernetes/templates/ingress.yml.ejs +11 -4
  309. package/generators/kubernetes/templates/kubectl-apply.sh.ejs +0 -0
  310. package/generators/kubernetes/templates/monitoring/jhipster-grafana.yml.ejs +6 -2
  311. package/generators/kubernetes/templates/registry/consul.yml.ejs +1 -2
  312. package/generators/kubernetes/templates/registry/jhipster-registry.yml.ejs +1 -2
  313. package/generators/kubernetes-knative/templates/kubectl-apply.sh.ejs +0 -0
  314. package/generators/languages/templates/src/main/webapp/i18n/al/global.json.ejs +7 -1
  315. package/generators/languages/templates/src/main/webapp/i18n/ar-ly/global.json.ejs +7 -1
  316. package/generators/languages/templates/src/main/webapp/i18n/bg/global.json.ejs +7 -1
  317. package/generators/languages/templates/src/main/webapp/i18n/bn/global.json.ejs +7 -1
  318. package/generators/languages/templates/src/main/webapp/i18n/by/global.json.ejs +7 -1
  319. package/generators/languages/templates/src/main/webapp/i18n/ca/global.json.ejs +7 -1
  320. package/generators/languages/templates/src/main/webapp/i18n/cs/global.json.ejs +7 -1
  321. package/generators/languages/templates/src/main/webapp/i18n/da/global.json.ejs +7 -1
  322. package/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +7 -1
  323. package/generators/languages/templates/src/main/webapp/i18n/el/global.json.ejs +7 -1
  324. package/generators/languages/templates/src/main/webapp/i18n/en/global.json.ejs +7 -1
  325. package/generators/languages/templates/src/main/webapp/i18n/en/health.json.ejs +3 -0
  326. package/generators/languages/templates/src/main/webapp/i18n/es/global.json.ejs +7 -1
  327. package/generators/languages/templates/src/main/webapp/i18n/et/global.json.ejs +7 -1
  328. package/generators/languages/templates/src/main/webapp/i18n/fa/global.json.ejs +7 -1
  329. package/generators/languages/templates/src/main/webapp/i18n/fi/global.json.ejs +7 -1
  330. package/generators/languages/templates/src/main/webapp/i18n/fr/global.json.ejs +7 -1
  331. package/generators/languages/templates/src/main/webapp/i18n/gl/global.json.ejs +7 -1
  332. package/generators/languages/templates/src/main/webapp/i18n/hi/global.json.ejs +7 -1
  333. package/generators/languages/templates/src/main/webapp/i18n/hr/global.json.ejs +7 -1
  334. package/generators/languages/templates/src/main/webapp/i18n/hu/global.json.ejs +7 -1
  335. package/generators/languages/templates/src/main/webapp/i18n/hy/global.json.ejs +7 -1
  336. package/generators/languages/templates/src/main/webapp/i18n/in/global.json.ejs +7 -1
  337. package/generators/languages/templates/src/main/webapp/i18n/it/global.json.ejs +7 -1
  338. package/generators/languages/templates/src/main/webapp/i18n/ja/global.json.ejs +7 -1
  339. package/generators/languages/templates/src/main/webapp/i18n/ko/global.json.ejs +7 -1
  340. package/generators/languages/templates/src/main/webapp/i18n/mr/global.json.ejs +7 -1
  341. package/generators/languages/templates/src/main/webapp/i18n/my/global.json.ejs +7 -1
  342. package/generators/languages/templates/src/main/webapp/i18n/nl/global.json.ejs +7 -1
  343. package/generators/languages/templates/src/main/webapp/i18n/pa/global.json.ejs +7 -1
  344. package/generators/languages/templates/src/main/webapp/i18n/pl/global.json.ejs +7 -1
  345. package/generators/languages/templates/src/main/webapp/i18n/pt-br/global.json.ejs +7 -1
  346. package/generators/languages/templates/src/main/webapp/i18n/pt-pt/global.json.ejs +7 -1
  347. package/generators/languages/templates/src/main/webapp/i18n/ro/global.json.ejs +7 -1
  348. package/generators/languages/templates/src/main/webapp/i18n/ru/global.json.ejs +7 -1
  349. package/generators/languages/templates/src/main/webapp/i18n/si/global.json.ejs +7 -1
  350. package/generators/languages/templates/src/main/webapp/i18n/sk/global.json.ejs +7 -1
  351. package/generators/languages/templates/src/main/webapp/i18n/sr/global.json.ejs +7 -1
  352. package/generators/languages/templates/src/main/webapp/i18n/sv/global.json.ejs +7 -1
  353. package/generators/languages/templates/src/main/webapp/i18n/ta/global.json.ejs +7 -1
  354. package/generators/languages/templates/src/main/webapp/i18n/te/global.json.ejs +7 -1
  355. package/generators/languages/templates/src/main/webapp/i18n/th/global.json.ejs +7 -1
  356. package/generators/languages/templates/src/main/webapp/i18n/tr/global.json.ejs +7 -1
  357. package/generators/languages/templates/src/main/webapp/i18n/ua/global.json.ejs +7 -1
  358. package/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json +7 -1
  359. package/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/global.json.ejs +7 -1
  360. package/generators/languages/templates/src/main/webapp/i18n/vi/global.json.ejs +7 -1
  361. package/generators/languages/templates/src/main/webapp/i18n/zh-cn/global.json.ejs +7 -1
  362. package/generators/languages/templates/src/main/webapp/i18n/zh-tw/global.json.ejs +7 -1
  363. package/generators/languages/templates/src/test/resources/i18n/messages_al.properties.ejs +4 -1
  364. package/generators/languages/templates/src/test/resources/i18n/messages_ar_LY.properties.ejs +4 -1
  365. package/generators/languages/templates/src/test/resources/i18n/messages_bg.properties.ejs +1 -1
  366. package/generators/languages/templates/src/test/resources/i18n/messages_bn.properties.ejs +4 -1
  367. package/generators/languages/templates/src/test/resources/i18n/messages_by.properties.ejs +4 -1
  368. package/generators/languages/templates/src/test/resources/i18n/messages_ca.properties.ejs +4 -1
  369. package/generators/languages/templates/src/test/resources/i18n/messages_cs.properties.ejs +4 -1
  370. package/generators/languages/templates/src/test/resources/i18n/messages_da.properties.ejs +4 -1
  371. package/generators/languages/templates/src/test/resources/i18n/messages_de.properties.ejs +4 -1
  372. package/generators/languages/templates/src/test/resources/i18n/messages_el.properties.ejs +4 -1
  373. package/generators/languages/templates/src/test/resources/i18n/messages_es.properties.ejs +4 -1
  374. package/generators/languages/templates/src/test/resources/i18n/messages_et.properties.ejs +4 -1
  375. package/generators/languages/templates/src/test/resources/i18n/messages_fa.properties.ejs +4 -1
  376. package/generators/languages/templates/src/test/resources/i18n/messages_fi.properties.ejs +1 -1
  377. package/generators/languages/templates/src/test/resources/i18n/messages_gl.properties.ejs +4 -1
  378. package/generators/languages/templates/src/test/resources/i18n/messages_hi.properties.ejs +4 -1
  379. package/generators/languages/templates/src/test/resources/i18n/messages_hr.properties.ejs +1 -1
  380. package/generators/languages/templates/src/test/resources/i18n/messages_hu.properties.ejs +4 -1
  381. package/generators/languages/templates/src/test/resources/i18n/messages_hy.properties.ejs +4 -1
  382. package/generators/languages/templates/src/test/resources/i18n/messages_in.properties.ejs +4 -1
  383. package/generators/languages/templates/src/test/resources/i18n/messages_it.properties.ejs +4 -1
  384. package/generators/languages/templates/src/test/resources/i18n/messages_ja.properties.ejs +4 -1
  385. package/generators/languages/templates/src/test/resources/i18n/messages_ko.properties.ejs +4 -1
  386. package/generators/languages/templates/src/test/resources/i18n/messages_mr.properties.ejs +4 -1
  387. package/generators/languages/templates/src/test/resources/i18n/messages_my.properties.ejs +4 -1
  388. package/generators/languages/templates/src/test/resources/i18n/messages_nl.properties.ejs +4 -1
  389. package/generators/languages/templates/src/test/resources/i18n/messages_pa.properties.ejs +1 -1
  390. package/generators/languages/templates/src/test/resources/i18n/messages_pl.properties.ejs +4 -1
  391. package/generators/languages/templates/src/test/resources/i18n/messages_pt_BR.properties.ejs +1 -1
  392. package/generators/languages/templates/src/test/resources/i18n/messages_pt_PT.properties.ejs +4 -1
  393. package/generators/languages/templates/src/test/resources/i18n/messages_ro.properties.ejs +4 -1
  394. package/generators/languages/templates/src/test/resources/i18n/messages_ru.properties.ejs +4 -1
  395. package/generators/languages/templates/src/test/resources/i18n/messages_si.properties.ejs +4 -1
  396. package/generators/languages/templates/src/test/resources/i18n/messages_sk.properties.ejs +4 -1
  397. package/generators/languages/templates/src/test/resources/i18n/messages_sr.properties.ejs +4 -1
  398. package/generators/languages/templates/src/test/resources/i18n/messages_sv.properties.ejs +4 -1
  399. package/generators/languages/templates/src/test/resources/i18n/messages_ta.properties.ejs +4 -1
  400. package/generators/languages/templates/src/test/resources/i18n/messages_te.properties.ejs +4 -1
  401. package/generators/languages/templates/src/test/resources/i18n/messages_th.properties.ejs +4 -1
  402. package/generators/languages/templates/src/test/resources/i18n/messages_tr.properties.ejs +4 -1
  403. package/generators/languages/templates/src/test/resources/i18n/messages_ua.properties.ejs +4 -1
  404. package/generators/languages/templates/src/test/resources/i18n/messages_uz_Cyrl_UZ.properties.ejs +4 -1
  405. package/generators/languages/templates/src/test/resources/i18n/messages_uz_Latn_UZ.properties.ejs +4 -1
  406. package/generators/languages/templates/src/test/resources/i18n/messages_vi.properties.ejs +4 -1
  407. package/generators/languages/templates/src/test/resources/i18n/messages_zh_CN.properties.ejs +4 -1
  408. package/generators/languages/templates/src/test/resources/i18n/messages_zh_TW.properties.ejs +4 -1
  409. package/generators/maven/files.cjs +0 -1
  410. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  411. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
  412. package/generators/maven/templates/mvnw +13 -7
  413. package/generators/maven/templates/mvnw.cmd +19 -13
  414. package/generators/maven/templates/pom.xml.jhi.ejs +2 -2
  415. package/generators/openapi-client/files.js +2 -8
  416. package/generators/openapi-client/index.js +2 -0
  417. package/generators/openshift/templates/registry/consul.yml.ejs +1 -2
  418. package/generators/openshift/templates/registry/jhipster-registry.yml.ejs +1 -2
  419. package/generators/project-name/index.cjs +8 -5
  420. package/generators/server/cleanup-angular.js +37 -0
  421. package/generators/server/cleanup-cache-provider.js +46 -0
  422. package/generators/server/cleanup-cassandra.js +49 -0
  423. package/generators/server/cleanup-cucumber.js +40 -0
  424. package/generators/server/cleanup-elasticsearch.js +48 -0
  425. package/generators/server/cleanup-gradle.js +40 -0
  426. package/generators/server/cleanup-kafka.js +41 -0
  427. package/generators/server/cleanup-maven.js +37 -0
  428. package/generators/server/cleanup-mongodb.js +40 -0
  429. package/generators/server/cleanup-oauth2.js +43 -0
  430. package/generators/server/cleanup-reactive.js +38 -0
  431. package/generators/server/cleanup-sql.js +48 -0
  432. package/generators/server/cleanup.js +89 -39
  433. package/generators/server/esm.mjs +1 -0
  434. package/generators/server/files-couchbase.js +11 -10
  435. package/generators/server/files-sql.js +197 -4
  436. package/generators/server/files.js +239 -248
  437. package/generators/server/index.js +38 -86
  438. package/generators/server/needle-api/needle-server-gradle.js +38 -0
  439. package/generators/server/needles.cjs +79 -0
  440. package/generators/server/templates/.mvn/jvm.config +1 -0
  441. package/generators/server/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  442. package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
  443. package/generators/server/templates/.npmrc.ejs +1 -0
  444. package/generators/server/templates/build.gradle.ejs +126 -229
  445. package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +24 -1
  446. package/generators/server/templates/couchbase/src/test/java/package/config/CouchbaseTestContainer.java.ejs +67 -0
  447. package/generators/server/templates/couchbase/src/test/java/package/config/EmbeddedCouchbase.java.ejs +30 -0
  448. package/generators/server/templates/devcontainer/Dockerfile.ejs +25 -0
  449. package/generators/server/templates/devcontainer/devcontainer.json.ejs +64 -0
  450. package/generators/server/templates/gradle/docker.gradle.ejs +6 -0
  451. package/generators/server/templates/gradle/profile_dev.gradle.ejs +95 -3
  452. package/generators/server/templates/gradle/profile_prod.gradle.ejs +80 -4
  453. package/generators/server/templates/gradle/wrapper/gradle-wrapper.jar +0 -0
  454. package/generators/server/templates/gradle.properties.ejs +17 -13
  455. package/generators/server/templates/gradlew +0 -0
  456. package/generators/server/templates/mvnw +13 -7
  457. package/generators/server/templates/mvnw.cmd +19 -13
  458. package/generators/server/templates/npmw +0 -0
  459. package/generators/server/templates/pom.xml.ejs +287 -236
  460. package/generators/server/templates/settings.gradle.ejs +8 -5
  461. package/generators/server/templates/sql/common/src/main/docker/config/mariadb/my.cnf +49 -0
  462. package/generators/server/templates/sql/common/src/main/docker/config/mysql/my.cnf +82 -0
  463. package/generators/server/templates/{src → sql/common/src}/main/docker/mariadb.yml.ejs +2 -0
  464. package/generators/server/templates/{src → sql/common/src}/main/docker/mssql.yml.ejs +0 -0
  465. package/generators/server/templates/{src → sql/common/src}/main/docker/mysql.yml.ejs +2 -1
  466. package/generators/server/templates/{src → sql/common/src}/main/docker/postgresql.yml.ejs +0 -0
  467. package/generators/server/templates/{src → sql/common/src}/main/java/package/config/LiquibaseConfiguration.java.ejs +0 -0
  468. package/generators/server/templates/{src → sql/common/src}/main/resources/h2.server.properties.ejs +0 -0
  469. package/generators/server/templates/sql/common/src/test/java/package/config/EmbeddedSQL.java.ejs +30 -0
  470. package/generators/server/templates/sql/common/src/test/java/package/config/MariadbTestContainer.java.ejs +60 -0
  471. package/generators/server/templates/sql/common/src/test/java/package/config/MsSqlTestContainer.java.ejs +59 -0
  472. package/generators/server/templates/sql/common/src/test/java/package/config/MysqlTestContainer.java.ejs +69 -0
  473. package/generators/server/templates/sql/common/src/test/java/package/config/PostgreSqlTestContainer.java.ejs +59 -0
  474. package/generators/server/templates/sql/common/src/test/java/package/config/SqlTestContainer.java.ejs +28 -0
  475. package/generators/server/templates/{src → sql/common/src}/test/java/package/config/timezone/HibernateTimeZoneIT.java.ejs +0 -0
  476. package/generators/server/templates/{src → sql/common/src}/test/java/package/repository/timezone/DateTimeWrapper.java.ejs +0 -0
  477. package/generators/server/templates/{src → sql/common/src}/test/java/package/repository/timezone/DateTimeWrapperRepository.java.ejs +0 -0
  478. package/generators/server/templates/sql/common/src/test/resources/config/application-testdev.yml.ejs +93 -0
  479. package/generators/server/templates/{src/test/resources/config/application-testcontainers.yml.ejs → sql/common/src/test/resources/config/application-testprod.yml.ejs} +17 -33
  480. package/generators/server/templates/sql/common/src/test/resources/testcontainers/mariadb/my.cnf +49 -0
  481. package/generators/server/templates/sql/common/src/test/resources/testcontainers/mysql/my.cnf +83 -0
  482. package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/EntityManager.java.ejs +48 -38
  483. package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/rowmapper/ColumnConverter.java.ejs +0 -0
  484. package/generators/server/templates/{src → sql/reactive/src}/main/java/package/repository/rowmapper/UserRowMapper.java.ejs +0 -0
  485. package/generators/server/templates/src/main/docker/app.yml.ejs +18 -20
  486. package/generators/server/templates/src/main/docker/cassandra-migration.yml.ejs +1 -0
  487. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +64 -7
  488. package/generators/server/templates/src/main/docker/jhipster-control-center.yml.ejs +1 -1
  489. package/generators/server/templates/src/main/docker/jhipster-registry.yml.ejs +1 -1
  490. package/generators/server/templates/src/main/docker/jib/entrypoint.sh.ejs +36 -1
  491. package/generators/server/templates/src/main/docker/keycloak.yml.ejs +8 -6
  492. package/generators/server/templates/src/main/java/package/config/ApplicationProperties.java.ejs +3 -0
  493. package/generators/server/templates/src/main/java/package/config/AsyncConfiguration.java.ejs +2 -0
  494. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +1 -1
  495. package/generators/{client/templates/react/src/main/webapp/app/entities/index.tsx.ejs → server/templates/src/main/java/package/config/KafkaSseConsumer.java.ejs} +8 -14
  496. package/generators/server/templates/src/main/java/package/config/KafkaSseProducer.java.ejs +30 -0
  497. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +21 -33
  498. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +108 -15
  499. package/generators/server/templates/src/main/java/package/config/WebConfigurer.java.ejs +6 -0
  500. package/generators/server/templates/src/main/java/package/security/DomainUserDetailsService.java.ejs +6 -3
  501. package/generators/server/templates/src/main/java/package/security/jwt/JWTFilter.java.ejs +1 -1
  502. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +1 -1
  503. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +10 -3
  504. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +12 -2
  505. package/generators/server/templates/src/main/java/package/web/rest/KafkaResource.java.ejs +60 -108
  506. package/generators/server/templates/src/main/java/package/web/rest/KafkaResource_reactive.java.ejs +74 -0
  507. package/generators/server/templates/src/main/java/package/web/rest/LogoutResource.java.ejs +1 -5
  508. package/generators/server/templates/src/main/java/package/web/rest/LogoutResource_reactive.java.ejs +1 -5
  509. package/generators/server/templates/src/main/java/package/web/rest/UserResource.java.ejs +3 -4
  510. package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +4 -3
  511. package/generators/server/templates/src/main/resources/config/application.yml.ejs +27 -23
  512. package/generators/server/templates/src/main/resources/config/liquibase/changelog/initial_schema.xml.ejs +1 -1
  513. package/generators/server/templates/src/main/resources/config/liquibase/master.xml.ejs +54 -24
  514. package/generators/server/templates/src/main/resources/swagger/api.yml.ejs +3 -3
  515. package/generators/server/templates/src/test/java/package/CassandraKeyspaceIT.java.ejs +3 -4
  516. package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +40 -21
  517. package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +0 -3
  518. package/generators/server/templates/src/test/java/package/{repository/search/UserSearchRepositoryMockConfiguration.java.ejs → config/AsyncSyncConfiguration.java.ejs} +12 -10
  519. package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs +141 -0
  520. package/generators/{entity-server/templates/src/test/java/package/repository/search/EntitySearchRepositoryMockConfiguration.java.ejs → server/templates/src/test/java/package/config/ElasticsearchReactiveTestConfiguration.java.ejs} +14 -11
  521. package/generators/server/templates/src/test/java/package/config/ElasticsearchTestContainer.java.ejs +68 -0
  522. package/generators/server/templates/src/test/java/package/config/EmbeddedCassandra.java.ejs +30 -0
  523. package/generators/server/templates/src/test/java/package/config/EmbeddedElasticsearch.java.ejs +30 -0
  524. package/generators/server/templates/src/test/java/package/config/EmbeddedKafka.java.ejs +30 -0
  525. package/generators/server/templates/src/test/java/package/config/EmbeddedMongo.java.ejs +30 -0
  526. package/generators/server/templates/src/test/java/package/config/EmbeddedNeo4j.java.ejs +29 -0
  527. package/generators/server/templates/src/test/java/package/config/EmbeddedRedis.java.ejs +30 -0
  528. package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +11 -2
  529. package/generators/server/templates/src/test/java/package/config/KafkaTestContainer.java.ejs +56 -0
  530. package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs +67 -0
  531. package/generators/server/templates/src/test/java/package/config/Neo4jTestContainer.java.ejs +66 -0
  532. package/generators/server/templates/src/test/java/package/config/RedisTestContainer.java.ejs +57 -0
  533. package/generators/server/templates/src/test/java/package/config/{NoOpMailConfiguration.java.ejs → SpringBootTestClassOrderer.java.ejs} +16 -16
  534. package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +250 -0
  535. package/generators/server/templates/src/test/java/package/config/WebConfigurerTest.java.ejs +0 -23
  536. package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +3 -10
  537. package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +6 -7
  538. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +5 -5
  539. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +9 -19
  540. package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +9 -15
  541. package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +1 -1
  542. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +20 -74
  543. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_oauth2.java.ejs +1 -4
  544. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +1 -12
  545. package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT.java.ejs +52 -123
  546. package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT_reactive.java.ejs +99 -0
  547. package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs +7 -10
  548. package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +13 -10
  549. package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs +1 -4
  550. package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +78 -56
  551. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT.java.ejs +1 -4
  552. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -4
  553. package/generators/server/templates/src/test/resources/META-INF/spring.factories.ejs +1 -1
  554. package/generators/server/templates/src/test/resources/config/application.yml.ejs +33 -81
  555. package/generators/server/templates/src/test/resources/junit-platform.properties.ejs +1 -0
  556. package/generators/server/templates/src/test/resources/templates/mail/activationEmail.html.ejs +19 -0
  557. package/generators/server/templates/src/test/resources/templates/mail/creationEmail.html.ejs +19 -0
  558. package/generators/server/templates/src/test/resources/templates/mail/passwordResetEmail.html.ejs +21 -0
  559. package/generators/server/templates/src/test/resources/testcontainers.properties.ejs +1 -0
  560. package/generators/spring-controller/index.js +16 -1
  561. package/generators/sql-constants.js +85 -0
  562. package/generators/statistics.js +6 -5
  563. package/generators/upgrade/index.js +1 -1
  564. package/generators/utils.js +32 -30
  565. package/generators/workspaces/index.js +32 -28
  566. package/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +2 -3
  567. package/jdl/converters/json-to-jdl-converter.js +23 -6
  568. package/jdl/exporters/applications/jhipster-application-formatter.js +7 -0
  569. package/jdl/jhipster/application-options.js +8 -0
  570. package/jdl/jhipster/default-application-options.js +2 -2
  571. package/jdl/parsing/lexer/application-tokens.js +6 -0
  572. package/jdl/parsing/validator.js +7 -0
  573. package/jdl/validators/application-validator.js +3 -1
  574. package/jdl/validators/jdl-with-application-validator.js +1 -0
  575. package/jdl/validators/jdl-without-application-validator.js +3 -2
  576. package/lib/support/base.cjs +43 -0
  577. package/lib/support/needles.cjs +221 -0
  578. package/lib/support/shared-data.cjs +2 -2
  579. package/package.json +34 -32
  580. package/utils/blueprint.js +1 -1
  581. package/utils/entity.js +11 -1
  582. package/utils/field.js +26 -6
  583. package/utils/liquibase.js +5 -8
  584. package/utils/relationship.js +13 -3
  585. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.spec.tsx.ejs +0 -33
  586. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-boundary-route.tsx.ejs +0 -17
  587. package/generators/cypress/templates/cypress-audits.json.ejs +0 -32
  588. package/generators/cypress/templates/cypress.json.ejs +0 -46
  589. package/generators/docker-compose/templates/realm-config/jhipster-users-0.json.ejs +0 -61
  590. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/no-pagination-template.ejs +0 -81
  591. package/generators/entity-server/templates/src/main/java/package/repository/search/SortToSortBuilderListConverter.java.ejs +0 -25
  592. package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
  593. package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
  594. package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +0 -56
  595. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-users-0.json.ejs +0 -61
  596. package/generators/server/templates/src/main/java/package/config/KafkaProperties.java.ejs +0 -68
  597. package/generators/server/templates/src/test/java/package/AbstractCassandraTest.java.ejs +0 -125
  598. package/generators/server/templates/src/test/java/package/AbstractNeo4jIT.java.ejs +0 -44
  599. package/generators/server/templates/src/test/java/package/MongoDbTestContainerExtension.java.ejs +0 -37
  600. package/generators/server/templates/src/test/java/package/ReactiveSqlTestContainerExtension.java.ejs +0 -79
  601. package/generators/server/templates/src/test/java/package/RedisTestContainerExtension.java.ejs +0 -44
  602. package/generators/server/templates/src/test/java/package/TestContainersSpringContextCustomizerFactory.java.ejs +0 -24
  603. package/generators/server/templates/src/test/resources/testcontainers/mariadb/my.cnf +0 -2
@@ -39,31 +39,10 @@
39
39
  spring:
40
40
  datasource:
41
41
  type: com.zaxxer.hikari.HikariDataSource
42
- driver-class-name: org.testcontainers.jdbc.ContainerDatabaseDriver
43
- <%_ if (prodDatabaseTypeMysql) { _%>
44
- url: jdbc:tc:mysql:<%= containerVersion %>:///<%= baseName %>?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=${user.timezone}&TC_TMPFS=/testtmpfs:rw
45
- username: root
46
- password:
47
- <%_ } else if (prodDatabaseTypeMariadb) { _%>
48
- url: jdbc:tc:mariadb:<%= containerVersion %>:///<%= baseName %>?TC_MY_CNF=testcontainers/mariadb&useLegacyDatetimeCode=false&serverTimezone=${user.timezone}&TC_TMPFS=/testtmpfs:rw
49
- username: root
50
- password:
51
- <%_ } else if (prodDatabaseTypePostgres) { _%>
52
- url: jdbc:tc:postgresql:<%= containerVersion %>:///<%= baseName %>?TC_TMPFS=/testtmpfs:rw
53
- username: <%= baseName %>
54
- password:
55
- <%_ } else if (prodDatabaseTypeMssql) { _%>
56
- url: jdbc:tc:sqlserver:<%= containerVersion %>://;database=<%= baseName %>?TC_TMPFS=/testtmpfs:rw
57
- username: SA
58
- password: yourStrong(!)Password
59
- <%_ } else if (prodDatabaseTypeOracle) { _%>
60
- url: jdbc:tc:oracle:thin:@///ORCL?TC_TMPFS=/testtmpfs:rw
61
- username: system
62
- password: oracle
63
- <%_ } _%>
64
42
  hikari:
65
43
  poolName: Hikari
66
44
  auto-commit: false
45
+ maximum-pool-size: 1
67
46
  <%_ if (prodDatabaseTypeMysql || prodDatabaseTypeMariadb || prodDatabaseTypeMssql) { _%>
68
47
  data-source-properties:
69
48
  cachePrepStmts: true
@@ -72,16 +51,21 @@ spring:
72
51
  useServerPrepStmts: true
73
52
  <%_ } _%>
74
53
  jpa:
75
- <%_ if (prodDatabaseTypeMysql) { _%>
76
- database-platform: org.hibernate.dialect.MySQL8Dialect
77
- <%_ } else if (prodDatabaseTypeMariadb) { _%>
78
- database-platform: org.hibernate.dialect.MariaDB103Dialect
79
- <%_ } else if (prodDatabaseTypePostgres) { _%>
54
+ <%_ if (prodDatabaseTypePostgres) { _%>
80
55
  database-platform: tech.jhipster.domain.util.FixedPostgreSQL10Dialect
81
- <%_ } else if (prodDatabaseTypeOracle) { _%>
82
- database-platform: org.hibernate.dialect.Oracle12cDialect
83
- <%_ } else if (prodDatabaseTypeMssql) { _%>
84
- database-platform: org.hibernate.dialect.SQLServer2012Dialect
85
- <%_ } else { _%>
86
- database-platform: tech.jhipster.domain.util.FixedH2Dialect
87
56
  <%_ } _%>
57
+ open-in-view: false
58
+ hibernate:
59
+ ddl-auto: none
60
+ naming:
61
+ physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
62
+ implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
63
+ properties:
64
+ hibernate.id.new_generator_mappings: true
65
+ hibernate.connection.provider_disables_autocommit: true
66
+ hibernate.cache.use_second_level_cache: false
67
+ hibernate.cache.use_query_cache: false
68
+ hibernate.generate_statistics: false
69
+ hibernate.hbm2ddl.auto: validate
70
+ hibernate.jdbc.time_zone: UTC
71
+ hibernate.query.fail_on_pagination_over_collection_fetch: true
@@ -0,0 +1,49 @@
1
+ [mysqld]
2
+ port = 3306
3
+ #socket = /tmp/mysql.sock
4
+ skip-external-locking
5
+ key_buffer_size = 16K
6
+ max_allowed_packet = 1M
7
+ table_open_cache = 4
8
+ sort_buffer_size = 64K
9
+ read_buffer_size = 256K
10
+ read_rnd_buffer_size = 256K
11
+ net_buffer_length = 2K
12
+ thread_stack = 512K
13
+ skip-host-cache
14
+ skip-name-resolve
15
+
16
+ # Don't listen on a TCP/IP port at all. This can be a security enhancement,
17
+ # if all processes that need to connect to mysqld run on the same host.
18
+ # All interaction with mysqld must be made via Unix sockets or named pipes.
19
+ # Note that using this option without enabling named pipes on Windows
20
+ # (using the "enable-named-pipe" option) will render mysqld useless!
21
+ #
22
+ #skip-networking
23
+ #server-id = 1
24
+
25
+ # Uncomment the following if you want to log updates
26
+ #log-bin=mysql-bin
27
+
28
+ # binary logging format - mixed recommended
29
+ #binlog_format=mixed
30
+
31
+ # Causes updates to non-transactional engines using statement format to be
32
+ # written directly to binary log. Before using this option make sure that
33
+ # there are no dependencies between transactional and non-transactional
34
+ # tables such as in the statement INSERT INTO t_myisam SELECT * FROM
35
+ # t_innodb; otherwise, slaves may diverge from the master.
36
+ #binlog_direct_non_transactional_updates=TRUE
37
+
38
+ # Uncomment the following if you are using InnoDB tables
39
+ innodb_data_file_path = ibdata1:10M:autoextend
40
+ # You can set .._buffer_pool_size up to 50 - 80 %
41
+ # of RAM but beware of setting memory usage too high
42
+ innodb_buffer_pool_size = 16M
43
+ #innodb_additional_mem_pool_size = 2M
44
+ # Set .._log_file_size to 25 % of buffer pool size
45
+ innodb_log_file_size = 5M
46
+ innodb_log_buffer_size = 8M
47
+ innodb_flush_log_at_trx_commit = 1
48
+ innodb_lock_wait_timeout = 200
49
+ character-set-server = utf8mb4
@@ -0,0 +1,83 @@
1
+ # For advice on how to change settings please see
2
+ # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
3
+ [mysqld]
4
+ user = mysql
5
+ datadir = /var/lib/mysql
6
+ port = 3306
7
+ socket = /var/run/mysqld/mysqld.sock
8
+ skip-external-locking
9
+ key_buffer_size = 16K
10
+ max_allowed_packet = 1M
11
+ table_open_cache = 4
12
+ sort_buffer_size = 64K
13
+ read_buffer_size = 256K
14
+ read_rnd_buffer_size = 256K
15
+ net_buffer_length = 2K
16
+ skip-host-cache
17
+ skip-name-resolve
18
+ secure-file-priv = NULL
19
+
20
+ # Don't listen on a TCP/IP port at all. This can be a security enhancement,
21
+ # if all processes that need to connect to mysqld run on the same host.
22
+ # All interaction with mysqld must be made via Unix sockets or named pipes.
23
+ # Note that using this option without enabling named pipes on Windows
24
+ # (using the "enable-named-pipe" option) will render mysqld useless!
25
+ #
26
+ #skip-networking
27
+ #server-id = 1
28
+
29
+ # Uncomment the following if you want to log updates
30
+ #log-bin=mysql-bin
31
+
32
+ # binary logging format - mixed recommended
33
+ #binlog_format=mixed
34
+
35
+ # Causes updates to non-transactional engines using statement format to be
36
+ # written directly to binary log. Before using this option make sure that
37
+ # there are no dependencies between transactional and non-transactional
38
+ # tables such as in the statement INSERT INTO t_myisam SELECT * FROM
39
+ # t_innodb; otherwise, slaves may diverge from the master.
40
+ #binlog_direct_non_transactional_updates=TRUE
41
+
42
+ # Uncomment the following if you are using InnoDB tables
43
+ innodb_data_file_path = ibdata1:10M:autoextend
44
+ # You can set .._buffer_pool_size up to 50 - 80 %
45
+ # of RAM but beware of setting memory usage too high
46
+ innodb_buffer_pool_size = 16M
47
+ #innodb_additional_mem_pool_size = 2M
48
+ # Set .._log_file_size to 25 % of buffer pool size
49
+ innodb_log_file_size = 5M
50
+ innodb_log_buffer_size = 8M
51
+ innodb_flush_log_at_trx_commit = 1
52
+ innodb_lock_wait_timeout = 50
53
+
54
+ symbolic-links=0
55
+ innodb_buffer_pool_size=5M
56
+ innodb_log_buffer_size=256K
57
+ max_connections=10
58
+ key_buffer_size=8
59
+ thread_cache_size=0
60
+ host_cache_size=0
61
+ innodb_ft_cache_size=1600000
62
+ innodb_ft_total_cache_size=32000000
63
+ #### These optimize the memory use of MySQL
64
+ #### http://www.tocker.ca/2014/03/10/configuring-mysql-to-use-minimal-memory.html
65
+
66
+ # per thread or per operation settings
67
+ thread_stack=131072
68
+ sort_buffer_size=32K
69
+ read_buffer_size=8200
70
+ read_rnd_buffer_size=8200
71
+ max_heap_table_size=16K
72
+ tmp_table_size=1K
73
+ bulk_insert_buffer_size=0
74
+ join_buffer_size=128
75
+ net_buffer_length=1K
76
+ innodb_sort_buffer_size=64K
77
+
78
+ #settings that relate to the binary log (if enabled)
79
+ binlog_cache_size=4K
80
+ binlog_stmt_cache_size=4K
81
+
82
+ performance_schema = off
83
+ character-set-server = utf8mb4
@@ -33,6 +33,7 @@ import org.springframework.data.r2dbc.core.StatementMapper;
33
33
  import org.springframework.data.r2dbc.mapping.OutboundRow;
34
34
  import org.springframework.data.r2dbc.query.UpdateMapper;
35
35
  import org.springframework.data.relational.core.query.Criteria;
36
+ import org.springframework.data.relational.core.sql.Condition;
36
37
  import org.springframework.data.relational.core.mapping.RelationalPersistentEntity;
37
38
  import org.springframework.data.relational.core.sql.Conditions;
38
39
  import org.springframework.data.relational.core.sql.OrderByField;
@@ -90,19 +91,28 @@ public class EntityManager {
90
91
  * Creates an SQL select statement from the given fragment and pagination parameters.
91
92
  * @param selectFrom a representation of a select statement.
92
93
  * @param entityType the entity type which holds the table name.
93
- * @param pageable page parameter, or null, if everything needs to be returned
94
+ * @param pageable page parameter, or null, if everything needs to be returned.
95
+ * @param where condition or null. The condition to apply as where clause.
94
96
  * @return sql select statement
95
97
  */
96
- public String createSelect(SelectFromAndJoin selectFrom, Class<?> entityType, Pageable pageable, Criteria criteria) {
98
+ public String createSelect(SelectFromAndJoin selectFrom, Class<?> entityType, Pageable pageable, Condition where) {
97
99
  if (pageable != null) {
98
- if (criteria != null) {
99
- return createSelectImpl(selectFrom.limitOffset(pageable.getPageSize(), pageable.getOffset()).where(Conditions.just(criteria.toString())), entityType, pageable.getSort());
100
+ if (where != null) {
101
+ return createSelectImpl(
102
+ selectFrom.limitOffset(pageable.getPageSize(), pageable.getOffset()).where(where),
103
+ entityType,
104
+ pageable.getSort()
105
+ );
100
106
  } else {
101
- return createSelectImpl(selectFrom.limitOffset(pageable.getPageSize(), pageable.getOffset()), entityType, pageable.getSort());
107
+ return createSelectImpl(
108
+ selectFrom.limitOffset(pageable.getPageSize(), pageable.getOffset()),
109
+ entityType,
110
+ pageable.getSort()
111
+ );
102
112
  }
103
113
  } else {
104
- if (criteria != null) {
105
- return createSelectImpl(selectFrom.where(Conditions.just(criteria.toString())), entityType, null);
114
+ if (where != null) {
115
+ return createSelectImpl(selectFrom.where(where), entityType, null);
106
116
  } else {
107
117
  return createSelectImpl(selectFrom, entityType, null);
108
118
  }
@@ -114,37 +124,32 @@ public class EntityManager {
114
124
  * @param selectFrom a representation of a select statement.
115
125
  * @param entityType the entity type which holds the table name.
116
126
  * @param pageable page parameter, or null, if everything needs to be returned
127
+ * @param where condition or null. The condition to apply as where clause.
117
128
  * @return sql select statement
118
129
  */
119
- public String createSelect(SelectFromAndJoinCondition selectFrom, Class<?> entityType, Pageable pageable, Criteria criteria) {
130
+ public String createSelect(SelectFromAndJoinCondition selectFrom, Class<?> entityType, Pageable pageable, Condition where) {
120
131
  if (pageable != null) {
121
- if (criteria != null) {
122
- return createSelectImpl(selectFrom.limitOffset(pageable.getPageSize(), pageable.getOffset()).where(Conditions.just(criteria.toString())), entityType, pageable.getSort());
132
+ if (where != null) {
133
+ return createSelectImpl(selectFrom.limitOffset(pageable.getPageSize(), pageable.getOffset()).where(where), entityType, pageable.getSort());
123
134
  } else {
124
135
  return createSelectImpl(selectFrom.limitOffset(pageable.getPageSize(), pageable.getOffset()), entityType, pageable.getSort());
125
136
  }
126
137
  } else {
127
- if (criteria != null) {
128
- return createSelectImpl(selectFrom.where(Conditions.just(criteria.toString())), entityType, null);
138
+ if (where != null) {
139
+ return createSelectImpl(selectFrom.where(where), entityType, null);
129
140
  } else {
130
141
  return createSelectImpl(selectFrom, entityType, null);
131
142
  }
132
143
  }
133
144
  }
134
145
 
135
- private String createSelectImpl(SelectOrdered selectFrom, Class<?> entityType, Sort sortParameter) {
136
- if (sortParameter != null && sortParameter.isSorted()) {
137
- RelationalPersistentEntity<?> entity = getPersistentEntity(entityType);
138
- if (entity != null) {
139
- Sort sort = updateMapper.getMappedObject(sortParameter, entity);
140
- selectFrom = selectFrom.orderBy(createOrderByFields(Table.create(entity.getTableName()).as(EntityManager.ENTITY_ALIAS), sort));
141
- }
142
- }
143
- return createSelect(selectFrom.build());
144
- }
145
-
146
- private RelationalPersistentEntity<?> getPersistentEntity(Class<?> entityType) {
147
- return r2dbcEntityTemplate.getConverter().getMappingContext().getPersistentEntity(entityType);
146
+ /**
147
+ * Generate an actual SQL from the given {@link Select}.
148
+ * @param select a representation of a select statement.
149
+ * @return the generated SQL select.
150
+ */
151
+ public String createSelect(Select select) {
152
+ return sqlRenderer.render(select);
148
153
  }
149
154
 
150
155
  /**
@@ -166,15 +171,6 @@ public class EntityManager {
166
171
  return r2dbcEntityTemplate.getDatabaseClient().sql(statementMapper.getMappedObject(delete)).fetch().rowsUpdated();
167
172
  }
168
173
 
169
- /**
170
- * Generate an actual SQL from the given {@link Select}.
171
- * @param select a representation of a select statement.
172
- * @return the generated SQL select.
173
- */
174
- public String createSelect(Select select) {
175
- return sqlRenderer.render(select);
176
- }
177
-
178
174
  /**
179
175
  * Inserts the given entity into the database - and sets the id, if it's an autoincrement field.
180
176
  * @param <S> the type of the persisted entity.
@@ -192,11 +188,11 @@ public class EntityManager {
192
188
  * @param referencedIds the id of the referred entities.
193
189
  * @return the number of inserted rows.
194
190
  */
195
- public Mono<Integer> updateLinkTable(LinkTable table, Long entityId, Stream<Long> referencedIds) {
191
+ public Mono<Integer> updateLinkTable(LinkTable table, Object entityId, Stream<?> referencedIds) {
196
192
  return deleteFromLinkTable(table, entityId)
197
193
  .then(
198
194
  Flux.fromStream(referencedIds)
199
- .flatMap((Long referenceId) -> {
195
+ .flatMap((Object referenceId) -> {
200
196
  StatementMapper.InsertSpec insert = r2dbcEntityTemplate
201
197
  .getDataAccessStrategy()
202
198
  .getStatementMapper()
@@ -214,7 +210,7 @@ public class EntityManager {
214
210
  .map((List<Integer> updates) -> updates.stream().reduce(Integer::sum).orElse(0)));
215
211
  }
216
212
 
217
- public Mono<Void> deleteFromLinkTable(LinkTable table, Long entityId) {
213
+ public Mono<Void> deleteFromLinkTable(LinkTable table, Object entityId) {
218
214
  Assert.notNull(entityId, "entityId is null");
219
215
  StatementMapper.DeleteSpec deleteSpec = r2dbcEntityTemplate.getDataAccessStrategy().getStatementMapper()
220
216
  .createDelete(table.tableName)
@@ -222,6 +218,21 @@ public class EntityManager {
222
218
  return r2dbcEntityTemplate.getDatabaseClient().sql(statementMapper.getMappedObject(deleteSpec)).then();
223
219
  }
224
220
 
221
+ private String createSelectImpl(SelectOrdered selectFrom, Class<?> entityType, Sort sortParameter) {
222
+ if (sortParameter != null && sortParameter.isSorted()) {
223
+ RelationalPersistentEntity<?> entity = getPersistentEntity(entityType);
224
+ if (entity != null) {
225
+ Sort sort = updateMapper.getMappedObject(sortParameter, entity);
226
+ selectFrom = selectFrom.orderBy(createOrderByFields(Table.create(entity.getTableName()).as(EntityManager.ENTITY_ALIAS), sort));
227
+ }
228
+ }
229
+ return createSelect(selectFrom.build());
230
+ }
231
+
232
+ private RelationalPersistentEntity<?> getPersistentEntity(Class<?> entityType) {
233
+ return r2dbcEntityTemplate.getConverter().getMappingContext().getPersistentEntity(entityType);
234
+ }
235
+
225
236
  private static Collection<? extends OrderByField> createOrderByFields(Table table, Sort sortToUse) {
226
237
 
227
238
  List<OrderByField> fields = new ArrayList<>();
@@ -236,5 +247,4 @@ public class EntityManager {
236
247
 
237
248
  return fields;
238
249
  }
239
-
240
250
  }
@@ -64,7 +64,7 @@ _%>
64
64
  # - JHIPSTER_CACHE_REDIS_CLUSTER=true
65
65
  <%_ } _%>
66
66
  <%_ if (authenticationTypeOauth2) { _%>
67
- - SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI=http://keycloak:9080/auth/realms/jhipster
67
+ - SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI=http://keycloak:9080/realms/jhipster
68
68
  <%_ if (applicationTypeGateway || applicationTypeMonolith) { _%>
69
69
  - SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_ID=web_app
70
70
  - SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_SECRET=web_app
@@ -77,11 +77,7 @@ _%>
77
77
  <%_ if (databaseTypeCassandra) { _%>
78
78
  - SPRING_DATA_CASSANDRA_CONTACTPOINTS=<%= baseName.toLowerCase() %>-cassandra
79
79
  <%_ } _%>
80
- <%_ if (prodDatabaseTypeMariadb) { _%>
81
- - JHIPSTER_SLEEP=120 # gives time for mariadb server to start
82
- <%_ } else if (prodDatabaseTypeMssql) { _%>
83
- - JHIPSTER_SLEEP=60 # gives time for mssql server to start
84
- <%_ } else if (applicationTypeGateway) { _%>
80
+ <%_ if (applicationTypeGateway) { _%>
85
81
  - JHIPSTER_SLEEP=60 # gives time for microservices to boot before the gateway, the entire stack will be ready to accept incomming requests.
86
82
  <%_ } else { _%>
87
83
  - JHIPSTER_SLEEP=30 # gives time for other services to boot before the application
@@ -90,7 +86,7 @@ _%>
90
86
  - SPRING_ELASTICSEARCH_URIS=http://<%= baseName.toLowerCase() %>-elasticsearch:9200
91
87
  <%_ } _%>
92
88
  <%_ if (messageBrokerKafka) { _%>
93
- - KAFKA_BOOTSTRAPSERVERS=kafka:9092
89
+ - SPRING_CLOUD_STREAM_KAFKA_BINDER_BROKERS=kafka:9092
94
90
  <%_ } _%>
95
91
  <%_ if (cacheProviderInfinispan) { _%>
96
92
  - JAVA_OPTS=-Djgroups.tcp.address=NON_LOOPBACK -Djava.net.preferIPv4Stack=true
@@ -106,6 +102,8 @@ _%>
106
102
  image: <%= DOCKER_MYSQL %>
107
103
  # volumes:
108
104
  # - ~/volumes/jhipster/<%= baseName %>/mysql/:/var/lib/mysql/
105
+ volumes:
106
+ - ./config/mysql:/etc/mysql/conf.d
109
107
  environment:
110
108
  - MYSQL_ALLOW_EMPTY_PASSWORD=yes
111
109
  - MYSQL_DATABASE=<%= baseName.toLowerCase() %>
@@ -120,6 +118,8 @@ _%>
120
118
  image: <%= DOCKER_MARIADB %>
121
119
  # volumes:
122
120
  # - ~/volumes/jhipster/<%= baseName %>/mysql/:/var/lib/mysql/
121
+ volumes:
122
+ - ./config/mariadb:/etc/mysql/conf.d
123
123
  environment:
124
124
  - MYSQL_ALLOW_EMPTY_PASSWORD=yes
125
125
  - MYSQL_DATABASE=<%= baseName.toLowerCase() %>
@@ -215,10 +215,6 @@ _%>
215
215
  - 127.0.0.1:7199:7199
216
216
  - 127.0.0.1:9042:9042
217
217
  - 127.0.0.1:9160:9160
218
- <%= baseName.toLowerCase() %>-cassandra-node:
219
- image: <%= DOCKER_CASSANDRA %>
220
- environment:
221
- - CASSANDRA_SEEDS=<%= baseName.toLowerCase() %>-cassandra
222
218
  <%= baseName.toLowerCase() %>-cassandra-migration:
223
219
  environment:
224
220
  - CASSANDRA_CONTACT_POINT=<%= baseName.toLowerCase() %>-cassandra
@@ -258,7 +254,7 @@ _%>
258
254
  - 127.0.0.1:9200:9200
259
255
  - 127.0.0.1:9300:9300
260
256
  environment:
261
- - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
257
+ - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
262
258
  - "discovery.type=single-node"
263
259
  <%_ } _%>
264
260
  <%_ if (messageBrokerKafka) { _%>
@@ -298,13 +294,13 @@ _%>
298
294
  - SPRING_SECURITY_USER_PASSWORD=admin
299
295
  - JHIPSTER_REGISTRY_PASSWORD=admin
300
296
  - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_TYPE=native
301
- - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_SEARCH_LOCATIONS=file:./central-config/localhost-config/
297
+ - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_SEARCH_LOCATIONS=file:./central-config/docker-config/
302
298
  # - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_TYPE=git
303
299
  # - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_URI=https://github.com/jhipster/jhipster-registry/
304
300
  # - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_SEARCH_PATHS=central-config
305
301
  <%_ if (authenticationTypeOauth2) { _%>
306
302
  # For keycloak to work, you need to add '127.0.0.1 keycloak' to your hosts file
307
- - SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI=http://keycloak:9080/auth/realms/jhipster
303
+ - SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI=http://keycloak:9080/realms/jhipster
308
304
  - SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_ID=jhipster-registry
309
305
  - SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_SECRET=jhipster-registry
310
306
  <%_ } _%>
@@ -340,17 +336,19 @@ _%>
340
336
  <%_ if (authenticationTypeOauth2 && !applicationTypeMicroservice) { _%>
341
337
  keycloak:
342
338
  image: <%= DOCKER_KEYCLOAK %>
343
- command: ["-b", "0.0.0.0", "-Dkeycloak.migration.action=import", "-Dkeycloak.migration.provider=dir", "-Dkeycloak.migration.dir=/opt/jboss/keycloak/realm-config", "-Dkeycloak.migration.strategy=OVERWRITE_EXISTING", "-Djboss.socket.binding.port-offset=1000", "-Dkeycloak.profile.feature.upload_scripts=enabled"]
339
+ command: ['start-dev --import-realm']
344
340
  volumes:
345
- - ./realm-config:/opt/jboss/keycloak/realm-config
341
+ - ./realm-config:/opt/keycloak/data/import
346
342
  environment:
347
- - KEYCLOAK_USER=admin
348
- - KEYCLOAK_PASSWORD=admin
349
- - DB_VENDOR=h2
343
+ - KC_DB=dev-file
344
+ - KEYCLOAK_ADMIN=admin
345
+ - KEYCLOAK_ADMIN_PASSWORD=admin
346
+ - KC_FEATURES=scripts
347
+ - KC_HTTP_PORT=9080
348
+ - KC_HTTPS_PORT=9443
350
349
  # If you want to expose these ports outside your dev PC,
351
350
  # remove the "127.0.0.1:" prefix
352
351
  ports:
353
352
  - 127.0.0.1:9080:9080
354
353
  - 127.0.0.1:9443:9443
355
- - 127.0.0.1:10990:10990
356
354
  <%_ } _%>
@@ -23,6 +23,7 @@ services:
23
23
  - CASSANDRA_CONTACT_POINT=<%= baseName.toLowerCase() %>-cassandra
24
24
  - USER=docker-cassandra-migration
25
25
  # - DEBUG_LOG=1 # uncomment to show debug logs during the migration process
26
+ - CREATE_KEYSPACE_SCRIPT=create-keyspace.cql
26
27
  build:
27
28
  context: .
28
29
  dockerfile: cassandra/Cassandra-Migration.Dockerfile
@@ -859,8 +859,7 @@
859
859
  "offline_access",
860
860
  "microprofile-jwt"
861
861
  ]
862
- },
863
- <%_ if (serviceDiscoveryEureka) { _%>
862
+ },<% if (serviceDiscoveryEureka) { %>
864
863
  {
865
864
  "id": "9057870f-8775-448d-a194-1d4e122f44d5",
866
865
  "clientId": "jhipster-registry",
@@ -920,8 +919,7 @@
920
919
  "offline_access",
921
920
  "microprofile-jwt"
922
921
  ]
923
- },
924
- <%_ } _%>
922
+ },<% } %>
925
923
  {
926
924
  "id": "898488c8-e260-41c5-a463-7ceea14d587a",
927
925
  "clientId": "realm-management",
@@ -1038,7 +1036,8 @@
1038
1036
  "http://127.0.0.1:*",
1039
1037
  "http://localhost:*",
1040
1038
  "https://127.0.0.1:*",
1041
- "https://localhost:*"
1039
+ "https://localhost:*",
1040
+ "https://oauth.pstmn.io/v1/callback"
1042
1041
  ],
1043
1042
  "webOrigins": [
1044
1043
  "*"
@@ -2491,12 +2490,70 @@
2491
2490
  "clientOfflineSessionIdleTimeout": "0",
2492
2491
  "cibaInterval": "5"
2493
2492
  },
2494
- "keycloakVersion": "16.1.0",
2493
+ "keycloakVersion": "<%= DOCKER_KEYCLOAK_VERSION %>",
2495
2494
  "userManagedAccessAllowed": false,
2496
2495
  "clientProfiles": {
2497
2496
  "profiles": []
2498
2497
  },
2499
2498
  "clientPolicies": {
2500
2499
  "policies": []
2501
- }
2500
+ },
2501
+ "users": [
2502
+ {
2503
+ "id": "4c973896-5761-41fc-8217-07c5d13a004b",
2504
+ "createdTimestamp": 1505479415590,
2505
+ "username": "admin",
2506
+ "enabled": true,
2507
+ "totp": false,
2508
+ "emailVerified": true,
2509
+ "firstName": "Admin",
2510
+ "lastName": "Administrator",
2511
+ "email": "admin@localhost",
2512
+ "credentials": [
2513
+ {
2514
+ "id": "b860462b-9b02-48ba-9523-d3a8926a917b",
2515
+ "type": "password",
2516
+ "createdDate": 1505479429154,
2517
+ "secretData": "{\"value\":\"4pf9K2jWSCcHC+CwsZP/qidN5pSmDUe6AX6wBerSGdBVKkExay8MWKx+EKmaaObZW6FVsD8vdW/ZsyUFD9gJ1Q==\",\"salt\":\"1/qNkZ5kr77jOMOBPBogGw==\"}",
2518
+ "credentialData": "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}"
2519
+ }
2520
+ ],
2521
+ "disableableCredentialTypes": [],
2522
+ "requiredActions": [],
2523
+ "realmRoles": ["offline_access", "uma_authorization"],
2524
+ "clientRoles": {
2525
+ "account": ["view-profile", "manage-account"]
2526
+ },
2527
+ "notBefore": 0,
2528
+ "groups": ["/Admins", "/Users"]
2529
+ },
2530
+ {
2531
+ "id": "c4af4e2f-b432-4c3b-8405-cca86cd5b97b",
2532
+ "createdTimestamp": 1505479373742,
2533
+ "username": "user",
2534
+ "enabled": true,
2535
+ "totp": false,
2536
+ "emailVerified": true,
2537
+ "firstName": "",
2538
+ "lastName": "User",
2539
+ "email": "user@localhost",
2540
+ "credentials": [
2541
+ {
2542
+ "id": "7821832b-1e82-45a2-b8d3-f1a6ad909e64",
2543
+ "type": "password",
2544
+ "createdDate": 1505479392766,
2545
+ "secretData": "{\"value\":\"MbKsMgWPnZyImih8s4SaoCSCq+XIY/c6S9F93sXEidHF1TjPWxCqMkec0+o3860CMLXHt3az61cIJOWI0FW9aw==\",\"salt\":\"fmpBI1r8R1u75hDLMUlwBw==\"}",
2546
+ "credentialData": "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}"
2547
+ }
2548
+ ],
2549
+ "disableableCredentialTypes": [],
2550
+ "requiredActions": [],
2551
+ "realmRoles": ["offline_access", "uma_authorization"],
2552
+ "clientRoles": {
2553
+ "account": ["view-profile", "manage-account"]
2554
+ },
2555
+ "notBefore": 0,
2556
+ "groups": ["/Users"]
2557
+ }
2558
+ ]
2502
2559
  }
@@ -68,7 +68,7 @@ services:
68
68
  - JHIPSTER_SECURITY_AUTHENTICATION_JWT_BASE64_SECRET=<%= jwtSecretKey %>
69
69
  <%_ } else if (authenticationTypeOauth2) { _%>
70
70
  # For keycloak to work, you need to add '127.0.0.1 keycloak' to your hosts file
71
- - SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI=http://keycloak:9080/auth/realms/jhipster
71
+ - SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI=http://keycloak:9080/realms/jhipster
72
72
  - SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_ID=jhipster-control-center
73
73
  - SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_SECRET=jhipster-control-center
74
74
  <%_ } _%>
@@ -39,7 +39,7 @@ services:
39
39
  # - SPRING_CLOUD_CONFIG_SERVER_COMPOSITE_0_SEARCH_PATHS=central-config
40
40
  <%_ if (authenticationTypeOauth2) { _%>
41
41
  # For keycloak to work, you need to add '127.0.0.1 keycloak' to your hosts file
42
- - SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI=http://keycloak:9080/auth/realms/jhipster
42
+ - SPRING_SECURITY_OAUTH2_CLIENT_PROVIDER_OIDC_ISSUER_URI=http://keycloak:9080/realms/jhipster
43
43
  - SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_ID=jhipster-registry
44
44
  - SPRING_SECURITY_OAUTH2_CLIENT_REGISTRATION_OIDC_CLIENT_SECRET=jhipster-registry
45
45
  <%_ } _%>
@@ -1,4 +1,39 @@
1
- #!/bin/sh
1
+ #!/bin/bash
2
2
 
3
3
  echo "The application will start in ${JHIPSTER_SLEEP}s..." && sleep ${JHIPSTER_SLEEP}
4
+
5
+ # usage: file_env VAR [DEFAULT]
6
+ # ie: file_env 'XYZ_DB_PASSWORD' 'example'
7
+ # (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
8
+ # "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
9
+ file_env() {
10
+ local var="$1"
11
+ local fileVar="${var}_FILE"
12
+ local def="${2:-}"
13
+ if [[ ${!var:-} && ${!fileVar:-} ]]; then
14
+ echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
15
+ exit 1
16
+ fi
17
+ local val="$def"
18
+ if [[ ${!var:-} ]]; then
19
+ val="${!var}"
20
+ elif [[ ${!fileVar:-} ]]; then
21
+ val="$(< "${!fileVar}")"
22
+ fi
23
+
24
+ if [[ -n $val ]]; then
25
+ export "$var"="$val"
26
+ fi
27
+
28
+ unset "$fileVar"
29
+ }
30
+
31
+ file_env 'SPRING_DATASOURCE_URL'
32
+ file_env 'SPRING_DATASOURCE_USERNAME'
33
+ file_env 'SPRING_DATASOURCE_PASSWORD'
34
+ file_env 'SPRING_LIQUIBASE_URL'
35
+ file_env 'SPRING_LIQUIBASE_USER'
36
+ file_env 'SPRING_LIQUIBASE_PASSWORD'
37
+ file_env 'JHIPSTER_REGISTRY_PASSWORD'
38
+
4
39
  exec java ${JAVA_OPTS} -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "<%= packageName %>.<%= mainClass %>" "$@"