11package io .a2a .examples .cloud ;
22
3+ import java .io .IOException ;
4+ import java .util .Collections ;
5+ import java .util .HashMap ;
6+ import java .util .List ;
7+ import java .util .Map ;
8+ import java .util .concurrent .CountDownLatch ;
9+ import java .util .concurrent .TimeUnit ;
10+ import java .util .concurrent .atomic .AtomicBoolean ;
11+ import java .util .concurrent .atomic .AtomicInteger ;
12+
313import io .a2a .A2A ;
414import io .a2a .client .Client ;
515import io .a2a .client .ClientEvent ;
919import io .a2a .client .config .ClientConfig ;
1020import io .a2a .client .transport .jsonrpc .JSONRPCTransport ;
1121import io .a2a .client .transport .jsonrpc .JSONRPCTransportConfigBuilder ;
12- import io .a2a .spec .A2AClientError ;
13- import io .a2a .spec .A2AClientException ;
1422import io .a2a .spec .AgentCard ;
1523import io .a2a .spec .Message ;
1624import io .a2a .spec .Part ;
17- import io .a2a .spec .Task ;
1825import io .a2a .spec .TaskArtifactUpdateEvent ;
1926import io .a2a .spec .TaskIdParams ;
2027import io .a2a .spec .TextPart ;
2128
22- import java .io .IOException ;
23- import java .util .Collections ;
24- import java .util .HashMap ;
25- import java .util .List ;
26- import java .util .Map ;
27- import java .util .concurrent .CountDownLatch ;
28- import java .util .concurrent .TimeUnit ;
29- import java .util .concurrent .atomic .AtomicBoolean ;
30- import java .util .concurrent .atomic .AtomicInteger ;
31-
3229/**
3330 * Test client demonstrating multi-pod A2A agent deployment with modernized message protocol.
3431 * <p>
@@ -54,6 +51,7 @@ public class A2ACloudExampleClient {
5451 private static final int MESSAGE_INTERVAL_MS = Integer .parseInt (System .getProperty ("message.interval.ms" , "1500" ));
5552 private static final boolean CI_MODE = Boolean .parseBoolean (System .getProperty ("ci.mode" , "false" )); // Early exit when 2 pods observed
5653 private static final int MAX_MESSAGES_UNTIL_TWO_PODS = Integer .parseInt (System .getProperty ("max.messages.until.two.pods" , "20" )); // Max messages before giving up
54+ private static final int MIN_PODS_TO_OBSERVE = 2 ;
5755
5856 // Test state
5957 private final Map <String , Integer > observedPods = Collections .synchronizedMap (new HashMap <>());
@@ -362,8 +360,8 @@ private void printResults() {
362360 if (testFailed .get ()) {
363361 System .out .println ("✗ TEST FAILED - Errors occurred during execution" );
364362 System .exit (1 );
365- } else if (observedPods .size () < 2 ) {
366- System .out .println ("✗ TEST FAILED - Expected at least 2 different pods, but only saw: " + observedPods .size ());
363+ } else if (observedPods .size () < MIN_PODS_TO_OBSERVE ) {
364+ System .out .printf ("✗ TEST FAILED - Expected at least %d different pods, but only saw: %d \n " , MIN_PODS_TO_OBSERVE , observedPods .size ());
367365 System .out .println (" This suggests load balancing is not working correctly." );
368366 System .exit (1 );
369367 } else {
0 commit comments