generator-jhipster 7.6.0 → 7.7.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 (310) hide show
  1. package/README.md +1 -3
  2. package/cli/commands.js +3 -0
  3. package/cli/environment-builder.js +53 -18
  4. package/cli/import-jdl.js +3 -0
  5. package/cli/index.mjs +20 -0
  6. package/cli/jhipster.js +19 -11
  7. package/cli/program.js +94 -38
  8. package/generators/app/esm.mjs +1 -3
  9. package/generators/app/index.js +1 -16
  10. package/generators/aws/esm.mjs +1 -3
  11. package/generators/azure-app-service/esm.mjs +1 -3
  12. package/generators/azure-spring-cloud/esm.mjs +1 -3
  13. package/generators/base/esm.mjs +1 -3
  14. package/generators/bootstrap/esm.mjs +1 -3
  15. package/generators/bootstrap/index.js +36 -86
  16. package/generators/bootstrap-application/esm.mjs +19 -0
  17. package/generators/bootstrap-application/generator.mjs +353 -0
  18. package/generators/bootstrap-application/index.mjs +19 -0
  19. package/generators/ci-cd/esm.mjs +1 -3
  20. package/generators/ci-cd/prompts.js +1 -1
  21. package/generators/ci-cd/templates/github-actions.yml.ejs +2 -2
  22. package/generators/client/esm.mjs +5 -3
  23. package/generators/client/files-angular.js +9 -0
  24. package/generators/client/files-common.js +8 -7
  25. package/generators/client/files-vue.js +7 -6
  26. package/generators/client/index.js +2 -1
  27. package/generators/client/templates/angular/angular.json.ejs +1 -1
  28. package/generators/client/templates/angular/package.json +25 -22
  29. package/generators/client/templates/angular/package.json.ejs +5 -1
  30. package/generators/client/templates/angular/src/main/webapp/app/account/activate/activate.component.html.ejs +1 -1
  31. package/generators/client/templates/angular/src/main/webapp/app/account/password/password.component.html.ejs +7 -7
  32. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/finish/password-reset-finish.component.html.ejs +5 -5
  33. package/generators/client/templates/angular/src/main/webapp/app/account/password-reset/init/password-reset-init.component.html.ejs +3 -3
  34. package/generators/client/templates/angular/src/main/webapp/app/account/register/register.component.html.ejs +10 -10
  35. package/generators/client/templates/angular/src/main/webapp/app/account/settings/settings.component.html.ejs +8 -8
  36. package/generators/client/templates/angular/src/main/webapp/app/admin/configuration/configuration.component.html.ejs +2 -2
  37. package/generators/client/templates/angular/src/main/webapp/app/admin/gateway/gateway.component.html.ejs +5 -5
  38. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.html.ejs +1 -1
  39. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.spec.ts.ejs +2 -2
  40. package/generators/client/templates/angular/src/main/webapp/app/admin/health/health.component.ts.ejs +2 -2
  41. package/generators/client/templates/angular/src/main/webapp/app/admin/health/modal/health-modal.component.html.ejs +6 -6
  42. package/generators/client/templates/angular/src/main/webapp/app/admin/logs/logs.component.html.ejs +51 -49
  43. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-cache/metrics-cache.component.html.ejs +16 -16
  44. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-datasource/metrics-datasource.component.html.ejs +32 -32
  45. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-endpoints-requests/metrics-endpoints-requests.component.html.ejs +4 -4
  46. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-garbagecollector/metrics-garbagecollector.component.html.ejs +18 -18
  47. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.html.ejs +12 -12
  48. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-modal-threads/metrics-modal-threads.component.ts.ejs +4 -4
  49. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-request/metrics-request.component.html.ejs +4 -4
  50. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/blocks/metrics-system/metrics-system.component.html.ejs +8 -8
  51. package/generators/client/templates/angular/src/main/webapp/app/admin/metrics/metrics.component.html.ejs +1 -1
  52. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/delete/user-management-delete-dialog.component.html.ejs +1 -1
  53. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/detail/user-management-detail.component.html.ejs +4 -4
  54. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/list/user-management.component.html.ejs +5 -5
  55. package/generators/client/templates/angular/src/main/webapp/app/admin/user-management/update/user-management-update.component.html.ejs +11 -11
  56. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.html.ejs +4 -2
  57. package/generators/client/templates/angular/src/main/webapp/app/layouts/navbar/navbar.component.scss.ejs +0 -6
  58. package/generators/client/templates/angular/src/main/webapp/app/layouts/profiles/page-ribbon.component.scss.ejs +0 -6
  59. package/generators/client/templates/angular/src/main/webapp/app/login/login.component.html.ejs +3 -3
  60. package/generators/client/templates/angular/src/main/webapp/content/scss/_bootstrap-variables.scss.ejs +5 -5
  61. package/generators/client/templates/angular/src/main/webapp/content/scss/global.scss.ejs +29 -0
  62. package/generators/client/templates/angular/src/main/webapp/content/scss/vendor.scss.ejs +0 -4
  63. package/generators/client/templates/angular/webpack/webpack.custom.js.ejs +19 -0
  64. package/generators/client/templates/common/package.json +2 -2
  65. package/generators/client/templates/common/src/main/webapp/swagger-ui/index.html.ejs +1 -7
  66. package/generators/client/templates/react/package.json +33 -33
  67. package/generators/client/templates/vue/package.json +23 -23
  68. package/generators/client/templates/vue/src/main/webapp/app/core/jhi-navbar/jhi-navbar.component.ts.ejs +3 -3
  69. package/generators/client/templates/vue/src/main/webapp/app/entities/user/user.service.ts.ejs +0 -0
  70. package/generators/client/templates/vue/src/main/webapp/app/main.ts.ejs +29 -1
  71. package/generators/client/templates/vue/src/main/webapp/app/shared/config/axios-interceptor.ts.ejs +2 -2
  72. package/generators/client/templates/vue/src/main/webapp/app/shared/config/config.ts.ejs +0 -4
  73. package/generators/cloudfoundry/esm.mjs +1 -3
  74. package/generators/common/esm.mjs +2 -3
  75. package/generators/common/files.js +1 -2
  76. package/generators/common/index.js +6 -0
  77. package/generators/common/templates/.husky/{pre-commit → pre-commit.ejs} +4 -0
  78. package/generators/common/templates/README.md.jhi.ejs +3 -1
  79. package/generators/common/templates/package.json +3 -3
  80. package/generators/common/templates/sonar-project.properties.ejs +1 -1
  81. package/generators/cypress/esm.mjs +2 -3
  82. package/generators/cypress/files.js +2 -1
  83. package/generators/cypress/templates/src/test/javascript/cypress/integration/account/settings-page.spec.ts.ejs +18 -14
  84. package/generators/database-changelog/esm.mjs +1 -3
  85. package/generators/database-changelog/index.js +1 -1
  86. package/generators/database-changelog-liquibase/esm.mjs +2 -3
  87. package/generators/docker-compose/esm.mjs +1 -3
  88. package/generators/entities/esm.mjs +1 -3
  89. package/generators/entities/index.js +2 -2
  90. package/generators/entities-client/esm.mjs +1 -3
  91. package/generators/entity/esm.mjs +1 -3
  92. package/generators/entity/index.js +11 -15
  93. package/generators/entity/prompts.js +4 -1
  94. package/generators/entity-client/esm.mjs +2 -3
  95. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/delete/entity-management-delete-dialog.component.html.ejs +1 -1
  96. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/detail/entity-management-detail.component.html.ejs +2 -2
  97. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/list/entity-management.component.html.ejs +20 -21
  98. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.html.ejs +14 -16
  99. package/generators/entity-client/templates/angular/src/main/webapp/app/entities/update/entity-management-update.component.ts.ejs +2 -2
  100. package/generators/entity-client/templates/common/src/test/javascript/cypress/integration/entity/entity.spec.ts.ejs +1 -1
  101. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-reducer.spec.ts.ejs +1 -1
  102. package/generators/entity-client/templates/react/src/main/webapp/app/entities/entity-update.tsx.ejs +1 -1
  103. package/generators/entity-client/templates/react/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
  104. package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity-update-page-object.ts.ejs +1 -1
  105. package/generators/entity-client/templates/vue/src/test/javascript/e2e/entities/entity.spec.ts.ejs +1 -1
  106. package/generators/entity-i18n/esm.mjs +2 -3
  107. package/generators/entity-server/esm.mjs +2 -3
  108. package/generators/entity-server/files-couchbase.js +23 -2
  109. package/generators/entity-server/files.js +16 -2
  110. package/generators/entity-server/index.js +8 -1
  111. package/generators/entity-server/templates/couchbase/src/main/java/package/domain/Entity.java.jhi.spring_data_couchbase.ejs +11 -13
  112. package/generators/entity-server/templates/couchbase/src/main/java/package/repository/EntityRepository.java.ejs +23 -59
  113. package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.fts.ejs +5 -6
  114. package/generators/entity-server/templates/couchbase/src/main/resources/config/couchmove/changelog/entity.n1ql.ejs +5 -0
  115. package/generators/entity-server/templates/partials/it_patch_update.partial.java.ejs +2 -2
  116. package/generators/entity-server/templates/partials/save_template.ejs +1 -1
  117. package/generators/entity-server/templates/src/main/java/package/common/get_all_template.ejs +1 -1
  118. package/generators/entity-server/templates/src/main/java/package/common/inject_template.ejs +4 -4
  119. package/generators/entity-server/templates/src/main/java/package/common/patch_template.ejs +3 -3
  120. package/generators/entity-server/templates/src/main/java/package/common/search_stream_template.ejs +1 -1
  121. package/generators/entity-server/templates/src/main/java/package/common/search_template.ejs +1 -1
  122. package/generators/entity-server/templates/src/main/java/package/domain/Entity.java.jhi.ejs +2 -2
  123. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository.java.ejs +31 -18
  124. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryInternalImpl_reactive.java.ejs +3 -3
  125. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationships.java.ejs +37 -0
  126. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepositoryWithBagRelationshipsImpl.java.ejs +90 -0
  127. package/generators/entity-server/templates/src/main/java/package/repository/EntityRepository_reactive.java.ejs +2 -2
  128. package/generators/entity-server/templates/src/main/java/package/repository/rowmapper/EntityRowMapper.java.ejs +1 -1
  129. package/generators/entity-server/templates/src/main/java/package/repository/search/EntitySearchRepository.java.ejs +3 -5
  130. package/generators/entity-server/templates/src/main/java/package/repository/search/{SortToFieldSortBuilderConverter.java.ejs → SortToSortBuilderListConverter.java.ejs} +4 -3
  131. package/generators/entity-server/templates/src/main/java/package/service/criteria/EntityCriteria.java.ejs +8 -6
  132. package/generators/entity-server/templates/src/main/java/package/service/impl/EntityServiceImpl.java.ejs +1 -1
  133. package/generators/entity-server/templates/src/main/java/package/service/mapper/EntityMapper.java.ejs +6 -6
  134. package/generators/entity-server/templates/src/main/java/package/web/rest/EntityResource.java.ejs +1 -1
  135. package/generators/entity-server/templates/src/test/java/package/web/rest/EntityResourceIT.java.ejs +5 -5
  136. package/generators/export-jdl/esm.mjs +1 -3
  137. package/generators/gae/esm.mjs +1 -3
  138. package/generators/generate-blueprint/constants.mjs +146 -0
  139. package/generators/generate-blueprint/esm.mjs +19 -0
  140. package/generators/generate-blueprint/files.mjs +81 -0
  141. package/generators/generate-blueprint/generator.mjs +363 -0
  142. package/generators/generate-blueprint/index.mjs +20 -0
  143. package/generators/generate-blueprint/templates/.eslintrc.json.ejs +41 -0
  144. package/generators/generate-blueprint/templates/.github/workflows/generator.yml.ejs +32 -0
  145. package/generators/generate-blueprint/templates/.mocharc.cjs.ejs +29 -0
  146. package/generators/{server/templates/couchbase/src/main/java/package/config/couchbase/package-info.java.ejs → generate-blueprint/templates/.prettierignore.jhi.blueprint.ejs} +4 -7
  147. package/generators/generate-blueprint/templates/README.md.ejs +75 -0
  148. package/generators/generate-blueprint/templates/cli/cli.mjs.ejs +35 -0
  149. package/generators/generate-blueprint/templates/cli/commands.cjs.ejs +25 -0
  150. package/generators/generate-blueprint/templates/generators/generator/generator.mjs.jhi.ejs +98 -0
  151. package/generators/generate-blueprint/templates/generators/generator/generator.spec.mjs.ejs +42 -0
  152. package/generators/generate-blueprint/templates/generators/generator/index.mjs.ejs +19 -0
  153. package/generators/generate-blueprint/templates/generators/generator/templates/template-file.ejs +0 -0
  154. package/generators/generate-blueprint/templates/test/utils.mjs.ejs +17 -0
  155. package/generators/generator-base-blueprint.js +29 -0
  156. package/generators/generator-base-docker.js +1 -0
  157. package/generators/generator-base-entities.cjs +368 -0
  158. package/generators/generator-base.js +128 -23
  159. package/generators/generator-constants.js +18 -16
  160. package/generators/generator-list.js +2 -0
  161. package/generators/gradle/esm.mjs +19 -0
  162. package/generators/heroku/esm.mjs +1 -3
  163. package/generators/info/esm.mjs +1 -3
  164. package/generators/init/esm.mjs +19 -0
  165. package/generators/init/files.cjs +9 -3
  166. package/generators/init/index.cjs +5 -0
  167. package/generators/init/templates/.gitignore.jhi.ejs +5 -0
  168. package/generators/init/templates/{.lintstagedrc.js.ejs → .lintstagedrc.cjs.ejs} +0 -0
  169. package/generators/java/esm.mjs +19 -0
  170. package/generators/java/index.cjs +58 -2
  171. package/generators/kubernetes/esm.mjs +1 -3
  172. package/generators/kubernetes-helm/esm.mjs +1 -3
  173. package/generators/kubernetes-knative/esm.mjs +1 -3
  174. package/generators/languages/esm.mjs +2 -3
  175. package/generators/languages/templates/src/test/resources/i18n/messages_fr.properties.ejs +4 -1
  176. package/generators/maven/esm.mjs +19 -0
  177. package/generators/openapi-client/esm.mjs +1 -3
  178. package/generators/openapi-client/index.js +11 -4
  179. package/generators/openshift/esm.mjs +1 -3
  180. package/generators/page/esm.mjs +1 -3
  181. package/generators/project-name/esm.mjs +19 -0
  182. package/generators/server/esm.mjs +2 -2
  183. package/generators/server/files-couchbase.js +28 -31
  184. package/generators/server/files.js +14 -1
  185. package/generators/server/index.js +13 -13
  186. package/generators/server/needle-api/needle-server-maven.js +1 -1
  187. package/generators/server/templates/couchbase/src/main/java/package/repository/CouchbaseSearchRepository.java.ejs +91 -0
  188. package/generators/server/templates/couchbase/src/main/java/package/repository/JHipsterCouchbaseRepository.java.ejs +43 -64
  189. package/generators/server/templates/couchbase/src/main/java/package/repository/PersistentTokenRepository_couchbase.java.ejs +2 -2
  190. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_ADMIN.json.ejs +3 -0
  191. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/authority/ROLE_USER.json.ejs +3 -0
  192. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__admin.json.ejs → user/admin.json.ejs} +2 -2
  193. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/{user__user.json.ejs → user/user.json.ejs} +2 -2
  194. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.2__create_indexes.n1ql.ejs +34 -0
  195. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_collections.n1ql.ejs +8 -0
  196. package/generators/server/templates/couchbase/src/test/java/package/CouchbaseTestContainerExtension.java.ejs +4 -3
  197. package/generators/server/templates/couchbase/src/test/java/package/repository/{JHipsterCouchbaseRepositoryTest.java.ejs → CouchbaseSearchRepositoryTest.java.ejs} +2 -2
  198. package/generators/server/templates/gradle/profile_prod.gradle.ejs +4 -0
  199. package/generators/server/templates/gradle.properties.ejs +6 -6
  200. package/generators/server/templates/npmw +14 -5
  201. package/generators/server/templates/pom.xml.ejs +47 -42
  202. package/generators/server/templates/src/main/docker/app.yml.ejs +4 -2
  203. package/generators/server/templates/src/main/docker/zipkin.yml.ejs +25 -0
  204. package/generators/server/templates/src/main/java/package/config/DatabaseConfiguration_couchbase.java.ejs +26 -16
  205. package/generators/server/templates/src/main/java/package/config/LocaleConfiguration_reactive.java.ejs +1 -1
  206. package/generators/server/templates/src/main/java/package/config/SecurityConfiguration_reactive.java.ejs +2 -1
  207. package/generators/server/templates/src/main/java/package/domain/Authority.java.ejs +11 -0
  208. package/generators/server/templates/src/main/java/package/domain/PersistentToken.java.ejs +6 -6
  209. package/generators/server/templates/src/main/java/package/domain/User.java.ejs +9 -7
  210. package/generators/server/templates/src/main/java/package/repository/AuthorityRepository.java.ejs +1 -11
  211. package/generators/server/templates/src/main/java/package/repository/UserRepository.java.ejs +48 -72
  212. package/generators/server/templates/src/main/java/package/security/oauth2/CustomClaimConverter.java.ejs +1 -1
  213. package/generators/server/templates/src/main/java/package/service/UserService.java.ejs +8 -6
  214. package/generators/server/templates/src/main/java/package/web/filter/OAuth2ReactiveRefreshTokensWebFilter.java.ejs +0 -1
  215. package/generators/server/templates/src/main/java/package/web/rest/AccountResource.java.ejs +1 -1
  216. package/generators/server/templates/src/main/java/package/web/rest/LogoutResource_reactive.java.ejs +1 -1
  217. package/generators/server/templates/src/main/java/package/web/rest/PublicUserResource.java.ejs +2 -2
  218. package/generators/server/templates/src/main/resources/config/application-dev.yml.ejs +8 -0
  219. package/generators/server/templates/src/main/resources/config/application-prod.yml.ejs +6 -0
  220. package/generators/server/templates/src/main/resources/config/application.yml.ejs +2 -0
  221. package/generators/server/templates/src/test/java/package/IntegrationTest.java.ejs +3 -1
  222. package/generators/server/templates/src/test/java/package/TechnicalStructureTest.java.ejs +21 -15
  223. package/generators/server/templates/src/test/java/package/config/JHipsterBlockHoundIntegration.java.ejs +2 -0
  224. package/generators/server/templates/src/test/java/package/cucumber/stepdefs/StepDefs.java.ejs +8 -0
  225. package/generators/server/templates/src/test/java/package/cucumber/stepdefs/UserStepDefs.java.ejs +17 -3
  226. package/generators/server/templates/src/test/java/package/security/SecurityUtilsUnitTest_reactive.java.ejs +1 -1
  227. package/generators/server/templates/src/test/java/package/security/oauth2/CustomClaimConverterIT.java.ejs +1 -1
  228. package/generators/server/templates/src/test/java/package/service/mapper/UserMapperTest.java.ejs +1 -1
  229. package/generators/server/templates/src/test/java/package/web/rest/AccountResourceIT.java.ejs +13 -6
  230. package/generators/server/templates/src/test/java/package/web/rest/TestUtil.java.ejs +1 -6
  231. package/generators/server/templates/src/test/java/package/web/rest/UserResourceIT.java.ejs +40 -42
  232. package/generators/server/templates/src/test/java/package/web/rest/errors/ExceptionTranslatorIT_reactive.java.ejs +1 -1
  233. package/generators/spring-boot/esm.mjs +19 -0
  234. package/generators/spring-controller/esm.mjs +1 -3
  235. package/generators/spring-service/esm.mjs +1 -3
  236. package/generators/upgrade/esm.mjs +1 -3
  237. package/generators/upgrade-config/esm.mjs +1 -3
  238. package/generators/workspaces/esm.mjs +1 -3
  239. package/lib/constants/logo.cjs +30 -0
  240. package/lib/constants/priorities.cjs +216 -2
  241. package/lib/constants/priorities.mjs +29 -1
  242. package/lib/index.mjs +6 -0
  243. package/lib/support/mixin.cjs +5 -1
  244. package/lib/support/shared-data.cjs +34 -1
  245. package/package.json +27 -23
  246. package/utils/entity.js +19 -2
  247. package/utils/faker.js +3 -3
  248. package/utils/field.js +61 -49
  249. package/utils/relationship.js +5 -3
  250. package/utils/user.js +109 -0
  251. package/generators/app/generator.spec.mjs +0 -47
  252. package/generators/aws/generator.spec.mjs +0 -47
  253. package/generators/azure-app-service/generator.spec.mjs +0 -47
  254. package/generators/azure-spring-cloud/generator.spec.mjs +0 -47
  255. package/generators/base/generator.spec.mjs +0 -44
  256. package/generators/bootstrap/generator.spec.mjs +0 -44
  257. package/generators/ci-cd/generator.spec.mjs +0 -47
  258. package/generators/client/__workflow/devserver-angular.json +0 -13
  259. package/generators/client/__workflow/devserver-react.json +0 -13
  260. package/generators/client/__workflow/devserver-vue.json +0 -13
  261. package/generators/client/generator.spec.mjs +0 -47
  262. package/generators/cloudfoundry/generator.spec.mjs +0 -47
  263. package/generators/common/generator.spec.mjs +0 -47
  264. package/generators/cypress/generator.spec.mjs +0 -47
  265. package/generators/database-changelog/generator.spec.mjs +0 -47
  266. package/generators/database-changelog-liquibase/generator.spec.mjs +0 -47
  267. package/generators/docker-compose/generator.spec.mjs +0 -44
  268. package/generators/entities/generator.spec.mjs +0 -47
  269. package/generators/entities-client/generator.spec.mjs +0 -47
  270. package/generators/entity/generator.spec.mjs +0 -47
  271. package/generators/entity-client/generator.spec.mjs +0 -47
  272. package/generators/entity-i18n/generator.spec.mjs +0 -47
  273. package/generators/entity-server/generator.spec.mjs +0 -47
  274. package/generators/export-jdl/generator.spec.mjs +0 -44
  275. package/generators/gae/generator.spec.mjs +0 -47
  276. package/generators/gradle/__snapshots__/generator.spec.cjs.snap +0 -59
  277. package/generators/gradle/generator.spec.cjs +0 -71
  278. package/generators/heroku/generator.spec.mjs +0 -47
  279. package/generators/info/generator.spec.mjs +0 -44
  280. package/generators/init/__snapshots__/generator.spec.cjs.snap +0 -65
  281. package/generators/init/generator.spec.cjs +0 -112
  282. package/generators/java/__snapshots__/generator.spec.cjs.snap +0 -118
  283. package/generators/java/generator.spec.cjs +0 -87
  284. package/generators/kubernetes/generator.spec.mjs +0 -44
  285. package/generators/kubernetes-helm/generator.spec.mjs +0 -44
  286. package/generators/kubernetes-knative/generator.spec.mjs +0 -44
  287. package/generators/languages/generator.spec.mjs +0 -47
  288. package/generators/maven/__snapshots__/generator.spec.cjs.snap +0 -53
  289. package/generators/maven/generator.spec.cjs +0 -78
  290. package/generators/openapi-client/generator.spec.mjs +0 -47
  291. package/generators/openshift/generator.spec.mjs +0 -44
  292. package/generators/page/generator.spec.mjs +0 -47
  293. package/generators/project-name/generator.spec.cjs +0 -43
  294. package/generators/server/__snapshots__/generator.spec.mjs.snap +0 -1931
  295. package/generators/server/generator.spec.mjs +0 -52
  296. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactory.java.ejs +0 -83
  297. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryFactoryBean.java.ejs +0 -40
  298. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomCouchbaseRepositoryQuery.java.ejs +0 -44
  299. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlQueryCreator.java.ejs +0 -162
  300. package/generators/server/templates/couchbase/src/main/java/package/config/couchbase/CustomN1qlRepositoryQueryExecutor.java.ejs +0 -104
  301. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_ADMIN.json.ejs +0 -3
  302. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0.1__initial_setup/ROLE_USER.json.ejs +0 -3
  303. package/generators/server/templates/couchbase/src/main/resources/config/couchmove/changelog/V0__create_indexes.n1ql.ejs +0 -19
  304. package/generators/spring-boot/__snapshots__/generator.spec.cjs.snap +0 -80
  305. package/generators/spring-boot/generator.spec.cjs +0 -64
  306. package/generators/spring-controller/generator.spec.mjs +0 -47
  307. package/generators/spring-service/generator.spec.mjs +0 -47
  308. package/generators/upgrade/generator.spec.mjs +0 -44
  309. package/generators/upgrade-config/generator.spec.mjs +0 -44
  310. package/generators/workspaces/generator.spec.mjs +0 -47
@@ -0,0 +1,34 @@
1
+ CREATE INDEX user_mail ON `${bucket}`.`${scope}`.`user`(type, LOWER(email))
2
+ WHERE `type` = "user"
3
+ WITH { "defer_build" : true };
4
+
5
+ CREATE INDEX user_activationKey ON `${bucket}`.`${scope}`.`user`(activationKey)
6
+ WHERE `type` = "user"
7
+ WITH { "defer_build" : true };
8
+
9
+ CREATE INDEX user_resetKey ON `${bucket}`.`${scope}`.`user`(resetKey)
10
+ WHERE `type` = "user"
11
+ WITH { "defer_build" : true };
12
+
13
+ CREATE INDEX user_activated ON `${bucket}`.`${scope}`.`user`(activated)
14
+ WHERE `type` = "user"
15
+ AND activated = true
16
+ WITH { "defer_build" : true };
17
+
18
+ CREATE INDEX user_non_activated ON `${bucket}`.`${scope}`.`user`(createdDate)
19
+ WHERE `type` = "user"
20
+ AND activated = false
21
+ AND activationKey IS NOT NULL
22
+ WITH { "defer_build" : true };
23
+
24
+ <%_ if (isUsingBuiltInAuthority()) { _%>
25
+ CREATE INDEX authority_type ON `${bucket}`.`${scope}`.`authority`(type)
26
+ WHERE `type` = "authority"
27
+ WITH { "defer_build" : true };
28
+ <%_ } _%>
29
+
30
+ <%_ if (authenticationTypeSession) { _%>
31
+ CREATE INDEX token_date ON `${bucket}`.`${scope}`.`persistentToken` %>(tokenDate)
32
+ WHERE `type` = "persistentToken"
33
+ WITH { "defer_build" : true };
34
+ <%_ } _%>
@@ -0,0 +1,8 @@
1
+ CREATE COLLECTION `${bucket}`.`${scope}`.`user`;
2
+
3
+ <%_ if (isUsingBuiltInAuthority()) { _%>
4
+ CREATE COLLECTION `${bucket}`.`${scope}`.`authority`;
5
+ <%_ } _%>
6
+ <%_ if (authenticationTypeSession) { _%>
7
+ CREATE COLLECTION `${bucket}`.`${scope}`.`persistentToken`;
8
+ <%_ } _%>
@@ -1,5 +1,5 @@
1
1
  <%#
2
- Copyright 2013-2020 the original author or authors from the JHipster project.
2
+ Copyright 2013-2022 the original author or authors from the JHipster project.
3
3
 
4
4
  This file is part of the JHipster project, see https://www.jhipster.tech/
5
5
  for more information.
@@ -20,8 +20,7 @@ package <%= packageName %>;
20
20
 
21
21
  import org.junit.jupiter.api.extension.BeforeAllCallback;
22
22
  import org.junit.jupiter.api.extension.ExtensionContext;
23
- import org.testcontainers.couchbase.BucketDefinition;
24
- import org.testcontainers.couchbase.CouchbaseContainer;
23
+ import org.testcontainers.couchbase.*;
25
24
  import org.testcontainers.utility.DockerImageName;
26
25
 
27
26
  import java.util.concurrent.atomic.AtomicBoolean;
@@ -43,12 +42,14 @@ public class CouchbaseTestContainerExtension implements BeforeAllCallback {
43
42
  .asCompatibleSubstituteFor("couchbase/server");
44
43
  couchbase = new CouchbaseContainer(dockerImage)
45
44
  .withBucket(new BucketDefinition(getBucketName()).withQuota(100))
45
+ .withServiceQuota(CouchbaseService.SEARCH, 1024)
46
46
  .withCredentials("user", "secret");
47
47
  couchbase.start();
48
48
  System.setProperty("spring.couchbase.connection-string", couchbase.getConnectionString());
49
49
  System.setProperty("spring.couchbase.username", couchbase.getUsername());
50
50
  System.setProperty("spring.couchbase.password", couchbase.getPassword());
51
51
  System.setProperty("jhipster.database.couchbase.bucket-name", getBucketName());
52
+ System.setProperty("jhipster.database.couchbase.scope-name", "testScope");
52
53
  started.set(true);
53
54
  }
54
55
  }
@@ -27,12 +27,12 @@ import java.util.stream.Stream;
27
27
 
28
28
  import static org.assertj.core.api.Assertions.assertThat;
29
29
 
30
- class JHipsterCouchbaseRepositoryTest {
30
+ class CouchbaseSearchRepositoryTest {
31
31
 
32
32
  @MethodSource
33
33
  @ParameterizedTest
34
34
  void queryString(String query, SearchQuery ftsQuery) {
35
- assertThat(JHipsterCouchbaseRepository.searchQuery(query).toString()).isEqualTo(ftsQuery.toString());
35
+ assertThat(CouchbaseSearchRepository.searchQuery(query).toString()).isEqualTo(ftsQuery.toString());
36
36
  }
37
37
 
38
38
  @SuppressWarnings("unused")
@@ -31,6 +31,10 @@ if (project.hasProperty("api-docs")) {
31
31
  profiles += ",api-docs"
32
32
  }
33
33
 
34
+ if (project.hasProperty("e2e")) {
35
+ profiles += ",e2e"
36
+ }
37
+
34
38
  springBoot {
35
39
  buildInfo()
36
40
  }
@@ -34,7 +34,7 @@ jacksonDatabindNullableVersion=<%= JACKSON_DATABIND_NULLABLE_VERSION %>
34
34
  <%_ } _%>
35
35
  <%_ if (cacheProviderCaffeine) { _%>
36
36
  caffeineVersion=3.0.5
37
- typesafeConfigVersion=1.4.1
37
+ typesafeConfigVersion=1.4.2
38
38
  <%_ } _%>
39
39
  <%_ if (databaseTypeSql && !reactive) { _%>
40
40
  liquibaseHibernate5Version=<%= LIQUIBASE_VERSION %>
@@ -61,23 +61,23 @@ cassandraDriverVersion=4.13.0
61
61
 
62
62
  # gradle plugin version
63
63
  jibPluginVersion=<%= JIB_VERSION %>
64
- gitPropertiesPluginVersion=2.3.2
64
+ gitPropertiesPluginVersion=2.4.0
65
65
  <%_ if (!skipClient) { _%>
66
- gradleNodePluginVersion=3.1.1
66
+ gradleNodePluginVersion=3.2.1
67
67
  <%_ } _%>
68
68
  <%_ if (databaseTypeSql && !reactive) { _%>
69
69
  liquibasePluginVersion=2.1.1
70
70
  <%_ } _%>
71
71
  sonarqubePluginVersion=3.3
72
72
  <%_ if (enableSwaggerCodegen) { _%>
73
- openapiPluginVersion=5.3.1
73
+ openapiPluginVersion=5.4.0
74
74
  <%_ } _%>
75
75
  noHttpCheckstyleVersion=0.0.10
76
- checkstyleVersion=9.2.1
76
+ checkstyleVersion=9.3
77
77
  modernizerPluginVersion=1.6.2
78
78
  <%_ if (enableGradleEnterprise) { _%>
79
79
  gradleEnterprisePluginVersion=3.8.1
80
- gradleCommonCustomUserDataPluginVersion=1.6.2
80
+ gradleCommonCustomUserDataPluginVersion=1.6.3
81
81
  <%_ } _%>
82
82
  # jhipster-needle-gradle-property - JHipster will add additional properties here
83
83
 
@@ -10,22 +10,31 @@ if [ -f "$basedir/mvnw" ]; then
10
10
  PATH="$basedir/$builddir/:$PATH"
11
11
  NPM_EXE="$basedir/$builddir/node_modules/npm/bin/npm-cli.js"
12
12
  NODE_EXE="$basedir/$builddir/node"
13
- else
13
+ elif [ -f "$basedir/gradlew" ]; then
14
14
  bindir="$basedir/build/node/bin"
15
15
  repodir="$basedir/build/node/lib/node_modules"
16
16
  installCommand="$basedir/gradlew npmSetup"
17
+ else
18
+ echo "Using npm installed globally"
19
+ exec npm "$@"
17
20
  fi
18
21
 
19
- PATH="$bindir:$PATH"
20
22
  NPM_EXE="$repodir/npm/bin/npm-cli.js"
21
23
  NODE_EXE="$bindir/node"
22
24
 
23
- if ! [ -x "$NPM_EXE" ]; then
25
+ if [ ! -x "$NPM_EXE" ] || [ ! -x "$NODE_EXE" ]; then
24
26
  $installCommand || true
25
27
  fi
26
28
 
27
- if ! [ -x "$NPM_EXE" ]; then
28
- echo "Using npm installed globally"
29
+ if [ -x "$NODE_EXE" ]; then
30
+ echo "Using node installed locally $($NODE_EXE --version)"
31
+ PATH="$bindir:$PATH"
32
+ else
33
+ NODE_EXE='node'
34
+ fi
35
+
36
+ if [ ! -x "$NPM_EXE" ]; then
37
+ echo "Local npm not found, using npm installed globally"
29
38
  npm "$@"
30
39
  else
31
40
  echo "Using npm installed locally $($NODE_EXE $NPM_EXE --version)"
@@ -86,6 +86,7 @@
86
86
  <%_ } _%>
87
87
  <profile.api-docs />
88
88
  <profile.tls />
89
+ <profile.e2e />
89
90
 
90
91
  <!-- Dependency versions -->
91
92
  <jhipster-dependencies.version><%= JHIPSTER_DEPENDENCIES_VERSION %></jhipster-dependencies.version>
@@ -128,27 +129,23 @@
128
129
  <%_ } _%>
129
130
  <%_ if (cacheProviderCaffeine) { _%>
130
131
  <caffeine.version>3.0.5</caffeine.version>
131
- <typesafe.version>1.4.1</typesafe.version>
132
- <%_ } _%>
133
- <%_ if (databaseTypeNeo4j) { _%>
134
- <!-- This needs to be pinned with the one from neo4j migrations otherwise an older incompatible version from
135
- spring fox is used-->
136
- <classgraph.version>4.8.87</classgraph.version>
132
+ <typesafe.version>1.4.2</typesafe.version>
137
133
  <%_ } _%>
138
134
  <!-- Plugin versions -->
139
135
  <maven-clean-plugin.version>3.1.0</maven-clean-plugin.version>
140
- <maven-site-plugin.version>3.10.0</maven-site-plugin.version>
136
+ <maven-site-plugin.version>3.11.0</maven-site-plugin.version>
141
137
  <maven-compiler-plugin.version>3.9.0</maven-compiler-plugin.version>
142
- <maven-javadoc-plugin.version>3.3.1</maven-javadoc-plugin.version>
138
+ <maven-javadoc-plugin.version>3.3.2</maven-javadoc-plugin.version>
143
139
  <maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version>
144
- <maven-enforcer-plugin.version>3.0.0</maven-enforcer-plugin.version>
140
+ <maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
145
141
  <maven-failsafe-plugin.version>3.0.0-M5</maven-failsafe-plugin.version>
142
+ <maven-jar-plugin.version>3.2.2</maven-jar-plugin.version>
146
143
  <maven-idea-plugin.version>2.2.1</maven-idea-plugin.version>
147
144
  <maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
148
145
  <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
149
146
  <maven-war-plugin.version>3.3.2</maven-war-plugin.version>
150
147
  <maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version>
151
- <checkstyle.version>9.2.1</checkstyle.version>
148
+ <checkstyle.version>9.3</checkstyle.version>
152
149
  <nohttp-checkstyle.version>0.0.10</nohttp-checkstyle.version>
153
150
  <%_ if (!skipClient) { _%>
154
151
  <frontend-maven-plugin.version>1.12.1</frontend-maven-plugin.version>
@@ -163,7 +160,7 @@
163
160
  <jib-maven-plugin.architecture>amd64</jib-maven-plugin.architecture>
164
161
  <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
165
162
  <%_ if (enableSwaggerCodegen) { _%>
166
- <openapi-generator-maven-plugin.version>5.3.1</openapi-generator-maven-plugin.version>
163
+ <openapi-generator-maven-plugin.version>5.4.0</openapi-generator-maven-plugin.version>
167
164
  <%_ } _%>
168
165
  <properties-maven-plugin.version>1.0.0</properties-maven-plugin.version>
169
166
  <sonar-maven-plugin.version>3.9.1.2184</sonar-maven-plugin.version>
@@ -372,12 +369,6 @@
372
369
  <groupId>eu.michael-simons.neo4j</groupId>
373
370
  <artifactId>neo4j-migrations-spring-boot-starter</artifactId>
374
371
  </dependency>
375
- <!-- This needs to be pinned with the one from neo4j migrations otherwise an older incompatible version from spring fox is used-->
376
- <dependency>
377
- <groupId>io.github.classgraph</groupId>
378
- <artifactId>classgraph</artifactId>
379
- <version>${classgraph.version}</version>
380
- </dependency>
381
372
  <dependency>
382
373
  <groupId>org.testcontainers</groupId>
383
374
  <artifactId>neo4j</artifactId>
@@ -705,6 +696,12 @@
705
696
  <groupId>com.github.vladimir-bukhtoyarov</groupId>
706
697
  <artifactId>bucket4j-jcache</artifactId>
707
698
  </dependency>
699
+ <%_ if (authenticationTypeOauth2 && reactive) { _%>
700
+ <dependency>
701
+ <groupId>org.springframework.cloud</groupId>
702
+ <artifactId>spring-cloud-starter-security</artifactId>
703
+ </dependency>
704
+ <%_ } _%>
708
705
  <%_ } _%>
709
706
  <%_ if (applicationTypeMicroservice || applicationTypeGateway) { _%>
710
707
  <dependency>
@@ -716,6 +713,18 @@
716
713
  <groupId>org.springframework.cloud</groupId>
717
714
  <artifactId>spring-cloud-starter-circuitbreaker-reactor-resilience4j</artifactId>
718
715
  </dependency>
716
+ <dependency>
717
+ <groupId>com.playtika.reactivefeign</groupId>
718
+ <artifactId>feign-reactor-webclient</artifactId>
719
+ </dependency>
720
+ <dependency>
721
+ <groupId>com.playtika.reactivefeign</groupId>
722
+ <artifactId>feign-reactor-cloud</artifactId>
723
+ </dependency>
724
+ <dependency>
725
+ <groupId>com.playtika.reactivefeign</groupId>
726
+ <artifactId>feign-reactor-spring-configuration</artifactId>
727
+ </dependency>
719
728
  <%_ } else { _%>
720
729
  <dependency>
721
730
  <groupId>org.springframework.cloud</groupId>
@@ -726,6 +735,10 @@
726
735
  <groupId>org.springframework.retry</groupId>
727
736
  <artifactId>spring-retry</artifactId>
728
737
  </dependency>
738
+ <dependency>
739
+ <groupId>org.springframework.cloud</groupId>
740
+ <artifactId>spring-cloud-starter-openfeign</artifactId>
741
+ </dependency>
729
742
  <%_ } _%>
730
743
  <%_ if (serviceDiscoveryType) { _%>
731
744
  <dependency>
@@ -753,30 +766,10 @@
753
766
  </dependency>
754
767
  <%_ } _%>
755
768
  <%_ } _%>
756
- <%_ if (applicationTypeGateway && authenticationTypeOauth2 && reactive) { _%>
757
- <dependency>
758
- <groupId>org.springframework.cloud</groupId>
759
- <artifactId>spring-cloud-starter-security</artifactId>
760
- </dependency>
761
- <%_ } _%>
762
- <%_ if (applicationTypeMicroservice || applicationTypeGateway) { _%>
763
- <dependency>
764
- <groupId>org.springframework.cloud</groupId>
765
- <artifactId>spring-cloud-starter-openfeign</artifactId>
766
- </dependency>
767
- <%_ } _%>
768
- <%_ if (applicationTypeGateway || (applicationTypeMicroservice && reactive)) { _%>
769
+ <%_ if (!reactive && databaseTypeSql) { _%>
769
770
  <dependency>
770
- <groupId>com.playtika.reactivefeign</groupId>
771
- <artifactId>feign-reactor-webclient</artifactId>
772
- </dependency>
773
- <dependency>
774
- <groupId>com.playtika.reactivefeign</groupId>
775
- <artifactId>feign-reactor-cloud</artifactId>
776
- </dependency>
777
- <dependency>
778
- <groupId>com.playtika.reactivefeign</groupId>
779
- <artifactId>feign-reactor-spring-configuration</artifactId>
771
+ <groupId>org.springframework.security</groupId>
772
+ <artifactId>spring-security-data</artifactId>
780
773
  </dependency>
781
774
  <%_ } _%>
782
775
  <dependency>
@@ -1461,6 +1454,11 @@
1461
1454
  </execution>
1462
1455
  </executions>
1463
1456
  </plugin>
1457
+ <plugin>
1458
+ <groupId>org.apache.maven.plugins</groupId>
1459
+ <artifactId>maven-jar-plugin</artifactId>
1460
+ <version>${maven-jar-plugin.version}</version>
1461
+ </plugin>
1464
1462
  <%_ if (enableSwaggerCodegen) { _%>
1465
1463
  <plugin>
1466
1464
  <!--
@@ -2027,7 +2025,7 @@
2027
2025
  </build>
2028
2026
  <properties>
2029
2027
  <!-- default Spring profiles -->
2030
- <spring.profiles.active>prod${profile.api-docs}${profile.tls}<%_ if (databaseTypeSql) { _%>${profile.no-liquibase}<%_ } _%></spring.profiles.active>
2028
+ <spring.profiles.active>prod${profile.api-docs}${profile.tls}${profile.e2e}<%_ if (databaseTypeSql) { _%>${profile.no-liquibase}<%_ } _%></spring.profiles.active>
2031
2029
  </properties>
2032
2030
  </profile>
2033
2031
  <profile>
@@ -2050,7 +2048,11 @@
2050
2048
  <dependencies>
2051
2049
  <dependency>
2052
2050
  <groupId>org.springframework.cloud</groupId>
2053
- <artifactId>spring-cloud-starter-zipkin</artifactId>
2051
+ <artifactId>spring-cloud-starter-sleuth</artifactId>
2052
+ </dependency>
2053
+ <dependency>
2054
+ <groupId>org.springframework.cloud</groupId>
2055
+ <artifactId>spring-cloud-sleuth-zipkin</artifactId>
2054
2056
  </dependency>
2055
2057
  </dependencies>
2056
2058
  </profile>
@@ -2165,6 +2167,9 @@
2165
2167
  <%_ if (cypressTests || protractorTests) { _%>
2166
2168
  <profile>
2167
2169
  <id>e2e</id>
2170
+ <properties>
2171
+ <profile.e2e>,e2e</profile.e2e>
2172
+ </properties>
2168
2173
  <build>
2169
2174
  <finalName>e2e</finalName>
2170
2175
  <pluginManagement>
@@ -76,11 +76,13 @@ _%>
76
76
  <%_ } _%>
77
77
  <%_ if (databaseTypeCassandra) { _%>
78
78
  - SPRING_DATA_CASSANDRA_CONTACTPOINTS=<%= baseName.toLowerCase() %>-cassandra
79
- - JHIPSTER_SLEEP=30 # gives time for other services to boot before the application
80
- <%_ } else if (prodDatabaseTypeMariadb) { _%>
79
+ <%_ } _%>
80
+ <%_ if (prodDatabaseTypeMariadb) { _%>
81
81
  - JHIPSTER_SLEEP=120 # gives time for mariadb server to start
82
82
  <%_ } else if (prodDatabaseTypeMssql) { _%>
83
83
  - JHIPSTER_SLEEP=60 # gives time for mssql server to start
84
+ <%_ } else if (applicationTypeGateway) { _%>
85
+ - JHIPSTER_SLEEP=60 # gives time for microservices to boot before the gateway, the entire stack will be ready to accept incomming requests.
84
86
  <%_ } else { _%>
85
87
  - JHIPSTER_SLEEP=30 # gives time for other services to boot before the application
86
88
  <%_ } _%>
@@ -0,0 +1,25 @@
1
+ <%#
2
+ Copyright 2013-2022 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ https://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ # This configuration is intended for development purpose, it's **your** responsibility to harden it for production
20
+ version: '<%= DOCKER_COMPOSE_FORMAT_VERSION %>'
21
+ services:
22
+ zipkin:
23
+ image: <%= DOCKER_ZIPKIN %>
24
+ ports:
25
+ - 127.0.0.1:9411:9411
@@ -24,11 +24,9 @@ import tech.jhipster.config.JHipsterProperties;
24
24
 
25
25
  import com.couchbase.client.java.Bucket;
26
26
  import com.couchbase.client.java.Cluster;
27
- import com.fasterxml.jackson.databind.ObjectMapper;
27
+ import com.couchbase.client.java.Collection;
28
28
  import com.github.couchmove.Couchmove;
29
29
 
30
- import <%= packageName %>.config.couchbase.CustomCouchbaseRepositoryFactoryBean;
31
-
32
30
  import org.slf4j.Logger;
33
31
  import org.slf4j.LoggerFactory;
34
32
  import org.springframework.boot.autoconfigure.couchbase.CouchbaseProperties;
@@ -53,7 +51,6 @@ import org.springframework.data.couchbase.core.mapping.event.ValidatingCouchbase
53
51
  import org.springframework.data.couchbase.repository.auditing.EnableCouchbaseAuditing;
54
52
  <%_ } _%>
55
53
  import org.springframework.data.couchbase.repository.config.Enable<%_ if (reactive) { _%>Reactive<% } %>CouchbaseRepositories;
56
- import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
57
54
  import org.springframework.util.StringUtils;
58
55
  import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
59
56
 
@@ -61,6 +58,7 @@ import java.math.BigDecimal;
61
58
  import java.math.BigInteger;
62
59
  import java.time.ZoneId;
63
60
  import java.time.ZonedDateTime;
61
+ import java.time.Duration;
64
62
  import java.util.*;
65
63
  <%_ if (reactive) { _%>
66
64
  import java.lang.reflect.Field;
@@ -74,13 +72,16 @@ import reactor.core.publisher.Flux;
74
72
  @Enable<% if (reactive) { %>Reactive<% } %>ElasticsearchRepositories("<%= packageName %>.repository.search")
75
73
  <%_ } _%>
76
74
  @Profile("!" + JHipsterConstants.SPRING_PROFILE_CLOUD)
77
- @Enable<% if (reactive) { %>Reactive<% } %>CouchbaseRepositories(basePackages = "<%= packageName %>.repository", repositoryFactoryBeanClass = CustomCouchbaseRepositoryFactoryBean.class<%_ if (searchEngineElasticsearch) { %>,
75
+ @Enable<% if (reactive) { %>Reactive<% } %>CouchbaseRepositories(basePackages = "<%= packageName %>.repository"<%_ if (searchEngineElasticsearch) { %>,
78
76
  includeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, value = <% if (reactive) { %>Reactive<% } %>CouchbaseRepository.class)<%_ } _%>)
79
77
  <%_ if (!reactive) { _%>
80
78
  @EnableCouchbaseAuditing(auditorAwareRef = "springSecurityAuditorAware", dateTimeProviderRef = "")
81
79
  <%_ } _%>
82
80
  public class DatabaseConfiguration extends AbstractCouchbaseConfiguration {
83
81
 
82
+ private static final String CHANGELOG_COLLECTION = "changelog";
83
+ private static final String TYPE_KEY = "type";
84
+
84
85
  private final Logger log = LoggerFactory.getLogger(DatabaseConfiguration.class);
85
86
 
86
87
  private final JHipsterProperties jHipsterProperties;
@@ -164,25 +165,34 @@ public class DatabaseConfiguration extends AbstractCouchbaseConfiguration {
164
165
  return mappingCouchbaseConverter;
165
166
  }
166
167
 
167
- /**
168
- * Workaround for Couchbase overriding SB default jackson mapper: https://github.com/spring-projects/spring-data-couchbase/issues/1209
169
- */
170
- @Bean
171
- @Primary
172
- ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
173
- return builder.createXmlMapper(false).build();
174
- }
175
-
176
168
  @Bean
177
169
  public Couchmove couchmove(Cluster cluster) {
178
170
  log.debug("Configuring Couchmove");
179
171
  Bucket bucket = cluster.bucket(getBucketName());
180
- Couchmove couchmove = new Couchmove(bucket, cluster, "config/couchmove/changelog");
172
+ Collection collection = bucket.scope(getScopeName()).collection(CHANGELOG_COLLECTION);
173
+ Couchmove couchmove = new Couchmove(collection, cluster, "config/couchmove/changelog");
181
174
  couchmove.migrate();
182
- couchmove.buildN1qlDeferredIndexes();
175
+ couchmove.buildN1qlDeferredIndexes(getScopeName());
183
176
  return couchmove;
184
177
  }
185
178
 
179
+ @Bean
180
+ @Profile({JHipsterConstants.SPRING_PROFILE_TEST, JHipsterConstants.SPRING_PROFILE_E2E})
181
+ public Couchmove waitForIndexes(Couchmove couchmove) {
182
+ couchmove.waitForN1qlIndexes(getScopeName(), Duration.ofSeconds(60));
183
+ return couchmove;
184
+ }
185
+
186
+ @Override
187
+ public String typeKey() {
188
+ return TYPE_KEY;
189
+ }
190
+
191
+ @Override
192
+ protected String getScopeName() {
193
+ return jHipsterProperties.getDatabase().getCouchbase().getScopeName();
194
+ }
195
+
186
196
  /**
187
197
  * Simple singleton to convert {@link ZonedDateTime}s to their {@link Long} representation.
188
198
  */
@@ -1,5 +1,5 @@
1
1
  <%#
2
- Copyright 2013-2021 the original author or authors from the JHipster project.
2
+ Copyright 2013-2022 the original author or authors from the JHipster project.
3
3
 
4
4
  This file is part of the JHipster project, see https://www.jhipster.tech/
5
5
  for more information.
@@ -112,6 +112,7 @@ import org.springframework.security.web.server.authentication.HttpStatusServerEn
112
112
  import org.springframework.security.web.server.authentication.logout.HttpStatusReturningServerLogoutSuccessHandler;
113
113
  import org.springframework.security.web.server.csrf.CookieServerCsrfTokenRepository;
114
114
  <%_ } _%>
115
+ import org.springframework.security.web.server.header.XFrameOptionsServerHttpHeadersWriter.Mode;
115
116
  import org.springframework.security.web.server.header.ReferrerPolicyServerHttpHeadersWriter;
116
117
  <%_ if (applicationTypeMicroservice) { _%>
117
118
  import org.springframework.security.web.server.savedrequest.NoOpServerRequestCache;
@@ -255,7 +256,7 @@ public class SecurityConfiguration {
255
256
  .and()
256
257
  .permissionsPolicy().policy("camera=(), fullscreen=(self), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), sync-xhr=()")
257
258
  .and()
258
- .frameOptions().disable()
259
+ .frameOptions().mode(Mode.DENY)
259
260
  <%_ if (applicationTypeMicroservice) { _%>
260
261
  .and()
261
262
  .requestCache()
@@ -26,6 +26,11 @@ import org.hibernate.annotations.CacheConcurrencyStrategy;
26
26
  import org.springframework.data.annotation.Id;
27
27
  import org.springframework.data.<%= databaseType %>.core.mapping.Document;
28
28
  <%_ } _%>
29
+ <%_ if (databaseTypeCouchbase) { _%>
30
+ import org.springframework.data.annotation.TypeAlias;
31
+ import org.springframework.data.couchbase.repository.Collection;
32
+ import static <%= packageName %>.domain.Authority.TYPE_NAME;
33
+ <%_ } _%>
29
34
  <%_ if (databaseTypeNeo4j) { _%>
30
35
  import org.springframework.data.neo4j.core.schema.Id;
31
36
  import org.springframework.data.neo4j.core.schema.Node;
@@ -73,11 +78,17 @@ import java.util.Objects;
73
78
  <%_ } _%>
74
79
  <%_ if (databaseTypeCouchbase) { _%>
75
80
  @Document
81
+ @TypeAlias(TYPE_NAME)
82
+ @Collection(TYPE_NAME)
76
83
  <%_ } _%>
77
84
  public class Authority implements Serializable<% if (databaseTypeSql && reactive) { %>, Persistable<String><% } %> {
78
85
 
79
86
  private static final long serialVersionUID = 1L;
80
87
 
88
+ <%_ if (databaseTypeCouchbase) { _%>
89
+ public static final String TYPE_NAME = "authority";
90
+ <%_ } _%>
91
+
81
92
  @NotNull
82
93
  @Size(max = 50)
83
94
  @Id
@@ -48,7 +48,9 @@ import org.springframework.data.annotation.Id;
48
48
  import org.springframework.data.couchbase.core.mapping.Document;
49
49
  import org.springframework.data.couchbase.core.mapping.id.GeneratedValue;
50
50
  import org.springframework.data.couchbase.core.mapping.id.IdAttribute;
51
- import org.springframework.data.couchbase.core.mapping.id.IdPrefix;
51
+ import org.springframework.data.annotation.TypeAlias;
52
+ import org.springframework.data.couchbase.repository.Collection;
53
+ import static <%= packageName %>.domain.Authority.TYPE_NAME;
52
54
  <%_ } _%>
53
55
 
54
56
  <%_ if (databaseTypeSql) { _%>
@@ -88,6 +90,8 @@ import static org.springframework.data.couchbase.core.mapping.id.GenerationStrat
88
90
  <%_ } _%>
89
91
  <%_ if (databaseTypeCouchbase) { _%>
90
92
  @Document
93
+ @TypeAlias(TYPE_NAME)
94
+ @Collection(TYPE_NAME)
91
95
  <%_ } _%>
92
96
  <%_ if (databaseTypeCassandra) { _%>
93
97
  <%_ if (reactive) { _%>
@@ -104,11 +108,7 @@ public class PersistentToken implements Serializable {
104
108
  private static final int MAX_USER_AGENT_LEN = 255;
105
109
 
106
110
  <%_ if (databaseTypeCouchbase) { _%>
107
- public static final String PREFIX = "token";
108
-
109
- @SuppressWarnings("unused")
110
- @IdPrefix
111
- private String prefix = PREFIX;
111
+ public static final String TYPE_NAME = "persistentToken";
112
112
 
113
113
  @Id
114
114
  @GeneratedValue(strategy = USE_ATTRIBUTES, delimiter = ID_DELIMITER)
@@ -66,7 +66,9 @@ import org.springframework.data.annotation.Id;
66
66
  import org.springframework.data.couchbase.core.mapping.Document;
67
67
  import org.springframework.data.couchbase.core.mapping.id.GeneratedValue;
68
68
  import org.springframework.data.couchbase.core.mapping.id.IdAttribute;
69
- import org.springframework.data.couchbase.core.mapping.id.IdPrefix;
69
+ import org.springframework.data.annotation.TypeAlias;
70
+ import org.springframework.data.couchbase.repository.Collection;
71
+ import static <%= packageName %>.domain.User.TYPE_NAME;
70
72
  <%_ } _%>
71
73
  <%_ if (searchEngineElasticsearch) { _%>
72
74
  import org.springframework.data.elasticsearch.annotations.FieldType;
@@ -115,6 +117,8 @@ import static org.springframework.data.couchbase.core.mapping.id.GenerationStrat
115
117
  <%_ } _%>
116
118
  <%_ if (databaseTypeCouchbase) { _%>
117
119
  @Document
120
+ @TypeAlias(TYPE_NAME)
121
+ @Collection(TYPE_NAME)
118
122
  <%_ } _%>
119
123
  <%_ if (databaseTypeCassandra) { _%>
120
124
  <%_ if (reactive) { _%>
@@ -131,6 +135,10 @@ public class <%= asEntity('User') %><% if (databaseTypeSql || databaseTypeMongod
131
135
 
132
136
  private static final long serialVersionUID = 1L;
133
137
 
138
+ <%_ if (databaseTypeCouchbase) { _%>
139
+ public static final String TYPE_NAME = "user";
140
+ <%_ } _%>
141
+
134
142
  <%_ if (databaseTypeSql) { _%>
135
143
  @Id
136
144
  <%_ if (!reactive) { _%>
@@ -153,12 +161,6 @@ public class <%= asEntity('User') %><% if (databaseTypeSql || databaseTypeMongod
153
161
  <%_ } _%>
154
162
  @Property("user_id")
155
163
  <%_ } else { _%>
156
- <%_ if (databaseTypeCouchbase) { _%>
157
- public static final String PREFIX = "user";
158
-
159
- @IdPrefix
160
- private String prefix = PREFIX;
161
- <%_ } _%>
162
164
  <%_ if (databaseTypeMongodb || databaseTypeCouchbase) { _%>
163
165
  @Id
164
166
  <%_ } _%>
@@ -33,15 +33,10 @@ import org.springframework.data.jpa.repository.JpaRepository;
33
33
  <%_ if (databaseTypeMongodb) { _%>
34
34
  import org.springframework.data.mongodb.repository.<% if (reactive) { %>Reactive<% } %>MongoRepository;
35
35
  <%_ } _%>
36
- <%_ if (databaseTypeCouchbase) { _%>
37
- import org.springframework.data.couchbase.repository.Query;
38
- import com.couchbase.client.java.query.QueryScanConsistency;
39
- import org.springframework.data.couchbase.repository.ScanConsistency;
40
- <%_ } _%>
41
36
  <%_ if (databaseTypeNeo4j) { _%>
42
37
  import org.springframework.data.neo4j.repository.<% if (reactive) { %>Reactive<% } %>Neo4jRepository;
43
38
  <%_ } _%>
44
- <%_ if (databaseTypeCouchbase || databaseTypeNeo4j) { _%>
39
+ <%_ if (databaseTypeNeo4j) { _%>
45
40
  <%_ if (reactive) { _%>
46
41
  import reactor.core.publisher.Flux;
47
42
  <%_ } else { _%>
@@ -79,10 +74,5 @@ public interface AuthorityRepository extends <% if (databaseTypeSql) { %><% if (
79
74
  <% if (!reactive) { %>// See https://github.com/neo4j/sdn-rx/issues/51<%_ } _%>
80
75
  <% if (reactive) { %>Flux<% } else { %>List<% } %><Authority> findAll();
81
76
  <%_ } _%>
82
- <%_ if (databaseTypeCouchbase) { _%>
83
- @Query("#{#n1ql.selectEntity} WHERE #{#n1ql.filter}")
84
- @ScanConsistency(query = QueryScanConsistency.REQUEST_PLUS)
85
- <%= listOrFlux %><Authority> findAll();
86
- <%_ } _%>
87
77
 
88
78
  }