Skip to content

feat: add public API module - #242

Open
Jakubk15 wants to merge 20 commits into
masterfrom
codex/issue-176-api-module
Open

feat: add public API module#242
Jakubk15 wants to merge 20 commits into
masterfrom
codex/issue-176-api-module

Conversation

@Jakubk15

Copy link
Copy Markdown
Member

Summary

  • split the project into parcellockers-api and parcellockers-plugin modules
  • expose stable parcel and locker contracts, domain models, events, and the ParcelLockersProvider entry point
  • publish the API as com.eternalcode:parcellockers-api:0.5.0-BETA with sources and Javadocs
  • keep plugin-only administrative and lifecycle operations outside the published API artifact
  • harden parcel dispatch, collection, rollback, item-storage reservation, compensation, and per-parcel operation serialization required by the new public facade
  • use JSpecify for nullness metadata

Why

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
  • explicit non-integration :parcellockers-plugin:test matrix covering all 17 unit-test classes
  • git diff --check

Both Gradle test runs completed with BUILD SUCCESSFUL on 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

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add API module

1 participant