refactor: Split transport implementations into modules

Split the  transport implementations into dedicated modules to improve modularity
and reduce core dependencies.

Added shared test module for common test utilities.

Key changes:

- Create mcp-transport/mcp-webflux-sse-transport module
 - Move SseClientTransport → WebFluxSseClientTransport
 - Move SseServerTransport → WebFluxSseServerTransport
 - Move related tests and utilities

- Create mcp-transport/mcp-webmvc-sse-transport module
 - Add new WebMvcSseServerTransport implementation
 - Add corresponding tests and integration tests

- Add framework-independent SSE client implementations to core module
 - Add FlowSseClient using java.net.http
 - Add HttpClientSseClientTransport using java.net.http

- Keep StdioClientTransport/StdioServerTransport in core (no external deps)

- Create mcp-test module for shared test infrastructure
 - Move abstract test base classes
 - Move shared test utilities and mocks
 - Update test dependencies

The modular approach allows users to choose between:

- Framework-specific implementations (WebFlux/WebMVC)
- Pure Java implementations (java.net.http)
- Basic implementations (STDIO)

Add breaking changes readme: 0.5.0-BREAKING-CHANGES.md

Resolves #54
This commit is contained in:
Christian Tzolov 2025-01-08 16:21:21 +01:00
commit 611f3258d6

View file

@ -66,7 +66,7 @@
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<spring-ai.version>1.0.0-M4</spring-ai.version>
<spring-ai.version>1.0.0-M5</spring-ai.version>
<assert4j.version>3.26.3</assert4j.version>
<junit.version>5.10.2</junit.version>
<mockito.version>5.11.0</mockito.version>
@ -100,9 +100,12 @@
<modules>
<module>mcp</module>
<module>mcp-transport/mcp-webflux-sse-transport</module>
<module>mcp-transport/mcp-webmvc-sse-transport</module>
<module>spring-ai-mcp</module>
<module>spring-ai-mcp-sample</module>
<module>mcp-docs</module>
<module>mcp-test</module>
<module>samples/spring-ai-mcp-sample</module>
</modules>
<build>