diff --git a/mcp-core/pom.xml b/mcp-core/pom.xml index f3f0fcc2a..27c65991f 100644 --- a/mcp-core/pom.xml +++ b/mcp-core/pom.xml @@ -82,6 +82,12 @@ ${jackson-annotations.version} + + org.jspecify + jspecify + ${jspecify.version} + + io.projectreactor reactor-core diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/customizer/McpAsyncHttpClientRequestCustomizer.java b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/customizer/McpAsyncHttpClientRequestCustomizer.java index f2951d832..8a6d9739c 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/customizer/McpAsyncHttpClientRequestCustomizer.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/customizer/McpAsyncHttpClientRequestCustomizer.java @@ -12,7 +12,7 @@ import org.reactivestreams.Publisher; import reactor.core.publisher.Mono; import reactor.core.scheduler.Schedulers; -import reactor.util.annotation.Nullable; +import org.jspecify.annotations.Nullable; /** * Customize {@link HttpRequest.Builder} before executing the request, in either SSE or diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/customizer/McpSyncHttpClientRequestCustomizer.java b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/customizer/McpSyncHttpClientRequestCustomizer.java index e22e3aa62..9d92cfa72 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/customizer/McpSyncHttpClientRequestCustomizer.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/customizer/McpSyncHttpClientRequestCustomizer.java @@ -7,7 +7,7 @@ import java.net.URI; import java.net.http.HttpRequest; -import reactor.util.annotation.Nullable; +import org.jspecify.annotations.Nullable; import io.modelcontextprotocol.client.McpClient.SyncSpec; import io.modelcontextprotocol.common.McpTransportContext; diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/modern/server/McpParamHeaders.java b/mcp-core/src/main/java/io/modelcontextprotocol/modern/server/McpParamHeaders.java index 26bdbf487..dcf2e4580 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/modern/server/McpParamHeaders.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/modern/server/McpParamHeaders.java @@ -13,7 +13,7 @@ import io.modelcontextprotocol.modern.McpHttp; import io.modelcontextprotocol.util.Assert; -import reactor.util.annotation.Nullable; +import org.jspecify.annotations.Nullable; /** * The {@code Mcp-Param-{Name}} headers of a {@code tools/call} request, which a client @@ -90,8 +90,7 @@ public boolean isMalformed(String name) { * @param name the {@code {Name}} part of {@code Mcp-Param-{Name}}, in any case * @return the decoded value, or {@code null} if the header is absent or malformed */ - @Nullable - public String value(String name) { + @Nullable public String value(String name) { return this.values.get(normalize(name)); } diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/modern/server/transport/McpHeaderDecoder.java b/mcp-core/src/main/java/io/modelcontextprotocol/modern/server/transport/McpHeaderDecoder.java index e7aae57d8..3a9d0fcf0 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/modern/server/transport/McpHeaderDecoder.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/modern/server/transport/McpHeaderDecoder.java @@ -20,7 +20,7 @@ import io.modelcontextprotocol.modern.McpHttp.Headers; import io.modelcontextprotocol.modern.server.McpParamHeaders; import io.modelcontextprotocol.server.transport.HeaderAccessor; -import reactor.util.annotation.Nullable; +import org.jspecify.annotations.Nullable; /** * Strict decoder for MCP header values such as {@code Mcp-Name} and @@ -50,8 +50,7 @@ private McpHeaderDecoder() { * @param raw the header value as received * @return the decoded value, or {@code null} if the value is malformed */ - @Nullable - public static String decodeValue(String raw) { + @Nullable public static String decodeValue(String raw) { if (raw.length() >= Headers.BASE64_VALUE_PREFIX.length() + Headers.BASE64_VALUE_SUFFIX.length() && raw.startsWith(Headers.BASE64_VALUE_PREFIX) && raw.endsWith(Headers.BASE64_VALUE_SUFFIX)) { String encoded = raw.substring(Headers.BASE64_VALUE_PREFIX.length(), diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/spec/ClosedMcpTransportSession.java b/mcp-core/src/main/java/io/modelcontextprotocol/spec/ClosedMcpTransportSession.java index 6ed01dee3..770e8c046 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/spec/ClosedMcpTransportSession.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/spec/ClosedMcpTransportSession.java @@ -8,7 +8,7 @@ import org.reactivestreams.Publisher; import reactor.core.Disposable; import reactor.core.publisher.Mono; -import reactor.util.annotation.Nullable; +import org.jspecify.annotations.Nullable; /** * Represents a closed MCP session, which may not be reused. diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpTransportSessionClosedException.java b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpTransportSessionClosedException.java index 9e9e4616b..aa3cf73f3 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpTransportSessionClosedException.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpTransportSessionClosedException.java @@ -4,7 +4,7 @@ package io.modelcontextprotocol.spec; -import reactor.util.annotation.Nullable; +import org.jspecify.annotations.Nullable; /** * Exception thrown when trying to use an {@link McpTransportSession} that has been diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/util/Assert.java b/mcp-core/src/main/java/io/modelcontextprotocol/util/Assert.java index 7218be514..c90027ccb 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/util/Assert.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/util/Assert.java @@ -6,7 +6,7 @@ import java.util.Collection; -import reactor.util.annotation.Nullable; +import org.jspecify.annotations.Nullable; /** * Assertion utility class that assists in validating arguments. diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/util/Utils.java b/mcp-core/src/main/java/io/modelcontextprotocol/util/Utils.java index cd420100c..1c0c4407d 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/util/Utils.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/util/Utils.java @@ -8,7 +8,7 @@ import java.util.Collection; import java.util.Map; -import reactor.util.annotation.Nullable; +import org.jspecify.annotations.Nullable; /** * Miscellaneous utility methods. diff --git a/mcp-test/pom.xml b/mcp-test/pom.xml index 376f81c60..5d0dffb55 100644 --- a/mcp-test/pom.xml +++ b/mcp-test/pom.xml @@ -37,6 +37,12 @@ ${slf4j-api.version} + + org.jspecify + jspecify + ${jspecify.version} + + io.projectreactor reactor-core diff --git a/pom.xml b/pom.xml index 5c8b28bff..17636b0b9 100644 --- a/pom.xml +++ b/pom.xml @@ -71,6 +71,7 @@ 2.0.5 2.0.20 + 1.0.0 1.6.6 2.22 2.22.4