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
@@ -18,7 +18,7 @@
18
18
  */
19
19
  import fs from 'fs';
20
20
  import chalk from 'chalk';
21
- import * as _ from 'lodash-es';
21
+ import { isArray, lowerFirst, snakeCase, uniq, upperFirst } from 'lodash-es';
22
22
  import { reservedKeywords, databaseTypes, applicationTypes, entityOptions, fieldTypes, validations, clientFrameworkTypes, } from '../../jdl/jhipster/index.js';
23
23
  import { inputIsNumber, inputIsSignedDecimalNumber, inputIsSignedNumber } from './support/index.js';
24
24
  const { isReservedPaginationWords, isReservedFieldName, isReservedTableName } = reservedKeywords;
@@ -55,7 +55,7 @@ const prompts = {
55
55
  };
56
56
  export default prompts;
57
57
  const getFieldNameUndercored = fields => ['id'].concat(fields.map(field => {
58
- return _.snakeCase(field.fieldName);
58
+ return snakeCase(field.fieldName);
59
59
  }));
60
60
  function askForMicroserviceJson() {
61
61
  const context = this.entityData;
@@ -413,7 +413,7 @@ async function askForField() {
413
413
  if (input.charAt(0) === input.charAt(0).toUpperCase()) {
414
414
  return 'Your field name cannot start with an upper case letter';
415
415
  }
416
- if (input === 'id' || getFieldNameUndercored(this.entityConfig.fields).includes(_.snakeCase(input))) {
416
+ if (input === 'id' || getFieldNameUndercored(this.entityConfig.fields).includes(snakeCase(input))) {
417
417
  return 'Your field name cannot use an already existing field name';
418
418
  }
419
419
  if ((clientFramework === undefined || clientFramework === ANGULAR) && isReservedFieldName(input, ANGULAR)) {
@@ -504,7 +504,7 @@ async function askForField() {
504
504
  return 'Enum values cannot contain special characters (allowed characters: A-Z, a-z, 0-9 and _)';
505
505
  }
506
506
  const enums = input.replace(/\s/g, '').split(',');
507
- if (_.uniq(enums).length !== enums.length) {
507
+ if (uniq(enums).length !== enums.length) {
508
508
  return `Enum values cannot contain duplicates (typed values: ${input})`;
509
509
  }
510
510
  for (let i = 0; i < enums.length; i++) {
@@ -659,7 +659,7 @@ async function askForField() {
659
659
  },
660
660
  ]);
661
661
  if (answers.fieldIsEnum) {
662
- answers.fieldType = _.upperFirst(answers.fieldType);
662
+ answers.fieldType = upperFirst(answers.fieldType);
663
663
  answers.fieldValues = answers.fieldValues.toUpperCase();
664
664
  }
665
665
  const field = {
@@ -721,7 +721,7 @@ async function askForRelationship(...args) {
721
721
  if (input.charAt(0) === input.charAt(0).toUpperCase()) {
722
722
  return 'Your relationship cannot start with an upper case letter';
723
723
  }
724
- if (input === 'id' || getFieldNameUndercored(this.entityConfig.fields).includes(_.snakeCase(input))) {
724
+ if (input === 'id' || getFieldNameUndercored(this.entityConfig.fields).includes(snakeCase(input))) {
725
725
  return 'Your relationship cannot use an already existing field name';
726
726
  }
727
727
  if (isReservedTableName(input, 'JAVA')) {
@@ -730,7 +730,7 @@ async function askForRelationship(...args) {
730
730
  return true;
731
731
  },
732
732
  message: 'What is the name of the relationship?',
733
- default: response => _.lowerFirst(response.otherEntityName),
733
+ default: response => lowerFirst(response.otherEntityName),
734
734
  },
735
735
  {
736
736
  type: 'list',
@@ -774,7 +774,7 @@ async function askForRelationship(...args) {
774
774
  type: 'input',
775
775
  name: 'otherEntityRelationshipName',
776
776
  message: 'What is the name of this relationship in the other entity?',
777
- default: () => _.lowerFirst(name),
777
+ default: () => lowerFirst(name),
778
778
  },
779
779
  {
780
780
  type: 'input',
@@ -808,7 +808,7 @@ async function askForRelationship(...args) {
808
808
  const relationship = {
809
809
  relationshipSide: 'left',
810
810
  relationshipName: answers.relationshipName,
811
- otherEntityName: _.lowerFirst(answers.otherEntityName),
811
+ otherEntityName: lowerFirst(answers.otherEntityName),
812
812
  relationshipType: answers.relationshipType,
813
813
  relationshipValidateRules: answers.relationshipValidateRules,
814
814
  otherEntityField: answers.otherEntityField,
@@ -817,7 +817,7 @@ async function askForRelationship(...args) {
817
817
  otherEntityRelationshipName: answers.otherEntityRelationshipName,
818
818
  };
819
819
  if (this.isBuiltInUser(answers.otherEntityName)) {
820
- relationship.otherEntityRelationshipName = _.lowerFirst(name);
820
+ relationship.otherEntityRelationshipName = lowerFirst(name);
821
821
  }
822
822
  this.entityConfig.relationships = this.entityConfig.relationships.concat(relationship);
823
823
  await askForRelationship.call(this, ...args);
@@ -834,7 +834,7 @@ function logFieldsAndRelationships() {
834
834
  this.log.log(chalk.white('Fields'));
835
835
  this.entityConfig.fields.forEach(field => {
836
836
  const validationDetails = [];
837
- const fieldValidate = _.isArray(field.fieldValidateRules) && field.fieldValidateRules.length >= 1;
837
+ const fieldValidate = isArray(field.fieldValidateRules) && field.fieldValidateRules.length >= 1;
838
838
  if (fieldValidate === true) {
839
839
  if (field.fieldValidateRules.includes(REQUIRED)) {
840
840
  validationDetails.push(REQUIRED);
@@ -877,7 +877,7 @@ function logFieldsAndRelationships() {
877
877
  if (relationship.relationshipValidateRules && relationship.relationshipValidateRules.includes(REQUIRED)) {
878
878
  validationDetails.push(REQUIRED);
879
879
  }
880
- this.log.log(`${chalk.red(relationship.relationshipName)} ${chalk.white(`(${_.upperFirst(relationship.otherEntityName)})`)} ${chalk.cyan(relationship.relationshipType)} ${chalk.cyan(validationDetails.join(' '))}`);
880
+ this.log.log(`${chalk.red(relationship.relationshipName)} ${chalk.white(`(${upperFirst(relationship.otherEntityName)})`)} ${chalk.cyan(relationship.relationshipType)} ${chalk.cyan(validationDetails.join(' '))}`);
881
881
  });
882
882
  this.log.log();
883
883
  }
@@ -17,16 +17,15 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import BaseApplicationGenerator from '../base-application/index.js';
20
- import { GENERATOR_BOOTSTRAP_APPLICATION, GENERATOR_FEIGN_CLIENT } from '../generator-list.js';
21
20
  import { feignFiles } from './files.js';
22
21
  import cleanupTask from './cleanup.js';
23
22
  export default class FeignClientGenerator extends BaseApplicationGenerator {
24
23
  async beforeQueue() {
25
24
  if (!this.fromBlueprint) {
26
- await this.composeWithBlueprints(GENERATOR_FEIGN_CLIENT);
25
+ await this.composeWithBlueprints();
27
26
  }
28
27
  if (!this.delegateToBlueprint) {
29
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION);
28
+ await this.dependsOnBootstrapApplication();
30
29
  }
31
30
  }
32
31
  get writing() {
@@ -60,6 +59,6 @@ export default class FeignClientGenerator extends BaseApplicationGenerator {
60
59
  });
61
60
  }
62
61
  get [BaseApplicationGenerator.POST_WRITING]() {
63
- return this.asPostWritingTaskGroup(this.delegateTasksToBlueprint(() => this.postWriting));
62
+ return this.delegateTasksToBlueprint(() => this.postWriting);
64
63
  }
65
64
  }
@@ -17,17 +17,16 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import BaseApplicationGenerator from '../base-application/index.js';
20
- import { GENERATOR_GATLING, GENERATOR_BOOTSTRAP_APPLICATION } from '../generator-list.js';
21
20
  import writeTask from './files.js';
22
21
  import cleanupTask from './cleanup.js';
23
22
  import writeEntityTask, { cleanupEntitiesTask } from './entity-files.js';
24
23
  export default class GatlingGenerator extends BaseApplicationGenerator {
25
24
  async beforeQueue() {
26
25
  if (!this.fromBlueprint) {
27
- await this.composeWithBlueprints(GENERATOR_GATLING);
26
+ await this.composeWithBlueprints();
28
27
  }
29
28
  if (!this.delegateToBlueprint) {
30
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION);
29
+ await this.dependsOnBootstrapApplication();
31
30
  }
32
31
  }
33
32
  get writing() {
@@ -28,6 +28,7 @@ export const files = {
28
28
  'README.md',
29
29
  'tsconfig.json',
30
30
  'vitest.config.ts',
31
+ 'vitest.test-setup.ts',
31
32
  '.blueprint/cli/commands.mjs',
32
33
  '.blueprint/generate-sample/command.mjs',
33
34
  '.blueprint/generate-sample/generator.mjs',
@@ -17,7 +17,7 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import chalk from 'chalk';
20
- import lodash from 'lodash';
20
+ import { camelCase, upperFirst, snakeCase } from 'lodash-es';
21
21
  import BaseGenerator from '../base/index.js';
22
22
  import { PRIORITY_NAMES_LIST as BASE_PRIORITY_NAMES_LIST } from '../base/priorities.js';
23
23
  import { requiredConfig, defaultConfig, defaultSubGeneratorConfig, allGeneratorsConfig, prompts, subGeneratorPrompts, GENERATE_SNAPSHOTS, LINK_JHIPSTER_DEPENDENCY, ALL_GENERATORS, GENERATORS, PRIORITIES, SUB_GENERATORS, ADDITIONAL_SUB_GENERATORS, WRITTEN, LOCAL_BLUEPRINT_OPTION, ALL_PRIORITIES, DYNAMIC, } from './constants.js';
@@ -27,12 +27,11 @@ import { packageJson } from '../../lib/index.js';
27
27
  import { SKIP_COMMIT_HOOK } from '../init/constants.js';
28
28
  import command from './command.js';
29
29
  import { BLUEPRINT_API_VERSION, NODE_VERSION } from '../generator-constants.js';
30
- const { camelCase, upperFirst, snakeCase } = lodash;
31
- const { GENERATOR_PROJECT_NAME, GENERATOR_INIT, GENERATOR_GENERATE_BLUEPRINT } = GENERATOR_LIST;
30
+ const { GENERATOR_PROJECT_NAME, GENERATOR_INIT } = GENERATOR_LIST;
32
31
  export default class extends BaseGenerator {
33
32
  async _beforeQueue() {
34
33
  if (!this.fromBlueprint) {
35
- await this.composeWithBlueprints(GENERATOR_GENERATE_BLUEPRINT);
34
+ await this.composeWithBlueprints();
36
35
  }
37
36
  if (!this.delegateToBlueprint) {
38
37
  await this.dependsOnJHipster(GENERATOR_PROJECT_NAME);
@@ -12,12 +12,13 @@ export default class extends BaseGenerator {
12
12
 
13
13
  get [BaseGenerator.INITIALIZING]() {
14
14
  return this.asInitializingTaskGroup({
15
+ async parseCommand() {
16
+ await this.parseCurrentJHipsterCommand();
17
+ },
15
18
  async initializeOptions() {
16
- this.parseJHipsterArguments(command.arguments);
17
19
  if (this.sampleName && !this.sampleName.endsWith('.jdl')) {
18
20
  this.sampleName += '.jdl';
19
21
  }
20
- this.parseJHipsterOptions(command.options);
21
22
  },
22
23
  });
23
24
  }
@@ -16,11 +16,29 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
+ <%_ if (!sbs && !customGenerator) { _%>
20
+ import { command as jhipsterCommand } from 'generator-jhipster/generators/<%- subGenerator %>';
21
+
22
+ <%_ } _%>
19
23
  /**
20
24
  * @type {import('generator-jhipster').JHipsterCommandDefinition}
21
25
  */
22
26
  const command = {
23
- options: {},
27
+ options: {
28
+ <%_ if (!sbs && !customGenerator) { _%>
29
+ ...jhipsterCommand.options,
30
+ <%_ } _%>
31
+ },
32
+ configs: {
33
+ <%_ if (!sbs && !customGenerator) { _%>
34
+ ...jhipsterCommand.configs,
35
+ <%_ } _%>
36
+ },
37
+ arguments: {
38
+ <%_ if (!sbs && !customGenerator) { _%>
39
+ ...jhipsterCommand.arguments,
40
+ <%_ } _%>
41
+ },
24
42
  };
25
43
 
26
44
  export default command;
@@ -0,0 +1,6 @@
1
+ import { vi } from 'vitest';
2
+ import { defineDefaults } from 'generator-jhipster/testing';
3
+
4
+ defineDefaults({
5
+ mockFactory: () => vi.fn(),
6
+ });
@@ -16,16 +16,19 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
+ import { readFileSync } from 'fs';
20
+ import { join } from 'path';
21
+ import { fileURLToPath } from 'url';
19
22
  export const BLUEPRINT_API_VERSION = 'jhipster-8';
20
23
  // jhipster-bom version
21
- export const JHIPSTER_DEPENDENCIES_VERSION = '8.2.0';
24
+ export const JHIPSTER_DEPENDENCIES_VERSION = '8.3.0';
22
25
  // Version of Java
23
26
  export const JAVA_VERSION = '17';
24
27
  export const JAVA_COMPATIBLE_VERSIONS = ['17', '18', '19', '20', '21'];
25
28
  // Force spring milestone repository. Spring Boot milestones are detected.
26
29
  export const ADD_SPRING_MILESTONE_REPOSITORY = false;
27
30
  // Version of Node, NPM
28
- export const NODE_VERSION = '20.11.1';
31
+ export const NODE_VERSION = readFileSync(join(fileURLToPath(import.meta.url), '../init/resources/.node-version'), 'utf-8').trim();
29
32
  export const OPENAPI_GENERATOR_CLI_VERSION = '2.13.1';
30
33
  // The version should be coherent with the one from spring-data-elasticsearch project
31
34
  export const ELASTICSEARCH_TAG = '8.10.4';
@@ -19,9 +19,7 @@
19
19
  /* eslint-disable consistent-return */
20
20
  import chalk from 'chalk';
21
21
  import BaseGenerator from '../base/index.js';
22
- import { GENERATOR_GIT } from '../generator-list.js';
23
22
  import { files } from './files.js';
24
- import command from './command.js';
25
23
  /**
26
24
  * @class
27
25
  * @extends {BaseGenerator}
@@ -32,13 +30,13 @@ export default class InitGenerator extends BaseGenerator {
32
30
  skipGit;
33
31
  async beforeQueue() {
34
32
  if (!this.fromBlueprint) {
35
- await this.composeWithBlueprints(GENERATOR_GIT);
33
+ await this.composeWithBlueprints();
36
34
  }
37
35
  }
38
36
  get initializing() {
39
37
  return this.asInitializingTaskGroup({
40
- parseOptions() {
41
- this.parseJHipsterOptions(command.options);
38
+ async parseCommand() {
39
+ await this.parseCurrentJHipsterCommand();
42
40
  },
43
41
  async checkGit() {
44
42
  if (!this.skipGit) {
@@ -0,0 +1,32 @@
1
+ const command = {
2
+ options: {},
3
+ configs: {
4
+ enableGradleEnterprise: {
5
+ cli: {
6
+ type: Boolean,
7
+ },
8
+ prompt: {
9
+ type: 'confirm',
10
+ message: 'Do you want to enable Gradle Enterprise integration?',
11
+ },
12
+ default: false,
13
+ description: 'Enable Gradle Enterprise integration',
14
+ scope: 'storage',
15
+ },
16
+ gradleEnterpriseHost: {
17
+ cli: {
18
+ type: String,
19
+ },
20
+ prompt: {
21
+ when: answers => answers.enableGradleEnterprise,
22
+ type: 'input',
23
+ message: 'Enter your Gradle Enterprise host',
24
+ validate: input => (input.length === 0 ? 'Please enter your Gradle Enterprise host' : true),
25
+ },
26
+ description: 'Gradle Enterprise Host',
27
+ scope: 'storage',
28
+ },
29
+ },
30
+ import: [],
31
+ };
32
+ export default command;
@@ -16,7 +16,6 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- export const GRADLE_VERSION = '8.6';
20
19
  export const GRADLE = 'gradle';
21
20
  export const GRADLE_DESCRIPTION = 'Gradle';
22
21
  export const BUILD_DESTINATION_VALUE = 'build';
@@ -19,17 +19,11 @@
19
19
  export default {
20
20
  gradle: [
21
21
  {
22
- templates: [
23
- '.prettierignore.jhi.gradle',
24
- 'gradle/wrapper/gradle-wrapper.properties',
25
- 'buildSrc/build.gradle',
26
- 'buildSrc/gradle/libs.versions.toml',
27
- 'gradle/libs.versions.toml',
28
- ],
22
+ templates: ['.prettierignore.jhi.gradle', 'buildSrc/build.gradle', 'buildSrc/gradle/libs.versions.toml', 'gradle/libs.versions.toml'],
29
23
  },
30
24
  {
31
25
  transform: false,
32
- templates: ['gradlew', 'gradlew.bat', 'gradle/wrapper/gradle-wrapper.jar'],
26
+ templates: ['gradlew', 'gradlew.bat', 'gradle/wrapper/gradle-wrapper.jar', 'gradle/wrapper/gradle-wrapper.properties'],
33
27
  },
34
28
  ],
35
29
  };
@@ -19,21 +19,44 @@
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_GRADLE, GENERATOR_BOOTSTRAP_APPLICATION_SERVER } from '../generator-list.js';
23
22
  import files from './files.js';
24
23
  import { GRADLE } from './constants.js';
25
24
  import { GRADLE_BUILD_SRC_DIR } from '../generator-constants.js';
26
25
  import cleanupOldServerFilesTask from './cleanup.js';
27
- import { applyFromGradleCallback, addGradleDependenciesCallback, addGradleMavenRepositoryCallback, addGradlePluginCallback, addGradlePluginManagementCallback, addGradlePropertyCallback, addGradleBuildSrcDependencyCallback, addGradleDependenciesCatalogVersionCallback, addGradleBuildSrcDependencyCatalogVersionCallback, addGradleDependencyCatalogLibrariesCallback, addGradleDependencyCatalogPluginsCallback, addGradleDependencyFromCatalogCallback, addGradlePluginFromCatalogCallback, sortDependencies, } from './internal/needles.js';
26
+ import { applyFromGradleCallback, addGradleDependenciesCallback, addGradleMavenRepositoryCallback, addGradlePluginCallback, addGradlePluginManagementCallback, addGradlePropertyCallback, addGradleDependenciesCatalogVersionCallback, addGradleDependencyCatalogLibrariesCallback, addGradleDependencyCatalogPluginsCallback, addGradleDependencyFromCatalogCallback, addGradlePluginFromCatalogCallback, sortDependencies, gradleNeedleOptionsWithDefaults, } from './internal/needles.js';
27
+ import { mutateData } from '../base/support/config.js';
28
28
  export default class GradleGenerator extends BaseApplicationGenerator {
29
+ gradleVersionFromWrapper;
29
30
  async beforeQueue() {
30
31
  if (!this.fromBlueprint) {
31
- await this.composeWithBlueprints(GENERATOR_GRADLE);
32
+ await this.composeWithBlueprints();
32
33
  }
33
34
  if (!this.delegateToBlueprint) {
34
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION_SERVER);
35
+ await this.dependsOnBootstrapApplicationServer();
35
36
  }
36
37
  }
38
+ get initializing() {
39
+ return this.asInitializingTaskGroup({
40
+ async parseCommand() {
41
+ await this.parseCurrentJHipsterCommand();
42
+ },
43
+ });
44
+ }
45
+ get [BaseApplicationGenerator.INITIALIZING]() {
46
+ return this.delegateTasksToBlueprint(() => this.initializing);
47
+ }
48
+ get prompting() {
49
+ return this.asPromptingTaskGroup({
50
+ async promptCommand({ control }) {
51
+ if (control.existingProject && this.options.askAnswered !== true)
52
+ return;
53
+ await this.promptCurrentJHipsterCommand();
54
+ },
55
+ });
56
+ }
57
+ get [BaseApplicationGenerator.PROMPTING]() {
58
+ return this.delegateTasksToBlueprint(() => this.prompting);
59
+ }
37
60
  get configuring() {
38
61
  return this.asConfiguringTaskGroup({
39
62
  configure() {
@@ -48,14 +71,39 @@ export default class GradleGenerator extends BaseApplicationGenerator {
48
71
  get [BaseApplicationGenerator.CONFIGURING]() {
49
72
  return this.delegateTasksToBlueprint(() => this.configuring);
50
73
  }
74
+ get loading() {
75
+ return this.asLoadingTaskGroup({
76
+ async loadConfig({ application }) {
77
+ await this.loadCurrentJHipsterCommandConfig(application);
78
+ },
79
+ loadGradleVersion({ application }) {
80
+ const propFile = this.readTemplate(this.jhipsterTemplatePath('gradle/wrapper/gradle-wrapper.properties'));
81
+ this.gradleVersionFromWrapper = propFile?.toString().match(/gradle-(\d+\.\d+(?:\.\d+)?)-/)?.[1];
82
+ if (!this.gradleVersionFromWrapper) {
83
+ throw new Error('Could not determine Gradle version from gradle-wrapper.properties');
84
+ }
85
+ mutateData(application, {
86
+ gradleVersion: this.useVersionPlaceholders ? 'GRADLE_VERSION' : this.gradleVersionFromWrapper,
87
+ });
88
+ },
89
+ });
90
+ }
91
+ get [BaseApplicationGenerator.LOADING]() {
92
+ return this.delegateTasksToBlueprint(() => this.loading);
93
+ }
51
94
  get preparing() {
52
95
  return this.asPreparingTaskGroup({
53
96
  async verify({ application }) {
54
97
  assert.equal(application.buildTool, GRADLE);
55
98
  },
56
- addSourceNeddles({ source }) {
99
+ prepareConventionsPlugins({ application }) {
100
+ application.gradleBuildSrc = GRADLE_BUILD_SRC_DIR;
101
+ },
102
+ addSourceNeddles({ application, source }) {
103
+ const { gradleBuildSrc } = application;
57
104
  source.applyFromGradle = script => this.editFile('build.gradle', applyFromGradleCallback(script));
58
- source.addGradleDependencies = (dependencies, { gradleFile = 'build.gradle' } = {}) => {
105
+ source.addGradleDependencies = (dependencies, options = {}) => {
106
+ const { gradleFile } = gradleNeedleOptionsWithDefaults(options);
59
107
  dependencies = [...dependencies].sort(sortDependencies);
60
108
  this.editFile(gradleFile, addGradleDependenciesCallback(dependencies));
61
109
  };
@@ -63,13 +111,16 @@ export default class GradleGenerator extends BaseApplicationGenerator {
63
111
  source.addGradlePlugin = plugin => this.editFile('build.gradle', addGradlePluginCallback(plugin));
64
112
  source.addGradleMavenRepository = repository => this.editFile('build.gradle', addGradleMavenRepositoryCallback(repository));
65
113
  source.addGradlePluginManagement = plugin => this.editFile('settings.gradle', addGradlePluginManagementCallback(plugin));
66
- source.addGradleProperty = property => this.editFile('gradle.properties', addGradlePropertyCallback(property));
67
- source.addGradleBuildSrcDependency = dependency => this.editFile(`${GRADLE_BUILD_SRC_DIR}/build.gradle`, addGradleBuildSrcDependencyCallback(dependency));
68
- source.addGradleDependencyCatalogVersions = versions => this.editFile('gradle/libs.versions.toml', addGradleDependenciesCatalogVersionCallback(versions));
69
- source.addGradleDependencyCatalogVersion = version => source.addGradleDependencyCatalogVersions([version]);
70
- source.addGradleDependencyCatalogLibraries = (libs, { gradleFile = 'build.gradle' } = {}) => {
114
+ source.addGradleProperty = property => {
115
+ application.javaProperties[property.property] = property.value;
116
+ this.editFile('gradle.properties', addGradlePropertyCallback(property));
117
+ };
118
+ source.addGradleDependencyCatalogVersions = (versions, { gradleVersionCatalogFile = 'gradle/libs.versions.toml' } = {}) => this.editFile(gradleVersionCatalogFile, addGradleDependenciesCatalogVersionCallback(versions));
119
+ source.addGradleDependencyCatalogVersion = (version, options) => source.addGradleDependencyCatalogVersions([version], options);
120
+ source.addGradleDependencyCatalogLibraries = (libs, options = {}) => {
121
+ const { gradleFile, gradleVersionCatalogFile } = gradleNeedleOptionsWithDefaults(options);
71
122
  libs = [...libs].sort((a, b) => a.libraryName.localeCompare(b.libraryName));
72
- this.editFile('gradle/libs.versions.toml', addGradleDependencyCatalogLibrariesCallback(libs));
123
+ this.editFile(gradleVersionCatalogFile, addGradleDependencyCatalogLibrariesCallback(libs));
73
124
  this.editFile(gradleFile, addGradleDependencyFromCatalogCallback(libs));
74
125
  };
75
126
  source.addGradleDependencyCatalogLibrary = (lib, options) => source.addGradleDependencyCatalogLibraries([lib], options);
@@ -78,7 +129,15 @@ export default class GradleGenerator extends BaseApplicationGenerator {
78
129
  this.editFile('build.gradle', addGradlePluginFromCatalogCallback(plugins));
79
130
  };
80
131
  source.addGradleDependencyCatalogPlugin = plugin => source.addGradleDependencyCatalogPlugins([plugin]);
81
- source.addGradleBuildSrcDependencyCatalogVersion = version => this.editFile(`${GRADLE_BUILD_SRC_DIR}/gradle/libs.versions.toml`, addGradleBuildSrcDependencyCatalogVersionCallback(version));
132
+ source.addGradleBuildSrcDependency = dependency => source.addGradleDependencies([dependency], { gradleFile: `${gradleBuildSrc}/build.gradle` });
133
+ source.addGradleBuildSrcDependencyCatalogVersion = version => source.addGradleDependencyCatalogVersions([version], {
134
+ gradleVersionCatalogFile: `${gradleBuildSrc}/gradle/libs.versions.toml`,
135
+ });
136
+ source.addGradleBuildSrcDependencyCatalogVersions = versions => source.addGradleDependencyCatalogVersions(versions);
137
+ source.addGradleBuildSrcDependencyCatalogLibraries = libs => source.addGradleDependencyCatalogLibraries(libs, {
138
+ gradleFile: `${gradleBuildSrc}/build.gradle`,
139
+ gradleVersionCatalogFile: `${gradleBuildSrc}/gradle/libs.versions.toml`,
140
+ });
82
141
  },
83
142
  });
84
143
  }
@@ -96,4 +155,17 @@ export default class GradleGenerator extends BaseApplicationGenerator {
96
155
  get [BaseApplicationGenerator.WRITING]() {
97
156
  return this.delegateTasksToBlueprint(() => this.writing);
98
157
  }
158
+ get postWriting() {
159
+ return this.asPostWritingTaskGroup({
160
+ updateGradleVersion({ application }) {
161
+ const { gradleVersion } = application;
162
+ if (gradleVersion !== this.gradleVersionFromWrapper) {
163
+ this.editFile('gradle/wrapper/gradle-wrapper.properties', content => content.replace(`-${this.gradleVersionFromWrapper}-`, `-${gradleVersion}-`));
164
+ }
165
+ },
166
+ });
167
+ }
168
+ get [BaseApplicationGenerator.POST_WRITING]() {
169
+ return this.delegateTasksToBlueprint(() => this.postWriting);
170
+ }
99
171
  }
@@ -0,0 +1,86 @@
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 { GRADLE_BUILD_SRC_MAIN_DIR } from '../../../generator-constants.js';
21
+ import { GENERATOR_GRADLE } from '../../../generator-list.js';
22
+ export default class CodeQualityGenerator 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(GENERATOR_GRADLE);
30
+ }
31
+ }
32
+ get writing() {
33
+ return this.asWritingTaskGroup({
34
+ async writing({ application }) {
35
+ await this.writeFiles({
36
+ blocks: [{ templates: [`${GRADLE_BUILD_SRC_MAIN_DIR}/jhipster.code-quality-conventions.gradle`] }],
37
+ context: application,
38
+ });
39
+ },
40
+ });
41
+ }
42
+ get [BaseApplicationGenerator.WRITING]() {
43
+ return this.delegateTasksToBlueprint(() => this.writing);
44
+ }
45
+ get postWriting() {
46
+ return this.asPostWritingTaskGroup({
47
+ customize({ application, source }) {
48
+ const { javaDependencies } = application;
49
+ source.addGradleDependencyCatalogVersions([
50
+ { name: 'jacoco', version: javaDependencies['jacoco-maven-plugin'] },
51
+ { name: 'checkstyle', version: javaDependencies.checkstyle },
52
+ ]);
53
+ source.addGradleBuildSrcDependencyCatalogLibraries?.([
54
+ {
55
+ libraryName: 'sonarqube-plugin',
56
+ module: 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin',
57
+ version: javaDependencies['gradle-sonarqube'],
58
+ scope: 'implementation',
59
+ },
60
+ {
61
+ libraryName: 'spotless-plugin',
62
+ module: 'com.diffplug.spotless:spotless-plugin-gradle',
63
+ version: javaDependencies['spotless-gradle-plugin'],
64
+ scope: 'implementation',
65
+ },
66
+ {
67
+ libraryName: 'modernizer-plugin',
68
+ module: 'com.github.andygoossens:gradle-modernizer-plugin',
69
+ version: javaDependencies['gradle-modernizer-plugin'],
70
+ scope: 'implementation',
71
+ },
72
+ {
73
+ libraryName: 'nohttp-plugin',
74
+ module: 'io.spring.nohttp:nohttp-gradle',
75
+ version: javaDependencies['nohttp-checkstyle'],
76
+ scope: 'implementation',
77
+ },
78
+ ]);
79
+ source.addGradlePlugin?.({ id: 'jhipster.code-quality-conventions' });
80
+ },
81
+ });
82
+ }
83
+ get [BaseApplicationGenerator.POST_WRITING]() {
84
+ return this.delegateTasksToBlueprint(() => this.postWriting);
85
+ }
86
+ }
@@ -16,8 +16,4 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- /**
20
- * Removes server files that where generated in previous JHipster versions and therefore
21
- * need to be removed.
22
- */
23
- export default function cleanupTask() { }
19
+ export { default } from './generator.js';