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

Aberta
#793 12 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 2 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
45/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Pouca atividade
Stack de tecnologia
android

Direção de pesquisa

A issue menciona JdkA2AHttpClient codificado diretamente em A2A.java e nos provedores de transporte. Comece examinando a estrutura do módulo http-client e o cliente existente. Procure o padrão de ServiceLoader (SPI) para entender como implementar A2AHttpClientFactory. Os records do módulo spec/ precisam de anotações @JsonProperty. 'Done' significa que o SDK funciona no Android com um novo AndroidA2AHttpClient e que as correções do Jackson foram aplicadas.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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
  • I agree to follow this project's Code of Conduct
Linguagem predominante
Java
Estrelas
507
Forks
192
Merge médio
4d 2h
PRs com merge (30d)
30

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de a2aproject/a2a-java

Todas as issues de a2aproject/a2a-java

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.