@yosr-ai/template-spring 0.0.0-stage → 0.2.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 (68) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/LICENSE +21 -0
  3. package/README.md +14 -2
  4. package/features/auth-api-key/files/src/main/java/com/yosr/app/core/ApiKeyFilter.java +52 -0
  5. package/features/auth-api-key/files/src/test/java/com/yosr/app/ApiKeyTest.java +45 -0
  6. package/features/auth-api-key/snippets/application-api-key.yaml +1 -0
  7. package/features/data-jpa/files/dependencies-lock.json +811 -0
  8. package/features/data-jpa/files/pom.xml +91 -0
  9. package/features/data-jpa/files/src/main/java/com/yosr/app/core/AppConfig.java +34 -0
  10. package/features/data-jpa/files/src/main/java/com/yosr/app/core/AppSettings.java +40 -0
  11. package/features/data-jpa/files/src/main/java/com/yosr/app/core/DataSourceUrl.java +33 -0
  12. package/features/data-jpa/files/src/main/java/com/yosr/app/features/notes/JpaNoteStore.java +59 -0
  13. package/features/data-jpa/files/src/main/java/com/yosr/app/features/notes/NoteEntity.java +68 -0
  14. package/features/data-jpa/files/src/main/java/com/yosr/app/features/notes/NoteRepository.java +5 -0
  15. package/features/data-jpa/files/src/main/resources/application.yml +14 -0
  16. package/features/data-jpa/files/src/test/java/com/yosr/app/JpaTestConfig.java +7 -0
  17. package/features/data-jpa/files/src/test/java/com/yosr/app/NotesApiTest.java +119 -0
  18. package/features/data-jpa/snippets/readme-db.md +3 -0
  19. package/features/deploy-docker/files/.dockerignore +5 -0
  20. package/features/deploy-docker/files/Dockerfile +20 -0
  21. package/features/deploy-docker/files/compose.yaml +12 -0
  22. package/features/deploy-docker/snippets/readme-docker.md +3 -0
  23. package/features/deploy-docker-postgres/snippets/app-config.yaml +3 -0
  24. package/features/deploy-docker-postgres/snippets/app-env.yaml +1 -0
  25. package/features/deploy-docker-postgres/snippets/compose-header.yaml +1 -0
  26. package/features/deploy-docker-postgres/snippets/compose-volumes.yaml +3 -0
  27. package/features/deploy-docker-postgres/snippets/postgres-service.yaml +13 -0
  28. package/features/deploy-docker-postgres/snippets/readme-docker.md +3 -0
  29. package/features/errors-result/files/src/main/java/com/yosr/app/features/notes/NotesController.java +64 -0
  30. package/features/errors-result/files/src/main/java/com/yosr/app/features/notes/NotesService.java +55 -0
  31. package/features/errors-result/files/src/main/java/com/yosr/app/shared/Result.java +8 -0
  32. package/features/errors-result/files/src/test/java/com/yosr/app/NotesServiceTest.java +46 -0
  33. package/files/.env.example +7 -0
  34. package/files/.java-version +1 -0
  35. package/files/README.md +22 -0
  36. package/files/dependencies-lock.json +547 -0
  37. package/files/gitignore +9 -0
  38. package/files/pom.xml +77 -0
  39. package/files/src/main/java/com/yosr/app/AppApplication.java +12 -0
  40. package/files/src/main/java/com/yosr/app/core/AppConfig.java +21 -0
  41. package/files/src/main/java/com/yosr/app/core/AppSettings.java +32 -0
  42. package/files/src/main/java/com/yosr/app/core/HealthController.java +14 -0
  43. package/files/src/main/java/com/yosr/app/core/RestExceptionHandler.java +22 -0
  44. package/files/src/main/java/com/yosr/app/core/WebConfig.java +27 -0
  45. package/files/src/main/java/com/yosr/app/features/notes/MemoryNoteStore.java +71 -0
  46. package/files/src/main/java/com/yosr/app/features/notes/Note.java +53 -0
  47. package/files/src/main/java/com/yosr/app/features/notes/NoteDtos.java +21 -0
  48. package/files/src/main/java/com/yosr/app/features/notes/NoteStore.java +15 -0
  49. package/files/src/main/java/com/yosr/app/features/notes/NotesController.java +47 -0
  50. package/files/src/main/java/com/yosr/app/features/notes/NotesService.java +43 -0
  51. package/files/src/main/java/com/yosr/app/shared/NotFoundException.java +8 -0
  52. package/files/src/main/resources/application.yml +7 -0
  53. package/files/src/test/java/com/yosr/app/NotesApiTest.java +102 -0
  54. package/files/src/test/java/com/yosr/app/NotesServiceTest.java +42 -0
  55. package/package.json +26 -4
  56. package/rules/architecture.md +5 -0
  57. package/rules/auth-api-key.md +3 -0
  58. package/rules/commands.md +7 -0
  59. package/rules/data-jpa.md +3 -0
  60. package/rules/data-none.md +3 -0
  61. package/rules/errors-result.md +3 -0
  62. package/rules/errors-throw.md +3 -0
  63. package/rules/layout-feature.md +5 -0
  64. package/rules/layout-flat.md +3 -0
  65. package/rules/layout-layer.md +3 -0
  66. package/rules/project-overview.md +5 -0
  67. package/seed.template.json +711 -0
  68. package/style/.gitkeep +0 -0
@@ -0,0 +1,547 @@
1
+ {
2
+ "dependencies" : [ {
3
+ "groupId" : "ch.qos.logback",
4
+ "artifactId" : "logback-classic",
5
+ "version" : "1.5.38",
6
+ "scope" : "compile",
7
+ "type" : "jar",
8
+ "optional" : false,
9
+ "integrity" : "sha512:ieaXATiNXIWasiFtJA8Tr99QImjfxUeCsYOzjLQ+NNZWV8t/jRLSad01FIjOfFl4PWxGP+6EsRc3pbiGxxtYWA=="
10
+ }, {
11
+ "groupId" : "ch.qos.logback",
12
+ "artifactId" : "logback-core",
13
+ "version" : "1.5.38",
14
+ "scope" : "compile",
15
+ "type" : "jar",
16
+ "optional" : false,
17
+ "integrity" : "sha512:xfc7389K6lhQbEdkoFtpku3GKMpU7GkD5Wo9K/k9p+5VFLy94cjKD/LRoWS6kvc1RXbPK39qQMPqjPo6hl3Tlg=="
18
+ }, {
19
+ "groupId" : "com.fasterxml.jackson.core",
20
+ "artifactId" : "jackson-annotations",
21
+ "version" : "2.21",
22
+ "scope" : "compile",
23
+ "type" : "jar",
24
+ "optional" : false,
25
+ "integrity" : "sha512:2DKpmGeswtWvslltp2DFDmprVMG7yObEGG8mehbh1Vx6kW74sDStayd8QeM0K5Hc3C49zqi9zP6J58FHiUWRvg=="
26
+ }, {
27
+ "groupId" : "com.jayway.jsonpath",
28
+ "artifactId" : "json-path",
29
+ "version" : "2.10.0",
30
+ "scope" : "test",
31
+ "type" : "jar",
32
+ "optional" : false,
33
+ "integrity" : "sha512:lUMgxYWy7vdhLogERC//3jSJNKgJKBdaFGcb/73mpvk/1bJ8HYSGl0F869JD2RYhCI+QpNxJ3RrA+usGtc1D9Q=="
34
+ }, {
35
+ "groupId" : "com.vaadin.external.google",
36
+ "artifactId" : "android-json",
37
+ "version" : "0.0.20131108.vaadin1",
38
+ "scope" : "test",
39
+ "type" : "jar",
40
+ "optional" : false,
41
+ "integrity" : "sha512:xKBqCjznvb7nAsBpRCZcBQpMjS+9IcJIk24u39q2Os6jDyzzVo08IaVZlA2TmYWosQ0wr/lyo+jL6zksCwLaOg=="
42
+ }, {
43
+ "groupId" : "commons-logging",
44
+ "artifactId" : "commons-logging",
45
+ "version" : "1.3.6",
46
+ "scope" : "compile",
47
+ "type" : "jar",
48
+ "optional" : false,
49
+ "integrity" : "sha512:WqoIJQfi9QMd92U+X+rnvael/EkT6Hyl96IC7i2B57M8n41EGcSr409txWoKhYMzQK6DLwYwwjFX6mhgxCc99Q=="
50
+ }, {
51
+ "groupId" : "io.micrometer",
52
+ "artifactId" : "micrometer-commons",
53
+ "version" : "1.17.2",
54
+ "scope" : "compile",
55
+ "type" : "jar",
56
+ "optional" : false,
57
+ "integrity" : "sha512:IrCDcdfrUU4imPGLdfHjevQ8Ee4IHDc0zvW5bKYdusjR5m/nQVO4/aW0HFAdeCyutuz8BmsDYoYhFqDmIThCFA=="
58
+ }, {
59
+ "groupId" : "io.micrometer",
60
+ "artifactId" : "micrometer-observation",
61
+ "version" : "1.17.2",
62
+ "scope" : "compile",
63
+ "type" : "jar",
64
+ "optional" : false,
65
+ "integrity" : "sha512:5L1yl7NpIyBTsaGBbzcYQdd5FPc1/GUbcR6EC2J6eHQQv3pLPSgp07JEz8/gzKcbHGNf2iJzdQZ5w7HS2MNf4w=="
66
+ }, {
67
+ "groupId" : "jakarta.activation",
68
+ "artifactId" : "jakarta.activation-api",
69
+ "version" : "2.1.4",
70
+ "scope" : "test",
71
+ "type" : "jar",
72
+ "optional" : false,
73
+ "integrity" : "sha512:zQeHcqy16/H5D3xzfzcrfoalzjG5le11lSap7uc/2J+X5Qb5ogi6O3PnV8t4gwuClzNBHPeYloCuoicqu6cyOw=="
74
+ }, {
75
+ "groupId" : "jakarta.annotation",
76
+ "artifactId" : "jakarta.annotation-api",
77
+ "version" : "3.0.0",
78
+ "scope" : "compile",
79
+ "type" : "jar",
80
+ "optional" : false,
81
+ "integrity" : "sha512:K9WhZoTE6BRIl7ptxGdijRuKhTJiNSQOTCAQG23zaB0jruvDDKmeOV7ISPM8tSRAhQMbKg+850bI7ecUil58HQ=="
82
+ }, {
83
+ "groupId" : "jakarta.xml.bind",
84
+ "artifactId" : "jakarta.xml.bind-api",
85
+ "version" : "4.0.5",
86
+ "scope" : "test",
87
+ "type" : "jar",
88
+ "optional" : false,
89
+ "integrity" : "sha512:Pz5SK9cWq2hCui7ti9RPx9hZylo3mOWt8kR+q94cXTt0tvWNIX1s13LLsDTk8APZ+eEPr6FfThCOqAJUjR5QRA=="
90
+ }, {
91
+ "groupId" : "net.bytebuddy",
92
+ "artifactId" : "byte-buddy-agent",
93
+ "version" : "1.18.15",
94
+ "scope" : "test",
95
+ "type" : "jar",
96
+ "optional" : false,
97
+ "integrity" : "sha512:GBjojkgupMVURxX6ViS87KZqGLbqBGCLQBke/jV81cr0IdMoC6mW1wrZStQ1XV+H180/PivETWnSjk/txqN37A=="
98
+ }, {
99
+ "groupId" : "net.bytebuddy",
100
+ "artifactId" : "byte-buddy",
101
+ "version" : "1.18.15",
102
+ "scope" : "test",
103
+ "type" : "jar",
104
+ "optional" : false,
105
+ "integrity" : "sha512:/0n0Uz7PbbEiUYw1zcE6onu8QELLRR/xrneGc8b4YmvaJb0UOnaUffV9aScQ6Fg1TiUcLg1LsUT0K3VMn7Uppg=="
106
+ }, {
107
+ "groupId" : "net.minidev",
108
+ "artifactId" : "accessors-smart",
109
+ "version" : "2.6.0",
110
+ "scope" : "test",
111
+ "type" : "jar",
112
+ "optional" : false,
113
+ "integrity" : "sha512:Ig6yjJT90V56ybfoDSOKmHH8eNsxJ9ucpiByUeDlVjxiz9WrdiXWnrniVj/HJucaJVYqQIHwifVk3CBuBWlmXw=="
114
+ }, {
115
+ "groupId" : "net.minidev",
116
+ "artifactId" : "json-smart",
117
+ "version" : "2.6.0",
118
+ "scope" : "test",
119
+ "type" : "jar",
120
+ "optional" : false,
121
+ "integrity" : "sha512:/IJpgmOU28pS+pNm8oIm5eN7xkwSaNekni3qf7LGLaK+jIvPNi2lVho89BOBYBnYxPlRmaWF64sT6Ki2NCWaAA=="
122
+ }, {
123
+ "groupId" : "org.apache.logging.log4j",
124
+ "artifactId" : "log4j-api",
125
+ "version" : "2.25.5",
126
+ "scope" : "compile",
127
+ "type" : "jar",
128
+ "optional" : false,
129
+ "integrity" : "sha512:aMIbSvR3DxjCd5REjDNaI265BjJv/lG3omNMmI1EPadgpgV82U/15ENj9LIJSJCRIlpIkW8yfRHOaQu0XTNDGA=="
130
+ }, {
131
+ "groupId" : "org.apache.logging.log4j",
132
+ "artifactId" : "log4j-to-slf4j",
133
+ "version" : "2.25.5",
134
+ "scope" : "compile",
135
+ "type" : "jar",
136
+ "optional" : false,
137
+ "integrity" : "sha512:q6ZGyLkZBrEYqgLc69Vq9WqVfp8OxNzorjyR5x/7L84NBHUDwJ8cq2ZXAkBfZ3QuQnJ34AlB4ILQI53yyC75NQ=="
138
+ }, {
139
+ "groupId" : "org.apache.tomcat.embed",
140
+ "artifactId" : "tomcat-embed-core",
141
+ "version" : "11.0.27",
142
+ "scope" : "compile",
143
+ "type" : "jar",
144
+ "optional" : false,
145
+ "integrity" : "sha512:ic9YxNIB2xO5fd4hp2pSSxRwzXnnGXpDsbYtTevxep9UnU4z94UBMxoha8Ij/6Mr4/Ln0N0gIeW4fHcQEacOug=="
146
+ }, {
147
+ "groupId" : "org.apache.tomcat.embed",
148
+ "artifactId" : "tomcat-embed-el",
149
+ "version" : "11.0.27",
150
+ "scope" : "compile",
151
+ "type" : "jar",
152
+ "optional" : false,
153
+ "integrity" : "sha512:1kkELeWNb2Nu+unDhAHBwFnAugtCEKmC7Bx6jVtsntzuUcU4/2r6JcgTEDcHczUBQreKiGI43JN642tHM0vbIw=="
154
+ }, {
155
+ "groupId" : "org.apache.tomcat.embed",
156
+ "artifactId" : "tomcat-embed-websocket",
157
+ "version" : "11.0.27",
158
+ "scope" : "compile",
159
+ "type" : "jar",
160
+ "optional" : false,
161
+ "integrity" : "sha512:KQiSDu/I+z1twTul4QKfCLE4VCoIVgIttdlgmFoPtckbcnmP6jWnlX4EgSSq3nXoOlRzHAn2UI9unbvCoZCl6A=="
162
+ }, {
163
+ "groupId" : "org.apiguardian",
164
+ "artifactId" : "apiguardian-api",
165
+ "version" : "1.1.2",
166
+ "scope" : "test",
167
+ "type" : "jar",
168
+ "optional" : false,
169
+ "integrity" : "sha512:18zQ5wGfGpl9451m3ArU7+FQQo/df0x0PJOITxYCo+kBNa00uuqW1bbZJa1sDISHyOeDBPCgiaEjg9SmLiyaYQ=="
170
+ }, {
171
+ "groupId" : "org.assertj",
172
+ "artifactId" : "assertj-core",
173
+ "version" : "3.27.7",
174
+ "scope" : "test",
175
+ "type" : "jar",
176
+ "optional" : false,
177
+ "integrity" : "sha512:rd4W35/Qth2bjPTCh0C5OljUETAAQyWMWUYS1Z52MhpCQG94R/VkO6rYvd8I+4tqxtZVTDZznosfps41RW+dGQ=="
178
+ }, {
179
+ "groupId" : "org.awaitility",
180
+ "artifactId" : "awaitility",
181
+ "version" : "4.3.0",
182
+ "scope" : "test",
183
+ "type" : "jar",
184
+ "optional" : false,
185
+ "integrity" : "sha512:qSaGQoRH5KY1DsAslSZjTXCUGpkIVKKE70K2friPq+R4//TGHV1jqNpWusnhB/IlnnyGKgPnQP0YT6vStJtqIg=="
186
+ }, {
187
+ "groupId" : "org.hamcrest",
188
+ "artifactId" : "hamcrest",
189
+ "version" : "3.0",
190
+ "scope" : "test",
191
+ "type" : "jar",
192
+ "optional" : false,
193
+ "integrity" : "sha512:wJloiC2EZ9Q1dkRLP6uGjhdfCCbh1uIBXR7+yJNM3V/86PKFp/wHIwZxHuBkXeqSeDqXqeHdggbl4d5d4eqOfw=="
194
+ }, {
195
+ "groupId" : "org.jspecify",
196
+ "artifactId" : "jspecify",
197
+ "version" : "1.0.1",
198
+ "scope" : "compile",
199
+ "type" : "jar",
200
+ "optional" : false,
201
+ "integrity" : "sha512:j1ym9cJe41O/vj5eXNmEezs+0elUoUpSyaoBbGc+Ar+8Lg+TCK1XbCpYcg+L8hOa2Yg8eogQUP6Wovh+LmI3EQ=="
202
+ }, {
203
+ "groupId" : "org.junit.jupiter",
204
+ "artifactId" : "junit-jupiter-api",
205
+ "version" : "6.0.3",
206
+ "scope" : "test",
207
+ "type" : "jar",
208
+ "optional" : false,
209
+ "integrity" : "sha512:FFYFF3AJ0X0NVpj32CfbgFtepT/FTmcFjLHY/deRI6hdpvXhoo/YEF0IF1t0xd06mZKKogerANc0of6/xw2x+w=="
210
+ }, {
211
+ "groupId" : "org.junit.jupiter",
212
+ "artifactId" : "junit-jupiter-engine",
213
+ "version" : "6.0.3",
214
+ "scope" : "test",
215
+ "type" : "jar",
216
+ "optional" : false,
217
+ "integrity" : "sha512:jZsEp3nSPB/nba9EbegE3MynhdX19V3107OqNzaUosIQ4UKw4n0K5W3igxa/1sjNSsa7kwlLPPlZqGfE4zPSJg=="
218
+ }, {
219
+ "groupId" : "org.junit.jupiter",
220
+ "artifactId" : "junit-jupiter-params",
221
+ "version" : "6.0.3",
222
+ "scope" : "test",
223
+ "type" : "jar",
224
+ "optional" : false,
225
+ "integrity" : "sha512:vRIVuHn4y2MWLJohlVCs87uqFDqBYbJ2gS8SSveEESov2Utrrpg76v0N5/bQw28iNye7QbfW2HlHUAt1D//e3g=="
226
+ }, {
227
+ "groupId" : "org.junit.jupiter",
228
+ "artifactId" : "junit-jupiter",
229
+ "version" : "6.0.3",
230
+ "scope" : "test",
231
+ "type" : "jar",
232
+ "optional" : false,
233
+ "integrity" : "sha512:p+TmrBa7Dv7E/jaUHmGDXI4owt5TW7pvHmm4R4HrMYb6fLm2PuRJn53ELTMsJx1QyMJ+mx23espDrQDy3kpdwQ=="
234
+ }, {
235
+ "groupId" : "org.junit.platform",
236
+ "artifactId" : "junit-platform-commons",
237
+ "version" : "6.0.3",
238
+ "scope" : "test",
239
+ "type" : "jar",
240
+ "optional" : false,
241
+ "integrity" : "sha512:oiFU7b88J3Qh3IfpJPXL5+KAffQ6exSREwPZ9Xi0y+Hz3VEjr/K5TOzV3vOlFBcQ1sEn9YoD9qzjC+W9MXH9bg=="
242
+ }, {
243
+ "groupId" : "org.junit.platform",
244
+ "artifactId" : "junit-platform-engine",
245
+ "version" : "6.0.3",
246
+ "scope" : "test",
247
+ "type" : "jar",
248
+ "optional" : false,
249
+ "integrity" : "sha512:AjXaRC7m4YmofwZBXJf9uuEUb1oYui4On8V6hpFv5Mocz4g7uLlnMKUkF5IX3ohjjN+HznyLooTND+b3nZP3qg=="
250
+ }, {
251
+ "groupId" : "org.mockito",
252
+ "artifactId" : "mockito-core",
253
+ "version" : "5.23.0",
254
+ "scope" : "test",
255
+ "type" : "jar",
256
+ "optional" : false,
257
+ "integrity" : "sha512:XmMwyE772+vusqhLGgwDbsyXg+0hV38OjVyxhqWNLAagCcNsTCKooiY9eQv/49EuMAxZenSIYK+ti0Lc/YEL/A=="
258
+ }, {
259
+ "groupId" : "org.mockito",
260
+ "artifactId" : "mockito-junit-jupiter",
261
+ "version" : "5.23.0",
262
+ "scope" : "test",
263
+ "type" : "jar",
264
+ "optional" : false,
265
+ "integrity" : "sha512:90mDci/+QO5MacoNk4c6KTNfZhnR5TasQLu1IqTUiPy0Vq7mbxzeoXTEPjZDkWKORmvv1qlnkQ0oa2CNs8Hmcg=="
266
+ }, {
267
+ "groupId" : "org.objenesis",
268
+ "artifactId" : "objenesis",
269
+ "version" : "3.3",
270
+ "scope" : "test",
271
+ "type" : "jar",
272
+ "optional" : false,
273
+ "integrity" : "sha512:H6mQ0VvRefB/+8Rg1YCm/QVi5F3ui9SpQFkXU2t49FwNb2RLZ/hdeBx1iqVu/5Cu8j7tzJvX9f+Ieme3Fgg+YQ=="
274
+ }, {
275
+ "groupId" : "org.opentest4j",
276
+ "artifactId" : "opentest4j",
277
+ "version" : "1.3.0",
278
+ "scope" : "test",
279
+ "type" : "jar",
280
+ "optional" : false,
281
+ "integrity" : "sha512:ePxpinhxu1AwXjZXiTwQUAWV8EM0jYdfV7w5ykpqUe2jlnt8jIp+w+j4XyFxvKSqmII+kS5BbofoHGultwo3ww=="
282
+ }, {
283
+ "groupId" : "org.ow2.asm",
284
+ "artifactId" : "asm",
285
+ "version" : "9.7.1",
286
+ "scope" : "test",
287
+ "type" : "jar",
288
+ "optional" : false,
289
+ "integrity" : "sha512:R2ewFgPa1cecweK183IvcrEFnZKPGE9Ea6EbresbOBs6OpqAHMQ9JdOW35ULCdGVl8cxc8QRsdqJDegIuU8fUA=="
290
+ }, {
291
+ "groupId" : "org.skyscreamer",
292
+ "artifactId" : "jsonassert",
293
+ "version" : "1.5.3",
294
+ "scope" : "test",
295
+ "type" : "jar",
296
+ "optional" : false,
297
+ "integrity" : "sha512:Y1BnIejpAtIaATui4y6WSk7suRWEtY6RFGU4L1oL8WryAtqtAcp+oW4vDEiYac9BAIuGadgRMMeLJF2nquQZKA=="
298
+ }, {
299
+ "groupId" : "org.slf4j",
300
+ "artifactId" : "jul-to-slf4j",
301
+ "version" : "2.0.20",
302
+ "scope" : "compile",
303
+ "type" : "jar",
304
+ "optional" : false,
305
+ "integrity" : "sha512:LjunbvzWyQDMinRP9lN4T8tdsmX+NM7xuXQNSL5UqfE349q5TmLE23+IxK4TjWqx0SYxduInTiaf9kVImAXBjQ=="
306
+ }, {
307
+ "groupId" : "org.slf4j",
308
+ "artifactId" : "slf4j-api",
309
+ "version" : "2.0.20",
310
+ "scope" : "compile",
311
+ "type" : "jar",
312
+ "optional" : false,
313
+ "integrity" : "sha512:ar9iGMJVigBZ81zswk2z7xVS28zfuPMtbJ0dixH9VFQF4E55ZzIZ0Z4XuZymoqPafZIAa8rtqhVka/B3NxFdFw=="
314
+ }, {
315
+ "groupId" : "org.springframework.boot",
316
+ "artifactId" : "spring-boot-autoconfigure",
317
+ "version" : "4.1.2",
318
+ "scope" : "compile",
319
+ "type" : "jar",
320
+ "optional" : false,
321
+ "integrity" : "sha512:crGI9JJcMK9WXqB33ZVIBv3Zund5ynGhRZd8JRm7t5h8Utz+Mj0WbGpP/4uMoW6GfuuSZBEUGMl/lywbdkMBaQ=="
322
+ }, {
323
+ "groupId" : "org.springframework.boot",
324
+ "artifactId" : "spring-boot-http-converter",
325
+ "version" : "4.1.2",
326
+ "scope" : "compile",
327
+ "type" : "jar",
328
+ "optional" : false,
329
+ "integrity" : "sha512:jdbyvRQhhaUm8Nd5Lfh3hoeaFK9Mm3pTRwbJwZOYmkQuXxMiHssxRJBAUInuj0DMqLwAUtN1+fDe5rRkQOH/yA=="
330
+ }, {
331
+ "groupId" : "org.springframework.boot",
332
+ "artifactId" : "spring-boot-jackson",
333
+ "version" : "4.1.2",
334
+ "scope" : "compile",
335
+ "type" : "jar",
336
+ "optional" : false,
337
+ "integrity" : "sha512:3lC1ydBD34x9x7gFeL8TpqPCbdbID0sJTTkPZrVGAxmlfbyRW+fbzh7hEW9tTaOX/D3JBmrzbMHYXJeZFwRSDw=="
338
+ }, {
339
+ "groupId" : "org.springframework.boot",
340
+ "artifactId" : "spring-boot-servlet",
341
+ "version" : "4.1.2",
342
+ "scope" : "compile",
343
+ "type" : "jar",
344
+ "optional" : false,
345
+ "integrity" : "sha512:kGDrM7S6DTzLQAR1UZTA0uf7JhcURuKDZfpUNoLGAkF9hVp7It6GbbS27kUwH/wyhJYi+NHOdDJ4qFkhF8lufg=="
346
+ }, {
347
+ "groupId" : "org.springframework.boot",
348
+ "artifactId" : "spring-boot-starter-jackson",
349
+ "version" : "4.1.2",
350
+ "scope" : "compile",
351
+ "type" : "jar",
352
+ "optional" : false,
353
+ "integrity" : "sha512:fzBaFjbTRBiTphCDKoK3uZOZ9DqutmxJa3zrDCgkUOTnbxT0qwQQCtoviFQWjjpcslvbhumfQ41cbkJ3vrHHPA=="
354
+ }, {
355
+ "groupId" : "org.springframework.boot",
356
+ "artifactId" : "spring-boot-starter-logging",
357
+ "version" : "4.1.2",
358
+ "scope" : "compile",
359
+ "type" : "jar",
360
+ "optional" : false,
361
+ "integrity" : "sha512:hnZi38+LJs3OBmu3HwAKesWONPJpmG5/hObqdhk0eyR76DrdpVtHS2NObUICEiPio9lSbou0ug7TJhO+k8vfWw=="
362
+ }, {
363
+ "groupId" : "org.springframework.boot",
364
+ "artifactId" : "spring-boot-starter-test",
365
+ "version" : "4.1.2",
366
+ "scope" : "test",
367
+ "type" : "jar",
368
+ "optional" : false,
369
+ "integrity" : "sha512:yDe9CuOL3jkgjl+T4/VE9S9Y+pl9tucZrtGT6HDlwg95YAiz9l20vHuX49JAU7PthjBvCmd9CPYyx1BzYP3wxg=="
370
+ }, {
371
+ "groupId" : "org.springframework.boot",
372
+ "artifactId" : "spring-boot-starter-tomcat-runtime",
373
+ "version" : "4.1.2",
374
+ "scope" : "compile",
375
+ "type" : "jar",
376
+ "optional" : false,
377
+ "integrity" : "sha512:RyeLAyBiKczbh3B0J2VUNNWDcVW3jj8P8sMnbJMsDViCIRvM9jv32KwD7nhi+c65sV9O95dbTVk/SU4A8vZVPA=="
378
+ }, {
379
+ "groupId" : "org.springframework.boot",
380
+ "artifactId" : "spring-boot-starter-tomcat",
381
+ "version" : "4.1.2",
382
+ "scope" : "compile",
383
+ "type" : "jar",
384
+ "optional" : false,
385
+ "integrity" : "sha512:mmysDG9z12m/O6uYAsLKv+3ef2Cnxpy3ZH45vccJ4dPVSuC+sRallHo3bZQbCZFZdtjLXU9WqJkP69TfKwYKIw=="
386
+ }, {
387
+ "groupId" : "org.springframework.boot",
388
+ "artifactId" : "spring-boot-starter-web",
389
+ "version" : "4.1.2",
390
+ "scope" : "compile",
391
+ "type" : "jar",
392
+ "optional" : false,
393
+ "integrity" : "sha512:b/kXi6t+cvvxHWrWdFgcVH+rv3TFUgXOIQNZIP/sOL57ecIzn0O1Zf988G22hi8ZTW/2sIN+bz3SXBj0ZrTIyA=="
394
+ }, {
395
+ "groupId" : "org.springframework.boot",
396
+ "artifactId" : "spring-boot-starter",
397
+ "version" : "4.1.2",
398
+ "scope" : "compile",
399
+ "type" : "jar",
400
+ "optional" : false,
401
+ "integrity" : "sha512:Uclc2zJn4J5TP2Cc2qMkBlVfrs3Gs+hIjcjTHfsTbZ+BTQEqW3Z4LlLWGDwZdqaSnNGT6RZU6e4UpiK3pGBknw=="
402
+ }, {
403
+ "groupId" : "org.springframework.boot",
404
+ "artifactId" : "spring-boot-test-autoconfigure",
405
+ "version" : "4.1.2",
406
+ "scope" : "test",
407
+ "type" : "jar",
408
+ "optional" : false,
409
+ "integrity" : "sha512:D8Lzk7jQEP1WoiwcIsWsvG1OZRfVLbfzD3ME+IXBs2v8SKUv1aXRiOPO9BHFtZuW+NhmGNTiCNxuEmmlCYxw3A=="
410
+ }, {
411
+ "groupId" : "org.springframework.boot",
412
+ "artifactId" : "spring-boot-test",
413
+ "version" : "4.1.2",
414
+ "scope" : "test",
415
+ "type" : "jar",
416
+ "optional" : false,
417
+ "integrity" : "sha512:Sz7wMnyOKPNbUDQhaeS3G1dICPBIWwW+Jdge/WLkc2xRwgzQ0XSaa1QyvV9qYMcsUG3Bhxir4ZlVfCJAwOmiRw=="
418
+ }, {
419
+ "groupId" : "org.springframework.boot",
420
+ "artifactId" : "spring-boot-tomcat",
421
+ "version" : "4.1.2",
422
+ "scope" : "compile",
423
+ "type" : "jar",
424
+ "optional" : false,
425
+ "integrity" : "sha512:t2qTiDvPt68UCtgHMe2JbfFOVfgHxYXweNtzN/6zioL2rZLMZ96gpQFId63Psl2jwkvzjr1h384qPRW6vdY/Hw=="
426
+ }, {
427
+ "groupId" : "org.springframework.boot",
428
+ "artifactId" : "spring-boot-web-server",
429
+ "version" : "4.1.2",
430
+ "scope" : "compile",
431
+ "type" : "jar",
432
+ "optional" : false,
433
+ "integrity" : "sha512:4S1Lwc52VeeCHDGTx+hpLYUjzdt2n6SOmT6e9Gcu1rNPDYilwNedxbiah7d3n9u5F4eBmtlJcLVW8YUSJiM68Q=="
434
+ }, {
435
+ "groupId" : "org.springframework.boot",
436
+ "artifactId" : "spring-boot-webmvc",
437
+ "version" : "4.1.2",
438
+ "scope" : "compile",
439
+ "type" : "jar",
440
+ "optional" : false,
441
+ "integrity" : "sha512:HhwFhIrsCvgNjntfBJAP7ad2vRZxX8QhKroXUaFXHeKjMxvabsDY/6EAA9LOe3nIc25zUzbkUlnWSs3spARQZw=="
442
+ }, {
443
+ "groupId" : "org.springframework.boot",
444
+ "artifactId" : "spring-boot",
445
+ "version" : "4.1.2",
446
+ "scope" : "compile",
447
+ "type" : "jar",
448
+ "optional" : false,
449
+ "integrity" : "sha512:8LKTVv4s9tMY/QBoPjwQuvFhTRKcnva8b/5N+6RGerlkB2tgDtEUWnTr2LqCQRyg2lpJ83w6T/v+6axO8Q9hfQ=="
450
+ }, {
451
+ "groupId" : "org.springframework",
452
+ "artifactId" : "spring-aop",
453
+ "version" : "7.0.10",
454
+ "scope" : "compile",
455
+ "type" : "jar",
456
+ "optional" : false,
457
+ "integrity" : "sha512:V20v+aST+XJEq3tS1ba/4UcPMGSAMwlJcjqtcxoYiCrm+wSjc2JCuIVxXggSPPO9CDnCyLjitNfaMaGaZNr34w=="
458
+ }, {
459
+ "groupId" : "org.springframework",
460
+ "artifactId" : "spring-beans",
461
+ "version" : "7.0.10",
462
+ "scope" : "compile",
463
+ "type" : "jar",
464
+ "optional" : false,
465
+ "integrity" : "sha512:JGSc0gRctvOwDbMbyDsZdY7F1qdZQk99fk0c2CHjdhO8X2AGWBynDz2BBE0XtVGqrgwS3Fi1vsSJyUFAvdMxvw=="
466
+ }, {
467
+ "groupId" : "org.springframework",
468
+ "artifactId" : "spring-context",
469
+ "version" : "7.0.10",
470
+ "scope" : "compile",
471
+ "type" : "jar",
472
+ "optional" : false,
473
+ "integrity" : "sha512:179i8QqW/32ydCDwtt8/hMtpe9rBm5v7vQU7tLajCFGgvtTVFpZwZZQPAVLq73dha3W2ul6AWY5sjDITK/64uw=="
474
+ }, {
475
+ "groupId" : "org.springframework",
476
+ "artifactId" : "spring-core",
477
+ "version" : "7.0.10",
478
+ "scope" : "compile",
479
+ "type" : "jar",
480
+ "optional" : false,
481
+ "integrity" : "sha512:cpVFUMXMubZWh1otWNRFpES9W9ohyuhL5KE2mEEl0Yrqsems9JsaP7CqVGzCLYif2jMcdBDjPPz3Q6ZjSqpyyQ=="
482
+ }, {
483
+ "groupId" : "org.springframework",
484
+ "artifactId" : "spring-expression",
485
+ "version" : "7.0.10",
486
+ "scope" : "compile",
487
+ "type" : "jar",
488
+ "optional" : false,
489
+ "integrity" : "sha512:xHu/oSQ1NyP0OsCW4JyF1PYIQwA01jVAH1/O9qw1swjysRpc/HhD6xajz2IEuXPiRaoU+zJwTFbBawDcysPpQg=="
490
+ }, {
491
+ "groupId" : "org.springframework",
492
+ "artifactId" : "spring-test",
493
+ "version" : "7.0.10",
494
+ "scope" : "test",
495
+ "type" : "jar",
496
+ "optional" : false,
497
+ "integrity" : "sha512:nWSS0lKX2sg6nUJBxey/HZTbfCnpHROG2xGcmz1GPaD7ExY42jBvbWXsr4jFs/MGmYugCuwN6MpIlWynkjI1Vw=="
498
+ }, {
499
+ "groupId" : "org.springframework",
500
+ "artifactId" : "spring-web",
501
+ "version" : "7.0.10",
502
+ "scope" : "compile",
503
+ "type" : "jar",
504
+ "optional" : false,
505
+ "integrity" : "sha512:TQXmlF46hUkwzwY5JYOuYj1JrghHOG2IVxgwXOryawbEmy71svmy/rLYsMJUxYL7beCsWshzOkWUkvpD1b5zxQ=="
506
+ }, {
507
+ "groupId" : "org.springframework",
508
+ "artifactId" : "spring-webmvc",
509
+ "version" : "7.0.10",
510
+ "scope" : "compile",
511
+ "type" : "jar",
512
+ "optional" : false,
513
+ "integrity" : "sha512:qzAhNuaRtQqfssoOHHzU7MqhQSWV7ediVMnv/yx8lS4rxGA44NTXjinyjQBKCe62XXggB1vG/Sy7fZ+Syx6NrA=="
514
+ }, {
515
+ "groupId" : "org.xmlunit",
516
+ "artifactId" : "xmlunit-core",
517
+ "version" : "2.11.0",
518
+ "scope" : "test",
519
+ "type" : "jar",
520
+ "optional" : false,
521
+ "integrity" : "sha512:PVYOUJpNZ2xZTEi+PqZ/rSFCBEilhJ/yF7opEhtGl/k2bEEWJIjIc3VZbJwPU9zn1PBTg5QKOQug9nNsZg2JQw=="
522
+ }, {
523
+ "groupId" : "org.yaml",
524
+ "artifactId" : "snakeyaml",
525
+ "version" : "2.6",
526
+ "scope" : "compile",
527
+ "type" : "jar",
528
+ "optional" : false,
529
+ "integrity" : "sha512:as1pUIuCh/SEMEiTDODYc3jSmXThO7haDGAEJPyka1BpmDZ5IltBpddy/rd20diIbjwZFlwVtLUPv3qRNDZKWg=="
530
+ }, {
531
+ "groupId" : "tools.jackson.core",
532
+ "artifactId" : "jackson-core",
533
+ "version" : "3.1.7",
534
+ "scope" : "compile",
535
+ "type" : "jar",
536
+ "optional" : false,
537
+ "integrity" : "sha512:HDfNYVROtv1CKuWZDtwoFBxY4Gc1TUXZFL+yJkASOIZC3Ao3UnJ4poTIvneUe2YQrsmhmOmTqp8apBq+DUVk8w=="
538
+ }, {
539
+ "groupId" : "tools.jackson.core",
540
+ "artifactId" : "jackson-databind",
541
+ "version" : "3.1.7",
542
+ "scope" : "compile",
543
+ "type" : "jar",
544
+ "optional" : false,
545
+ "integrity" : "sha512:/guZtY3nUKRJKG0SqgDJm7AhPwntCC0cVyO7oQGPQXOOh1nh4W+CyucN/pH0IQj7Xtvm8SHwNIs98ivn8NUZ6Q=="
546
+ } ]
547
+ }
@@ -0,0 +1,9 @@
1
+ target/
2
+ .idea/
3
+ *.iml
4
+ .env
5
+ .DS_Store
6
+ *.log
7
+ .settings/
8
+ .classpath
9
+ .project
package/files/pom.xml ADDED
@@ -0,0 +1,77 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project xmlns="http://maven.apache.org/POM/4.0.0"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
5
+ <modelVersion>4.0.0</modelVersion>
6
+
7
+ <parent>
8
+ <groupId>org.springframework.boot</groupId>
9
+ <artifactId>spring-boot-starter-parent</artifactId>
10
+ <version>4.1.2</version>
11
+ <relativePath />
12
+ </parent>
13
+
14
+ <groupId>com.yosr</groupId>
15
+ <artifactId>app</artifactId>
16
+ <version>0.0.1-SNAPSHOT</version>
17
+ <name>__seed_projectName__</name>
18
+ <description>Yosr Seed Spring Boot API (__seed_projectName__)</description>
19
+
20
+ <properties>
21
+ <java.version>25</java.version>
22
+ <dependency-lock-maven-plugin.version>1.4.0</dependency-lock-maven-plugin.version>
23
+ <spotless-maven-plugin.version>3.11.0</spotless-maven-plugin.version>
24
+ </properties>
25
+
26
+ <dependencies>
27
+ <dependency>
28
+ <groupId>org.springframework.boot</groupId>
29
+ <artifactId>spring-boot-starter-web</artifactId>
30
+ </dependency>
31
+ <dependency>
32
+ <groupId>org.springframework.boot</groupId>
33
+ <artifactId>spring-boot-starter-test</artifactId>
34
+ <scope>test</scope>
35
+ </dependency>
36
+ </dependencies>
37
+
38
+ <build>
39
+ <finalName>app</finalName>
40
+ <plugins>
41
+ <plugin>
42
+ <groupId>org.springframework.boot</groupId>
43
+ <artifactId>spring-boot-maven-plugin</artifactId>
44
+ </plugin>
45
+ <plugin>
46
+ <groupId>org.apache.maven.plugins</groupId>
47
+ <artifactId>maven-compiler-plugin</artifactId>
48
+ <configuration>
49
+ <compilerArgs>
50
+ <arg>-Werror</arg>
51
+ </compilerArgs>
52
+ <showWarnings>true</showWarnings>
53
+ </configuration>
54
+ </plugin>
55
+ <plugin>
56
+ <groupId>com.diffplug.spotless</groupId>
57
+ <artifactId>spotless-maven-plugin</artifactId>
58
+ <version>${spotless-maven-plugin.version}</version>
59
+ <configuration>
60
+ <java>
61
+ <googleJavaFormat>
62
+ <version>1.36.1</version>
63
+ </googleJavaFormat>
64
+ </java>
65
+ </configuration>
66
+ </plugin>
67
+ <plugin>
68
+ <groupId>se.vandmo</groupId>
69
+ <artifactId>dependency-lock-maven-plugin</artifactId>
70
+ <version>${dependency-lock-maven-plugin.version}</version>
71
+ <configuration>
72
+ <lockFile>dependencies-lock.json</lockFile>
73
+ </configuration>
74
+ </plugin>
75
+ </plugins>
76
+ </build>
77
+ </project>
@@ -0,0 +1,12 @@
1
+ package com.yosr.app;
2
+
3
+ import org.springframework.boot.SpringApplication;
4
+ import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+
6
+ @SpringBootApplication
7
+ public class AppApplication {
8
+
9
+ public static void main(String[] args) {
10
+ SpringApplication.run(AppApplication.class, args);
11
+ }
12
+ }
@@ -0,0 +1,21 @@
1
+ package com.yosr.app.core;
2
+
3
+ import com.yosr.app.features.notes.MemoryNoteStore;
4
+ import com.yosr.app.features.notes.NoteStore;
5
+ import com.yosr.app.features.notes.NotesService;
6
+ import org.springframework.context.annotation.Bean;
7
+ import org.springframework.context.annotation.Configuration;
8
+
9
+ @Configuration
10
+ public class AppConfig {
11
+ // @seed:anchor bean-registration
12
+ @Bean
13
+ NoteStore noteStore() {
14
+ return new MemoryNoteStore();
15
+ }
16
+
17
+ @Bean
18
+ NotesService notesService(NoteStore store) {
19
+ return new NotesService(store);
20
+ }
21
+ }