Extract shared SQL user access with existing backend adapters - #321
Merged
Merged
Conversation
BenCodez
marked this pull request as ready for review
September 12, 2026 22:56
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dependency and merge order
Depends on #320. Merge FLAT removal first. This branch contains #320's commit followed by one SQL-access commit. It targets
masterso the existing Maven PR workflow validates the combined candidate without adding or modifying a workflow. The incremental SQL-only diff ise0f56679b12b0f0d7e67c655383e0f33b628d938..b789d7b1b95252f05083f717a039fc9ff0841975(10 files).Summary
core.user.storage.SqlUserStorageandSqlUserDataAccessfor live SQL row interpretation, typed reads/writes, keys/values, existence, deletion, and bulk writes.BukkitSqlUserStorageadapting the existing SQLite/MySQL user-table providers through lazy plugin/UUID suppliers. No new connection pool, JDBC implementation, cache, identity resolver, executor, or write queue.UserDataSQL paths use the shared access layer immediately. Keep its public method signatures and private temporary-cache field/accessors.getMySqlRow,getSQLiteRow, andconverthooks for existing subclasses. Readers do not capture a stale row/provider during construction.Compatibility and scope
This is the SQL access boundary, not a claim that the entire native storage/user runtime is finished. Bukkit-facing provider construction, SQLite bootstrap, schema registration, UserManager enumeration, user-cache lifecycle, and final native packaging remain follow-ups. Native code can supply a storage port without an AdvancedCorePlugin; the current Bukkit adapter retains the existing providers.
The provider's existing behavior is retained, including the MySQL unavailable-provider bulk no-op and SQLite cumulative per-entry bulk updates. No new durable-completion, atomic-batch, or retry guarantee is invented. #317's async reward checkpoints/completion semantics remain separate and must be preserved when reconciling overlapping work.
One Maven project. No POM, dependencies, workflows, schema, persistence encoding, migration, or reward-execution changes beyond the prerequisite FLAT removal. SimpleAPI stays
1.0.2-SNAPSHOT; #314 stays closed and the unwanted pinning test stays removed.Verified GitHub Actions build
Java CI with Maven — run 603 passed. Inspected completed build job
103632505558and its Maven log:mvn -B -f AdvancedCore/pom.xml packageon Temurin Java 21.0.12.BukkitSqlUserStorageTest(3),SqlUserDataAccessTest(5),SqlUserDataFacadeTest(5), andSqlAccessHeadlessTest(1).1.0.2-20260912.212854-22. This records tested inputs; the POM remains1.0.2-SNAPSHOT.AdvancedCore/target/AdvancedCore.jargenerated; shading/minimization completed; BUILD SUCCESS.248544428ea8d3b9d4d120390cc3f8bdf635c155for candidateb789d7b1b95252f05083f717a039fc9ff0841975and baseb03cb7f8a26c22e1e35b0c1a44ac1df7d5d8098d.These are GitHub Actions results, not full local Maven validation. Shade emitted overlap/minimization warnings; successful packaging does not establish packaged runtime compatibility.
Local checks
git diff --cached --checkpassed for the complete 10-file incremental diff in an exact-baseline partial Git fixture. The uploaded UserData blob matches the locally checked bytes.Draft validation limits
Maven is absent and external dependency/repository DNS is unavailable in the editing container. Full local/downstream builds, real database round trips, packaged linkage, live server testing, and a fresh independent reviewer have not run. Same-context source inspection is not an independent clean verdict.
Prerequisite:
e0f56679b12b0f0d7e67c655383e0f33b628d938(#320).Candidate:
b789d7b1b95252f05083f717a039fc9ff0841975.No merge, release, deployment, or manual external review request was performed.