Skip to content

Commit 8d85545

Browse files
committed
ServerSchema旧逻辑删除
1 parent 0252343 commit 8d85545

File tree

4 files changed

+13
-62
lines changed

4 files changed

+13
-62
lines changed

framework/fel/java/plugins/tool-mcp-server/src/main/java/modelengine/fel/tool/mcp/server/McpServer.java

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

77
package modelengine.fel.tool.mcp.server;
88

9-
import modelengine.fel.tool.mcp.entity.ServerSchema;
109
import modelengine.fel.tool.mcp.entity.Tool;
1110

1211
import java.util.List;
@@ -18,13 +17,6 @@
1817
* @since 2025-05-15
1918
*/
2019
public interface McpServer {
21-
/**
22-
* Gets MCP server schema.
23-
*
24-
* @return The MCP server schema as a {@link ServerSchema}.
25-
*/
26-
ServerSchema getSchema();
27-
2820
/**
2921
* Gets MCP server tools.
3022
*

framework/fel/java/plugins/tool-mcp-server/src/main/java/modelengine/fel/tool/mcp/server/support/DefaultMcpStreamableServer.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import io.modelcontextprotocol.server.McpServerFeatures;
1010
import io.modelcontextprotocol.server.McpSyncServer;
1111
import io.modelcontextprotocol.spec.McpSchema;
12-
import modelengine.fel.tool.mcp.entity.ServerSchema;
1312
import modelengine.fel.tool.mcp.entity.Tool;
1413
import modelengine.fel.tool.mcp.server.McpServer;
1514
import modelengine.fel.tool.service.ToolChangedObserver;
@@ -57,15 +56,6 @@ public DefaultMcpStreamableServer(ToolExecuteService toolExecuteService, McpSync
5756
this.mcpSyncServer = mcpSyncServer;
5857
}
5958

60-
@Override
61-
public ServerSchema getSchema() {
62-
ServerSchema.Info info = new ServerSchema.Info("FIT Store MCP Server", "3.6.0-SNAPSHOT");
63-
ServerSchema.Capabilities.Logging logging = new ServerSchema.Capabilities.Logging();
64-
ServerSchema.Capabilities.Tools tools = new ServerSchema.Capabilities.Tools(true);
65-
ServerSchema.Capabilities capabilities = new ServerSchema.Capabilities(logging, tools);
66-
return new ServerSchema("2025-06-18", capabilities, info);
67-
}
68-
6959
@Override
7060
public List<Tool> getTools() {
7161
return this.mcpSyncServer.listTools().stream()

framework/fel/java/plugins/tool-mcp-server/src/main/java/modelengine/fel/tool/mcp/server/transport/FitMcpStreamableServerTransportProvider.java

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import io.modelcontextprotocol.json.TypeRef;
1313
import io.modelcontextprotocol.server.McpTransportContextExtractor;
1414
import io.modelcontextprotocol.spec.*;
15-
import io.modelcontextprotocol.util.Assert;
1615
import io.modelcontextprotocol.util.KeepAliveScheduler;
1716
import modelengine.fel.tool.mcp.entity.Event;
1817
import modelengine.fit.http.annotation.DeleteMapping;
@@ -28,6 +27,7 @@
2827
import modelengine.fit.http.server.HttpClassicServerResponse;
2928
import modelengine.fitframework.flowable.Choir;
3029
import modelengine.fitframework.flowable.Emitter;
30+
import modelengine.fitframework.inspection.Validation;
3131
import modelengine.fitframework.log.Logger;
3232
import reactor.core.publisher.Flux;
3333
import reactor.core.publisher.Mono;
@@ -59,24 +59,22 @@ public class FitMcpStreamableServerTransportProvider implements McpStreamableSer
5959
* Flag indicating whether DELETE requests are disallowed on the endpoint.
6060
*/
6161
private final boolean disallowDelete;
62-
6362
private final ObjectMapper objectMapper;
63+
private final McpTransportContextExtractor<HttpClassicServerRequest> contextExtractor;
64+
private KeepAliveScheduler keepAliveScheduler;
6465

6566
private McpStreamableServerSession.Factory sessionFactory;
6667

6768
/**
6869
* Map of active client sessions, keyed by mcp-session-id.
6970
*/
70-
private final ConcurrentHashMap<String, McpStreamableServerSession> sessions = new ConcurrentHashMap<>();
71-
72-
private final McpTransportContextExtractor<HttpClassicServerRequest> contextExtractor;
71+
private final Map<String, McpStreamableServerSession> sessions = new ConcurrentHashMap<>();
7372

7473
/**
7574
* Flag indicating if the transport is shutting down.
7675
*/
7776
private volatile boolean isClosing = false;
7877

79-
private KeepAliveScheduler keepAliveScheduler;
8078

8179
/**
8280
* Constructs a new FitMcpStreamableServerTransportProvider instance,
@@ -93,8 +91,8 @@ private FitMcpStreamableServerTransportProvider(ObjectMapper objectMapper,
9391
boolean disallowDelete,
9492
McpTransportContextExtractor<HttpClassicServerRequest> contextExtractor,
9593
Duration keepAliveInterval) {
96-
Assert.notNull(objectMapper, "ObjectMapper must not be null");
97-
Assert.notNull(contextExtractor, "McpTransportContextExtractor must not be null");
94+
Validation.notNull(objectMapper, "ObjectMapper must not be null");
95+
Validation.notNull(contextExtractor, "McpTransportContextExtractor must not be null");
9896

9997
this.objectMapper = objectMapper;
10098
this.disallowDelete = disallowDelete;
@@ -522,16 +520,13 @@ else if (map.containsKey("result") || map.containsKey("error")) {
522520
* send messages concurrently.
523521
*/
524522
private class FitStreamableMcpSessionTransport implements McpStreamableServerTransport {
525-
526523
private final String sessionId;
527-
524+
private final HttpClassicServerResponse response;
528525
private final Emitter<TextEvent> emitter;
529526

530527
private final ReentrantLock lock = new ReentrantLock();
531528

532529
private volatile boolean closed = false;
533-
534-
private final HttpClassicServerResponse response;
535530

536531
/**
537532
* Creates a new session transport with the specified ID and SSE builder.
@@ -676,14 +671,10 @@ public static Builder builder() {
676671
* Builder for creating instances of {@link FitMcpStreamableServerTransportProvider}.
677672
*/
678673
public static class Builder {
679-
680674
private ObjectMapper objectMapper;
681-
682675
private boolean disallowDelete = false;
683-
684676
private McpTransportContextExtractor<HttpClassicServerRequest> contextExtractor = (
685677
HttpClassicServerRequest) -> McpTransportContext.EMPTY;
686-
687678
private Duration keepAliveInterval;
688679

689680
/**
@@ -694,7 +685,7 @@ public static class Builder {
694685
* @throws IllegalArgumentException if objectMapper is null
695686
*/
696687
public Builder objectMapper(ObjectMapper objectMapper) {
697-
Assert.notNull(objectMapper, "ObjectMapper must not be null");
688+
Validation.notNull(objectMapper, "ObjectMapper must not be null");
698689
this.objectMapper = objectMapper;
699690
return this;
700691
}
@@ -722,7 +713,7 @@ public Builder disallowDelete(boolean disallowDelete) {
722713
* @throws IllegalArgumentException if contextExtractor is null
723714
*/
724715
public Builder contextExtractor(McpTransportContextExtractor<HttpClassicServerRequest> contextExtractor) {
725-
Assert.notNull(contextExtractor, "contextExtractor must not be null");
716+
Validation.notNull(contextExtractor, "contextExtractor must not be null");
726717
this.contextExtractor = contextExtractor;
727718
return this;
728719
}
@@ -748,7 +739,7 @@ public Builder keepAliveInterval(Duration keepAliveInterval) {
748739
* @throws IllegalStateException if required parameters are not set
749740
*/
750741
public FitMcpStreamableServerTransportProvider build() {
751-
Assert.notNull(this.objectMapper, "ObjectMapper must be set");
742+
Validation.notNull(this.objectMapper, "ObjectMapper must be set");
752743

753744
return new FitMcpStreamableServerTransportProvider(this.objectMapper, this.disallowDelete,
754745
this.contextExtractor, this.keepAliveInterval);

framework/fel/java/plugins/tool-mcp-server/src/test/java/modelengine/fel/tool/mcp/server/support/DefaultMcpStreamableServerTest.java

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
package modelengine.fel.tool.mcp.server.support;
88

99
import io.modelcontextprotocol.server.McpSyncServer;
10-
import modelengine.fel.tool.mcp.entity.ServerSchema;
1110
import modelengine.fel.tool.mcp.entity.Tool;
1211
import modelengine.fel.tool.mcp.server.McpServer;
1312
import modelengine.fel.tool.service.ToolExecuteService;
@@ -23,7 +22,9 @@
2322

2423
import static org.assertj.core.api.Assertions.assertThat;
2524
import static org.assertj.core.api.Assertions.catchThrowableOfType;
26-
import static org.mockito.Mockito.*;
25+
import static org.mockito.Mockito.mock;
26+
import static org.mockito.Mockito.times;
27+
import static org.mockito.Mockito.verify;
2728

2829
/**
2930
* Unit test for {@link DefaultMcpStreamableServer}.
@@ -54,29 +55,6 @@ void throwIllegalArgumentExceptionWhenToolExecuteServiceIsNull() {
5455
}
5556
}
5657

57-
@Nested
58-
@DisplayName("getInfo Method Tests")
59-
class GivenGetInfo {
60-
@Test
61-
@DisplayName("Should return expected server information")
62-
void returnExpectedServerInfo() {
63-
McpServer server = new DefaultMcpStreamableServer(toolExecuteService, mcpSyncServer);
64-
ServerSchema info = server.getSchema();
65-
66-
assertThat(info).returns("2025-06-18", ServerSchema::protocolVersion);
67-
68-
ServerSchema.Capabilities capabilities = info.capabilities();
69-
assertThat(capabilities).isNotNull();
70-
71-
ServerSchema.Capabilities.Tools toolsCapability = capabilities.tools();
72-
assertThat(toolsCapability).returns(true, ServerSchema.Capabilities.Tools::listChanged);
73-
74-
ServerSchema.Info serverInfo = info.serverInfo();
75-
assertThat(serverInfo).returns("FIT Store MCP Server", ServerSchema.Info::name)
76-
.returns("3.6.0-SNAPSHOT", ServerSchema.Info::version);
77-
}
78-
}
79-
8058
@Nested
8159
@DisplayName("registerToolsChangedObserver and Notification Tests")
8260
class GivenRegisterAndNotify {

0 commit comments

Comments
 (0)