@@ -34,15 +34,24 @@ coordinates.
3434
3535** Do not package both representations of the same classes.** A native application
3636uses the shared artifacts and never the full ` simpleapi ` artifact. A Bukkit
37- application uses the full distribution. When a future AdvancedCore common module
38- brings shared artifacts transitively into a Bukkit distribution, exclude those
39- three dependencies from that edge and satisfy their classes from the aligned full
40- SimpleAPI dependency. Keep versions aligned. Existing AdvancedCore/VotingPlugin
41- builds do not need this exclusion today because they do not consume the new modules.
42-
43- The thin SQL artifact intentionally uses unrelocated HikariCP. Existing full
44- SimpleAPI shading remains unchanged. A native mod packager must package its actual
45- runtime dependency graph using the target loader's supported mechanism.
37+ application retains the full distribution. Future AdvancedCore common-module
38+ integration must choose one representation of each SimpleAPI class in the final
39+ Bukkit JAR, keep versions aligned, and verify the final shaded artifact's linkage.
40+ Existing AdvancedCore/VotingPlugin builds do not consume the new thin modules and
41+ need no dependency changes in this PR.
42+
43+ The thin SQL artifact intentionally uses unrelocated HikariCP, whereas the full
44+ SimpleAPI distribution already relocates HikariCP. Some existing SQL public
45+ signatures expose Hikari types. Therefore excluding the thin dependencies in favor
46+ of the full JAR is not sufficient by itself for common code compiled against those
47+ signatures: the final Bukkit packaging must relocate the common callers and the
48+ provided SQL implementations consistently. Prefer JDBC/JDK types at new shared
49+ boundaries and add a final packaged Bukkit linkage test when making that consumer
50+ change. This PR does not claim that future mixed packaging is already validated.
51+
52+ A native mod packager must include its actual runtime dependency graph using the
53+ target loader's supported mechanism. No changes to existing full-JAR shading are
54+ made here.
4655
4756## Native configuration example
4857
@@ -149,8 +158,8 @@ Source staging is checked byte-for-byte against the one maintained implementatio
149158The same workflow installs the exact candidate in an isolated Maven repository,
150159builds pinned AdvancedCore and VotingPlugin fixtures, verifies their dependency
151160classpath paths and checks that installed candidate JAR hashes were not replaced.
152- It never merges, publishes releases, contacts production, or submits a dependency
153- graph on a pull request. Update the fixture SHAs deliberately when testing newer
161+ It never merges, publishes releases, modifies production services , or submits a
162+ dependency graph on a pull request. Update the fixture SHAs deliberately when testing newer
154163consumer source. SQL tests here cover configuration/linkage, not a live database
155164matrix. Live Minecraft/Folia/Forge/Fabric smoke tests remain application-level work.
156165
@@ -163,5 +172,7 @@ player, messaging, item, inventory and mixed `ArrayUtils` APIs remain untouched;
163172their game operations belong behind adapters during that extraction. Do not replace
164173entity-aware scheduling with a generic global-thread executor.
165174
166- The active HTTP transport PR #73 is deliberately independent. It is not copied or
167- reworked here. Its final shared packaging can be added after that transport lands.
175+ The separate HTTP transport work from PR #73 is not copied or reworked here. It
176+ merged into main while this change was being validated; the PR merge-ref build
177+ tests compatibility with it. Packaging that transport as a thin native dependency
178+ is a separate follow-up, not part of these configuration/data/SQL artifacts.
0 commit comments