From 02a939d6119bc6fc2229c013b0e10a210e4375cd Mon Sep 17 00:00:00 2001 From: Daniel Garnier-Moiroux Date: Thu, 2 Apr 2026 12:00:54 +0200 Subject: [PATCH] Server transports: remove deprecated methods from builder Signed-off-by: Daniel Garnier-Moiroux --- .../HttpClientSseClientTransport.java | 18 ------ .../HttpClientStreamableHttpTransport.java | 18 ------ .../HttpClientSseClientTransportTests.java | 60 ------------------- 3 files changed, 96 deletions(-) diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java index 48bd2f416..2e639f3c5 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java @@ -240,24 +240,6 @@ public Builder requestBuilder(HttpRequest.Builder requestBuilder) { return this; } - /** - * Applies the given consumer to the shared {@link HttpRequest.Builder} once, - * at build time. Any headers set here are frozen into the template and - * cannot be updated after the transport is built. - * @param requestCustomizer the consumer to customize the HTTP request builder - * @return this builder - * @deprecated Use {@link #requestBuilder(HttpRequest.Builder)} for stable - * headers, or {@link #httpRequestCustomizer(McpSyncHttpClientRequestCustomizer)} - * / {@link #asyncHttpRequestCustomizer(McpAsyncHttpClientRequestCustomizer)} for - * dynamic per-request customization. - */ - @Deprecated - public Builder customizeRequest(final Consumer requestCustomizer) { - Assert.notNull(requestCustomizer, "requestCustomizer must not be null"); - requestCustomizer.accept(requestBuilder); - return this; - } - /** * Sets the JSON mapper implementation to use for serialization/deserialization. * @param jsonMapper the JSON mapper diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java index 9e9b7f923..b751b0ded 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java @@ -737,24 +737,6 @@ public Builder requestBuilder(HttpRequest.Builder requestBuilder) { return this; } - /** - * Applies the given consumer to the shared {@link HttpRequest.Builder} once, - * at build time. Any headers set here are frozen into the template and - * cannot be updated after the transport is built. - * @param requestCustomizer the consumer to customize the HTTP request builder - * @return this builder - * @deprecated Use {@link #requestBuilder(HttpRequest.Builder)} for stable - * headers, or {@link #httpRequestCustomizer(McpSyncHttpClientRequestCustomizer)} - * / {@link #asyncHttpRequestCustomizer(McpAsyncHttpClientRequestCustomizer)} for - * dynamic per-request customization. - */ - @Deprecated - public Builder customizeRequest(final Consumer requestCustomizer) { - Assert.notNull(requestCustomizer, "requestCustomizer must not be null"); - requestCustomizer.accept(requestBuilder); - return this; - } - /** * Configure a custom {@link McpJsonMapper} implementation to use. * @param jsonMapper instance to use diff --git a/mcp-test/src/test/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransportTests.java b/mcp-test/src/test/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransportTests.java index a24805a30..f3bc17f5b 100644 --- a/mcp-test/src/test/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransportTests.java +++ b/mcp-test/src/test/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransportTests.java @@ -333,66 +333,6 @@ void testCustomizeClient() { customizedTransport.closeGracefully().block(); } - @Test - void testCustomizeRequest() { - // Create an atomic boolean to verify the customizer was called - AtomicBoolean customizerCalled = new AtomicBoolean(false); - - // Create a reference to store the custom header value - AtomicReference headerName = new AtomicReference<>(); - AtomicReference headerValue = new AtomicReference<>(); - - // Create a transport with the customizer - HttpClientSseClientTransport customizedTransport = HttpClientSseClientTransport.builder(host) - // Create a request customizer that adds a custom header - .customizeRequest(builder -> { - builder.header("X-Custom-Header", "test-value"); - customizerCalled.set(true); - - // Create a new request to verify the header was set - HttpRequest request = builder.uri(URI.create("http://example.com")).build(); - headerName.set("X-Custom-Header"); - headerValue.set(request.headers().firstValue("X-Custom-Header").orElse(null)); - }) - .build(); - - // Verify the customizer was called - assertThat(customizerCalled.get()).isTrue(); - - // Verify the header was set correctly - assertThat(headerName.get()).isEqualTo("X-Custom-Header"); - assertThat(headerValue.get()).isEqualTo("test-value"); - - // Clean up - customizedTransport.closeGracefully().block(); - } - - @Test - void testChainedCustomizations() { - // Create atomic booleans to verify both customizers were called - AtomicBoolean clientCustomizerCalled = new AtomicBoolean(false); - AtomicBoolean requestCustomizerCalled = new AtomicBoolean(false); - - // Create a transport with both customizers chained - HttpClientSseClientTransport customizedTransport = HttpClientSseClientTransport.builder(host) - .customizeClient(builder -> { - builder.connectTimeout(Duration.ofSeconds(30)); - clientCustomizerCalled.set(true); - }) - .customizeRequest(builder -> { - builder.header("X-Api-Key", "test-api-key"); - requestCustomizerCalled.set(true); - }) - .build(); - - // Verify both customizers were called - assertThat(clientCustomizerCalled.get()).isTrue(); - assertThat(requestCustomizerCalled.get()).isTrue(); - - // Clean up - customizedTransport.closeGracefully().block(); - } - @Test void testRequestCustomizer() { var mockCustomizer = mock(McpSyncHttpClientRequestCustomizer.class);