Skip to content

Commit 9142ebe

Browse files
committed
Introduce JSpecify
Replace Reactor @nullable with JSpecify. Signed-off-by: Daniel Garnier-Moiroux <git@garnier.wf>
1 parent c531bb8 commit 9142ebe

11 files changed

Lines changed: 23 additions & 12 deletions

File tree

‎mcp-core/pom.xml‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,12 @@
8282
<version>${jackson-annotations.version}</version>
8383
</dependency>
8484

85+
<dependency>
86+
<groupId>org.jspecify</groupId>
87+
<artifactId>jspecify</artifactId>
88+
<version>${jspecify.version}</version>
89+
</dependency>
90+
8591
<dependency>
8692
<groupId>io.projectreactor</groupId>
8793
<artifactId>reactor-core</artifactId>

‎mcp-core/src/main/java/io/modelcontextprotocol/client/transport/customizer/McpAsyncHttpClientRequestCustomizer.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.reactivestreams.Publisher;
1313
import reactor.core.publisher.Mono;
1414
import reactor.core.scheduler.Schedulers;
15-
import reactor.util.annotation.Nullable;
15+
import org.jspecify.annotations.Nullable;
1616

1717
/**
1818
* Customize {@link HttpRequest.Builder} before executing the request, in either SSE or

‎mcp-core/src/main/java/io/modelcontextprotocol/client/transport/customizer/McpSyncHttpClientRequestCustomizer.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import java.net.URI;
88
import java.net.http.HttpRequest;
99

10-
import reactor.util.annotation.Nullable;
10+
import org.jspecify.annotations.Nullable;
1111

1212
import io.modelcontextprotocol.client.McpClient.SyncSpec;
1313
import io.modelcontextprotocol.common.McpTransportContext;

‎mcp-core/src/main/java/io/modelcontextprotocol/modern/server/McpParamHeaders.java‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import io.modelcontextprotocol.modern.McpHttp;
1515
import io.modelcontextprotocol.util.Assert;
16-
import reactor.util.annotation.Nullable;
16+
import org.jspecify.annotations.Nullable;
1717

1818
/**
1919
* The {@code Mcp-Param-{Name}} headers of a {@code tools/call} request, which a client
@@ -90,8 +90,7 @@ public boolean isMalformed(String name) {
9090
* @param name the {@code {Name}} part of {@code Mcp-Param-{Name}}, in any case
9191
* @return the decoded value, or {@code null} if the header is absent or malformed
9292
*/
93-
@Nullable
94-
public String value(String name) {
93+
@Nullable public String value(String name) {
9594
return this.values.get(normalize(name));
9695
}
9796

‎mcp-core/src/main/java/io/modelcontextprotocol/modern/server/transport/McpHeaderDecoder.java‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import io.modelcontextprotocol.modern.McpHttp.Headers;
2121
import io.modelcontextprotocol.modern.server.McpParamHeaders;
2222
import io.modelcontextprotocol.server.transport.HeaderAccessor;
23-
import reactor.util.annotation.Nullable;
23+
import org.jspecify.annotations.Nullable;
2424

2525
/**
2626
* Strict decoder for MCP header values such as {@code Mcp-Name} and
@@ -50,8 +50,7 @@ private McpHeaderDecoder() {
5050
* @param raw the header value as received
5151
* @return the decoded value, or {@code null} if the value is malformed
5252
*/
53-
@Nullable
54-
public static String decodeValue(String raw) {
53+
@Nullable public static String decodeValue(String raw) {
5554
if (raw.length() >= Headers.BASE64_VALUE_PREFIX.length() + Headers.BASE64_VALUE_SUFFIX.length()
5655
&& raw.startsWith(Headers.BASE64_VALUE_PREFIX) && raw.endsWith(Headers.BASE64_VALUE_SUFFIX)) {
5756
String encoded = raw.substring(Headers.BASE64_VALUE_PREFIX.length(),

‎mcp-core/src/main/java/io/modelcontextprotocol/spec/ClosedMcpTransportSession.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import org.reactivestreams.Publisher;
99
import reactor.core.Disposable;
1010
import reactor.core.publisher.Mono;
11-
import reactor.util.annotation.Nullable;
11+
import org.jspecify.annotations.Nullable;
1212

1313
/**
1414
* Represents a closed MCP session, which may not be reused.

‎mcp-core/src/main/java/io/modelcontextprotocol/spec/McpTransportSessionClosedException.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
package io.modelcontextprotocol.spec;
66

7-
import reactor.util.annotation.Nullable;
7+
import org.jspecify.annotations.Nullable;
88

99
/**
1010
* Exception thrown when trying to use an {@link McpTransportSession} that has been

‎mcp-core/src/main/java/io/modelcontextprotocol/util/Assert.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import java.util.Collection;
88

9-
import reactor.util.annotation.Nullable;
9+
import org.jspecify.annotations.Nullable;
1010

1111
/**
1212
* Assertion utility class that assists in validating arguments.

‎mcp-core/src/main/java/io/modelcontextprotocol/util/Utils.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.Collection;
99
import java.util.Map;
1010

11-
import reactor.util.annotation.Nullable;
11+
import org.jspecify.annotations.Nullable;
1212

1313
/**
1414
* Miscellaneous utility methods.

‎mcp-test/pom.xml‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@
3737
<version>${slf4j-api.version}</version>
3838
</dependency>
3939

40+
<dependency>
41+
<groupId>org.jspecify</groupId>
42+
<artifactId>jspecify</artifactId>
43+
<version>${jspecify.version}</version>
44+
</dependency>
45+
4046
<dependency>
4147
<groupId>io.projectreactor</groupId>
4248
<artifactId>reactor-core</artifactId>

0 commit comments

Comments
 (0)