Skip to content

Add sendspin-jvm client implementation#54

Merged
balloob merged 3 commits into
Sendspin:mainfrom
OnFreund:add-sendspin-jvm
May 11, 2026
Merged

Add sendspin-jvm client implementation#54
balloob merged 3 commits into
Sendspin:mainfrom
OnFreund:add-sendspin-jvm

Conversation

@OnFreund
Copy link
Copy Markdown
Contributor

Summary

  • Adds src/conformance/adapters/sendspin_jvm_client.py — Python wrapper that locates and invokes the conformance-client fat JAR from sendspin-jvm
  • Registers sendspin-jvm in IMPLEMENTATIONS: FLAC, no Opus, no discovery, all four role families, both connection modes

Test plan

  • conformance run --from aiosendspin --to sendspin-jvm passes after the JAR is built from a tagged release

- Add src/conformance/adapters/sendspin_jvm_client.py — Python wrapper
  that locates and invokes the conformance-client fat JAR from the
  sendspin-jvm repo
- Register sendspin-jvm in IMPLEMENTATIONS: same capabilities as the
  android-tv JVM client (FLAC, no Opus, no discovery, all role families,
  both connection modes)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Comment on lines +3 to +7
Drop this file into the conformance harness at:
src/conformance/adapters/sendspin_jvm_client.py

Then add an entry to src/conformance/implementations.py — see the project README
or the CI workflow for the exact entry.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wrong doc string.

/ "conformance-client"
/ "build"
/ "libs"
/ "conformance-client.jar"
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is the wrong approach. With the other SDKs, the conformance adapter lives in this repository and we do the build.

Copy link
Copy Markdown
Collaborator

@balloob balloob left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The conformance adapter should live in this repository.

…o_path

- toolchains.py: add find_java() following the pattern of other toolchain helpers
- build.py: add _gradle_build_result() that checks out sendspin-jvm, runs
  ./gradlew :conformance-client:jar, and sets runtime_command_prefix to
  ["java", "-jar", <jar>]; register it as "sendspin-jvm-client" in _build_plan
- sendspin_jvm_client.py: fix docstring; resolve JAR via
  resolve_required_repo_path("sendspin-jvm") instead of parents[4] navigation;
  use find_java() from toolchains
- implementations.py: change build_adapter from "python-adapters" to
  "sendspin-jvm-client"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@OnFreund OnFreund requested a review from balloob May 11, 2026 00:54
Comment thread src/conformance/build.py Outdated

gradlew = repo / ("gradlew.bat" if os.name == "nt" else "gradlew")
jar = repo / "conformance-client" / "build" / "libs" / "conformance-client.jar"
completed = _run_command([str(gradlew), ":conformance-client:jar"], cwd=repo)
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The actual source code for conformance-client should be in this repo

- Add adapters/sendspin-jvm/client/ with Kotlin source (Main.kt,
  CollectingAudioPlayer.kt, NoOpNsdBrowser.kt, NoOpNsdRegistrar.kt)
  and Gradle build files; settings.gradle.kts includes :sendspin-protocol
  from repos/sendspin-jvm via the same relative-path pattern used by
  sendspin-rs and sendspin-dotnet
- build.py: update _gradle_build_result() to build from the adapter dir
  using sendspin-jvm's gradlew with --project-dir; JAR output lands in
  adapters/sendspin-jvm/client/build/libs/
- sendspin_jvm_client.py: simplify JAR path to repo_root() / adapters/...,
  no longer needs resolve_required_repo_path
- implementations.py: remove sendspin-android-tv (private repo; cloning
  it broke setup_repositories.py in CI); sendspin-jvm supersedes it

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@balloob balloob merged commit 19b4e7f into Sendspin:main May 11, 2026
1 of 2 checks passed
@OnFreund OnFreund deleted the add-sendspin-jvm branch May 11, 2026 02:24
@OnFreund
Copy link
Copy Markdown
Contributor Author

Looks like this needs a follow up: #55

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