generator-jhipster 8.2.1 → 8.3.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 (339) 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 +36 -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 +13 -10
  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 +18 -26
  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 +18 -25
  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 +10 -15
  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 +31 -46
  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 +20 -31
  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 +20 -34
  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_-update.component.html.ejs +17 -24
  72. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +0 -2
  73. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +14 -15
  74. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.spec.ts.ejs +1 -5
  75. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +1 -1
  76. package/dist/generators/angular/templates/src/main/webapp/app/layouts/footer/footer.component.html.ejs +1 -1
  77. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +11 -18
  78. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +1 -1
  79. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +21 -21
  80. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.spec.ts.ejs +0 -2
  81. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +1 -1
  82. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +11 -12
  83. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.spec.ts.ejs +1 -2
  84. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.ts.ejs +1 -1
  85. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +3 -3
  86. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.ts.ejs +1 -1
  87. package/dist/generators/app/generator.js +4 -4
  88. package/dist/generators/base/generator.js +21 -2
  89. package/dist/generators/base/shared-data.js +1 -2
  90. package/dist/generators/base/support/basename.js +1 -2
  91. package/dist/generators/base/support/needles.js +3 -5
  92. package/dist/generators/base/support/string.js +2 -2
  93. package/dist/generators/base-application/generator.js +4 -4
  94. package/dist/generators/base-application/support/entity.js +1 -2
  95. package/dist/generators/base-application/support/enum.js +2 -2
  96. package/dist/generators/base-application/support/prepare-entity.js +1 -1
  97. package/dist/generators/base-application/support/prepare-field.js +5 -6
  98. package/dist/generators/base-application/support/relationship.js +1 -2
  99. package/dist/generators/base-application/support/task-type-inference.js +6 -0
  100. package/dist/generators/base-core/generator.js +83 -14
  101. package/dist/generators/base-workspaces/internal/deployments.js +2 -2
  102. package/dist/generators/base-workspaces/internal/docker-dependencies.js +2 -2
  103. package/dist/generators/bootstrap/generator.js +4 -5
  104. package/dist/generators/bootstrap/internal/transform-utils.js +4 -0
  105. package/dist/generators/bootstrap/support/eslint-transform.js +2 -1
  106. package/dist/generators/bootstrap/support/java-unused-imports-transform.js +2 -1
  107. package/dist/generators/bootstrap/support/prettier-worker.js +2 -4
  108. package/dist/generators/bootstrap-application/generator.js +3 -4
  109. package/dist/generators/bootstrap-application-base/generator.js +4 -5
  110. package/dist/generators/bootstrap-application-base/utils.js +3 -3
  111. package/dist/generators/bootstrap-application-client/generator.js +2 -3
  112. package/dist/generators/bootstrap-application-server/generator.js +21 -15
  113. package/dist/generators/bootstrap-workspaces/generator.js +1 -2
  114. package/dist/generators/ci-cd/command.js +1 -2
  115. package/dist/generators/ci-cd/generator.js +3 -3
  116. package/dist/generators/client/command.js +1 -2
  117. package/dist/generators/client/generator.js +12 -12
  118. package/dist/generators/client/needle-api/needle-client-vue.js +2 -2
  119. package/dist/generators/client/resources/package.json +4 -4
  120. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +1 -1
  121. package/dist/generators/common/generator.js +5 -5
  122. package/dist/generators/common/resources/package.json +1 -1
  123. package/dist/generators/cucumber/generator.js +17 -10
  124. package/dist/generators/cucumber/templates/buildSrc/src/main/groovy/jhipster.cucumber-conventions.gradle.ejs +1 -5
  125. package/dist/generators/cypress/generator.js +2 -3
  126. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/administration/administration.cy.ts.ejs +10 -0
  127. package/dist/generators/docker/generator.js +4 -6
  128. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +0 -32
  129. package/dist/generators/docker/utils.js +2 -3
  130. package/dist/generators/docker-compose/generator.js +4 -5
  131. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +0 -32
  132. package/dist/generators/entities/generator.js +4 -4
  133. package/dist/generators/entity/generator.js +10 -9
  134. package/dist/generators/entity/prompts.js +12 -12
  135. package/dist/generators/feign-client/generator.js +3 -4
  136. package/dist/generators/gatling/generator.js +2 -3
  137. package/dist/generators/generate-blueprint/files.js +1 -0
  138. package/dist/generators/generate-blueprint/generator.js +3 -4
  139. package/dist/generators/generate-blueprint/templates/.blueprint/generate-sample/generator.mjs.ejs +3 -2
  140. package/dist/generators/generate-blueprint/templates/generators/generator/command.mjs.ejs +19 -1
  141. package/dist/generators/generate-blueprint/templates/vitest.test-setup.ts.ejs +6 -0
  142. package/dist/generators/generator-constants.js +5 -2
  143. package/dist/generators/git/generator.js +3 -5
  144. package/dist/generators/gradle/command.js +32 -0
  145. package/dist/generators/gradle/constants.js +0 -1
  146. package/dist/generators/gradle/files.js +2 -8
  147. package/dist/generators/gradle/generator.js +85 -13
  148. package/dist/generators/gradle/generators/code-quality/generator.js +86 -0
  149. package/dist/generators/{java/cleanup.js → gradle/generators/code-quality/index.js} +1 -5
  150. package/dist/generators/gradle/generators/jib/generator.js +64 -0
  151. package/dist/generators/gradle/generators/jib/index.js +19 -0
  152. package/dist/generators/gradle/generators/node-gradle/generator.js +64 -0
  153. package/dist/generators/gradle/generators/node-gradle/index.js +19 -0
  154. package/dist/generators/gradle/generators/node-gradle/templates/buildSrc/src/main/groovy/jhipster.node-gradle-conventions.gradle.ejs +101 -0
  155. package/dist/generators/gradle/index.js +1 -0
  156. package/dist/generators/gradle/internal/needles.js +9 -3
  157. package/dist/generators/gradle/templates/buildSrc/build.gradle.ejs +3 -2
  158. package/dist/generators/gradle/templates/buildSrc/gradle/libs.versions.toml.ejs +8 -1
  159. package/dist/generators/gradle/templates/gradle/wrapper/{gradle-wrapper.properties.ejs → gradle-wrapper.properties} +1 -1
  160. package/dist/generators/heroku/generator.js +3 -3
  161. package/dist/generators/init/generator.js +3 -4
  162. package/dist/generators/init/resources/.node-version +1 -0
  163. package/dist/generators/java/command.js +2 -38
  164. package/dist/generators/java/generator.js +5 -260
  165. package/dist/generators/java/generators/bootstrap/command.js +35 -0
  166. package/dist/generators/java/generators/bootstrap/generator.js +178 -0
  167. package/dist/generators/java/generators/bootstrap/index.js +20 -0
  168. package/dist/generators/java/generators/build-tool/command.js +42 -0
  169. package/dist/generators/java/generators/build-tool/generator.js +143 -0
  170. package/dist/generators/java/generators/build-tool/index.js +20 -0
  171. package/dist/generators/java/generators/code-quality/command.js +5 -0
  172. package/dist/generators/java/generators/code-quality/generator.js +91 -0
  173. package/dist/generators/java/generators/code-quality/index.js +20 -0
  174. package/dist/generators/java/generators/domain/command.js +30 -0
  175. package/dist/generators/java/{entity-files.js → generators/domain/entity-files.js} +1 -1
  176. package/dist/generators/java/generators/domain/generator.js +153 -0
  177. package/dist/generators/java/generators/domain/index.js +20 -0
  178. package/dist/generators/java/generators/jib/command.js +5 -0
  179. package/dist/generators/java/generators/jib/generator.js +97 -0
  180. package/dist/generators/java/generators/jib/index.js +20 -0
  181. package/dist/generators/{server → java/generators/jib}/templates/src/main/docker/jib/entrypoint.sh.ejs +2 -0
  182. package/dist/generators/java/generators/node/command.js +5 -0
  183. package/dist/generators/java/generators/node/generator.js +97 -0
  184. package/dist/generators/java/generators/node/index.js +20 -0
  185. package/dist/generators/java/support/index.js +1 -0
  186. package/dist/generators/jdl/generator.js +6 -9
  187. package/dist/generators/kubernetes/generator.js +1 -1
  188. package/dist/generators/kubernetes/kubernetes-base.js +3 -3
  189. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +0 -32
  190. package/dist/generators/kubernetes-helm/generator.js +1 -1
  191. package/dist/generators/kubernetes-knative/generator.js +1 -1
  192. package/dist/generators/languages/entity-files.js +3 -2
  193. package/dist/generators/languages/generator.js +7 -10
  194. package/dist/generators/languages/support/translate.js +34 -9
  195. package/dist/generators/languages/translation-data.js +4 -5
  196. package/dist/generators/liquibase/generator.js +68 -25
  197. package/dist/generators/liquibase/support/maven-plugin.js +6 -0
  198. package/dist/generators/liquibase/templates/gradle/liquibase.gradle.ejs +3 -6
  199. package/dist/generators/maven/generator.js +14 -6
  200. package/dist/generators/maven/generators/code-quality/command.js +5 -0
  201. package/dist/generators/maven/generators/code-quality/generator.js +268 -0
  202. package/dist/generators/maven/generators/code-quality/index.js +20 -0
  203. package/dist/generators/maven/generators/frontend-plugin/command.js +5 -0
  204. package/dist/generators/maven/generators/frontend-plugin/generator.js +295 -0
  205. package/dist/generators/maven/generators/frontend-plugin/index.js +20 -0
  206. package/dist/generators/maven/generators/jib/command.js +5 -0
  207. package/dist/generators/maven/generators/jib/generator.js +136 -0
  208. package/dist/generators/maven/generators/jib/index.js +20 -0
  209. package/dist/generators/maven/internal/xml-store.js +1 -2
  210. package/dist/generators/maven/support/dependabot-maven.js +12 -2
  211. package/dist/generators/maven/support/pom-store.js +1 -2
  212. package/dist/generators/project-name/generator.js +9 -11
  213. package/dist/generators/react/generator.js +25 -6
  214. package/dist/generators/react/needle-api/needle-client-react.js +2 -2
  215. package/dist/generators/react/resources/package.json +18 -15
  216. package/dist/generators/react/templates/package.json.ejs +1 -7
  217. package/dist/generators/react/templates/src/main/webapp/app/modules/administration/tracker/tracker.tsx.ejs +2 -2
  218. package/dist/generators/server/command.js +2 -34
  219. package/dist/generators/server/generator.js +20 -154
  220. package/dist/generators/server/jdl/application-definition.js +1 -2
  221. package/dist/generators/server/prompts.js +4 -46
  222. package/dist/generators/server/resources/Dockerfile +7 -7
  223. package/dist/generators/server/resources/build.gradle +1 -0
  224. package/dist/generators/server/resources/gradle/libs.versions.toml +25 -7
  225. package/dist/generators/server/resources/pom.xml +4 -22
  226. package/dist/generators/server/support/prepare-field.js +1 -2
  227. package/dist/generators/server/templates/build.gradle.ejs +29 -143
  228. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +1 -1
  229. package/dist/generators/server/templates/gradle.properties.ejs +0 -7
  230. package/dist/generators/server/templates/pom.xml.ejs +23 -444
  231. package/dist/generators/server/templates/settings.gradle.ejs +0 -4
  232. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +15 -3
  233. package/dist/generators/server/templates/src/main/java/_package_/web/filter/SpaWebFilter_imperative.java.ejs +4 -1
  234. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +15 -4
  235. package/dist/generators/server/templates/src/test/java/_package_/IntegrationTest.java.ejs +0 -2
  236. package/dist/generators/server/templates/src/test/java/_package_/config/TestContainersSpringContextCustomizerFactory.java.ejs +71 -46
  237. package/dist/generators/server/templates/src/test/java/_package_/security/jwt/AuthenticationIntegrationTest.java.ejs +0 -3
  238. package/dist/generators/server/templates/src/test/resources/config/application.yml.ejs +1 -1
  239. package/dist/generators/spring-boot/command.js +31 -2
  240. package/dist/generators/spring-boot/entity-files.js +2 -2
  241. package/dist/generators/spring-boot/files.js +3 -38
  242. package/dist/generators/spring-boot/generator.js +98 -37
  243. package/dist/generators/spring-boot/resources/spring-boot-dependencies.pom +105 -105
  244. package/dist/generators/spring-boot/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +2 -2
  245. package/dist/generators/spring-cache/generator.js +11 -6
  246. package/dist/generators/spring-cache/internal/dependencies.js +5 -0
  247. package/dist/generators/spring-cache/resources/build.gradle +1 -0
  248. package/dist/generators/spring-cache/resources/gradle/libs.versions.toml +15 -0
  249. package/dist/generators/spring-cache/templates/src/test/java/_package_/config/RedisTestContainersSpringContextCustomizerFactory.java.ejs +29 -13
  250. package/dist/generators/spring-cloud/generators/gateway/command.js +5 -0
  251. package/dist/generators/spring-cloud/generators/gateway/generator.js +146 -0
  252. package/dist/generators/spring-cloud/generators/gateway/index.js +20 -0
  253. package/dist/generators/spring-cloud-stream/generator.js +2 -3
  254. package/dist/generators/spring-cloud-stream/generators/kafka/generator.js +2 -2
  255. package/dist/generators/spring-cloud-stream/generators/kafka/templates/src/test/java/_package_/config/KafkaTestContainersSpringContextCustomizerFactory.java.ejs +28 -12
  256. package/dist/generators/spring-cloud-stream/generators/pulsar/generator.js +2 -2
  257. package/dist/generators/spring-cloud-stream/generators/pulsar/templates/src/test/java/_package_/config/PulsarTestContainersSpringContextCustomizerFactory.java.ejs +33 -17
  258. package/dist/generators/spring-data-cassandra/generator.js +5 -6
  259. package/dist/generators/spring-data-cassandra/templates/src/test/java/_package_/config/CassandraTestContainersSpringContextCustomizerFactory.java.ejs +33 -17
  260. package/dist/generators/spring-data-couchbase/generator.js +3 -4
  261. package/dist/generators/spring-data-elasticsearch/generator.js +3 -5
  262. package/dist/generators/spring-data-mongodb/generator.js +5 -5
  263. package/dist/generators/spring-data-neo4j/generator.js +11 -5
  264. package/dist/generators/spring-data-neo4j/templates/src/test/java/_package_/config/Neo4jTestContainersSpringContextCustomizerFactory.java.ejs +32 -16
  265. package/dist/generators/spring-data-relational/generator.js +6 -7
  266. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +47 -32
  267. package/dist/generators/spring-websocket/generator.js +2 -3
  268. package/dist/generators/statistics.js +2 -2
  269. package/dist/generators/upgrade/generator.js +4 -3
  270. package/dist/generators/vue/generator.js +4 -4
  271. package/dist/generators/vue/resources/package.json +18 -15
  272. package/dist/generators/vue/templates/package.json.ejs +3 -3
  273. package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.spec.ts.ejs +1 -1
  274. package/dist/generators/vue/templates/src/main/webapp/app/account/account.service.ts.ejs +1 -1
  275. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.service.ts.ejs +3 -3
  276. package/dist/generators/vue/templates/src/main/webapp/app/admin/tracker/tracker.vue.ejs +2 -2
  277. package/dist/generators/vue/templates/src/main/webapp/app/main.ts.ejs +4 -3
  278. package/dist/generators/vue/templates/vite.config.mts.ejs +6 -0
  279. package/dist/generators/workspaces/generator.js +5 -4
  280. package/dist/jdl/converters/jdl-to-json/jdl-to-json-field-converter.js +2 -2
  281. package/dist/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +3 -3
  282. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +2 -2
  283. package/dist/jdl/jdl-importer.js +1 -2
  284. package/dist/jdl/jhipster/default-application-options.js +1 -1
  285. package/dist/jdl/jhipster/field-types.js +2 -2
  286. package/dist/jdl/jhipster/relationship-types.js +1 -2
  287. package/dist/jdl/models/jdl-deployment.js +1 -2
  288. package/dist/jdl/parsing/api.js +2 -2
  289. package/dist/jdl/parsing/lexer/token-creator.js +1 -2
  290. package/dist/jdl/parsing/self-checks/parsing-system-checker.js +13 -13
  291. package/dist/jdl/parsing/validator.js +5 -5
  292. package/dist/testing/get-generator.js +1 -1
  293. package/dist/testing/helpers.js +34 -9
  294. package/dist/types/generators/angular/support/index.d.ts +0 -1
  295. package/dist/types/generators/angular/support/translate-angular.d.ts +7 -4
  296. package/dist/types/generators/app/support/config.d.ts +1 -1
  297. package/dist/types/generators/base/api.d.ts +7 -0
  298. package/dist/types/generators/base/generator.d.ts +1 -1
  299. package/dist/types/generators/base-application/generator.d.ts +4 -4
  300. package/dist/types/generators/base-application/support/task-type-inference.d.ts +3 -0
  301. package/dist/types/generators/base-application/support/update-application-entities-transform.d.ts +1 -1
  302. package/dist/types/generators/base-core/generator.d.ts +33 -1
  303. package/dist/types/generators/bootstrap/internal/transform-utils.d.ts +1 -0
  304. package/dist/types/generators/bootstrap/support/java-unused-imports-transform.d.ts +1 -1
  305. package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.ts +2 -2
  306. package/dist/types/generators/docker/utils.d.ts +7 -0
  307. package/dist/types/generators/generator-constants.d.ts +2 -20
  308. package/dist/types/generators/gradle/types.d.ts +21 -7
  309. package/dist/types/generators/java/support/index.d.ts +1 -0
  310. package/dist/types/generators/java/types.d.ts +37 -22
  311. package/dist/types/generators/languages/support/translate.d.ts +29 -0
  312. package/dist/types/generators/maven/support/dependabot-maven.d.ts +17 -1
  313. package/dist/types/generators/project-name/support/name-resolver.d.ts +1 -1
  314. package/dist/types/generators/server/types.d.ts +2 -0
  315. package/dist/types/jdl/converters/jdl-to-json/jdl-to-json-field-converter.d.ts +0 -18
  316. package/dist/types/testing/helpers.d.ts +6 -0
  317. package/dist/types/testing/support/matrix-utils.d.ts +1 -1
  318. package/package.json +15 -27
  319. package/dist/generators/java/files.js +0 -20
  320. /package/dist/generators/{server → gradle/generators/code-quality}/templates/buildSrc/src/main/groovy/jhipster.code-quality-conventions.gradle.ejs +0 -0
  321. /package/dist/generators/{server → gradle/generators/jib}/templates/buildSrc/src/main/groovy/jhipster.docker-conventions.gradle.ejs +0 -0
  322. /package/dist/generators/java/{templates → generators/bootstrap/templates}/src/main/java/_package_/GeneratedByJHipster.java.ejs +0 -0
  323. /package/dist/generators/{server → java/generators/code-quality}/templates/checkstyle.xml.ejs +0 -0
  324. /package/dist/generators/java/{templates → generators/domain/templates}/_global_partials_entity_/field_validators.ejs +0 -0
  325. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +0 -0
  326. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +0 -0
  327. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jakarta_validation.ejs +0 -0
  328. /package/dist/generators/java/{templates → generators/domain/templates}/src/main/java/_package_/_entityPackage_/domain/enumeration/_enumName_.java.ejs +0 -0
  329. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_Asserts.java.ejs +0 -0
  330. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +0 -0
  331. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/_entityPackage_/domain/_persistClass_TestSamples.java.ejs +0 -0
  332. /package/dist/generators/java/{templates → generators/domain/templates}/src/test/java/_package_/domain/AssertUtils.java.ejs +0 -0
  333. /package/dist/generators/{server → java/generators/node}/templates/npmw +0 -0
  334. /package/dist/generators/{server → java/generators/node}/templates/npmw.cmd +0 -0
  335. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/security/jwt/JWTRelayGatewayFilterFactory.java.ejs +0 -0
  336. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/filter/ModifyServersOpenApiFilter.java.ejs +0 -0
  337. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/rest/GatewayResource.java.ejs +0 -0
  338. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/main/java/_package_/web/rest/vm/RouteVM.java.ejs +0 -0
  339. /package/dist/generators/{server → spring-cloud/generators/gateway}/templates/src/test/java/_package_/web/filter/ModifyServersOpenApiFilterTest.java.ejs +0 -0
@@ -17,9 +17,8 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import fs from 'fs';
20
- import * as _ from 'lodash-es';
20
+ import { min } from 'lodash-es';
21
21
  import BaseEntityChangesGenerator from '../base-entity-changes/index.js';
22
- import { GENERATOR_LIQUIBASE, GENERATOR_BOOTSTRAP_APPLICATION_SERVER } from '../generator-list.js';
23
22
  import { liquibaseFiles } from './files.js';
24
23
  import { prepareField as prepareFieldForLiquibase, postPrepareEntity, prepareRelationshipForLiquibase, liquibaseComment, } from './support/index.js';
25
24
  import { getFKConstraintName, getUXConstraintName, prepareEntity as prepareEntityForServer } from '../server/support/index.js';
@@ -29,7 +28,6 @@ import { addLiquibaseChangelogCallback, addLiquibaseConstraintsChangelogCallback
29
28
  import { prepareSqlApplicationProperties } from '../spring-data-relational/support/index.js';
30
29
  import { addEntityFiles, updateEntityFiles, updateConstraintsFiles, updateMigrateFiles, fakeFiles } from './changelog-files.js';
31
30
  import { fieldTypes } from '../../jdl/jhipster/index.js';
32
- import command from './command.js';
33
31
  const { CommonDBTypes: { LONG: TYPE_LONG, INTEGER: TYPE_INTEGER }, } = fieldTypes;
34
32
  export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
35
33
  recreateInitialChangelog;
@@ -49,21 +47,21 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
49
47
  }
50
48
  async beforeQueue() {
51
49
  if (!this.fromBlueprint) {
52
- await this.composeWithBlueprints(GENERATOR_LIQUIBASE);
50
+ await this.composeWithBlueprints();
53
51
  }
54
52
  if (!this.delegateToBlueprint) {
55
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_SERVER);
53
+ await this.dependsOnBootstrapApplicationServer();
56
54
  }
57
55
  }
58
56
  get initializing() {
59
57
  return this.asInitializingTaskGroup({
60
- loadConfig() {
61
- this.parseJHipsterOptions(command.options);
58
+ async parseCommand() {
59
+ await this.parseCurrentJHipsterCommand();
62
60
  },
63
61
  });
64
62
  }
65
63
  get [BaseEntityChangesGenerator.INITIALIZING]() {
66
- return this.asInitializingTaskGroup(this.delegateTasksToBlueprint(() => this.initializing));
64
+ return this.delegateTasksToBlueprint(() => this.initializing);
67
65
  }
68
66
  get preparing() {
69
67
  return this.asPreparingTaskGroup({
@@ -164,12 +162,19 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
164
162
  const changes = entityChanges.filter(databaseChangelog => entitiesToWrite.length === 0 || entitiesToWrite.includes(databaseChangelog.entityName));
165
163
  for (const databaseChangelog of changes) {
166
164
  if (databaseChangelog.newEntity) {
167
- this.databaseChangelogs.push(this.prepareChangelog({ databaseChangelog, application }));
165
+ this.databaseChangelogs.push(this.prepareChangelog({
166
+ databaseChangelog: {
167
+ ...databaseChangelog,
168
+ changelogData: { ...databaseChangelog.changelogData },
169
+ },
170
+ application,
171
+ }));
168
172
  }
169
173
  else if (databaseChangelog.addedFields.length > 0 || databaseChangelog.removedFields.length > 0) {
170
174
  this.databaseChangelogs.push(this.prepareChangelog({
171
175
  databaseChangelog: {
172
176
  ...databaseChangelog,
177
+ changelogData: { ...databaseChangelog.changelogData },
173
178
  fieldChangelog: true,
174
179
  addedRelationships: [],
175
180
  removedRelationships: [],
@@ -186,6 +191,7 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
186
191
  this.databaseChangelogs.push(this.prepareChangelog({
187
192
  databaseChangelog: {
188
193
  ...databaseChangelog,
194
+ changelogData: { ...databaseChangelog.changelogData },
189
195
  relationshipChangelog: true,
190
196
  addedFields: [],
191
197
  removedFields: [],
@@ -268,36 +274,58 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
268
274
  if (!application.javaDependencies) {
269
275
  throw new Error('Some application fields are be mandatory');
270
276
  }
277
+ const { javaDependencies } = application;
278
+ const checkProperty = (property) => {
279
+ if (!source.hasJavaManagedProperty?.(property) && !source.hasJavaProperty?.(property)) {
280
+ const message = `${property} is required by maven-liquibase-plugin, make sure to add it to your pom.xml`;
281
+ if (this.skipChecks) {
282
+ this.log.warn(message);
283
+ }
284
+ else {
285
+ throw new Error(message);
286
+ }
287
+ }
288
+ };
289
+ const { 'jakarta-validation': validationVersion, h2: h2Version, liquibase: liquibaseVersion } = javaDependencies;
271
290
  const applicationAny = application;
272
291
  const databaseTypeProfile = applicationAny.devDatabaseTypeH2Any ? 'prod' : undefined;
273
292
  let liquibasePluginHibernateDialect;
274
293
  let liquibasePluginJdbcDriver;
294
+ const mavenProperties = [];
275
295
  if (applicationAny.devDatabaseTypeH2Any) {
276
296
  // eslint-disable-next-line no-template-curly-in-string
277
297
  liquibasePluginHibernateDialect = '${liquibase-plugin.hibernate-dialect}';
278
298
  // eslint-disable-next-line no-template-curly-in-string
279
299
  liquibasePluginJdbcDriver = '${liquibase-plugin.driver}';
280
- source.addMavenDefinition?.({
281
- properties: [
282
- { property: 'liquibase-plugin.hibernate-dialect' },
283
- { property: 'liquibase-plugin.driver' },
284
- { property: 'h2.version', value: application.springBootDependencies.h2 },
285
- { inProfile: 'dev', property: 'liquibase-plugin.hibernate-dialect', value: applicationAny.devHibernateDialect },
286
- { inProfile: 'prod', property: 'liquibase-plugin.hibernate-dialect', value: applicationAny.prodHibernateDialect },
287
- { inProfile: 'dev', property: 'liquibase-plugin.driver', value: applicationAny.devJdbcDriver },
288
- { inProfile: 'prod', property: 'liquibase-plugin.driver', value: applicationAny.prodJdbcDriver },
289
- ],
290
- });
300
+ if (h2Version) {
301
+ mavenProperties.push({ property: 'h2.version', value: h2Version });
302
+ }
303
+ else {
304
+ checkProperty('h2.version');
305
+ }
306
+ mavenProperties.push({ property: 'liquibase-plugin.hibernate-dialect' }, { property: 'liquibase-plugin.driver' }, { inProfile: 'dev', property: 'liquibase-plugin.hibernate-dialect', value: applicationAny.devHibernateDialect }, { inProfile: 'prod', property: 'liquibase-plugin.hibernate-dialect', value: applicationAny.prodHibernateDialect }, { inProfile: 'dev', property: 'liquibase-plugin.driver', value: applicationAny.devJdbcDriver }, { inProfile: 'prod', property: 'liquibase-plugin.driver', value: applicationAny.prodJdbcDriver });
291
307
  }
292
308
  else {
293
309
  liquibasePluginHibernateDialect = applicationAny.prodHibernateDialect;
294
310
  liquibasePluginJdbcDriver = applicationAny.prodJdbcDriver;
295
311
  }
312
+ if (validationVersion) {
313
+ mavenProperties.push({ property: 'jakarta-validation.version', value: validationVersion });
314
+ }
315
+ else {
316
+ checkProperty('jakarta-validation.version');
317
+ }
318
+ if (liquibaseVersion) {
319
+ mavenProperties.push({ property: 'liquibase.version', value: liquibaseVersion });
320
+ }
321
+ else {
322
+ checkProperty('liquibase.version');
323
+ }
296
324
  source.addMavenDefinition?.({
297
325
  properties: [
326
+ ...mavenProperties,
298
327
  { inProfile: 'no-liquibase', property: 'profile.no-liquibase', value: ',no-liquibase' },
299
328
  { property: 'profile.no-liquibase' },
300
- { property: 'liquibase.version', value: application.springBootDependencies.liquibase },
301
329
  { property: 'liquibase-plugin.url' },
302
330
  { property: 'liquibase-plugin.username' },
303
331
  { property: 'liquibase-plugin.password' },
@@ -384,18 +412,33 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
384
412
  if (!application.javaDependencies) {
385
413
  throw new Error('Some application fields are be mandatory');
386
414
  }
415
+ const { liquibase: liquibaseVersion, 'gradle-liquibase': gradleLiquibaseVersion } = application.javaDependencies;
416
+ if (!liquibaseVersion) {
417
+ this.log.warn('liquibaseVersion is required by gradle-liquibase-plugin, make sure to add it to your dependencies');
418
+ }
419
+ else {
420
+ source.addGradleProperty?.({ property: 'liquibaseVersion', value: liquibaseVersion });
421
+ }
387
422
  source.addGradleProperty?.({ property: 'liquibaseTaskPrefix', value: 'liquibase' });
388
- source.addGradleProperty?.({ property: 'liquibasePluginVersion', value: application.javaDependencies['gradle-liquibase'] });
389
- source.addGradleProperty?.({ property: 'liquibaseVersion', value: application.springBootDependencies.liquibase });
423
+ source.addGradleProperty?.({ property: 'liquibasePluginVersion', value: gradleLiquibaseVersion });
390
424
  source.applyFromGradle?.({ script: 'gradle/liquibase.gradle' });
391
425
  source.addGradlePlugin?.({ id: 'org.liquibase.gradle' });
392
426
  // eslint-disable-next-line no-template-curly-in-string
393
427
  source.addGradlePluginManagement?.({ id: 'org.liquibase.gradle', version: '${liquibasePluginVersion}' });
428
+ if (application.databaseTypeSql && !application.reactive) {
429
+ source.addGradleDependency?.({
430
+ scope: 'liquibaseRuntime',
431
+ groupId: 'org.liquibase.ext',
432
+ artifactId: 'liquibase-hibernate6',
433
+ // eslint-disable-next-line no-template-curly-in-string
434
+ version: liquibaseVersion ? '${liquibaseVersion}' : "${dependencyManagement.importedProperties['liquibase.version']}",
435
+ }, { gradleFile: 'gradle/liquibase.gradle' });
436
+ }
394
437
  },
395
438
  });
396
439
  }
397
440
  get [BaseEntityChangesGenerator.POST_WRITING]() {
398
- return this.asPostWritingTaskGroup(this.delegateTasksToBlueprint(() => this.postWriting));
441
+ return this.delegateTasksToBlueprint(() => this.postWriting);
399
442
  }
400
443
  get postWritingEntities() {
401
444
  return this.asPostWritingEntitiesTaskGroup({
@@ -527,7 +570,7 @@ export default class LiquibaseGenerator extends BaseEntityChangesGenerator {
527
570
  Object.defineProperty(entity, 'fakeDataCount', {
528
571
  get: () => {
529
572
  const uniqueRelationships = entity.relationships.filter(rel => rel.unique && (rel.columnRequired || rel.id));
530
- return _.min([entity.liquibaseFakeData.length, ...uniqueRelationships.map(rel => rel.otherEntity.fakeDataCount)]);
573
+ return min([entity.liquibaseFakeData.length, ...uniqueRelationships.map(rel => rel.otherEntity.fakeDataCount)]);
531
574
  },
532
575
  configurable: true,
533
576
  });
@@ -25,10 +25,16 @@ export default function mavenPluginContent({ backendTypeSpringBoot, reactive, pa
25
25
  <groupId>org.liquibase.ext</groupId>
26
26
  <artifactId>liquibase-hibernate6</artifactId>
27
27
  <version>\${liquibase.version}</version>
28
+ </dependency>
29
+ <dependency>
30
+ <groupId>jakarta.validation</groupId>
31
+ <artifactId>jakarta.validation-api</artifactId>
32
+ <version>\${jakarta-validation.version}</version>
28
33
  </dependency>${backendTypeSpringBoot ? `
29
34
  <dependency>
30
35
  <groupId>org.springframework.boot</groupId>
31
36
  <artifactId>spring-boot-starter-data-jpa</artifactId>
37
+ <version>\${spring-boot.version}</version>
32
38
  </dependency>` : ''}${devDatabaseTypeH2Any ? `
33
39
  <dependency>
34
40
  <groupId>com.h2database</groupId>
@@ -7,10 +7,6 @@ dependencies {
7
7
  liquibaseRuntime "org.liquibase:liquibase-core"
8
8
  // Dependency required to parse options. Refer to https://github.com/liquibase/liquibase-gradle-plugin/tree/Release_2.2.0#news.
9
9
  liquibaseRuntime "info.picocli:picocli:<%- javaDependencies.picocli %>"
10
- <%_ if (databaseTypeSql && !reactive) { _%>
11
-
12
- liquibaseRuntime "org.liquibase.ext:liquibase-hibernate6:${liquibaseVersion}"
13
- <%_ } _%>
14
10
  <%_ if (databaseTypeSql) { _%>
15
11
  <%_ if (prodDatabaseType !== devDatabaseType) { _%>
16
12
  if (project.hasProperty("prod") || project.hasProperty("gae")) {
@@ -26,7 +22,7 @@ dependencies {
26
22
  <%_ } _%>
27
23
  <%_ if (prodDatabaseTypeMssql) { _%>
28
24
  liquibaseRuntime "com.microsoft.sqlserver:mssql-jdbc"
29
- liquibaseRuntime "org.liquibase.ext:liquibase-mssql:${liquibaseVersion}"
25
+ liquibaseRuntime "org.liquibase.ext:liquibase-mssql:${dependencyManagement.importedProperties['liquibase.version']}"
30
26
  <%_ } _%>
31
27
  <%_ if (prodDatabaseTypeOracle) { _%>
32
28
  liquibaseRuntime "com.oracle.database.jdbc:ojdbc8"
@@ -37,12 +33,13 @@ dependencies {
37
33
  <%_ } else if (databaseTypeNeo4j) { _%>
38
34
  // Exclude current neo4j driver and use the one provided by spring-data
39
35
  // See: https://github.com/jhipster/generator-jhipster/pull/24241
40
- implementation ("org.liquibase.ext:liquibase-neo4j:${liquibaseVersion}") {
36
+ implementation ("org.liquibase.ext:liquibase-neo4j:${dependencyManagement.importedProperties['liquibase.version']}") {
41
37
  exclude group: "org.neo4j.driver", module: "neo4j-java-driver"
42
38
  exclude group: "org.slf4j", module: "*"
43
39
  }
44
40
  implementation "org.springframework:spring-jdbc"
45
41
  <%_ } _%>
42
+ // jhipster-needle-gradle-dependency - JHipster will add additional dependencies here
46
43
  }
47
44
 
48
45
  project.ext.diffChangelogFile = "<%= SERVER_MAIN_RES_DIR %>config/liquibase/changelog/" + new Date().format("yyyyMMddHHmmss") + "_changelog.xml"
@@ -19,7 +19,6 @@
19
19
  /* eslint-disable consistent-return */
20
20
  import assert from 'assert/strict';
21
21
  import BaseApplicationGenerator from '../base-application/index.js';
22
- import { GENERATOR_MAVEN, GENERATOR_BOOTSTRAP_APPLICATION_SERVER } from '../generator-list.js';
23
22
  import files from './files.js';
24
23
  import { MAVEN } from './constants.js';
25
24
  import cleanupOldServerFilesTask from './cleanup.js';
@@ -28,10 +27,10 @@ export default class MavenGenerator extends BaseApplicationGenerator {
28
27
  pomStorage;
29
28
  async beforeQueue() {
30
29
  if (!this.fromBlueprint) {
31
- await this.composeWithBlueprints(GENERATOR_MAVEN);
30
+ await this.composeWithBlueprints();
32
31
  }
33
32
  if (!this.delegateToBlueprint) {
34
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_SERVER);
33
+ await this.dependsOnBootstrapApplicationServer();
35
34
  }
36
35
  }
37
36
  get initializing() {
@@ -63,7 +62,8 @@ export default class MavenGenerator extends BaseApplicationGenerator {
63
62
  async verify({ application }) {
64
63
  assert.equal(application.buildTool, MAVEN);
65
64
  },
66
- addSourceNeddles({ source }) {
65
+ addSourceNeddles({ application, source }) {
66
+ const { javaProperties } = application;
67
67
  function createForEach(callback) {
68
68
  return (arg) => {
69
69
  const argArray = Array.isArray(arg) ? arg : [arg];
@@ -80,7 +80,13 @@ export default class MavenGenerator extends BaseApplicationGenerator {
80
80
  source.addMavenPluginManagement = createForEach(plugin => this.pomStorage.addPluginManagement(plugin));
81
81
  source.addMavenPluginRepository = createForEach(repository => this.pomStorage.addPluginRepository(repository));
82
82
  source.addMavenProfile = createForEach(profile => this.pomStorage.addProfile(profile));
83
- source.addMavenProperty = createForEach(property => this.pomStorage.addProperty(property));
83
+ source.addMavenProperty = properties => {
84
+ properties = Array.isArray(properties) ? properties : [properties];
85
+ for (const property of properties) {
86
+ javaProperties[property.property] = property.value;
87
+ this.pomStorage.addProperty(property);
88
+ }
89
+ };
84
90
  source.addMavenRepository = createForEach(repository => this.pomStorage.addRepository(repository));
85
91
  source.addMavenDefinition = definition => {
86
92
  // profiles should be added first due to inProfile
@@ -92,7 +98,9 @@ export default class MavenGenerator extends BaseApplicationGenerator {
92
98
  definition.distributionManagement?.forEach(distribution => this.pomStorage.addDistributionManagement(distribution));
93
99
  definition.plugins?.forEach(plugin => this.pomStorage.addPlugin(plugin));
94
100
  definition.pluginRepositories?.forEach(repository => this.pomStorage.addPluginRepository(repository));
95
- definition.properties?.forEach(property => this.pomStorage.addProperty(property));
101
+ if (definition.properties) {
102
+ source.addMavenProperty(definition.properties);
103
+ }
96
104
  definition.repositories?.forEach(repository => this.pomStorage.addRepository(repository));
97
105
  definition.annotationProcessors?.forEach(annotation => this.pomStorage.addAnnotationProcessor(annotation));
98
106
  };
@@ -0,0 +1,5 @@
1
+ const command = {
2
+ configs: {},
3
+ import: [],
4
+ };
5
+ export default command;
@@ -0,0 +1,268 @@
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
+ export default class CodeQualityGenerator extends BaseApplicationGenerator {
21
+ async beforeQueue() {
22
+ if (!this.fromBlueprint) {
23
+ await this.composeWithBlueprints();
24
+ }
25
+ if (!this.delegateToBlueprint) {
26
+ await this.dependsOnBootstrapApplication();
27
+ await this.dependsOnJHipster('maven');
28
+ }
29
+ }
30
+ get initializing() {
31
+ return this.asInitializingTaskGroup({
32
+ async parseCommand() {
33
+ await this.parseCurrentJHipsterCommand();
34
+ },
35
+ });
36
+ }
37
+ get [BaseApplicationGenerator.INITIALIZING]() {
38
+ return this.delegateTasksToBlueprint(() => this.initializing);
39
+ }
40
+ get prompting() {
41
+ return this.asPromptingTaskGroup({
42
+ async promptCommand({ control }) {
43
+ if (control.existingProject && this.options.askAnswered !== true)
44
+ return;
45
+ await this.promptCurrentJHipsterCommand();
46
+ },
47
+ });
48
+ }
49
+ get [BaseApplicationGenerator.PROMPTING]() {
50
+ return this.delegateTasksToBlueprint(() => this.prompting);
51
+ }
52
+ get loading() {
53
+ return this.asLoadingTaskGroup({
54
+ async loadConfig({ application }) {
55
+ await this.loadCurrentJHipsterCommandConfig(application);
56
+ },
57
+ });
58
+ }
59
+ get [BaseApplicationGenerator.LOADING]() {
60
+ return this.delegateTasksToBlueprint(() => this.loading);
61
+ }
62
+ get postWriting() {
63
+ return this.asPostWritingTaskGroup({
64
+ checkstyle({ application, source }) {
65
+ const { javaDependencies } = application;
66
+ source.addMavenDefinition({
67
+ properties: [
68
+ { property: 'checkstyle.version', value: javaDependencies.checkstyle },
69
+ { property: 'maven-checkstyle-plugin.version', value: javaDependencies['maven-checkstyle-plugin'] },
70
+ { property: 'nohttp-checkstyle.version', value: javaDependencies['nohttp-checkstyle'] },
71
+ ],
72
+ plugins: [{ groupId: 'org.apache.maven.plugins', artifactId: 'maven-checkstyle-plugin' }],
73
+ pluginManagement: [
74
+ {
75
+ groupId: 'org.apache.maven.plugins',
76
+ artifactId: 'maven-checkstyle-plugin',
77
+ // eslint-disable-next-line no-template-curly-in-string
78
+ version: '${maven-checkstyle-plugin.version}',
79
+ additionalContent: `
80
+ <dependencies>
81
+ <dependency>
82
+ <groupId>com.puppycrawl.tools</groupId>
83
+ <artifactId>checkstyle</artifactId>
84
+ <version>\${checkstyle.version}</version>
85
+ </dependency>
86
+ <dependency>
87
+ <groupId>io.spring.nohttp</groupId>
88
+ <artifactId>nohttp-checkstyle</artifactId>
89
+ <version>\${nohttp-checkstyle.version}</version>
90
+ </dependency>
91
+ </dependencies>
92
+ <configuration>
93
+ <configLocation>checkstyle.xml</configLocation>
94
+ <includes>pom.xml,README.md</includes>
95
+ <excludes>.git/**/*,target/**/*,node_modules/**/*</excludes>
96
+ <sourceDirectories>./</sourceDirectories>
97
+ </configuration>
98
+ <executions>
99
+ <execution>
100
+ <goals>
101
+ <goal>check</goal>
102
+ </goals>
103
+ </execution>
104
+ </executions>
105
+ `,
106
+ },
107
+ ],
108
+ });
109
+ },
110
+ jacoco({ application, source }) {
111
+ const { javaDependencies } = application;
112
+ source.addMavenDefinition({
113
+ properties: [{ property: 'jacoco-maven-plugin.version', value: javaDependencies['jacoco-maven-plugin'] }],
114
+ plugins: [{ groupId: 'org.jacoco', artifactId: 'jacoco-maven-plugin' }],
115
+ pluginManagement: [
116
+ {
117
+ groupId: 'org.jacoco',
118
+ artifactId: 'jacoco-maven-plugin',
119
+ // eslint-disable-next-line no-template-curly-in-string
120
+ version: '${jacoco-maven-plugin.version}',
121
+ additionalContent: `
122
+ <executions>
123
+ <execution>
124
+ <id>pre-unit-tests</id>
125
+ <goals>
126
+ <goal>prepare-agent</goal>
127
+ </goals>
128
+ </execution>
129
+ <execution>
130
+ <!-- Ensures that the code coverage report for unit tests is created after unit tests have been run -->
131
+ <id>post-unit-test</id>
132
+ <phase>test</phase>
133
+ <goals>
134
+ <goal>report</goal>
135
+ </goals>
136
+ </execution>
137
+ <execution>
138
+ <id>pre-integration-tests</id>
139
+ <goals>
140
+ <goal>prepare-agent-integration</goal>
141
+ </goals>
142
+ </execution>
143
+ <execution>
144
+ <!-- Ensures that the code coverage report for integration tests is created after integration tests have been run -->
145
+ <id>post-integration-tests</id>
146
+ <phase>post-integration-test</phase>
147
+ <goals>
148
+ <goal>report-integration</goal>
149
+ </goals>
150
+ </execution>
151
+ </executions>
152
+ `,
153
+ },
154
+ ],
155
+ });
156
+ },
157
+ spotless({ application, source }) {
158
+ const { javaDependencies } = application;
159
+ source.addMavenDefinition({
160
+ properties: [{ property: 'spotless-maven-plugin.version', value: javaDependencies['spotless-maven-plugin'] }],
161
+ plugins: [{ groupId: 'com.diffplug.spotless', artifactId: 'spotless-maven-plugin' }],
162
+ pluginManagement: [
163
+ {
164
+ groupId: 'com.diffplug.spotless',
165
+ artifactId: 'spotless-maven-plugin',
166
+ // eslint-disable-next-line no-template-curly-in-string
167
+ version: '${spotless-maven-plugin.version}',
168
+ additionalContent: `
169
+ <configuration>
170
+ <java>
171
+ <!-- <removeUnusedImports/> -->
172
+ </java>
173
+ </configuration>
174
+ <executions>
175
+ <execution>
176
+ <id>spotless</id>
177
+ <phase>process-sources</phase>
178
+ <goals>
179
+ <goal>apply</goal>
180
+ </goals>
181
+ </execution>
182
+ </executions>
183
+ `,
184
+ },
185
+ ],
186
+ });
187
+ },
188
+ sonar({ application, source }) {
189
+ const { javaDependencies } = application;
190
+ source.addMavenDefinition({
191
+ properties: [
192
+ { property: 'properties-maven-plugin.version', value: javaDependencies['properties-maven-plugin'] },
193
+ { property: 'sonar-maven-plugin.version', value: javaDependencies['sonar-maven-plugin'] },
194
+ ],
195
+ plugins: [
196
+ { groupId: 'org.codehaus.mojo', artifactId: 'properties-maven-plugin' },
197
+ { groupId: 'org.sonarsource.scanner.maven', artifactId: 'sonar-maven-plugin' },
198
+ ],
199
+ pluginManagement: [
200
+ {
201
+ groupId: 'org.codehaus.mojo',
202
+ artifactId: 'properties-maven-plugin',
203
+ // eslint-disable-next-line no-template-curly-in-string
204
+ version: '${properties-maven-plugin.version}',
205
+ additionalContent: `
206
+ <executions>
207
+ <execution>
208
+ <phase>initialize</phase>
209
+ <goals>
210
+ <goal>read-project-properties</goal>
211
+ </goals>
212
+ <configuration>
213
+ <files>
214
+ <file>sonar-project.properties</file>
215
+ </files>
216
+ </configuration>
217
+ </execution>
218
+ </executions>`,
219
+ },
220
+ {
221
+ groupId: 'org.sonarsource.scanner.maven',
222
+ artifactId: 'sonar-maven-plugin',
223
+ // eslint-disable-next-line no-template-curly-in-string
224
+ version: '${sonar-maven-plugin.version}',
225
+ },
226
+ ],
227
+ });
228
+ },
229
+ modernizer({ application, source }) {
230
+ const { javaDependencies, databaseTypeCassandra, packageName } = application;
231
+ source.addMavenDefinition({
232
+ properties: [{ property: 'modernizer-maven-plugin.version', value: javaDependencies['modernizer-maven-plugin'] }],
233
+ plugins: [{ groupId: 'org.gaul', artifactId: 'modernizer-maven-plugin' }],
234
+ pluginManagement: [
235
+ {
236
+ groupId: 'org.gaul',
237
+ artifactId: 'modernizer-maven-plugin',
238
+ // eslint-disable-next-line no-template-curly-in-string
239
+ version: '${modernizer-maven-plugin.version}',
240
+ additionalContent: `
241
+ <executions>
242
+ <execution>
243
+ <id>modernizer</id>
244
+ <phase>package</phase>
245
+ <goals>
246
+ <goal>modernizer</goal>
247
+ </goals>
248
+ </execution>
249
+ </executions>
250
+ <configuration>
251
+ <javaVersion>\${java.version}</javaVersion>${databaseTypeCassandra
252
+ ? `
253
+ <ignoreClassNamePatterns>
254
+ <ignoreClassNamePattern>${packageName}.domain.PersistentTokenHelper__MapperGenerated</ignoreClassNamePattern>
255
+ <ignoreClassNamePattern>${packageName}.domain.UserHelper__MapperGenerated</ignoreClassNamePattern>
256
+ </ignoreClassNamePatterns>`
257
+ : ''}
258
+ </configuration>`,
259
+ },
260
+ ],
261
+ });
262
+ },
263
+ });
264
+ }
265
+ get [BaseApplicationGenerator.POST_WRITING]() {
266
+ return this.delegateTasksToBlueprint(() => this.postWriting);
267
+ }
268
+ }
@@ -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';
@@ -0,0 +1,5 @@
1
+ const command = {
2
+ configs: {},
3
+ import: [],
4
+ };
5
+ export default command;