Skip to content

Commit a17175d

Browse files
committed
Refactor of DefaultMcpJson to McpJsonDefaults class for entry point for
access to default mapper and defaul validator services.
1 parent 1384a8f commit a17175d

File tree

26 files changed

+75
-68
lines changed

26 files changed

+75
-68
lines changed

mcp-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
Import-Package: jakarta.*;resolution:=optional, \
4444
*;
4545
Export-Package: io.modelcontextprotocol.*;version="${version}";-noimport:=true
46-
Service-Component: OSGI-INF/io.modelcontextprotocol.json.internal.DefaultMcpJson.xml
46+
Service-Component: OSGI-INF/io.modelcontextprotocol.json.McpJsonDefaults.xml
4747
-noimportjava: true;
4848
-nouses: true;
4949
-removeheaders: Private-Package

mcp-core/src/main/java/io/modelcontextprotocol/client/McpClient.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import java.util.function.Supplier;
1515

1616
import io.modelcontextprotocol.common.McpTransportContext;
17-
import io.modelcontextprotocol.json.internal.DefaultMcpJson;
17+
import io.modelcontextprotocol.json.McpJsonDefaults;
1818
import io.modelcontextprotocol.json.schema.JsonSchemaValidator;
1919
import io.modelcontextprotocol.spec.McpClientTransport;
2020
import io.modelcontextprotocol.spec.McpSchema;
@@ -478,7 +478,7 @@ public McpSyncClient build() {
478478
return new McpSyncClient(
479479
new McpAsyncClient(transport, this.requestTimeout, this.initializationTimeout,
480480
jsonSchemaValidator != null ? jsonSchemaValidator
481-
: DefaultMcpJson.getDefaultJsonSchemaValidator(),
481+
: McpJsonDefaults.getDefaultJsonSchemaValidator(),
482482
asyncFeatures),
483483
this.contextProvider);
484484
}
@@ -813,7 +813,7 @@ public AsyncSpec enableCallToolSchemaCaching(boolean enableCallToolSchemaCaching
813813
*/
814814
public McpAsyncClient build() {
815815
var jsonSchemaValidator = (this.jsonSchemaValidator != null) ? this.jsonSchemaValidator
816-
: DefaultMcpJson.getDefaultJsonSchemaValidator();
816+
: McpJsonDefaults.getDefaultJsonSchemaValidator();
817817
return new McpAsyncClient(this.transport, this.requestTimeout, this.initializationTimeout,
818818
jsonSchemaValidator,
819819
new McpClientFeatures.Async(this.clientInfo, this.capabilities, this.roots,

mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
import io.modelcontextprotocol.client.transport.customizer.McpAsyncHttpClientRequestCustomizer;
2424
import io.modelcontextprotocol.client.transport.customizer.McpSyncHttpClientRequestCustomizer;
2525
import io.modelcontextprotocol.common.McpTransportContext;
26+
import io.modelcontextprotocol.json.McpJsonDefaults;
2627
import io.modelcontextprotocol.json.McpJsonMapper;
2728
import io.modelcontextprotocol.json.TypeRef;
28-
import io.modelcontextprotocol.json.internal.DefaultMcpJson;
2929
import io.modelcontextprotocol.spec.HttpHeaders;
3030
import io.modelcontextprotocol.spec.McpClientTransport;
3131
import io.modelcontextprotocol.spec.McpError;
@@ -330,7 +330,7 @@ public Builder connectTimeout(Duration connectTimeout) {
330330
public HttpClientSseClientTransport build() {
331331
HttpClient httpClient = this.clientBuilder.connectTimeout(this.connectTimeout).build();
332332
return new HttpClientSseClientTransport(httpClient, requestBuilder, baseUri, sseEndpoint,
333-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, httpRequestCustomizer);
333+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, httpRequestCustomizer);
334334
}
335335

336336
}

mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
import io.modelcontextprotocol.client.transport.customizer.McpAsyncHttpClientRequestCustomizer;
2929
import io.modelcontextprotocol.client.transport.customizer.McpSyncHttpClientRequestCustomizer;
3030
import io.modelcontextprotocol.common.McpTransportContext;
31+
import io.modelcontextprotocol.json.McpJsonDefaults;
3132
import io.modelcontextprotocol.json.McpJsonMapper;
3233
import io.modelcontextprotocol.json.TypeRef;
33-
import io.modelcontextprotocol.json.internal.DefaultMcpJson;
3434
import io.modelcontextprotocol.spec.ClosedMcpTransportSession;
3535
import io.modelcontextprotocol.spec.DefaultMcpTransportSession;
3636
import io.modelcontextprotocol.spec.DefaultMcpTransportStream;
@@ -816,7 +816,7 @@ public Builder supportedProtocolVersions(List<String> supportedProtocolVersions)
816816
public HttpClientStreamableHttpTransport build() {
817817
HttpClient httpClient = this.clientBuilder.connectTimeout(this.connectTimeout).build();
818818
return new HttpClientStreamableHttpTransport(
819-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, httpClient,
819+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, httpClient,
820820
requestBuilder, baseUri, endpoint, resumableStreams, openConnectionOnStartup, httpRequestCustomizer,
821821
supportedProtocolVersions);
822822
}
Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
1-
package io.modelcontextprotocol.json.internal;
1+
package io.modelcontextprotocol.json;
22

3-
import io.modelcontextprotocol.json.McpJsonMapper;
4-
import io.modelcontextprotocol.json.McpJsonMapperSupplier;
53
import io.modelcontextprotocol.json.schema.JsonSchemaValidator;
64
import io.modelcontextprotocol.json.schema.JsonSchemaValidatorSupplier;
75
import io.modelcontextprotocol.util.McpServiceLoader;
86

9-
public class DefaultMcpJson {
7+
public class McpJsonDefaults {
108

119
protected static McpServiceLoader<McpJsonMapperSupplier, McpJsonMapper> mcpMapperServiceLoader;
1210

1311
protected static McpServiceLoader<JsonSchemaValidatorSupplier, JsonSchemaValidator> mcpValidatorServiceLoader;
1412

15-
public DefaultMcpJson() {
13+
public McpJsonDefaults() {
1614
mcpMapperServiceLoader = new McpServiceLoader<McpJsonMapperSupplier, McpJsonMapper>();
1715
mcpValidatorServiceLoader = new McpServiceLoader<JsonSchemaValidatorSupplier, JsonSchemaValidator>();
1816
}
@@ -27,7 +25,7 @@ void unsetMcpJsonMapperSupplier(McpJsonMapperSupplier supplier) {
2725

2826
public synchronized static McpJsonMapper getDefaultMcpJsonMapper() {
2927
if (mcpMapperServiceLoader == null) {
30-
new DefaultMcpJson();
28+
new McpJsonDefaults();
3129
}
3230
return mcpMapperServiceLoader.getDefault();
3331
}
@@ -42,7 +40,7 @@ void unsetJsonSchemaValidatorSupplier(JsonSchemaValidatorSupplier supplier) {
4240

4341
public synchronized static JsonSchemaValidator getDefaultJsonSchemaValidator() {
4442
if (mcpValidatorServiceLoader == null) {
45-
new DefaultMcpJson();
43+
new McpJsonDefaults();
4644
}
4745
return mcpValidatorServiceLoader.getDefault();
4846
}

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

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
import java.util.function.BiFunction;
1515

1616
import io.modelcontextprotocol.common.McpTransportContext;
17+
import io.modelcontextprotocol.json.McpJsonDefaults;
1718
import io.modelcontextprotocol.json.McpJsonMapper;
18-
import io.modelcontextprotocol.json.internal.DefaultMcpJson;
1919
import io.modelcontextprotocol.json.schema.JsonSchemaValidator;
2020
import io.modelcontextprotocol.spec.McpSchema;
2121
import io.modelcontextprotocol.spec.McpSchema.CallToolResult;
@@ -227,10 +227,10 @@ public McpAsyncServer build() {
227227
this.instructions);
228228

229229
var jsonSchemaValidator = (this.jsonSchemaValidator != null) ? this.jsonSchemaValidator
230-
: DefaultMcpJson.getDefaultJsonSchemaValidator();
230+
: McpJsonDefaults.getDefaultJsonSchemaValidator();
231231

232232
return new McpAsyncServer(transportProvider,
233-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, features,
233+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, features,
234234
requestTimeout, uriTemplateManagerFactory, jsonSchemaValidator);
235235
}
236236

@@ -255,9 +255,9 @@ public McpAsyncServer build() {
255255
this.resources, this.resourceTemplates, this.prompts, this.completions, this.rootsChangeHandlers,
256256
this.instructions);
257257
var jsonSchemaValidator = this.jsonSchemaValidator != null ? this.jsonSchemaValidator
258-
: DefaultMcpJson.getDefaultJsonSchemaValidator();
258+
: McpJsonDefaults.getDefaultJsonSchemaValidator();
259259
return new McpAsyncServer(transportProvider,
260-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, features,
260+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, features,
261261
requestTimeout, uriTemplateManagerFactory, jsonSchemaValidator);
262262
}
263263

@@ -820,9 +820,9 @@ public McpSyncServer build() {
820820
this.immediateExecution);
821821

822822
var asyncServer = new McpAsyncServer(transportProvider,
823-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, asyncFeatures,
824-
requestTimeout, uriTemplateManagerFactory,
825-
jsonSchemaValidator != null ? jsonSchemaValidator : DefaultMcpJson.getDefaultJsonSchemaValidator());
823+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, asyncFeatures,
824+
requestTimeout, uriTemplateManagerFactory, jsonSchemaValidator != null ? jsonSchemaValidator
825+
: McpJsonDefaults.getDefaultJsonSchemaValidator());
826826
return new McpSyncServer(asyncServer, this.immediateExecution);
827827
}
828828

@@ -850,9 +850,9 @@ public McpSyncServer build() {
850850
McpServerFeatures.Async asyncFeatures = McpServerFeatures.Async.fromSync(syncFeatures,
851851
this.immediateExecution);
852852
var jsonSchemaValidator = this.jsonSchemaValidator != null ? this.jsonSchemaValidator
853-
: DefaultMcpJson.getDefaultJsonSchemaValidator();
853+
: McpJsonDefaults.getDefaultJsonSchemaValidator();
854854
var asyncServer = new McpAsyncServer(transportProvider,
855-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, asyncFeatures,
855+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, asyncFeatures,
856856
this.requestTimeout, this.uriTemplateManagerFactory, jsonSchemaValidator);
857857
return new McpSyncServer(asyncServer, this.immediateExecution);
858858
}
@@ -1855,9 +1855,9 @@ public McpStatelessAsyncServer build() {
18551855
var features = new McpStatelessServerFeatures.Async(this.serverInfo, this.serverCapabilities, this.tools,
18561856
this.resources, this.resourceTemplates, this.prompts, this.completions, this.instructions);
18571857
return new McpStatelessAsyncServer(transport,
1858-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, features,
1859-
requestTimeout, uriTemplateManagerFactory,
1860-
jsonSchemaValidator != null ? jsonSchemaValidator : DefaultMcpJson.getDefaultJsonSchemaValidator());
1858+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, features,
1859+
requestTimeout, uriTemplateManagerFactory, jsonSchemaValidator != null ? jsonSchemaValidator
1860+
: McpJsonDefaults.getDefaultJsonSchemaValidator());
18611861
}
18621862

18631863
}
@@ -2335,9 +2335,9 @@ public McpStatelessSyncServer build() {
23352335
this.resources, this.resourceTemplates, this.prompts, this.completions, this.instructions);
23362336
var asyncFeatures = McpStatelessServerFeatures.Async.fromSync(syncFeatures, this.immediateExecution);
23372337
var asyncServer = new McpStatelessAsyncServer(transport,
2338-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, asyncFeatures,
2338+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, asyncFeatures,
23392339
requestTimeout, uriTemplateManagerFactory, this.jsonSchemaValidator != null
2340-
? this.jsonSchemaValidator : DefaultMcpJson.getDefaultJsonSchemaValidator());
2340+
? this.jsonSchemaValidator : McpJsonDefaults.getDefaultJsonSchemaValidator());
23412341
return new McpStatelessSyncServer(asyncServer, this.immediateExecution);
23422342
}
23432343

mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletSseServerTransportProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
import org.slf4j.LoggerFactory;
1919

2020
import io.modelcontextprotocol.common.McpTransportContext;
21+
import io.modelcontextprotocol.json.McpJsonDefaults;
2122
import io.modelcontextprotocol.json.McpJsonMapper;
2223
import io.modelcontextprotocol.json.TypeRef;
23-
import io.modelcontextprotocol.json.internal.DefaultMcpJson;
2424
import io.modelcontextprotocol.server.McpTransportContextExtractor;
2525
import io.modelcontextprotocol.spec.McpError;
2626
import io.modelcontextprotocol.spec.McpSchema;
@@ -634,7 +634,7 @@ public HttpServletSseServerTransportProvider build() {
634634
throw new IllegalStateException("MessageEndpoint must be set");
635635
}
636636
return new HttpServletSseServerTransportProvider(
637-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, baseUrl,
637+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, baseUrl,
638638
messageEndpoint, sseEndpoint, keepAliveInterval, contextExtractor);
639639
}
640640

mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStatelessServerTransport.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
import org.slf4j.LoggerFactory;
1313

1414
import io.modelcontextprotocol.common.McpTransportContext;
15+
import io.modelcontextprotocol.json.McpJsonDefaults;
1516
import io.modelcontextprotocol.json.McpJsonMapper;
16-
import io.modelcontextprotocol.json.internal.DefaultMcpJson;
1717
import io.modelcontextprotocol.server.McpStatelessServerHandler;
1818
import io.modelcontextprotocol.server.McpTransportContextExtractor;
1919
import io.modelcontextprotocol.spec.McpError;
@@ -297,7 +297,7 @@ public Builder contextExtractor(McpTransportContextExtractor<HttpServletRequest>
297297
public HttpServletStatelessServerTransport build() {
298298
Assert.notNull(mcpEndpoint, "Message endpoint must be set");
299299
return new HttpServletStatelessServerTransport(
300-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, mcpEndpoint,
300+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, mcpEndpoint,
301301
contextExtractor);
302302
}
303303

mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStreamableServerTransportProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
import org.slf4j.LoggerFactory;
1818

1919
import io.modelcontextprotocol.common.McpTransportContext;
20+
import io.modelcontextprotocol.json.McpJsonDefaults;
2021
import io.modelcontextprotocol.json.McpJsonMapper;
2122
import io.modelcontextprotocol.json.TypeRef;
22-
import io.modelcontextprotocol.json.internal.DefaultMcpJson;
2323
import io.modelcontextprotocol.server.McpTransportContextExtractor;
2424
import io.modelcontextprotocol.spec.HttpHeaders;
2525
import io.modelcontextprotocol.spec.McpError;
@@ -842,7 +842,7 @@ public Builder keepAliveInterval(Duration keepAliveInterval) {
842842
public HttpServletStreamableServerTransportProvider build() {
843843
Assert.notNull(this.mcpEndpoint, "MCP endpoint must be set");
844844
return new HttpServletStreamableServerTransportProvider(
845-
jsonMapper == null ? DefaultMcpJson.getDefaultMcpJsonMapper() : jsonMapper, mcpEndpoint,
845+
jsonMapper == null ? McpJsonDefaults.getDefaultMcpJsonMapper() : jsonMapper, mcpEndpoint,
846846
disallowDelete, contextExtractor, keepAliveInterval);
847847
}
848848

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" name="io.modelcontextprotocol.json.McpJsonDefaults" immediate="true">
3+
<service>
4+
<provide interface="io.modelcontextprotocol.json.McpJsonDefaults"/>
5+
</service>
6+
<reference name="McpJsonMapperSupplier" interface="io.modelcontextprotocol.json.McpJsonMapperSupplier" bind="setMcpJsonMapperSupplier" unbind="unsetMcpJsonMapperSupplier"/>
7+
<reference name="JsonSchemaValidatorSupplier" interface="io.modelcontextprotocol.json.schema.JsonSchemaValidatorSupplier" bind="setJsonSchemaValidatorSupplier" unbind="unsetJsonSchemaValidatorSupplier"/>
8+
<implementation class="io.modelcontextprotocol.json.McpJsonDefaults"/>
9+
</scr:component>

0 commit comments

Comments
 (0)