Skip to content

Commit 17804b6

Browse files
committed
revert the auto-closablefor async client/server
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
1 parent 86c5208 commit 17804b6

File tree

6 files changed

+50
-34
lines changed

6 files changed

+50
-34
lines changed

mcp-spring/mcp-spring-webflux/src/test/java/io/modelcontextprotocol/WebFluxSseIntegrationTests.java

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,14 @@ void testCreateMessageWithoutSamplingCapabilities(String clientType) {
112112
return Mono.just(mock(CallToolResult.class));
113113
});
114114

115-
try (//@formatter:off
116-
var server = McpServer.async(
117-
mcpServerTransportProvider)
118-
.serverInfo("test-server", "1.0.0")
119-
.tools(tool)
120-
.build();
121-
115+
//@formatter:off
116+
var server = McpServer.async(
117+
mcpServerTransportProvider)
118+
.serverInfo("test-server", "1.0.0")
119+
.tools(tool)
120+
.build();
121+
122+
try (
122123
var client = clientBuilder
123124
.clientInfo(new McpSchema.Implementation("Sample " + "client", "0.0.0"))
124125
.build();) {
@@ -132,7 +133,8 @@ void testCreateMessageWithoutSamplingCapabilities(String clientType) {
132133
assertThat(e).isInstanceOf(McpError.class)
133134
.hasMessage("Client must be configured with sampling capabilities");
134135
}
135-
} //@formatter:on
136+
} //@formatter:on
137+
server.close();
136138
}
137139

138140
@ParameterizedTest(name = "{0} : {displayName} ")
@@ -178,13 +180,13 @@ void testCreateMessageSuccess(String clientType) throws InterruptedException {
178180
return Mono.just(callResponse);
179181
});
180182

181-
try (var mcpServer = McpServer
182-
.async(//@formatter:off
183-
mcpServerTransportProvider)
184-
.serverInfo("test-server", "1.0.0")
185-
.tools(tool)
186-
.build();
187-
183+
//@formatter:off
184+
var mcpServer = McpServer.async(mcpServerTransportProvider)
185+
.serverInfo("test-server", "1.0.0")
186+
.tools(tool)
187+
.build();
188+
189+
try (
188190
var mcpClient = clientBuilder.clientInfo(new McpSchema.Implementation("Sample client", "0.0.0"))
189191
.capabilities(ClientCapabilities.builder().sampling().build())
190192
.sampling(samplingHandler)
@@ -198,6 +200,7 @@ void testCreateMessageSuccess(String clientType) throws InterruptedException {
198200
assertThat(response).isNotNull();
199201
assertThat(response).isEqualTo(callResponse);
200202
}
203+
mcpServer.close();
201204
}
202205

203206
// ---------------------------------------
@@ -566,12 +569,14 @@ void testLoggingNotification(String clientType) {
566569
//@formatter:on
567570
});
568571

569-
try ( //@formatter:off
570-
var mcpServer = McpServer.async(mcpServerTransportProvider)
571-
.serverInfo("test-server", "1.0.0")
572-
.capabilities(ServerCapabilities.builder().logging().tools(true).build())
573-
.tools(tool)
574-
.build();
572+
//@formatter:off
573+
var mcpServer = McpServer.async(mcpServerTransportProvider)
574+
.serverInfo("test-server", "1.0.0")
575+
.capabilities(ServerCapabilities.builder().logging().tools(true).build())
576+
.tools(tool)
577+
.build();
578+
579+
try (
575580

576581
// Create client with logging notification handler
577582
var mcpClient = clientBuilder
@@ -613,6 +618,7 @@ void testLoggingNotification(String clientType) {
613618
assertThat(receivedNotifications.get(2).data()).isEqualTo("Another error message");
614619
});
615620
}
621+
mcpServer.close();
616622
}
617623

618624
}

mcp-spring/mcp-spring-webmvc/src/test/java/io/modelcontextprotocol/server/WebMvcSseIntegrationTests.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.junit.jupiter.api.AfterEach;
3131
import org.junit.jupiter.api.BeforeEach;
3232
import org.junit.jupiter.api.Test;
33+
import org.testcontainers.shaded.org.checkerframework.checker.units.qual.s;
3334
import reactor.core.publisher.Mono;
3435
import reactor.test.StepVerifier;
3536

@@ -126,11 +127,12 @@ void testCreateMessageWithoutSamplingCapabilities() {
126127
});
127128

128129
//@formatter:off
129-
try (var server = McpServer.async(mcpServerTransportProvider)
130+
var server = McpServer.async(mcpServerTransportProvider)
130131
.serverInfo("test-server", "1.0.0")
131132
.tools(tool)
132133
.build();
133-
134+
135+
try (
134136
// Create client without sampling capabilities
135137
var client = clientBuilder
136138
.clientInfo(new McpSchema.Implementation("Sample " + "client", "0.0.0"))
@@ -146,6 +148,7 @@ void testCreateMessageWithoutSamplingCapabilities() {
146148
.hasMessage("Client must be configured with sampling capabilities");
147149
}
148150
}
151+
server.close();
149152
}
150153

151154
@Test
@@ -189,11 +192,12 @@ void testCreateMessageSuccess() throws InterruptedException {
189192
});
190193

191194
//@formatter:off
192-
try (var mcpServer = McpServer.async(mcpServerTransportProvider)
195+
var mcpServer = McpServer.async(mcpServerTransportProvider)
193196
.serverInfo("test-server", "1.0.0")
194197
.tools(tool)
195198
.build();
196199

200+
try (
197201
var mcpClient = clientBuilder.clientInfo(new McpSchema.Implementation("Sample client", "0.0.0"))
198202
.capabilities(ClientCapabilities.builder().sampling().build())
199203
.sampling(samplingHandler)
@@ -206,6 +210,7 @@ void testCreateMessageSuccess() throws InterruptedException {
206210

207211
assertThat(response).isNotNull().isEqualTo(callResponse);
208212
}
213+
mcpServer.close();
209214
}
210215

211216
// ---------------------------------------

mcp/src/main/java/io/modelcontextprotocol/client/McpAsyncClient.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
* @see McpSchema
7676
* @see McpClientSession
7777
*/
78-
public class McpAsyncClient implements AutoCloseable {
78+
public class McpAsyncClient {
7979

8080
private static final Logger logger = LoggerFactory.getLogger(McpAsyncClient.class);
8181

@@ -275,7 +275,6 @@ public McpSchema.Implementation getClientInfo() {
275275
/**
276276
* Closes the client connection immediately.
277277
*/
278-
@Override
279278
public void close() {
280279
this.mcpSession.close();
281280
}

mcp/src/main/java/io/modelcontextprotocol/server/McpAsyncServer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
* @see McpSchema
7373
* @see McpClientSession
7474
*/
75-
public class McpAsyncServer implements AutoCloseable {
75+
public class McpAsyncServer {
7676

7777
private static final Logger logger = LoggerFactory.getLogger(McpAsyncServer.class);
7878

@@ -121,7 +121,6 @@ public Mono<Void> closeGracefully() {
121121
/**
122122
* Close the server immediately.
123123
*/
124-
@Override
125124
public void close() {
126125
this.delegate.close();
127126
}

mcp/src/test/java/io/modelcontextprotocol/server/transport/HttpServletSseServerCustomContextPathTests.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,13 @@ public void after() {
7777

7878
@Test
7979
void testCustomContextPath() {
80+
var server = McpServer.async(mcpServerTransportProvider).serverInfo("test-server", "1.0.0").build();
8081
try (//@formatter:off
81-
var server = McpServer.async(mcpServerTransportProvider).serverInfo("test-server", "1.0.0").build();
8282
var client = clientBuilder.clientInfo(new McpSchema.Implementation("Sample " + "client", "0.0.0")) .build()) { //@formatter:on
8383

8484
assertThat(client.initialize()).isNotNull();
8585
}
86+
server.close();
8687
}
8788

8889
}

mcp/src/test/java/io/modelcontextprotocol/server/transport/HttpServletSseServerTransportProviderIntegrationTests.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.junit.jupiter.api.BeforeEach;
3535
import org.junit.jupiter.api.Disabled;
3636
import org.junit.jupiter.api.Test;
37+
import org.testcontainers.shaded.org.checkerframework.checker.units.qual.m;
3738
import reactor.core.publisher.Mono;
3839
import reactor.test.StepVerifier;
3940

@@ -112,11 +113,12 @@ void testCreateMessageWithoutSamplingCapabilities() {
112113
});
113114

114115
//@formatter:off
115-
try (var server = McpServer.async(mcpServerTransportProvider)
116+
var server = McpServer.async(mcpServerTransportProvider)
116117
.serverInfo("test-server", "1.0.0")
117118
.tools(tool)
118119
.build();
119-
120+
121+
try (
120122
// Create client without sampling capabilities
121123
var client = clientBuilder
122124
.clientInfo(new McpSchema.Implementation("Sample " + "client", "0.0.0"))
@@ -132,6 +134,7 @@ void testCreateMessageWithoutSamplingCapabilities() {
132134
.hasMessage("Client must be configured with sampling capabilities");
133135
}
134136
}
137+
server.close();
135138
}
136139

137140
@Test
@@ -175,11 +178,12 @@ void testCreateMessageSuccess() throws InterruptedException {
175178
});
176179

177180
//@formatter:off
178-
try (var mcpServer = McpServer.async(mcpServerTransportProvider)
181+
var mcpServer = McpServer.async(mcpServerTransportProvider)
179182
.serverInfo("test-server", "1.0.0")
180183
.tools(tool)
181184
.build();
182185

186+
try (
183187
var mcpClient = clientBuilder.clientInfo(new McpSchema.Implementation("Sample client", "0.0.0"))
184188
.capabilities(ClientCapabilities.builder().sampling().build())
185189
.sampling(samplingHandler)
@@ -193,6 +197,7 @@ void testCreateMessageSuccess() throws InterruptedException {
193197
assertThat(response).isNotNull();
194198
assertThat(response).isEqualTo(callResponse);
195199
}
200+
mcpServer.close();
196201
}
197202

198203
// ---------------------------------------
@@ -544,12 +549,12 @@ void testLoggingNotification() {
544549
});
545550

546551
//@formatter:off
547-
try (var mcpServer = McpServer.async(mcpServerTransportProvider)
552+
var mcpServer = McpServer.async(mcpServerTransportProvider)
548553
.serverInfo("test-server", "1.0.0")
549554
.capabilities(ServerCapabilities.builder().logging().tools(true).build())
550555
.tools(tool)
551556
.build();
552-
557+
try (
553558
// Create client with logging notification handler
554559
var mcpClient = clientBuilder.loggingConsumer(notification -> {
555560
receivedNotifications.add(notification);
@@ -592,6 +597,7 @@ void testLoggingNotification() {
592597
assertThat(receivedNotifications.get(2).data()).isEqualTo("Another error message");
593598
});
594599
}
600+
mcpServer.close();
595601
}
596602

597603
}

0 commit comments

Comments
 (0)