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
@@ -16,4 +16,4 @@
16
16
  See the License for the specific language governing permissions and
17
17
  limitations under the License.
18
18
  -%>
19
- web: java $JAVA_OPTS <% if (applicationTypeGateway || dynoSize === 'Free') { %>-Xmx256m<% } %> -jar <% if (buildToolMaven) { %>target<% } %><% if (buildToolGradle) { %>build/libs<% } %>/*.jar --spring.profiles.active=prod,heroku<% if (databaseTypeMongodb) { %> --spring.data.mongodb.database=$(echo "$MONGODB_URI" | sed "s/^.*:[0-9]*\///g")<% } %>
19
+ web: java $JAVA_OPTS <% if (applicationTypeGateway || dynoSize === 'Basic') { %>-Xmx256m<% } %> -jar <% if (buildToolMaven) { %>target<% } %><% if (buildToolGradle) { %>build/libs<% } %>/*.jar --spring.profiles.active=prod,heroku<% if (databaseTypeMongodb) { %> --spring.data.mongodb.database=$(echo "$MONGODB_URI" | sed "s/^.*:[0-9]*\///g")<% } %>
@@ -78,17 +78,5 @@ spring:
78
78
  elasticsearch:
79
79
  uris: ${BONSAI_URL}
80
80
  <%_ } _%>
81
- <%_ if (useOkta) { _%>
82
- security:
83
- oauth2:
84
- client:
85
- provider:
86
- oidc:
87
- issuer-uri: ${OKTA_OAUTH2_ISSUER}
88
- registration:
89
- oidc:
90
- client-id: ${OKTA_OAUTH2_CLIENT_ID_WEB}
91
- client-secret: ${OKTA_OAUTH2_CLIENT_SECRET_WEB}
92
- <%_ } _%>
93
81
  server:
94
82
  port: ${PORT:8080}
@@ -25,13 +25,14 @@ import JSONToJDLEntityConverter from '../../jdl/converters/json-to-jdl-entity-co
25
25
  import JSONToJDLOptionConverter from '../../jdl/converters/json-to-jdl-option-converter.js';
26
26
  import { YO_RC_FILE } from '../generator-constants.mjs';
27
27
  import { replaceSensitiveConfig } from './support/utils.mjs';
28
+ const isInfoCommand = commandName => commandName === 'info' || undefined;
28
29
  export default class InfoGenerator extends BaseApplicationGenerator {
29
30
  constructor(args, options, features) {
30
31
  super(args, options, {
31
32
  jhipsterBootstrap: false,
32
33
  storeJHipsterVersion: false,
33
- customInstallTask: options.commandName === 'info' ? true : undefined,
34
- customCommitTask: true,
34
+ customInstallTask: isInfoCommand(options.commandName),
35
+ customCommitTask: isInfoCommand(options.commandName),
35
36
  ...features,
36
37
  });
37
38
  }
@@ -55,8 +56,9 @@ export default class InfoGenerator extends BaseApplicationGenerator {
55
56
  else {
56
57
  console.log('\n##### **JHipster configuration not found**\n');
57
58
  }
58
- if (this.jhipsterConfig.packages && this.jhipsterConfig.packages.length > 0) {
59
- for (const pkg of this.jhipsterConfig.packages) {
59
+ const packages = this.jhipsterConfig.appsFolders ?? this.jhipsterConfig.packages ?? [];
60
+ if (packages.length > 0) {
61
+ for (const pkg of packages) {
60
62
  const yoRc = this.readDestinationJSON(this.destinationPath(pkg, YO_RC_FILE));
61
63
  if (yoRc) {
62
64
  const result = JSON.stringify(replaceSensitiveConfig(yoRc), null, 2);
@@ -96,8 +96,8 @@ export default class InitGenerator extends BaseApplicationGenerator {
96
96
  addPrettierDependencies({ application }) {
97
97
  this.packageJson.merge({
98
98
  scripts: {
99
- 'prettier-check': 'prettier --check "{,src/**/}*.{md,json,yml,html,js,ts,tsx,css,scss,vue,java}"',
100
- 'prettier-format': 'prettier --write "{,src/**/}*.{md,json,yml,html,js,ts,tsx,css,scss,vue,java}"',
99
+ 'prettier-check': 'prettier --check "{,**/}*.{md,json,yml,html,js,ts,tsx,css,scss,vue,java}"',
100
+ 'prettier-format': 'prettier --write "{,**/}*.{md,json,yml,html,js,ts,tsx,css,scss,vue,java}"',
101
101
  },
102
102
  devDependencies: {
103
103
  prettier: application.nodeDependencies.prettier,
@@ -24,6 +24,12 @@ const command = {
24
24
  scope: 'generator',
25
25
  hide: true,
26
26
  },
27
+ useJacksonIdentityInfo: {
28
+ type: Boolean,
29
+ default: false,
30
+ scope: 'generator',
31
+ hide: true,
32
+ },
27
33
  generateEnums: {
28
34
  type: Boolean,
29
35
  default: true,
@@ -7,7 +7,7 @@ export const entityServerFiles = {
7
7
  ],
8
8
  modelTestFiles: [
9
9
  javaTestPackageTemplatesBlock({
10
- templates: ['_entityPackage_/domain/_persistClass_Test.java'],
10
+ templates: ['_entityPackage_/domain/_persistClass_Test.java', '_entityPackage_/domain/_persistClass_TestSamples.java'],
11
11
  }),
12
12
  ],
13
13
  server: [
@@ -15,6 +15,10 @@ export const entityServerFiles = {
15
15
  condition: ctx => ctx.useJakartaValidation,
16
16
  templates: ['_entityPackage_/domain/_persistClass_.java.jhi.jakarta_validation'],
17
17
  }),
18
+ javaMainPackageTemplatesBlock({
19
+ condition: ctx => ctx.useJacksonIdentityInfo,
20
+ templates: ['_entityPackage_/domain/_persistClass_.java.jhi.jackson_identity_info'],
21
+ }),
18
22
  ],
19
23
  };
20
24
  export const enumFiles = {
@@ -16,7 +16,7 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { isFilePending } from 'mem-fs-editor/state';
19
+ import { isFileStateModified } from 'mem-fs-editor/state';
20
20
  import BaseApplicationGenerator from '../base-application/index.mjs';
21
21
  import { GENERATOR_JAVA, GENERATOR_BOOTSTRAP_APPLICATION } from '../generator-list.mjs';
22
22
  import writeTask from './files.mjs';
@@ -31,6 +31,7 @@ export default class JavaGenerator extends BaseApplicationGenerator {
31
31
  packageInfoFile;
32
32
  generateEntities;
33
33
  useJakartaValidation;
34
+ useJacksonIdentityInfo;
34
35
  generateEnums;
35
36
  async beforeQueue() {
36
37
  if (!this.fromBlueprint) {
@@ -59,18 +60,22 @@ export default class JavaGenerator extends BaseApplicationGenerator {
59
60
  return this.asDefaultTaskGroup({
60
61
  generatedAnnotation({ application }) {
61
62
  if (this.jhipsterConfig.withGeneratedFlag) {
62
- this.queueTransformStream(generatedAnnotationTransform(application.packageName), {
63
+ this.queueTransformStream({
63
64
  name: 'adding @GeneratedByJHipster annotations',
64
- streamOptions: { filter: file => isFilePending(file) && file.path.endsWith('.java') },
65
- });
65
+ filter: file => isFileStateModified(file) && file.path.startsWith(this.destinationPath()) && file.path.endsWith('.java'),
66
+ refresh: false,
67
+ }, generatedAnnotationTransform(application.packageName));
66
68
  }
67
69
  },
68
70
  generatedPackageInfo({ application }) {
69
71
  const mainPackageMatch = matchMainJavaFiles(application.srcMainJava);
70
72
  if (this.packageInfoFile) {
71
- this.queueTransformStream(packageInfoTransform({
73
+ this.queueTransformStream({
74
+ name: 'adding package-info.java files',
75
+ filter: file => isFileStateModified(file) && file.path.startsWith(this.destinationPath()) && mainPackageMatch.match(file.path),
76
+ refresh: true,
77
+ }, packageInfoTransform({
72
78
  javaRoots: [this.destinationPath(application.srcMainJava)],
73
- editor: this.fs,
74
79
  javadocs: {
75
80
  ...Object.fromEntries(application.packageInfoJavadocs.map(doc => [doc.packageName, doc.documentation])),
76
81
  [`${application.packageName}`]: 'Application root.',
@@ -80,12 +85,7 @@ export default class JavaGenerator extends BaseApplicationGenerator {
80
85
  [`${application.packageName}.service`]: 'Service layer.',
81
86
  [`${application.packageName}.web.rest`]: 'Rest layer.',
82
87
  },
83
- }), {
84
- name: 'adding package-info.java files',
85
- streamOptions: {
86
- filter: file => isFilePending(file) && !file.path.endsWith('package-info.java') && mainPackageMatch.match(file.path),
87
- },
88
- });
88
+ }));
89
89
  }
90
90
  },
91
91
  });
@@ -107,16 +107,16 @@ export default class JavaGenerator extends BaseApplicationGenerator {
107
107
  async writeServerFiles({ application, entities }) {
108
108
  if (!this.generateEntities)
109
109
  return;
110
- const { useJakartaValidation } = this;
110
+ const { useJakartaValidation, useJacksonIdentityInfo } = this;
111
111
  for (const entity of entities.filter(entity => !entity.skipServer && !entity.builtIn)) {
112
112
  await this.writeFiles({
113
113
  sections: entityServerFiles,
114
- context: { ...application, ...entity, useJakartaValidation },
114
+ context: { ...application, ...entity, useJakartaValidation, useJacksonIdentityInfo },
115
115
  });
116
116
  }
117
117
  },
118
118
  async writeEnumFiles({ application, entities }) {
119
- if (!this.generateEnums || !this.generateEntities)
119
+ if (!this.generateEnums)
120
120
  return;
121
121
  for (const entity of entities.filter(entity => !entity.skipServer)) {
122
122
  for (const field of entity.fields.filter(field => field.fieldIsEnum)) {
@@ -17,24 +17,38 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import { dirname, join, relative } from 'path';
20
- import { passthrough } from '@yeoman/transform';
20
+ import { passthrough } from 'p-transform';
21
+ import { loadFile } from 'mem-fs';
21
22
  import { Minimatch } from 'minimatch';
23
+ import { setModifiedFileState } from 'mem-fs-editor/state';
22
24
  const DEFAULT_DOC = 'This package file was generated by JHipster';
23
- const packageInfoTransform = ({ javaRoots, editor, javadocs }) => {
25
+ const packageInfoTransform = ({ javaRoots, javadocs }) => {
26
+ const existingPackageInfoFiles = [];
24
27
  return passthrough(function (file) {
28
+ if (file.path.endsWith('package-info.java')) {
29
+ existingPackageInfoFiles.push(file.path);
30
+ return;
31
+ }
25
32
  for (const root of javaRoots) {
26
33
  if (file.path.startsWith(root)) {
27
34
  const directory = dirname(file.path);
28
35
  const packageName = relative(root, directory).replaceAll(/[/\\]/g, '.');
29
- const packageInfoFile = join(directory, 'package-info.java');
30
- const packageJavadoc = javadocs?.[packageName] ?? DEFAULT_DOC;
31
- if (!editor.exists(packageInfoFile)) {
32
- editor.write(packageInfoFile, `/**
36
+ const packageInfoFilePath = join(directory, 'package-info.java');
37
+ if (existingPackageInfoFiles.includes(packageInfoFilePath)) {
38
+ return;
39
+ }
40
+ const packageInfoFile = loadFile(packageInfoFilePath);
41
+ if (!packageInfoFile.contents) {
42
+ const packageJavadoc = javadocs?.[packageName] ?? DEFAULT_DOC;
43
+ packageInfoFile.contents = Buffer.from(`/**
33
44
  * ${packageJavadoc}
34
45
  */
35
46
  package ${packageName};
36
47
  `);
48
+ setModifiedFileState(packageInfoFile);
49
+ this.push(packageInfoFile);
37
50
  }
51
+ existingPackageInfoFiles.push(packageInfoFilePath);
38
52
  }
39
53
  }
40
54
  });
@@ -54,7 +54,7 @@ package <%= entityAbsolutePackage %>.domain;
54
54
  <%_ if (relationshipsContainOtherSideIgnore) { _%>
55
55
  import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
56
56
  <%_ } _%>
57
- <%_ if (!dtoMapstruct && (typeof javadoc !== 'undefined' || importApiModelProperty)) { _%>
57
+ <%_ if (!dtoMapstruct && (entityApiDescription || importApiModelProperty)) { _%>
58
58
  import io.swagger.v3.oas.annotations.media.Schema;
59
59
  <%_ } _%>
60
60
 
@@ -85,15 +85,15 @@ import <%= entityAbsolutePackage %>.domain.enumeration.<%= element %>;
85
85
  import <%= otherEntity.entityAbsoluteClass %>;
86
86
  <%_ } _%>
87
87
 
88
- <%_ if (typeof javadoc === 'undefined') { _%>
88
+ <%_ if (entityJavadoc) { _%>
89
+ <%- entityJavadoc %>
90
+ <%_ } else { _%>
89
91
  /**
90
92
  * A <%= persistClass %>.
91
93
  */
92
- <%_ } else { _%>
93
- <%- entityJavadoc %>
94
- <%_ if (!dtoMapstruct) { _%>
94
+ <%_ } _%>
95
+ <%_ if (!dtoMapstruct && entityApiDescription) { _%>
95
96
  @Schema(description = "<%- entityApiDescription %>")
96
- <%_ } _%>
97
97
  <%_ } _%>
98
98
  <&- fragments.annotationSection() -&>
99
99
  @SuppressWarnings("common-java:DuplicatedBlocks")
@@ -111,10 +111,10 @@ public class <%= persistClass %> <&- fragments.extendsSection() -&>implements Se
111
111
  <%_ for (const field of fields.filter(field => !field.javaInherited && !field.transient && (embedded || !field.id || !primaryKey.composite))) { _%>
112
112
  <&- fragments.field<%- field.fieldNameCapitalized %>CustomDeclarationSection() -&>
113
113
  <&_ if (!fragments.field<%- field.fieldNameCapitalized %>CustomDeclarationSection()) { -&>
114
- <%_ if (typeof field.javadoc !== 'undefined') { _%>
114
+ <%_ if (field.fieldJavadoc) { _%>
115
115
  <%- field.fieldJavadoc %>
116
116
  <%_ } _%>
117
- <%_ if (!dtoMapstruct && typeof field.javadoc !== 'undefined') { _%>
117
+ <%_ if (!dtoMapstruct && field.fieldApiDescription) { _%>
118
118
  @Schema(description = "<%- field.fieldApiDescription %>"<% if (field.fieldValidationRequired) { %>, required = true<% } %>)
119
119
  <%_ } _%>
120
120
  <&- fragments.field<%- field.fieldNameCapitalized %>AnnotationSection() -&>
@@ -132,9 +132,9 @@ public class <%= persistClass %> <&- fragments.extendsSection() -&>implements Se
132
132
  <%_
133
133
  // An embedded entity should not reference entities that embed it, unless the other entities are also embedded
134
134
  for (relationship of relationships.filter(relationship => !relationship.embedded || relationship.otherEntity.embedded || relationship.ownerSide)) {
135
- if (typeof relationship.javadoc !== 'undefined') { _%>
135
+ if (typeof relationship.fieldApiDescription) { _%>
136
136
  <%- relationship.relationshipJavadoc %>
137
- <%_ if (!dtoMapstruct) { _%>
137
+ <%_ if (!dtoMapstruct && relationship.relationshipyApiDescription) { _%>
138
138
  @Schema(description = "<%- relationship.relationshipyApiDescription %>")
139
139
  <%_ } _%>
140
140
  <%_ } _%>
@@ -240,16 +240,16 @@ _%>
240
240
  <&_ if (!fragments.relationship<%- relationship.relationshipNameCapitalized %>CustomSetSection()) { -&>
241
241
  <%_ if (relationship.collection) { _%>
242
242
  public void set<%= relationship.relationshipNameCapitalizedPlural %>(Set<<%= relationship.otherEntity.persistClass %>> <%= relationship.otherEntityNamePlural %>) {
243
- <%_ if (relationship.otherRelationship && !relationship.reference.owned) { _%>
243
+ <%_ if (relationship.otherRelationship && relationship.relationshipUpdateBackReference) { _%>
244
244
  if (this.<%= relationship.relationshipFieldNamePlural %> != null) {
245
- <%_ if (relationship.otherRelationship.reference.collection) { _%>
245
+ <%_ if (relationship.otherRelationship.collection) { _%>
246
246
  this.<%= relationship.relationshipFieldNamePlural %>.forEach(i -> i.remove<%= relationship.otherRelationship.relationshipNameCapitalized %>(this));
247
247
  <%_ } else { _%>
248
248
  this.<%= relationship.relationshipFieldNamePlural %>.forEach(i -> i.set<%= relationship.otherRelationship.relationshipNameCapitalized %>(null));
249
249
  <%_ } _%>
250
250
  }
251
251
  if (<%= relationship.otherEntityNamePlural %> != null) {
252
- <%_ if (relationship.otherRelationship.reference.collection) { _%>
252
+ <%_ if (relationship.otherRelationship.collection) { _%>
253
253
  <%= relationship.otherEntityNamePlural %>.forEach(i -> i.add<%= relationship.otherRelationship.relationshipNameCapitalized %>(this));
254
254
  <%_ } else { _%>
255
255
  <%= relationship.otherEntityNamePlural %>.forEach(i -> i.set<%= relationship.otherRelationship.relationshipNameCapitalized %>(this));
@@ -260,16 +260,16 @@ _%>
260
260
  }
261
261
  <%_ } else { _%>
262
262
  public void set<%= relationship.relationshipNameCapitalized %>(<%= relationship.otherEntity.persistClass %> <%= relationship.otherEntityName %>) {
263
- <%_ if (relationship.otherRelationship && !relationship.reference.owned) { _%>
263
+ <%_ if (relationship.otherRelationship && relationship.relationshipUpdateBackReference) { _%>
264
264
  if (this.<%= relationship.relationshipFieldName %> != null) {
265
- <%_ if (relationship.otherRelationship.reference.collection) { _%>
265
+ <%_ if (relationship.otherRelationship.collection) { _%>
266
266
  this.<%= relationship.relationshipFieldName %>.remove<%= relationship.otherRelationship.relationshipNameCapitalized %>(this);
267
267
  <%_ } else { _%>
268
268
  this.<%= relationship.relationshipFieldName %>.set<%= relationship.otherRelationship.relationshipNameCapitalized %>(null);
269
269
  <%_ } _%>
270
270
  }
271
271
  if (<%= relationship.otherEntityName %> != null) {
272
- <%_ if (relationship.otherRelationship.reference.collection) { _%>
272
+ <%_ if (relationship.otherRelationship.collection) { _%>
273
273
  <%= relationship.otherEntityName %>.add<%= relationship.otherRelationship.relationshipNameCapitalized %>(this);
274
274
  <%_ } else { _%>
275
275
  <%= relationship.otherEntityName %>.set<%= relationship.otherRelationship.relationshipNameCapitalized %>(this);
@@ -292,13 +292,11 @@ _%>
292
292
  <&_ if (!fragments.relationship<%- relationship.relationshipNameCapitalized %>CustomAddSection()) { -&>
293
293
  public <%= persistClass %> add<%= relationship.relationshipNameCapitalized %>(<%= relationship.otherEntity.persistClass %> <%= relationship.otherEntityName %>) {
294
294
  this.<%= relationship.relationshipFieldNamePlural %>.add(<%= relationship.otherEntityName %>);
295
- <%_ if (!relationship.otherEntity.embedded || embedded && relationship.ownerSide) { _%>
296
- <%_ if (relationship.otherRelationship) { _%>
297
- <%_ if (!relationship.otherRelationship.collection) { _%>
298
- <%= relationship.otherEntityName %>.set<%= relationship.otherRelationship.relationshipNameCapitalized %>(this);
299
- <%_ } else if (relationship.otherRelationship.relationshipNamePlural && !relationship.otherEntityUser && relationship.otherRelationship.collection) { _%>
295
+ <%_ if (relationship.otherRelationship && relationship.relationshipUpdateBackReference) { _%>
296
+ <%_ if (relationship.otherRelationship.collection) { _%>
300
297
  <%= relationship.otherEntityName %>.get<%= relationship.otherRelationship.relationshipNameCapitalizedPlural %>().add(this);
301
- <%_ } _%>
298
+ <%_ } else { _%>
299
+ <%= relationship.otherEntityName %>.set<%= relationship.otherRelationship.relationshipNameCapitalized %>(this);
302
300
  <%_ } _%>
303
301
  <%_ } _%>
304
302
  return this;
@@ -309,13 +307,11 @@ _%>
309
307
  <&_ if (!fragments.relationship<%- relationship.relationshipNameCapitalized %>CustomRemoveSection()) { -&>
310
308
  public <%= persistClass %> remove<%= relationship.relationshipNameCapitalized %>(<%= relationship.otherEntity.persistClass %> <%= relationship.otherEntityName %>) {
311
309
  this.<%= relationship.relationshipFieldNamePlural %>.remove(<%= relationship.otherEntityName %>);
312
- <%_ if (!relationship.otherEntity.embedded || (embedded && relationship.ownerSide)) { _%>
313
- <%_ if (relationship.otherRelationship) { _%>
314
- <%_ if (!relationship.otherRelationship.collection) { _%>
315
- <%= relationship.otherEntityName %>.set<%= relationship.otherRelationship.relationshipNameCapitalized %>(null);
316
- <%_ } else if (!relationship.otherEntityUser && relationship.otherRelationship.collection) { _%>
310
+ <%_ if (relationship.otherRelationship && relationship.relationshipUpdateBackReference) { _%>
311
+ <%_ if (relationship.otherRelationship.collection) { _%>
317
312
  <%= relationship.otherEntityName %>.get<%= relationship.otherRelationship.relationshipNameCapitalizedPlural %>().remove(this);
318
- <%_ } _%>
313
+ <%_ } else { _%>
314
+ <%= relationship.otherEntityName %>.set<%= relationship.otherRelationship.relationshipNameCapitalized %>(null);
319
315
  <%_ } _%>
320
316
  <%_ } _%>
321
317
  return this;
@@ -0,0 +1,30 @@
1
+ <%#
2
+ Copyright 2013-2023 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
+ <%#
20
+ This is a fragment file, it will be merged into to root template if available.
21
+ EJS fragments will process % delimiter tags in template and & delimiter tags in the merge process.
22
+ -%>
23
+ <&_ if (fragment.importSection) { -&>
24
+ import com.fasterxml.jackson.annotation.JsonIdentityInfo;
25
+ import com.fasterxml.jackson.annotation.ObjectIdGenerators;
26
+ <&_ } -&>
27
+
28
+ <&_ if (fragment.annotationSection) { -&>
29
+ @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "<%- primaryKey.name %>", scope = <%- persistClass %>.class)
30
+ <&_ } -&>
@@ -18,12 +18,12 @@
18
18
  -%>
19
19
  package <%= entityAbsolutePackage %>.domain.enumeration;
20
20
 
21
- <%_ if (typeof javadoc === 'undefined') { _%>
21
+ <%_ if (enumJavadoc) { _%>
22
+ <%- enumJavadoc %>
23
+ <%_ } else { _%>
22
24
  /**
23
25
  * The <%= enumName %> enumeration.
24
26
  */
25
- <%_ } else { _%>
26
- <%= javadoc %>
27
27
  <%_ } _%>
28
28
  public enum <%= enumName %> {
29
29
  <%_ if (withoutCustomValues) { _%>
@@ -18,12 +18,20 @@
18
18
  -%>
19
19
  package <%= entityAbsolutePackage %>.domain;
20
20
 
21
+ import static <%= entityAbsolutePackage %>.domain.<%= persistClass %>TestSamples.*;
22
+ <%_ for (const otherEntity of otherEntities.filter(otherEntity => !otherEntity.builtIn)) { _%>
23
+ import static <%= otherEntity.entityAbsolutePackage %>.domain.<%= otherEntity.persistClass %>TestSamples.*;
24
+ <%_ } _%>
25
+ <%_ for (const otherEntity of otherEntities.filter(otherEntity => entityPackage !== otherEntity.entityPackage)) { _%>
26
+ import <%= otherEntity.entityAbsolutePackage %>.domain.<%= otherEntity.persistClass %>;
27
+ <%_ } _%>
28
+ <%_ if (relationships.some(relationship => relationship.collection)) { _%>
29
+ import java.util.HashSet;
30
+ import java.util.Set;
31
+ <%_ } _%>
21
32
  import org.junit.jupiter.api.Test;
22
33
  import static org.assertj.core.api.Assertions.assertThat;
23
34
  import <%= packageName %>.web.rest.TestUtil;
24
- <%_ if (primaryKey && primaryKey.hasUUID) { _%>
25
- import java.util.UUID;
26
- <%_ } _%>
27
35
 
28
36
  class <%= persistClass %>Test {
29
37
 
@@ -31,15 +39,85 @@ class <%= persistClass %>Test {
31
39
  void equalsVerifier() throws Exception {
32
40
  TestUtil.equalsVerifier(<%= persistClass %>.class);
33
41
  <%_if (!embedded) { _%>
34
- <%= persistClass %> <%= persistInstance %>1 = new <%= persistClass %>();
35
- <%= persistInstance %>1.set<%= primaryKey.nameCapitalized %>(<% if (primaryKey.typeInteger) { %>1<% } else if (primaryKey.typeLong) { %>1L<% } else if (primaryKey.typeString) { %>"id1"<% } else if (primaryKey.typeUUID) { %>UUID.randomUUID()<% } %>);
42
+ <%= persistClass %> <%= persistInstance %>1 = get<%= persistClass %>Sample1();
36
43
  <%= persistClass %> <%= persistInstance %>2 = new <%= persistClass %>();
44
+ assertThat(<%= persistInstance %>1).isNotEqualTo(<%= persistInstance %>2);
45
+
37
46
  <%= persistInstance %>2.set<%= primaryKey.nameCapitalized %>(<%= persistInstance %>1.get<%= primaryKey.nameCapitalized %>());
38
47
  assertThat(<%= persistInstance %>1).isEqualTo(<%= persistInstance %>2);
39
- <%= persistInstance %>2.set<%= primaryKey.nameCapitalized %>(<% if (primaryKey.typeInteger) { %>2<% } else if (primaryKey.typeLong) { %>2L<% } else if (primaryKey.typeString) { %>"id2"<% } else if (primaryKey.typeUUID) { %>UUID.randomUUID()<% } %>);
40
- assertThat(<%= persistInstance %>1).isNotEqualTo(<%= persistInstance %>2);
41
- <%= persistInstance %>1.set<%= primaryKey.nameCapitalized %>(null);
48
+
49
+ <%= persistInstance %>2 = get<%= persistClass %>Sample2();
42
50
  assertThat(<%= persistInstance %>1).isNotEqualTo(<%= persistInstance %>2);
43
51
  <%_} _%>
44
52
  }
53
+ <%_ for (const relationship of relationships.filter(relationship => !relationship.otherEntity.builtIn)) { _%>
54
+
55
+ @Test
56
+ void <%- relationship.relationshipName %>Test() throws Exception {
57
+ <%= persistClass %> <%= persistInstance %> = get<%= persistClass %>RandomSampleGenerator();
58
+ <%= relationship.otherEntity.persistClass %> <%= relationship.otherEntity.persistInstance %>Back = get<%= relationship.otherEntity.persistClass %>RandomSampleGenerator();
59
+ <%_ if (relationship.collection) { _%>
60
+
61
+ <%= persistInstance %>.add<%- relationship.relationshipNameCapitalized %>(<%= relationship.otherEntity.persistInstance %>Back);
62
+ assertThat(<%= persistInstance %>.get<%- relationship.propertyNameCapitalized %>()).containsOnly(<%= relationship.otherEntity.persistInstance %>Back);
63
+ <%_ } else { _%>
64
+
65
+ <%= persistInstance %>.set<%- relationship.propertyNameCapitalized %>(<%= relationship.otherEntity.persistInstance %>Back);
66
+ assertThat(<%= persistInstance %>.get<%- relationship.propertyNameCapitalized %>()).isEqualTo(<%= relationship.otherEntity.persistInstance %>Back);
67
+ <%_ } _%>
68
+ <%_ if (relationship.otherRelationship && relationship.relationshipUpdateBackReference && !relationship.otherEntity.embedded) { _%>
69
+ <%_ if (relationship.otherRelationship.collection) { _%>
70
+ assertThat(<%= relationship.otherEntity.persistInstance %>Back.get<%- relationship.otherRelationship.propertyNameCapitalized %>()).containsOnly(<%= persistInstance %>);
71
+ <%_ } else { _%>
72
+ assertThat(<%= relationship.otherEntity.persistInstance %>Back.get<%- relationship.otherRelationship.propertyNameCapitalized %>()).isEqualTo(<%= persistInstance %>);
73
+ <%_ } _%>
74
+ <%_ } _%>
75
+ <%_ if (relationship.collection) { _%>
76
+
77
+ <%= persistInstance %>.remove<%- relationship.relationshipNameCapitalized %>(<%= relationship.otherEntity.persistInstance %>Back);
78
+ assertThat(<%= persistInstance %>.get<%- relationship.propertyNameCapitalized %>()).doesNotContain(<%= relationship.otherEntity.persistInstance %>Back);
79
+ <%_ } else { _%>
80
+
81
+ <%_ if (fluentMethods) { _%>
82
+ <%= persistInstance %>.<%- relationship.propertyName %>(null);
83
+ <%_ } else { _%>
84
+ <%= persistInstance %>.set<%- relationship.propertyNameCapitalized %>(null);
85
+ <%_ } _%>
86
+ assertThat(<%= persistInstance %>.get<%- relationship.propertyNameCapitalized %>()).isNull();
87
+ <%_ } _%>
88
+ <%_ if (relationship.otherRelationship && relationship.relationshipUpdateBackReference && !relationship.otherEntity.embedded) { _%>
89
+ <%_ if (relationship.otherRelationship.collection) { _%>
90
+ assertThat(<%= relationship.otherEntity.persistInstance %>Back.get<%- relationship.otherRelationship.propertyNameCapitalized %>()).doesNotContain(<%= persistInstance %>);
91
+ <%_ } else { _%>
92
+ assertThat(<%= relationship.otherEntity.persistInstance %>Back.get<%- relationship.otherRelationship.propertyNameCapitalized %>()).isNull();
93
+ <%_ } _%>
94
+ <%_ } _%>
95
+ <%_ if (relationship.collection) { _%>
96
+
97
+ <%_ if (fluentMethods) { _%>
98
+ <%= persistInstance %>.<%- relationship.propertyName %>(new HashSet<>(Set.of(<%= relationship.otherEntity.persistInstance %>Back)));
99
+ <%_ } else { _%>
100
+ <%= persistInstance %>.set<%- relationship.propertyNameCapitalized %>(new HashSet<>(Set.of(<%= relationship.otherEntity.persistInstance %>Back)));
101
+ <%_ } _%>
102
+ assertThat(<%= persistInstance %>.get<%- relationship.propertyNameCapitalized %>()).containsOnly(<%= relationship.otherEntity.persistInstance %>Back);
103
+ <%_ if (relationship.otherRelationship && relationship.relationshipUpdateBackReference && !relationship.otherEntity.embedded) { _%>
104
+ <%_ if (relationship.otherRelationship.collection) { _%>
105
+ assertThat(<%= relationship.otherEntity.persistInstance %>Back.get<%- relationship.otherRelationship.propertyNameCapitalized %>()).containsOnly(<%= persistInstance %>);
106
+ <%_ } else { _%>
107
+ assertThat(<%= relationship.otherEntity.persistInstance %>Back.get<%- relationship.otherRelationship.propertyNameCapitalized %>()).isEqualTo(<%= persistInstance %>);
108
+ <%_ } _%>
109
+ <%_ } _%>
110
+
111
+ <%= persistInstance %>.set<%- relationship.propertyNameCapitalized %>(new HashSet<>());
112
+ assertThat(<%= persistInstance %>.get<%- relationship.propertyNameCapitalized %>()).doesNotContain(<%= relationship.otherEntity.persistInstance %>Back);
113
+ <%_ if (relationship.otherRelationship && relationship.relationshipUpdateBackReference && !relationship.otherEntity.embedded) { _%>
114
+ <%_ if (relationship.otherRelationship.collection) { _%>
115
+ assertThat(<%= relationship.otherEntity.persistInstance %>Back.get<%- relationship.otherRelationship.propertyNameCapitalized %>()).doesNotContain(<%= persistInstance %>);
116
+ <%_ } else { _%>
117
+ assertThat(<%= relationship.otherEntity.persistInstance %>Back.get<%- relationship.otherRelationship.propertyNameCapitalized %>()).isNull();
118
+ <%_ } _%>
119
+ <%_ } _%>
120
+ <%_ } _%>
121
+ }
122
+ <%_ } _%>
45
123
  }
@@ -0,0 +1,85 @@
1
+ <%#
2
+ Copyright 2013-2023 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 <%= entityAbsolutePackage %>.domain;
20
+
21
+ import org.junit.jupiter.api.Test;
22
+ import static org.assertj.core.api.Assertions.assertThat;
23
+ import <%= packageName %>.web.rest.TestUtil;
24
+ <%_ if (fields.some(field => field.fieldTypeString) || fields.some(field => field.fieldTypeUUID)) { _%>
25
+ import java.util.UUID;
26
+ <%_ } _%>
27
+ <%_ if (fields.some(field => field.fieldTypeLong || field.fieldTypeInteger)) { _%>
28
+ import java.util.Random;
29
+ <%_ } _%>
30
+ <%_ if (fields.some(field => field.fieldTypeLong)) { _%>
31
+ import java.util.concurrent.atomic.AtomicLong;
32
+ <%_ } _%>
33
+ <%_ if (fields.some(field => field.fieldTypeInteger)) { _%>
34
+ import java.util.concurrent.atomic.AtomicInteger;
35
+ <%_ } _%>
36
+
37
+ <%_ const sampleFields = fields.filter(field => !field.mapstructExpression && (field.fieldTypeInteger || field.fieldTypeLong || field.fieldTypeString || field.fieldTypeUUID)); _%>
38
+ public class <%= persistClass %>TestSamples {
39
+
40
+ <%_ if (fields.some(field => field.fieldTypeLong || field.fieldTypeInteger)) { _%>
41
+ private static final Random random = new Random();
42
+ <%_ } _%>
43
+ <%_ if (fields.some(field => field.fieldTypeLong)) { _%>
44
+ private static final AtomicLong longCount = new AtomicLong(random.nextInt() + ( 2 * Integer.MAX_VALUE ));
45
+ <%_ } _%>
46
+ <%_ if (fields.some(field => field.fieldTypeInteger)) { _%>
47
+ private static final AtomicInteger intCount = new AtomicInteger(random.nextInt() + ( 2 * Short.MAX_VALUE ));
48
+ <%_ } _%>
49
+
50
+ public static <%= persistClass %> get<%= persistClass %>Sample1() {
51
+ <%_ if (fluentMethods) { _%>
52
+ return new <%= persistClass %>()<% sampleFields.forEach(field => { %>.<%- field.fieldName %>(<%- field.javaValueSample1 %>)<% }) %>;
53
+ <%_ } else { _%>
54
+ <%= persistClass %> <%= persistInstance %> = new <%= persistClass %>();
55
+ <%_ for (const field of sampleFields) { _%>
56
+ <%= persistInstance %>.set<%= field.fieldNameCapitalized %>(<%- field.javaValueSample1 %>);
57
+ <%_ } _%>
58
+ return <%= persistInstance %>;
59
+ <%_ } _%>
60
+ }
61
+
62
+ public static <%= persistClass %> get<%= persistClass %>Sample2() {
63
+ <%_ if (fluentMethods) { _%>
64
+ return new <%= persistClass %>()<% sampleFields.forEach(field => { %>.<%- field.fieldName %>(<%- field.javaValueSample2 %>)<% }) %>;
65
+ <%_ } else { _%>
66
+ <%= persistClass %> <%= persistInstance %> = new <%= persistClass %>();
67
+ <%_ for (const field of sampleFields) { _%>
68
+ <%= persistInstance %>.set<%= field.fieldNameCapitalized %>(<%- field.javaValueSample2 %>);
69
+ <%_ } _%>
70
+ return <%= persistInstance %>;
71
+ <%_ } _%>
72
+ }
73
+
74
+ public static <%= persistClass %> get<%= persistClass %>RandomSampleGenerator() {
75
+ <%_ if (fluentMethods) { _%>
76
+ return new <%= persistClass %>()<% sampleFields.forEach(field => { %>.<%- field.fieldName %>(<%- field.javaValueGenerator %>)<% }) %>;
77
+ <%_ } else { _%>
78
+ <%= persistClass %> <%= persistInstance %> = new <%= persistClass %>();
79
+ <%_ for (const field of sampleFields) { _%>
80
+ <%= persistInstance %>.set<%= field.fieldNameCapitalized %>(<%- field.javaValueGenerator %>);
81
+ <%_ } _%>
82
+ return <%= persistInstance %>;
83
+ <%_ } _%>
84
+ }
85
+ }