Skip to content

Commit d68adc4

Browse files
committed
refactor(mcp): simplify and unify transport class names
This commit refactors the transport layer by removing the redundant "Jooby" prefix and "Server" identifiers from the class names, as their context is already clear within the `io.jooby.mcp.transport` package. To provide a consistent and predictable API, all transport implementations now share the `TransportProvider` suffix. Renames: * JoobySseTransportProvider -> SseTransportProvider * JoobyStatelessServerTransport -> StatelessTransportProvider * JoobyStreamableServerTransportProvider -> StreamableTransportProvider * JoobyWebSocketServerTransportProvider -> WebSocketTransportProvider
1 parent b590548 commit d68adc4

5 files changed

Lines changed: 20 additions & 24 deletions

File tree

modules/jooby-mcp/src/main/java/io/jooby/mcp/McpModule.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
import io.jooby.Jooby;
1818
import io.jooby.exception.StartupException;
1919
import io.jooby.internal.mcp.McpServerConfig;
20-
import io.jooby.mcp.transport.JoobySseTransportProvider;
21-
import io.jooby.mcp.transport.JoobyStatelessServerTransport;
22-
import io.jooby.mcp.transport.JoobyStreamableServerTransportProvider;
23-
import io.jooby.mcp.transport.JoobyWebSocketServerTransportProvider;
20+
import io.jooby.mcp.transport.SseTransportProvider;
21+
import io.jooby.mcp.transport.StatelessTransportProvider;
22+
import io.jooby.mcp.transport.StreamableTransportProvider;
23+
import io.jooby.mcp.transport.WebSocketTransportProvider;
2424
import io.modelcontextprotocol.common.McpTransportContext;
2525
import io.modelcontextprotocol.json.McpJsonMapper;
2626
import io.modelcontextprotocol.json.jackson3.JacksonMcpJsonMapper;
@@ -157,7 +157,7 @@ public void install(@NonNull Jooby app) {
157157

158158
if (mcpConfig.getTransport() == STATELESS_STREAMABLE_HTTP) {
159159
var transport =
160-
new JoobyStatelessServerTransport(app, mcpJsonMapper, mcpConfig, CTX_EXTRACTOR);
160+
new StatelessTransportProvider(app, mcpJsonMapper, mcpConfig, CTX_EXTRACTOR);
161161
var statelessServer =
162162
McpServer.sync(transport)
163163
.serverInfo(mcpConfig.getName(), mcpConfig.getVersion())
@@ -175,15 +175,14 @@ public void install(@NonNull Jooby app) {
175175
(switch (mcpConfig.getTransport()) {
176176
case STREAMABLE_HTTP ->
177177
McpServer.sync(
178-
new JoobyStreamableServerTransportProvider(
178+
new StreamableTransportProvider(
179179
app, mcpJsonMapper, mcpConfig, CTX_EXTRACTOR));
180180
case SSE ->
181181
McpServer.sync(
182-
new JoobySseTransportProvider(
183-
app, mcpConfig, mcpJsonMapper, CTX_EXTRACTOR));
182+
new SseTransportProvider(app, mcpConfig, mcpJsonMapper, CTX_EXTRACTOR));
184183
case WEBSOCKET ->
185184
McpServer.sync(
186-
new JoobyWebSocketServerTransportProvider(
185+
new WebSocketTransportProvider(
187186
app, mcpConfig, mcpJsonMapper, CTX_EXTRACTOR));
188187
default ->
189188
throw new IllegalStateException(

modules/jooby-mcp/src/main/java/io/jooby/mcp/transport/JoobySseTransportProvider.java renamed to modules/jooby-mcp/src/main/java/io/jooby/mcp/transport/SseTransportProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929
* connections, message routing, and session management.
3030
*/
3131
@SuppressWarnings("PMD")
32-
public class JoobySseTransportProvider implements McpServerTransportProvider {
32+
public class SseTransportProvider implements McpServerTransportProvider {
3333

34-
private static final Logger LOG = LoggerFactory.getLogger(JoobySseTransportProvider.class);
34+
private static final Logger LOG = LoggerFactory.getLogger(SseTransportProvider.class);
3535

3636
private static final String ENDPOINT_EVENT_TYPE = "endpoint";
3737
private static final String SESSION_ID_KEY = "sessionId";
@@ -51,7 +51,7 @@ public class JoobySseTransportProvider implements McpServerTransportProvider {
5151
* @param serverConfig The MCP server configuration containing endpoint settings
5252
* @param mcpJsonMapper The MCP JSON mapper for message serialization/deserialization
5353
*/
54-
public JoobySseTransportProvider(
54+
public SseTransportProvider(
5555
Jooby app,
5656
McpServerConfig serverConfig,
5757
McpJsonMapper mcpJsonMapper,

modules/jooby-mcp/src/main/java/io/jooby/mcp/transport/JoobyStatelessServerTransport.java renamed to modules/jooby-mcp/src/main/java/io/jooby/mcp/transport/StatelessTransportProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@
3434
* @author kliushnichenko
3535
*/
3636
@SuppressWarnings("PMD")
37-
public class JoobyStatelessServerTransport implements McpStatelessServerTransport {
37+
public class StatelessTransportProvider implements McpStatelessServerTransport {
3838

39-
private static final Logger LOG = LoggerFactory.getLogger(JoobyStatelessServerTransport.class);
39+
private static final Logger LOG = LoggerFactory.getLogger(StatelessTransportProvider.class);
4040

4141
private McpStatelessServerHandler mcpHandler;
4242
private final McpJsonMapper mcpJsonMapper;
4343
private final McpTransportContextExtractor<Context> contextExtractor;
4444
private volatile boolean isClosing = false;
4545

46-
public JoobyStatelessServerTransport(
46+
public StatelessTransportProvider(
4747
Jooby app,
4848
McpJsonMapper jsonMapper,
4949
McpServerConfig serverConfig,

modules/jooby-mcp/src/main/java/io/jooby/mcp/transport/JoobyStreamableServerTransportProvider.java renamed to modules/jooby-mcp/src/main/java/io/jooby/mcp/transport/StreamableTransportProvider.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,9 @@
3535
* @author kliushnichenko
3636
*/
3737
@SuppressWarnings("PMD")
38-
public class JoobyStreamableServerTransportProvider
39-
implements McpStreamableServerTransportProvider {
38+
public class StreamableTransportProvider implements McpStreamableServerTransportProvider {
4039

41-
private static final Logger LOG =
42-
LoggerFactory.getLogger(JoobyStreamableServerTransportProvider.class);
40+
private static final Logger LOG = LoggerFactory.getLogger(StreamableTransportProvider.class);
4341

4442
private final boolean disallowDelete;
4543
private final McpJsonMapper mcpJsonMapper;
@@ -50,7 +48,7 @@ public class JoobyStreamableServerTransportProvider
5048
private McpStreamableServerSession.Factory sessionFactory;
5149
private KeepAliveScheduler keepAliveScheduler;
5250

53-
public JoobyStreamableServerTransportProvider(
51+
public StreamableTransportProvider(
5452
Jooby app,
5553
McpJsonMapper jsonMapper,
5654
McpServerConfig serverConfig,

modules/jooby-mcp/src/main/java/io/jooby/mcp/transport/JoobyWebSocketServerTransportProvider.java renamed to modules/jooby-mcp/src/main/java/io/jooby/mcp/transport/WebSocketTransportProvider.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,9 @@
3434
* bidirectional client connections, message routing, and session management.
3535
*/
3636
@SuppressWarnings("PMD")
37-
public class JoobyWebSocketServerTransportProvider implements McpServerTransportProvider {
37+
public class WebSocketTransportProvider implements McpServerTransportProvider {
3838

39-
private static final Logger LOG =
40-
LoggerFactory.getLogger(JoobyWebSocketServerTransportProvider.class);
39+
private static final Logger LOG = LoggerFactory.getLogger(WebSocketTransportProvider.class);
4140
private static final String MCP_SESSION_ATTRIBUTE = "mcpSessionId";
4241

4342
private final McpJsonMapper mcpJsonMapper;
@@ -55,7 +54,7 @@ public class JoobyWebSocketServerTransportProvider implements McpServerTransport
5554
* @param mcpJsonMapper The MCP JSON mapper for message serialization/deserialization
5655
* @param contextExtractor The extractor for transport context
5756
*/
58-
public JoobyWebSocketServerTransportProvider(
57+
public WebSocketTransportProvider(
5958
Jooby app,
6059
McpServerConfig serverConfig,
6160
McpJsonMapper mcpJsonMapper,

0 commit comments

Comments
 (0)