Skip to content

Commit 2227567

Browse files
committed
Fix resource-template factory method concistency
Signed-off-by: Christian Tzolov <[email protected]>
1 parent 9126875 commit 2227567

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

mcp-core/src/main/java/io/modelcontextprotocol/server/McpServer.java

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -595,33 +595,35 @@ public AsyncSpecification<S> resources(McpServerFeatures.AsyncResourceSpecificat
595595
* Registers multiple resource templates with their specifications using a List.
596596
* This method is useful when resource templates need to be added in bulk from a
597597
* collection.
598-
* @param resourceTemplatesSpec Map of template URI to specification. Must not be
598+
* @param resourceTemplates Map of template URI to specification. Must not be
599599
* null.
600600
* @return This builder instance for method chaining
601601
* @throws IllegalArgumentException if resourceTemplates is null.
602602
* @see #resourceTemplates(ResourceTemplate...)
603603
*/
604604
public AsyncSpecification<S> resourceTemplates(
605-
Map<String, McpServerFeatures.AsyncResourceTemplateSpecification> resourceTemplatesSpec) {
606-
Assert.notNull(resourceTemplatesSpec, "Resource templates must not be null");
607-
this.resourceTemplates.putAll(resourceTemplatesSpec);
605+
List<McpServerFeatures.AsyncResourceTemplateSpecification> resourceTemplates) {
606+
Assert.notNull(resourceTemplates, "Resource templates must not be null");
607+
for (var resourceTemplate : resourceTemplates) {
608+
this.resourceTemplates.put(resourceTemplate.resourceTemplate().uriTemplate(), resourceTemplate);
609+
}
608610
return this;
609611
}
610612

611613
/**
612614
* Registers multiple resource templates with their specifications using a List.
613615
* This method is useful when resource templates need to be added in bulk from a
614616
* collection.
615-
* @param resourceTemplatesSpec Map of template URI to specification. Must not be
617+
* @param resourceTemplates List of template URI to specification. Must not be
616618
* null.
617619
* @return This builder instance for method chaining
618620
* @throws IllegalArgumentException if resourceTemplates is null.
619621
* @see #resourceTemplates(List)
620622
*/
621623
public AsyncSpecification<S> resourceTemplates(
622-
McpServerFeatures.AsyncResourceTemplateSpecification... resourceTemplatesSpec) {
623-
Assert.notNull(resourceTemplatesSpec, "Resource templates must not be null");
624-
for (McpServerFeatures.AsyncResourceTemplateSpecification resource : resourceTemplatesSpec) {
624+
McpServerFeatures.AsyncResourceTemplateSpecification... resourceTemplates) {
625+
Assert.notNull(resourceTemplates, "Resource templates must not be null");
626+
for (McpServerFeatures.AsyncResourceTemplateSpecification resource : resourceTemplates) {
625627
this.resourceTemplates.put(resource.resourceTemplate().uriTemplate(), resource);
626628
}
627629
return this;
@@ -1705,7 +1707,7 @@ public StatelessAsyncSpecification resources(
17051707
* @see #resourceTemplates(ResourceTemplate...)
17061708
*/
17071709
public StatelessAsyncSpecification resourceTemplates(
1708-
Map<String, McpStatelessServerFeatures.AsyncResourceTemplateSpecification> resourceTemplatesSpec) {
1710+
Map<String, McpStatelessServerFeatures.AsyncResourceTemplateSpecification> resourceTemplates) {
17091711
Assert.notNull(resourceTemplates, "Resource templates must not be null");
17101712
this.resourceTemplates.putAll(resourceTemplates);
17111713
return this;
@@ -2159,16 +2161,18 @@ public StatelessSyncSpecification resources(
21592161
/**
21602162
* Sets the resource templates that define patterns for dynamic resource access.
21612163
* Templates use URI patterns with placeholders that can be filled at runtime.
2162-
* @param resourceTemplates List of resource templates. If null, clears existing
2163-
* templates.
2164+
* @param resourceTemplatesSpec List of resource templates. If null, clears
2165+
* existing templates.
21642166
* @return This builder instance for method chaining
21652167
* @throws IllegalArgumentException if resourceTemplates is null.
21662168
* @see #resourceTemplates(ResourceTemplate...)
21672169
*/
21682170
public StatelessSyncSpecification resourceTemplates(
2169-
Map<String, McpStatelessServerFeatures.SyncResourceTemplateSpecification> resourceTemplatesSpec) {
2170-
Assert.notNull(resourceTemplates, "Resource templates must not be null");
2171-
this.resourceTemplates.putAll(resourceTemplates);
2171+
List<McpStatelessServerFeatures.SyncResourceTemplateSpecification> resourceTemplatesSpec) {
2172+
Assert.notNull(resourceTemplatesSpec, "Resource templates must not be null");
2173+
for (var resourceTemplate : resourceTemplatesSpec) {
2174+
this.resourceTemplates.put(resourceTemplate.resourceTemplate().uriTemplate(), resourceTemplate);
2175+
}
21722176
return this;
21732177
}
21742178

0 commit comments

Comments
 (0)