Unverified Commit 73515346 authored by Christian Tzolov's avatar Christian Tzolov Committed by GitHub
Browse files

feat: Add Spring WebMVC streamable server transport provider (#425)



- Add WebMvcStreamableServerTransportProvider with SSE support for streamable sessions
- Support GET, POST, DELETE endpoints for MCP protocol operations
- Implement thread-safe SSE operations using ReentrantLock in WebMvcSseServerTransportProvider
- Add test infrastructure with AbstractMcpClientServerIntegrationTests
  - Refactor WebMvcStreamableIntegrationTests to use parameterized tests
  - Support testing with both HttpClient and WebFlux transports
- Add streamable transport tests for both async and sync server modes
- Refactor existing WebMVC SSE integration tests to use shared test base
- Add error handling improvements in McpStreamableServerSession
- Update dependencies: add json-unit-assertj for enhanced JSON testing
- Reorganize POM dependencies and add mcp-spring-webflux test dependency
- Wrap handler invocations with Mono.defer for lazy evaluation
   - Wrap consumer, tool, resource, prompt, and completion handler calls with Mono.defer()
   - Ensures proper lazy evaluation and error handling in reactive streams

Related to #72

Signed-off-by: default avatarChristian Tzolov <christian.tzolov@broadcom.com>
Signed-off-by: default avatarDariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
Co-authored-by: default avatarDariusz Jędrzejczyk <dariusz.jedrzejczyk@broadcom.com>
parent a8f5a3fb
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment