Class JSONRPCTransportConfigBuilder
java.lang.Object
org.a2aproject.sdk.client.transport.spi.ClientTransportConfigBuilder<JSONRPCTransportConfig,JSONRPCTransportConfigBuilder>
org.a2aproject.sdk.client.transport.jsonrpc.JSONRPCTransportConfigBuilder
public class JSONRPCTransportConfigBuilder
extends org.a2aproject.sdk.client.transport.spi.ClientTransportConfigBuilder<JSONRPCTransportConfig,JSONRPCTransportConfigBuilder>
Builder for creating
JSONRPCTransportConfig instances.
This builder provides a fluent API for configuring the JSON-RPC transport protocol. All configuration options are optional - if not specified, sensible defaults are used:
- HTTP client: Auto-selected via
A2AHttpClientFactory(prefers Vert.x, falls back to JDK) - Interceptors: None
Basic usage:
// Minimal configuration (uses all defaults)
JSONRPCTransportConfig config = new JSONRPCTransportConfigBuilder()
.build();
Client client = Client.builder(agentCard)
.withTransport(JSONRPCTransport.class, config)
.build();
Custom HTTP client:
// Configure custom HTTP client for connection pooling, timeouts, etc.
A2AHttpClient httpClient = new ApacheHttpClient()
.withConnectionTimeout(Duration.ofSeconds(10))
.withMaxConnections(50);
JSONRPCTransportConfig config = new JSONRPCTransportConfigBuilder()
.httpClient(httpClient)
.build();
With interceptors:
JSONRPCTransportConfig config = new JSONRPCTransportConfigBuilder()
.addInterceptor(new LoggingInterceptor())
.addInterceptor(new MetricsInterceptor())
.addInterceptor(new RetryInterceptor(3))
.build();
Direct usage in ClientBuilder:
// Can pass builder directly to withTransport()
Client client = Client.builder(agentCard)
.withTransport(JSONRPCTransport.class, new JSONRPCTransportConfigBuilder()
.httpClient(customClient)
.addInterceptor(loggingInterceptor))
.build();
- See Also:
-
JSONRPCTransportConfigJSONRPCTransportA2AHttpClientJdkA2AHttpClient
-
Field Summary
Fields inherited from class org.a2aproject.sdk.client.transport.spi.ClientTransportConfigBuilder
interceptors -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuild()Build the JSON-RPC transport configuration.httpClient(org.a2aproject.sdk.client.http.A2AHttpClient httpClient) Set the HTTP client to use for JSON-RPC requests.Methods inherited from class org.a2aproject.sdk.client.transport.spi.ClientTransportConfigBuilder
addInterceptor
-
Constructor Details
-
JSONRPCTransportConfigBuilder
public JSONRPCTransportConfigBuilder()
-
-
Method Details
-
httpClient
public JSONRPCTransportConfigBuilder httpClient(org.a2aproject.sdk.client.http.A2AHttpClient httpClient) Set the HTTP client to use for JSON-RPC requests.Custom HTTP clients can provide:
- Connection pooling and reuse
- Custom timeout configuration
- SSL/TLS configuration
- Proxy support
- Custom header handling
If not specified, a client is auto-selected via
A2AHttpClientFactory.Example:
A2AHttpClient client = new CustomHttpClient() .withConnectTimeout(Duration.ofSeconds(5)) .withReadTimeout(Duration.ofSeconds(30)) .withConnectionPool(10, 50); builder.httpClient(client);- Parameters:
httpClient- the HTTP client to use- Returns:
- this builder for method chaining
-
build
Build the JSON-RPC transport configuration.If no HTTP client was configured, one is auto-selected via
A2AHttpClientFactory. Any configured interceptors are transferred to the configuration.- Specified by:
buildin classorg.a2aproject.sdk.client.transport.spi.ClientTransportConfigBuilder<JSONRPCTransportConfig,JSONRPCTransportConfigBuilder> - Returns:
- the configured JSON-RPC transport configuration
-