[Feat]: Add Android support for A2A HTTP Client and decouple JdkA2AHttpClient (v0.3.x)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 静か
- 技術スタック
- android
調査の方向性
この issue では、A2A.java とトランスポートプロバイダーに JdkA2AHttpClient がハードコードされていることが言及されています。まず http-client モジュールの構成と既存のクライアントを調べます。A2AHttpClientFactory の実装方法を理解するために、ServiceLoader (SPI) パターンを確認します。spec/ モジュールの records には @JsonProperty アノテーションが必要です。'Done' は、新しい AndroidA2AHttpClient によって SDK が Android で動作し、Jackson の修正が適用されていることを意味します。
索引モデルが issue の本文から書いたものです。
説明
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
A2AHttpClientFactoryandA2AHttpClientProviderusing Java'sServiceLoader(SPI) to dynamically load the best HTTP client available on the classpath. - Android Client: Implement
AndroidA2AHttpClientusingHttpURLConnection(which is safe for Android). - Jackson Fixes: Add
@JsonPropertyannotations to records in thespec/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:
- Decoupling the HTTP client implementation so it is not hardcoded to the JDK client.
- Providing an Android-compatible HTTP client implementation.
- Fixing the Jackson parsing issues for records on Android.
Code of Conduct
- I agree to follow this project's Code of Conduct
- 主要言語
- Java
- スター
- 505
- フォーク
- 185
- 平均マージ
- 1日 9時間
- マージ済み PR(30日)
- 26
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
a2aproject/a2a-java のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
a2aproject/a2a-java#1012 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
a2aproject/a2a-java#464 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Create a sample that demonstrates how to use a shared contextId across multiple tasks再び着手できるかも @tanish111 が 357 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンsample
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
a2aproject/a2a-java#375 · コメント 5 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 28/100
a2aproject/a2a-java#1211 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
a2aproject/a2a-java#1207 ·
メンテナーはふだん 1 日以内に返信
a2aproject/a2a-java の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 4 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
objectionary/lints#1556 ·
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
wildfly/wildfly-launcher#99 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
apache/rocketmq#11427 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
メンテナーはふだん 1 日以内に返信