Skip to content

Modernize Java SDK 3.0.0 and add playlist methods - #4

Merged
wenbinf merged 1 commit into
mainfrom
fix/java-sdk-sync
Sep 24, 2026
Merged

wenbinf merged 1 commit into
mainfrom
fix/java-sdk-sync

Conversation

@wenbinf

@wenbinf wenbinf commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Adds the five playlist write methods and prepares com.listennotes:podcast-api:3.0.0, while preserving all 25 existing public method names and parameter-map conventions. Endpoint wrappers, the standalone test contract, and README reference are generated from the canonical OpenAPI definition and Java registry in the Listen Notes monorepo.

Runtime and compatibility

  • Requires Java 17+ and uses the JDK HTTP client. Requests keep per-client credentials/settings, preserve caller maps, encode nested path parameters, separate query/form fields, and retain explicitly empty notes and descriptions.
  • Preserves existing constructors, JSON/response helpers, and the three legacy no-argument methods. getConnection(String) remains available as a deprecated compatibility helper.
  • Retains status, response headers, exact error bodies, and underlying connection failures. All non-2xx responses throw, including 403 and redirects. Interruption restores the thread's interrupt flag.
  • Upgrades Gradle, org.json, and JUnit with dependency locking and a checksummed wrapper. Replaces obsolete OSSRH/Dokka publishing with signed Central Portal artifacts.

Verification

  • 46 offline tests passed on Java 17 and 25, including every generated method, encoding, empty fields, errors, concurrency, timeout, and interruption.
  • 34 credential-free public mock integration tests passed.
  • Standalone package build passed; all 31 README examples compile against the built JAR without executing requests.
  • JAR, sources, Javadoc, generated POM, and Java 17 Gradle metadata validated.
  • Monorepo generator, Django documentation, frontend typechecking, and snippet tests passed; website Java methods remain gated at published 1.1.6 until Maven Central publication is verified.

CI runs Java 17/25 offline checks and a separate public mock job. Package publication is separate; this PR does not publish to Maven Central.

Production read-only verification

Exercised all 21 GET methods through this SDK against the real v2 API:

  • 19 returned HTTP 200 with valid JSON and usage/latency response headers, including both playlist read methods.
  • spellcheck and fetchRelatedSearches returned HTTP 401 with the explicit API message requiring a PRO or ENTERPRISE plan. The SDK preserved those error responses correctly; successful responses for these two methods could not be verified with the provided key.
  • No POST, PUT, or DELETE requests were sent to production.

GitHub CI passed: Java 17, Java 25, and the public mock integration job.

@wenbinf
wenbinf merged commit b697b40 into main Sep 24, 2026
3 checks passed
@wenbinf
wenbinf deleted the fix/java-sdk-sync branch September 24, 2026 14:47
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.

1 participant