@eui/cli 21.0.0-alpha.3 → 21.0.0-alpha.5

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 (289) hide show
  1. package/.version.properties +1 -0
  2. package/bin/eui-cli.js +47 -0
  3. package/lib/build.js +155 -0
  4. package/lib/cli.js +123 -0
  5. package/lib/config.js +58 -0
  6. package/lib/generators.js +75 -0
  7. package/lib/install.js +45 -0
  8. package/lib/maven-build/build.xml +115 -0
  9. package/lib/maven-build/lib/ant-contrib-20061014.jar +0 -0
  10. package/lib/maven-build/pom.xml +64 -0
  11. package/lib/post-build.js +33 -0
  12. package/lib/skeletons/_angular/base/.browserslistrc +16 -0
  13. package/lib/skeletons/_angular/base/.editorconfig +16 -0
  14. package/lib/skeletons/_angular/base/.euirc.json +8 -0
  15. package/lib/skeletons/_angular/base/README.md +26 -0
  16. package/lib/skeletons/_angular/base/angular.json +158 -0
  17. package/lib/skeletons/_angular/base/gitignore_TO_REPLACE +51 -0
  18. package/lib/skeletons/_angular/base/mock/app/models/user.js +6 -0
  19. package/lib/skeletons/_angular/base/mock/app/routes/index.js +5 -0
  20. package/lib/skeletons/_angular/base/mock/app/routes/user_routes.js +44 -0
  21. package/lib/skeletons/_angular/base/mock/db/db.json +10 -0
  22. package/lib/skeletons/_angular/base/mock/server.js +23 -0
  23. package/lib/skeletons/_angular/base/package.json +38 -0
  24. package/lib/skeletons/_angular/base/proxy-mock.conf.json +6 -0
  25. package/lib/skeletons/_angular/base/proxy.conf.json +6 -0
  26. package/lib/skeletons/_angular/base/src/.eslintrc.json +121 -0
  27. package/lib/skeletons/_angular/base/src/app/app-starter.service.spec.ts +68 -0
  28. package/lib/skeletons/_angular/base/src/app/app-starter.service.ts +68 -0
  29. package/lib/skeletons/_angular/base/src/app/app.component.html +35 -0
  30. package/lib/skeletons/_angular/base/src/app/app.component.spec.ts +60 -0
  31. package/lib/skeletons/_angular/base/src/app/app.component.ts +35 -0
  32. package/lib/skeletons/_angular/base/src/app/app.config.ts +84 -0
  33. package/lib/skeletons/_angular/base/src/app/app.routes.ts +9 -0
  34. package/lib/skeletons/_angular/base/src/app/features/home/home.component.html +41 -0
  35. package/lib/skeletons/_angular/base/src/app/features/home/home.component.ts +17 -0
  36. package/lib/skeletons/_angular/base/src/app/features/home/home.routes.ts +6 -0
  37. package/lib/skeletons/_angular/base/src/app/features/module1/components/page1/page1.component.html +7 -0
  38. package/lib/skeletons/_angular/base/src/app/features/module1/components/page1/page1.component.ts +10 -0
  39. package/lib/skeletons/_angular/base/src/app/features/module1/components/page2/page2.component.html +7 -0
  40. package/lib/skeletons/_angular/base/src/app/features/module1/components/page2/page2.component.ts +10 -0
  41. package/lib/skeletons/_angular/base/src/app/features/module1/module1.component.html +7 -0
  42. package/lib/skeletons/_angular/base/src/app/features/module1/module1.component.ts +10 -0
  43. package/lib/skeletons/_angular/base/src/app/features/module1/module1.routes.ts +10 -0
  44. package/lib/skeletons/_angular/base/src/app/features/module2/module2.component.html +7 -0
  45. package/lib/skeletons/_angular/base/src/app/features/module2/module2.component.ts +10 -0
  46. package/lib/skeletons/_angular/base/src/app/features/module2/module2.routes.ts +6 -0
  47. package/lib/skeletons/_angular/base/src/app/shared/testing/router.mock.ts +18 -0
  48. package/lib/skeletons/_angular/base/src/assets/config/env-json-config-dev.json +8 -0
  49. package/lib/skeletons/_angular/base/src/assets/config/env-json-config-prod.json +8 -0
  50. package/lib/skeletons/_angular/base/src/assets/config/env-json-config.json +7 -0
  51. package/lib/skeletons/_angular/base/src/assets/i18n/en.json +7 -0
  52. package/lib/skeletons/_angular/base/src/assets/i18n/fr.json +7 -0
  53. package/lib/skeletons/_angular/base/src/config/global.ts +33 -0
  54. package/lib/skeletons/_angular/base/src/config/index.ts +8 -0
  55. package/lib/skeletons/_angular/base/src/config/modules.ts +7 -0
  56. package/lib/skeletons/_angular/base/src/dummy.spec.ts +6 -0
  57. package/lib/skeletons/_angular/base/src/environments/environment.prod.ts +11 -0
  58. package/lib/skeletons/_angular/base/src/environments/environment.ts +15 -0
  59. package/lib/skeletons/_angular/base/src/favicon.ico +0 -0
  60. package/lib/skeletons/_angular/base/src/index.html +20 -0
  61. package/lib/skeletons/_angular/base/src/karma.conf.js +7 -0
  62. package/lib/skeletons/_angular/base/src/main.ts +20 -0
  63. package/lib/skeletons/_angular/base/src/styles.scss +1 -0
  64. package/lib/skeletons/_angular/base/src/tsconfig.app.json +18 -0
  65. package/lib/skeletons/_angular/base/src/tsconfig.spec.json +14 -0
  66. package/lib/skeletons/_angular/base/tsconfig.json +27 -0
  67. package/lib/skeletons/_angular/base-mobile/angular.json +156 -0
  68. package/lib/skeletons/_angular/base-mobile/ionic.config.json +5 -0
  69. package/lib/skeletons/_angular/base-mobile/ngsw-config.json +33 -0
  70. package/lib/skeletons/_angular/base-mobile/package.json +27 -0
  71. package/lib/skeletons/_angular/base-mobile/src/app/app-routing.module.ts +18 -0
  72. package/lib/skeletons/_angular/base-mobile/src/app/app-starter.service.ts +73 -0
  73. package/lib/skeletons/_angular/base-mobile/src/app/app.component.html +47 -0
  74. package/lib/skeletons/_angular/base-mobile/src/app/app.component.ts +81 -0
  75. package/lib/skeletons/_angular/base-mobile/src/app/app.config.ts +81 -0
  76. package/lib/skeletons/_angular/base-mobile/src/app/app.module.ts +44 -0
  77. package/lib/skeletons/_angular/base-mobile/src/app/core/components/.gitkeep +0 -0
  78. package/lib/skeletons/_angular/base-mobile/src/app/core/core.module.ts +89 -0
  79. package/lib/skeletons/_angular/base-mobile/src/app/core/reducers/index.ts +32 -0
  80. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about-routing.module.ts +45 -0
  81. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.component.html +70 -0
  82. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.component.ts +19 -0
  83. package/lib/skeletons/_angular/base-mobile/src/app/features/about/about.module.ts +30 -0
  84. package/lib/skeletons/_angular/base-mobile/src/app/features/about/change-log/changelog.component.html +11 -0
  85. package/lib/skeletons/_angular/base-mobile/src/app/features/about/change-log/changelog.component.ts +102 -0
  86. package/lib/skeletons/_angular/base-mobile/src/app/features/about/help-support/help-support.component.html +20 -0
  87. package/lib/skeletons/_angular/base-mobile/src/app/features/about/help-support/help-support.component.ts +75 -0
  88. package/lib/skeletons/_angular/base-mobile/src/app/features/about/legal-notice/legal-notice.component.html +12 -0
  89. package/lib/skeletons/_angular/base-mobile/src/app/features/about/legal-notice/legal-notice.component.ts +8 -0
  90. package/lib/skeletons/_angular/base-mobile/src/app/features/about/licence-details/licence-details.component.html +48 -0
  91. package/lib/skeletons/_angular/base-mobile/src/app/features/about/licence-details/licence-details.component.ts +7 -0
  92. package/lib/skeletons/_angular/base-mobile/src/app/features/about/opensource-licences/opensource-licences.component.html +11 -0
  93. package/lib/skeletons/_angular/base-mobile/src/app/features/about/opensource-licences/opensource-licences.component.ts +31 -0
  94. package/lib/skeletons/_angular/base-mobile/src/app/features/about/privacy-statement/privacy-statement.component.html +11 -0
  95. package/lib/skeletons/_angular/base-mobile/src/app/features/about/privacy-statement/privacy-statement.component.ts +103 -0
  96. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home-routing.module.ts +15 -0
  97. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.component.html +11 -0
  98. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.component.ts +9 -0
  99. package/lib/skeletons/_angular/base-mobile/src/app/features/home/home.module.ts +18 -0
  100. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page1/page1.component.html +11 -0
  101. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page1/page1.component.ts +8 -0
  102. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page2/page2.component.html +11 -0
  103. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/components/page2/page2.component.ts +8 -0
  104. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1-routing.module.ts +18 -0
  105. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.component.html +15 -0
  106. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.component.ts +17 -0
  107. package/lib/skeletons/_angular/base-mobile/src/app/features/module1/module1.module.ts +21 -0
  108. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2-routing.module.ts +16 -0
  109. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.component.html +11 -0
  110. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.component.ts +7 -0
  111. package/lib/skeletons/_angular/base-mobile/src/app/features/module2/module2.module.ts +17 -0
  112. package/lib/skeletons/_angular/base-mobile/src/app/shared/shared.module.ts +16 -0
  113. package/lib/skeletons/_angular/base-mobile/src/app/shared/testing/router.mock.ts +18 -0
  114. package/lib/skeletons/_angular/base-mobile/src/assets/docs/pdf-test.pdf +0 -0
  115. package/lib/skeletons/_angular/base-mobile/src/assets/i18n/en.json +25 -0
  116. package/lib/skeletons/_angular/base-mobile/src/assets/i18n/es.json +24 -0
  117. package/lib/skeletons/_angular/base-mobile/src/assets/i18n/fr.json +25 -0
  118. package/lib/skeletons/_angular/base-mobile/src/assets/i18n/tr.json +25 -0
  119. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-1024.png +0 -0
  120. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-114.png +0 -0
  121. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-120.png +0 -0
  122. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-128.png +0 -0
  123. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-144.png +0 -0
  124. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-152.png +0 -0
  125. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-16.png +0 -0
  126. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-180.png +0 -0
  127. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-192.png +0 -0
  128. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-32.png +0 -0
  129. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-36.png +0 -0
  130. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-384.png +0 -0
  131. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-48.png +0 -0
  132. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-512.png +0 -0
  133. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-57.png +0 -0
  134. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-60.png +0 -0
  135. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-72.png +0 -0
  136. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-76.png +0 -0
  137. package/lib/skeletons/_angular/base-mobile/src/assets/icons/app-icon-96.png +0 -0
  138. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1125-2436.png +0 -0
  139. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1170-2532.png +0 -0
  140. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1179-2556.png +0 -0
  141. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1242-2208.png +0 -0
  142. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1242-2688.png +0 -0
  143. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1284-2778.png +0 -0
  144. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1290-2796.png +0 -0
  145. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1488-2266.png +0 -0
  146. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1536-2048.png +0 -0
  147. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1620-2160.png +0 -0
  148. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1640-2360.png +0 -0
  149. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1668-2224.png +0 -0
  150. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-1668-2388.png +0 -0
  151. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-2048-2732.png +0 -0
  152. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-640-1136.png +0 -0
  153. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-750-1334.png +0 -0
  154. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-landscape-828-1792.png +0 -0
  155. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1125-2436.png +0 -0
  156. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1170-2532.png +0 -0
  157. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1179-2556.png +0 -0
  158. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1242-2208.png +0 -0
  159. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1242-2688.png +0 -0
  160. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1284-2778.png +0 -0
  161. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1290-2796.png +0 -0
  162. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1488-2266.png +0 -0
  163. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1536-2048.png +0 -0
  164. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1620-2160.png +0 -0
  165. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1640-2360.png +0 -0
  166. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1668-2224.png +0 -0
  167. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-1668-2388.png +0 -0
  168. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-2048-2732.png +0 -0
  169. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-640-1136.png +0 -0
  170. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-750-1334.png +0 -0
  171. package/lib/skeletons/_angular/base-mobile/src/assets/icons/apple-splash-portrait-828-1792.png +0 -0
  172. package/lib/skeletons/_angular/base-mobile/src/assets/images/app-icon.svg +10 -0
  173. package/lib/skeletons/_angular/base-mobile/src/config/global.ts +39 -0
  174. package/lib/skeletons/_angular/base-mobile/src/config/index.ts +8 -0
  175. package/lib/skeletons/_angular/base-mobile/src/config/modules.ts +7 -0
  176. package/lib/skeletons/_angular/base-mobile/src/index.html +76 -0
  177. package/lib/skeletons/_angular/base-mobile/src/main.ts +23 -0
  178. package/lib/skeletons/_angular/base-mobile/src/manifest.webmanifest +66 -0
  179. package/lib/skeletons/_angular/base-mobile/src/tsconfig.app.json +20 -0
  180. package/lib/skeletons/_angular/options/ecl-ec/angular.json +181 -0
  181. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.html +237 -0
  182. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.component.ts +65 -0
  183. package/lib/skeletons/_angular/options/ecl-ec/src/app/app.config.ts +84 -0
  184. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/home/home.component.html +71 -0
  185. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/home/home.component.ts +20 -0
  186. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page1/page1.component.html +1 -0
  187. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page1/page1.component.ts +7 -0
  188. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page2/page2.component.html +1 -0
  189. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/components/page2/page2.component.ts +7 -0
  190. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/module1.component.html +1 -0
  191. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module1/module1.component.ts +7 -0
  192. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module2/module2.component.html +1 -0
  193. package/lib/skeletons/_angular/options/ecl-ec/src/app/features/module2/module2.component.ts +7 -0
  194. package/lib/skeletons/_angular/options/ecl-ec/src/config/global.ts +23 -0
  195. package/lib/skeletons/_angular/options/ecl-eu/angular.json +181 -0
  196. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.html +203 -0
  197. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.component.ts +65 -0
  198. package/lib/skeletons/_angular/options/ecl-eu/src/app/app.config.ts +84 -0
  199. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/home/home.component.html +71 -0
  200. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/home/home.component.ts +20 -0
  201. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page1/page1.component.html +1 -0
  202. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page1/page1.component.ts +7 -0
  203. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page2/page2.component.html +1 -0
  204. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/components/page2/page2.component.ts +7 -0
  205. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/module1.component.html +1 -0
  206. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module1/module1.component.ts +7 -0
  207. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module2/module2.component.html +1 -0
  208. package/lib/skeletons/_angular/options/ecl-eu/src/app/features/module2/module2.component.ts +7 -0
  209. package/lib/skeletons/_angular/options/ecl-eu/src/app/shared/shared.module.ts +19 -0
  210. package/lib/skeletons/_angular/options/ecl-eu/src/config/global.ts +23 -0
  211. package/lib/skeletons/web-maven/package.json +17 -0
  212. package/lib/skeletons/web-maven/pom.xml +55 -0
  213. package/lib/skeletons/web-maven/src/main/java/eu/europa/ec/digit/eui/angular2clistarter/servlet/SpringWebApplicationInitializer.java +22 -0
  214. package/lib/skeletons/web-maven/src/main/java/eu/europa/ec/digit/eui/angular2clistarter/spring/SpringRestConfiguration.java +24 -0
  215. package/lib/skeletons/web-maven/src/main/java/eu/europa/ec/digit/eui/angular2clistarter/spring/rest/UserDetailsResource.java +23 -0
  216. package/lib/skeletons/web-maven/src/main/resources/ecas-config-application-name.xml +7 -0
  217. package/lib/skeletons/web-maven/src/main/webapp/WEB-INF/dispatcher-servlet.xml +11 -0
  218. package/lib/skeletons/web-maven/src/main/webapp/WEB-INF/web.xml +38 -0
  219. package/lib/skeletons/web-maven/src/main/webapp/WEB-INF/weblogic.xml +16 -0
  220. package/lib/skeletons/web-maven/src/main/webapp/index.jsp +30 -0
  221. package/lib/skeletons/web-spring-boot/myapp-web/pom.xml +83 -0
  222. package/lib/skeletons/web-spring-boot/myapp-web-rest/pom.xml +83 -0
  223. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/MyappApplication.java +46 -0
  224. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/domain/Address.java +65 -0
  225. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/domain/Building.java +44 -0
  226. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/repositories/BuildingRepository.java +11 -0
  227. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/BuildingResource.java +26 -0
  228. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/SwaggerConfig.java +16 -0
  229. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/support/HateoasPageableHandlerMethodArgumentResolver.java +45 -0
  230. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/support/HypermediaSupport.java +25 -0
  231. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/resources/support/PageJsonSerializer.java +17 -0
  232. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/CachingPreventionFilter.java +29 -0
  233. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/CsrfPreventionFilter.java +35 -0
  234. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/FakeAuthenticationFilter.java +372 -0
  235. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/security/SecurityConfig.java +47 -0
  236. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/services/BuildingSearchCriteria.java +26 -0
  237. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/services/BuildingService.java +10 -0
  238. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/java/myapp/services/BuildingServiceImpl.java +26 -0
  239. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/resources/application.properties +0 -0
  240. package/lib/skeletons/web-spring-boot/myapp-web-rest/src/main/resources/data.sql +11 -0
  241. package/lib/skeletons/web-spring-boot/pom.xml +30 -0
  242. package/lib/skeletons/web-symfony/myapp-web/angular.json +169 -0
  243. package/lib/skeletons/web-symfony/myapp-web/package.json +23 -0
  244. package/lib/skeletons/web-symfony/myapp-web/src/app/app-routing.module.ts +18 -0
  245. package/lib/skeletons/web-symfony/myapp-web/src/app/app.component.ts +77 -0
  246. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/components/products.component.html +160 -0
  247. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/components/products.component.scss +0 -0
  248. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/components/products.component.ts +104 -0
  249. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/models/product.model.ts +6 -0
  250. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/products-routing.module.ts +16 -0
  251. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/products.module.ts +16 -0
  252. package/lib/skeletons/web-symfony/myapp-web/src/app/features/products/services/products.service.ts +29 -0
  253. package/lib/skeletons/web-symfony/myapp-web/src/environments/environment.ts +17 -0
  254. package/lib/skeletons/web-symfony/myapp-web-rest/.env +28 -0
  255. package/lib/skeletons/web-symfony/myapp-web-rest/bin/console +42 -0
  256. package/lib/skeletons/web-symfony/myapp-web-rest/composer.json +67 -0
  257. package/lib/skeletons/web-symfony/myapp-web-rest/composer.lock +3572 -0
  258. package/lib/skeletons/web-symfony/myapp-web-rest/config/bootstrap.php +21 -0
  259. package/lib/skeletons/web-symfony/myapp-web-rest/config/bundles.php +12 -0
  260. package/lib/skeletons/web-symfony/myapp-web-rest/config/config.yml +0 -0
  261. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/cache.yaml +19 -0
  262. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/dev/routing.yaml +3 -0
  263. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/doctrine.yaml +29 -0
  264. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/doctrine_migrations.yaml +5 -0
  265. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/framework.yaml +17 -0
  266. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/prod/doctrine.yaml +32 -0
  267. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/routing.yaml +4 -0
  268. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/sensio_framework_extra.yaml +3 -0
  269. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/test/framework.yaml +4 -0
  270. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/test/routing.yaml +3 -0
  271. package/lib/skeletons/web-symfony/myapp-web-rest/config/packages/twig.yaml +4 -0
  272. package/lib/skeletons/web-symfony/myapp-web-rest/config/routes/annotations.yaml +3 -0
  273. package/lib/skeletons/web-symfony/myapp-web-rest/config/routes/dev/twig.yaml +3 -0
  274. package/lib/skeletons/web-symfony/myapp-web-rest/config/routes.yaml +3 -0
  275. package/lib/skeletons/web-symfony/myapp-web-rest/config/services.yaml +27 -0
  276. package/lib/skeletons/web-symfony/myapp-web-rest/public/index.php +27 -0
  277. package/lib/skeletons/web-symfony/myapp-web-rest/src/Controller/ProductController.php +196 -0
  278. package/lib/skeletons/web-symfony/myapp-web-rest/src/Entity/Product.php +99 -0
  279. package/lib/skeletons/web-symfony/myapp-web-rest/src/Kernel.php +53 -0
  280. package/lib/skeletons/web-symfony/myapp-web-rest/src/Migrations/Version20190604101623.php +31 -0
  281. package/lib/skeletons/web-symfony/myapp-web-rest/src/Migrations/Version20190604101638.php +35 -0
  282. package/lib/skeletons/web-symfony/myapp-web-rest/src/Repository/ProductRepository.php +51 -0
  283. package/lib/skeletons/web-symfony/myapp-web-rest/symfony.lock +274 -0
  284. package/lib/skeletons/web-symfony/myapp-web-rest/templates/base.html.twig +12 -0
  285. package/lib/skeletons/web-symfony/myapp-web-rest/templates/lucky/number.html.twig +1 -0
  286. package/lib/skeletons/web-symfony/myapp-web-rest/templates/product/index.html.twig +20 -0
  287. package/lib/utils.js +13 -0
  288. package/package.json +1 -1
  289. 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,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RouterModule } from '@angular/router';
3
+ import { CommonModule } from '@angular/common';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+
6
+ import { EclAllModule } from '@eui/ecl';
7
+
8
+ const MODULES = [
9
+ RouterModule,
10
+ EclAllModule,
11
+ TranslateModule,
12
+ CommonModule,
13
+ ];
14
+ @NgModule({
15
+ imports: [...MODULES],
16
+ declarations: [],
17
+ exports: [...MODULES],
18
+ })
19
+ 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,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
+ }
@@ -0,0 +1,44 @@
1
+ package @app.group.id@.@app.name@.domain;
2
+
3
+ import jakarta.persistence.*;
4
+ import java.io.Serializable;
5
+
6
+ @Entity(name = "t_building")
7
+ public class Building implements Serializable {
8
+ @Id
9
+ @SequenceGenerator(name="building_generator", sequenceName="seq_building")
10
+ @GeneratedValue(generator = "building_generator")
11
+ private Long buildingId;
12
+
13
+ @Column(nullable = false)
14
+ private String name;
15
+
16
+ @OneToOne()
17
+ @JoinColumn(name = "address_id")
18
+ private Address address;
19
+
20
+
21
+ public Long getBuildingId() {
22
+ return buildingId;
23
+ }
24
+
25
+ public void setBuildingId(Long buildingId) {
26
+ this.buildingId = buildingId;
27
+ }
28
+
29
+ public String getName() {
30
+ return name;
31
+ }
32
+
33
+ public void setName(String name) {
34
+ this.name = name;
35
+ }
36
+
37
+ public Address getAddress() {
38
+ return address;
39
+ }
40
+
41
+ public void setAddress(Address address) {
42
+ this.address = address;
43
+ }
44
+ }
@@ -0,0 +1,11 @@
1
+ package @app.group.id@.@app.name@.repositories;
2
+
3
+ import @app.group.id@.@app.name@.domain.Building;
4
+ import org.springframework.data.domain.Page;
5
+ import org.springframework.data.domain.Pageable;
6
+ import org.springframework.data.repository.PagingAndSortingRepository;
7
+
8
+ public interface BuildingRepository extends PagingAndSortingRepository<Building, Long> {
9
+ Page<Building> findAll(Pageable pageable);
10
+ Page<Building> findByNameContainingAllIgnoringCase(String name, Pageable pageable);
11
+ }