Conversation
Contributor
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
…ApiSurfaceTest.java
Jakubk15
commented
Aug 15, 2026
Jakubk15
left a comment
Member
Author
There was a problem hiding this comment.
- Ensure you're using imports, not fully qualified class names
- Keep it simple and stupid, do not use overly complicated enterprise-grade callbacks and atomicity for a simple Minecraft plugin
- Ensure the tests are actually worth it rather than blind-writing tests for every feature
- Answer why PublicParcelService and PluginParcelService cannot be merged
…alCodeTeam/ParcelLockers into codex/issue-176-api-module
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…246) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jakub Kędziora <77227023+Jakubk15@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Drop in-memory parcel operation serialization, ThreadLocal event guards
and item storage reservations; rely on atomic DB updates
(saveIfAbsent, updateIfStatus, commitCollection) instead
- Simplify ParcelServiceImpl, ParcelDispatchService, AdminParcelService,
ParcelSendTask and PublicParcelService, remove duplicated compensation
- Remove unused markCollected/rollbackCollection repository methods and
redundant null checks
- Inject logger into ParcelDispatchService, document PluginParcelService
- Replace subprojects {} with a buildSrc convention plugin, publish
snapshots to the snapshots repository, drop AOT runServer flags
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MySQL rejects a UNIQUE index on a TEXT column without a key length, so the lockers table could never be created on MySQL. Existing tables on other databases are left untouched by CREATE TABLE IF NOT EXISTS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Unwrap the CompletionException so ParcelOperationException carries the real failure. Fix ParcelServiceImplTest mocks: deep stubs could not follow the self-typed notice builder and the scheduler answer returned a Boolean instead of a Task. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Await repository saves before reading them back, and replace real ItemStacks (which need a running server) with marker mocks shared via TestItemStacks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Check the sender's balance before inserting the parcel, so an unaffordable send never leaves a row behind; report a failed compensating delete with the parcel UUID - Keep the parcel and its content when the sender's items cannot be restored after a delivery-creation failure, instead of rolling back the only remaining copy of the items - Refuse dispatch to a destination locker that does not exist - Reject more items than the parcel size can hold in the public API; move the capacity to ParcelSize#capacity() - Validate non-null fields in the Parcel record constructor - Remove unused imports and fix the test location in AGENTS.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Summary
parcellockers-apiandparcellockers-pluginmodulesParcelLockersProviderentry pointcom.eternalcode:parcellockers-api:0.5.0-BETAwith sources and JavadocsWhy
External plugins currently cannot depend on a small, supported ParcelLockers contract without coupling to the complete plugin implementation. The new module provides a consumer-facing artifact for listening to events and managing parcels and lockers through service interfaces.
Impact
Existing plugin wiring now registers the public API provider during startup and clears it during shutdown. Consumers can compile against the API artifact while implementation details remain in the plugin module and deployable shadow JAR.
Verification
./gradlew :parcellockers-api:test --rerun-tasks:parcellockers-plugin:testmatrix covering all 17 unit-test classesgit diff --checkBoth Gradle test runs completed with
BUILD SUCCESSFULon the final commit.Docker/Testcontainers integration tests were intentionally skipped. H2/PostgreSQL schema-upgrade and cross-table transaction scenarios will be verified manually.
Closes #176