Skip to content

Generated Java SDK contract markers#101

Draft
kvz wants to merge 9 commits into
mainfrom
sdk-gen-java
Draft

Generated Java SDK contract markers#101
kvz wants to merge 9 commits into
mainfrom
sdk-gen-java

Conversation

@kvz
Copy link
Copy Markdown
Member

@kvz kvz commented Jun 2, 2026

Experimental Status

Experimental work: this PR is part of the API2 contract/generated SDK effort and is intentionally kept as a Draft while the generated surface is validated.

Why

API2 now has a Java Transloadit SDK adapter that can mechanically render Java SDK endpoint methods from contract metadata. This companion PR gives that generator real marker regions to rewrite and compare, plus checked-in consumer examples that prove the generated endpoint surface against devdock.

What changed

  • The checked-in TUS Assembly example now reads createTusAssembly input from generic scenario.preparations[] instead of the removed API2 compatibility field.
  • Added API2 generated endpoint markers around Java SDK methods for Assembly create/status/cancel/list, Template create/get/update/delete/list, and Bill retrieval.
  • Added an API2 generated feature marker for Transloadit.createTusAssembly(fileCount), which builds the contract-owned TUS Assembly request and delegates to the generated createAssembly(options, extraData) endpoint method.
  • Added an API2 generated URL endpoint variant marker for Transloadit.getAssemblyByUrl(url) and a generated Transloadit.waitForAssembly(assemblyUrl) polling feature.
  • Kept the existing JavaDoc outside endpoint generated blocks so human-facing SDK docs remain checked in while the mechanical request methods become contract-owned.
  • Added examples/src/main/java/com/transloadit/examples/Api2DevdockTemplateLifecycle.java, a hand-written Java example that reads API2's injected transloaditTemplateLifecycle scenario JSON, runs create/get/list/update/delete, and writes observed result JSON for API2 to assert.
  • Added examples/src/main/java/com/transloadit/examples/Api2DevdockTusAssembly.java, a hand-written Java example that calls generated high-level createTusAssembly(fileCount), uploads contract-owned fixture bytes through tus-java-client to the returned tus_url, then calls generated waitForAssembly(assemblyUrl).
  • Enabled the examples Gradle project and added :examples:api2DevdockTemplateLifecycle and :examples:api2DevdockTusAssembly.
  • The generated blocks are owned by API2 contracts; fixes should land in API2 and be regenerated here. The example source is intentionally hand-written SDK repo code, not generated.

Companion PRs

Validation

  • From API2: api2/bin/cli.ts contracts sdks --no-motd --target transloadit --platform java --sdk-root ../java-sdk --compare-existing
  • From API2: api2/bin/cli.ts contracts sdks --no-motd --target transloadit --platform java --feature-id createTusAssembly --sdk-root ../java-sdk --rewrite-sdk --compare-existing
  • From API2: api2/bin/cli.ts contracts sdks --no-motd --target transloadit --platform java --sdk-root ../java-sdk --rewrite-sdk --compare-existing (13 comparisons)
  • From API2: api2/bin/cli.ts contracts sdks qa --no-motd --target transloadit --platform java --dry-run
  • Java SDK: ./gradlew -q :examples:classes
  • Java SDK: ./gradlew test
  • From API2: core/bin/devdock.ts exec tstrun system/sdk_examples/java-transloadit-examples.test.ts -vv --max-time-per-test 600

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Jun 2, 2026

Codecov Report

❌ Patch coverage is 0% with 97 lines in your changes missing coverage. Please review.
✅ Project coverage is 68.65%. Comparing base (5c770cb) to head (df3c8e3).

Files with missing lines Patch % Lines
src/main/java/com/transloadit/sdk/Transloadit.java 0.00% 91 Missing ⚠️
...a/com/transloadit/sdk/UploadTusAssemblyResult.java 0.00% 6 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main     #101      +/-   ##
============================================
- Coverage     77.04%   68.65%   -8.40%     
  Complexity      217      217              
============================================
  Files            13       14       +1     
  Lines           793      890      +97     
  Branches         71       80       +9     
============================================
  Hits            611      611              
- Misses          146      243      +97     
  Partials         36       36              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

2 participants