Commit baeeec9
feat(spring): One datasource in generated tests, not many
The handling of multiple datasources per database integration module
tests is rare and a cumbersome design. When encountering this, instead,
configure the correct single datasource for the tests or generate
separate tests for each datasource if more than one is valid.
Replace the archetype's multi-datasource generation (multi/ token
expansion, aggregator, @ParameterizedTest) with one specified
datasource, named by dataSourceName / dataSourceBeanName /
entityManagerFactoryBeanName and resolved by @qualifier; regenerate per
datasource to cover several. Also:
- Import the generated DatabaseAudit<Name>TestConfiguration once on the
base test class, not on each generated IT, so it cannot clash with a
consumer base that declares its context via @ContextConfiguration.
- Auto-wire runtime SQL capture for the named datasource: the generated
config registers a SqlCapturerRegisteringPostProcessor that sets its
capturer as that EntityManagerFactory's Hibernate StatementInspector
before the factory is built, so the plan-based audits run with no
change to the application's own datasource configuration.
- Drop SingleDataSourceCondition: the stock DatabaseAuditTestConfiguration
resolves the DataSource/EntityManagerFactory by type and fails fast on
genuinely ambiguous peer datasources instead of backing off silently.
- Print the remaining manual steps after generation, and update the usage
guide, CLAUDE.md, and archetype docs to match.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JA2JhuvNmmyGbsPYgVBdEr1 parent 6f1711b commit baeeec9
23 files changed
Lines changed: 730 additions & 252 deletions
File tree
- archetype/src
- main/resources
- META-INF
- maven
- archetype-resources/src/test/java
- multi
- test
- java/io/github/databaseaudits/archetype
- resources/projects
- disabled-tests
- full
- multi-datasource
- targeted-datasource
- tests-only-targeted
- tests-only-with-project-dir
- tests-only
- with-parent-class
- integration/src
- main/java/io/github/databaseaudits/spring/boot
- site/asciidoc
- test/java/io/github/databaseaudits/spring/boot
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
73 | 87 | | |
74 | 88 | | |
75 | 89 | | |
| |||
88 | 102 | | |
89 | 103 | | |
90 | 104 | | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
91 | 114 | | |
92 | 115 | | |
93 | 116 | | |
| |||
Lines changed: 52 additions & 30 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
82 | 78 | | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
96 | 86 | | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
97 | 92 | | |
98 | | - | |
99 | 93 | | |
100 | | - | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
101 | 121 | | |
| 122 | + | |
| 123 | + | |
Lines changed: 18 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
51 | 64 | | |
52 | 65 | | |
53 | 66 | | |
| |||
Lines changed: 26 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
3 | 7 | | |
4 | 8 | | |
5 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
6 | 13 | | |
| 14 | + | |
7 | 15 | | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
8 | 29 | | |
9 | 30 | | |
10 | 31 | | |
| |||
14 | 35 | | |
15 | 36 | | |
16 | 37 | | |
| 38 | + | |
17 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
18 | 43 | | |
| 44 | + | |
19 | 45 | | |
20 | 46 | | |
0 commit comments