a2aproject / a2aproject/a2a-java

[Feat]: Add Android support for A2A HTTP Client and decouple JdkA2AHttpClient (v0.3.x)

Offen
#793 12 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Java
Sterne
490
Forks
172
Ø Merge
1 T. 6 Std.
Gemergte PRs (30 T.)
55

Beschreibung

### Is your feature request related to a problem? Please describe.

## Problem

Currently, the A2A Java SDK hardcodes the use of `JdkA2AHttpClient` in several places (such as `A2A.java` and various transport providers). This client relies on `java.net.http.HttpClient`, which is not available in standard Android environments, making the SDK unusable on Android.
Additionally, when running on Android, Jackson fails to deserialize Java records properly without explicit property annotations, leading to parsing errors for spec models.

### Describe the solution you'd like

## Proposed Solution

- **SPI Pattern**: Introduce `A2AHttpClientFactory` and `A2AHttpClientProvider` using Java's `ServiceLoader` (SPI) to dynamically load the best HTTP client available on the classpath.
- **Android Client**: Implement `AndroidA2AHttpClient` using `HttpURLConnection` (which is safe for Android).
- **Jackson Fixes**: Add `@JsonProperty` annotations to records in the `spec/` module to ensure they can be parsed on Android.

### Describe alternatives you've considered

_No response_

### Additional context

## Goal

The goal is to make the `http-client` module compatible with Android by:
1. Decoupling the HTTP client implementation so it is not hardcoded to the JDK client.
2. Providing an Android-compatible HTTP client implementation.
3. Fixing the Jackson parsing issues for records on Android.

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.