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
@@ -16,279 +16,24 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { isFileStateModified } from 'mem-fs-editor/state';
20
19
  import BaseApplicationGenerator from '../base-application/index.js';
21
- import { GENERATOR_JAVA, GENERATOR_BOOTSTRAP_APPLICATION } from '../generator-list.js';
22
- import writeTask from './files.js';
23
- import cleanupTask from './cleanup.js';
24
- import { packageInfoTransform, generatedAnnotationTransform, checkJava, isReservedJavaKeyword, javaScopeToGradleScope, } from './support/index.js';
25
- import command from './command.js';
26
- import { JAVA_COMPATIBLE_VERSIONS } from '../generator-constants.js';
27
- import { matchMainJavaFiles } from './support/package-info-transform.js';
28
- import { entityServerFiles, enumFiles } from './entity-files.js';
29
- import { getEnumInfo } from '../base-application/support/index.js';
30
- import { mutateData } from '../base/support/index.js';
31
- import { javaBeanCase } from '../server/support/index.js';
32
20
  export default class JavaGenerator extends BaseApplicationGenerator {
33
- packageInfoFile;
34
- generateEntities;
35
- useJakartaValidation;
36
- useJacksonIdentityInfo;
37
- generateEnums;
38
21
  async beforeQueue() {
39
22
  if (!this.fromBlueprint) {
40
- await this.composeWithBlueprints(GENERATOR_JAVA);
23
+ await this.composeWithBlueprints();
41
24
  }
42
25
  if (!this.delegateToBlueprint) {
43
- await this.dependsOnJHipster(GENERATOR_BOOTSTRAP_APPLICATION);
26
+ await this.dependsOnJHipster('jhipster:java:domain');
44
27
  }
45
28
  }
46
29
  get initializing() {
47
30
  return this.asInitializingTaskGroup({
48
- loadConfig() {
49
- this.parseJHipsterCommand(command);
50
- },
51
- validateJava() {
52
- if (!this.skipChecks) {
53
- this.checkJava();
54
- }
31
+ async parseCommand() {
32
+ await this.parseCurrentJHipsterCommand();
55
33
  },
56
34
  });
57
35
  }
58
36
  get [BaseApplicationGenerator.INITIALIZING]() {
59
- return this.asInitializingTaskGroup(this.delegateTasksToBlueprint(() => this.initializing));
60
- }
61
- get configuring() {
62
- return this.asConfiguringTaskGroup({
63
- checkConfig() {
64
- const { packageName } = this.jhipsterConfigWithDefaults;
65
- const reservedKeywork = packageName.split('.').find(isReservedJavaKeyword);
66
- if (reservedKeywork) {
67
- throw new Error(`The package name "${packageName}" contains a reserved Java keyword "${reservedKeywork}".`);
68
- }
69
- },
70
- });
71
- }
72
- get [BaseApplicationGenerator.CONFIGURING]() {
73
- return this.asConfiguringTaskGroup(this.delegateTasksToBlueprint(() => this.configuring));
74
- }
75
- get preparing() {
76
- return this.asPreparingTaskGroup({
77
- prepareJavaApplication({ application, source }) {
78
- source.addJavaDependencies = (dependencies, options) => {
79
- if (application.buildToolMaven) {
80
- const annotationProcessors = dependencies.filter(dep => dep.scope === 'annotationProcessor');
81
- const importDependencies = dependencies.filter(dep => dep.scope === 'import');
82
- const commonDependencies = dependencies.filter(dep => !['annotationProcessor', 'import'].includes(dep.scope));
83
- const convertVersionToRef = ({ version, versionRef, ...artifact }) => version || versionRef ? { ...artifact, version: `\${${versionRef ?? artifact.artifactId}.version}` } : artifact;
84
- const removeScope = ({ scope: _scope, ...artifact }) => artifact;
85
- source.addMavenDefinition?.({
86
- properties: dependencies
87
- .filter(dep => dep.version)
88
- .map(({ artifactId, version }) => ({ property: `${artifactId}.version`, value: version })),
89
- dependencies: [
90
- ...commonDependencies.map(convertVersionToRef),
91
- // Add a provided scope for annotation processors so that version is not required in annotationProcessor dependencies
92
- ...annotationProcessors.filter(dep => !dep.version).map(artifact => ({ ...artifact, scope: 'provided' })),
93
- ],
94
- dependencyManagement: importDependencies.map(convertVersionToRef),
95
- annotationProcessors: annotationProcessors.map(convertVersionToRef).map(removeScope),
96
- });
97
- }
98
- if (application.buildToolGradle) {
99
- source.addGradleDependencies?.(dependencies
100
- .filter(dep => !dep.version && !dep.versionRef)
101
- .map(({ scope, type, ...artifact }) => ({
102
- ...artifact,
103
- scope: javaScopeToGradleScope({ scope, type }),
104
- })), options);
105
- source.addGradleDependencyCatalogLibraries?.(dependencies
106
- .filter(dep => dep.version || dep.versionRef)
107
- .map(({ scope, type, groupId, artifactId, version, versionRef }) => {
108
- const library = {
109
- libraryName: artifactId,
110
- module: `${groupId}:${artifactId}`,
111
- scope: javaScopeToGradleScope({ scope, type }),
112
- };
113
- return version ? { ...library, version } : { ...library, 'version.ref': versionRef };
114
- }));
115
- }
116
- };
117
- source.addJavaDefinition = (definition, options) => {
118
- const { dependencies, versions } = definition;
119
- if (dependencies) {
120
- source.addJavaDependencies(dependencies, options);
121
- }
122
- if (versions) {
123
- if (application.buildToolMaven) {
124
- source.addMavenDefinition({
125
- properties: versions.map(({ name, version }) => ({ property: `${name}.version`, value: version })),
126
- });
127
- }
128
- if (application.buildToolGradle) {
129
- source.addGradleDependencyCatalogVersions?.(versions);
130
- }
131
- }
132
- };
133
- },
134
- });
135
- }
136
- get [BaseApplicationGenerator.PREPARING]() {
137
- return this.delegateTasksToBlueprint(() => this.preparing);
138
- }
139
- get preparingEachEntity() {
140
- return this.asPreparingEachEntityTaskGroup({
141
- prepareEntity({ entity }) {
142
- mutateData(entity, {
143
- entityDomainLayer: true,
144
- });
145
- },
146
- });
147
- }
148
- get [BaseApplicationGenerator.PREPARING_EACH_ENTITY]() {
149
- return this.delegateTasksToBlueprint(() => this.preparingEachEntity);
150
- }
151
- get preparingEachEntityField() {
152
- return this.asPreparingEachEntityFieldTaskGroup({
153
- prepareEntity({ entity, field }) {
154
- field.propertyJavaBeanName = javaBeanCase(field.propertyName);
155
- if (entity.dtoMapstruct || entity.builtIn) {
156
- field.propertyDtoJavaType = field.blobContentTypeText ? 'String' : field.fieldType;
157
- }
158
- },
159
- });
160
- }
161
- get [BaseApplicationGenerator.PREPARING_EACH_ENTITY_FIELD]() {
162
- return this.delegateTasksToBlueprint(() => this.preparingEachEntityField);
163
- }
164
- get preparingEachEntityRelationship() {
165
- return this.asPreparingEachEntityRelationshipTaskGroup({
166
- prepareEntity({ entity, relationship }) {
167
- relationship.propertyJavaBeanName = javaBeanCase(relationship.propertyName);
168
- if (entity.dtoMapstruct) {
169
- relationship.propertyDtoJavaType = relationship.collection
170
- ? `Set<${relationship.otherEntity.dtoClass}>`
171
- : relationship.otherEntity.dtoClass;
172
- }
173
- },
174
- });
175
- }
176
- get [BaseApplicationGenerator.PREPARING_EACH_ENTITY_RELATIONSHIP]() {
177
- return this.delegateTasksToBlueprint(() => this.preparingEachEntityRelationship);
178
- }
179
- get postPreparingEachEntity() {
180
- return this.asPostPreparingEachEntityTaskGroup({
181
- checkForCircularRelationships({ entity }) {
182
- entity.skipJunitTests = entity.hasCyclicRequiredRelationship ? 'Cyclic required relationships detected' : undefined;
183
- },
184
- });
185
- }
186
- get [BaseApplicationGenerator.POST_PREPARING_EACH_ENTITY]() {
187
- return this.asPostPreparingEachEntityTaskGroup(this.delegateTasksToBlueprint(() => this.postPreparingEachEntity));
188
- }
189
- get default() {
190
- return this.asDefaultTaskGroup({
191
- generatedAnnotation({ application }) {
192
- if (this.jhipsterConfig.withGeneratedFlag) {
193
- this.queueTransformStream({
194
- name: 'adding @GeneratedByJHipster annotations',
195
- filter: file => isFileStateModified(file) && file.path.startsWith(this.destinationPath()) && file.path.endsWith('.java'),
196
- refresh: false,
197
- }, generatedAnnotationTransform(application.packageName));
198
- }
199
- },
200
- generatedPackageInfo({ application }) {
201
- const mainPackageMatch = matchMainJavaFiles(application.srcMainJava);
202
- if (this.packageInfoFile) {
203
- this.queueTransformStream({
204
- name: 'adding package-info.java files',
205
- filter: file => isFileStateModified(file) && file.path.startsWith(this.destinationPath()) && mainPackageMatch.match(file.path),
206
- refresh: true,
207
- }, packageInfoTransform({
208
- javaRoots: [this.destinationPath(application.srcMainJava)],
209
- javadocs: {
210
- ...Object.fromEntries(application.packageInfoJavadocs.map(doc => [doc.packageName, doc.documentation])),
211
- [`${application.packageName}`]: 'Application root.',
212
- [`${application.packageName}.config`]: 'Application configuration.',
213
- [`${application.packageName}.domain`]: 'Domain objects.',
214
- [`${application.packageName}.repository`]: 'Repository layer.',
215
- [`${application.packageName}.service`]: 'Service layer.',
216
- [`${application.packageName}.web.rest`]: 'Rest layer.',
217
- },
218
- }));
219
- }
220
- },
221
- loadDomains({ application, entities }) {
222
- application.domains = [
223
- ...new Set([application.packageName, ...entities.map(entity => entity.entityAbsolutePackage).filter(Boolean)]),
224
- ];
225
- },
226
- });
227
- }
228
- get [BaseApplicationGenerator.DEFAULT]() {
229
- return this.delegateTasksToBlueprint(() => this.default);
230
- }
231
- get writing() {
232
- return this.asWritingTaskGroup({
233
- cleanupTask,
234
- writeTask,
235
- });
236
- }
237
- get [BaseApplicationGenerator.WRITING]() {
238
- return this.delegateTasksToBlueprint(() => this.writing);
239
- }
240
- get writingEntities() {
241
- return this.asWritingEntitiesTaskGroup({
242
- async writeServerFiles({ application, entities }) {
243
- if (!this.generateEntities)
244
- return;
245
- const { useJakartaValidation, useJacksonIdentityInfo } = this;
246
- for (const entity of entities.filter(entity => !entity.skipServer)) {
247
- await this.writeFiles({
248
- sections: entityServerFiles,
249
- context: { ...application, ...entity, useJakartaValidation, useJacksonIdentityInfo },
250
- });
251
- }
252
- },
253
- async writeEnumFiles({ application, entities }) {
254
- if (!this.generateEnums)
255
- return;
256
- for (const entity of entities.filter(entity => !entity.skipServer)) {
257
- for (const field of entity.fields.filter(field => field.fieldIsEnum)) {
258
- const enumInfo = {
259
- ...getEnumInfo(field, entity.clientRootFolder),
260
- frontendAppName: entity.frontendAppName,
261
- packageName: application.packageName,
262
- javaPackageSrcDir: application.javaPackageSrcDir,
263
- entityJavaPackageFolder: entity.entityJavaPackageFolder,
264
- entityAbsolutePackage: entity.entityAbsolutePackage || application.packageName,
265
- };
266
- await this.writeFiles({
267
- sections: enumFiles,
268
- context: enumInfo,
269
- });
270
- }
271
- }
272
- },
273
- });
274
- }
275
- get [BaseApplicationGenerator.WRITING_ENTITIES]() {
276
- return this.delegateTasksToBlueprint(() => this.writingEntities);
277
- }
278
- /**
279
- * Check if a supported Java is installed
280
- *
281
- * Blueprints can customize or disable java checks versions by overriding this method.
282
- * @example
283
- * // disable checks
284
- * checkJava() {}
285
- * @examples
286
- * // enforce java lts versions
287
- * checkJava() {
288
- * super.checkJava(['8', '11', '17'], { throwOnError: true });
289
- * }
290
- */
291
- checkJava(javaCompatibleVersions = JAVA_COMPATIBLE_VERSIONS, checkResultValidation) {
292
- this.validateResult(checkJava(javaCompatibleVersions), { throwOnError: false, ...checkResultValidation });
37
+ return this.delegateTasksToBlueprint(() => this.initializing);
293
38
  }
294
39
  }
@@ -0,0 +1,35 @@
1
+ const command = {
2
+ options: {
3
+ withGeneratedFlag: {
4
+ description: 'Add a GeneratedByJHipster annotation to all generated java classes and interfaces',
5
+ type: Boolean,
6
+ scope: 'storage',
7
+ },
8
+ packageInfoFile: {
9
+ description: 'write package-info.java file for every package',
10
+ type: Boolean,
11
+ default: true,
12
+ scope: 'generator',
13
+ hide: true,
14
+ },
15
+ },
16
+ configs: {
17
+ packageName: {
18
+ cli: {
19
+ type: String,
20
+ },
21
+ prompt: gen => ({
22
+ type: 'input',
23
+ message: 'What is your default Java package name?',
24
+ default: gen.jhipsterConfigWithDefaults.packageName,
25
+ validate: input => /^([a-z_]{1}[a-z0-9_]*(\.[a-z_]{1}[a-z0-9_]*)*)$/.test(input)
26
+ ? true
27
+ : 'The package name you have provided is not a valid Java package name.',
28
+ }),
29
+ scope: 'storage',
30
+ description: 'The package name for the generated application',
31
+ },
32
+ },
33
+ import: [],
34
+ };
35
+ export default command;
@@ -0,0 +1,178 @@
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 { isFileStateModified } from 'mem-fs-editor/state';
20
+ import BaseApplicationGenerator from '../../../base-application/index.js';
21
+ import { JAVA_COMPATIBLE_VERSIONS } from '../../../generator-constants.js';
22
+ import { packageInfoTransform, generatedAnnotationTransform, checkJava, isReservedJavaKeyword, matchMainJavaFiles, javaMainPackageTemplatesBlock, } from '../../support/index.js';
23
+ export default class BootstrapGenerator extends BaseApplicationGenerator {
24
+ packageInfoFile;
25
+ async beforeQueue() {
26
+ if (!this.fromBlueprint) {
27
+ await this.composeWithBlueprints();
28
+ }
29
+ if (!this.delegateToBlueprint) {
30
+ await this.dependsOnBootstrapApplication();
31
+ }
32
+ }
33
+ get initializing() {
34
+ return this.asInitializingTaskGroup({
35
+ async parseCommand() {
36
+ await this.parseCurrentJHipsterCommand();
37
+ },
38
+ validateJava() {
39
+ if (!this.skipChecks) {
40
+ this.checkJava();
41
+ }
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
+ }
60
+ get configuring() {
61
+ return this.asConfiguringTaskGroup({
62
+ checkConfig() {
63
+ const { packageName } = this.jhipsterConfigWithDefaults;
64
+ const reservedKeywork = packageName.split('.').find(isReservedJavaKeyword);
65
+ if (reservedKeywork) {
66
+ throw new Error(`The package name "${packageName}" contains a reserved Java keyword "${reservedKeywork}".`);
67
+ }
68
+ },
69
+ });
70
+ }
71
+ get [BaseApplicationGenerator.CONFIGURING]() {
72
+ return this.delegateTasksToBlueprint(() => this.configuring);
73
+ }
74
+ get loading() {
75
+ return this.asLoadingTaskGroup({
76
+ async loadConfig({ application }) {
77
+ await this.loadCurrentJHipsterCommandConfig(application);
78
+ },
79
+ });
80
+ }
81
+ get [BaseApplicationGenerator.LOADING]() {
82
+ return this.delegateTasksToBlueprint(() => this.loading);
83
+ }
84
+ get preparing() {
85
+ return this.asPreparingTaskGroup({
86
+ prepareJavaApplication({ application, source }) {
87
+ source.hasJavaProperty = (property) => application.javaProperties[property] !== undefined;
88
+ source.hasJavaManagedProperty = (property) => application.javaManagedProperties[property] !== undefined;
89
+ },
90
+ });
91
+ }
92
+ get [BaseApplicationGenerator.PREPARING]() {
93
+ return this.delegateTasksToBlueprint(() => this.preparing);
94
+ }
95
+ get default() {
96
+ return this.asDefaultTaskGroup({
97
+ loadDomains({ application, entities }) {
98
+ const entityPackages = [
99
+ ...new Set([application.packageName, ...entities.map(entity => entity.entityAbsolutePackage).filter(Boolean)]),
100
+ ];
101
+ application.entityPackages = entityPackages;
102
+ application.domains = entityPackages;
103
+ },
104
+ generatedAnnotation({ application }) {
105
+ if (this.jhipsterConfig.withGeneratedFlag) {
106
+ this.queueTransformStream({
107
+ name: 'adding @GeneratedByJHipster annotations',
108
+ filter: file => isFileStateModified(file) && file.path.startsWith(this.destinationPath()) && file.path.endsWith('.java'),
109
+ refresh: false,
110
+ }, generatedAnnotationTransform(application.packageName));
111
+ }
112
+ },
113
+ generatedPackageInfo({ application }) {
114
+ const { srcMainJava } = application;
115
+ if (this.packageInfoFile && srcMainJava) {
116
+ const mainPackageMatch = matchMainJavaFiles(srcMainJava);
117
+ const root = this.destinationPath(srcMainJava);
118
+ this.queueTransformStream({
119
+ name: 'adding package-info.java files',
120
+ filter: file => isFileStateModified(file) && file.path.startsWith(this.destinationPath()) && mainPackageMatch.match(file.path),
121
+ refresh: true,
122
+ }, packageInfoTransform({
123
+ javaRoots: [root],
124
+ javadocs: {
125
+ ...Object.fromEntries(application.packageInfoJavadocs.map(doc => [doc.packageName, doc.documentation])),
126
+ [`${application.packageName}`]: 'Application root.',
127
+ [`${application.packageName}.config`]: 'Application configuration.',
128
+ ...Object.fromEntries(application
129
+ .entityPackages.map(pkg => [
130
+ [`${pkg}.domain`, 'Domain objects.'],
131
+ [`${pkg}.repository`, 'Repository layer.'],
132
+ [`${pkg}.service`, 'Service layer.'],
133
+ [`${pkg}.web.rest`, 'Rest layer.'],
134
+ ])
135
+ .flat()),
136
+ },
137
+ }));
138
+ }
139
+ },
140
+ });
141
+ }
142
+ get [BaseApplicationGenerator.DEFAULT]() {
143
+ return this.delegateTasksToBlueprint(() => this.default);
144
+ }
145
+ get writing() {
146
+ return this.asWritingTaskGroup({
147
+ async writing({ application }) {
148
+ await this.writeFiles({
149
+ blocks: [
150
+ javaMainPackageTemplatesBlock({
151
+ templates: ['GeneratedByJHipster.java'],
152
+ }),
153
+ ],
154
+ context: application,
155
+ });
156
+ },
157
+ });
158
+ }
159
+ get [BaseApplicationGenerator.WRITING]() {
160
+ return this.delegateTasksToBlueprint(() => this.writing);
161
+ }
162
+ /**
163
+ * Check if a supported Java is installed
164
+ *
165
+ * Blueprints can customize or disable java checks versions by overriding this method.
166
+ * @example
167
+ * // disable checks
168
+ * checkJava() {}
169
+ * @examples
170
+ * // enforce java lts versions
171
+ * checkJava() {
172
+ * super.checkJava(['8', '11', '17'], { throwOnError: true });
173
+ * }
174
+ */
175
+ checkJava(javaCompatibleVersions = JAVA_COMPATIBLE_VERSIONS, checkResultValidation) {
176
+ this.validateResult(checkJava(javaCompatibleVersions), { throwOnError: false, ...checkResultValidation });
177
+ }
178
+ }
@@ -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,42 @@
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 { buildToolTypes } from '../../../../jdl/index.js';
20
+ import { GENERATOR_GRADLE } from '../../../generator-list.js';
21
+ const { GRADLE, MAVEN } = buildToolTypes;
22
+ const command = {
23
+ options: {},
24
+ configs: {
25
+ buildTool: {
26
+ cli: {
27
+ name: 'build',
28
+ type: String,
29
+ },
30
+ prompt: {
31
+ type: 'list',
32
+ message: 'Would you like to use Maven or Gradle for building the backend?',
33
+ },
34
+ choices: [MAVEN, GRADLE],
35
+ default: MAVEN,
36
+ description: 'Provide build tool for the application when skipping server side generation',
37
+ scope: 'storage',
38
+ },
39
+ },
40
+ import: [GENERATOR_GRADLE],
41
+ };
42
+ export default command;