generator-jhipster 8.2.1 → 8.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 (478) hide show
  1. package/dist/cli/environment-builder.mjs +3 -3
  2. package/dist/cli/jhipster-command.mjs +1 -2
  3. package/dist/cli/jhipster.cjs +0 -0
  4. package/dist/generators/angular/command.js +5 -0
  5. package/dist/generators/angular/generator.js +70 -9
  6. package/dist/generators/angular/index.js +1 -0
  7. package/dist/generators/angular/needle-api/needle-client-angular.js +3 -3
  8. package/dist/generators/angular/resources/package.json +15 -12
  9. package/dist/generators/angular/support/index.js +0 -1
  10. package/dist/generators/angular/support/translate-angular.js +142 -8
  11. package/dist/generators/angular/templates/package.json.ejs +0 -10
  12. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.html.ejs +4 -4
  13. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.ts.ejs +1 -1
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.html.ejs +1 -1
  15. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password-strength-bar/password-strength-bar.component.ts.ejs +1 -1
  16. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.html.ejs +19 -27
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/password/password.component.ts.ejs +1 -1
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +19 -26
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.ts.ejs +1 -1
  20. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +11 -16
  21. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts.ejs +1 -1
  22. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +32 -47
  23. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.ts.ejs +1 -1
  24. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.html.ejs +7 -8
  25. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.ts.ejs +1 -1
  26. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +21 -32
  27. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.ts.ejs +1 -1
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +4 -4
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.service.ts.ejs +1 -1
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +7 -7
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.html.ejs +7 -12
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.model.ts.ejs +9 -5
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +5 -9
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.html.ejs +5 -5
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +3 -3
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.ts.ejs +3 -3
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-threads/jvm-threads.component.html.ejs +5 -5
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +12 -12
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.ts.ejs +4 -4
  40. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +36 -36
  41. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.ts.ejs +4 -4
  42. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +2 -2
  43. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.ts.ejs +3 -3
  44. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +33 -33
  45. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.ts.ejs +3 -3
  46. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +8 -8
  47. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +8 -8
  48. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.ts.ejs +4 -4
  49. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +13 -13
  50. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.ts.ejs +3 -3
  51. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +4 -4
  52. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +6 -6
  53. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.ts.ejs +2 -1
  54. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +4 -4
  55. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +26 -26
  56. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.spec.ts.ejs +3 -3
  57. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.ts.ejs +2 -2
  58. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +16 -18
  59. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.spec.ts.ejs +1 -2
  60. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +21 -35
  61. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +1 -1
  62. package/dist/generators/angular/templates/src/main/webapp/app/core/auth/account.service.spec.ts.ejs +0 -2
  63. package/dist/generators/angular/templates/src/main/webapp/app/core/tracker/tracker.service.ts.ejs +7 -7
  64. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +4 -4
  65. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +25 -25
  66. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.spec.ts.ejs +3 -3
  67. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.ts.ejs +2 -2
  68. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +14 -14
  69. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.spec.ts.ejs +0 -2
  70. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/route/_entityFile_-routing-resolve.service.spec.ts.ejs +1 -2
  71. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.ts.ejs +10 -6
  72. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +18 -25
  73. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +0 -2
  74. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +14 -15
  75. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.spec.ts.ejs +1 -5
  76. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +1 -1
  77. package/dist/generators/angular/templates/src/main/webapp/app/layouts/footer/footer.component.html.ejs +1 -1
  78. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +11 -18
  79. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
  80. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +21 -21
  81. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +0 -2
  82. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
  83. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +12 -13
  84. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +1 -2
  85. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +1 -1
  86. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +3 -3
  87. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.ts.ejs +1 -1
  88. package/dist/generators/angular/templates/webpack/webpack.custom.js.ejs +1 -1
  89. package/dist/generators/app/generator.js +4 -22
  90. package/dist/generators/app/support/config.js +1 -3
  91. package/dist/generators/base/generator.js +21 -2
  92. package/dist/generators/base/shared-data.js +1 -2
  93. package/dist/generators/base/support/basename.js +1 -2
  94. package/dist/generators/base/support/needles.js +3 -5
  95. package/dist/generators/base/support/string.js +2 -2
  96. package/dist/generators/base-application/generator.js +4 -4
  97. package/dist/generators/base-application/support/entity.js +1 -2
  98. package/dist/generators/base-application/support/enum.js +2 -2
  99. package/dist/generators/base-application/support/prepare-entity.js +1 -1
  100. package/dist/generators/base-application/support/prepare-field.js +6 -7
  101. package/dist/generators/base-application/support/relationship.js +1 -2
  102. package/dist/generators/base-application/support/task-type-inference.js +6 -0
  103. package/dist/generators/base-core/generator.js +86 -14
  104. package/dist/generators/base-entity-changes/generator.js +24 -0
  105. package/dist/generators/base-workspaces/internal/deployments.js +2 -2
  106. package/dist/generators/base-workspaces/internal/docker-dependencies.js +2 -2
  107. package/dist/generators/bootstrap/generator.js +4 -5
  108. package/dist/generators/bootstrap/internal/transform-utils.js +4 -0
  109. package/dist/generators/bootstrap/support/eslint-transform.js +2 -1
  110. package/dist/generators/bootstrap/support/java-unused-imports-transform.js +2 -1
  111. package/dist/generators/bootstrap/support/prettier-worker.js +2 -4
  112. package/dist/generators/bootstrap-application/generator.js +3 -4
  113. package/dist/generators/bootstrap-application-base/generator.js +46 -6
  114. package/dist/generators/bootstrap-application-base/utils.js +3 -3
  115. package/dist/generators/bootstrap-application-client/generator.js +2 -3
  116. package/dist/generators/bootstrap-application-server/generator.js +22 -19
  117. package/dist/generators/bootstrap-workspaces/generator.js +1 -2
  118. package/dist/generators/ci-cd/command.js +1 -2
  119. package/dist/generators/ci-cd/generator.js +2 -7
  120. package/dist/generators/client/command.js +1 -2
  121. package/dist/generators/client/generator.js +11 -33
  122. package/dist/generators/client/needle-api/needle-client-vue.js +2 -2
  123. package/dist/generators/client/resources/package.json +6 -6
  124. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +2 -2
  125. package/dist/generators/common/command.js +13 -0
  126. package/dist/generators/common/generator.js +17 -8
  127. package/dist/generators/common/resources/package.json +1 -1
  128. package/dist/generators/cucumber/generator.js +17 -10
  129. package/dist/generators/cucumber/templates/buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle.ejs +1 -5
  130. package/dist/generators/cypress/generator.js +2 -3
  131. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/administration/administration.cy.ts.ejs +10 -0
  132. package/dist/generators/docker/generator.js +4 -6
  133. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +0 -32
  134. package/dist/generators/docker/utils.js +2 -3
  135. package/dist/generators/docker-compose/generator.js +5 -10
  136. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +0 -32
  137. package/dist/generators/entities/generator.js +4 -4
  138. package/dist/generators/entity/generator.js +10 -9
  139. package/dist/generators/entity/prompts.js +12 -12
  140. package/dist/generators/export-jdl/generator.js +0 -5
  141. package/dist/generators/feign-client/generator.js +3 -4
  142. package/dist/generators/gatling/generator.js +2 -3
  143. package/dist/generators/gatling/templates/buildSrc/src/main/groovy/jhipster.gatling-conventions.gradle.ejs +1 -1
  144. package/dist/generators/generate-blueprint/files.js +1 -0
  145. package/dist/generators/generate-blueprint/generator.js +3 -4
  146. package/dist/generators/generate-blueprint/resources/package.json +1 -1
  147. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +3 -2
  148. package/dist/generators/generate-blueprint/templates/generators/generator/command.mjs.ejs +19 -1
  149. package/dist/generators/generate-blueprint/templates/vitest.test-setup.ts.ejs +6 -0
  150. package/dist/generators/generator-constants.js +5 -2
  151. package/dist/generators/git/generator.js +3 -5
  152. package/dist/generators/gradle/command.js +32 -0
  153. package/dist/generators/gradle/constants.js +0 -1
  154. package/dist/generators/gradle/files.js +2 -8
  155. package/dist/generators/gradle/generator.js +85 -13
  156. package/dist/generators/gradle/generators/code-quality/generator.js +86 -0
  157. package/dist/generators/{java/cleanup.js → gradle/generators/code-quality/index.js} +1 -5
  158. package/dist/generators/gradle/generators/jib/generator.js +64 -0
  159. package/dist/generators/{app/prompts.js → gradle/generators/jib/index.js} +1 -15
  160. package/dist/generators/gradle/generators/node-gradle/generator.js +64 -0
  161. package/dist/generators/gradle/generators/node-gradle/index.js +19 -0
  162. package/dist/generators/gradle/generators/node-gradle/templates/buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle.ejs +101 -0
  163. package/dist/generators/gradle/index.js +1 -0
  164. package/dist/generators/gradle/internal/needles.js +9 -3
  165. package/dist/generators/gradle/templates/buildSrc/build.gradle.ejs +3 -2
  166. package/dist/generators/gradle/templates/buildSrc/gradle/libs.versions.toml.ejs +8 -1
  167. package/dist/generators/gradle/templates/gradle/wrapper/{gradle-wrapper.properties.ejs → gradle-wrapper.properties} +1 -1
  168. package/dist/generators/heroku/generator.js +2 -7
  169. package/dist/generators/init/generator.js +3 -4
  170. package/dist/generators/init/resources/.node-version +1 -0
  171. package/dist/generators/java/command.js +2 -38
  172. package/dist/generators/java/generator.js +5 -260
  173. package/dist/generators/java/generators/bootstrap/command.js +35 -0
  174. package/dist/generators/java/generators/bootstrap/generator.js +178 -0
  175. package/dist/generators/java/generators/bootstrap/index.js +20 -0
  176. package/dist/generators/java/generators/build-tool/command.js +42 -0
  177. package/dist/generators/java/generators/build-tool/generator.js +143 -0
  178. package/dist/generators/java/generators/build-tool/index.js +20 -0
  179. package/dist/generators/java/generators/code-quality/command.js +5 -0
  180. package/dist/generators/java/generators/code-quality/generator.js +91 -0
  181. package/dist/generators/java/generators/code-quality/index.js +20 -0
  182. package/dist/generators/java/generators/domain/command.js +30 -0
  183. package/dist/generators/java/{entity-files.js → generators/domain/entity-files.js} +1 -1
  184. package/dist/generators/java/generators/domain/generator.js +169 -0
  185. package/dist/generators/java/generators/domain/index.js +20 -0
  186. package/dist/generators/java/generators/jib/command.js +5 -0
  187. package/dist/generators/java/generators/jib/generator.js +97 -0
  188. package/dist/generators/java/generators/jib/index.js +20 -0
  189. package/dist/generators/{server → java/generators/jib}/templates/src/main/docker/jib/entrypoint.sh.ejs +2 -0
  190. package/dist/generators/java/generators/node/command.js +5 -0
  191. package/dist/generators/java/generators/node/generator.js +97 -0
  192. package/dist/generators/java/generators/node/index.js +20 -0
  193. package/dist/generators/java/support/index.js +1 -0
  194. package/dist/generators/jdl/generator.js +6 -13
  195. package/dist/generators/kubernetes/generator.js +1 -6
  196. package/dist/generators/kubernetes/kubernetes-base.js +3 -3
  197. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +0 -32
  198. package/dist/generators/kubernetes-helm/generator.js +1 -6
  199. package/dist/generators/kubernetes-knative/generator.js +1 -6
  200. package/dist/generators/languages/entity-files.js +3 -2
  201. package/dist/generators/languages/files.js +2 -2
  202. package/dist/generators/languages/generator.js +6 -15
  203. package/dist/generators/languages/support/translate.js +34 -9
  204. package/dist/generators/languages/templates/src/main/webapp/i18n/al/home.json.ejs +19 -0
  205. package/dist/generators/languages/templates/src/main/webapp/i18n/ar-ly/home.json.ejs +19 -0
  206. package/dist/generators/languages/templates/src/main/webapp/i18n/az-Latn-az/home.json.ejs +19 -0
  207. package/dist/generators/languages/templates/src/main/webapp/i18n/bg/home.json.ejs +19 -0
  208. package/dist/generators/languages/templates/src/main/webapp/i18n/bn/home.json.ejs +19 -0
  209. package/dist/generators/languages/templates/src/main/webapp/i18n/by/home.json.ejs +19 -0
  210. package/dist/generators/languages/templates/src/main/webapp/i18n/ca/home.json.ejs +19 -0
  211. package/dist/generators/languages/templates/src/main/webapp/i18n/cs/home.json.ejs +19 -0
  212. package/dist/generators/languages/templates/src/main/webapp/i18n/da/home.json.ejs +19 -0
  213. package/dist/generators/languages/templates/src/main/webapp/i18n/de/global.json.ejs +2 -2
  214. package/dist/generators/languages/templates/src/main/webapp/i18n/de/home.json.ejs +19 -0
  215. package/dist/generators/languages/templates/src/main/webapp/i18n/el/home.json.ejs +19 -0
  216. package/dist/generators/languages/templates/src/main/webapp/i18n/en/home.json.ejs +19 -0
  217. package/dist/generators/languages/templates/src/main/webapp/i18n/es/home.json.ejs +19 -0
  218. package/dist/generators/languages/templates/src/main/webapp/i18n/et/home.json.ejs +19 -0
  219. package/dist/generators/languages/templates/src/main/webapp/i18n/fa/home.json.ejs +19 -0
  220. package/dist/generators/languages/templates/src/main/webapp/i18n/fi/home.json.ejs +19 -0
  221. package/dist/generators/languages/templates/src/main/webapp/i18n/fr/home.json.ejs +19 -0
  222. package/dist/generators/languages/templates/src/main/webapp/i18n/gl/home.json.ejs +19 -0
  223. package/dist/generators/languages/templates/src/main/webapp/i18n/hi/home.json.ejs +19 -0
  224. package/dist/generators/languages/templates/src/main/webapp/i18n/hr/home.json.ejs +19 -0
  225. package/dist/generators/languages/templates/src/main/webapp/i18n/hu/home.json.ejs +19 -0
  226. package/dist/generators/languages/templates/src/main/webapp/i18n/hy/home.json.ejs +19 -0
  227. package/dist/generators/languages/templates/src/main/webapp/i18n/id/home.json.ejs +19 -0
  228. package/dist/generators/languages/templates/src/main/webapp/i18n/it/home.json.ejs +19 -0
  229. package/dist/generators/languages/templates/src/main/webapp/i18n/ja/home.json.ejs +19 -0
  230. package/dist/generators/languages/templates/src/main/webapp/i18n/ko/home.json.ejs +19 -0
  231. package/dist/generators/languages/templates/src/main/webapp/i18n/kr-Latn-kr/home.json.ejs +19 -0
  232. package/dist/generators/languages/templates/src/main/webapp/i18n/mr/home.json.ejs +19 -0
  233. package/dist/generators/languages/templates/src/main/webapp/i18n/my/home.json.ejs +19 -0
  234. package/dist/generators/languages/templates/src/main/webapp/i18n/nl/home.json.ejs +19 -0
  235. package/dist/generators/languages/templates/src/main/webapp/i18n/pa/{home.json → home.json.ejs} +2 -2
  236. package/dist/generators/languages/templates/src/main/webapp/i18n/pl/home.json.ejs +19 -0
  237. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-br/home.json.ejs +19 -0
  238. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-pt/home.json.ejs +19 -0
  239. package/dist/generators/languages/templates/src/main/webapp/i18n/ro/home.json.ejs +19 -0
  240. package/dist/generators/languages/templates/src/main/webapp/i18n/ru/home.json.ejs +19 -0
  241. package/dist/generators/languages/templates/src/main/webapp/i18n/si/{home.json → home.json.ejs} +6 -6
  242. package/dist/generators/languages/templates/src/main/webapp/i18n/sk/home.json.ejs +19 -0
  243. package/dist/generators/languages/templates/src/main/webapp/i18n/sr/home.json.ejs +19 -0
  244. package/dist/generators/languages/templates/src/main/webapp/i18n/sv/home.json.ejs +19 -0
  245. package/dist/generators/languages/templates/src/main/webapp/i18n/ta/home.json.ejs +19 -0
  246. package/dist/generators/languages/templates/src/main/webapp/i18n/te/{home.json → home.json.ejs} +1 -1
  247. package/dist/generators/languages/templates/src/main/webapp/i18n/th/home.json.ejs +19 -0
  248. package/dist/generators/languages/templates/src/main/webapp/i18n/tr/home.json.ejs +19 -0
  249. package/dist/generators/languages/templates/src/main/webapp/i18n/ua/home.json.ejs +19 -0
  250. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/home.json.ejs +19 -0
  251. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/home.json.ejs +19 -0
  252. package/dist/generators/languages/templates/src/main/webapp/i18n/vi/home.json.ejs +19 -0
  253. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-cn/home.json.ejs +19 -0
  254. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-tw/home.json.ejs +19 -0
  255. package/dist/generators/languages/translation-data.js +4 -5
  256. package/dist/generators/liquibase/generator.js +126 -36
  257. package/dist/generators/liquibase/support/maven-plugin.js +6 -0
  258. package/dist/generators/liquibase/support/prepare-field.js +16 -1
  259. package/dist/generators/liquibase/support/relationship.js +1 -0
  260. package/dist/generators/liquibase/templates/gradle/liquibase.gradle.ejs +3 -6
  261. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/added_entity.xml.ejs +1 -1
  262. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity.xml.ejs +3 -3
  263. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/changelog/updated_entity_constraints.xml.ejs +26 -1
  264. package/dist/generators/liquibase/templates/src/main/resources/config/liquibase/fake-data/table_entity.csv.ejs +3 -3
  265. package/dist/generators/maven/generator.js +14 -6
  266. package/dist/generators/maven/generators/code-quality/command.js +5 -0
  267. package/dist/generators/maven/generators/code-quality/generator.js +268 -0
  268. package/dist/generators/maven/generators/code-quality/index.js +20 -0
  269. package/dist/generators/maven/generators/frontend-plugin/command.js +5 -0
  270. package/dist/generators/maven/generators/frontend-plugin/generator.js +295 -0
  271. package/dist/generators/maven/generators/frontend-plugin/index.js +20 -0
  272. package/dist/generators/maven/generators/jib/command.js +5 -0
  273. package/dist/generators/maven/generators/jib/generator.js +136 -0
  274. package/dist/generators/maven/generators/jib/index.js +20 -0
  275. package/dist/generators/maven/internal/xml-store.js +1 -2
  276. package/dist/generators/maven/support/dependabot-maven.js +12 -2
  277. package/dist/generators/maven/support/pom-store.js +1 -2
  278. package/dist/generators/project-name/generator.js +9 -11
  279. package/dist/generators/react/generator.js +25 -6
  280. package/dist/generators/react/needle-api/needle-client-react.js +2 -2
  281. package/dist/generators/react/resources/package.json +27 -24
  282. package/dist/generators/react/templates/package.json.ejs +1 -7
  283. package/dist/generators/react/templates/src/main/webapp/app/modules/administration/tracker/tracker.tsx.ejs +2 -2
  284. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +7 -7
  285. package/dist/generators/react/templates/webpack/webpack.microfrontend.js.jhi.react.ejs +0 -8
  286. package/dist/generators/server/command.js +2 -34
  287. package/dist/generators/server/generator.js +35 -204
  288. package/dist/generators/server/jdl/application-definition.js +1 -2
  289. package/dist/generators/server/resources/Dockerfile +13 -13
  290. package/dist/generators/server/resources/build.gradle +1 -0
  291. package/dist/generators/server/resources/gradle/libs.versions.toml +27 -9
  292. package/dist/generators/server/resources/pom.xml +9 -27
  293. package/dist/generators/server/support/prepare-field.js +8 -4
  294. package/dist/generators/server/support/prepare-relationship.js +7 -2
  295. package/dist/generators/server/templates/build.gradle.ejs +29 -143
  296. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -3
  297. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +2 -2
  298. package/dist/generators/server/templates/gradle.properties.ejs +0 -7
  299. package/dist/generators/server/templates/pom.xml.ejs +23 -448
  300. package/dist/generators/server/templates/settings.gradle.ejs +0 -4
  301. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +71 -9
  302. package/dist/generators/server/templates/src/main/java/_package_/web/filter/SpaWebFilter_imperative.java.ejs +4 -1
  303. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +16 -5
  304. package/dist/generators/server/templates/src/main/resources/config/bootstrap.yml.ejs +1 -1
  305. package/dist/generators/server/templates/src/main/resources/static/index_microservices.html.ejs +8 -8
  306. package/dist/generators/server/templates/src/test/java/_package_/IntegrationTest.java.ejs +0 -2
  307. package/dist/generators/server/templates/src/test/java/_package_/config/TestContainersSpringContextCustomizerFactory.java.ejs +71 -46
  308. package/dist/generators/server/templates/src/test/java/_package_/security/jwt/AuthenticationIntegrationTest.java.ejs +0 -3
  309. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +1 -1
  310. package/dist/generators/spring-boot/cleanup.js +3 -0
  311. package/dist/generators/spring-boot/command.js +40 -2
  312. package/dist/generators/spring-boot/entity-files.js +2 -2
  313. package/dist/generators/spring-boot/files.js +3 -43
  314. package/dist/generators/spring-boot/generator.js +115 -37
  315. package/dist/generators/{server → spring-boot}/prompts.js +6 -48
  316. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +125 -125
  317. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +2 -2
  318. package/dist/generators/spring-cache/generator.js +11 -6
  319. package/dist/generators/spring-cache/internal/dependencies.js +5 -0
  320. package/dist/generators/spring-cache/resources/build.gradle +1 -0
  321. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +15 -0
  322. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheConfiguration.java.ejs +4 -0
  323. package/dist/generators/spring-cache/templates/src/test/java/_package_/config/RedisTestContainersSpringContextCustomizerFactory.java.ejs +29 -13
  324. package/dist/generators/spring-cloud/generators/gateway/command.js +5 -0
  325. package/dist/generators/spring-cloud/generators/gateway/generator.js +146 -0
  326. package/dist/generators/spring-cloud/generators/gateway/index.js +20 -0
  327. package/dist/generators/spring-cloud-stream/generator.js +2 -3
  328. package/dist/generators/spring-cloud-stream/generators/kafka/generator.js +2 -2
  329. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/config/KafkaTestContainersSpringContextCustomizerFactory.java.ejs +28 -12
  330. package/dist/generators/spring-cloud-stream/generators/pulsar/generator.js +2 -2
  331. package/dist/generators/spring-cloud-stream/generators/pulsar/templates/src/test/java/_package_/config/PulsarTestContainersSpringContextCustomizerFactory.java.ejs +33 -17
  332. package/dist/generators/spring-data-cassandra/generator.js +5 -6
  333. package/dist/generators/spring-data-cassandra/templates/src/test/java/_package_/config/CassandraTestContainersSpringContextCustomizerFactory.java.ejs +33 -17
  334. package/dist/generators/spring-data-couchbase/generator.js +3 -4
  335. package/dist/generators/spring-data-elasticsearch/generator.js +3 -5
  336. package/dist/generators/spring-data-mongodb/generator.js +5 -5
  337. package/dist/generators/spring-data-neo4j/generator.js +11 -5
  338. package/dist/generators/spring-data-neo4j/templates/src/test/java/_package_/config/Neo4jTestContainersSpringContextCustomizerFactory.java.ejs +32 -16
  339. package/dist/generators/spring-data-relational/generator.js +6 -7
  340. package/dist/generators/spring-data-relational/support/h2-reserved-keywords.js +22 -0
  341. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +47 -32
  342. package/dist/generators/spring-websocket/generator.js +2 -3
  343. package/dist/generators/upgrade/generator.js +4 -7
  344. package/dist/generators/vue/generator.js +4 -4
  345. package/dist/generators/vue/resources/package.json +24 -21
  346. package/dist/generators/vue/templates/package.json.ejs +3 -3
  347. package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.spec.ts.ejs +1 -1
  348. package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.ts.ejs +1 -1
  349. package/dist/generators/vue/templates/src/main/webapp/app/account/change-password/change-password.vue.ejs +1 -1
  350. package/dist/generators/vue/templates/src/main/webapp/app/account/login-form/login-form.vue.ejs +1 -1
  351. package/dist/generators/vue/templates/src/main/webapp/app/account/register/register.vue.ejs +1 -1
  352. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/finish/reset-password-finish.vue.ejs +1 -1
  353. package/dist/generators/vue/templates/src/main/webapp/app/account/reset-password/init/reset-password-init.vue.ejs +1 -1
  354. package/dist/generators/vue/templates/src/main/webapp/app/account/settings/settings.vue.ejs +1 -1
  355. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +3 -3
  356. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.vue.ejs +2 -2
  357. package/dist/generators/vue/templates/src/main/webapp/app/admin/user-management/user-management-edit.vue.ejs +1 -1
  358. package/dist/generators/vue/templates/src/main/webapp/app/core/home/home.vue.ejs +7 -7
  359. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +1 -1
  360. package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +4 -3
  361. package/dist/generators/vue/templates/vite.config.mts.ejs +6 -0
  362. package/dist/generators/vue/templates/vitest.config.mts.ejs +1 -1
  363. package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +0 -9
  364. package/dist/generators/workspaces/generator.js +5 -4
  365. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +2 -2
  366. package/dist/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +3 -3
  367. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +2 -2
  368. package/dist/jdl/jdl-importer.js +1 -2
  369. package/dist/jdl/jhipster/default-application-options.js +1 -1
  370. package/dist/jdl/jhipster/field-types.js +2 -2
  371. package/dist/jdl/jhipster/relationship-types.js +1 -2
  372. package/dist/jdl/models/jdl-deployment.js +1 -2
  373. package/dist/jdl/parsing/api.js +2 -2
  374. package/dist/jdl/parsing/lexer/token-creator.js +1 -2
  375. package/dist/jdl/parsing/self-checks/parsing-system-checker.js +13 -13
  376. package/dist/jdl/parsing/validator.js +5 -5
  377. package/dist/testing/get-generator.js +1 -1
  378. package/dist/testing/helpers.js +34 -9
  379. package/dist/types/generators/angular/support/index.d.ts +0 -1
  380. package/dist/types/generators/angular/support/translate-angular.d.ts +7 -4
  381. package/dist/types/generators/app/support/config.d.ts +1 -1
  382. package/dist/types/generators/base/api.d.ts +8 -1
  383. package/dist/types/generators/base/generator.d.ts +1 -1
  384. package/dist/types/generators/base-application/generator.d.ts +4 -4
  385. package/dist/types/generators/base-application/support/task-type-inference.d.ts +3 -0
  386. package/dist/types/generators/base-application/support/update-application-entities-transform.d.ts +1 -1
  387. package/dist/types/generators/base-application/types.d.ts +15 -0
  388. package/dist/types/generators/base-core/generator.d.ts +33 -1
  389. package/dist/types/generators/base-entity-changes/types.d.ts +2 -0
  390. package/dist/types/generators/bootstrap/internal/transform-utils.d.ts +1 -0
  391. package/dist/types/generators/bootstrap/support/java-unused-imports-transform.d.ts +1 -1
  392. package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.ts +2 -2
  393. package/dist/types/generators/docker/utils.d.ts +7 -0
  394. package/dist/types/generators/generator-constants.d.ts +2 -20
  395. package/dist/types/generators/gradle/types.d.ts +21 -7
  396. package/dist/types/generators/java/support/index.d.ts +1 -0
  397. package/dist/types/generators/java/types.d.ts +37 -22
  398. package/dist/types/generators/languages/support/translate.d.ts +29 -0
  399. package/dist/types/generators/maven/support/dependabot-maven.d.ts +17 -1
  400. package/dist/types/generators/project-name/support/name-resolver.d.ts +1 -1
  401. package/dist/types/generators/server/types.d.ts +2 -0
  402. package/dist/types/generators/spring-data-relational/support/h2-reserved-keywords.d.ts +20 -0
  403. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +0 -18
  404. package/dist/types/testing/helpers.d.ts +6 -0
  405. package/dist/types/testing/support/matrix-utils.d.ts +1 -1
  406. package/package.json +19 -32
  407. package/dist/generators/java/files.js +0 -20
  408. package/dist/generators/languages/templates/src/main/webapp/i18n/al/home.json +0 -19
  409. package/dist/generators/languages/templates/src/main/webapp/i18n/ar-ly/home.json +0 -19
  410. package/dist/generators/languages/templates/src/main/webapp/i18n/az-Latn-az/home.json +0 -19
  411. package/dist/generators/languages/templates/src/main/webapp/i18n/bg/home.json +0 -19
  412. package/dist/generators/languages/templates/src/main/webapp/i18n/bn/home.json +0 -19
  413. package/dist/generators/languages/templates/src/main/webapp/i18n/by/home.json +0 -19
  414. package/dist/generators/languages/templates/src/main/webapp/i18n/ca/home.json +0 -19
  415. package/dist/generators/languages/templates/src/main/webapp/i18n/cs/home.json +0 -19
  416. package/dist/generators/languages/templates/src/main/webapp/i18n/da/home.json +0 -19
  417. package/dist/generators/languages/templates/src/main/webapp/i18n/de/home.json +0 -19
  418. package/dist/generators/languages/templates/src/main/webapp/i18n/el/home.json +0 -19
  419. package/dist/generators/languages/templates/src/main/webapp/i18n/en/home.json +0 -19
  420. package/dist/generators/languages/templates/src/main/webapp/i18n/es/home.json +0 -19
  421. package/dist/generators/languages/templates/src/main/webapp/i18n/et/home.json +0 -19
  422. package/dist/generators/languages/templates/src/main/webapp/i18n/fa/home.json +0 -19
  423. package/dist/generators/languages/templates/src/main/webapp/i18n/fi/home.json +0 -19
  424. package/dist/generators/languages/templates/src/main/webapp/i18n/fr/home.json +0 -19
  425. package/dist/generators/languages/templates/src/main/webapp/i18n/gl/home.json +0 -19
  426. package/dist/generators/languages/templates/src/main/webapp/i18n/hi/home.json +0 -19
  427. package/dist/generators/languages/templates/src/main/webapp/i18n/hr/home.json +0 -19
  428. package/dist/generators/languages/templates/src/main/webapp/i18n/hu/home.json +0 -19
  429. package/dist/generators/languages/templates/src/main/webapp/i18n/hy/home.json +0 -19
  430. package/dist/generators/languages/templates/src/main/webapp/i18n/id/home.json +0 -19
  431. package/dist/generators/languages/templates/src/main/webapp/i18n/it/home.json +0 -19
  432. package/dist/generators/languages/templates/src/main/webapp/i18n/ja/home.json +0 -19
  433. package/dist/generators/languages/templates/src/main/webapp/i18n/ko/home.json +0 -19
  434. package/dist/generators/languages/templates/src/main/webapp/i18n/kr-Latn-kr/home.json +0 -19
  435. package/dist/generators/languages/templates/src/main/webapp/i18n/mr/home.json +0 -19
  436. package/dist/generators/languages/templates/src/main/webapp/i18n/my/home.json +0 -19
  437. package/dist/generators/languages/templates/src/main/webapp/i18n/nl/home.json +0 -19
  438. package/dist/generators/languages/templates/src/main/webapp/i18n/pl/home.json +0 -19
  439. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-br/home.json +0 -19
  440. package/dist/generators/languages/templates/src/main/webapp/i18n/pt-pt/home.json +0 -19
  441. package/dist/generators/languages/templates/src/main/webapp/i18n/ro/home.json +0 -19
  442. package/dist/generators/languages/templates/src/main/webapp/i18n/ru/home.json +0 -19
  443. package/dist/generators/languages/templates/src/main/webapp/i18n/sk/home.json +0 -19
  444. package/dist/generators/languages/templates/src/main/webapp/i18n/sr/home.json +0 -19
  445. package/dist/generators/languages/templates/src/main/webapp/i18n/sv/home.json +0 -19
  446. package/dist/generators/languages/templates/src/main/webapp/i18n/ta/home.json +0 -19
  447. package/dist/generators/languages/templates/src/main/webapp/i18n/th/home.json +0 -19
  448. package/dist/generators/languages/templates/src/main/webapp/i18n/tr/home.json +0 -19
  449. package/dist/generators/languages/templates/src/main/webapp/i18n/ua/home.json +0 -19
  450. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/global.json +0 -148
  451. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Cyrl-uz/home.json +0 -19
  452. package/dist/generators/languages/templates/src/main/webapp/i18n/uz-Latn-uz/home.json +0 -19
  453. package/dist/generators/languages/templates/src/main/webapp/i18n/vi/home.json +0 -19
  454. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-cn/home.json +0 -19
  455. package/dist/generators/languages/templates/src/main/webapp/i18n/zh-tw/home.json +0 -19
  456. package/dist/generators/server/templates/src/main/java/_package_/config/LocaleConfiguration_imperative.java.ejs +0 -43
  457. package/dist/generators/server/templates/src/main/java/_package_/config/LocaleConfiguration_reactive.java.ejs +0 -184
  458. package/dist/generators/statistics.js +0 -223
  459. /package/dist/generators/{server → gradle/generators/code-quality}/templates/buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle.ejs +0 -0
  460. /package/dist/generators/{server → gradle/generators/jib}/templates/buildSrc/src/main/groovy/jhipster.docker-conventions.gradle.ejs +0 -0
  461. /package/dist/generators/java/{templates → generators/bootstrap/templates}/src/main/java/_package_/GeneratedByJHipster.java.ejs +0 -0
  462. /package/dist/generators/{server → java/generators/code-quality}/templates/checkstyle.xml.ejs +0 -0
  463. /package/dist/generators/java/{templates → generators/domain/templates}/_global_partials_entity_/field_validators.ejs +0 -0
  464. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +0 -0
  465. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +0 -0
  466. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jakarta_validation.ejs +0 -0
  467. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/enumeration/_enumName_.java.ejs +0 -0
  468. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +0 -0
  469. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +0 -0
  470. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_TestSamples.java.ejs +0 -0
  471. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/domain/AssertUtils.java.ejs +0 -0
  472. /package/dist/generators/{server → java/generators/node}/templates/npmw +0 -0
  473. /package/dist/generators/{server → java/generators/node}/templates/npmw.cmd +0 -0
  474. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/security/jwt/JWTRelayGatewayFilterFactory.java.ejs +0 -0
  475. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/filter/ModifyServersOpenApiFilter.java.ejs +0 -0
  476. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/rest/GatewayResource.java.ejs +0 -0
  477. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/rest/vm/RouteVM.java.ejs +0 -0
  478. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/test/java/_package_/web/filter/ModifyServersOpenApiFilterTest.java.ejs +0 -0
@@ -111,7 +111,7 @@ import <%= entityAbsolutePackage %>.service.criteria.<%= entityClass %>Criteria;
111
111
  import com.fasterxml.jackson.databind.ObjectMapper;
112
112
  <%_ if (searchEngineElasticsearch) { _%>
113
113
  import org.assertj.core.util.IterableUtil;
114
- import org.apache.commons.collections4.IterableUtils;
114
+ import org.springframework.data.util.Streamable;
115
115
  import java.util.concurrent.TimeUnit;
116
116
  <%_ } _%>
117
117
  <%_ if ((databaseTypeSql && reactive) || searchEngineElasticsearch) { _%>
@@ -1474,7 +1474,7 @@ _%>
1474
1474
  await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> {
1475
1475
  int searchDatabaseSizeAfter = IterableUtil.sizeOf(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>);
1476
1476
  assertThat(searchDatabaseSizeAfter).isEqualTo(searchDatabaseSizeBefore);
1477
- List<<%= persistClass %>> <%= entityInstance %>SearchList = IterableUtils.toList(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>);
1477
+ List<<%= persistClass %>> <%= entityInstance %>SearchList = Streamable.of(<%= entityInstance %>SearchRepository.findAll()<%= callListBlock %>).toList();
1478
1478
  <%= persistClass %> test<%= entityClass %>Search = <%= entityInstance %>SearchList.get(searchDatabaseSizeAfter - 1);
1479
1479
 
1480
1480
  <%_ if (reactive && databaseTypeSql) { _%>
@@ -17,7 +17,6 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import BaseApplicationGenerator from '../base-application/index.js';
20
- import { GENERATOR_SPRING_CACHE, GENERATOR_BOOTSTRAP_APPLICATION } from '../generator-list.js';
21
20
  import writeTask from './files.js';
22
21
  import cleanupTask from './cleanup.js';
23
22
  import { createNeedleCallback } from '../base/support/needles.js';
@@ -25,14 +24,17 @@ import { getCacheProviderMavenDefinition } from './internal/dependencies.js';
25
24
  export default class SpringCacheGenerator extends BaseApplicationGenerator {
26
25
  async beforeQueue() {
27
26
  if (!this.fromBlueprint) {
28
- await this.composeWithBlueprints(GENERATOR_SPRING_CACHE);
27
+ await this.composeWithBlueprints();
29
28
  }
30
29
  if (!this.delegateToBlueprint) {
31
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION);
30
+ await this.dependsOnBootstrapApplication();
32
31
  }
33
32
  }
34
33
  get preparing() {
35
34
  return this.asPreparingTaskGroup({
35
+ loadDependabot({ application }) {
36
+ this.loadJavaDependenciesFromGradleCatalog(application.javaDependencies, true);
37
+ },
36
38
  addNeedles({ source, application }) {
37
39
  if (application.cacheProviderEhcache ||
38
40
  application.cacheProviderCaffeine ||
@@ -120,17 +122,20 @@ export default class SpringCacheGenerator extends BaseApplicationGenerator {
120
122
  const { javaDependencies } = application;
121
123
  const { cacheProvider, enableHibernateCache } = application;
122
124
  const dependencies = [{ groupId: 'org.springframework.boot', artifactId: 'spring-boot-starter-cache' }];
125
+ const versions = [];
123
126
  const definition = getCacheProviderMavenDefinition(cacheProvider, javaDependencies);
127
+ versions.push(...(definition.base.versions ?? []));
124
128
  dependencies.push(...definition.base.dependencies);
125
129
  if (enableHibernateCache && definition.hibernateCache) {
130
+ versions.push(...(definition.hibernateCache.versions ?? []));
126
131
  dependencies.push(...definition.hibernateCache.dependencies);
127
132
  }
128
- source.addJavaDependencies?.(dependencies, { gradleFile: 'buildSrc/src/main/groovy/jhipster.spring-cache-conventions.gradle' });
133
+ source.addJavaDefinition?.({ dependencies, versions }, { gradleFile: 'buildSrc/src/main/groovy/jhipster.spring-cache-conventions.gradle' });
129
134
  },
130
135
  });
131
136
  }
132
137
  get [BaseApplicationGenerator.POST_WRITING]() {
133
- return this.asPostWritingTaskGroup(this.delegateTasksToBlueprint(() => this.postWriting));
138
+ return this.delegateTasksToBlueprint(() => this.postWriting);
134
139
  }
135
140
  get postWritingEntities() {
136
141
  return this.asPostWritingEntitiesTaskGroup({
@@ -147,6 +152,6 @@ export default class SpringCacheGenerator extends BaseApplicationGenerator {
147
152
  });
148
153
  }
149
154
  get [BaseApplicationGenerator.POST_WRITING_ENTITIES]() {
150
- return this.asPostWritingEntitiesTaskGroup(this.delegateTasksToBlueprint(() => this.postWritingEntities));
155
+ return this.delegateTasksToBlueprint(() => this.postWritingEntities);
151
156
  }
152
157
  }
@@ -43,6 +43,7 @@ export const getCacheProviderMavenDefinition = (cacheProvider, javaDependencies)
43
43
  {
44
44
  groupId: 'org.redisson',
45
45
  artifactId: 'redisson',
46
+ version: javaDependencies.redisson,
46
47
  },
47
48
  ],
48
49
  },
@@ -139,19 +140,23 @@ export const getCacheProviderMavenDefinition = (cacheProvider, javaDependencies)
139
140
  },
140
141
  memcached: {
141
142
  base: {
143
+ versions: [{ name: 'xmemcached-provider', version: javaDependencies['xmemcached-provider'] }],
142
144
  dependencies: [
143
145
  javaxCacheApi,
144
146
  {
145
147
  groupId: 'com.google.code.simple-spring-memcached',
146
148
  artifactId: 'spring-cache',
149
+ versionRef: 'xmemcached-provider',
147
150
  },
148
151
  {
149
152
  groupId: 'com.google.code.simple-spring-memcached',
150
153
  artifactId: 'xmemcached-provider',
154
+ versionRef: 'xmemcached-provider',
151
155
  },
152
156
  {
153
157
  groupId: 'com.googlecode.xmemcached',
154
158
  artifactId: 'xmemcached',
159
+ version: javaDependencies.xmemcached,
155
160
  },
156
161
  ],
157
162
  },
@@ -0,0 +1 @@
1
+ // required by dependabot
@@ -0,0 +1,15 @@
1
+ [libraries]
2
+ # caffeine
3
+ typesafe = { module = 'com.typesafe:config', version = '1.4.3' }
4
+
5
+ # hazelcast
6
+ hazelcast-hibernate53 = { module = 'com.hazelcast:hazelcast-hibernate53', version = '5.1.0' }
7
+
8
+ hazelcast-spring = { module = 'com.hazelcast:hazelcast-spring', version = '5.4.0' }
9
+
10
+ # memcached
11
+ xmemcached-provider = { module = 'com.google.code.simple-spring-memcached:xmemcached-provider', version = '4.1.3' }
12
+
13
+ xmemcached = { module = 'com.googlecode.xmemcached:xmemcached', version = '2.4.8' }
14
+
15
+ redisson = { module = 'org.redisson:redisson', version = '3.29.0' }
@@ -736,6 +736,10 @@ public class CacheConfiguration {
736
736
  URI redisUri = URI.create(jHipsterProperties.getCache().getRedis().getServer()[0]);
737
737
 
738
738
  Config config = new Config();
739
+ <%_ if (databaseTypeSql) { _%>
740
+ // Fix Hibernate lazy initialization https://github.com/jhipster/generator-jhipster/issues/22889
741
+ config.setCodec(new org.redisson.codec.SerializationCodec());
742
+ <%_ } _%>
739
743
  if (jHipsterProperties.getCache().getRedis().isCluster()) {
740
744
  ClusterServersConfig clusterServersConfig = config
741
745
  .useClusterServers()
@@ -26,9 +26,11 @@ import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
26
26
  import org.springframework.beans.factory.support.DefaultSingletonBeanRegistry;
27
27
  import org.springframework.core.annotation.AnnotatedElementUtils;
28
28
 
29
+ import org.springframework.context.ConfigurableApplicationContext;
29
30
  import org.springframework.test.context.ContextConfigurationAttributes;
30
31
  import org.springframework.test.context.ContextCustomizer;
31
32
  import org.springframework.test.context.ContextCustomizerFactory;
33
+ import org.springframework.test.context.MergedContextConfiguration;
32
34
  import org.springframework.beans.factory.support.DefaultListableBeanFactory;
33
35
  import org.springframework.boot.test.util.TestPropertyValues;
34
36
 
@@ -41,21 +43,35 @@ public class RedisTestContainersSpringContextCustomizerFactory implements Contex
41
43
  @Override
42
44
  public ContextCustomizer createContextCustomizer(Class<?> testClass, List<ContextConfigurationAttributes> configAttributes) {
43
45
 
44
- return (context, mergedConfig) -> {
45
- ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
46
- TestPropertyValues testValues = TestPropertyValues.empty();
47
- EmbeddedRedis redisAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedRedis.class);
48
- if (null != redisAnnotation) {
49
- log.debug("detected the EmbeddedRedis annotation on class {}", testClass.getName());
50
- log.info("Warming up the redis database");
51
- if (null == redisBean) {
52
- redisBean = beanFactory.createBean(RedisTestContainer.class);
53
- beanFactory.registerSingleton(RedisTestContainer.class.getName(), redisBean);
54
- // ((DefaultListableBeanFactory)beanFactory).registerDisposableBean(RedisTestContainer.class.getName(), redisBean);
46
+ return new ContextCustomizer() {
47
+ @Override
48
+ public void customizeContext(ConfigurableApplicationContext context,
49
+ MergedContextConfiguration mergedConfig) {
50
+ ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
51
+ TestPropertyValues testValues = TestPropertyValues.empty();
52
+ EmbeddedRedis redisAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedRedis.class);
53
+ if (null != redisAnnotation) {
54
+ log.debug("detected the EmbeddedRedis annotation on class {}", testClass.getName());
55
+ log.info("Warming up the redis database");
56
+ if (null == redisBean) {
57
+ redisBean = beanFactory.createBean(RedisTestContainer.class);
58
+ beanFactory.registerSingleton(RedisTestContainer.class.getName(), redisBean);
59
+ // ((DefaultListableBeanFactory)beanFactory).registerDisposableBean(RedisTestContainer.class.getName(), redisBean);
60
+ }
61
+ testValues = testValues.and("jhipster.cache.redis.server=redis://" + redisBean.getRedisContainer().getContainerIpAddress() + ":" + redisBean.getRedisContainer().getMappedPort(6379));
55
62
  }
56
- testValues = testValues.and("jhipster.cache.redis.server=redis://" + redisBean.getRedisContainer().getContainerIpAddress() + ":" + redisBean.getRedisContainer().getMappedPort(6379));
63
+ testValues.applyTo(context);
64
+ }
65
+
66
+ @Override
67
+ public int hashCode() {
68
+ return RedisTestContainer.class.getName().hashCode();
69
+ }
70
+
71
+ @Override
72
+ public boolean equals(Object obj) {
73
+ return this.hashCode() == obj.hashCode();
57
74
  }
58
- testValues.applyTo(context);
59
75
  };
60
76
  }
61
77
  }
@@ -0,0 +1,5 @@
1
+ const command = {
2
+ configs: {},
3
+ import: [],
4
+ };
5
+ export default command;
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Copyright 2013-2024 the original author or authors from the JHipster project.
3
+ *
4
+ * This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ * for more information.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * https://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ import BaseApplicationGenerator from '../../../base-application/index.js';
20
+ import { javaMainPackageTemplatesBlock, javaTestPackageTemplatesBlock } from '../../../java/support/files.js';
21
+ const WAIT_TIMEOUT = 3 * 60000;
22
+ export default class GatewayGenerator extends BaseApplicationGenerator {
23
+ async beforeQueue() {
24
+ if (!this.fromBlueprint) {
25
+ await this.composeWithBlueprints();
26
+ }
27
+ if (!this.delegateToBlueprint) {
28
+ await this.dependsOnBootstrapApplication();
29
+ await this.dependsOnJHipster('jhipster:java:build-tool');
30
+ }
31
+ }
32
+ get initializing() {
33
+ return this.asInitializingTaskGroup({
34
+ async parseCommand() {
35
+ await this.parseCurrentJHipsterCommand();
36
+ },
37
+ });
38
+ }
39
+ get [BaseApplicationGenerator.INITIALIZING]() {
40
+ return this.delegateTasksToBlueprint(() => this.initializing);
41
+ }
42
+ get prompting() {
43
+ return this.asPromptingTaskGroup({
44
+ async promptCommand({ control }) {
45
+ if (control.existingProject && this.options.askAnswered !== true)
46
+ return;
47
+ await this.promptCurrentJHipsterCommand();
48
+ },
49
+ });
50
+ }
51
+ get [BaseApplicationGenerator.PROMPTING]() {
52
+ return this.delegateTasksToBlueprint(() => this.prompting);
53
+ }
54
+ get configuring() {
55
+ return this.asConfiguringTaskGroup({
56
+ reactiveByDefault() {
57
+ this.jhipsterConfig.reactive = this.jhipsterConfig.reactive ?? true;
58
+ if (this.jhipsterConfig.reactive === false) {
59
+ const message = 'Spring Cloud Gateway MVC support is experimental and not officially supported.';
60
+ if (!this.experimental) {
61
+ throw new Error(`${message} To use it, run the generator with the --experimental flag.`);
62
+ }
63
+ this.log.warn(message);
64
+ }
65
+ },
66
+ });
67
+ }
68
+ get [BaseApplicationGenerator.CONFIGURING]() {
69
+ return this.delegateTasksToBlueprint(() => this.configuring);
70
+ }
71
+ get loading() {
72
+ return this.asLoadingTaskGroup({
73
+ async loadConfig({ application }) {
74
+ await this.loadCurrentJHipsterCommandConfig(application);
75
+ },
76
+ });
77
+ }
78
+ get [BaseApplicationGenerator.LOADING]() {
79
+ return this.delegateTasksToBlueprint(() => this.loading);
80
+ }
81
+ get writing() {
82
+ return this.asWritingTaskGroup({
83
+ async writing({ application }) {
84
+ await this.writeFiles({
85
+ blocks: [
86
+ javaMainPackageTemplatesBlock({
87
+ condition: ctx => ctx.reactive && ctx.authenticationTypeJwt,
88
+ templates: ['security/jwt/JWTRelayGatewayFilterFactory.java'],
89
+ }),
90
+ javaMainPackageTemplatesBlock({
91
+ condition: ctx => ctx.reactive && ctx.serviceDiscoveryAny,
92
+ templates: ['web/rest/vm/RouteVM.java', 'web/rest/GatewayResource.java', 'web/filter/ModifyServersOpenApiFilter.java'],
93
+ }),
94
+ javaTestPackageTemplatesBlock({
95
+ condition: ctx => ctx.reactive && ctx.serviceDiscoveryAny,
96
+ templates: ['web/filter/ModifyServersOpenApiFilterTest.java'],
97
+ }),
98
+ ],
99
+ context: application,
100
+ });
101
+ },
102
+ });
103
+ }
104
+ get [BaseApplicationGenerator.WRITING]() {
105
+ return this.delegateTasksToBlueprint(() => this.writing);
106
+ }
107
+ get postWriting() {
108
+ return this.asPostWritingTaskGroup({
109
+ addDependencies({ application, source }) {
110
+ const { reactive } = application;
111
+ source.addJavaDependencies([
112
+ { groupId: 'org.springframework.cloud', artifactId: `spring-cloud-starter-gateway${reactive ? '' : '-mvc'}` },
113
+ ]);
114
+ },
115
+ });
116
+ }
117
+ get [BaseApplicationGenerator.POST_WRITING]() {
118
+ return this.delegateTasksToBlueprint(() => this.postWriting);
119
+ }
120
+ get postWritingEntities() {
121
+ return this.asPostWritingEntitiesTaskGroup({
122
+ packageJsonE2eScripts({ application, entities }) {
123
+ if (application.applicationTypeGateway) {
124
+ const { serverPort, lowercaseBaseName } = application;
125
+ const microservices = [...new Set(entities.map(entity => entity.microserviceName))].filter(Boolean).map(ms => ms.toLowerCase());
126
+ const scriptsStorage = this.packageJson.createStorage('scripts');
127
+ const waitServices = microservices
128
+ .concat(lowercaseBaseName)
129
+ .map(ms => `npm run ci:server:await:${ms}`)
130
+ .join(' && ');
131
+ scriptsStorage.set({
132
+ [`ci:server:await:${lowercaseBaseName}`]: `wait-on -t ${WAIT_TIMEOUT} http-get://127.0.0.1:$npm_package_config_backend_port/management/health`,
133
+ ...Object.fromEntries(microservices.map(ms => [
134
+ `ci:server:await:${ms}`,
135
+ `wait-on -t ${WAIT_TIMEOUT} http-get://127.0.0.1:${serverPort}/services/${ms}/management/health/readiness`,
136
+ ])),
137
+ 'ci:server:await': `echo "Waiting for services to start" && ${waitServices} && echo "Services started"`,
138
+ });
139
+ }
140
+ },
141
+ });
142
+ }
143
+ get [BaseApplicationGenerator.POST_WRITING_ENTITIES]() {
144
+ return this.delegateTasksToBlueprint(() => this.postWritingEntities);
145
+ }
146
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright 2013-2024 the original author or authors from the JHipster project.
3
+ *
4
+ * This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ * for more information.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * https://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ export { default } from './generator.js';
20
+ export { default as command } from './command.js';
@@ -17,14 +17,13 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import BaseApplicationGenerator from '../base-application/index.js';
20
- import { GENERATOR_SPRING_CLOUD_STREAM, GENERATOR_BOOTSTRAP_APPLICATION_SERVER } from '../generator-list.js';
21
20
  export default class KafkaGenerator extends BaseApplicationGenerator {
22
21
  async beforeQueue() {
23
22
  if (!this.fromBlueprint) {
24
- await this.composeWithBlueprints(GENERATOR_SPRING_CLOUD_STREAM);
23
+ await this.composeWithBlueprints();
25
24
  }
26
25
  if (!this.delegateToBlueprint) {
27
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_SERVER);
26
+ await this.dependsOnBootstrapApplicationServer();
28
27
  }
29
28
  }
30
29
  get composing() {
@@ -25,7 +25,7 @@ export default class KafkaGenerator extends BaseApplicationGenerator {
25
25
  await this.composeWithBlueprints();
26
26
  }
27
27
  if (!this.delegateToBlueprint) {
28
- await this.dependsOnBootstrapAplicationServer();
28
+ await this.dependsOnBootstrapApplicationServer();
29
29
  }
30
30
  }
31
31
  get writing() {
@@ -96,6 +96,6 @@ export default class KafkaGenerator extends BaseApplicationGenerator {
96
96
  });
97
97
  }
98
98
  get [BaseApplicationGenerator.POST_WRITING]() {
99
- return this.asPostWritingTaskGroup(this.delegateTasksToBlueprint(() => this.postWriting));
99
+ return this.delegateTasksToBlueprint(() => this.postWriting);
100
100
  }
101
101
  }
@@ -23,10 +23,12 @@ import org.slf4j.Logger;
23
23
  import org.slf4j.LoggerFactory;
24
24
  import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
25
25
  import org.springframework.boot.test.util.TestPropertyValues;
26
+ import org.springframework.context.ConfigurableApplicationContext;
26
27
  import org.springframework.core.annotation.AnnotatedElementUtils;
27
28
  import org.springframework.test.context.ContextConfigurationAttributes;
28
29
  import org.springframework.test.context.ContextCustomizer;
29
30
  import org.springframework.test.context.ContextCustomizerFactory;
31
+ import org.springframework.test.context.MergedContextConfiguration;
30
32
  import org.testcontainers.containers.KafkaContainer;
31
33
 
32
34
  public class KafkaTestContainersSpringContextCustomizerFactory implements ContextCustomizerFactory {
@@ -38,20 +40,34 @@ public class KafkaTestContainersSpringContextCustomizerFactory implements Contex
38
40
  @Override
39
41
  public ContextCustomizer createContextCustomizer(Class<?> testClass, List<ContextConfigurationAttributes> configAttributes) {
40
42
 
41
- return (context, mergedConfig) -> {
42
- ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
43
- TestPropertyValues testValues = TestPropertyValues.empty();
44
- EmbeddedKafka kafkaAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedKafka.class);
45
- if (null != kafkaAnnotation) {
46
- log.debug("detected the EmbeddedKafka annotation on class {}", testClass.getName());
47
- log.info("Warming up the kafka broker");
48
- if (null == kafkaBean) {
49
- kafkaBean = beanFactory.createBean(KafkaTestContainer.class);
50
- beanFactory.registerSingleton(KafkaTestContainer.class.getName(), kafkaBean);
43
+ return new ContextCustomizer() {
44
+ @Override
45
+ public void customizeContext(ConfigurableApplicationContext context,
46
+ MergedContextConfiguration mergedConfig) {
47
+ ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
48
+ TestPropertyValues testValues = TestPropertyValues.empty();
49
+ EmbeddedKafka kafkaAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedKafka.class);
50
+ if (null != kafkaAnnotation) {
51
+ log.debug("detected the EmbeddedKafka annotation on class {}", testClass.getName());
52
+ log.info("Warming up the kafka broker");
53
+ if (null == kafkaBean) {
54
+ kafkaBean = beanFactory.createBean(KafkaTestContainer.class);
55
+ beanFactory.registerSingleton(KafkaTestContainer.class.getName(), kafkaBean);
56
+ }
57
+ testValues = testValues.and("spring.cloud.stream.kafka.binder.brokers=" + kafkaBean.getKafkaContainer().getHost() + ':' + kafkaBean.getKafkaContainer().getMappedPort(KafkaContainer.KAFKA_PORT));
51
58
  }
52
- testValues = testValues.and("spring.cloud.stream.kafka.binder.brokers=" + kafkaBean.getKafkaContainer().getHost() + ':' + kafkaBean.getKafkaContainer().getMappedPort(KafkaContainer.KAFKA_PORT));
59
+ testValues.applyTo(context);
60
+ }
61
+
62
+ @Override
63
+ public int hashCode() {
64
+ return KafkaTestContainer.class.getName().hashCode();
65
+ }
66
+
67
+ @Override
68
+ public boolean equals(Object obj) {
69
+ return this.hashCode() == obj.hashCode();
53
70
  }
54
- testValues.applyTo(context);
55
71
  };
56
72
  }
57
73
  }
@@ -24,7 +24,7 @@ export default class PulsarGenerator extends BaseApplicationGenerator {
24
24
  await this.composeWithBlueprints();
25
25
  }
26
26
  if (!this.delegateToBlueprint) {
27
- await this.dependsOnBootstrapAplicationServer();
27
+ await this.dependsOnBootstrapApplicationServer();
28
28
  }
29
29
  }
30
30
  get writing() {
@@ -73,6 +73,6 @@ export default class PulsarGenerator extends BaseApplicationGenerator {
73
73
  });
74
74
  }
75
75
  get [BaseApplicationGenerator.POST_WRITING]() {
76
- return this.asPostWritingTaskGroup(this.delegateTasksToBlueprint(() => this.postWriting));
76
+ return this.delegateTasksToBlueprint(() => this.postWriting);
77
77
  }
78
78
  }
@@ -24,11 +24,13 @@ import org.slf4j.Logger;
24
24
  import org.slf4j.LoggerFactory;
25
25
  import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
26
26
  import org.springframework.beans.factory.support.DefaultSingletonBeanRegistry;
27
+ import org.springframework.context.ConfigurableApplicationContext;
27
28
  import org.springframework.core.annotation.AnnotatedElementUtils;
28
29
 
29
30
  import org.springframework.test.context.ContextConfigurationAttributes;
30
31
  import org.springframework.test.context.ContextCustomizer;
31
32
  import org.springframework.test.context.ContextCustomizerFactory;
33
+ import org.springframework.test.context.MergedContextConfiguration;
32
34
  import org.springframework.beans.factory.support.DefaultListableBeanFactory;
33
35
  import org.springframework.boot.test.util.TestPropertyValues;
34
36
 
@@ -41,25 +43,39 @@ public class PulsarTestContainersSpringContextCustomizerFactory implements Conte
41
43
  @Override
42
44
  public ContextCustomizer createContextCustomizer(Class<?> testClass, List<ContextConfigurationAttributes> configAttributes) {
43
45
 
44
- return (context, mergedConfig) -> {
45
- ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
46
- TestPropertyValues testValues = TestPropertyValues.empty();
47
- EmbeddedPulsar pulsarAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedPulsar.class);
48
- if (null != pulsarAnnotation) {
49
- log.debug("detected the EmbeddedPulsar annotation on class {}", testClass.getName());
50
- log.info("Warming up the pulsar database");
51
- if (null == pulsarBean) {
52
- pulsarBean = beanFactory.createBean(PulsarTestContainer.class);
53
- beanFactory.registerSingleton(PulsarTestContainer.class.getName(), pulsarBean);
54
- // ((DefaultListableBeanFactory)beanFactory).registerDisposableBean(PulsarTestContainer.class.getName(), pulsarBean);
46
+ return new ContextCustomizer() {
47
+ @Override
48
+ public void customizeContext(ConfigurableApplicationContext context,
49
+ MergedContextConfiguration mergedConfig) {
50
+ ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();
51
+ TestPropertyValues testValues = TestPropertyValues.empty();
52
+ EmbeddedPulsar pulsarAnnotation = AnnotatedElementUtils.findMergedAnnotation(testClass, EmbeddedPulsar.class);
53
+ if (null != pulsarAnnotation) {
54
+ log.debug("detected the EmbeddedPulsar annotation on class {}", testClass.getName());
55
+ log.info("Warming up the pulsar database");
56
+ if (null == pulsarBean) {
57
+ pulsarBean = beanFactory.createBean(PulsarTestContainer.class);
58
+ beanFactory.registerSingleton(PulsarTestContainer.class.getName(), pulsarBean);
59
+ // ((DefaultListableBeanFactory)beanFactory).registerDisposableBean(PulsarTestContainer.class.getName(), pulsarBean);
60
+ }
61
+ testValues =
62
+ testValues.and(
63
+ "spring.pulsar.client.service-url=" + pulsarBean.getPulsarContainer().getPulsarBrokerUrl(),
64
+ "spring.pulsar.administration.service-url=" + pulsarBean.getPulsarContainer().getHttpServiceUrl()
65
+ );
55
66
  }
56
- testValues =
57
- testValues.and(
58
- "spring.pulsar.client.service-url=" + pulsarBean.getPulsarContainer().getPulsarBrokerUrl(),
59
- "spring.pulsar.administration.service-url=" + pulsarBean.getPulsarContainer().getHttpServiceUrl()
60
- );
67
+ testValues.applyTo(context);
68
+ }
69
+
70
+ @Override
71
+ public int hashCode() {
72
+ return PulsarTestContainer.class.getName().hashCode();
73
+ }
74
+
75
+ @Override
76
+ public boolean equals(Object obj) {
77
+ return this.hashCode() == obj.hashCode();
61
78
  }
62
- testValues.applyTo(context);
63
79
  };
64
80
  }
65
81
  }
@@ -17,7 +17,6 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import BaseApplicationGenerator from '../base-application/index.js';
20
- import { GENERATOR_SPRING_DATA_CASSANDRA, GENERATOR_BOOTSTRAP_APPLICATION } from '../generator-list.js';
21
20
  import writeCassandraFilesTask from './files.js';
22
21
  import cleanupCassandraFilesTask from './cleanup.js';
23
22
  import writeCassandraEntityFilesTask, { cleanupCassandraEntityFilesTask } from './entity-files.js';
@@ -26,10 +25,10 @@ const { NO: NO_PAGINATION } = PaginationTypes;
26
25
  export default class CassandraGenerator extends BaseApplicationGenerator {
27
26
  async beforeQueue() {
28
27
  if (!this.fromBlueprint) {
29
- await this.composeWithBlueprints(GENERATOR_SPRING_DATA_CASSANDRA);
28
+ await this.composeWithBlueprints();
30
29
  }
31
30
  if (!this.delegateToBlueprint) {
32
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION);
31
+ await this.dependsOnBootstrapApplication();
33
32
  }
34
33
  }
35
34
  get configuringEachEntity() {
@@ -76,13 +75,13 @@ export default class CassandraGenerator extends BaseApplicationGenerator {
76
75
  });
77
76
  },
78
77
  addDependencies({ application, source }) {
79
- const { reactive } = application;
78
+ const { reactive, javaDependencies } = application;
80
79
  const cassandraStarter = reactive ? 'spring-boot-starter-data-cassandra-reactive' : 'spring-boot-starter-data-cassandra';
81
80
  source.addJavaDependencies?.([
82
81
  { groupId: 'com.datastax.oss', artifactId: 'java-driver-mapper-runtime' },
83
82
  { groupId: 'commons-codec', artifactId: 'commons-codec' },
84
83
  { groupId: 'org.springframework.boot', artifactId: cassandraStarter },
85
- { groupId: 'org.lz4', artifactId: 'lz4-java' },
84
+ { groupId: 'org.lz4', artifactId: 'lz4-java', version: javaDependencies['lz4-java'] },
86
85
  { scope: 'test', groupId: 'org.testcontainers', artifactId: 'junit-jupiter' },
87
86
  { scope: 'test', groupId: 'org.testcontainers', artifactId: 'testcontainers' },
88
87
  { scope: 'test', groupId: 'org.testcontainers', artifactId: 'cassandra' },
@@ -92,6 +91,6 @@ export default class CassandraGenerator extends BaseApplicationGenerator {
92
91
  });
93
92
  }
94
93
  get [BaseApplicationGenerator.POST_WRITING]() {
95
- return this.asPostWritingTaskGroup(this.delegateTasksToBlueprint(() => this.postWriting));
94
+ return this.delegateTasksToBlueprint(() => this.postWriting);
96
95
  }
97
96
  }