{"id":48125231,"url":"https://github.com/rhusar/wildfly-a2a-feature-pack","last_synced_at":"2026-04-04T16:25:50.446Z","repository":{"id":339396217,"uuid":"1158041832","full_name":"rhusar/wildfly-a2a-feature-pack","owner":"rhusar","description":"A WildFly feature pack implementing the open-standard Agent2Agent (A2A) Protocol to enable universal interoperability and seamless collaboration between AI agents across diverse frameworks and vendors.","archived":false,"fork":false,"pushed_at":"2026-02-26T20:04:37.000Z","size":130,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-27T00:34:37.778Z","etag":null,"topics":["a2a","a2a-protocol","a2a-server","feature-pack","java","wildfly"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rhusar.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":"dco.txt","cla":null}},"created_at":"2026-02-14T17:49:35.000Z","updated_at":"2026-02-26T20:04:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rhusar/wildfly-a2a-feature-pack","commit_stats":null,"previous_names":["rhusar/wildfly-a2a-feature-pack"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rhusar/wildfly-a2a-feature-pack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhusar%2Fwildfly-a2a-feature-pack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhusar%2Fwildfly-a2a-feature-pack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhusar%2Fwildfly-a2a-feature-pack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhusar%2Fwildfly-a2a-feature-pack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rhusar","download_url":"https://codeload.github.com/rhusar/wildfly-a2a-feature-pack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rhusar%2Fwildfly-a2a-feature-pack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31405700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a2a","a2a-protocol","a2a-server","feature-pack","java","wildfly"],"created_at":"2026-04-04T16:25:45.222Z","updated_at":"2026-04-04T16:25:50.433Z","avatar_url":"https://github.com/rhusar.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":":toc:\n= WildFly A2A Feature Pack\n\nWARNING: This is an unsupported experimental POC implementation. Use with caution.\n\nA WildFly feature pack implementing the open-standard Agent2Agent (A2A) Protocol to enable universal interoperability and seamless collaboration between AI agents across diverse frameworks and vendors.\n\n== Building\n\nWARNING: To pass all tests, a gRPC Feature Pack with fix for https://github.com/wildfly-extras/wildfly-grpc-feature-pack/issues/430 is required.\nThus, temporarily use an unrelease version compiled from the `main` branch.\n\nFirst, clone and build the https://github.com/wildfly-extras/wildfly-grpc-feature-pack[wildfly-grpc-feature-pack]:\n\n[source,bash]\n----\ngit clone https://github.com/wildfly-extras/wildfly-grpc-feature-pack.git\ncd wildfly-grpc-feature-pack\n./mvnw install -DskipTests\n----\n\nThen, build the A2A feature pack:\n\n[source,bash]\n----\ngit clone https://github.com/rhusar/wildfly-a2a-feature-pack.git\ncd wildfly-a2a-feature-pack\n./mvnw install -DskipTests\n----\n\n== Provisioning with Maven\n\nUse the `wildfly-maven-plugin` to provision WildFly with the A2A feature pack.\n\n=== A2A Server with All Transports (JSON-RPC, gRPC, REST)\n\nFor gRPC support, include the https://github.com/wildfly-extras/wildfly-grpc-feature-pack[wildfly-grpc-feature-pack]:\n\n[source,xml]\n----\n\u003cplugin\u003e\n    \u003cgroupId\u003eorg.wildfly.plugins\u003c/groupId\u003e\n    \u003cartifactId\u003ewildfly-maven-plugin\u003c/artifactId\u003e\n    \u003cversion\u003e5.1.5.Final\u003c/version\u003e\n    \u003cconfiguration\u003e\n        \u003cfeature-packs\u003e\n            \u003cfeature-pack\u003e\n                \u003cgroupId\u003eorg.wildfly\u003c/groupId\u003e\n                \u003cartifactId\u003ewildfly-galleon-pack\u003c/artifactId\u003e\n                \u003cversion\u003e39.0.1.Final\u003c/version\u003e\n            \u003c/feature-pack\u003e\n            \u003cfeature-pack\u003e\n                \u003cgroupId\u003eorg.wildfly.grpc\u003c/groupId\u003e\n                \u003cartifactId\u003ewildfly-grpc-feature-pack\u003c/artifactId\u003e\n                \u003cversion\u003e0.1.17-SNAPSHOT\u003c/version\u003e\n            \u003c/feature-pack\u003e\n            \u003cfeature-pack\u003e\n                \u003cgroupId\u003eorg.wildfly.a2a\u003c/groupId\u003e\n                \u003cartifactId\u003ewildfly-a2a-feature-pack\u003c/artifactId\u003e\n                \u003cversion\u003e0.0.1.Alpha1-SNAPSHOT\u003c/version\u003e\n            \u003c/feature-pack\u003e\n        \u003c/feature-packs\u003e\n        \u003clayers\u003e\n            \u003clayer\u003ecloud-server\u003c/layer\u003e\n            \u003clayer\u003ea2a-server-jsonrpc\u003c/layer\u003e\n            \u003clayer\u003ea2a-server-grpc\u003c/layer\u003e\n            \u003clayer\u003ea2a-server-http-json\u003c/layer\u003e\n            \u003clayer\u003egrpc\u003c/layer\u003e\n        \u003c/layers\u003e\n        \u003cgalleon-options\u003e\n            \u003cjboss-fork-embedded\u003etrue\u003c/jboss-fork-embedded\u003e\n            \u003cstability-level\u003eexperimental\u003c/stability-level\u003e\n        \u003c/galleon-options\u003e\n    \u003c/configuration\u003e\n    \u003cexecutions\u003e\n        \u003cexecution\u003e\n            \u003cgoals\u003e\n                \u003cgoal\u003epackage\u003c/goal\u003e\n            \u003c/goals\u003e\n        \u003c/execution\u003e\n    \u003c/executions\u003e\n\u003c/plugin\u003e\n----\n\n== Layers\n\nThe feature pack provides the following Galleon layers:\n\n|===\n|Layer |Description\n\n|`a2a` |Base layer with A2A subsystem\n|`a2a-client-jsonrpc` |A2A client with JSON-RPC 2.0 over HTTP transport\n|`a2a-client-grpc` |A2A client with gRPC binary protocol transport\n|`a2a-client-http-json` |A2A client with RESTful HTTP/JSON transport\n|`a2a-server-jsonrpc` |A2A server with JSON-RPC 2.0 over HTTP transport\n|`a2a-server-grpc` |A2A server with gRPC binary protocol transport\n|`a2a-server-http-json` |A2A server with RESTful HTTP/JSON transport\n|===\n\nServer layers include both the A2A SDK transport module and the Jakarta EE implementation. Client layers include only the SDK transport module.\n\n\n== Running Integration Tests\n\nBased on https://github.com/wildfly-extras/a2a-java-sdk-server-jakarta[a2a-java-sdk-server-jakarta] testing approach.\n\n[source,bash]\n----\nmvn clean install                                  # All tests\nmvn clean test -pl testsuite/integration/jsonrpc   # JSON-RPC only\nmvn clean test -pl testsuite/integration/grpc      # gRPC only\nmvn clean test -pl testsuite/integration/http-json # HTTP-JSON only\n----\n\n== Running the TCK\n\nThe feature pack includes a TCK (Test Compatibility Kit) module that runs the official A2A protocol TCK against WildFly.\n\n=== Prerequisites\n\n* Java 17 (or newer)\n* Maven 3.9 (or newer)\n* Python 3.11 (or newer) with `uv` package manager\n\n=== Build and Run TCK\n\n1. Build the feature pack:\n\n[source,bash]\n----\nmvn clean install\n----\n\n1. Build and provision the TCK server:\n\n[source,bash]\n----\nmvn package -pl tck -am\n----\n\n. Start the WildFly server:\n\n[source,bash]\n----\nSUT_JSONRPC_URL=http://localhost:8080 SUT_GRPC_URL=http://localhost:9555 SUT_REST_URL=http://localhost:8080 tck/target/wildfly/bin/standalone.sh --stability=preview\n----\n\n. Clone and set up the A2A TCK:\n\n[source,bash]\n----\ngit clone https://github.com/a2aproject/a2a-tck.git\ncd a2a-tck\npip install uv\nuv pip install -e .\n----\n\n. Run the TCK:\n\n[source,bash]\n----\nTCK_STREAMING_TIMEOUT=4.0 SUT_JSONRPC_URL=http://localhost:8080 SUT_GRPC_URL=http://localhost:9555 SUT_REST_URL=http://localhost:8080 uv run ./run_tck.py --sut-url http://localhost:8080 --category all --transports jsonrpc,grpc,rest --compliance-report report.json\n----\n\n. Stop the server:\n\n[source,bash]\n----\nmvn wildfly:shutdown -pl tck\n----\n\nTCK Endpoints Reference\n\n* JSON-RPC: `http://localhost:8080`\n* REST (HTTP-JSON): `http://localhost:8080`\n* gRPC: `localhost:9555` (gRPC endpoint provisioned by the FP runs on separate Netty-back port)\n\n== Resources\n\n* https://a2aprotocol.ai/[A2A Protocol] - Official A2A protocol specification\n* https://github.com/a2aproject/A2A[A2A] - Reference implementation of the A2A protocol\n* https://github.com/a2aproject/a2a-java[a2a-java] - Java SDK for A2A protocol\n* https://github.com/a2aproject/a2a-tck[a2a-tck] - Official A2A protocol TCK\n* https://github.com/wildfly-extras/a2a-java-sdk-server-jakarta[a2a-java-sdk-server-jakarta] - Jakarta EE server implementation of A2A Java SDK\n* https://github.com/wildfly-extras/wildfly-ai-feature-pack[wildfly-ai-feature-pack] - WildFly feature pack for AI/LLM integration (LangChain4j)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhusar%2Fwildfly-a2a-feature-pack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frhusar%2Fwildfly-a2a-feature-pack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frhusar%2Fwildfly-a2a-feature-pack/lists"}