Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bb31a8e

Browse files
authored
fix!: messageId should be required for a Message (#260)
# Description Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [x] Follow the [`CONTRIBUTING` Guide](../CONTRIBUTING.md). - [x] Make your Pull Request title in the <https://www.conventionalcommits.org/> specification. - Important Prefixes for [release-please](https://github.com/googleapis/release-please): - `fix:` which represents bug fixes, and correlates to a [SemVer](https://semver.org/) patch. - `feat:` represents a new feature, and correlates to a SemVer minor. - `feat!:`, or `fix!:`, `refactor!:`, etc., which represent a breaking change (indicated by the `!`) and will result in a SemVer major. - [x] Ensure the tests pass - [x] Appropriate READMEs were updated (if necessary) Fixes #<issue_number_goes_here> 🦕
1 parent b77cad2 commit bb31a8e

File tree

4 files changed

+20
-14
lines changed

4 files changed

+20
-14
lines changed

server-common/src/test/java/io/a2a/server/agentexecution/RequestContextTest.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
public class RequestContextTest {
2525

26+
private static final String MESSAGE_ID = "123";
27+
2628
@Test
2729
public void testInitWithoutParams() {
2830
RequestContext context = new RequestContext(null, null, null, null, null, null);
@@ -35,7 +37,7 @@ public void testInitWithoutParams() {
3537

3638
@Test
3739
public void testInitWithParamsNoIds() {
38-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).build();
40+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).build();
3941
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
4042

4143
UUID taskId = UUID.fromString("00000000-0000-0000-0000-000000000001");
@@ -59,7 +61,7 @@ public void testInitWithParamsNoIds() {
5961
@Test
6062
public void testInitWithTaskId() {
6163
String taskId = "task-123";
62-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId(taskId).build();
64+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId(taskId).build();
6365
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
6466

6567
RequestContext context = new RequestContext(mockParams, taskId, null, null, null, null);
@@ -71,7 +73,7 @@ public void testInitWithTaskId() {
7173
@Test
7274
public void testInitWithContextId() {
7375
String contextId = "context-456";
74-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).contextId(contextId).build();
76+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).contextId(contextId).build();
7577
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
7678
RequestContext context = new RequestContext(mockParams, null, contextId, null, null, null);
7779

@@ -83,7 +85,7 @@ public void testInitWithContextId() {
8385
public void testInitWithBothIds() {
8486
String taskId = "task-123";
8587
String contextId = "context-456";
86-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId(taskId).contextId(contextId).build();
88+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId(taskId).contextId(contextId).build();
8789
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
8890
RequestContext context = new RequestContext(mockParams, taskId, contextId, null, null, null);
8991

@@ -95,7 +97,7 @@ public void testInitWithBothIds() {
9597

9698
@Test
9799
public void testInitWithTask() {
98-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).build();
100+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).build();
99101
var mockTask = new Task.Builder().id("task-123").contextId("context-456").status(new TaskStatus(TaskState.COMPLETED)).build();
100102
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
101103

@@ -130,7 +132,7 @@ public void testAttachRelatedTask() {
130132
@Test
131133
public void testCheckOrGenerateTaskIdWithExistingTaskId() {
132134
String existingId = "existing-task-id";
133-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId(existingId).build();
135+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId(existingId).build();
134136
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
135137

136138
RequestContext context = new RequestContext(mockParams, null, null, null, null, null);
@@ -143,7 +145,7 @@ public void testCheckOrGenerateTaskIdWithExistingTaskId() {
143145
public void testCheckOrGenerateContextIdWithExistingContextId() {
144146
String existingId = "existing-context-id";
145147

146-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).contextId(existingId).build();
148+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).contextId(existingId).build();
147149
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
148150

149151
RequestContext context = new RequestContext(mockParams, null, null, null, null, null);
@@ -154,7 +156,7 @@ public void testCheckOrGenerateContextIdWithExistingContextId() {
154156

155157
@Test
156158
public void testInitRaisesErrorOnTaskIdMismatch() {
157-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId("task-123").build();
159+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId("task-123").build();
158160
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
159161
var mockTask = new Task.Builder().id("task-123").contextId("context-456").status(new TaskStatus(TaskState.COMPLETED)).build();
160162

@@ -166,7 +168,7 @@ public void testInitRaisesErrorOnTaskIdMismatch() {
166168

167169
@Test
168170
public void testInitRaisesErrorOnContextIdMismatch() {
169-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId("task-123").contextId("context-456").build();
171+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId("task-123").contextId("context-456").build();
170172
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
171173
var mockTask = new Task.Builder().id("task-123").contextId("context-456").status(new TaskStatus(TaskState.COMPLETED)).build();
172174

@@ -198,7 +200,7 @@ public void testMessagePropertyWithoutParams() {
198200

199201
@Test
200202
public void testMessagePropertyWithParams() {
201-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).build();
203+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).build();
202204
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
203205

204206
RequestContext context = new RequestContext(mockParams, null, null, null, null, null);
@@ -210,7 +212,7 @@ public void testInitWithExistingIdsInMessage() {
210212
String existingTaskId = "existing-task-id";
211213
String existingContextId = "existing-context-id";
212214

213-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart("")))
215+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart("")))
214216
.taskId(existingTaskId).contextId(existingContextId).build();
215217
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
216218

@@ -222,7 +224,7 @@ public void testInitWithExistingIdsInMessage() {
222224

223225
@Test
224226
public void testInitWithTaskIdAndExistingTaskIdMatch() {
225-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId("task-123").contextId("context-456").build();
227+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId("task-123").contextId("context-456").build();
226228
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
227229
var mockTask = new Task.Builder().id("task-123").contextId("context-456").status(new TaskStatus(TaskState.COMPLETED)).build();
228230

@@ -235,7 +237,7 @@ public void testInitWithTaskIdAndExistingTaskIdMatch() {
235237

236238
@Test
237239
public void testInitWithContextIdAndExistingContextIdMatch() {
238-
var mockMessage = new Message.Builder().role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId("task-123").contextId("context-456").build();
240+
var mockMessage = new Message.Builder().messageId(MESSAGE_ID).role(Message.Role.USER).parts(List.of(new TextPart(""))).taskId("task-123").contextId("context-456").build();
239241
var mockParams = new MessageSendParams.Builder().message(mockMessage).build();
240242
var mockTask = new Task.Builder().id("task-123").contextId("context-456").status(new TaskStatus(TaskState.COMPLETED)).build();
241243

server-common/src/test/java/io/a2a/server/tasks/TaskUpdaterTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@
2525
public class TaskUpdaterTest {
2626
public static final String TEST_TASK_ID = "test-task-id";
2727
public static final String TEST_TASK_CONTEXT_ID = "test-task-context-id";
28+
private static final String TEST_MESSAGE_ID = "123";
2829

2930
private static final Message SAMPLE_MESSAGE = new Message.Builder()
31+
.messageId(TEST_MESSAGE_ID)
3032
.taskId(TEST_TASK_ID)
3133
.contextId(TEST_TASK_CONTEXT_ID)
3234
.parts(new TextPart("Test message"))

spec/src/main/java/io/a2a/spec/Message.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,10 @@ public Message(@JsonProperty("role") Role role, @JsonProperty("parts") List<Part
5555
if (! kind.equals(MESSAGE)) {
5656
throw new IllegalArgumentException("Invalid Message");
5757
}
58+
Assert.checkNotNullParam("messageId", messageId);
5859
this.role = role;
5960
this.parts = parts;
60-
this.messageId = messageId == null ? UUID.randomUUID().toString() : messageId;
61+
this.messageId = messageId;
6162
this.contextId = contextId;
6263
this.taskId = taskId;
6364
this.referenceTaskIds = referenceTaskIds;

transport/jsonrpc/src/test/java/io/a2a/transport/jsonrpc/handler/JSONRPCHandlerTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,7 @@ public void testOnResubscribeExistingTaskSuccess() {
718718

719719
// We need to send some events in order for those to end up in the queue
720720
Message message = new Message.Builder()
721+
.messageId("123")
721722
.taskId(MINIMAL_TASK.getId())
722723
.contextId(MINIMAL_TASK.getContextId())
723724
.role(Message.Role.AGENT)

0 commit comments

Comments
 (0)