generator-jhipster 7.6.0 → 7.8.1

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 (432) hide show
  1. package/README.md +1 -4
  2. package/cli/commands.js +3 -0
  3. package/cli/environment-builder.js +53 -18
  4. package/cli/import-jdl.js +3 -0
  5. package/cli/index.mjs +20 -0
  6. package/cli/jhipster.js +19 -11
  7. package/cli/program.js +94 -38
  8. package/generators/app/esm.mjs +1 -3
  9. package/generators/app/index.js +11 -16
  10. package/generators/aws/esm.mjs +1 -3
  11. package/generators/azure-app-service/esm.mjs +1 -3
  12. package/generators/azure-spring-cloud/esm.mjs +1 -3
  13. package/generators/base/esm.mjs +1 -3
  14. package/generators/bootstrap/esm.mjs +1 -3
  15. package/generators/bootstrap/index.js +36 -86
  16. package/generators/bootstrap-application/esm.mjs +19 -0
  17. package/generators/bootstrap-application/generator.mjs +353 -0
  18. package/generators/bootstrap-application/index.mjs +19 -0
  19. package/generators/ci-cd/esm.mjs +1 -3
  20. package/generators/ci-cd/index.js +1 -1
  21. package/generators/ci-cd/prompts.js +1 -1
  22. package/generators/ci-cd/templates/github-actions.yml.ejs +6 -6
  23. package/generators/client/esm.mjs +5 -3
  24. package/generators/client/files-angular.js +9 -0
  25. package/generators/client/files-common.js +9 -9
  26. package/generators/client/files-react.js +25 -2
  27. package/generators/client/files-vue.js +7 -6
  28. package/generators/client/index.js +3 -2
  29. package/generators/client/needle-api/needle-client-react.js +11 -8
  30. package/generators/client/templates/angular/angular.json.ejs +2 -10
  31. package/generators/client/templates/angular/jest.conf.js.ejs +1 -1
  32. package/generators/client/templates/angular/package.json +29 -27
  33. package/generators/client/templates/angular/package.json.ejs +6 -2
  34. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.html.ejs +1 -1
  35. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.html.ejs +7 -7
  36. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +5 -5
  37. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +3 -3
  38. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.html.ejs +10 -10
  39. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.html.ejs +8 -8
  40. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +2 -2
  41. package/generators/client/templates/angular/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +5 -5
  42. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.html.ejs +1 -1
  43. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +2 -2
  44. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +2 -2
  45. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +6 -6
  46. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +51 -49
  47. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +16 -16
  48. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +32 -32
  49. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +4 -4
  50. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +18 -18
  51. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +12 -12
  52. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts.ejs +4 -4
  53. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +4 -4
  54. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +8 -8
  55. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +1 -1
  56. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +1 -1
  57. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +4 -4
  58. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +5 -5
  59. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.ts.ejs +1 -1
  60. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +11 -11
  61. package/generators/client/templates/angular/src/main/webapp/app/core/util/data-util.service.ts.ejs +1 -1
  62. package/generators/client/templates/angular/src/main/webapp/app/core/util/parse-links.service.ts.ejs +1 -1
  63. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +4 -2
  64. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.scss.ejs +0 -6
  65. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +0 -6
  66. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.html.ejs +3 -3
  67. package/generators/client/templates/angular/src/main/webapp/content/scss/_bootstrap-variables.scss.ejs +5 -5
  68. package/generators/client/templates/angular/src/main/webapp/content/scss/global.scss.ejs +29 -0
  69. package/generators/client/templates/angular/src/main/webapp/content/scss/vendor.scss.ejs +0 -4
  70. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +31 -1
  71. package/generators/client/templates/common/package.json +7 -6
  72. package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +1 -7
  73. package/generators/client/templates/common/webpack/webpack.microfrontend.js.jhi.ejs +2 -3
  74. package/generators/client/templates/react/.eslintrc.json.ejs +1 -1
  75. package/generators/client/templates/react/jest.conf.js.ejs +1 -1
  76. package/generators/client/templates/react/package.json +44 -45
  77. package/generators/client/templates/react/package.json.ejs +1 -0
  78. package/generators/client/templates/react/src/main/webapp/app/app.scss.ejs +1 -1
  79. package/generators/client/templates/react/src/main/webapp/app/config/store.ts.ejs +53 -6
  80. package/generators/client/templates/react/src/main/webapp/app/config/translation-middleware.ts.ejs +58 -0
  81. package/generators/client/templates/react/src/main/webapp/app/entities/menu.tsx.ejs +45 -0
  82. package/generators/client/templates/react/src/main/webapp/app/entities/reducers.ts.ejs +25 -0
  83. package/generators/client/templates/react/src/main/webapp/app/entities/routes.tsx.ejs +47 -0
  84. package/generators/client/templates/react/src/main/webapp/app/index.tsx.ejs +7 -7
  85. package/generators/client/templates/react/src/main/webapp/app/main.tsx.ejs +19 -0
  86. package/generators/client/templates/react/src/main/webapp/app/modules/administration/logs/logs.tsx.ejs +1 -1
  87. package/generators/client/templates/react/src/main/webapp/app/modules/administration/user-management/user-management.tsx.ejs +2 -1
  88. package/generators/client/templates/react/src/main/webapp/app/modules/login/login-modal.tsx.ejs +5 -1
  89. package/generators/client/templates/react/src/main/webapp/app/routes.tsx.ejs +24 -7
  90. package/generators/client/templates/react/src/main/webapp/app/shared/error/error-loading.tsx.ejs +15 -0
  91. package/generators/client/templates/react/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +34 -6
  92. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/index.ts.ejs +9 -2
  93. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.spec.ts.ejs +9 -3
  94. package/generators/client/templates/react/src/main/webapp/app/shared/reducers/locale.ts.ejs +21 -5
  95. package/generators/client/templates/react/src/main/webapp/app/typings.d.ts.ejs +15 -0
  96. package/generators/client/templates/react/src/main/webapp/microfrontends/entities-menu.tsx.ejs +3 -0
  97. package/generators/client/templates/react/src/main/webapp/microfrontends/entities-routes.tsx.ejs +3 -0
  98. package/generators/client/templates/react/tsconfig.json.ejs +3 -3
  99. package/generators/client/templates/react/tsconfig.test.json.ejs +9 -1
  100. package/generators/client/templates/react/webpack/webpack.common.js.ejs +6 -13
  101. package/generators/client/templates/react/webpack/webpack.dev.js.ejs +7 -8
  102. package/generators/client/templates/react/webpack/webpack.microfrontend.js.jhi.react.ejs +99 -0
  103. package/generators/client/templates/react/webpack/webpack.prod.js.ejs +31 -21
  104. package/generators/client/templates/vue/package.json +30 -31
  105. package/generators/client/templates/vue/package.json.ejs +1 -1
  106. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +4 -3
  107. package/generators/client/templates/vue/src/main/webapp/app/entities/user/user.service.ts.ejs +0 -0
  108. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +29 -1
  109. package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +2 -2
  110. package/generators/client/templates/vue/src/main/webapp/app/shared/config/config.ts.ejs +0 -4
  111. package/generators/client/templates/vue/src/main/webapp/app/shared/data/data-utils.service.ts.ejs +1 -1
  112. package/generators/client/templates/vue/src/test/javascript/jest.conf.js.ejs +2 -2
  113. package/generators/client/templates/vue/tsconfig.json.ejs +0 -3
  114. package/generators/client/templates/vue/webpack/webpack.common.js.ejs +6 -2
  115. package/generators/cloudfoundry/esm.mjs +1 -3
  116. package/generators/common/esm.mjs +2 -3
  117. package/generators/common/files.js +1 -2
  118. package/generators/common/index.js +6 -0
  119. package/generators/common/templates/.husky/{pre-commit → pre-commit.ejs} +4 -0
  120. package/generators/common/templates/README.md.jhi.ejs +3 -1
  121. package/generators/common/templates/package.json +4 -4
  122. package/generators/common/templates/sonar-project.properties.ejs +1 -1
  123. package/generators/cypress/esm.mjs +2 -3
  124. package/generators/cypress/files.js +2 -1
  125. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +18 -14
  126. package/generators/database-changelog/esm.mjs +1 -3
  127. package/generators/database-changelog/index.js +1 -1
  128. package/generators/database-changelog-liquibase/esm.mjs +2 -3
  129. package/generators/docker-compose/esm.mjs +1 -3
  130. package/generators/docker-compose/index.js +9 -5
  131. package/generators/entities/esm.mjs +1 -3
  132. package/generators/entities/index.js +2 -2
  133. package/generators/entities-client/esm.mjs +1 -3
  134. package/generators/entity/esm.mjs +1 -3
  135. package/generators/entity/index.js +39 -28
  136. package/generators/entity/prompts.js +4 -1
  137. package/generators/entity-client/esm.mjs +2 -3
  138. package/generators/entity-client/index.js +8 -0
  139. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.html.ejs +1 -1
  140. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +2 -2
  141. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +20 -21
  142. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.ts.ejs +1 -1
  143. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +14 -16
  144. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +3 -3
  145. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +2 -1
  146. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-delete-dialog.tsx.ejs +3 -3
  147. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-detail.tsx.ejs +5 -4
  148. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-reducer.spec.ts.ejs +1 -1
  149. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +20 -19
  150. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.reducer.ts.ejs +2 -2
  151. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity.tsx.ejs +21 -20
  152. package/generators/entity-client/templates/react/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
  153. package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
  154. package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
  155. package/generators/entity-i18n/esm.mjs +2 -3
  156. package/generators/entity-i18n/templates/i18n/entity_fr.json.ejs +1 -1
  157. package/generators/entity-server/esm.mjs +2 -3
  158. package/generators/entity-server/files-couchbase.js +23 -2
  159. package/generators/entity-server/files.js +40 -6
  160. package/generators/entity-server/index.js +27 -2
  161. package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +11 -13
  162. package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +30 -43
  163. package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.fts.ejs +5 -6
  164. package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.n1ql.ejs +5 -0
  165. package/generators/entity-server/templates/partials/it_patch_update.partial.java.ejs +2 -2
  166. package/generators/entity-server/templates/partials/save_template.ejs +1 -1
  167. package/generators/entity-server/templates/partials/update_template.ejs +77 -0
  168. package/generators/entity-server/templates/reactive/partials/save_template.ejs +1 -1
  169. package/generators/entity-server/templates/reactive/partials/update_template.ejs +41 -0
  170. package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +5 -5
  171. package/generators/entity-server/templates/src/main/java/package/common/get_template.ejs +1 -1
  172. package/generators/entity-server/templates/src/main/java/package/common/inject_template.ejs +17 -8
  173. package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +5 -5
  174. package/generators/entity-server/templates/src/main/java/package/common/search_stream_template.ejs +1 -1
  175. package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
  176. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +4 -3
  177. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.javax_lifecycle_events.ejs +31 -0
  178. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_persistable.ejs +54 -0
  179. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.spring_data_reactive.ejs +1 -1
  180. package/generators/entity-server/templates/src/main/java/package/domain/EntityCallback.java.ejs +43 -0
  181. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +36 -23
  182. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +24 -28
  183. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationships.java.ejs +37 -0
  184. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +91 -0
  185. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +17 -25
  186. package/generators/entity-server/templates/src/main/java/package/repository/EntitySqlHelper_reactive.java.ejs +2 -2
  187. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +3 -3
  188. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +12 -27
  189. package/generators/entity-server/templates/src/main/java/package/service/EntityService.java.ejs +10 -2
  190. package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +8 -6
  191. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +21 -5
  192. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +61 -90
  193. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +6 -4
  194. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +33 -20
  195. package/generators/export-jdl/esm.mjs +1 -3
  196. package/generators/gae/esm.mjs +1 -3
  197. package/generators/generate-blueprint/constants.mjs +146 -0
  198. package/generators/generate-blueprint/esm.mjs +19 -0
  199. package/generators/generate-blueprint/files.mjs +81 -0
  200. package/generators/generate-blueprint/generator.mjs +363 -0
  201. package/generators/generate-blueprint/index.mjs +20 -0
  202. package/generators/generate-blueprint/templates/.eslintrc.json.ejs +41 -0
  203. package/generators/generate-blueprint/templates/.github/workflows/generator.yml.ejs +32 -0
  204. package/generators/generate-blueprint/templates/.mocharc.cjs.ejs +29 -0
  205. package/generators/{server/templates/couchbase/src/main/java/package/config/couchbase/package-info.java.ejs → generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs} +4 -7
  206. package/generators/generate-blueprint/templates/README.md.ejs +75 -0
  207. package/generators/generate-blueprint/templates/cli/cli.mjs.ejs +35 -0
  208. package/generators/generate-blueprint/templates/cli/commands.cjs.ejs +25 -0
  209. package/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +98 -0
  210. package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +42 -0
  211. package/generators/generate-blueprint/templates/generators/generator/index.mjs.ejs +19 -0
  212. package/generators/generate-blueprint/templates/generators/generator/templates/template-file.ejs +0 -0
  213. package/generators/generate-blueprint/templates/test/utils.mjs.ejs +17 -0
  214. package/generators/generator-base-blueprint.js +29 -0
  215. package/generators/generator-base-docker.js +1 -0
  216. package/generators/generator-base-entities.cjs +368 -0
  217. package/generators/generator-base-private.js +1 -1
  218. package/generators/generator-base.js +157 -23
  219. package/generators/generator-constants.js +22 -20
  220. package/generators/generator-list.js +2 -0
  221. package/generators/generator-transforms.js +0 -1
  222. package/generators/gradle/constants.cjs +1 -1
  223. package/generators/gradle/esm.mjs +19 -0
  224. package/generators/heroku/esm.mjs +1 -3
  225. package/generators/info/esm.mjs +1 -3
  226. package/generators/init/esm.mjs +19 -0
  227. package/generators/init/files.cjs +9 -3
  228. package/generators/init/index.cjs +5 -0
  229. package/generators/init/templates/.gitignore.jhi.ejs +5 -0
  230. package/generators/init/templates/{.lintstagedrc.js.ejs → .lintstagedrc.cjs.ejs} +0 -0
  231. package/generators/java/esm.mjs +19 -0
  232. package/generators/java/index.cjs +58 -2
  233. package/generators/kubernetes/esm.mjs +1 -3
  234. package/generators/kubernetes-helm/esm.mjs +1 -3
  235. package/generators/kubernetes-knative/esm.mjs +1 -3
  236. package/generators/languages/esm.mjs +2 -3
  237. package/generators/languages/templates/src/test/resources/i18n/messages_fr.properties.ejs +4 -1
  238. package/generators/maven/esm.mjs +19 -0
  239. package/generators/maven/files.cjs +0 -1
  240. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  241. package/generators/maven/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
  242. package/generators/maven/templates/mvnw +13 -7
  243. package/generators/maven/templates/mvnw.cmd +19 -13
  244. package/generators/maven/templates/pom.xml.jhi.ejs +1 -1
  245. package/generators/openapi-client/esm.mjs +1 -3
  246. package/generators/openapi-client/index.js +11 -4
  247. package/generators/openshift/esm.mjs +1 -3
  248. package/generators/page/esm.mjs +1 -3
  249. package/generators/project-name/esm.mjs +19 -0
  250. package/generators/server/cleanup.js +19 -3
  251. package/generators/server/esm.mjs +2 -2
  252. package/generators/server/files-couchbase.js +28 -31
  253. package/generators/server/files.js +115 -18
  254. package/generators/server/index.js +23 -17
  255. package/generators/server/needle-api/needle-server-gradle.js +38 -0
  256. package/generators/server/needle-api/needle-server-maven.js +1 -1
  257. package/generators/server/templates/.mvn/jvm.config +1 -0
  258. package/generators/server/templates/.mvn/wrapper/maven-wrapper.jar +0 -0
  259. package/generators/server/templates/.mvn/wrapper/maven-wrapper.properties +18 -2
  260. package/generators/server/templates/build.gradle.ejs +7 -5
  261. package/generators/server/templates/couchbase/src/main/java/package/repository/CouchbaseSearchRepository.java.ejs +91 -0
  262. package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +47 -45
  263. package/generators/server/templates/couchbase/src/main/java/package/repository/PersistentTokenRepository_couchbase.java.ejs +2 -2
  264. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_ADMIN.json.ejs +3 -0
  265. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_USER.json.ejs +3 -0
  266. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__admin.json.ejs → user/admin.json.ejs} +2 -2
  267. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__user.json.ejs → user/user.json.ejs} +2 -2
  268. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.2__create_indexes.n1ql.ejs +34 -0
  269. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_collections.n1ql.ejs +8 -0
  270. package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +4 -3
  271. package/generators/server/templates/couchbase/src/test/java/package/repository/{JHipsterCouchbaseRepositoryTest.java.ejs → CouchbaseSearchRepositoryTest.java.ejs} +2 -2
  272. package/generators/server/templates/devcontainer/Dockerfile.ejs +25 -0
  273. package/generators/server/templates/devcontainer/devcontainer.json.ejs +64 -0
  274. package/generators/server/templates/gradle/profile_prod.gradle.ejs +4 -0
  275. package/generators/server/templates/gradle/wrapper/gradle-wrapper.jar +0 -0
  276. package/generators/server/templates/gradle.properties.ejs +8 -8
  277. package/generators/server/templates/mvnw +13 -7
  278. package/generators/server/templates/mvnw.cmd +19 -13
  279. package/generators/server/templates/npmw +14 -5
  280. package/generators/server/templates/pom.xml.ejs +65 -58
  281. package/generators/server/templates/settings.gradle.ejs +6 -4
  282. package/generators/server/templates/src/main/docker/app.yml.ejs +4 -6
  283. package/generators/server/templates/src/main/docker/config/realm-config/jhipster-realm.json.ejs +2 -1
  284. package/generators/server/templates/src/main/docker/mysql.yml.ejs +1 -0
  285. package/generators/server/templates/src/main/docker/zipkin.yml.ejs +25 -0
  286. package/generators/server/templates/src/main/java/package/config/AsyncConfiguration.java.ejs +6 -0
  287. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +26 -16
  288. package/generators/{client/templates/react/src/main/webapp/app/entities/index.tsx.ejs → server/templates/src/main/java/package/config/KafkaSseConsumer.java.ejs} +8 -14
  289. package/generators/server/templates/src/main/java/package/config/KafkaSseProducer.java.ejs +30 -0
  290. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration_reactive.java.ejs +1 -1
  291. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration.java.ejs +12 -10
  292. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +2 -1
  293. package/generators/server/templates/src/main/java/package/domain/Authority.java.ejs +11 -0
  294. package/generators/server/templates/src/main/java/package/domain/PersistentToken.java.ejs +6 -6
  295. package/generators/server/templates/src/main/java/package/domain/User.java.ejs +9 -7
  296. package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +1 -11
  297. package/generators/server/templates/src/main/java/package/repository/EntityManager.java.ejs +48 -38
  298. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +48 -72
  299. package/generators/server/templates/src/main/java/package/security/jwt/JWTFilter.java.ejs +1 -1
  300. package/generators/server/templates/src/main/java/package/security/jwt/TokenProvider.java.ejs +1 -1
  301. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +1 -1
  302. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +8 -6
  303. package/generators/server/templates/src/main/java/package/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs +0 -1
  304. package/generators/server/templates/src/main/java/package/web/rest/AccountResource.java.ejs +1 -1
  305. package/generators/server/templates/src/main/java/package/web/rest/KafkaResource.java.ejs +60 -108
  306. package/generators/server/templates/src/main/java/package/web/rest/KafkaResource_reactive.java.ejs +74 -0
  307. package/generators/server/templates/src/main/java/package/web/rest/LogoutResource_reactive.java.ejs +1 -1
  308. package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
  309. package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +8 -0
  310. package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +6 -0
  311. package/generators/server/templates/src/main/resources/config/application.yml.ejs +28 -22
  312. package/generators/server/templates/src/test/java/package/CassandraKeyspaceIT.java.ejs +3 -4
  313. package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +12 -4
  314. package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +18 -15
  315. package/generators/server/templates/src/test/java/package/config/CassandraTestContainer.java.ejs +122 -0
  316. package/generators/server/templates/src/test/java/package/config/EmbeddedCassandra.java.ejs +11 -0
  317. package/generators/server/templates/src/test/java/package/config/EmbeddedKafka.java.ejs +11 -0
  318. package/generators/server/templates/src/test/java/package/config/EmbeddedMongo.java.ejs +11 -0
  319. package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +2 -0
  320. package/generators/server/templates/src/test/java/package/config/KafkaTestContainer.java.ejs +38 -0
  321. package/generators/server/templates/src/test/java/package/config/MongoDbTestContainer.java.ejs +67 -0
  322. package/generators/server/templates/src/test/java/package/config/TestContainersSpringContextCustomizerFactory.java.ejs +114 -0
  323. package/generators/server/templates/src/test/java/package/cucumber/CucumberIT.java.ejs +3 -10
  324. package/generators/server/templates/src/test/java/package/cucumber/stepdefs/StepDefs.java.ejs +8 -0
  325. package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +17 -3
  326. package/generators/server/templates/src/test/java/package/security/DomainUserDetailsServiceIT.java.ejs +1 -4
  327. package/generators/server/templates/src/test/java/package/security/SecurityUtilsUnitTest_reactive.java.ejs +1 -1
  328. package/generators/server/templates/src/test/java/package/security/jwt/JWTFilterTest.java.ejs +5 -5
  329. package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
  330. package/generators/server/templates/src/test/java/package/service/MailServiceIT.java.ejs +2 -4
  331. package/generators/server/templates/src/test/java/package/service/UserServiceIT.java.ejs +1 -4
  332. package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +1 -1
  333. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +15 -8
  334. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_oauth2.java.ejs +1 -4
  335. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT_skipUserManagement.java.ejs +1 -4
  336. package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT.java.ejs +52 -123
  337. package/generators/server/templates/src/test/java/package/web/rest/KafkaResourceIT_reactive.java.ejs +99 -0
  338. package/generators/server/templates/src/test/java/package/web/rest/PublicUserResourceIT.java.ejs +7 -10
  339. package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +1 -6
  340. package/generators/server/templates/src/test/java/package/web/rest/UserJWTControllerIT.java.ejs +1 -4
  341. package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +42 -47
  342. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT.java.ejs +1 -4
  343. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +2 -5
  344. package/generators/server/templates/src/test/resources/META-INF/spring.factories.ejs +1 -1
  345. package/generators/server/templates/src/test/resources/config/application.yml.ejs +21 -20
  346. package/generators/server/templates/src/test/resources/testcontainers.properties.ejs +1 -0
  347. package/generators/spring-boot/esm.mjs +19 -0
  348. package/generators/spring-controller/esm.mjs +1 -3
  349. package/generators/spring-service/esm.mjs +1 -3
  350. package/generators/upgrade/esm.mjs +1 -3
  351. package/generators/upgrade-config/esm.mjs +1 -3
  352. package/generators/workspaces/esm.mjs +1 -3
  353. package/generators/workspaces/index.js +2 -1
  354. package/lib/constants/logo.cjs +30 -0
  355. package/lib/constants/priorities.cjs +216 -2
  356. package/lib/constants/priorities.mjs +29 -1
  357. package/lib/index.mjs +6 -0
  358. package/lib/support/mixin.cjs +5 -1
  359. package/lib/support/shared-data.cjs +34 -1
  360. package/package.json +33 -29
  361. package/utils/entity.js +21 -2
  362. package/utils/faker.js +3 -3
  363. package/utils/field.js +69 -52
  364. package/utils/relationship.js +15 -4
  365. package/utils/user.js +109 -0
  366. package/generators/app/generator.spec.mjs +0 -47
  367. package/generators/aws/generator.spec.mjs +0 -47
  368. package/generators/azure-app-service/generator.spec.mjs +0 -47
  369. package/generators/azure-spring-cloud/generator.spec.mjs +0 -47
  370. package/generators/base/generator.spec.mjs +0 -44
  371. package/generators/bootstrap/generator.spec.mjs +0 -44
  372. package/generators/ci-cd/generator.spec.mjs +0 -47
  373. package/generators/client/__workflow/devserver-angular.json +0 -13
  374. package/generators/client/__workflow/devserver-react.json +0 -13
  375. package/generators/client/__workflow/devserver-vue.json +0 -13
  376. package/generators/client/generator.spec.mjs +0 -47
  377. package/generators/cloudfoundry/generator.spec.mjs +0 -47
  378. package/generators/common/generator.spec.mjs +0 -47
  379. package/generators/cypress/generator.spec.mjs +0 -47
  380. package/generators/database-changelog/generator.spec.mjs +0 -47
  381. package/generators/database-changelog-liquibase/generator.spec.mjs +0 -47
  382. package/generators/docker-compose/generator.spec.mjs +0 -44
  383. package/generators/entities/generator.spec.mjs +0 -47
  384. package/generators/entities-client/generator.spec.mjs +0 -47
  385. package/generators/entity/generator.spec.mjs +0 -47
  386. package/generators/entity-client/generator.spec.mjs +0 -47
  387. package/generators/entity-i18n/generator.spec.mjs +0 -47
  388. package/generators/entity-server/generator.spec.mjs +0 -47
  389. package/generators/entity-server/templates/src/main/java/package/repository/search/SortToFieldSortBuilderConverter.java.ejs +0 -24
  390. package/generators/export-jdl/generator.spec.mjs +0 -44
  391. package/generators/gae/generator.spec.mjs +0 -47
  392. package/generators/gradle/__snapshots__/generator.spec.cjs.snap +0 -59
  393. package/generators/gradle/generator.spec.cjs +0 -71
  394. package/generators/heroku/generator.spec.mjs +0 -47
  395. package/generators/info/generator.spec.mjs +0 -44
  396. package/generators/init/__snapshots__/generator.spec.cjs.snap +0 -65
  397. package/generators/init/generator.spec.cjs +0 -112
  398. package/generators/java/__snapshots__/generator.spec.cjs.snap +0 -118
  399. package/generators/java/generator.spec.cjs +0 -87
  400. package/generators/kubernetes/generator.spec.mjs +0 -44
  401. package/generators/kubernetes-helm/generator.spec.mjs +0 -44
  402. package/generators/kubernetes-knative/generator.spec.mjs +0 -44
  403. package/generators/languages/generator.spec.mjs +0 -47
  404. package/generators/maven/__snapshots__/generator.spec.cjs.snap +0 -53
  405. package/generators/maven/generator.spec.cjs +0 -78
  406. package/generators/maven/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
  407. package/generators/openapi-client/generator.spec.mjs +0 -47
  408. package/generators/openshift/generator.spec.mjs +0 -44
  409. package/generators/page/generator.spec.mjs +0 -47
  410. package/generators/project-name/generator.spec.cjs +0 -43
  411. package/generators/server/__snapshots__/generator.spec.mjs.snap +0 -1931
  412. package/generators/server/generator.spec.mjs +0 -52
  413. package/generators/server/templates/.mvn/wrapper/MavenWrapperDownloader.java +0 -117
  414. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactory.java.ejs +0 -83
  415. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactoryBean.java.ejs +0 -40
  416. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryQuery.java.ejs +0 -44
  417. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlQueryCreator.java.ejs +0 -162
  418. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlRepositoryQueryExecutor.java.ejs +0 -104
  419. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_ADMIN.json.ejs +0 -3
  420. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_USER.json.ejs +0 -3
  421. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_indexes.n1ql.ejs +0 -19
  422. package/generators/server/templates/src/main/java/package/config/KafkaProperties.java.ejs +0 -68
  423. package/generators/server/templates/src/test/java/package/AbstractCassandraTest.java.ejs +0 -125
  424. package/generators/server/templates/src/test/java/package/MongoDbTestContainerExtension.java.ejs +0 -37
  425. package/generators/server/templates/src/test/java/package/TestContainersSpringContextCustomizerFactory.java.ejs +0 -24
  426. package/generators/spring-boot/__snapshots__/generator.spec.cjs.snap +0 -80
  427. package/generators/spring-boot/generator.spec.cjs +0 -64
  428. package/generators/spring-controller/generator.spec.mjs +0 -47
  429. package/generators/spring-service/generator.spec.mjs +0 -47
  430. package/generators/upgrade/generator.spec.mjs +0 -44
  431. package/generators/upgrade-config/generator.spec.mjs +0 -44
  432. package/generators/workspaces/generator.spec.mjs +0 -47
@@ -108,8 +108,16 @@ const mongoDbFiles = {
108
108
  path: SERVER_TEST_SRC_DIR,
109
109
  templates: [
110
110
  {
111
- file: 'package/MongoDbTestContainerExtension.java',
112
- renameTo: generator => `${generator.testDir}MongoDbTestContainerExtension.java`,
111
+ file: 'package/config/MongoDbTestContainer.java',
112
+ renameTo: generator => `${generator.testDir}config/MongoDbTestContainer.java`,
113
+ },
114
+ {
115
+ file: 'package/config/EmbeddedMongo.java',
116
+ renameTo: generator => `${generator.testDir}config/EmbeddedMongo.java`,
117
+ },
118
+ {
119
+ file: 'package/config/TestContainersSpringContextCustomizerFactory.java',
120
+ renameTo: generator => `${generator.testDir}config/TestContainersSpringContextCustomizerFactory.java`,
113
121
  },
114
122
  ],
115
123
  },
@@ -119,14 +127,8 @@ const mongoDbFiles = {
119
127
  {
120
128
  file: 'META-INF/spring.factories',
121
129
  },
122
- ],
123
- },
124
- {
125
- path: SERVER_TEST_SRC_DIR,
126
- templates: [
127
130
  {
128
- file: 'package/TestContainersSpringContextCustomizerFactory.java',
129
- renameTo: generator => `${generator.testDir}TestContainersSpringContextCustomizerFactory.java`,
131
+ file: 'testcontainers.properties',
130
132
  },
131
133
  ],
132
134
  },
@@ -222,7 +224,29 @@ const cassandraFiles = {
222
224
  file: 'package/CassandraKeyspaceIT.java',
223
225
  renameTo: generator => `${generator.testDir}CassandraKeyspaceIT.java`,
224
226
  },
225
- { file: 'package/AbstractCassandraTest.java', renameTo: generator => `${generator.testDir}AbstractCassandraTest.java` },
227
+ {
228
+ file: 'package/config/CassandraTestContainer.java',
229
+ renameTo: generator => `${generator.testDir}config/CassandraTestContainer.java`,
230
+ },
231
+ {
232
+ file: 'package/config/EmbeddedCassandra.java',
233
+ renameTo: generator => `${generator.testDir}config/EmbeddedCassandra.java`,
234
+ },
235
+ {
236
+ file: 'package/config/TestContainersSpringContextCustomizerFactory.java',
237
+ renameTo: generator => `${generator.testDir}config/TestContainersSpringContextCustomizerFactory.java`,
238
+ },
239
+ ],
240
+ },
241
+ {
242
+ path: SERVER_TEST_RES_DIR,
243
+ templates: [
244
+ {
245
+ file: 'META-INF/spring.factories',
246
+ },
247
+ {
248
+ file: 'testcontainers.properties',
249
+ },
226
250
  ],
227
251
  },
228
252
  ],
@@ -332,10 +356,19 @@ const baseServerFiles = {
332
356
  { file: 'config/realm-config/jhipster-users-0.json', method: 'copy', renameTo: () => 'realm-config/jhipster-users-0.json' },
333
357
  ],
334
358
  },
359
+ {
360
+ condition: generator => generator.serviceDiscoveryType || generator.applicationTypeGateway || generator.applicationTypeMicroservice,
361
+ path: DOCKER_DIR,
362
+ templates: ['zipkin.yml'],
363
+ },
335
364
  ],
336
365
  serverBuild: [
337
366
  {
338
- templates: [{ file: 'checkstyle.xml', options: { interpolate: INTERPOLATE_REGEX } }],
367
+ templates: [
368
+ { file: 'checkstyle.xml', options: { interpolate: INTERPOLATE_REGEX } },
369
+ { file: 'devcontainer/devcontainer.json', renameTo: () => '.devcontainer/devcontainer.json' },
370
+ { file: 'devcontainer/Dockerfile', renameTo: () => '.devcontainer/Dockerfile' },
371
+ ],
339
372
  },
340
373
  {
341
374
  condition: generator => generator.buildTool === GRADLE,
@@ -364,13 +397,14 @@ const baseServerFiles = {
364
397
  templates: [
365
398
  { file: 'mvnw', method: 'copy', noEjs: true },
366
399
  { file: 'mvnw.cmd', method: 'copy', noEjs: true },
400
+ { file: '.mvn/jvm.config', method: 'copy', noEjs: true },
367
401
  { file: '.mvn/wrapper/maven-wrapper.jar', method: 'copy', noEjs: true },
368
402
  { file: '.mvn/wrapper/maven-wrapper.properties', method: 'copy', noEjs: true },
369
- { file: '.mvn/wrapper/MavenWrapperDownloader.java', method: 'copy', noEjs: true },
370
403
  { file: 'pom.xml', options: { interpolate: INTERPOLATE_REGEX } },
371
404
  ],
372
405
  },
373
406
  {
407
+ condition: generator => !generator.skipClient,
374
408
  templates: [
375
409
  { file: 'npmw', method: 'copy', noEjs: true },
376
410
  { file: 'npmw.cmd', method: 'copy', noEjs: true },
@@ -1085,8 +1119,12 @@ const baseServerFiles = {
1085
1119
  path: SERVER_MAIN_SRC_DIR,
1086
1120
  templates: [
1087
1121
  {
1088
- file: 'package/config/KafkaProperties.java',
1089
- renameTo: generator => `${generator.javaDir}config/KafkaProperties.java`,
1122
+ file: 'package/config/KafkaSseConsumer.java',
1123
+ renameTo: generator => `${generator.javaDir}config/KafkaSseConsumer.java`,
1124
+ },
1125
+ {
1126
+ file: 'package/config/KafkaSseProducer.java',
1127
+ renameTo: generator => `${generator.javaDir}config/KafkaSseProducer.java`,
1090
1128
  },
1091
1129
  ],
1092
1130
  },
@@ -1171,7 +1209,17 @@ const baseServerFiles = {
1171
1209
  ],
1172
1210
  },
1173
1211
  {
1174
- condition: generator => generator.messageBroker === KAFKA,
1212
+ condition: generator => generator.messageBroker === KAFKA && generator.reactive,
1213
+ path: SERVER_MAIN_SRC_DIR,
1214
+ templates: [
1215
+ {
1216
+ file: 'package/web/rest/KafkaResource_reactive.java',
1217
+ renameTo: generator => `${generator.javaDir}web/rest/${generator.upperFirstCamelCase(generator.baseName)}KafkaResource.java`,
1218
+ },
1219
+ ],
1220
+ },
1221
+ {
1222
+ condition: generator => generator.messageBroker === KAFKA && !generator.reactive,
1175
1223
  path: SERVER_MAIN_SRC_DIR,
1176
1224
  templates: [
1177
1225
  {
@@ -1420,6 +1468,24 @@ const baseServerFiles = {
1420
1468
  {
1421
1469
  condition: generator => generator.messageBroker === KAFKA,
1422
1470
  path: SERVER_TEST_SRC_DIR,
1471
+ templates: [
1472
+ {
1473
+ file: 'package/config/KafkaTestContainer.java',
1474
+ renameTo: generator => `${generator.testDir}config/KafkaTestContainer.java`,
1475
+ },
1476
+ {
1477
+ file: 'package/config/EmbeddedKafka.java',
1478
+ renameTo: generator => `${generator.testDir}config/EmbeddedKafka.java`,
1479
+ },
1480
+ {
1481
+ file: 'package/config/TestContainersSpringContextCustomizerFactory.java',
1482
+ renameTo: generator => `${generator.testDir}config/TestContainersSpringContextCustomizerFactory.java`,
1483
+ },
1484
+ ],
1485
+ },
1486
+ {
1487
+ condition: generator => generator.messageBroker === KAFKA && !generator.reactive,
1488
+ path: SERVER_TEST_SRC_DIR,
1423
1489
  templates: [
1424
1490
  {
1425
1491
  file: 'package/web/rest/KafkaResourceIT.java',
@@ -1427,6 +1493,28 @@ const baseServerFiles = {
1427
1493
  },
1428
1494
  ],
1429
1495
  },
1496
+ {
1497
+ condition: generator => generator.messageBroker === KAFKA && generator.reactive,
1498
+ path: SERVER_TEST_SRC_DIR,
1499
+ templates: [
1500
+ {
1501
+ file: 'package/web/rest/KafkaResourceIT_reactive.java',
1502
+ renameTo: generator => `${generator.testDir}web/rest/${generator.upperFirstCamelCase(generator.baseName)}KafkaResourceIT.java`,
1503
+ },
1504
+ ],
1505
+ },
1506
+ {
1507
+ condition: generator => generator.messageBroker === KAFKA,
1508
+ path: SERVER_TEST_RES_DIR,
1509
+ templates: [
1510
+ {
1511
+ file: 'META-INF/spring.factories',
1512
+ },
1513
+ {
1514
+ file: 'testcontainers.properties',
1515
+ },
1516
+ ],
1517
+ },
1430
1518
  ],
1431
1519
  serverJavaUserManagement: [
1432
1520
  {
@@ -1500,7 +1588,6 @@ const baseServerFiles = {
1500
1588
  file: 'package/repository/UserRepository.java',
1501
1589
  renameTo: generator => `${generator.javaDir}repository/UserRepository.java`,
1502
1590
  },
1503
- { file: 'package/web/rest/UserResource.java', renameTo: generator => `${generator.javaDir}web/rest/UserResource.java` },
1504
1591
  {
1505
1592
  file: 'package/web/rest/PublicUserResource.java',
1506
1593
  renameTo: generator => `${generator.javaDir}web/rest/PublicUserResource.java`,
@@ -1706,7 +1793,8 @@ const baseServerFiles = {
1706
1793
  ],
1707
1794
  },
1708
1795
  {
1709
- condition: generator => !generator.skipUserManagement && generator.cucumberTests,
1796
+ condition: generator =>
1797
+ !generator.skipUserManagement && generator.cucumberTests && !generator.databaseTypeMongodb && !generator.databaseTypeCassandra,
1710
1798
  path: SERVER_TEST_SRC_DIR,
1711
1799
  templates: [
1712
1800
  {
@@ -1716,7 +1804,8 @@ const baseServerFiles = {
1716
1804
  ],
1717
1805
  },
1718
1806
  {
1719
- condition: generator => !generator.skipUserManagement && generator.cucumberTests,
1807
+ condition: generator =>
1808
+ !generator.skipUserManagement && generator.cucumberTests && !generator.databaseTypeMongodb && !generator.databaseTypeCassandra,
1720
1809
  path: SERVER_TEST_RES_DIR,
1721
1810
  templates: [
1722
1811
  {
@@ -1818,6 +1907,14 @@ function writeFiles() {
1818
1907
  this.generateKeyStore();
1819
1908
  },
1820
1909
 
1910
+ cleanupFiles() {
1911
+ if (this.isJhipsterVersionLessThan('7.6.1')) {
1912
+ if (this.authenticationTypeOauth2 && !this.databaseTypeNo) {
1913
+ this.removeFile(`${this.mainJavaPackageDir}web/rest/UserResource.java`);
1914
+ }
1915
+ }
1916
+ },
1917
+
1821
1918
  cleanupOldServerFiles() {
1822
1919
  serverCleanup.cleanupOldServerFiles(
1823
1920
  this,
@@ -68,6 +68,8 @@ const NO_WEBSOCKET = websocketTypes.FALSE;
68
68
 
69
69
  const { SERVER_MAIN_SRC_DIR, SERVER_MAIN_RES_DIR, SERVER_TEST_SRC_DIR, SERVER_TEST_RES_DIR, MAIN_DIR, TEST_DIR } = constants;
70
70
 
71
+ const WAIT_TIMEOUT = 3 * 60000;
72
+
71
73
  module.exports = class JHipsterServerGenerator extends BaseBlueprintGenerator {
72
74
  constructor(args, options, features) {
73
75
  super(args, options, { unique: 'namespace', ...features });
@@ -187,6 +189,7 @@ module.exports = class JHipsterServerGenerator extends BaseBlueprintGenerator {
187
189
  this.DOCKER_PROMETHEUS = constants.DOCKER_PROMETHEUS;
188
190
  this.DOCKER_GRAFANA = constants.DOCKER_GRAFANA;
189
191
  this.DOCKER_COMPOSE_FORMAT_VERSION = constants.DOCKER_COMPOSE_FORMAT_VERSION;
192
+ this.DOCKER_ZIPKIN = constants.DOCKER_ZIPKIN;
190
193
 
191
194
  this.JAVA_VERSION = constants.JAVA_VERSION;
192
195
  this.JAVA_COMPATIBLE_VERSIONS = constants.JAVA_COMPATIBLE_VERSIONS;
@@ -348,10 +351,10 @@ module.exports = class JHipsterServerGenerator extends BaseBlueprintGenerator {
348
351
  this.jhiTablePrefix = this.getTableName(this.jhiPrefix);
349
352
 
350
353
  this.mainJavaDir = SERVER_MAIN_SRC_DIR;
354
+ this.mainJavaPackageDir = `${SERVER_MAIN_SRC_DIR}${this.packageFolder}/`;
351
355
  this.mainJavaResourceDir = SERVER_MAIN_RES_DIR;
352
- this.mainJavaPackageDir = `${SERVER_MAIN_RES_DIR}${this.packageFolder}/`;
353
356
  this.testJavaDir = SERVER_TEST_SRC_DIR;
354
- this.testJavaPackageDir = `${SERVER_MAIN_RES_DIR}${this.packageFolder}/`;
357
+ this.testJavaPackageDir = `${SERVER_TEST_SRC_DIR}${this.packageFolder}/`;
355
358
  this.testResourceDir = SERVER_TEST_RES_DIR;
356
359
  this.srcMainDir = MAIN_DIR;
357
360
  this.srcTestDir = TEST_DIR;
@@ -473,6 +476,11 @@ module.exports = class JHipsterServerGenerator extends BaseBlueprintGenerator {
473
476
  this.removeFile(`${this.mainJavaPackageDir}config/apidocs/GatewaySwaggerResourcesProvider.java`);
474
477
  this.removeFile(`${this.testJavaDir}config/apidocs/GatewaySwaggerResourcesProviderTest.java`);
475
478
  }
479
+ if (this.isJhipsterVersionLessThan('7.7.1')) {
480
+ if (this.buildToolMaven) {
481
+ this.removeFile('.mvn/wrapper/MavenWrapperDownloader.java');
482
+ }
483
+ }
476
484
  },
477
485
  ...writeFiles(),
478
486
  ...super._missingPostWriting(),
@@ -504,32 +512,31 @@ module.exports = class JHipsterServerGenerator extends BaseBlueprintGenerator {
504
512
  } else {
505
513
  scriptsStorage.set({
506
514
  'docker:db:up': `docker-compose -f src/main/docker/${prodDatabaseType}.yml up -d`,
507
- 'docker:db:down': `docker-compose -f src/main/docker/${prodDatabaseType}.yml down -v --remove-orphans`,
515
+ 'docker:db:down': `docker-compose -f src/main/docker/${prodDatabaseType}.yml down -v`,
508
516
  });
509
517
  }
510
518
  } else {
511
519
  const dockerFile = `src/main/docker/${databaseType}.yml`;
512
520
  if (databaseType === CASSANDRA) {
513
521
  scriptsStorage.set({
514
- 'docker:db:await': 'wait-on tcp:9042 && sleep 20',
522
+ 'docker:db:await': `wait-on -t ${WAIT_TIMEOUT} tcp:9042 && sleep 20`,
515
523
  });
516
524
  }
517
525
  if (databaseType === COUCHBASE) {
518
526
  scriptsStorage.set({
519
- 'docker:db:await':
520
- 'echo "Waiting for Couchbase to start" && wait-on http-get://localhost:8091/ui/index.html && sleep 30 && echo "Couchbase started"',
527
+ 'docker:db:await': `echo "Waiting for Couchbase to start" && wait-on -t ${WAIT_TIMEOUT} http-get://localhost:8091/ui/index.html && sleep 30 && echo "Couchbase started"`,
521
528
  });
522
529
  }
523
530
  if (databaseType === COUCHBASE || databaseType === CASSANDRA) {
524
531
  scriptsStorage.set({
525
532
  'docker:db:build': `docker-compose -f ${dockerFile} build`,
526
533
  'docker:db:up': `docker-compose -f ${dockerFile} up -d`,
527
- 'docker:db:down': `docker-compose -f ${dockerFile} down -v --remove-orphans`,
534
+ 'docker:db:down': `docker-compose -f ${dockerFile} down -v`,
528
535
  });
529
536
  } else if (this.fs.exists(this.destinationPath(dockerFile))) {
530
537
  scriptsStorage.set({
531
538
  'docker:db:up': `docker-compose -f ${dockerFile} up -d`,
532
- 'docker:db:down': `docker-compose -f ${dockerFile} down -v --remove-orphans`,
539
+ 'docker:db:down': `docker-compose -f ${dockerFile} down -v`,
533
540
  });
534
541
  } else {
535
542
  scriptsStorage.set('docker:db:up', `echo "Docker for db ${databaseType} not configured for application ${this.baseName}"`);
@@ -537,7 +544,7 @@ module.exports = class JHipsterServerGenerator extends BaseBlueprintGenerator {
537
544
  }
538
545
  if (this.jhipsterConfig.searchEngine === ELASTICSEARCH) {
539
546
  dockerAwaitScripts.push(
540
- 'echo "Waiting for Elasticsearch to start" && wait-on "http-get://localhost:9200/_cluster/health?wait_for_status=green&timeout=60s" && echo "Elasticsearch started"'
547
+ `echo "Waiting for Elasticsearch to start" && wait-on -t ${WAIT_TIMEOUT} "http-get://localhost:9200/_cluster/health?wait_for_status=green&timeout=60s" && echo "Elasticsearch started"`
541
548
  );
542
549
  }
543
550
 
@@ -552,17 +559,17 @@ module.exports = class JHipsterServerGenerator extends BaseBlueprintGenerator {
552
559
  dockerBuild.push(`npm run docker:${dockerConfig}:build`);
553
560
  } else if (dockerConfig === 'jhipster-registry') {
554
561
  dockerAwaitScripts.push(
555
- 'echo "Waiting for jhipster-registry to start" && wait-on http-get://localhost:8761/management/health && echo "jhipster-registry started"'
562
+ `echo "Waiting for jhipster-registry to start" && wait-on -t ${WAIT_TIMEOUT} http-get://localhost:8761/management/health && echo "jhipster-registry started"`
556
563
  );
557
564
  } else if (dockerConfig === 'keycloak') {
558
565
  dockerAwaitScripts.push(
559
- 'echo "Waiting for keycloak to start" && wait-on http-get://localhost:9080/auth/realms/jhipster -t 30000 && echo "keycloak started" || echo "keycloak not running, make sure oauth2 server is running"'
566
+ `echo "Waiting for keycloak to start" && wait-on -t ${WAIT_TIMEOUT} http-get://localhost:9080/auth/realms/jhipster && echo "keycloak started" || echo "keycloak not running, make sure oauth2 server is running"`
560
567
  );
561
568
  }
562
569
 
563
570
  scriptsStorage.set(`docker:${dockerConfig}:up`, `docker-compose -f ${dockerFile} up -d`);
564
571
  dockerOthersUp.push(`npm run docker:${dockerConfig}:up`);
565
- scriptsStorage.set(`docker:${dockerConfig}:down`, `docker-compose -f ${dockerFile} down -v --remove-orphans`);
572
+ scriptsStorage.set(`docker:${dockerConfig}:down`, `docker-compose -f ${dockerFile} down -v`);
566
573
  dockerOthersDown.push(`npm run docker:${dockerConfig}:down`);
567
574
  }
568
575
  });
@@ -632,21 +639,20 @@ module.exports = class JHipsterServerGenerator extends BaseBlueprintGenerator {
632
639
  'ci:e2e:package':
633
640
  'npm run java:$npm_package_config_packaging:$npm_package_config_default_environment -- -Pe2e -Denforcer.skip=true',
634
641
  'preci:e2e:server:start': 'npm run docker:db:await --if-present && npm run docker:others:await --if-present',
635
- 'ci:e2e:server:start': `java -jar ${e2ePackage}.$npm_package_config_packaging --spring.profiles.active=$npm_package_config_default_environment ${javaCommonLog} ${javaTestLog} --logging.level.org.springframework.web=ERROR`,
642
+ 'ci:e2e:server:start': `java -jar ${e2ePackage}.$npm_package_config_packaging --spring.profiles.active=e2e,$npm_package_config_default_environment ${javaCommonLog} ${javaTestLog} --logging.level.org.springframework.web=ERROR`,
636
643
  });
637
644
  },
638
645
  packageJsonE2eScripts() {
639
646
  const scriptsStorage = this.packageJson.createStorage('scripts');
640
647
  const buildCmd = this.jhipsterConfig.buildTool === GRADLE ? 'gradlew' : 'mvnw';
641
648
  if (scriptsStorage.get('e2e')) {
649
+ const applicationWaitTimeout = WAIT_TIMEOUT * (this.applicationTypeGateway ? 2 : 1);
642
650
  scriptsStorage.set({
643
- 'ci:server:await':
644
- 'echo "Waiting for server at port $npm_package_config_backend_port to start" && wait-on http-get://localhost:$npm_package_config_backend_port/management/health && echo "Server at port $npm_package_config_backend_port started"',
651
+ 'ci:server:await': `echo "Waiting for server at port $npm_package_config_backend_port to start" && wait-on -t ${applicationWaitTimeout} http-get://localhost:$npm_package_config_backend_port/management/health && echo "Server at port $npm_package_config_backend_port started"`,
645
652
  'pree2e:headless': 'npm run ci:server:await',
646
653
  'ci:e2e:run': 'concurrently -k -s first "npm run ci:e2e:server:start" "npm run e2e:headless"',
647
654
  'e2e:dev': `concurrently -k -s first "./${buildCmd}" "npm run e2e"`,
648
- 'e2e:devserver':
649
- 'concurrently -k -s first "npm run backend:start" "npm start" "wait-on http-get://localhost:9000 && npm run e2e:headless -- -c baseUrl=http://localhost:9000"',
655
+ 'e2e:devserver': `concurrently -k -s first "npm run backend:start" "npm start" "wait-on -t ${WAIT_TIMEOUT} http-get://localhost:9000 && npm run e2e:headless -- -c baseUrl=http://localhost:9000"`,
650
656
  });
651
657
  }
652
658
  },
@@ -20,6 +20,7 @@ const chalk = require('chalk');
20
20
  const needleServer = require('./needle-server');
21
21
 
22
22
  const buildGradlePath = 'build.gradle';
23
+ const gradleSettingsPath = 'settings.gradle';
23
24
 
24
25
  module.exports = class extends needleServer {
25
26
  addProperty(name, value) {
@@ -92,4 +93,41 @@ module.exports = class extends needleServer {
92
93
 
93
94
  this.addBlockContentToFile(rewriteFileModel, errorMessage);
94
95
  }
96
+
97
+ addPluginToPluginManagement(id, version) {
98
+ const errorMessage = `${chalk.yellow('Reference to ')}id ${id} version ${version}${chalk.yellow(' not added.')}`;
99
+ const rewriteFileModel = this.generateFileModel(
100
+ gradleSettingsPath,
101
+ 'jhipster-needle-gradle-plugin-management-plugins',
102
+ `id '${id}' version '${version}'`
103
+ );
104
+
105
+ this.addBlockContentToFile(rewriteFileModel, errorMessage);
106
+ }
107
+
108
+ addPluginManagementRepository(url, username, password) {
109
+ const errorMessage = chalk.yellow('Reference to ') + url + chalk.yellow(' not added.');
110
+ let repository = 'maven {\n';
111
+ if (url) {
112
+ repository += ` url "${url}"\n`;
113
+ }
114
+ if (username || password) {
115
+ repository += ' credentials {\n';
116
+ if (username) {
117
+ repository += ` username = "${username}"\n`;
118
+ }
119
+ if (password) {
120
+ repository += ` password = "${password}"\n`;
121
+ }
122
+ repository += ' }\n';
123
+ }
124
+ repository += ' }';
125
+
126
+ const rewriteFileModel = this.generateFileModel(
127
+ gradleSettingsPath,
128
+ 'jhipster-needle-gradle-plugin-management-repositories',
129
+ repository
130
+ );
131
+ this.addBlockContentToFile(rewriteFileModel, errorMessage);
132
+ }
95
133
  };
@@ -97,7 +97,7 @@ module.exports = class extends needleServer {
97
97
  addProperty(name, value) {
98
98
  const errorMessage = `${chalk.yellow('Reference to maven property name ')}
99
99
  (name: ${name}, value:${value})${chalk.yellow(' not added.\n')}`;
100
- const property = `<${name}>${value}</${name}>`;
100
+ const property = value ? `<${name}>${value}</${name}>` : `<${name}/>`;
101
101
  const rewriteFileModel = this.generateFileModel(pomPath, '<!-- jhipster-needle-maven-property -->', property);
102
102
 
103
103
  this.addBlockContentToFile(rewriteFileModel, errorMessage);
@@ -0,0 +1 @@
1
+ -XX:+TieredCompilation -XX:TieredStopAtLevel=1
@@ -1,2 +1,18 @@
1
- distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.3/apache-maven-3.8.3-bin.zip
2
- wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+ distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.5/apache-maven-3.8.5-bin.zip
18
+ wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
@@ -386,6 +386,7 @@ if (SPRING_BOOT_VERSION.indexOf('M') > -1 || SPRING_BOOT_VERSION.indexOf('RC') >
386
386
  <%_ } _%>
387
387
  implementation "javax.transaction:javax.transaction-api"
388
388
  <%_ if (databaseTypeCassandra) { _%>
389
+ testImplementation "org.testcontainers:cassandra"
389
390
  implementation "org.lz4:lz4-java"
390
391
  <%_ } _%>
391
392
  <%_ if (cacheProviderEhCache) { _%>
@@ -459,11 +460,9 @@ if (SPRING_BOOT_VERSION.indexOf('M') > -1 || SPRING_BOOT_VERSION.indexOf('RC') >
459
460
  testImplementation "org.testcontainers:oracle-xe"
460
461
  <%_ } _%>
461
462
  <%_ if (messageBrokerKafka) { _%>
462
- <%_ if (reactive) { _%>
463
- implementation "io.projectreactor.kafka:reactor-kafka"
464
- <%_ } else { _%>
465
- implementation "org.apache.kafka:kafka-clients"
466
- <%_ } _%>
463
+ implementation "org.springframework.cloud:spring-cloud-stream"
464
+ implementation "org.springframework.cloud:spring-cloud-starter-stream-kafka"
465
+ testImplementation "org.springframework.cloud:spring-cloud-stream-test-support"
467
466
  <%_ } _%>
468
467
  implementation "org.springframework.boot:spring-boot-starter-security"
469
468
  implementation ("org.springframework.boot:spring-boot-starter-web<% if (reactive) { %>flux<% } %>") {
@@ -521,6 +520,9 @@ if (SPRING_BOOT_VERSION.indexOf('M') > -1 || SPRING_BOOT_VERSION.indexOf('RC') >
521
520
  implementation "com.playtika.reactivefeign:feign-reactor-spring-configuration"
522
521
  <%_ } _%>
523
522
  implementation "org.springframework.security:spring-security-config"
523
+ <%_ if (!reactive && databaseTypeSql) { _%>
524
+ implementation "org.springframework.security:spring-security-data"
525
+ <%_ } _%>
524
526
  implementation "org.springframework.security:spring-security-web"
525
527
  <%_ if (communicationSpringWebsocket) { _%>
526
528
  implementation "org.springframework.security:spring-security-messaging"
@@ -0,0 +1,91 @@
1
+ <%#
2
+ Copyright 2013-2022 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
+ package <%= packageName %>.repository;
20
+
21
+ import org.springframework.data.couchbase.repository.Query;
22
+ import com.couchbase.client.java.query.QueryScanConsistency;
23
+ import org.springframework.data.couchbase.repository.ScanConsistency;
24
+ import org.springframework.data.domain.*;
25
+ import org.springframework.data.repository.NoRepositoryBean;
26
+ import com.couchbase.client.java.search.SearchQuery;
27
+ import com.couchbase.client.java.search.queries.DocIdQuery;
28
+ import com.couchbase.client.java.search.queries.QueryStringQuery;
29
+ import java.util.LinkedList;
30
+
31
+ <%_ if (reactive) { _%>
32
+ import reactor.core.publisher.Flux;
33
+ import reactor.core.publisher.Mono;
34
+ <%_ } _%>
35
+
36
+ import java.util.List;
37
+
38
+ /**
39
+ * Couchbase specific {@link org.springframework.data.repository.Repository} interface for search queries.
40
+ */
41
+ <%_
42
+ let listOrFlux = reactive ? 'Flux' : 'List';
43
+ let pageOrFlux = reactive ? 'Flux' : 'Page';
44
+ _%>
45
+ @NoRepositoryBean
46
+ public interface CouchbaseSearchRepository<T, ID> extends JHipsterCouchbaseRepository<T, ID> {
47
+
48
+ String SEARCH_CONDITION = "SEARCH(b, #{T(<%= packageName %>.repository.CouchbaseSearchRepository).searchQuery([0]).toString()})";
49
+
50
+ static SearchQuery searchQuery(String queryString) {
51
+ List<String> ids = new LinkedList<>();
52
+ for (String r : queryString.split(" ")) {
53
+ if (r.indexOf("id:") == 0) {
54
+ ids.add(r.substring(3));
55
+ queryString = queryString.replace(r, "").replaceAll("[ ]+", " ").trim();
56
+ }
57
+ }
58
+ QueryStringQuery query = SearchQuery.queryString(queryString);
59
+ if (ids.size() != 0) {
60
+ DocIdQuery docIdQuery = SearchQuery.docId(ids.toArray(new String[0]));
61
+ if (!queryString.isEmpty()) {
62
+ return SearchQuery.conjuncts(query, docIdQuery);
63
+ }
64
+ return docIdQuery;
65
+ }
66
+ return query;
67
+ }
68
+
69
+ @ScanConsistency(query = QueryScanConsistency.NOT_BOUNDED)
70
+ default <%= listOrFlux %><T> search(String queryString) {
71
+ return findAllById(toIds(searchIds(queryString)));
72
+ }
73
+
74
+ @ScanConsistency(query = QueryScanConsistency.NOT_BOUNDED)
75
+ default <%= pageOrFlux %><T> search(String queryString, Pageable pageable) {
76
+ <%_ if (reactive) { _%>
77
+ return findAllById(toIds(searchIds(queryString, pageable)));
78
+ <%_ } else { _%>
79
+ Page<T> page = searchIds(queryString, pageable);
80
+ return new PageImpl<>(findAllById(toIds(page.getContent())), pageable, page.getTotalElements());
81
+ <%_ } _%>
82
+ }
83
+
84
+ @Query(FIND_IDS_QUERY + " AND " + SEARCH_CONDITION)
85
+ @ScanConsistency(query = QueryScanConsistency.NOT_BOUNDED)
86
+ <%= listOrFlux %><T> searchIds(String queryString);
87
+
88
+ @Query(FIND_IDS_QUERY + " AND " + SEARCH_CONDITION)
89
+ @ScanConsistency(query = QueryScanConsistency.NOT_BOUNDED)
90
+ <%= pageOrFlux %><T> searchIds(String queryString, Pageable pageable);
91
+ }