Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions client/base/src/main/java/io/a2a/A2A.java
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ private static Message toMessage(String text, Message.Role role, String messageI
}

private static Message toMessage(String text, Message.Role role, String messageId, String contextId, String taskId) {
Message.Builder messageBuilder = new Message.Builder()
Message.Builder messageBuilder = Message.builder()
.role(role)
.parts(Collections.singletonList(new TextPart(text)))
.contextId(contextId)
Expand All @@ -118,7 +118,7 @@ private static Message toMessage(String text, Message.Role role, String messageI
}

private static Message toMessage(List<Part<?>> parts, Message.Role role, String messageId, String contextId, String taskId) {
Message.Builder messageBuilder = new Message.Builder()
Message.Builder messageBuilder = Message.builder()
.role(role)
.parts(parts)
.contextId(contextId)
Expand Down
35 changes: 14 additions & 21 deletions client/base/src/main/java/io/a2a/client/ClientTaskManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,25 +59,21 @@ public Task saveTaskEvent(TaskStatusUpdateEvent taskStatusUpdateEvent) throws A2
}
Task task = currentTask;
if (task == null) {
task = new Task.Builder()
task = Task.builder()
.status(new TaskStatus(TaskState.UNKNOWN))
.id(taskId)
.contextId(contextId == null ? "" : contextId)
.build();
}

Task.Builder taskBuilder = new Task.Builder(task);
Task.Builder taskBuilder = Task.builder(task);
if (taskStatusUpdateEvent.getStatus().message() != null) {
if (task.getHistory() == null) {
taskBuilder.history(taskStatusUpdateEvent.getStatus().message());
} else {
List<Message> history = new ArrayList<>(task.getHistory());
history.add(taskStatusUpdateEvent.getStatus().message());
taskBuilder.history(history);
}
List<Message> history = new ArrayList<>(task.history());
history.add(taskStatusUpdateEvent.getStatus().message());
taskBuilder.history(history);
}
if (taskStatusUpdateEvent.getMetadata() != null) {
Map<String, Object> newMetadata = task.getMetadata() != null ? new HashMap<>(task.getMetadata()) : new HashMap<>();
Map<String, Object> newMetadata = task.metadata() != null ? new HashMap<>(task.metadata()) : new HashMap<>();
newMetadata.putAll(taskStatusUpdateEvent.getMetadata());
taskBuilder.metadata(newMetadata);
}
Expand All @@ -95,7 +91,7 @@ public Task saveTaskEvent(TaskArtifactUpdateEvent taskArtifactUpdateEvent) {
}
Task task = currentTask;
if (task == null) {
task = new Task.Builder()
task = Task.builder()
.status(new TaskStatus(TaskState.UNKNOWN))
.id(taskId)
.contextId(contextId == null ? "" : contextId)
Expand All @@ -114,14 +110,11 @@ public Task saveTaskEvent(TaskArtifactUpdateEvent taskArtifactUpdateEvent) {
* @return the updated task
*/
public Task updateWithMessage(Message message, Task task) {
Task.Builder taskBuilder = new Task.Builder(task);
List<Message> history = task.getHistory();
if (history == null) {
history = new ArrayList<>();
}
if (task.getStatus().message() != null) {
history.add(task.getStatus().message());
taskBuilder.status(new TaskStatus(task.getStatus().state(), null, task.getStatus().timestamp()));
Task.Builder taskBuilder = Task.builder(task);
List<Message> history = new ArrayList<>(task.history());
if (task.status().message() != null) {
history.add(task.status().message());
taskBuilder.status(new TaskStatus(task.status().state(), null, task.status().timestamp()));
}
history.add(message);
taskBuilder.history(history);
Expand All @@ -132,8 +125,8 @@ public Task updateWithMessage(Message message, Task task) {
private void saveTask(Task task) {
currentTask = task;
if (taskId == null) {
taskId = currentTask.getId();
contextId = currentTask.getContextId();
taskId = currentTask.id();
contextId = currentTask.contextId();
}
}
}
12 changes: 1 addition & 11 deletions client/base/src/main/java/io/a2a/client/MessageEvent.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,6 @@ public Message getMessage() {

@Override
public String toString() {
String messageAsString = "{"
+ "role=" + message.getRole()
+ ", parts=" + message.getParts()
+ ", messageId=" + message.getMessageId()
+ ", contextId=" + message.getContextId()
+ ", taskId=" + message.getTaskId()
+ ", metadata=" + message.getMetadata()
+ ", kind=" + message.getKind()
+ ", referenceTaskIds=" + message.getReferenceTaskIds()
+ ", extensions=" + message.getExtensions() + '}';
return "MessageEvent{" + "message=" + messageAsString + '}';
return "MessageEvent{" + "message=" + message + '}';
}
}
78 changes: 39 additions & 39 deletions client/base/src/test/java/io/a2a/A2ATest.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@ public void testToUserMessage() {
String text = "Hello, world!";
Message message = A2A.toUserMessage(text);

assertEquals(Message.Role.USER, message.getRole());
assertEquals(1, message.getParts().size());
assertEquals(text, ((TextPart) message.getParts().get(0)).getText());
assertNotNull(message.getMessageId());
assertNull(message.getContextId());
assertNull(message.getTaskId());
assertEquals(Message.Role.USER, message.role());
assertEquals(1, message.parts().size());
assertEquals(text, ((TextPart) message.parts().get(0)).text());
assertNotNull(message.messageId());
assertNull(message.contextId());
assertNull(message.taskId());
}

@Test
Expand All @@ -34,19 +34,19 @@ public void testToUserMessageWithId() {
String messageId = "test-message-id";
Message message = A2A.toUserMessage(text, messageId);

assertEquals(Message.Role.USER, message.getRole());
assertEquals(messageId, message.getMessageId());
assertEquals(Message.Role.USER, message.role());
assertEquals(messageId, message.messageId());
}

@Test
public void testToAgentMessage() {
String text = "Hello, I'm an agent!";
Message message = A2A.toAgentMessage(text);

assertEquals(Message.Role.AGENT, message.getRole());
assertEquals(1, message.getParts().size());
assertEquals(text, ((TextPart) message.getParts().get(0)).getText());
assertNotNull(message.getMessageId());
assertEquals(Message.Role.AGENT, message.role());
assertEquals(1, message.parts().size());
assertEquals(text, ((TextPart) message.parts().get(0)).text());
assertNotNull(message.messageId());
}

@Test
Expand All @@ -55,8 +55,8 @@ public void testToAgentMessageWithId() {
String messageId = "agent-message-id";
Message message = A2A.toAgentMessage(text, messageId);

assertEquals(Message.Role.AGENT, message.getRole());
assertEquals(messageId, message.getMessageId());
assertEquals(Message.Role.AGENT, message.role());
assertEquals(messageId, message.messageId());
}

@Test
Expand All @@ -67,14 +67,14 @@ public void testCreateUserTextMessage() {

Message message = A2A.createUserTextMessage(text, contextId, taskId);

assertEquals(Message.Role.USER, message.getRole());
assertEquals(contextId, message.getContextId());
assertEquals(taskId, message.getTaskId());
assertEquals(1, message.getParts().size());
assertEquals(text, ((TextPart) message.getParts().get(0)).getText());
assertNotNull(message.getMessageId());
assertNull(message.getMetadata());
assertNull(message.getReferenceTaskIds());
assertEquals(Message.Role.USER, message.role());
assertEquals(contextId, message.contextId());
assertEquals(taskId, message.taskId());
assertEquals(1, message.parts().size());
assertEquals(text, ((TextPart) message.parts().get(0)).text());
assertNotNull(message.messageId());
assertNull(message.metadata());
assertNull(message.referenceTaskIds());
}

@Test
Expand All @@ -83,11 +83,11 @@ public void testCreateUserTextMessageWithNullParams() {

Message message = A2A.createUserTextMessage(text, null, null);

assertEquals(Message.Role.USER, message.getRole());
assertNull(message.getContextId());
assertNull(message.getTaskId());
assertEquals(1, message.getParts().size());
assertEquals(text, ((TextPart) message.getParts().get(0)).getText());
assertEquals(Message.Role.USER, message.role());
assertNull(message.contextId());
assertNull(message.taskId());
assertEquals(1, message.parts().size());
assertEquals(text, ((TextPart) message.parts().get(0)).text());
}

@Test
Expand All @@ -98,12 +98,12 @@ public void testCreateAgentTextMessage() {

Message message = A2A.createAgentTextMessage(text, contextId, taskId);

assertEquals(Message.Role.AGENT, message.getRole());
assertEquals(contextId, message.getContextId());
assertEquals(taskId, message.getTaskId());
assertEquals(1, message.getParts().size());
assertEquals(text, ((TextPart) message.getParts().get(0)).getText());
assertNotNull(message.getMessageId());
assertEquals(Message.Role.AGENT, message.role());
assertEquals(contextId, message.contextId());
assertEquals(taskId, message.taskId());
assertEquals(1, message.parts().size());
assertEquals(text, ((TextPart) message.parts().get(0)).text());
assertNotNull(message.messageId());
}

@Test
Expand All @@ -117,12 +117,12 @@ public void testCreateAgentPartsMessage() {

Message message = A2A.createAgentPartsMessage(parts, contextId, taskId);

assertEquals(Message.Role.AGENT, message.getRole());
assertEquals(contextId, message.getContextId());
assertEquals(taskId, message.getTaskId());
assertEquals(2, message.getParts().size());
assertEquals("Part 1", ((TextPart) message.getParts().get(0)).getText());
assertEquals("Part 2", ((TextPart) message.getParts().get(1)).getText());
assertEquals(Message.Role.AGENT, message.role());
assertEquals(contextId, message.contextId());
assertEquals(taskId, message.taskId());
assertEquals(2, message.parts().size());
assertEquals("Part 1", ((TextPart) message.parts().get(0)).text());
assertEquals("Part 2", ((TextPart) message.parts().get(1)).text());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public class AuthenticationAuthorizationTest {
@BeforeEach
public void setUp() {
server = new ClientAndServer(4001);
MESSAGE = new Message.Builder()
MESSAGE = Message.builder()
.role(Message.Role.USER)
.parts(Collections.singletonList(new TextPart("test message")))
.contextId("context-1234")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public void tearDown() {
public void testSendStreamingMessageParams() {
// The goal here is just to verify the correct parameters are being used
// This is a unit test of the parameter construction, not the streaming itself
Message message = new Message.Builder()
Message message = Message.builder()
.role(Message.Role.USER)
.parts(Collections.singletonList(new TextPart("test message")))
.contextId("context-test")
Expand All @@ -74,8 +74,8 @@ public void testSendStreamingMessageParams() {
assertNotNull(params);
assertEquals(message, params.message());
assertEquals(configuration, params.configuration());
assertEquals(Message.Role.USER, params.message().getRole());
assertEquals("test message", ((TextPart) params.message().getParts().get(0)).getText());
assertEquals(Message.Role.USER, params.message().role());
assertEquals("test message", ((TextPart) params.message().parts().get(0)).text());
}

@Test
Expand All @@ -95,7 +95,7 @@ public void testA2AClientSendStreamingMessage() throws Exception {
);

JSONRPCTransport client = new JSONRPCTransport("http://localhost:4001");
Message message = new Message.Builder()
Message message = Message.builder()
.role(Message.Role.USER)
.parts(Collections.singletonList(new TextPart("tell me some jokes")))
.contextId("context-1234")
Expand Down Expand Up @@ -159,16 +159,16 @@ public void testA2AClientResubscribeToTask() throws Exception {
assertNotNull(eventKind);
assertInstanceOf(Task.class, eventKind);
Task task = (Task) eventKind;
assertEquals("2", task.getId());
assertEquals("context-1234", task.getContextId());
assertEquals(TaskState.COMPLETED, task.getStatus().state());
List<Artifact> artifacts = task.getArtifacts();
assertEquals("2", task.id());
assertEquals("context-1234", task.contextId());
assertEquals(TaskState.COMPLETED, task.status().state());
List<Artifact> artifacts = task.artifacts();
assertEquals(1, artifacts.size());
Artifact artifact = artifacts.get(0);
assertEquals("artifact-1", artifact.artifactId());
assertEquals("joke", artifact.name());
Part<?> part = artifact.parts().get(0);
assertEquals(Part.Kind.TEXT, part.getKind());
assertEquals("Why did the chicken cross the road? To get to the other side!", ((TextPart) part).getText());
assertEquals(Part.Kind.TEXT, part.kind());
assertEquals("Why did the chicken cross the road? To get to the other side!", ((TextPart) part).text());
}
}
Loading