generator-jhipster 8.0.0-rc.1 → 8.1.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 (369) hide show
  1. package/README.md +71 -58
  2. package/dist/cli/environment-builder.mjs +14 -7
  3. package/dist/cli/jhipster-command.mjs +7 -3
  4. package/dist/cli/program.mjs +2 -2
  5. package/dist/generators/angular/cleanup.mjs +7 -0
  6. package/dist/generators/angular/files-angular.mjs +3 -4
  7. package/dist/generators/angular/generator.mjs +10 -22
  8. package/dist/generators/angular/needle-api/needle-client-angular.mjs +2 -8
  9. package/dist/generators/angular/resources/package.json +25 -24
  10. package/dist/generators/angular/support/translate-angular.mjs +2 -2
  11. package/dist/generators/angular/templates/README.md.jhi.client.angular.ejs +1 -1
  12. package/dist/generators/angular/templates/angular.json.ejs +3 -7
  13. package/dist/generators/angular/templates/package.json.ejs +4 -8
  14. package/dist/generators/angular/templates/src/main/webapp/app/account/activate/activate.component.html.ejs +6 -4
  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 +39 -33
  17. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +44 -36
  18. package/dist/generators/angular/templates/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +24 -23
  19. package/dist/generators/angular/templates/src/main/webapp/app/account/register/register.component.html.ejs +74 -62
  20. package/dist/generators/angular/templates/src/main/webapp/app/account/sessions/sessions.component.html.ejs +12 -4
  21. package/dist/generators/angular/templates/src/main/webapp/app/account/settings/settings.component.html.ejs +54 -48
  22. package/dist/generators/angular/templates/src/main/webapp/app/admin/admin.routes.ts.ejs +74 -0
  23. package/dist/generators/angular/templates/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +15 -5
  24. package/dist/generators/angular/templates/src/main/webapp/app/admin/docs/docs.component.ts.ejs +1 -1
  25. package/dist/generators/angular/templates/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +20 -7
  26. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/health.component.html.ejs +10 -7
  27. package/dist/generators/angular/templates/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +9 -3
  28. package/dist/generators/angular/templates/src/main/webapp/app/admin/logs/logs.component.html.ejs +12 -4
  29. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/jvm-memory/jvm-memory.component.html.ejs +13 -7
  30. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +6 -2
  31. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +3 -1
  32. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +13 -9
  33. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +13 -5
  34. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +21 -7
  35. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +6 -2
  36. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +3 -1
  37. package/dist/generators/angular/templates/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +16 -7
  38. package/dist/generators/angular/templates/src/main/webapp/app/admin/tracker/tracker.component.html.ejs +3 -1
  39. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +3 -1
  40. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +11 -4
  41. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +20 -11
  42. package/dist/generators/angular/templates/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +48 -34
  43. package/dist/generators/angular/templates/src/main/webapp/app/app.component.ts.ejs +73 -0
  44. package/dist/generators/angular/templates/src/main/webapp/app/app.config.ts.ejs +67 -0
  45. package/dist/generators/angular/templates/src/main/webapp/app/app.routes.ts.ejs +85 -0
  46. package/dist/generators/angular/templates/src/main/webapp/app/core/microfrontend/index.ts.ejs +5 -4
  47. package/dist/generators/angular/templates/src/main/webapp/app/core/util/alert.service.spec.ts.ejs +1 -1
  48. package/dist/generators/angular/templates/src/main/webapp/app/core/util/data-util.service.ts.ejs +2 -2
  49. package/dist/generators/angular/templates/src/main/webapp/app/core/util/event-manager.service.spec.ts.ejs +12 -12
  50. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.model.ts.ejs +4 -4
  51. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/delete/_entityFile_-delete-dialog.component.html.ejs +3 -1
  52. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/detail/_entityFile_-detail.component.html.ejs +26 -14
  53. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.html.ejs +44 -35
  54. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/list/_entityFile_.component.ts.ejs +1 -1
  55. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/service/_entityFile_.service.ts.ejs +1 -1
  56. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.spec.ts.ejs +2 -2
  57. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-form.service.ts.ejs +5 -12
  58. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.html.ejs +55 -21
  59. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.spec.ts.ejs +2 -2
  60. package/dist/generators/angular/templates/src/main/webapp/app/entities/_entityFolder_/update/_entityFile_-update.component.ts.ejs +10 -10
  61. package/dist/generators/angular/templates/src/main/webapp/app/entities/entity.routes.ts.ejs +25 -0
  62. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.html.ejs +21 -17
  63. package/dist/generators/angular/templates/src/main/webapp/app/home/home.component.ts.ejs +1 -1
  64. package/dist/generators/angular/templates/src/main/webapp/app/layouts/error/error.component.html.ejs +3 -3
  65. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.spec.ts.ejs +5 -2
  66. package/dist/generators/angular/templates/src/main/webapp/app/layouts/main/main.component.ts.ejs +5 -1
  67. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +97 -78
  68. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.scss.ejs +1 -1
  69. package/dist/generators/angular/templates/src/main/webapp/app/layouts/navbar/navbar.component.ts.ejs +1 -1
  70. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +1 -1
  71. package/dist/generators/angular/templates/src/main/webapp/app/layouts/profiles/page-ribbon.component.ts.ejs +6 -4
  72. package/dist/generators/angular/templates/src/main/webapp/app/login/login.component.html.ejs +3 -3
  73. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert-error.component.html.ejs +6 -2
  74. package/dist/generators/angular/templates/src/main/webapp/app/shared/alert/alert.component.html.ejs +6 -2
  75. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.component.html.ejs +11 -7
  76. package/dist/generators/angular/templates/src/main/webapp/app/shared/filter/filter.model.spec.ts.ejs +1 -1
  77. package/dist/generators/angular/templates/src/main/webapp/app/shared/sort/sort-by.directive.spec.ts.ejs +3 -3
  78. package/dist/generators/angular/templates/src/main/webapp/bootstrap.ts.ejs +5 -5
  79. package/dist/generators/angular/templates/src/main/webapp/content/scss/global.scss.ejs +1 -1
  80. package/dist/generators/angular/templates/webpack/webpack.microfrontend.js.ejs +48 -126
  81. package/dist/generators/app/README.md +108 -0
  82. package/dist/generators/app/USAGE +3 -0
  83. package/dist/generators/app/command.mjs +3 -3
  84. package/dist/generators/app/generator.mjs +11 -0
  85. package/dist/generators/app/support/config.mjs +3 -3
  86. package/dist/generators/base/command.mjs +0 -11
  87. package/dist/generators/base/generator.mjs +0 -3
  88. package/dist/generators/base/support/config.mjs +6 -6
  89. package/dist/generators/base/support/jhipster7-context.mjs +3 -3
  90. package/dist/generators/base-application/generator.mjs +7 -8
  91. package/dist/generators/base-application/support/entities.mjs +2 -2
  92. package/dist/generators/base-application/support/enum.mjs +1 -1
  93. package/dist/generators/base-application/support/index.mjs +1 -0
  94. package/dist/generators/base-application/support/prepare-entity.mjs +14 -11
  95. package/dist/generators/base-application/support/prepare-field.mjs +11 -7
  96. package/dist/generators/base-application/support/prepare-relationship.mjs +16 -14
  97. package/dist/generators/base-application/support/update-application-entities-transform.mjs +52 -0
  98. package/dist/generators/base-core/generator.mjs +17 -4
  99. package/dist/generators/base-entity-changes/generator.mjs +1 -1
  100. package/dist/generators/base-workspaces/internal/docker-prompts.mjs +13 -12
  101. package/dist/generators/bootstrap/command.mjs +6 -0
  102. package/dist/generators/bootstrap/generator.mjs +84 -45
  103. package/dist/generators/bootstrap/support/auto-crlf-transform.mjs +34 -21
  104. package/dist/generators/bootstrap/support/eslint-transform.mjs +2 -5
  105. package/dist/generators/bootstrap/support/java-unused-imports-transform.mjs +2 -2
  106. package/dist/generators/bootstrap/support/multi-step-transform/index.mjs +17 -28
  107. package/dist/generators/bootstrap/support/multi-step-transform/template-file-fs.mjs +12 -6
  108. package/dist/generators/bootstrap/support/multi-step-transform/template-file.mjs +1 -0
  109. package/dist/generators/bootstrap/support/prettier-support.mjs +2 -2
  110. package/dist/generators/bootstrap-application/generator.mjs +10 -21
  111. package/dist/generators/bootstrap-application-base/command.mjs +30 -0
  112. package/dist/generators/bootstrap-application-base/generator.mjs +36 -11
  113. package/dist/generators/bootstrap-application-base/index.mjs +1 -0
  114. package/dist/generators/bootstrap-application-base/support/export-jdl-transform.mjs +61 -0
  115. package/dist/generators/bootstrap-application-base/support/import-jdl-transform.mjs +64 -0
  116. package/dist/generators/bootstrap-application-base/support/index.mjs +2 -0
  117. package/dist/generators/bootstrap-application-server/generator.mjs +2 -2
  118. package/dist/generators/client/command.mjs +2 -0
  119. package/dist/generators/client/resources/package.json +4 -4
  120. package/dist/generators/client/support/entity-definition.mjs +3 -3
  121. package/dist/generators/client/templates/README.md.jhi.client.ejs +2 -2
  122. package/dist/generators/client/templates/src/main/webapp/content/css/loading.css.ejs +1 -1
  123. package/dist/generators/client/templates/src/main/webapp/index.html.ejs +2 -2
  124. package/dist/generators/client/templates/webpack/webpack.microfrontend.js.jhi.ejs +14 -1
  125. package/dist/generators/common/command.mjs +2 -0
  126. package/dist/generators/common/files.mjs +1 -1
  127. package/dist/generators/common/generator.mjs +29 -7
  128. package/dist/generators/common/resources/package.json +4 -4
  129. package/dist/generators/common/templates/.lintstagedrc.cjs.ejs +21 -0
  130. package/dist/generators/common/templates/.prettierrc.ejs +1 -1
  131. package/dist/generators/common/templates/README.md.jhi.ejs +2 -0
  132. package/dist/generators/common/templates/sonar-project.properties.ejs +1 -1
  133. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/account/settings-page.cy.ts.ejs +3 -0
  134. package/dist/generators/cypress/templates/src/test/javascript/cypress/e2e/entity/_entity_.cy.ts.ejs +0 -1
  135. package/dist/generators/docker/generator.mjs +1 -1
  136. package/dist/generators/docker/templates/docker/cassandra.yml.ejs +2 -2
  137. package/dist/generators/docker/templates/docker/keycloak.yml.ejs +1 -1
  138. package/dist/generators/docker/templates/docker/realm-config/jhipster-realm.json.ejs +4 -1
  139. package/dist/generators/docker-compose/generator.mjs +4 -11
  140. package/dist/generators/docker-compose/templates/docker-compose.yml.ejs +1 -1
  141. package/dist/generators/docker-compose/templates/realm-config/jhipster-realm.json.ejs +4 -1
  142. package/dist/generators/entity/prompts.mjs +123 -306
  143. package/dist/generators/export-jdl/generator.mjs +1 -1
  144. package/dist/generators/feign-client/cleanup.mjs +12 -0
  145. package/dist/generators/feign-client/files.mjs +35 -0
  146. package/dist/generators/feign-client/generator.mjs +65 -0
  147. package/dist/generators/feign-client/index.mjs +19 -0
  148. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizationHeaderUtil.java.ejs +174 -0
  149. package/dist/generators/feign-client/templates/src/main/java/_package_/client/AuthorizedFeignClient.java.ejs +72 -0
  150. package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuth2InterceptedFeignConfiguration.java.ejs +35 -0
  151. package/dist/generators/feign-client/templates/src/main/java/_package_/client/OAuthIdpTokenResponseDTO.java.ejs +161 -0
  152. package/dist/generators/feign-client/templates/src/main/java/_package_/client/TokenRelayRequestInterceptor.java.ejs +42 -0
  153. package/dist/generators/feign-client/templates/src/main/java/_package_/client/UserFeignClientInterceptor_jwt.java.ejs +36 -0
  154. package/dist/generators/feign-client/templates/src/main/java/_package_/config/FeignConfiguration.java.ejs +45 -0
  155. package/dist/generators/feign-client/templates/src/test/java/_package_/client/AuthorizationHeaderUtilTest.java.ejs +263 -0
  156. package/dist/generators/generate-blueprint/command.mjs +1 -1
  157. package/dist/generators/generate-blueprint/resources/package.json +1 -1
  158. package/dist/generators/generate-blueprint/templates/vitest.config.ts.ejs +1 -1
  159. package/dist/generators/generator-constants.mjs +11 -7
  160. package/dist/generators/generator-list.mjs +1 -0
  161. package/dist/generators/git/generator.mjs +3 -5
  162. package/dist/generators/gradle/constants.mjs +1 -1
  163. package/dist/generators/heroku/generator.mjs +318 -595
  164. package/dist/generators/heroku/templates/Procfile.ejs +1 -1
  165. package/dist/generators/heroku/templates/application-heroku.yml.ejs +0 -12
  166. package/dist/generators/info/generator.mjs +6 -4
  167. package/dist/generators/init/generator.mjs +2 -2
  168. package/dist/generators/java/command.mjs +6 -0
  169. package/dist/generators/java/entity-files.mjs +5 -1
  170. package/dist/generators/java/generator.mjs +15 -15
  171. package/dist/generators/java/support/package-info-transform.mjs +20 -6
  172. package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.ejs +24 -28
  173. package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info.ejs +30 -0
  174. package/dist/generators/java/templates/src/main/java/_package_/_entityPackage_/domain/enumeration/_enumName_.java.ejs +3 -3
  175. package/dist/generators/java/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_Test.java.ejs +86 -8
  176. package/dist/generators/java/templates/src/test/java/_package_/_entityPackage_/domain/_persistClass_TestSamples.java.ejs +85 -0
  177. package/dist/generators/jdl/generator.mjs +32 -28
  178. package/dist/generators/kubernetes/templates/ingress.yml.ejs +0 -1
  179. package/dist/generators/kubernetes/templates/keycloak/keycloak-configmap.yml.ejs +4 -1
  180. package/dist/generators/kubernetes/templates/keycloak/keycloak.yml.ejs +1 -1
  181. package/dist/generators/languages/command.mjs +5 -0
  182. package/dist/generators/languages/generator.mjs +44 -28
  183. package/dist/generators/languages/prompts.mjs +3 -1
  184. package/dist/generators/languages/support/translate.mjs +1 -1
  185. package/dist/generators/languages/templates/entity/i18n/entity_pt-br.json.ejs +1 -1
  186. package/dist/generators/languages/translation-data.mjs +8 -13
  187. package/dist/generators/liquibase/README.md +19 -0
  188. package/dist/generators/liquibase/generator.mjs +7 -3
  189. package/dist/generators/project-name/generator.mjs +14 -19
  190. package/dist/generators/project-name/support/name-resolver.mjs +35 -6
  191. package/dist/generators/react/generator.mjs +18 -10
  192. package/dist/generators/react/resources/package.json +30 -29
  193. package/dist/generators/react/templates/package.json.ejs +4 -5
  194. package/dist/generators/react/templates/src/main/webapp/app/config/icon-loader.ts.ejs +35 -33
  195. package/dist/generators/react/templates/src/main/webapp/app/config/notification-middleware.spec.ts.ejs +4 -4
  196. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-detail.tsx.ejs +1 -2
  197. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.tsx.ejs +19 -15
  198. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.reducer.ts.ejs +1 -1
  199. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.tsx.ejs +3 -8
  200. package/dist/generators/react/templates/src/main/webapp/app/entities/_entityFolder_/_entityModel_.model.ts.ejs +1 -1
  201. package/dist/generators/react/templates/src/main/webapp/app/modules/home/home.tsx.ejs +1 -1
  202. package/dist/generators/react/templates/src/main/webapp/app/routes.tsx.ejs +9 -2
  203. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header-components.tsx.ejs +1 -1
  204. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/header/header.scss.ejs +6 -5
  205. package/dist/generators/react/templates/src/main/webapp/app/shared/layout/menus/entities.tsx.ejs +10 -1
  206. package/dist/generators/react/templates/src/main/webapp/app/shared/reducers/reducer.utils.ts.ejs +1 -1
  207. package/dist/generators/react/templates/src/main/webapp/app/shared/util/date-utils.ts.ejs +1 -1
  208. package/dist/generators/react/templates/tsconfig.test.json.ejs +1 -1
  209. package/dist/generators/react/templates/webpack/webpack.microfrontend.js.jhi.react.ejs +13 -58
  210. package/dist/generators/server/cleanup.mjs +5 -0
  211. package/dist/generators/server/command.mjs +13 -2
  212. package/dist/generators/server/entity-files.mjs +3 -3
  213. package/dist/generators/server/files.mjs +2 -38
  214. package/dist/generators/server/generator.mjs +48 -23
  215. package/dist/generators/server/jdl/application-definition.mjs +5 -2
  216. package/dist/generators/server/options/feign-client.mjs +24 -0
  217. package/dist/generators/server/options/index.mjs +1 -0
  218. package/dist/generators/server/resources/Dockerfile +19 -19
  219. package/dist/generators/server/resources/gradle/libs.versions.toml +4 -4
  220. package/dist/generators/server/resources/pom.xml +18 -18
  221. package/dist/generators/server/support/config.mjs +5 -4
  222. package/dist/generators/server/support/prepare-entity.mjs +9 -6
  223. package/dist/generators/server/support/prepare-field.mjs +20 -0
  224. package/dist/generators/server/support/relationship.mjs +2 -1
  225. package/dist/generators/server/support/templates/field-values.mjs +5 -2
  226. package/dist/generators/server/templates/README.md.jhi.spring-boot.ejs +0 -1
  227. package/dist/generators/server/templates/build.gradle.ejs +1 -2
  228. package/dist/generators/server/templates/gradle/profile_dev.gradle.ejs +3 -21
  229. package/dist/generators/server/templates/gradle/profile_prod.gradle.ejs +5 -15
  230. package/dist/generators/server/templates/package.json.ejs +0 -5
  231. package/dist/generators/server/templates/pom.xml.ejs +2 -12
  232. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/get_all_template.ejs +8 -8
  233. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/_partials_entity_/search_template.ejs +4 -4
  234. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/repository/_entityClass_Repository.java.ejs +1 -1
  235. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/dto/_dtoClass_.java.ejs +2 -2
  236. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/service/mapper/_entityClass_Mapper.java.ejs +2 -2
  237. package/dist/generators/server/templates/src/main/java/_package_/_entityPackage_/web/rest/_entityClass_Resource.java.ejs +14 -14
  238. package/dist/generators/server/templates/src/main/java/_package_/config/JacksonConfiguration.java.ejs +2 -1
  239. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_imperative.java.ejs +21 -3
  240. package/dist/generators/server/templates/src/main/java/_package_/config/SecurityConfiguration_reactive.java.ejs +6 -1
  241. package/dist/generators/server/templates/src/main/java/_package_/security/oauth2/CustomClaimConverter.java.ejs +1 -5
  242. package/dist/generators/server/templates/src/main/java/_package_/service/MailService.java.ejs +48 -6
  243. package/dist/generators/server/templates/src/main/java/_package_/web/rest/AccountResource.java.ejs +1 -1
  244. package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_imperative.java.ejs +4 -13
  245. package/dist/generators/server/templates/src/main/java/_package_/web/rest/LogoutResource_reactive.java.ejs +5 -11
  246. package/dist/generators/server/templates/src/main/java/_package_/web/rest/PublicUserResource.java.ejs +6 -7
  247. package/dist/generators/server/templates/src/main/java/_package_/web/rest/UserResource.java.ejs +6 -8
  248. package/dist/generators/server/templates/src/main/java/_package_/web/rest/errors/ExceptionTranslator.java.ejs +4 -7
  249. package/dist/generators/server/templates/src/main/resources/config/application.yml.ejs +8 -7
  250. package/dist/generators/server/templates/src/test/java/_package_/TechnicalStructureTest.java.ejs +1 -1
  251. package/dist/generators/server/templates/src/test/java/_package_/_entityPackage_/web/rest/_entityClass_ResourceIT.java.ejs +11 -11
  252. package/dist/generators/server/templates/src/test/java/_package_/web/rest/AccountResourceIT.java.ejs +4 -4
  253. package/dist/generators/server/templates/src/test/java/_package_/web/rest/errors/ExceptionTranslatorTestController.java.ejs +2 -2
  254. package/dist/generators/spring-cache/internal/dependencies.mjs +1 -1
  255. package/dist/generators/spring-cache/templates/gradle/cache.gradle.ejs +1 -1
  256. package/dist/generators/spring-cache/templates/src/main/java/_package_/config/CacheFactoryConfiguration.java.ejs +1 -1
  257. package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_imperative.java.ejs +1 -1
  258. package/dist/generators/spring-cloud-stream/templates/src/main/java/_package_/web/rest/KafkaResource_reactive.java.ejs +1 -1
  259. package/dist/generators/spring-cloud-stream/templates/src/test/java/_package_/web/rest/KafkaResourceIT_reactive.java.ejs +3 -0
  260. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.elastic_search.ejs +1 -1
  261. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/_entityPackage_/repository/search/_entityClass_SearchRepository.java.ejs +1 -3
  262. package/dist/generators/spring-data-elasticsearch/templates/src/main/java/_package_/repository/search/UserSearchRepository.java.ejs +4 -4
  263. package/dist/generators/spring-data-neo4j/generator.mjs +43 -1
  264. package/dist/generators/spring-data-neo4j/templates/src/main/java/_package_/_entityPackage_/domain/_persistClass_.java.jhi.spring_data_neo4j.ejs +3 -37
  265. package/dist/generators/spring-data-relational/README.md +7 -0
  266. package/dist/generators/spring-data-relational/generator.mjs +2 -1
  267. package/dist/generators/spring-data-relational/internal/dependencies.mjs +29 -8
  268. package/dist/generators/spring-data-relational/support/database-data.mjs +4 -0
  269. package/dist/generators/spring-data-relational/templates/src/main/java/_package_/repository/EntityManager_reactive.java.ejs +49 -8
  270. package/dist/generators/spring-data-relational/templates/src/test/java/_package_/config/SqlTestContainersSpringContextCustomizerFactory.java.ejs +1 -1
  271. package/dist/generators/upgrade/generator.mjs +3 -3
  272. package/dist/generators/vue/generator.mjs +25 -16
  273. package/dist/generators/vue/resources/package.json +29 -28
  274. package/dist/generators/vue/templates/package.json.ejs +4 -5
  275. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +10 -3
  276. package/dist/generators/vue/templates/src/main/webapp/app/core/jhi-navbar/jhi-navbar.vue.ejs +3 -4
  277. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-details.vue.ejs +1 -2
  278. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.spec.ts.ejs +1 -1
  279. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.component.ts.ejs +3 -3
  280. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_-update.vue.ejs +2 -15
  281. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.service.ts.ejs +1 -1
  282. package/dist/generators/vue/templates/src/main/webapp/app/entities/_entityFolder_/_entityFile_.vue.ejs +14 -7
  283. package/dist/generators/vue/templates/src/main/webapp/app/router/index.ts.ejs +8 -1
  284. package/dist/generators/vue/templates/webpack/webpack.microfrontend.js.jhi.vue.ejs +19 -34
  285. package/dist/jdl/converters/jdl-to-json/jdl-to-json-basic-entity-converter.js +1 -0
  286. package/dist/jdl/converters/jdl-to-json/jdl-to-json-option-converter.js +2 -2
  287. package/dist/jdl/converters/jdl-to-json/jdl-to-json-relationship-converter.js +1 -1
  288. package/dist/jdl/converters/jdl-to-json/jdl-without-application-to-json-converter.js +1 -1
  289. package/dist/jdl/converters/json-to-jdl-converter.js +1 -1
  290. package/dist/jdl/converters/json-to-jdl-entity-converter.js +1 -0
  291. package/dist/jdl/converters/parsed-jdl-to-jdl-object/application-converter.js +1 -17
  292. package/dist/jdl/converters/parsed-jdl-to-jdl-object/entity-converter.js +5 -0
  293. package/dist/jdl/converters/parsed-jdl-to-jdl-object/parsed-jdl-to-jdl-object-converter.js +0 -27
  294. package/dist/jdl/exporters/applications/jhipster-application-formatter.js +17 -1
  295. package/dist/jdl/exporters/config.js +11 -0
  296. package/dist/jdl/exporters/export-utils.js +2 -13
  297. package/dist/jdl/exporters/jhipster-entity-exporter.js +3 -2
  298. package/dist/jdl/index.js +1 -0
  299. package/dist/jdl/jdl-importer.js +6 -2
  300. package/dist/jdl/jhipster/default-application-options.js +1 -1
  301. package/dist/jdl/jhipster/field-types.js +1 -1
  302. package/dist/jdl/jhipster/json-entity.js +6 -0
  303. package/dist/jdl/models/jdl-application-configuration-factory.js +34 -2
  304. package/dist/jdl/models/jdl-application-configuration.js +6 -3
  305. package/dist/jdl/models/jdl-application-factory.js +2 -2
  306. package/dist/jdl/models/jdl-application.js +12 -3
  307. package/dist/jdl/models/jdl-entity.js +16 -1
  308. package/dist/jdl/models/jdl-field.js +13 -0
  309. package/dist/jdl/models/jdl-object.js +3 -3
  310. package/dist/jdl/models/jdl-relationship.js +23 -5
  311. package/dist/jdl/parsing/jdl-ast-builder-visitor.js +63 -7
  312. package/dist/jdl/parsing/jdl-parser.js +52 -6
  313. package/dist/jdl/parsing/lexer/application-tokens.js +2 -2
  314. package/dist/jdl/validators/entity-validator.js +4 -2
  315. package/dist/jdl/validators/enum-validator.js +4 -2
  316. package/dist/jdl/validators/jdl-with-application-validator.js +18 -8
  317. package/dist/jdl/validators/jdl-without-application-validator.js +30 -29
  318. package/dist/jdl/validators/validator.js +1 -1
  319. package/dist/testing/helpers.mjs +10 -3
  320. package/dist/types/cli/environment-builder.d.mts +2 -0
  321. package/dist/types/generators/angular/needle-api/needle-client-angular.d.mts +0 -1
  322. package/dist/types/generators/base/api.d.mts +12 -0
  323. package/dist/types/generators/base/support/config.d.mts +3 -3
  324. package/dist/types/generators/base/support/needles.d.mts +1 -1
  325. package/dist/types/generators/base-application/generator.d.mts +2 -2
  326. package/dist/types/generators/base-application/support/index.d.mts +1 -0
  327. package/dist/types/generators/base-application/support/prepare-entity.d.mts +6 -1
  328. package/dist/types/generators/base-application/support/update-application-entities-transform.d.mts +4 -0
  329. package/dist/types/generators/base-application/types/relationship.d.mts +4 -0
  330. package/dist/types/generators/base-core/generator.d.mts +7 -1
  331. package/dist/types/generators/bootstrap/support/auto-crlf-transform.d.mts +3 -2
  332. package/dist/types/generators/bootstrap/support/multi-step-transform/index.d.mts +3 -20
  333. package/dist/types/generators/bootstrap/support/multi-step-transform/template-file-fs.d.mts +15 -9
  334. package/dist/types/generators/bootstrap/support/multi-step-transform/template-file.d.mts +1 -0
  335. package/dist/types/generators/bootstrap-application-base/support/export-jdl-transform.d.mts +8 -0
  336. package/dist/types/generators/bootstrap-application-base/support/import-jdl-transform.d.mts +6 -0
  337. package/dist/types/generators/bootstrap-application-base/support/index.d.mts +2 -0
  338. package/dist/types/generators/client/support/entity-definition.d.mts +2 -2
  339. package/dist/types/generators/feign-client/types-export.d.ts +1 -0
  340. package/dist/types/generators/generator-constants.d.mts +52 -48
  341. package/dist/types/generators/generator-list.d.mts +1 -0
  342. package/dist/types/generators/java/support/package-info-transform.d.mts +1 -4
  343. package/dist/types/generators/project-name/support/name-resolver.d.mts +9 -1
  344. package/dist/types/generators/server/options/feign-client.d.mts +21 -0
  345. package/dist/types/generators/server/options/index.d.mts +1 -0
  346. package/dist/types/generators/server/support/templates/field-values.d.mts +1 -1
  347. package/dist/types/jdl/converters/json-to-jdl-converter.d.ts +1 -0
  348. package/dist/types/jdl/converters/parsed-jdl-to-jdl-object/option-converter.d.ts +1 -1
  349. package/dist/types/jdl/exporters/config.d.ts +1 -0
  350. package/dist/types/jdl/index.d.ts +1 -0
  351. package/dist/types/jdl/jdl-importer.d.ts +1 -0
  352. package/dist/types/jdl/jhipster/json-entity.d.ts +2 -0
  353. package/dist/types/jdl/models/jdl-application-configuration-factory.d.ts +1 -0
  354. package/dist/types/jdl/models/jdl-application-configuration-option.d.ts +2 -2
  355. package/dist/types/jdl/models/jdl-application-configuration.d.ts +8 -6
  356. package/dist/types/jdl/models/jdl-application-factory.d.ts +1 -1
  357. package/dist/types/jdl/models/jdl-application.d.ts +8 -4
  358. package/dist/types/jdl/models/jdl-entity.d.ts +1 -0
  359. package/dist/types/jdl/models/jdl-object.d.ts +1 -1
  360. package/dist/types/jdl/models/jdl-relationship.d.ts +0 -18
  361. package/dist/types/jdl/models/list-jdl-application-configuration-option.d.ts +1 -1
  362. package/dist/types/jdl/parsing/jdl-ast-builder-visitor.d.ts +10 -0
  363. package/dist/types/jdl/parsing/jdl-parser.d.ts +3 -0
  364. package/dist/types/jdl/parsing/lexer/application-tokens.d.ts +1 -0
  365. package/dist/types/jdl/types/types.d.mts +2 -2
  366. package/dist/types/jdl/validators/entity-validator.d.ts +2 -2
  367. package/dist/types/jdl/validators/enum-validator.d.ts +2 -2
  368. package/dist/types/jdl/validators/validator.d.ts +4 -1
  369. package/package.json +41 -41
@@ -1,4 +1,4 @@
1
- import { mutateApplication, normalizePathEnd, pickFields } from '../../base/support/index.mjs';
1
+ import { mutateData, normalizePathEnd, pickFields } from '../../base/support/index.mjs';
2
2
  import { databaseTypes, monitoringTypes, authenticationTypes, buildToolTypes, cacheTypes, websocketTypes, serviceDiscoveryTypes, searchEngineTypes, } from '../../../jdl/jhipster/index.mjs';
3
3
  import { prepareSqlApplicationProperties } from '../../spring-data-relational/support/index.mjs';
4
4
  import { CLIENT_DIST_DIR, CLIENT_MAIN_SRC_DIR, CLIENT_TEST_SRC_DIR, SERVER_MAIN_RES_DIR, SERVER_MAIN_SRC_DIR, SERVER_TEST_RES_DIR, SERVER_TEST_SRC_DIR, } from '../../generator-constants.mjs';
@@ -21,7 +21,7 @@ const NO_SEARCH_ENGINE = searchEngineTypes.NO;
21
21
  * all variables should be referred from config,
22
22
  */
23
23
  export const loadServerConfig = ({ config, application }) => {
24
- mutateApplication(application, {
24
+ mutateData(application, {
25
25
  srcMainJava: SERVER_MAIN_SRC_DIR,
26
26
  srcMainResources: SERVER_MAIN_RES_DIR,
27
27
  srcMainWebapp: CLIENT_MAIN_SRC_DIR,
@@ -49,6 +49,7 @@ export const loadServerConfig = ({ config, application }) => {
49
49
  'embeddableLaunchScript',
50
50
  'enableGradleEnterprise',
51
51
  'gradleEnterpriseHost',
52
+ 'feignClient',
52
53
  ]), {
53
54
  packageFolder: ({ packageFolder }) => (packageFolder ? normalizePathEnd(packageFolder) : packageFolder),
54
55
  gradleEnterpriseHost: ({ gradleEnterpriseHost }) => !gradleEnterpriseHost || gradleEnterpriseHost.startsWith('https://') ? gradleEnterpriseHost : `https://${gradleEnterpriseHost}`,
@@ -59,7 +60,7 @@ export const loadServerConfig = ({ config, application }) => {
59
60
  * @param {import('./base-application/types.js').PlatformApplication} dest - destination context to use default is context
60
61
  */
61
62
  export const loadPlatformConfig = ({ config, application }) => {
62
- mutateApplication(application, pickFields(config, ['serviceDiscoveryType', 'monitoring']));
63
+ mutateData(application, pickFields(config, ['serviceDiscoveryType', 'monitoring']));
63
64
  };
64
65
  export const loadDerivedServerAndPlatformProperties = ({ application }) => {
65
66
  if (!application.serviceDiscoveryType) {
@@ -121,7 +122,7 @@ export const loadDerivedServerConfig = ({ application }) => {
121
122
  application.databaseMigrationLiquibase = application.databaseMigration
122
123
  ? application.databaseMigration === 'liquibase'
123
124
  : application.databaseType === SQL;
124
- mutateApplication(application, {
125
+ mutateData(application, {
125
126
  packageFolder: ({ packageName }) => `${packageName.replace(/\./g, '/')}/`,
126
127
  javaPackageSrcDir: ({ srcMainJava, packageFolder }) => normalizePathEnd(`${srcMainJava}${packageFolder}`),
127
128
  javaPackageTestDir: ({ srcTestJava, packageFolder }) => normalizePathEnd(`${srcTestJava}${packageFolder}`),
@@ -19,7 +19,7 @@
19
19
  import path from 'path';
20
20
  import { databaseTypes, searchEngineTypes } from '../../../jdl/jhipster/index.mjs';
21
21
  import { isReservedTableName } from '../../../jdl/jhipster/reserved-keywords.js';
22
- import { normalizePathEnd } from '../../base/support/index.mjs';
22
+ import { mutateData, normalizePathEnd } from '../../base/support/index.mjs';
23
23
  import { hibernateSnakeCase } from './string.mjs';
24
24
  import { getDatabaseTypeData } from './database.mjs';
25
25
  import { formatDocAsApiDescription, formatDocAsJavaDoc } from './doc.mjs';
@@ -39,10 +39,10 @@ export default function prepareEntity(entity) {
39
39
  entity.entityAbsolutePackage = entityAbsolutePackage;
40
40
  entity.entityAbsoluteFolder = entityAbsoluteFolder;
41
41
  entity.entityAbsoluteClass = `${entityAbsolutePackage}.domain.${persistClass}`;
42
- if (entity.documentation) {
43
- entity.entityJavadoc = formatDocAsJavaDoc(entity.documentation);
44
- entity.entityApiDescription = formatDocAsApiDescription(entity.documentation);
45
- }
42
+ mutateData(entity, {
43
+ entityJavadoc: ({ documentation }) => (documentation ? formatDocAsJavaDoc(documentation) : documentation),
44
+ entityApiDescription: ({ documentation }) => (documentation ? formatDocAsApiDescription(documentation) : documentation),
45
+ });
46
46
  if (isReservedTableName(entity.entityInstance, entity.prodDatabaseType ?? entity.databaseType) && entity.jhiPrefix) {
47
47
  entity.entityInstanceDbSafe = `${entity.jhiPrefix}${entity.entityClass}`;
48
48
  }
@@ -81,7 +81,10 @@ export function preparePostEntityServerDerivedProperties(entity) {
81
81
  .filter(relationship => relationship.ignoreOtherSideProperty === undefined)
82
82
  .forEach(relationship => {
83
83
  relationship.ignoreOtherSideProperty =
84
- !relationship.embedded && !!relationship.otherEntity && relationship.otherEntity.relationships.length > 0;
84
+ entity.databaseType !== 'neo4j' &&
85
+ !relationship.embedded &&
86
+ !!relationship.otherEntity &&
87
+ relationship.otherEntity.relationships.length > 0;
85
88
  });
86
89
  entity.relationshipsContainOtherSideIgnore = entity.relationships.some(relationship => relationship.ignoreOtherSideProperty);
87
90
  entity.importApiModelProperty =
@@ -21,6 +21,7 @@ import * as _ from 'lodash-es';
21
21
  import { databaseTypes, entityOptions, fieldTypes, reservedKeywords } from '../../../jdl/jhipster/index.mjs';
22
22
  import { getUXConstraintName } from './database.mjs';
23
23
  import { hibernateSnakeCase } from './string.mjs';
24
+ import { getJavaValueGeneratorForType } from './templates/field-values.mjs';
24
25
  import { formatDocAsApiDescription, formatDocAsJavaDoc } from './doc.mjs';
25
26
  const TYPE_BYTES = fieldTypes.RelationalOnlyDBTypes.BYTES;
26
27
  const TYPE_BYTE_BUFFER = fieldTypes.RelationalOnlyDBTypes.BYTE_BUFFER;
@@ -139,5 +140,24 @@ export default function prepareField(entityWithConfig, field, generator) {
139
140
  else {
140
141
  field.javaFieldType = field.fieldType;
141
142
  }
143
+ if (field.fieldTypeInteger || field.fieldTypeLong || field.fieldTypeString || field.fieldTypeUUID) {
144
+ if (field.fieldTypeInteger) {
145
+ field.javaValueSample1 = '1';
146
+ field.javaValueSample2 = '2';
147
+ }
148
+ else if (field.fieldTypeLong) {
149
+ field.javaValueSample1 = '1L';
150
+ field.javaValueSample2 = '2L';
151
+ }
152
+ else if (field.fieldTypeString) {
153
+ field.javaValueSample1 = `"${field.fieldName}1"`;
154
+ field.javaValueSample2 = `"${field.fieldName}2"`;
155
+ }
156
+ else if (field.fieldTypeUUID) {
157
+ field.javaValueSample1 = 'UUID.fromString("23d8dc04-a48b-45d9-a01d-4b728f0ad4aa")';
158
+ field.javaValueSample2 = 'UUID.fromString("ad79f240-3727-46c3-b89f-2cf6ebd74367")';
159
+ }
160
+ field.javaValueGenerator = getJavaValueGeneratorForType(field.javaFieldType);
161
+ }
142
162
  field.filterableField = ![TYPE_BYTES, TYPE_BYTE_BUFFER].includes(field.fieldType);
143
163
  }
@@ -23,7 +23,8 @@ export const addEntitiesOtherRelationships = (entities) => {
23
23
  for (const entity of entities) {
24
24
  for (const relationship of entity.relationships ?? []) {
25
25
  if (!relationship.otherRelationship &&
26
- (relationship.relationshipType === 'many-to-many' ||
26
+ (relationship.otherEntityRelationshipName ||
27
+ relationship.relationshipType === 'many-to-many' ||
27
28
  // OneToOne back reference is required due to filtering
28
29
  (relationship.relationshipType === 'one-to-one' && entity.databaseType === 'sql') ||
29
30
  (relationship.relationshipType === 'one-to-many' && entity.databaseType !== 'neo4j' && entity.databaseType !== 'no'))) {
@@ -31,8 +31,11 @@ export const getJavaValueGeneratorForType = (type) => {
31
31
  if (type === UUID) {
32
32
  return 'UUID.randomUUID()';
33
33
  }
34
- if (type === LONG || type === INTEGER) {
35
- return 'count.incrementAndGet()';
34
+ if (type === INTEGER) {
35
+ return 'intCount.incrementAndGet()';
36
+ }
37
+ if (type === LONG) {
38
+ return 'longCount.incrementAndGet()';
36
39
  }
37
40
  throw new Error(`Java type ${type} does not have a random generator implemented`);
38
41
  };
@@ -21,7 +21,6 @@
21
21
  EJS fragments will process % delimiter tags in template and & delimiter tags in the merge process.
22
22
  -%>
23
23
  <&_ if (fragment.introSection) { -&>
24
- This application was generated using JHipster <%= jhipsterVersion %>, you can find documentation and help at [<%= documentationArchiveUrl %>](<%= documentationArchiveUrl %>).
25
24
  <%_ if (applicationTypeGateway || applicationTypeMicroservice) { _%>
26
25
 
27
26
  This is a "<%= applicationType %>" application intended to be part of a microservice architecture, please refer to the [Doing microservices with JHipster][] page of the documentation for more information.
@@ -266,7 +266,7 @@ dependencies {
266
266
  // to use a SNAPSHOT release instead of a stable release
267
267
  implementation "tech.jhipster:jhipster-framework"
268
268
  implementation "jakarta.annotation:jakarta.annotation-api"
269
- <%_ // This is useful for major Spring Boot migration
269
+ <%_ /* This is useful for major Spring Boot migration */
270
270
  if (addSpringMilestoneRepository) { _%>
271
271
  runtimeOnly "org.springframework.boot:spring-boot-properties-migrator"
272
272
  <%_ } _%>
@@ -421,7 +421,6 @@ if (addSpringMilestoneRepository) { _%>
421
421
  implementation "org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j"
422
422
  <%_ } _%>
423
423
  implementation "org.springframework.retry:spring-retry"
424
- implementation "org.springframework.cloud:spring-cloud-starter-openfeign"
425
424
  <%_ } _%>
426
425
  <%_ if (serviceDiscoveryAny) { _%>
427
426
  implementation "org.springframework.cloud:spring-cloud-starter-bootstrap"
@@ -49,29 +49,11 @@ dependencies {
49
49
  implementation "com.h2database:h2"
50
50
  <%_ } _%>
51
51
  <%_ } _%>
52
- <%_ if (devDatabaseTypeMysql) { _%>
52
+ <%_ if (devDatabaseTypeMariadb || devDatabaseTypeMssql || devDatabaseTypePostgres || devDatabaseTypeMysql) { _%>
53
53
  <%_ if (reactive) { _%>
54
- implementation ("io.asyncer:r2dbc-mysql")
54
+ implementation "<%- prodDatabaseDriver.r2dbc.groupId %>:<%- prodDatabaseDriver.r2dbc.artifactId %>"
55
55
  <%_ } _%>
56
- implementation "com.mysql:mysql-connector-j"
57
- <%_ } _%>
58
- <%_ if (devDatabaseTypePostgres) { _%>
59
- <%_ if (reactive) { _%>
60
- implementation "org.postgresql:r2dbc-postgresql"
61
- <%_ } _%>
62
- implementation "org.postgresql:postgresql"
63
- <%_ } _%>
64
- <%_ if (devDatabaseTypeMariadb) { _%>
65
- <%_ if (reactive) { _%>
66
- implementation "org.mariadb:r2dbc-mariadb"
67
- <%_ } _%>
68
- implementation "org.mariadb.jdbc:mariadb-java-client"
69
- <%_ } _%>
70
- <%_ if (devDatabaseTypeMssql) { _%>
71
- <%_ if (reactive) { _%>
72
- implementation "io.r2dbc:r2dbc-mssql"
73
- <%_ } _%>
74
- implementation "com.microsoft.sqlserver:mssql-jdbc"
56
+ implementation "<%- prodDatabaseDriver.jdbc.groupId %>:<%- prodDatabaseDriver.jdbc.artifactId %>"
75
57
  <%_ } _%>
76
58
  <%_ if (devDatabaseTypeOracle) { _%>
77
59
  implementation "com.oracle.database.jdbc:ojdbc8"
@@ -41,32 +41,22 @@ configurations {
41
41
  }
42
42
 
43
43
  dependencies {
44
- <%_ if (prodDatabaseTypeMysql) { _%>
44
+ <%_ if (prodDatabaseTypeMariadb || prodDatabaseTypeMssql || prodDatabaseTypeMysql || prodDatabaseTypePostgresql) { _%>
45
45
  <%_ if (reactive) { _%>
46
- implementation "io.asyncer:r2dbc-mysql"
46
+ implementation "<%- prodDatabaseDriver.r2dbc.groupId %>:<%- prodDatabaseDriver.r2dbc.artifactId %>"
47
47
  <%_ } _%>
48
- implementation "com.mysql:mysql-connector-j"
48
+ implementation "<%- prodDatabaseDriver.jdbc.groupId %>:<%- prodDatabaseDriver.jdbc.artifactId %>"
49
+ <%_ } _%>
50
+ <%_ if (prodDatabaseTypeMysql) { _%>
49
51
  testImplementation "org.testcontainers:mysql"
50
52
  <%_ } _%>
51
53
  <%_ if (prodDatabaseTypePostgresql) { _%>
52
- <%_ if (reactive) { _%>
53
- implementation "org.postgresql:r2dbc-postgresql"
54
- <%_ } _%>
55
- implementation "org.postgresql:postgresql"
56
54
  testImplementation "org.testcontainers:postgresql"
57
55
  <%_ } _%>
58
56
  <%_ if (prodDatabaseTypeMariadb) { _%>
59
- <%_ if (reactive) { _%>
60
- implementation "org.mariadb:r2dbc-mariadb"
61
- <%_ } _%>
62
- implementation "org.mariadb.jdbc:mariadb-java-client"
63
57
  testImplementation "org.testcontainers:mariadb"
64
58
  <%_ } _%>
65
59
  <%_ if (prodDatabaseTypeMssql) { _%>
66
- <%_ if (reactive) { _%>
67
- implementation "io.r2dbc:r2dbc-mssql"
68
- <%_ } _%>
69
- implementation "com.microsoft.sqlserver:mssql-jdbc"
70
60
  testImplementation "org.testcontainers:mssqlserver"
71
61
  <%_ } _%>
72
62
  <%_ if (prodDatabaseTypeOracle) { _%>
@@ -25,11 +25,6 @@
25
25
  "cacheDirectories": [
26
26
  "node_modules"
27
27
  ],
28
- "devDependencies": {
29
- "prettier": "<%= nodeDependencies.prettier %>",
30
- "prettier-plugin-java": "<%= nodeDependencies['prettier-plugin-java'] %>",
31
- "prettier-plugin-packagejson": "<%= nodeDependencies['prettier-plugin-packagejson'] %>"
32
- },
33
28
  "engines": {
34
29
  "node": ">=<%= nodeVersion %>"
35
30
  },
@@ -319,10 +319,6 @@
319
319
  <groupId>org.springframework.retry</groupId>
320
320
  <artifactId>spring-retry</artifactId>
321
321
  </dependency>
322
- <dependency>
323
- <groupId>org.springframework.cloud</groupId>
324
- <artifactId>spring-cloud-starter-openfeign</artifactId>
325
- </dependency>
326
322
  <%_ } _%>
327
323
  <%_ if (serviceDiscoveryAny) { _%>
328
324
  <dependency>
@@ -477,6 +473,7 @@
477
473
  <configuration>
478
474
  <source>${java.version}</source>
479
475
  <target>${java.version}</target>
476
+ <parameters>true</parameters>
480
477
  <annotationProcessorPaths>
481
478
  <path>
482
479
  <groupId>org.springframework.boot</groupId>
@@ -758,7 +755,7 @@
758
755
  <version>${maven-resources-plugin.version}</version>
759
756
  <executions>
760
757
  <execution>
761
- <id>default-resources</id>
758
+ <id>config-resources</id>
762
759
  <phase>validate</phase>
763
760
  <goals>
764
761
  <goal>copy-resources</goal>
@@ -777,13 +774,6 @@
777
774
  <include>config/*.yml</include>
778
775
  </includes>
779
776
  </resource>
780
- <resource>
781
- <directory><%= SERVER_MAIN_RES_DIR %></directory>
782
- <filtering>false</filtering>
783
- <excludes>
784
- <exclude>config/*.yml</exclude>
785
- </excludes>
786
- </resource>
787
777
  </resources>
788
778
  </configuration>
789
779
  </execution>
@@ -35,7 +35,7 @@ _%>
35
35
  return ResponseEntity.ok().body(entityList);
36
36
  <%_ } else { _%>
37
37
  Page<<%= instanceType %>> page = <%= entityInstance %>QueryService.findByCriteria(criteria, pageable);
38
- HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(<% if (!reactive) { %>ServletUriComponentsBuilder.fromCurrentRequest()<% } else { %>UriComponentsBuilder.fromHttpRequest(request)<% } %>, page);
38
+ HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(<% if (!reactive) { %>ServletUriComponentsBuilder.fromCurrentRequest()<% } else { %>ForwardedHeaderUtils.adaptFromForwardedHeaders(request.getURI(), request.getHeaders())<% } %>, page);
39
39
  return ResponseEntity.ok().headers(headers).body(page.getContent());
40
40
  <%_ } _%>
41
41
  <%_ } else { _%>
@@ -47,7 +47,7 @@ _%>
47
47
  ResponseEntity.ok()
48
48
  .headers(
49
49
  PaginationUtil.generatePaginationHttpHeaders(
50
- UriComponentsBuilder.fromHttpRequest(request),
50
+ ForwardedHeaderUtils.adaptFromForwardedHeaders(request.getURI(), request.getHeaders()),
51
51
  new PageImpl<>(countWithEntities.getT2(), pageable, countWithEntities.getT1())
52
52
  )
53
53
  ).body(countWithEntities.getT2())
@@ -62,7 +62,7 @@ _%>
62
62
  * @param criteria the criteria which the requested entities should match.
63
63
  * @return the {@link ResponseEntity} with status {@code 200 (OK)} and the count in body.
64
64
  */
65
- @GetMapping("/<%= entityApiUrl %>/count")
65
+ @GetMapping("/count")
66
66
  public <% if (reactive) { %>Mono<<% } %>ResponseEntity<Long><% if (reactive) { %>><% } %> count<%= entityClassPlural %>(<%= entityClass %>Criteria criteria) {
67
67
  <% if (!reactive) { %>
68
68
  log.debug("REST request to count <%= entityClassPlural %> by criteria: {}", criteria);
@@ -75,7 +75,7 @@ _%>
75
75
  }
76
76
  <%_ } else { _%>
77
77
  <%_ if (paginationNo) { _%>
78
- public <% if (reactive) { %>Mono<<% } %>List<<%= instanceType %>><% if (reactive) { %>><% } %> getAll<%= entityClassPlural %>(<% if (fieldsContainNoOwnerOneToOne) { %>@RequestParam(required = false) String filter<% } %><% if (implementsEagerLoadApis && fieldsContainNoOwnerOneToOne) { %>,<% } %><% if (implementsEagerLoadApis) { %>@RequestParam(required = false, defaultValue = "false") boolean eagerload<% } %>) {<%- include('get_all_stream_template', {viaService: viaService}); -%>
78
+ public <% if (reactive) { %>Mono<<% } %>List<<%= instanceType %>><% if (reactive) { %>><% } %> getAll<%= entityClassPlural %>(<% if (fieldsContainNoOwnerOneToOne) { %>@RequestParam(name = "filter", required = false) String filter<% } %><% if (implementsEagerLoadApis && fieldsContainNoOwnerOneToOne) { %>,<% } %><% if (implementsEagerLoadApis) { %>@RequestParam(name = "eagerload", required = false, defaultValue = "true") boolean eagerload<% } %>) {<%- include('get_all_stream_template', {viaService: viaService}); -%>
79
79
  log.debug("REST request to get all <%= entityClassPlural %>");
80
80
  <%_ if (viaService) { _%>
81
81
  return <%= entityInstance %>Service.findAll()<% if (reactive) { %>.collectList()<% } %>;
@@ -96,7 +96,7 @@ _%>
96
96
  return <%= entityInstance %>Repository.findAll()<% if (reactive) { %>.collectList()<% } %>;
97
97
  <%_ } _%>
98
98
  <%_ } else { _%>
99
- public <% if (reactive) { %>Mono<ResponseEntity<List<<%= instanceType %>>>><% } else { %>ResponseEntity<List<<%= instanceType %>>><% } %> getAll<%= entityClassPlural %>(@org.springdoc.core.annotations.ParameterObject Pageable pageable<% if (reactive) { %>, ServerHttpRequest request<% } %><% if (fieldsContainNoOwnerOneToOne) { %>, @RequestParam(required = false) String filter<% } %><% if (implementsEagerLoadApis) { %>, @RequestParam(required = false, defaultValue = "false") boolean eagerload<% } %>) {<%- include('get_all_stream_template', {viaService: viaService}); -%>
99
+ public <% if (reactive) { %>Mono<ResponseEntity<List<<%= instanceType %>>>><% } else { %>ResponseEntity<List<<%= instanceType %>>><% } %> getAll<%= entityClassPlural %>(@org.springdoc.core.annotations.ParameterObject Pageable pageable<% if (reactive) { %>, ServerHttpRequest request<% } %><% if (fieldsContainNoOwnerOneToOne) { %>, @RequestParam(name = "filter", required = false) String filter<% } %><% if (implementsEagerLoadApis) { %>, @RequestParam(name = "eagerload", required = false, defaultValue = "true") boolean eagerload<% } %>) {<%- include('get_all_stream_template', {viaService: viaService}); -%>
100
100
  log.debug("REST request to get a page of <%= entityClassPlural %>");
101
101
  <%_ if (reactive) { _%>
102
102
  return <%= entityInstance %><%= viaService ? 'Service.countAll' : 'Repository.count' %>().zipWith(<%= entityInstance %><%= viaService ? 'Service.findAll' : 'Repository.findAllBy' %>(pageable)<%= reactiveEntityToDto %>.collectList())
@@ -104,7 +104,7 @@ _%>
104
104
  ResponseEntity.ok()
105
105
  .headers(
106
106
  PaginationUtil.generatePaginationHttpHeaders(
107
- UriComponentsBuilder.fromHttpRequest(request),
107
+ ForwardedHeaderUtils.adaptFromForwardedHeaders(request.getURI(), request.getHeaders()),
108
108
  new PageImpl<>(countWithEntities.getT2(), pageable, countWithEntities.getT1())
109
109
  )
110
110
  ).body(countWithEntities.getT2())
@@ -117,10 +117,10 @@ _%>
117
117
  } else {
118
118
  page = <%= entityInstance %><%= viaService ? 'Service' : 'Repository' %>.findAll(pageable)<%= reactiveEntityToDto %>;
119
119
  }
120
- HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(<% if (reactive) { %>UriComponentsBuilder.fromHttpRequest(request)<% } else { %>ServletUriComponentsBuilder.fromCurrentRequest()<% } %>, page);
120
+ HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(<% if (reactive) { %>ForwardedHeaderUtils.adaptFromForwardedHeaders(request.getURI(), request.getHeaders())<% } else { %>ServletUriComponentsBuilder.fromCurrentRequest()<% } %>, page);
121
121
  <%_ } else { _%>
122
122
  Page<<%= instanceType %>> page = <%= entityInstance %><%= viaService ? 'Service' : 'Repository' %>.findAll(pageable)<%= reactiveEntityToDto %>;
123
- HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(<% if (reactive) { %>UriComponentsBuilder.fromHttpRequest(request)<% } else { %>ServletUriComponentsBuilder.fromCurrentRequest()<% } %>, page);
123
+ HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(<% if (reactive) { %>ForwardedHeaderUtils.adaptFromForwardedHeaders(request.getURI(), request.getHeaders())<% } else { %>ServletUriComponentsBuilder.fromCurrentRequest()<% } %>, page);
124
124
  <%_ } _%>
125
125
  return ResponseEntity.ok().headers(headers).body(page.getContent());
126
126
  <%_ } _%>
@@ -24,17 +24,17 @@
24
24
  const entityToDtoReference = mapper + '::' + 'toDto';
25
25
  const entityListToDtoListReference = mapper + '.' + 'toDto';
26
26
  if (paginationNo) { %>
27
- public <% if (reactive) { %>Mono<<% } %>List<<%= instanceType %>><% if (reactive) { %>><% } %> search<%= entityClassPlural %>(@RequestParam String query) {
27
+ public <% if (reactive) { %>Mono<<% } %>List<<%= instanceType %>><% if (reactive) { %>><% } %> search<%= entityClassPlural %>(@RequestParam("query") String query) {
28
28
  log.debug("REST request to search <%= entityClassPlural %> for query {}", query);<%- include('search_stream_template', {viaService: viaService, fromResource: true}); -%>
29
29
  <% } else { %>
30
- public <% if (reactive) { %>Mono<<% } %>ResponseEntity<<%= listOrFlux %><<%= instanceType %>>><% if (reactive) { %>><% } %> search<%= entityClassPlural %>(@RequestParam String query, @org.springdoc.core.annotations.ParameterObject Pageable pageable<% if (reactive) { %>, ServerHttpRequest request<% } %>) {
30
+ public <% if (reactive) { %>Mono<<% } %>ResponseEntity<<%= listOrFlux %><<%= instanceType %>>><% if (reactive) { %>><% } %> search<%= entityClassPlural %>(@RequestParam("query") String query, @org.springdoc.core.annotations.ParameterObject Pageable pageable<% if (reactive) { %>, ServerHttpRequest request<% } %>) {
31
31
  log.debug("REST request to search for a page of <%= entityClassPlural %> for query {}", query);
32
32
  <%_ if (reactive) { _%>
33
33
  return <%= entityInstance %><%= viaService ?
34
34
  'Service.' + (searchEngineElasticsearch ? 'searchCount' : 'countAll') :
35
35
  (searchEngineElasticsearch ? 'Search' : '') + 'Repository.count' %>()
36
36
  .map(total -> new PageImpl<>(new ArrayList<>(), pageable, total))
37
- .map(page -> PaginationUtil.generatePaginationHttpHeaders(UriComponentsBuilder.fromHttpRequest(request), page))
37
+ .map(page -> PaginationUtil.generatePaginationHttpHeaders(ForwardedHeaderUtils.adaptFromForwardedHeaders(request.getURI(), request.getHeaders()), page))
38
38
  .map(headers -> ResponseEntity.ok().headers(headers).body(<%= entityInstance %><%= viaService ? 'Service' : (searchEngineElasticsearch ? 'Search' : '') + 'Repository' %>.search(query, pageable)<% if (!viaService && dtoMapstruct) { %>.map(<%= entityToDtoReference %>)<% } %>));
39
39
  <%_ } else { _%>
40
40
  try {
@@ -43,7 +43,7 @@ if (paginationNo) { %>
43
43
  <%_ } else { _%>
44
44
  Page<<%= persistClass %>> page = <%= entityInstance %><% if (searchEngineElasticsearch) { %>Search<% } %>Repository.search(query, pageable);
45
45
  <%_ } _%>
46
- HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(<% if (reactive) { %>UriComponentsBuilder.fromHttpRequest(request)<% } else { %>ServletUriComponentsBuilder.fromCurrentRequest()<% } %>, page);
46
+ HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(<% if (reactive) { %>ForwardedHeaderUtils.adaptFromForwardedHeaders(request.getURI(), request.getHeaders())<% } else { %>ServletUriComponentsBuilder.fromCurrentRequest()<% } %>, page);
47
47
  return ResponseEntity.ok().headers(headers).body(<% if (!viaService && dtoMapstruct) { %><%= entityListToDtoListReference %>(<% } %>page.getContent()<% if (!viaService && dtoMapstruct) { %>)<% } %>);
48
48
  } catch (RuntimeException e) {
49
49
  <% if (searchEngineElasticsearch) { %>
@@ -70,7 +70,7 @@ public interface <%= entityClass %>Repository extends <% if (containsBagRelation
70
70
  <%_ for (const relationship of relationships) { _%>
71
71
  <%_ if (relationship.relationshipManyToOne && relationship.otherEntityUser && databaseTypeSql) { _%>
72
72
 
73
- @Query("select <%= entityInstanceDbSafe %> from <%= persistClass %> <%= entityInstanceDbSafe %> where <%= entityInstanceDbSafe %>.<%= relationship.relationshipFieldName %>.login = ?#{principal.<% if (authenticationTypeOauth2) { %>preferredUsername<% } else { %>username<% } %>}")
73
+ @Query("select <%= entityInstanceDbSafe %> from <%= persistClass %> <%= entityInstanceDbSafe %> where <%= entityInstanceDbSafe %>.<%= relationship.relationshipFieldName %>.login = ?#{authentication.name}")
74
74
  List<<%= persistClass %>> findBy<%= relationship.relationshipNameCapitalized %>IsCurrentUser();
75
75
  <%_ } _%>
76
76
  <%_ } _%>
@@ -19,7 +19,7 @@
19
19
  package <%= entityAbsolutePackage %>.service.dto;
20
20
 
21
21
  import java.util.Objects;
22
- <%_ if (typeof javadoc !== 'undefined' || importApiModelProperty) { _%>
22
+ <%_ if (entityApiDescription || importApiModelProperty) { _%>
23
23
  import io.swagger.v3.oas.annotations.media.Schema;
24
24
  <%_ } _%>
25
25
  <%_ if (anyFieldIsInstant) { _%>
@@ -65,7 +65,7 @@ import <%= `${otherEntity.entityAbsolutePackage}.service.dto.${otherEntity.dtoCl
65
65
  /**
66
66
  * A DTO for the {@link <%= entityAbsolutePackage %>.domain.<%= persistClass %>} entity.
67
67
  */
68
- <%_ if (typeof javadoc !== 'undefined') { _%>
68
+ <%_ if (entityApiDescription) { _%>
69
69
  @Schema(description = "<%- entityApiDescription %>")
70
70
  <%_ } _%>
71
71
  @SuppressWarnings("common-java:DuplicatedBlocks")
@@ -63,7 +63,7 @@ import java.util.UUID;
63
63
  @Mapper(componentModel = "spring")
64
64
  public interface <%= entityClass %>Mapper extends EntityMapper<<%= dtoClass %>, <%= persistClass %>> {
65
65
  <%_ if (!embedded) { _%>
66
- <%_ var renMapAnotEnt = false; //Render Mapping Annotation during Entity to DTO conversion? _%>
66
+ <%_ var renMapAnotEnt = false; /*Render Mapping Annotation during Entity to DTO conversion?*/ _%>
67
67
  <%_ for (relationship of dtoRelationships) { _%>
68
68
  <%_
69
69
  renMapAnotEnt = true;
@@ -80,7 +80,7 @@ public interface <%= entityClass %>Mapper extends EntityMapper<<%= dtoClass %>,
80
80
  <%= dtoClass %> toDto(<%= persistClass %> s);
81
81
  <%_ } _%>
82
82
 
83
- <%_ var renMapAnotDto = false; //Render Mapping Annotation during DTO to Entity conversion? _%>
83
+ <%_ var renMapAnotDto = false; /*Render Mapping Annotation during DTO to Entity conversion?*/ _%>
84
84
  <%_ if(primaryKey.ids.length > 1) { _%>
85
85
  <%_ renMapAnotDto = true; _%>
86
86
  <%_ for (const id of primaryKey.ids) { _%>
@@ -74,7 +74,7 @@ import org.springframework.http.HttpHeaders;
74
74
  import org.springframework.http.server.reactive.ServerHttpRequest;
75
75
  <%_ } _%>
76
76
  <%_ if (reactive) { _%>
77
- import org.springframework.web.util.UriComponentsBuilder;
77
+ import org.springframework.web.util.ForwardedHeaderUtils;
78
78
  <%_ } else { _%>
79
79
  import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
80
80
  <%_ } _%>
@@ -130,7 +130,7 @@ import java.util.stream.StreamSupport;
130
130
  * REST controller for managing {@link <%= entityAbsoluteClass %>}.
131
131
  */
132
132
  @RestController
133
- @RequestMapping("/api")
133
+ @RequestMapping("/api/<%= entityApiUrl %>")
134
134
  <%_ if (databaseTypeSql && !viaService && !saveUserSnapshot) { _%>
135
135
  @Transactional
136
136
  <%_ } _%>
@@ -163,7 +163,7 @@ public class <%= entityClass %>Resource {
163
163
  * @return the {@link ResponseEntity} with status {@code 201 (Created)} and with body the new <%= instanceName %>, or with status {@code 400 (Bad Request)} if the <%= entityInstance %> has already an ID.
164
164
  * @throws URISyntaxException if the Location URI syntax is incorrect.
165
165
  */
166
- @PostMapping("/<%= entityApiUrl %>")
166
+ @PostMapping("")
167
167
  public <% if (reactive) { %>Mono<<% } %>ResponseEntity<<%= instanceType %>><% if (reactive) { %>><% } %> create<%= entityClass %>(<% if (anyPropertyHasValidation) { %>@Valid <% } %>@RequestBody <%= instanceType %> <%= instanceName %>) throws URISyntaxException {
168
168
  log.debug("REST request to save <%= entityClass %> : {}", <%= instanceName %>);
169
169
  if (<%= instanceName %>.get<%= primaryKey.nameCapitalized %>() != null) {
@@ -217,7 +217,7 @@ public class <%= entityClass %>Resource {
217
217
  * or with status {@code 500 (Internal Server Error)} if the <%= instanceName %> couldn't be updated.
218
218
  * @throws URISyntaxException if the Location URI syntax is incorrect.
219
219
  */
220
- @PutMapping("/<%= entityApiUrl %>/{<%= primaryKey.name %>}")
220
+ @PutMapping("/{<%= primaryKey.name %>}")
221
221
  public <% if (reactive) { %>Mono<<% } %>ResponseEntity<<%= instanceType %>><% if (reactive) { %>><% } %> update<%= entityClass %>(
222
222
  @PathVariable(value = "<%= primaryKey.name %>", required = false) final <%= primaryKey.type %> <%= primaryKey.name %>,
223
223
  <% if (anyPropertyHasValidation) { %>@Valid <% } %>@RequestBody <%= instanceType %> <%= instanceName %>
@@ -283,7 +283,7 @@ public class <%= entityClass %>Resource {
283
283
  * or with status {@code 500 (Internal Server Error)} if the <%= instanceName %> couldn't be updated.
284
284
  * @throws URISyntaxException if the Location URI syntax is incorrect.
285
285
  */
286
- @PatchMapping(value = "/<%= entityApiUrl %>/{<%= primaryKey.name %>}", consumes = {"application/json", "application/merge-patch+json"})
286
+ @PatchMapping(value = "/{<%= primaryKey.name %>}", consumes = {"application/json", "application/merge-patch+json"})
287
287
  public <% if (reactive) { %>Mono<<% } %>ResponseEntity<<%= instanceType %>><% if (reactive) { %>><% } %> partialUpdate<%= entityClass %>(
288
288
  @PathVariable(value = "<%= primaryKey.name %>", required = false) final <%= primaryKey.type %> <%= primaryKey.name %>,
289
289
  <% if (anyPropertyHasValidation) { %>@NotNull <% } %>@RequestBody <%= instanceType %> <%= instanceName %>) throws URISyntaxException {
@@ -360,9 +360,9 @@ public class <%= entityClass %>Resource {
360
360
  * @return the {@link ResponseEntity} with status {@code 200 (OK)} and the list of <%= entityInstancePlural %> in body.
361
361
  */
362
362
  <%_ if (reactive) { _%>
363
- @GetMapping(value = "/<%= entityApiUrl %>", produces = MediaType.APPLICATION_JSON_VALUE)
363
+ @GetMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE)
364
364
  <%_ } else { _%>
365
- @GetMapping("/<%= entityApiUrl %>")
365
+ @GetMapping("")
366
366
  <%_ } _%>
367
367
  <%_ if (databaseTypeSql && isUsingMapsId && !viaService) { _%>
368
368
  @Transactional(readOnly = true)
@@ -374,7 +374,7 @@ public class <%= entityClass %>Resource {
374
374
  * {@code GET /<%= entityApiUrl %>} : get all the <%= entityInstancePlural %> as a stream.
375
375
  * @return the {@link Flux} of <%= entityInstancePlural %>.
376
376
  */
377
- @GetMapping(value = "/<%= entityApiUrl %>", produces = MediaType.APPLICATION_NDJSON_VALUE)
377
+ @GetMapping(value = "", produces = MediaType.APPLICATION_NDJSON_VALUE)
378
378
  <%_ if (databaseTypeSql && isUsingMapsId && !viaService) { _%>
379
379
  @Transactional(readOnly = true)
380
380
  <%_ } _%>
@@ -394,11 +394,11 @@ public class <%= entityClass %>Resource {
394
394
  * @param id the id of the <%= instanceName %> to retrieve.
395
395
  * @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body the <%= instanceName %>, or with status {@code 404 (Not Found)}.
396
396
  */
397
- @GetMapping("/<%= entityApiUrl %>/{id}")
397
+ @GetMapping("/{id}")
398
398
  <%_ if (databaseTypeSql && isUsingMapsId && !viaService) { _%>
399
399
  @Transactional(readOnly = true)
400
400
  <%_ } _%>
401
- public <% if (reactive) { %>Mono<<% } %>ResponseEntity<<%= instanceType %>><% if (reactive) { %>><% } %> get<%= entityClass %>(@PathVariable <%= primaryKey.type %> id) {
401
+ public <% if (reactive) { %>Mono<<% } %>ResponseEntity<<%= instanceType %>><% if (reactive) { %>><% } %> get<%= entityClass %>(@PathVariable("id") <%= primaryKey.type %> id) {
402
402
  log.debug("REST request to get <%= entityClass %> : {}", id);<%- include('../../_partials_entity_/get_template', {viaService, returnDirectly:false, implementsEagerLoadApis}); -%>
403
403
  return ResponseUtil.wrapOrNotFound(<%= instanceName %>);
404
404
  }
@@ -410,8 +410,8 @@ public class <%= entityClass %>Resource {
410
410
  * @param id the id of the <%= instanceName %> to delete.
411
411
  * @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}.
412
412
  */
413
- @DeleteMapping("/<%= entityApiUrl %>/{id}")
414
- public <% if (reactive) { %>Mono<<% } %>ResponseEntity<Void><% if (reactive) { %>><% } %> delete<%= entityClass %>(@PathVariable <%= primaryKey.type %> id) {
413
+ @DeleteMapping("/{id}")
414
+ public <% if (reactive) { %>Mono<<% } %>ResponseEntity<Void><% if (reactive) { %>><% } %> delete<%= entityClass %>(@PathVariable("id") <%= primaryKey.type %> id) {
415
415
  log.debug("REST request to delete <%= entityClass %> : {}", id);
416
416
  <%- include('../../_partials_entity_/delete_template', {viaService: viaService, fromResource: true}); -%>
417
417
  <%_ if (reactive) { _%>
@@ -432,7 +432,7 @@ public class <%= entityClass %>Resource {
432
432
  <%_ if (searchEngineAny) { _%>
433
433
 
434
434
  /**
435
- * {@code SEARCH /_search/<%= entityApiUrl %>?query=:query} : search for the <%= entityInstance %> corresponding
435
+ * {@code SEARCH /<%= entityApiUrl %>/_search?query=:query} : search for the <%= entityInstance %> corresponding
436
436
  * to the query.
437
437
  *
438
438
  * @param query the query of the <%= entityInstance %> search.
@@ -444,6 +444,6 @@ public class <%= entityClass %>Resource {
444
444
  <%_ } _%>
445
445
  * @return the result of the search.
446
446
  */
447
- @GetMapping("/_search/<%= entityApiUrl %>")<%- include('../../_partials_entity_/search_template', {viaService}); -%>
447
+ @GetMapping("/_search")<%- include('../../_partials_entity_/search_template', {viaService}); -%>
448
448
  <%_ } _%>
449
449
  }
@@ -20,6 +20,7 @@ package <%= packageName %>.config;
20
20
 
21
21
  <%_ if (databaseTypeSql && !reactive) { _%>
22
22
  import com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module;
23
+ import com.fasterxml.jackson.datatype.hibernate6.Hibernate6Module.Feature;
23
24
  <%_ } _%>
24
25
  import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
25
26
  import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
@@ -50,7 +51,7 @@ public class JacksonConfiguration {
50
51
  */
51
52
  @Bean
52
53
  public Hibernate6Module hibernate6Module() {
53
- return new Hibernate6Module();
54
+ return new Hibernate6Module().configure(Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS, true);
54
55
  }
55
56
  <%_ } _%>
56
57
  }