This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git

commit 3bd3f549cd6de30f996353a2bde053183c94cd97
Author: James Bognar <[email protected]>
AuthorDate: Tue Jul 28 16:02:49 2026 -0400

    refactor: extract JSON-RPC envelope beans into juneau-bean-jsonrpc
    
    Moves JsonRpcRequest/JsonRpcResponse/JsonRpcError/McpException out of
    juneau-bean-mcp into a revision-neutral envelope module, drops the last
    cross-module javadoc reference from the envelope into the MCP module, and
    relocates the McpException tests. Characterization fixtures replay 
byte-identical.
    
    Co-authored-by: Cursor <[email protected]>
---
 .../apache/juneau/bean/jsonrpc}/JsonRpcError.java  |  2 +-
 .../juneau/bean/jsonrpc}/JsonRpcRequest.java       |  6 +-
 .../juneau/bean/jsonrpc}/JsonRpcResponse.java      |  2 +-
 .../apache/juneau/bean/jsonrpc}/McpException.java  |  2 +-
 .../src/test/java/org/apache/juneau/TestUtils.java | 40 +++++++++++++
 .../juneau/bean/jsonrpc/McpException_Test.java     | 68 ++++++++++++++++++++++
 juneau-bean/juneau-bean-mcp/pom.xml                |  6 ++
 .../juneau/bean/mcp/McpBeans_RoundTrip_Test.java   | 23 +-------
 .../juneau/rest/server/mcp/McpDispatcher_Test.java |  1 +
 .../rest/server/mcp/McpHandlerDefaults_Test.java   | 18 ------
 .../rest/server/mcp/McpRestServlet_Test.java       |  1 +
 .../rest/server/mcp/McpTypedHandlers_Test.java     |  1 +
 juneau-rest/juneau-rest-server-mcp/pom.xml         |  5 ++
 .../org/apache/juneau/rest/server/mcp/Mcp.java     |  1 +
 .../juneau/rest/server/mcp/McpDispatcher.java      |  1 +
 .../apache/juneau/rest/server/mcp/McpEndpoint.java |  1 +
 .../juneau/rest/server/mcp/McpRestServlet.java     |  1 +
 .../juneau/rest/server/mcp/McpTypedHandlers.java   |  1 +
 .../rest/server/mcp/Characterization_Test.java     |  1 +
 .../juneau/rest/server/mcp/McpDispatcher_Test.java |  1 +
 .../rest/server/mcp/McpHandlerDefaults_Test.java   | 18 ------
 .../rest/server/mcp/McpRestServlet_Test.java       |  1 +
 .../rest/server/mcp/McpTypedHandlers_Test.java     |  1 +
 23 files changed, 138 insertions(+), 64 deletions(-)

diff --git 
a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/JsonRpcError.java
 
b/juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/JsonRpcError.java
similarity index 98%
rename from 
juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/JsonRpcError.java
rename to 
juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/JsonRpcError.java
index 38af45c257..3fd66c2532 100644
--- 
a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/JsonRpcError.java
+++ 
b/juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/JsonRpcError.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.juneau.bean.mcp;
+package org.apache.juneau.bean.jsonrpc;
 
 import org.apache.juneau.marshall.*;
 
diff --git 
a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/JsonRpcRequest.java
 
b/juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/JsonRpcRequest.java
similarity index 93%
rename from 
juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/JsonRpcRequest.java
rename to 
juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/JsonRpcRequest.java
index 0ab652de14..e16851b085 100644
--- 
a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/JsonRpcRequest.java
+++ 
b/juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/JsonRpcRequest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.juneau.bean.mcp;
+package org.apache.juneau.bean.jsonrpc;
 
 import org.apache.juneau.marshall.*;
 
@@ -33,7 +33,7 @@ public class JsonRpcRequest {
        private Object params;
 
        /**
-        * JSON-RPC protocol version (typically {@value 
McpProtocol#JSON_RPC_2_0}).
+        * JSON-RPC protocol version (typically {@code "2.0"}).
         *
         * @return The version token, or {@code null} if not set.
         */
@@ -73,7 +73,7 @@ public class JsonRpcRequest {
        }
 
        /**
-        * JSON-RPC method name (for example {@link McpMethods#TOOLS_LIST}).
+        * JSON-RPC method name (for example {@code "tools/list"}).
         *
         * @return The method, or {@code null} if not set.
         */
diff --git 
a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/JsonRpcResponse.java
 
b/juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/JsonRpcResponse.java
similarity index 98%
rename from 
juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/JsonRpcResponse.java
rename to 
juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/JsonRpcResponse.java
index 202f09ba8f..0e4a38628c 100644
--- 
a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/JsonRpcResponse.java
+++ 
b/juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/JsonRpcResponse.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.juneau.bean.mcp;
+package org.apache.juneau.bean.jsonrpc;
 
 import org.apache.juneau.marshall.*;
 
diff --git 
a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpException.java
 
b/juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/McpException.java
similarity index 98%
rename from 
juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpException.java
rename to 
juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/McpException.java
index 3bcf0d22c3..dd0bed283b 100644
--- 
a/juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/McpException.java
+++ 
b/juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc/McpException.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.juneau.bean.mcp;
+package org.apache.juneau.bean.jsonrpc;
 
 import org.apache.juneau.marshall.*;
 
diff --git 
a/juneau-bean/juneau-bean-jsonrpc/src/test/java/org/apache/juneau/TestUtils.java
 
b/juneau-bean/juneau-bean-jsonrpc/src/test/java/org/apache/juneau/TestUtils.java
new file mode 100644
index 0000000000..fb66e6d1ca
--- /dev/null
+++ 
b/juneau-bean/juneau-bean-jsonrpc/src/test/java/org/apache/juneau/TestUtils.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.juneau;
+
+import static org.apache.juneau.marshall.marshaller.MarshallUtils.*;
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * Test utilities for the juneau-bean-mcp module.
+ *
+ * <p>Contains the marshall-bound helpers layered on top of the shared {@link 
BasicTestUtils} base.</p>
+ */
+@SuppressWarnings({
+       "unchecked"  // BeanTester cast and generic type handling in test 
utilities
+})
+public class TestUtils extends BasicTestUtils {
+
+       public static String assertJson(String expected, Object value) {
+               assertEquals(expected, json5(value));
+               return expected;
+       }
+
+       public static final <T> BeanTester<T> testBean(T bean) {
+               return (BeanTester<T>) new BeanTester<>().bean(bean);
+       }
+}
diff --git 
a/juneau-bean/juneau-bean-jsonrpc/src/test/java/org/apache/juneau/bean/jsonrpc/McpException_Test.java
 
b/juneau-bean/juneau-bean-jsonrpc/src/test/java/org/apache/juneau/bean/jsonrpc/McpException_Test.java
new file mode 100644
index 0000000000..80fa6f15b0
--- /dev/null
+++ 
b/juneau-bean/juneau-bean-jsonrpc/src/test/java/org/apache/juneau/bean/jsonrpc/McpException_Test.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.juneau.bean.jsonrpc;
+
+import static org.apache.juneau.test.bct.BctAssertions.*;
+import static org.junit.jupiter.api.Assertions.*;
+
+import org.apache.juneau.marshall.collections.*;
+import org.junit.jupiter.api.*;
+
+/**
+ * Coverage for {@link McpException} and its {@link 
McpException#toJsonRpcError()} mapping.
+ */
+class McpException_Test {
+
+       @Test
+       void a01_threeArgConstructor_mapsToJsonRpcError() {
+               var a = new McpException(-32000, "Tool failed", 
JsonMap.of("tool", "t1"));
+               var b = a.toJsonRpcError();
+               assertEquals(-32000, b.getCode());
+               assertEquals("Tool failed", b.getMessage());
+               assertNotNull(b.getData());
+       }
+
+       @Test
+       void a02_twoArgConstructorAndSetters() {
+               var a = new McpException(1, "m");
+               assertNull(a.getData());
+               a.setCode(2).setData(JsonMap.of("a", 1));
+               assertEquals(2, a.getCode());
+               assertNotNull(a.getData());
+               var b = a.toJsonRpcError();
+               assertEquals(2, b.getCode());
+               assertEquals("m", b.getMessage());
+       }
+
+       @Test
+       void a03_defaultData_isNull() {
+               var a = new McpException(-1, "x");
+               assertNull(a.getData());
+               assertEquals(-1, a.getCode());
+               assertString("x", a.getMessage());
+       }
+
+       @Test
+       void a04_withData_roundTripsThroughJsonRpcError() {
+               var a = new McpException(-1, "x", "data");
+               assertString("data", a.getData());
+               var b = a.toJsonRpcError();
+               assertEquals(-1, b.getCode());
+               assertString("x", b.getMessage());
+               assertString("data", b.getData());
+       }
+}
diff --git a/juneau-bean/juneau-bean-mcp/pom.xml 
b/juneau-bean/juneau-bean-mcp/pom.xml
index 8c6911648c..cf3aab0140 100644
--- a/juneau-bean/juneau-bean-mcp/pom.xml
+++ b/juneau-bean/juneau-bean-mcp/pom.xml
@@ -39,6 +39,12 @@
                        <groupId>org.apache.juneau</groupId>
                        <artifactId>juneau-marshall</artifactId>
                        <version>${project.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.juneau</groupId>
+                       <artifactId>juneau-bean-jsonrpc</artifactId>
+                       <version>${project.version}</version>
+                       <scope>test</scope>
                </dependency>
                        <dependency>
                        <groupId>org.junit.jupiter</groupId>
diff --git 
a/juneau-bean/juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp/McpBeans_RoundTrip_Test.java
 
b/juneau-bean/juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp/McpBeans_RoundTrip_Test.java
index 6c5eeaaba4..f0bc780f01 100644
--- 
a/juneau-bean/juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp/McpBeans_RoundTrip_Test.java
+++ 
b/juneau-bean/juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp/McpBeans_RoundTrip_Test.java
@@ -20,7 +20,7 @@ import static 
org.apache.juneau.commons.utils.CollectionUtils.*;
 import static org.junit.jupiter.api.Assertions.*;
 
 import java.util.*;
-
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.marshall.collections.*;
 import org.apache.juneau.marshall.json.*;
 import org.junit.jupiter.api.*;
@@ -241,27 +241,6 @@ class McpBeans_RoundTrip_Test {
                }
        }
 
-       @Test
-       void a16_mcpExceptionToJsonRpcError() {
-               var ex = new McpException(-32000, "Tool failed", 
JsonMap.of("tool", "t1"));
-               var err = ex.toJsonRpcError();
-               assertEquals(-32000, err.getCode());
-               assertEquals("Tool failed", err.getMessage());
-               assertNotNull(err.getData());
-       }
-
-       @Test
-       void a17_mcpExceptionTwoArgConstructorAndSetters() {
-               var ex = new McpException(1, "m");
-               assertNull(ex.getData());
-               ex.setCode(2).setData(JsonMap.of("a", 1));
-               assertEquals(2, ex.getCode());
-               assertNotNull(ex.getData());
-               var err = ex.toJsonRpcError();
-               assertEquals(2, err.getCode());
-               assertEquals("m", err.getMessage());
-       }
-
        @Test
        void a18_getPromptResultSystemAndToolRolesRoundTrip() {
                var pr = new GetPromptResult()
diff --git 
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpDispatcher_Test.java
 
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpDispatcher_Test.java
index e5d8676cc1..df2704c779 100644
--- 
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpDispatcher_Test.java
+++ 
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpDispatcher_Test.java
@@ -21,6 +21,7 @@ import static org.junit.jupiter.api.Assertions.*;
 
 import java.util.*;
 
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.marshall.collections.*;
diff --git 
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpHandlerDefaults_Test.java
 
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpHandlerDefaults_Test.java
index 843f268070..67089424b8 100644
--- 
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpHandlerDefaults_Test.java
+++ 
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpHandlerDefaults_Test.java
@@ -47,24 +47,6 @@ class McpHandlerDefaults_Test {
                assertThrows(UnsupportedOperationException.class, 
h::descriptor);
        }
 
-       @Test
-       void mcpException_default_data_isNull() {
-               var e = new McpException(-1, "x");
-               assertNull(e.getData());
-               assertEquals(-1, e.getCode());
-               assertString("x", e.getMessage());
-       }
-
-       @Test
-       void mcpException_with_data() {
-               var e = new McpException(-1, "x", "data");
-               assertString("data", e.getData());
-               var rpc = e.toJsonRpcError();
-               assertEquals(-1, rpc.getCode());
-               assertString("x", rpc.getMessage());
-               assertString("data", rpc.getData());
-       }
-
        @Test
        void typedHandlers_constructor_isPrivate() {
                // Sanity: the static façade class should not be instantiable. 
Reflection trick used to bump coverage on the
diff --git 
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpRestServlet_Test.java
 
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpRestServlet_Test.java
index 1abd95ad2a..80dd1d59f0 100644
--- 
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpRestServlet_Test.java
+++ 
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpRestServlet_Test.java
@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.*;
 import java.util.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.marshall.json.*;
diff --git 
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers_Test.java
 
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers_Test.java
index e9968a9f4f..174a3eeeaf 100644
--- 
a/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers_Test.java
+++ 
b/juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers_Test.java
@@ -21,6 +21,7 @@ import static org.junit.jupiter.api.Assertions.*;
 
 import java.util.*;
 
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.marshall.collections.*;
diff --git a/juneau-rest/juneau-rest-server-mcp/pom.xml 
b/juneau-rest/juneau-rest-server-mcp/pom.xml
index 59cc2da30b..ef1a6fa6ce 100644
--- a/juneau-rest/juneau-rest-server-mcp/pom.xml
+++ b/juneau-rest/juneau-rest-server-mcp/pom.xml
@@ -45,6 +45,11 @@
                        <artifactId>juneau-bean-mcp</artifactId>
                        <version>${project.version}</version>
                </dependency>
+               <dependency>
+                       <groupId>org.apache.juneau</groupId>
+                       <artifactId>juneau-bean-jsonrpc</artifactId>
+                       <version>${project.version}</version>
+               </dependency>
                <dependency>
                        <groupId>org.junit.jupiter</groupId>
                        <artifactId>junit-jupiter</artifactId>
diff --git 
a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/Mcp.java
 
b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/Mcp.java
index 53028fd271..182782eef5 100644
--- 
a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/Mcp.java
+++ 
b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/Mcp.java
@@ -16,6 +16,7 @@
  */
 package org.apache.juneau.rest.server.mcp;
 
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 
diff --git 
a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpDispatcher.java
 
b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpDispatcher.java
index e791904b66..ff6da6c691 100644
--- 
a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpDispatcher.java
+++ 
b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpDispatcher.java
@@ -22,6 +22,7 @@ import static org.apache.juneau.commons.utils.StringUtils.*;
 
 import java.util.*;
 
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.marshall.collections.*;
diff --git 
a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpEndpoint.java
 
b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpEndpoint.java
index 09d7c95881..c5c1787bd0 100644
--- 
a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpEndpoint.java
+++ 
b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpEndpoint.java
@@ -16,6 +16,7 @@
  */
 package org.apache.juneau.rest.server.mcp;
 
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.http.Content;
diff --git 
a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpRestServlet.java
 
b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpRestServlet.java
index 219850e330..1c350e92d5 100644
--- 
a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpRestServlet.java
+++ 
b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpRestServlet.java
@@ -18,6 +18,7 @@ package org.apache.juneau.rest.server.mcp;
 
 import java.util.concurrent.atomic.*;
 
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.http.Content;
diff --git 
a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers.java
 
b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers.java
index 8b36d5df5c..1f11f96c13 100644
--- 
a/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers.java
+++ 
b/juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers.java
@@ -20,6 +20,7 @@ import static 
org.apache.juneau.commons.utils.AssertionUtils.*;
 
 import java.util.*;
 
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.marshall.marshaller.*;
diff --git 
a/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/Characterization_Test.java
 
b/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/Characterization_Test.java
index 0fc80b4788..cd5a8857fe 100644
--- 
a/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/Characterization_Test.java
+++ 
b/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/Characterization_Test.java
@@ -22,6 +22,7 @@ import java.nio.file.*;
 import java.util.*;
 import java.util.function.*;
 
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.marshall.collections.*;
diff --git 
a/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpDispatcher_Test.java
 
b/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpDispatcher_Test.java
index 6f7a023ccd..67152c8506 100644
--- 
a/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpDispatcher_Test.java
+++ 
b/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpDispatcher_Test.java
@@ -21,6 +21,7 @@ import static org.junit.jupiter.api.Assertions.*;
 
 import java.util.*;
 
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.marshall.collections.*;
diff --git 
a/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpHandlerDefaults_Test.java
 
b/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpHandlerDefaults_Test.java
index 010f034c8a..186d99cf88 100644
--- 
a/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpHandlerDefaults_Test.java
+++ 
b/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpHandlerDefaults_Test.java
@@ -47,24 +47,6 @@ class McpHandlerDefaults_Test {
                assertThrows(UnsupportedOperationException.class, 
h::descriptor);
        }
 
-       @Test
-       void b01_mcpException_default_data_isNull() {
-               var e = new McpException(-1, "x");
-               assertNull(e.getData());
-               assertEquals(-1, e.getCode());
-               assertString("x", e.getMessage());
-       }
-
-       @Test
-       void b02_mcpException_with_data() {
-               var e = new McpException(-1, "x", "data");
-               assertString("data", e.getData());
-               var rpc = e.toJsonRpcError();
-               assertEquals(-1, rpc.getCode());
-               assertString("x", rpc.getMessage());
-               assertString("data", rpc.getData());
-       }
-
        @Test
        void c01_typedHandlers_constructor_isPrivate() {
                // Sanity: the static façade class should not be instantiable. 
Reflection trick used to bump coverage on the
diff --git 
a/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpRestServlet_Test.java
 
b/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpRestServlet_Test.java
index 3dab96235b..731c4ee93a 100644
--- 
a/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpRestServlet_Test.java
+++ 
b/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpRestServlet_Test.java
@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.*;
 import java.util.*;
 
 import org.apache.juneau.*;
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.marshall.json.*;
diff --git 
a/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers_Test.java
 
b/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers_Test.java
index c09501b645..54a5e7d9c4 100644
--- 
a/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers_Test.java
+++ 
b/juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpTypedHandlers_Test.java
@@ -21,6 +21,7 @@ import static org.junit.jupiter.api.Assertions.*;
 
 import java.util.*;
 
+import org.apache.juneau.bean.jsonrpc.*;
 import org.apache.juneau.bean.mcp.*;
 import org.apache.juneau.commons.inject.*;
 import org.apache.juneau.marshall.collections.*;

Reply via email to