@eui/cli 21.0.0-alpha.4 → 21.0.0-alpha.40

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 (252) hide show
  1. package/README.md +1 -1
  2. package/bin/eui-cli.js +67 -0
  3. package/bin/scripts/build-app.js +12 -0
  4. package/bin/scripts/lint-app.js +22 -0
  5. package/bin/scripts/new.js +39 -0
  6. package/bin/scripts/serve-app.js +12 -0
  7. package/lib/app-utils/build.js +176 -0
  8. package/lib/app-utils/projects.js +41 -0
  9. package/lib/app-utils/serve.js +78 -0
  10. package/lib/build.js +130 -0
  11. package/lib/cli.js +140 -0
  12. package/lib/config.js +59 -0
  13. package/lib/generators.js +72 -0
  14. package/lib/install.js +45 -0
  15. package/lib/maven-build/build.xml +115 -0
  16. package/lib/maven-build/lib/ant-contrib-20061014.jar +0 -0
  17. package/lib/maven-build/pom.xml +64 -0
  18. package/lib/post-build.js +31 -0
  19. package/lib/skeletons/_angular/base/.browserslistrc +16 -0
  20. package/lib/skeletons/_angular/base/.editorconfig +16 -0
  21. package/lib/skeletons/_angular/base/README.md +26 -0
  22. package/lib/skeletons/_angular/base/angular.json +129 -0
  23. package/lib/skeletons/_angular/base/gitignore_TO_REPLACE +51 -0
  24. package/lib/skeletons/_angular/base/mock/app/models/user.js +6 -0
  25. package/lib/skeletons/_angular/base/mock/app/routes/index.js +5 -0
  26. package/lib/skeletons/_angular/base/mock/app/routes/user_routes.js +44 -0
  27. package/lib/skeletons/_angular/base/mock/db/db.json +10 -0
  28. package/lib/skeletons/_angular/base/mock/server.js +23 -0
  29. package/lib/skeletons/_angular/base/package.json +39 -0
  30. package/lib/skeletons/_angular/base/proxy-mock.conf.json +6 -0
  31. package/lib/skeletons/_angular/base/proxy.conf.json +6 -0
  32. package/lib/skeletons/_angular/base/src/.eslintrc.json +121 -0
  33. package/lib/skeletons/_angular/base/src/app/app-starter.service.spec.ts +68 -0
  34. package/lib/skeletons/_angular/base/src/app/app-starter.service.ts +68 -0
  35. package/lib/skeletons/_angular/base/src/app/app.component.html +35 -0
  36. package/lib/skeletons/_angular/base/src/app/app.component.spec.ts +60 -0
  37. package/lib/skeletons/_angular/base/src/app/app.component.ts +35 -0
  38. package/lib/skeletons/_angular/base/src/app/app.config.ts +84 -0
  39. package/lib/skeletons/_angular/base/src/app/app.routes.ts +9 -0
  40. package/lib/skeletons/_angular/base/src/app/features/home/home.component.html +41 -0
  41. package/lib/skeletons/_angular/base/src/app/features/home/home.component.ts +17 -0
  42. package/lib/skeletons/_angular/base/src/app/features/home/home.routes.ts +6 -0
  43. package/lib/skeletons/_angular/base/src/app/features/module1/components/page1/page1.component.html +7 -0
  44. package/lib/skeletons/_angular/base/src/app/features/module1/components/page1/page1.component.ts +10 -0
  45. package/lib/skeletons/_angular/base/src/app/features/module1/components/page2/page2.component.html +7 -0
  46. package/lib/skeletons/_angular/base/src/app/features/module1/components/page2/page2.component.ts +10 -0
  47. package/lib/skeletons/_angular/base/src/app/features/module1/module1.component.html +7 -0
  48. package/lib/skeletons/_angular/base/src/app/features/module1/module1.component.ts +10 -0
  49. package/lib/skeletons/_angular/base/src/app/features/module1/module1.routes.ts +10 -0
  50. package/lib/skeletons/_angular/base/src/app/features/module2/module2.component.html +7 -0
  51. package/lib/skeletons/_angular/base/src/app/features/module2/module2.component.ts +10 -0
  52. package/lib/skeletons/_angular/base/src/app/features/module2/module2.routes.ts +6 -0
  53. package/lib/skeletons/_angular/base/src/app/shared/testing/router.mock.ts +18 -0
  54. package/lib/skeletons/_angular/base/src/assets/config/env-json-config-dev.json +8 -0
  55. package/lib/skeletons/_angular/base/src/assets/config/env-json-config-prod.json +8 -0
  56. package/lib/skeletons/_angular/base/src/assets/config/env-json-config.json +7 -0
  57. package/lib/skeletons/_angular/base/src/assets/i18n/en.json +7 -0
  58. package/lib/skeletons/_angular/base/src/assets/i18n/fr.json +7 -0
  59. package/lib/skeletons/_angular/base/src/config/global.ts +33 -0
  60. package/lib/skeletons/_angular/base/src/config/index.ts +8 -0
  61. package/lib/skeletons/_angular/base/src/config/modules.ts +7 -0
  62. package/lib/skeletons/_angular/base/src/dummy.spec.ts +6 -0
  63. package/lib/skeletons/_angular/base/src/environments/environment.prod.ts +11 -0
  64. package/lib/skeletons/_angular/base/src/environments/environment.ts +15 -0
  65. package/lib/skeletons/_angular/base/src/favicon.ico +0 -0
  66. package/lib/skeletons/_angular/base/src/index.html +20 -0
  67. package/lib/skeletons/_angular/base/src/karma.conf.js +47 -0
  68. package/lib/skeletons/_angular/base/src/main.ts +20 -0
  69. package/lib/skeletons/_angular/base/src/styles.scss +1 -0
  70. package/lib/skeletons/_angular/base/src/tsconfig.app.json +18 -0
  71. package/lib/skeletons/_angular/base/src/tsconfig.spec.json +10 -0
  72. package/lib/skeletons/_angular/base/tsconfig.json +27 -0
  73. package/lib/skeletons/_angular/base-mobile/angular.json +156 -0
  74. package/lib/skeletons/_angular/base-mobile/ionic.config.json +5 -0
  75. package/lib/skeletons/_angular/base-mobile/ngsw-config.json +33 -0
  76. package/lib/skeletons/_angular/base-mobile/package.json +27 -0
  77. package/lib/skeletons/_angular/base-mobile/src/app/app-routing.module.ts +18 -0
  78. package/lib/skeletons/_angular/base-mobile/src/app/app-starter.service.ts +73 -0
  79. package/lib/skeletons/_angular/base-mobile/src/app/app.component.html +47 -0
  80. package/lib/skeletons/_angular/base-mobile/src/app/app.component.ts +81 -0
  81. package/lib/skeletons/_angular/base-mobile/src/app/app.config.ts +81 -0
  82. package/lib/skeletons/_angular/base-mobile/src/app/app.module.ts +44 -0
  83. package/lib/skeletons/_angular/base-mobile/src/app/core/components/.gitkeep +0 -0
  84. package/lib/skeletons/_angular/base-mobile/src/app/core/core.module.ts +89 -0
  85. package/lib/skeletons/_angular/base-mobile/src/app/core/reducers/index.ts +32 -0
  86. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about-routing.module.ts +45 -0
  87. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.component.html +70 -0
  88. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.component.ts +19 -0
  89. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.module.ts +30 -0
  90. package/lib/skeletons/_angular/base-mobile/src/app/features/about/change-log/changelog.component.html +11 -0
  91. package/lib/skeletons/_angular/base-mobile/src/app/features/about/change-log/changelog.component.ts +102 -0
  92. package/lib/skeletons/_angular/base-mobile/src/app/features/about/help-support/help-support.component.html +20 -0
  93. package/lib/skeletons/_angular/base-mobile/src/app/features/about/help-support/help-support.component.ts +75 -0
  94. package/lib/skeletons/_angular/base-mobile/src/app/features/about/legal-notice/legal-notice.component.html +12 -0
  95. package/lib/skeletons/_angular/base-mobile/src/app/features/about/legal-notice/legal-notice.component.ts +8 -0
  96. package/lib/skeletons/_angular/base-mobile/src/app/features/about/licence-details/licence-details.component.html +48 -0
  97. package/lib/skeletons/_angular/base-mobile/src/app/features/about/licence-details/licence-details.component.ts +7 -0
  98. package/lib/skeletons/_angular/base-mobile/src/app/features/about/opensource-licences/opensource-licences.component.html +11 -0
  99. package/lib/skeletons/_angular/base-mobile/src/app/features/about/opensource-licences/opensource-licences.component.ts +31 -0
  100. package/lib/skeletons/_angular/base-mobile/src/app/features/about/privacy-statement/privacy-statement.component.html +11 -0
  101. package/lib/skeletons/_angular/base-mobile/src/app/features/about/privacy-statement/privacy-statement.component.ts +103 -0
  102. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home-routing.module.ts +15 -0
  103. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.component.html +11 -0
  104. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.component.ts +9 -0
  105. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.module.ts +18 -0
  106. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page1/page1.component.html +11 -0
  107. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page1/page1.component.ts +8 -0
  108. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page2/page2.component.html +11 -0
  109. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page2/page2.component.ts +8 -0
  110. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1-routing.module.ts +18 -0
  111. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.component.html +15 -0
  112. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.component.ts +17 -0
  113. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.module.ts +21 -0
  114. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2-routing.module.ts +16 -0
  115. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.component.html +11 -0
  116. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.component.ts +7 -0
  117. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.module.ts +17 -0
  118. package/lib/skeletons/_angular/base-mobile/src/app/shared/shared.module.ts +16 -0
  119. package/lib/skeletons/_angular/base-mobile/src/app/shared/testing/router.mock.ts +18 -0
  120. package/lib/skeletons/_angular/base-mobile/src/assets/docs/pdf-test.pdf +0 -0
  121. package/lib/skeletons/_angular/base-mobile/src/assets/i18n/en.json +25 -0
  122. package/lib/skeletons/_angular/base-mobile/src/assets/i18n/es.json +24 -0
  123. package/lib/skeletons/_angular/base-mobile/src/assets/i18n/fr.json +25 -0
  124. package/lib/skeletons/_angular/base-mobile/src/assets/i18n/tr.json +25 -0
  125. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-1024.png +0 -0
  126. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-114.png +0 -0
  127. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-120.png +0 -0
  128. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-128.png +0 -0
  129. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-144.png +0 -0
  130. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-152.png +0 -0
  131. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-16.png +0 -0
  132. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-180.png +0 -0
  133. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-192.png +0 -0
  134. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-32.png +0 -0
  135. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-36.png +0 -0
  136. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-384.png +0 -0
  137. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-48.png +0 -0
  138. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-512.png +0 -0
  139. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-57.png +0 -0
  140. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-60.png +0 -0
  141. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-72.png +0 -0
  142. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-76.png +0 -0
  143. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-96.png +0 -0
  144. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1125-2436.png +0 -0
  145. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1170-2532.png +0 -0
  146. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1179-2556.png +0 -0
  147. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1242-2208.png +0 -0
  148. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1242-2688.png +0 -0
  149. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1284-2778.png +0 -0
  150. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1290-2796.png +0 -0
  151. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1488-2266.png +0 -0
  152. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1536-2048.png +0 -0
  153. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1620-2160.png +0 -0
  154. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1640-2360.png +0 -0
  155. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1668-2224.png +0 -0
  156. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1668-2388.png +0 -0
  157. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-2048-2732.png +0 -0
  158. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-640-1136.png +0 -0
  159. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-750-1334.png +0 -0
  160. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-828-1792.png +0 -0
  161. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1125-2436.png +0 -0
  162. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1170-2532.png +0 -0
  163. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1179-2556.png +0 -0
  164. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1242-2208.png +0 -0
  165. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1242-2688.png +0 -0
  166. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1284-2778.png +0 -0
  167. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1290-2796.png +0 -0
  168. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1488-2266.png +0 -0
  169. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1536-2048.png +0 -0
  170. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1620-2160.png +0 -0
  171. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1640-2360.png +0 -0
  172. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1668-2224.png +0 -0
  173. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1668-2388.png +0 -0
  174. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-2048-2732.png +0 -0
  175. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-640-1136.png +0 -0
  176. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-750-1334.png +0 -0
  177. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-828-1792.png +0 -0
  178. package/lib/skeletons/_angular/base-mobile/src/assets/images/app-icon.svg +10 -0
  179. package/lib/skeletons/_angular/base-mobile/src/config/global.ts +39 -0
  180. package/lib/skeletons/_angular/base-mobile/src/config/index.ts +8 -0
  181. package/lib/skeletons/_angular/base-mobile/src/config/modules.ts +7 -0
  182. package/lib/skeletons/_angular/base-mobile/src/index.html +76 -0
  183. package/lib/skeletons/_angular/base-mobile/src/main.ts +23 -0
  184. package/lib/skeletons/_angular/base-mobile/src/manifest.webmanifest +66 -0
  185. package/lib/skeletons/_angular/base-mobile/src/tsconfig.app.json +20 -0
  186. package/lib/skeletons/_angular/base-mobile/tsconfig.json +27 -0
  187. package/lib/skeletons/_angular/options/ecl-ec/angular.json +181 -0
  188. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.html +237 -0
  189. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.ts +65 -0
  190. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.config.ts +84 -0
  191. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/home/home.component.html +71 -0
  192. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/home/home.component.ts +20 -0
  193. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page1/page1.component.html +1 -0
  194. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page1/page1.component.ts +7 -0
  195. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page2/page2.component.html +1 -0
  196. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page2/page2.component.ts +7 -0
  197. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/module1.component.html +1 -0
  198. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/module1.component.ts +7 -0
  199. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module2/module2.component.html +1 -0
  200. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module2/module2.component.ts +7 -0
  201. package/lib/skeletons/_angular/options/ecl-ec/src/config/global.ts +23 -0
  202. package/lib/skeletons/_angular/options/ecl-eu/angular.json +181 -0
  203. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.html +203 -0
  204. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.ts +65 -0
  205. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.config.ts +84 -0
  206. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/home/home.component.html +71 -0
  207. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/home/home.component.ts +20 -0
  208. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page1/page1.component.html +1 -0
  209. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page1/page1.component.ts +7 -0
  210. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page2/page2.component.html +1 -0
  211. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page2/page2.component.ts +7 -0
  212. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/module1.component.html +1 -0
  213. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/module1.component.ts +7 -0
  214. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module2/module2.component.html +1 -0
  215. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module2/module2.component.ts +7 -0
  216. package/lib/skeletons/_angular/options/ecl-eu/src/app/shared/shared.module.ts +15 -0
  217. package/lib/skeletons/_angular/options/ecl-eu/src/config/global.ts +23 -0
  218. package/lib/skeletons/_angular/options/pnpm/package.json +72 -0
  219. package/lib/skeletons/web-maven/package.json +17 -0
  220. package/lib/skeletons/web-maven/pom.xml +55 -0
  221. package/lib/skeletons/web-maven/src/main/java/eu/europa/ec/digit/eui/angular2clistarter/servlet/SpringWebApplicationInitializer.java +22 -0
  222. package/lib/skeletons/web-maven/src/main/java/eu/europa/ec/digit/eui/angular2clistarter/spring/SpringRestConfiguration.java +24 -0
  223. package/lib/skeletons/web-maven/src/main/java/eu/europa/ec/digit/eui/angular2clistarter/spring/rest/UserDetailsResource.java +23 -0
  224. package/lib/skeletons/web-maven/src/main/resources/ecas-config-application-name.xml +7 -0
  225. package/lib/skeletons/web-maven/src/main/webapp/WEB-INF/dispatcher-servlet.xml +11 -0
  226. package/lib/skeletons/web-maven/src/main/webapp/WEB-INF/web.xml +38 -0
  227. package/lib/skeletons/web-maven/src/main/webapp/WEB-INF/weblogic.xml +16 -0
  228. package/lib/skeletons/web-maven/src/main/webapp/index.jsp +30 -0
  229. package/lib/skeletons/web-spring-boot/myapp-web/pom.xml +83 -0
  230. package/lib/skeletons/web-spring-boot/myapp-web-rest/pom.xml +83 -0
  231. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/MyappApplication.java +46 -0
  232. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/domain/Address.java +65 -0
  233. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/domain/Building.java +44 -0
  234. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/repositories/BuildingRepository.java +11 -0
  235. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/BuildingResource.java +26 -0
  236. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/SwaggerConfig.java +16 -0
  237. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/support/HateoasPageableHandlerMethodArgumentResolver.java +45 -0
  238. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/support/HypermediaSupport.java +25 -0
  239. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/support/PageJsonSerializer.java +17 -0
  240. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/CachingPreventionFilter.java +29 -0
  241. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/CsrfPreventionFilter.java +35 -0
  242. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/FakeAuthenticationFilter.java +372 -0
  243. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/SecurityConfig.java +47 -0
  244. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/services/BuildingSearchCriteria.java +26 -0
  245. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/services/BuildingService.java +10 -0
  246. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/services/BuildingServiceImpl.java +26 -0
  247. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/resources/application.properties +0 -0
  248. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/resources/data.sql +11 -0
  249. package/lib/skeletons/web-spring-boot/pom.xml +30 -0
  250. package/lib/utils.js +217 -0
  251. package/package.json +10 -13
  252. package/sonar-project.properties +14 -0
@@ -0,0 +1,7 @@
1
+ import { Component } from '@angular/core';
2
+
3
+ @Component({
4
+ templateUrl: './module2.component.html',
5
+ standalone: true,
6
+ })
7
+ export class Module2Component {}
@@ -0,0 +1,15 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { RouterModule } from '@angular/router';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+
6
+ const MODULES = [
7
+ RouterModule,
8
+ TranslateModule,
9
+ CommonModule,
10
+ ];
11
+ @NgModule({
12
+ imports: [...MODULES],
13
+ exports: [...MODULES],
14
+ })
15
+ export class SharedModule {}
@@ -0,0 +1,23 @@
1
+ import { GlobalConfig } from '@eui/core';
2
+
3
+ export const GLOBAL: GlobalConfig = {
4
+ appTitle: 'CSDR-app',
5
+ i18n: {
6
+ i18nService: {
7
+ defaultLanguage: 'en',
8
+ languages: ['en', 'fr'],
9
+ },
10
+ i18nLoader: {
11
+ i18nFolders: ['i18n-eui', 'i18n-ecl', 'i18n'],
12
+ },
13
+ },
14
+ user: {
15
+ defaultUserPreferences: {
16
+ dashboard: { },
17
+ lang: 'en',
18
+ },
19
+ },
20
+ eui: {
21
+ theme: 'eu',
22
+ },
23
+ };
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "eui-angular-app",
3
+ "version": "21.0.0-alpha.40",
4
+ "license": "EUPL-1.1",
5
+ "scripts": {
6
+ "ng": "ng",
7
+ "start-mock-server": "nodemon --watch ./mock ./mock/server.js",
8
+ "start-serve": "eui-cli serve-app --configuration=proxy-mock",
9
+ "start": "npm-run-all --parallel start-mock-server start-serve",
10
+ "start-proxy": "eui-cli serve-app --configuration=proxy",
11
+ "start-local": "eui-cli serve-app",
12
+ "build": "eui-cli build-app",
13
+ "build-dev": "eui-cli build-app --configuration=development --configEnvTarget=dev",
14
+ "build-prod": "eui-cli build-app --configuration=production-optimized --configEnvTarget=prod --skipLint --skipTest",
15
+ "app:inject-config": "eui-cli inject-config-app",
16
+ "generate-changelog": "eui-cli generate-changelog",
17
+ "generate-sprite": "eui-cli generate-sprite"
18
+ },
19
+ "private": true,
20
+ "dependencies": {
21
+ "@angular/animations": "21.0.0-rc.0",
22
+ "@angular/common": "21.0.0-rc.0",
23
+ "@angular/compiler": "21.0.0-rc.0",
24
+ "@angular/core": "21.0.0-rc.0",
25
+ "@angular/forms": "21.0.0-rc.0",
26
+ "@angular/platform-browser": "21.0.0-rc.0",
27
+ "@angular/platform-browser-dynamic": "21.0.0-rc.0",
28
+ "@angular/router": "21.0.0-rc.0",
29
+ "@angular/elements": "21.0.0-rc.0",
30
+ "@angular/language-service": "21.0.0-rc.0",
31
+ "@angular/service-worker": "21.0.0-rc.0",
32
+ "@angular/cdk": "21.0.0-rc.0",
33
+ "@angular/material": "21.0.0-rc.0",
34
+ "@angular/material-moment-adapter": "21.0.0-rc.0",
35
+ "rxjs": "7.8.2",
36
+ "tslib": "2.8.1",
37
+ "zone.js": "0.15.1",
38
+ "@types/lodash": "4.17.20",
39
+ "intl": "1.2.5",
40
+ "deepmerge-ts": "7.1.5",
41
+ "@ngx-translate/core": "15.0.0",
42
+ "@ngx-translate/http-loader": "8.0.0",
43
+ "reselect": "5.1.1",
44
+ "ngx-mask": "20.0.3",
45
+ "cleave.js": "1.6.0",
46
+ "hammerjs": "2.0.8",
47
+ "pikaday": "1.8.2",
48
+ "lodash-es": "4.17.21",
49
+ "localforage": "1.10.0",
50
+ "@eui/base": "21.0.0-alpha.40",
51
+ "@eui/core": "21.0.0-alpha.40",
52
+ "@eui/styles": "21.0.0-alpha.40",
53
+ "@eui/components": "21.0.0-alpha.40",
54
+ "@eui/ecl": "21.0.0-alpha.40",
55
+ "@eui/showcase": "21.0.0-alpha.40"
56
+ },
57
+ "devDependencies": {
58
+ "@angular/build": "21.0.0-rc.0",
59
+ "@angular/compiler-cli": "21.0.0-rc.0",
60
+ "@angular/cli": "21.0.0-rc.0",
61
+ "@eui/cli": "21.0.0-alpha.40",
62
+ "ng-packagr": "21.0.0-rc.0",
63
+ "typescript": "5.9.2",
64
+ "npm-run-all": "4.1.5",
65
+ "json-server": "1.0.0-beta.3",
66
+ "nodemon": "3.1.10",
67
+ "lowdb": "1.0.0",
68
+ "body-parser": "2.2.0",
69
+ "express": "5.1.0",
70
+ "uuid": "13.0.0"
71
+ }
72
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "angular-app-web-maven-scripts",
3
+ "version": "0.1.0",
4
+ "license": "EUPL-1.1",
5
+ "description": "eUI JEE Spring Maven module starter app scripts",
6
+ "scripts": {
7
+ "angular-install": "cd src/main/angular && yarn install",
8
+ "angular-build": "cd src/main/angular && npm run build",
9
+ "angular-build-prod": "cd src/main/angular && npm run build-prod",
10
+ "build": "npm run angular-build && mvn clean package",
11
+ "build-prod": "npm run angular-build-prod && mvn clean package",
12
+ "start": "cd src/main/angular && npm start",
13
+ "start-proxy": "cd src/main/angular && npm run start-proxy"
14
+ },
15
+ "private": true,
16
+ "repository": {}
17
+ }
@@ -0,0 +1,55 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
+ <modelVersion>4.0.0</modelVersion>
4
+
5
+ <groupId>eu.europa.ec.digit</groupId>
6
+ <artifactId>application-name</artifactId>
7
+ <version>0.1.0-SNAPSHOT</version>
8
+ <packaging>war</packaging>
9
+
10
+ <dependencies>
11
+ <dependency>
12
+ <groupId>org.springframework</groupId>
13
+ <artifactId>spring-webmvc</artifactId>
14
+ <version>6.0.10</version>
15
+ </dependency>
16
+ <dependency>
17
+ <groupId>eu.europa.ec.digit.uxatec.eui</groupId>
18
+ <artifactId>eui-angular2-servlet</artifactId>
19
+ <version>1.0.0</version>
20
+ </dependency>
21
+ <dependency>
22
+ <groupId>eu.europa.ec.digit.iam.ecas.client</groupId>
23
+ <artifactId>ecas-weblogic-10.3-authprovider</artifactId>
24
+ <version>4.10.1</version>
25
+ <scope>provided</scope>
26
+ </dependency>
27
+ <!-- This Jackson dependency is only necessary for older versions of WebLogic: -->
28
+ <!--
29
+ <dependency>
30
+ <groupId>com.fasterxml.jackson.core</groupId>
31
+ <artifactId>jackson-databind</artifactId>
32
+ <version>2.2.3</version>
33
+ </dependency>
34
+ -->
35
+ </dependencies>
36
+
37
+ <build>
38
+ <plugins>
39
+ <plugin>
40
+ <groupId>org.apache.maven.plugins</groupId>
41
+ <artifactId>maven-war-plugin</artifactId>
42
+ <version>3.4.0</version>
43
+ <configuration>
44
+ <failOnMissingWebXml>false</failOnMissingWebXml>
45
+ <webResources>
46
+ <resource>
47
+ <directory>src/main/angular/dist</directory>
48
+ </resource>
49
+ </webResources>
50
+ </configuration>
51
+ </plugin>
52
+ </plugins>
53
+ </build>
54
+
55
+ </project>
@@ -0,0 +1,22 @@
1
+ package eu.europa.ec.digit.eui.angular2clistarter.servlet;
2
+
3
+ import eu.europa.ec.digit.eui.angular2clistarter.spring.SpringRestConfiguration;
4
+ import org.springframework.web.WebApplicationInitializer;
5
+ import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
6
+
7
+ public class SpringWebApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer implements WebApplicationInitializer {
8
+ @Override
9
+ protected Class<?>[] getRootConfigClasses() {
10
+ return new Class[] { SpringRestConfiguration.class };
11
+ }
12
+
13
+ @Override
14
+ protected Class<?>[] getServletConfigClasses() {
15
+ return new Class[] { SpringRestConfiguration.class };
16
+ }
17
+
18
+ @Override
19
+ protected String[] getServletMappings() {
20
+ return new String[] { "/api/*" };
21
+ }
22
+ }
@@ -0,0 +1,24 @@
1
+ package eu.europa.ec.digit.eui.angular2clistarter.spring;
2
+
3
+ import org.springframework.context.annotation.Bean;
4
+ import org.springframework.context.annotation.ComponentScan;
5
+ import org.springframework.context.annotation.Configuration;
6
+ import org.springframework.web.servlet.config.annotation.CorsRegistry;
7
+ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
8
+ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
9
+ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
10
+
11
+ @Configuration
12
+ @EnableWebMvc
13
+ @ComponentScan(basePackages = "eu.europa.ec.digit.eui.angular2clistarter.spring.rest")
14
+ public class SpringRestConfiguration extends WebMvcConfigurerAdapter {
15
+ @Bean
16
+ public WebMvcConfigurer corsConfigurer() {
17
+ return new WebMvcConfigurerAdapter() {
18
+ @Override
19
+ public void addCorsMappings(CorsRegistry registry) {
20
+ registry.addMapping("/**").allowedOrigins("*").allowedMethods("*").allowedHeaders("*").allowCredentials(true);
21
+ }
22
+ };
23
+ }
24
+ }
@@ -0,0 +1,23 @@
1
+ package eu.europa.ec.digit.eui.angular2clistarter.spring.rest;
2
+
3
+ import eu.cec.digit.ecas.client.jaas.UserDetailsAccessible;
4
+ import org.springframework.web.bind.annotation.RequestMapping;
5
+ import org.springframework.web.bind.annotation.RequestMethod;
6
+ import org.springframework.web.bind.annotation.RestController;
7
+
8
+ import javax.servlet.http.HttpServletRequest;
9
+ import java.security.Principal;
10
+
11
+ @RestController
12
+ @RequestMapping("user-details")
13
+ public class UserDetailsResource {
14
+ @RequestMapping(method = RequestMethod.GET)
15
+ public UserDetailsAccessible getIdentity(HttpServletRequest request) {
16
+ Principal principal = request.getUserPrincipal();
17
+ if (principal instanceof UserDetailsAccessible) {
18
+ return (UserDetailsAccessible) principal;
19
+ } else {
20
+ throw new RuntimeException("ECAS needs to be configured to expose the UserDetails: set the property requestingUserDetails (eu.cec.digit.ecas.client.filter.requestingUserDetails) to true.");
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <client-config xmlns="https://ecas.ec.europa.eu/cas/schemas/client-config/ecas/">
3
+ <requestingUserDetails>true</requestingUserDetails>
4
+ <redirectionInterceptors>
5
+ <redirectionInterceptor>eu.cec.digit.ecas.client.http.ajax.JsonAjaxRedirectionInterceptor</redirectionInterceptor>
6
+ </redirectionInterceptors>
7
+ </client-config>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <beans xmlns="http://www.springframework.org/schema/beans"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xmlns:mvc="http://www.springframework.org/schema/mvc"
5
+ xmlns:context="http://www.springframework.org/schema/context"
6
+ xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
7
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
8
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
9
+ <!-- Intentionally empty. -->
10
+ <!-- This file is here to work-around a bug in Spring + Weblogic where a default XML-based dispatcher servlet is expecting a /WEB-INF/dispatcher-servlet.xml file. -->
11
+ </beans>
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
3
+ <!-- This is an example security constraint for a resource that requires only authentication but not authorization: -->
4
+ <security-constraint>
5
+ <web-resource-collection>
6
+ <web-resource-name>protected</web-resource-name>
7
+ <url-pattern>/*</url-pattern>
8
+ <http-method-omission>OPTIONS</http-method-omission>
9
+ </web-resource-collection>
10
+ <auth-constraint>
11
+ <description>
12
+ Requires users to be authenticated but
13
+ does not require them to be authorized.
14
+ </description>
15
+ <role-name>*</role-name>
16
+ </auth-constraint>
17
+ <user-data-constraint>
18
+ <description>
19
+ Encryption is not required for this area.
20
+ </description>
21
+ <transport-guarantee>NONE</transport-guarantee>
22
+ </user-data-constraint>
23
+ </security-constraint>
24
+
25
+ <welcome-file-list>
26
+ <welcome-file>/index.jsp</welcome-file>
27
+ </welcome-file-list>
28
+
29
+ <mime-mapping>
30
+ <extension>woff2</extension>
31
+ <mime-type>font/woff2</mime-type>
32
+ </mime-mapping>
33
+
34
+ <mime-mapping>
35
+ <extension>json</extension>
36
+ <mime-type>application/json</mime-type>
37
+ </mime-mapping>
38
+ </web-app>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3.0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.8/weblogic-web-app.xsd">
5
+
6
+ <session-descriptor>
7
+ <cookie-path>/application-name</cookie-path>
8
+ </session-descriptor>
9
+
10
+ <!-- We want to allow some resources to be accessed by authenticated users who do not possess any role -->
11
+ <container-descriptor>
12
+ <allow-all-roles>true</allow-all-roles>
13
+ </container-descriptor>
14
+
15
+ <context-root>/application-name</context-root>
16
+ </weblogic-web-app>
@@ -0,0 +1,30 @@
1
+ <%@ page pageEncoding="UTF-8" import="java.io.File" %>
2
+ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3
+ <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
4
+ <%
5
+ try {
6
+ File indexFile = new File(request.getServletContext().getResource("/index.html").getFile());
7
+ long lastModified = indexFile.lastModified();
8
+ // Ignore the milliseconds; there may be small differences because the time that is stored by the browser is in seconds (apparently):
9
+ if ((lastModified - request.getDateHeader("If-Modified-Since")) / 1000 <= 0) {
10
+ response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
11
+ } else {
12
+ response.setDateHeader("Last-Modified", lastModified);
13
+ %>
14
+ <c:set var="baseHref" value="${fn:substring(url, 0, fn:length(url) - fn:length(pageContext.request.requestURI))}${pageContext.request.contextPath}" />
15
+ <c:set var="srcAttribute">src="${baseHref}/</c:set>
16
+ <c:set var="hrefAttribute">href="${baseHref}/</c:set>
17
+ <c:import url="index.html" var="html" charEncoding="UTF-8" />
18
+ <c:set var="html" value="${fn:replace(html, '<base href=\"/\">', '<base href=\"\">')}" />
19
+ <c:set var="html" value="${fn:replace(html, 'src=\"', srcAttribute)}" />
20
+ <c:set var="html" value="${fn:replace(html, 'href=\"', hrefAttribute)}" />
21
+ ${html}
22
+ <%
23
+ }
24
+ } catch (Exception e) {
25
+ %>
26
+ No index.html file present.<br/>
27
+ You may have forgotten to build the Angular application before deploying to the server...
28
+ <%
29
+ }
30
+ %>
@@ -0,0 +1,83 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
+ <modelVersion>4.0.0</modelVersion>
4
+
5
+ <artifactId>@app.name@-web</artifactId>
6
+ <version>0.1.0-SNAPSHOT</version>
7
+ <packaging>war</packaging>
8
+
9
+ <parent>
10
+ <groupId>@app.group.id@.@app.name@</groupId>
11
+ <artifactId>@app.name@</artifactId>
12
+ <version>0.1.0-SNAPSHOT</version>
13
+ </parent>
14
+
15
+ <properties>
16
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
17
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
18
+ <java.version>21</java.version>
19
+ </properties>
20
+
21
+ <dependencies>
22
+ <dependency>
23
+ <groupId>javax.servlet</groupId>
24
+ <artifactId>javax.servlet-api</artifactId>
25
+ <version>4.0.1</version>
26
+ <scope>provided</scope>
27
+ </dependency>
28
+ </dependencies>
29
+
30
+ <build>
31
+ <plugins>
32
+ <plugin>
33
+ <groupId>org.codehaus.mojo</groupId>
34
+ <artifactId>exec-maven-plugin</artifactId>
35
+ <version>3.1.0</version>
36
+ <executions>
37
+ <execution>
38
+ <id>npm_package_install</id>
39
+ <phase>generate-sources</phase>
40
+ <goals>
41
+ <goal>exec</goal>
42
+ </goals>
43
+ <configuration>
44
+ <executable>yarn</executable>
45
+ <workingDirectory>src/main/angular</workingDirectory>
46
+ </configuration>
47
+ </execution>
48
+ <execution>
49
+ <id>ng_build</id>
50
+ <phase>generate-sources</phase>
51
+ <goals>
52
+ <goal>exec</goal>
53
+ </goals>
54
+ <configuration>
55
+ <executable>yarn</executable>
56
+ <workingDirectory>src/main/angular</workingDirectory>
57
+ <arguments>
58
+ <argument>build-prod</argument>
59
+ <argument>--prod</argument>
60
+ <argument>--aot</argument>
61
+ <argument>--base-href</argument>
62
+ <argument>/@app.name@/</argument>
63
+ </arguments>
64
+ </configuration>
65
+ </execution>
66
+ </executions>
67
+ </plugin>
68
+
69
+ <plugin>
70
+ <groupId>org.apache.maven.plugins</groupId>
71
+ <artifactId>maven-war-plugin</artifactId>
72
+ <version>3.4.0</version>
73
+ <configuration>
74
+ <webResources>
75
+ <resource>
76
+ <directory>src/main/angular/dist</directory>
77
+ </resource>
78
+ </webResources>
79
+ </configuration>
80
+ </plugin>
81
+ </plugins>
82
+ </build>
83
+ </project>
@@ -0,0 +1,83 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
+ <modelVersion>4.0.0</modelVersion>
4
+
5
+ <artifactId>@app.name@-web-rest</artifactId>
6
+ <version>0.1.0-SNAPSHOT</version>
7
+ <packaging>jar</packaging>
8
+
9
+ <parent>
10
+ <groupId>@app.group.id@.@app.name@</groupId>
11
+ <artifactId>@app.name@</artifactId>
12
+ <version>0.1.0-SNAPSHOT</version>
13
+ </parent>
14
+
15
+ <properties>
16
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
17
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
18
+ <java.version>21</java.version>
19
+ </properties>
20
+
21
+ <dependencies>
22
+ <dependency>
23
+ <groupId>org.springdoc</groupId>
24
+ <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
25
+ <version>2.4.0</version>
26
+ </dependency>
27
+ <dependency>
28
+ <groupId>org.springframework.boot</groupId>
29
+ <artifactId>spring-boot-starter-web</artifactId>
30
+ <exclusions>
31
+ <exclusion>
32
+ <groupId>org.springframework.boot</groupId>
33
+ <artifactId>spring-boot-starter-tomcat</artifactId>
34
+ </exclusion>
35
+ </exclusions>
36
+ </dependency>
37
+ <!-- Add tomcat only if I want to run directly -->
38
+ <dependency>
39
+ <groupId>org.springframework.boot</groupId>
40
+ <artifactId>spring-boot-starter-tomcat</artifactId>
41
+ <scope>provided</scope>
42
+ </dependency>
43
+ <dependency>
44
+ <groupId>org.springframework.boot</groupId>
45
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
46
+ <exclusions>
47
+ <exclusion>
48
+ <groupId>org.apache.tomcat</groupId>
49
+ <artifactId>tomcat-jdbc</artifactId>
50
+ </exclusion>
51
+ </exclusions>
52
+ </dependency>
53
+ <dependency>
54
+ <groupId>org.springframework.security</groupId>
55
+ <artifactId>spring-security-web</artifactId>
56
+ <version>6.4.4</version>
57
+ </dependency>
58
+ <dependency>
59
+ <groupId>org.springframework.security</groupId>
60
+ <artifactId>spring-security-config</artifactId>
61
+ <version>6.4.4</version>
62
+ </dependency>
63
+ <dependency>
64
+ <groupId>com.h2database</groupId>
65
+ <artifactId>h2</artifactId>
66
+ <scope>runtime</scope>
67
+ </dependency>
68
+ <dependency>
69
+ <groupId>org.springdoc</groupId>
70
+ <artifactId>springdoc-openapi-starter-common</artifactId>
71
+ <version>2.8.5</version>
72
+ </dependency>
73
+ </dependencies>
74
+
75
+ <build>
76
+ <plugins>
77
+ <plugin>
78
+ <groupId>org.springframework.boot</groupId>
79
+ <artifactId>spring-boot-maven-plugin</artifactId>
80
+ </plugin>
81
+ </plugins>
82
+ </build>
83
+ </project>
@@ -0,0 +1,46 @@
1
+ package @app.group.id@.@app.name@;
2
+
3
+ import @app.group.id@.@app.name@.resources.support.HateoasPageableHandlerMethodArgumentResolver;
4
+ import @app.group.id@.@app.name@.resources.support.PageJsonSerializer;
5
+ import org.springframework.boot.SpringApplication;
6
+ import org.springframework.boot.autoconfigure.SpringBootApplication;
7
+ import org.springframework.boot.builder.SpringApplicationBuilder;
8
+ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
9
+ import org.springframework.context.annotation.Bean;
10
+ import org.springframework.data.domain.Page;
11
+ import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
12
+ import org.springframework.web.WebApplicationInitializer;
13
+ import org.springframework.web.method.support.HandlerMethodArgumentResolver;
14
+ import org.springframework.web.servlet.config.annotation.CorsRegistry;
15
+ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
16
+
17
+ import java.util.List;
18
+
19
+ @SpringBootApplication
20
+ public class MyappApplication extends SpringBootServletInitializer implements WebApplicationInitializer, WebMvcConfigurer {
21
+ @Override
22
+ protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
23
+ return application.sources(MyappApplication.class);
24
+ }
25
+
26
+ @Override
27
+ public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
28
+ argumentResolvers.add(new HateoasPageableHandlerMethodArgumentResolver());
29
+ }
30
+
31
+ @Override
32
+ public void addCorsMappings(CorsRegistry registry) {
33
+ registry.addMapping("/**").allowedOrigins("*").allowedMethods("*").allowedHeaders("*").exposedHeaders("Content-Range").allowCredentials(true);
34
+ }
35
+
36
+ @Bean
37
+ public Jackson2ObjectMapperBuilder objectMapperBuilder() {
38
+ Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
39
+ builder.serializerByType(Page.class, new PageJsonSerializer());
40
+ return builder;
41
+ }
42
+
43
+ public static void main(String[] args) {
44
+ SpringApplication.run(MyappApplication.class, args);
45
+ }
46
+ }
@@ -0,0 +1,65 @@
1
+ package @app.group.id@.@app.name@.domain;
2
+
3
+ import jakarta.persistence.*;
4
+
5
+ @Entity(name = "t_address")
6
+ public class Address {
7
+ @Id
8
+ @SequenceGenerator(name="address_generator", sequenceName="seq_address")
9
+ @GeneratedValue(generator = "address_generator")
10
+ @Column(name = "address_id", nullable = false)
11
+ private Long addressId;
12
+
13
+ @Column(nullable = false)
14
+ private String street;
15
+
16
+ @Column(name = "postal_code", nullable = false)
17
+ private String postalCode;
18
+
19
+ @Column(nullable = false)
20
+ private String city;
21
+
22
+ @Column(nullable = false)
23
+ private String country;
24
+
25
+
26
+ public Long getAddressId() {
27
+ return addressId;
28
+ }
29
+
30
+ public void setAddressId(Long addressId) {
31
+ this.addressId = addressId;
32
+ }
33
+
34
+ public String getStreet() {
35
+ return street;
36
+ }
37
+
38
+ public void setStreet(String street) {
39
+ this.street = street;
40
+ }
41
+
42
+ public String getPostalCode() {
43
+ return postalCode;
44
+ }
45
+
46
+ public void setPostalCode(String postalCode) {
47
+ this.postalCode = postalCode;
48
+ }
49
+
50
+ public String getCity() {
51
+ return city;
52
+ }
53
+
54
+ public void setCity(String city) {
55
+ this.city = city;
56
+ }
57
+
58
+ public String getCountry() {
59
+ return country;
60
+ }
61
+
62
+ public void setCountry(String country) {
63
+ this.country = country;
64
+ }
65
+ }