Skip to content

Commit 4559bbe

Browse files
committed
resolve conflicts
2 parents 19d02f2 + 3f70afd commit 4559bbe

File tree

48 files changed

+2066
-470
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+2066
-470
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# MCP Java SDK
2+
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/license/MIT)
23
[![Build Status](https://github.com/modelcontextprotocol/java-sdk/actions/workflows/publish-snapshot.yml/badge.svg)](https://github.com/modelcontextprotocol/java-sdk/actions/workflows/publish-snapshot.yml)
4+
[![Maven Central](https://img.shields.io/maven-central/v/io.modelcontextprotocol.sdk/mcp.svg?label=Maven%20Central)](https://central.sonatype.com/artifact/io.modelcontextprotocol.sdk/mcp)
5+
[![Java Version](https://img.shields.io/badge/Java-17%2B-orange)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
6+
37

48
A set of projects that provide Java SDK integration for the [Model Context Protocol](https://modelcontextprotocol.org/docs/concepts/architecture).
59
This SDK enables Java applications to interact with AI models and tools through a standardized interface, supporting both synchronous and asynchronous communication patterns.

mcp-bom/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>io.modelcontextprotocol.sdk</groupId>
99
<artifactId>mcp-parent</artifactId>
10-
<version>0.12.0-SNAPSHOT</version>
10+
<version>0.13.0-SNAPSHOT</version>
1111
</parent>
1212

1313
<artifactId>mcp-bom</artifactId>

mcp-spring/mcp-spring-webflux/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>io.modelcontextprotocol.sdk</groupId>
88
<artifactId>mcp-parent</artifactId>
9-
<version>0.12.0-SNAPSHOT</version>
9+
<version>0.13.0-SNAPSHOT</version>
1010
<relativePath>../../pom.xml</relativePath>
1111
</parent>
1212
<artifactId>mcp-spring-webflux</artifactId>
@@ -25,13 +25,13 @@
2525
<dependency>
2626
<groupId>io.modelcontextprotocol.sdk</groupId>
2727
<artifactId>mcp</artifactId>
28-
<version>0.12.0-SNAPSHOT</version>
28+
<version>0.13.0-SNAPSHOT</version>
2929
</dependency>
3030

3131
<dependency>
3232
<groupId>io.modelcontextprotocol.sdk</groupId>
3333
<artifactId>mcp-test</artifactId>
34-
<version>0.12.0-SNAPSHOT</version>
34+
<version>0.13.0-SNAPSHOT</version>
3535
<scope>test</scope>
3636
</dependency>
3737

mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/client/WebClientStreamableHttpAsyncClientTests.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
package io.modelcontextprotocol.client;
66

7+
import org.junit.jupiter.api.AfterAll;
8+
import org.junit.jupiter.api.BeforeAll;
79
import org.junit.jupiter.api.Timeout;
810
import org.springframework.web.reactive.function.client.WebClient;
911
import org.testcontainers.containers.GenericContainer;
@@ -19,7 +21,7 @@ public class WebClientStreamableHttpAsyncClientTests extends AbstractMcpAsyncCli
1921

2022
// Uses the https://github.com/tzolov/mcp-everything-server-docker-image
2123
@SuppressWarnings("resource")
22-
GenericContainer<?> container = new GenericContainer<>("docker.io/tzolov/mcp-everything-server:v2")
24+
static GenericContainer<?> container = new GenericContainer<>("docker.io/tzolov/mcp-everything-server:v3")
2325
.withCommand("node dist/index.js streamableHttp")
2426
.withLogConsumer(outputFrame -> System.out.println(outputFrame.getUtf8String()))
2527
.withExposedPorts(3001)
@@ -30,15 +32,15 @@ protected McpClientTransport createMcpTransport() {
3032
return WebClientStreamableHttpTransport.builder(WebClient.builder().baseUrl(host)).build();
3133
}
3234

33-
@Override
34-
protected void onStart() {
35+
@BeforeAll
36+
static void startContainer() {
3537
container.start();
3638
int port = container.getMappedPort(3001);
3739
host = "http://" + container.getHost() + ":" + port;
3840
}
3941

40-
@Override
41-
public void onClose() {
42+
@AfterAll
43+
static void stopContainer() {
4244
container.stop();
4345
}
4446

mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/client/WebClientStreamableHttpSyncClientTests.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
package io.modelcontextprotocol.client;
66

7+
import org.junit.jupiter.api.AfterAll;
8+
import org.junit.jupiter.api.BeforeAll;
79
import org.junit.jupiter.api.Timeout;
810
import org.springframework.web.reactive.function.client.WebClient;
911
import org.testcontainers.containers.GenericContainer;
@@ -19,7 +21,7 @@ public class WebClientStreamableHttpSyncClientTests extends AbstractMcpSyncClien
1921

2022
// Uses the https://github.com/tzolov/mcp-everything-server-docker-image
2123
@SuppressWarnings("resource")
22-
GenericContainer<?> container = new GenericContainer<>("docker.io/tzolov/mcp-everything-server:v2")
24+
static GenericContainer<?> container = new GenericContainer<>("docker.io/tzolov/mcp-everything-server:v3")
2325
.withCommand("node dist/index.js streamableHttp")
2426
.withLogConsumer(outputFrame -> System.out.println(outputFrame.getUtf8String()))
2527
.withExposedPorts(3001)
@@ -30,15 +32,15 @@ protected McpClientTransport createMcpTransport() {
3032
return WebClientStreamableHttpTransport.builder(WebClient.builder().baseUrl(host)).build();
3133
}
3234

33-
@Override
34-
protected void onStart() {
35+
@BeforeAll
36+
static void startContainer() {
3537
container.start();
3638
int port = container.getMappedPort(3001);
3739
host = "http://" + container.getHost() + ":" + port;
3840
}
3941

40-
@Override
41-
public void onClose() {
42+
@AfterAll
43+
static void stopContainer() {
4244
container.stop();
4345
}
4446

mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/client/WebFluxSseMcpAsyncClientTests.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
import java.time.Duration;
88

9+
import org.junit.jupiter.api.AfterAll;
10+
import org.junit.jupiter.api.BeforeAll;
911
import org.junit.jupiter.api.Timeout;
1012
import org.springframework.web.reactive.function.client.WebClient;
1113
import org.testcontainers.containers.GenericContainer;
@@ -26,7 +28,7 @@ class WebFluxSseMcpAsyncClientTests extends AbstractMcpAsyncClientTests {
2628

2729
// Uses the https://github.com/tzolov/mcp-everything-server-docker-image
2830
@SuppressWarnings("resource")
29-
GenericContainer<?> container = new GenericContainer<>("docker.io/tzolov/mcp-everything-server:v2")
31+
static GenericContainer<?> container = new GenericContainer<>("docker.io/tzolov/mcp-everything-server:v3")
3032
.withCommand("node dist/index.js sse")
3133
.withLogConsumer(outputFrame -> System.out.println(outputFrame.getUtf8String()))
3234
.withExposedPorts(3001)
@@ -37,15 +39,15 @@ protected McpClientTransport createMcpTransport() {
3739
return WebFluxSseClientTransport.builder(WebClient.builder().baseUrl(host)).build();
3840
}
3941

40-
@Override
41-
protected void onStart() {
42+
@BeforeAll
43+
static void startContainer() {
4244
container.start();
4345
int port = container.getMappedPort(3001);
4446
host = "http://" + container.getHost() + ":" + port;
4547
}
4648

47-
@Override
48-
public void onClose() {
49+
@AfterAll
50+
static void stopContainer() {
4951
container.stop();
5052
}
5153

mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/client/WebFluxSseMcpSyncClientTests.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
import io.modelcontextprotocol.client.transport.WebFluxSseClientTransport;
1010
import io.modelcontextprotocol.spec.McpClientTransport;
11+
import org.junit.jupiter.api.AfterAll;
12+
import org.junit.jupiter.api.BeforeAll;
1113
import org.junit.jupiter.api.Timeout;
1214
import org.testcontainers.containers.GenericContainer;
1315
import org.testcontainers.containers.wait.strategy.Wait;
@@ -26,7 +28,7 @@ class WebFluxSseMcpSyncClientTests extends AbstractMcpSyncClientTests {
2628

2729
// Uses the https://github.com/tzolov/mcp-everything-server-docker-image
2830
@SuppressWarnings("resource")
29-
GenericContainer<?> container = new GenericContainer<>("docker.io/tzolov/mcp-everything-server:v2")
31+
static GenericContainer<?> container = new GenericContainer<>("docker.io/tzolov/mcp-everything-server:v3")
3032
.withCommand("node dist/index.js sse")
3133
.withLogConsumer(outputFrame -> System.out.println(outputFrame.getUtf8String()))
3234
.withExposedPorts(3001)
@@ -37,15 +39,15 @@ protected McpClientTransport createMcpTransport() {
3739
return WebFluxSseClientTransport.builder(WebClient.builder().baseUrl(host)).build();
3840
}
3941

40-
@Override
41-
protected void onStart() {
42+
@BeforeAll
43+
static void startContainer() {
4244
container.start();
4345
int port = container.getMappedPort(3001);
4446
host = "http://" + container.getHost() + ":" + port;
4547
}
4648

47-
@Override
48-
protected void onClose() {
49+
@AfterAll
50+
static void stopContainer() {
4951
container.stop();
5052
}
5153

mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/client/transport/WebClientStreamableHttpTransportErrorHandlingTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import org.junit.jupiter.api.AfterEach;
2222
import org.junit.jupiter.api.BeforeEach;
23-
import org.junit.jupiter.api.Disabled;
2423
import org.junit.jupiter.api.Test;
2524
import org.junit.jupiter.api.Timeout;
2625
import org.springframework.web.reactive.function.client.WebClient;

mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/client/transport/WebFluxSseClientTransportTests.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
import com.fasterxml.jackson.databind.ObjectMapper;
1414
import io.modelcontextprotocol.spec.McpSchema;
1515
import io.modelcontextprotocol.spec.McpSchema.JSONRPCRequest;
16+
import org.junit.jupiter.api.AfterAll;
1617
import org.junit.jupiter.api.AfterEach;
18+
import org.junit.jupiter.api.BeforeAll;
1719
import org.junit.jupiter.api.BeforeEach;
1820
import org.junit.jupiter.api.Test;
1921
import org.junit.jupiter.api.Timeout;
@@ -42,7 +44,7 @@ class WebFluxSseClientTransportTests {
4244
static String host = "http://localhost:3001";
4345

4446
@SuppressWarnings("resource")
45-
GenericContainer<?> container = new GenericContainer<>("docker.io/tzolov/mcp-everything-server:v2")
47+
static GenericContainer<?> container = new GenericContainer<>("docker.io/tzolov/mcp-everything-server:v3")
4648
.withCommand("node dist/index.js sse")
4749
.withLogConsumer(outputFrame -> System.out.println(outputFrame.getUtf8String()))
4850
.withExposedPorts(3001)
@@ -95,15 +97,20 @@ public void simulateMessageEvent(String jsonMessage) {
9597

9698
}
9799

98-
void startContainer() {
100+
@BeforeAll
101+
static void startContainer() {
99102
container.start();
100103
int port = container.getMappedPort(3001);
101104
host = "http://" + container.getHost() + ":" + port;
102105
}
103106

107+
@AfterAll
108+
static void cleanup() {
109+
container.stop();
110+
}
111+
104112
@BeforeEach
105113
void setUp() {
106-
startContainer();
107114
webClientBuilder = WebClient.builder().baseUrl(host);
108115
objectMapper = new ObjectMapper();
109116
transport = new TestSseClientTransport(webClientBuilder, objectMapper);
@@ -115,11 +122,6 @@ void afterEach() {
115122
if (transport != null) {
116123
assertThatCode(() -> transport.closeGracefully().block(Duration.ofSeconds(10))).doesNotThrowAnyException();
117124
}
118-
cleanup();
119-
}
120-
121-
void cleanup() {
122-
container.stop();
123125
}
124126

125127
@Test

0 commit comments

Comments
 (0)