This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
from 3a82287f44 Add @ConfigProperties prefix-scoped config binding with
RestContext pilot (TODO-311)
new 47428cf643 test: capture MCP JSON-RPC characterization fixtures
against pre-refactor behavior
new 17919282ae build: add empty juneau-bean-jsonrpc module for the
JSON-RPC envelope extraction
new 3bd3f549cd refactor: extract JSON-RPC envelope beans into
juneau-bean-jsonrpc
new e09b9fe29a feat: add JsonRpcResponse.notification/ok/errorResponse
static helpers
new 0d52781730 refactor: rename juneau-bean-mcp to
juneau-bean-mcp-2025-06-18
new aeba30dfd2 feat: add revision-neutral MCP value types (schema, role,
content blocks)
new 10cd81bea8 feat: add revision-neutral MCP tool/prompt/resource spec
and outcome types
new 4d3b7ad610 feat: add the McpRevision SPI surface (exchange, error
kinds, param utils)
new d9f866b3aa build: add empty juneau-rest-server-mcp-2025-06-18 adapter
module
new 3420e01ccb refactor: replace McpDispatcher/Mcp with the McpRevision SPI
new 7e4ca741b6 test: add the permanent fake-McpRevision architecture
acceptance test
new 03153783dd refactor: make juneau-rest-server-mcp revision-neutral
new 96b51db18a test: cover the capabilities hook's auto-derive and
override paths on both integration paths
new e8dacf970a feat: reject tool schemas the 2025-06-18 wire format cannot
represent
new cbf22b1cd8 build: fail the build if the MCP core gains a per-revision
dependency
new 0ac1ac4fcd test: cover MCP 2025-06-18 wire content/role branches, mark
HTT for unreachable throws
new 20056e8886 build: re-baseline MCP module test timings after the
re-layering split
new 8d5c2b036f docs: fix stale MCP javadoc example referencing removed
setServerInfo API
new fa50bb32de chore: remove unused imports in MCP 2025-06-18
adapter/tests; ignore /.superpowers/
The 19 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.gitignore | 1 +
.../pom.xml | 6 +-
.../apache/juneau/bean/jsonrpc}/JsonRpcError.java | 2 +-
.../juneau/bean/jsonrpc}/JsonRpcRequest.java | 6 +-
.../juneau/bean/jsonrpc}/JsonRpcResponse.java | 60 ++++-
.../apache/juneau/bean/jsonrpc}/McpException.java | 2 +-
.../apache/juneau/bean/jsonrpc}/package-info.java | 12 +-
.../src/test/java/org/apache/juneau/TestUtils.java | 0
.../juneau/bean/jsonrpc/JsonRpcBeans_Test.java | 94 +++++++
.../juneau/bean/jsonrpc/McpException_Test.java | 68 +++++
.../pom.xml | 12 +-
.../bean/mcp/v20250618}/BlobResourceContents.java | 2 +-
.../bean/mcp/v20250618}/CallToolRequest.java | 2 +-
.../juneau/bean/mcp/v20250618}/CallToolResult.java | 2 +-
.../bean/mcp/v20250618}/ClientCapabilities.java | 2 +-
.../apache/juneau/bean/mcp/v20250618}/Content.java | 2 +-
.../mcp/v20250618}/EmbeddedResourceContent.java | 2 +-
.../bean/mcp/v20250618}/GetPromptRequest.java | 2 +-
.../bean/mcp/v20250618}/GetPromptResult.java | 2 +-
.../juneau/bean/mcp/v20250618}/ImageContent.java | 2 +-
.../juneau/bean/mcp/v20250618}/Implementation.java | 2 +-
.../bean/mcp/v20250618}/InitializeRequest.java | 2 +-
.../bean/mcp/v20250618}/InitializeResult.java | 2 +-
.../juneau/bean/mcp/v20250618}/JsonSchema.java | 2 +-
.../bean/mcp/v20250618}/ListPromptsResult.java | 2 +-
.../bean/mcp/v20250618}/ListResourcesResult.java | 2 +-
.../bean/mcp/v20250618}/ListToolsResult.java | 2 +-
.../bean/mcp/v20250618}/LoggingCapability.java | 2 +-
.../juneau/bean/mcp/v20250618}/McpMethods.java | 2 +-
.../juneau/bean/mcp/v20250618}/McpProtocol.java | 2 +-
.../apache/juneau/bean/mcp/v20250618}/Prompt.java | 2 +-
.../juneau/bean/mcp/v20250618}/PromptArgument.java | 2 +-
.../bean/mcp/v20250618}/PromptCapability.java | 2 +-
.../juneau/bean/mcp/v20250618}/PromptMessage.java | 2 +-
.../bean/mcp/v20250618}/ReadResourceRequest.java | 2 +-
.../bean/mcp/v20250618}/ReadResourceResult.java | 2 +-
.../juneau/bean/mcp/v20250618}/Resource.java | 2 +-
.../bean/mcp/v20250618}/ResourceCapability.java | 2 +-
.../bean/mcp/v20250618}/ResourceContents.java | 2 +-
.../apache/juneau/bean/mcp/v20250618}/Role.java | 2 +-
.../bean/mcp/v20250618}/RootsCapability.java | 2 +-
.../bean/mcp/v20250618}/ServerCapabilities.java | 2 +-
.../juneau/bean/mcp/v20250618}/TextContent.java | 2 +-
.../bean/mcp/v20250618}/TextResourceContents.java | 2 +-
.../apache/juneau/bean/mcp/v20250618}/Tool.java | 2 +-
.../juneau/bean/mcp/v20250618}/ToolCapability.java | 2 +-
.../juneau/bean/mcp/v20250618}/package-info.java | 8 +-
.../src/test/java/org/apache/juneau/TestUtils.java | 0
.../mcp/v20250618}/JsonSchema_Finiteness_Test.java | 2 +-
.../mcp/v20250618}/McpBeans_AddXNullInit_Test.java | 2 +-
.../mcp/v20250618}/McpBeans_RoundTrip_Test.java | 24 +-
juneau-bean/pom.xml | 3 +-
juneau-bom/pom.xml | 4 +-
juneau-distrib/pom.xml | 78 +++++-
juneau-integration-tests/pom.xml | 12 +-
.../juneau/rest/server/mcp/McpConfigCore_Test.java | 126 +++++++++
.../McpCursorCtx_Test.java} | 28 +-
.../rest/server/mcp/McpServerConfig_Test.java | 136 ----------
.../Mcp20250618Revision_Test.java} | 127 ++++-----
.../{ => v20250618}/McpHandlerDefaults_Test.java | 55 +---
.../McpRestServlet20250618_Test.java} | 34 +--
.../mcp/{ => v20250618}/McpTypedHandlers_Test.java | 54 ++--
.../pom.xml | 10 +-
.../server/mcp/v20250618/Mcp20250618Revision.java | 289 +++++++++++++++++++++
.../rest/server/mcp/v20250618/Mcp20250618Wire.java | 242 +++++++++++++++++
.../server/mcp/v20250618/McpEndpoint20250618.java | 66 +++++
.../mcp/v20250618/McpRestServlet20250618.java | 75 ++++++
.../server/mcp/v20250618}/McpTypedHandlers.java | 28 +-
.../mcp/v20250618}/McpTypedPromptHandler.java | 5 +-
.../server/mcp/v20250618}/McpTypedToolHandler.java | 5 +-
.../rest/server/mcp/v20250618/package-info.java} | 26 +-
.../mcp/v20250618/Characterization_Test.java | 188 ++++++++++++++
.../mcp/v20250618/Mcp20250618Revision_Test.java} | 127 ++++-----
.../mcp/v20250618/McpCapabilityHook_Test.java | 133 ++++++++++
.../mcp/v20250618}/McpHandlerDefaults_Test.java | 55 +---
.../v20250618/McpRestServlet20250618_Test.java} | 34 +--
.../server/mcp/v20250618/McpSchemaCheck_Test.java | 106 ++++++++
.../mcp/v20250618}/McpTypedHandlers_Test.java | 118 +++++++--
.../characterization/CAPS-initialize.request.json | 1 +
.../characterization/CAPS-initialize.response.json | 1 +
.../EMPTY-empty-method.request.json | 1 +
.../EMPTY-empty-method.response.json | 1 +
.../characterization/EMPTY-initialize.request.json | 1 +
.../EMPTY-initialize.response.json | 1 +
.../EMPTY-missing-method.request.json | 1 +
.../EMPTY-missing-method.response.json | 1 +
.../EMPTY-notification-ping.request.json | 1 +
.../EMPTY-notification-ping.response.json | 1 +
.../EMPTY-notification-unknown.request.json | 1 +
.../EMPTY-notification-unknown.response.json | 1 +
.../characterization/EMPTY-ping.request.json | 1 +
.../characterization/EMPTY-ping.response.json | 1 +
.../EMPTY-prompts-get-missing-name.request.json | 1 +
.../EMPTY-prompts-get-missing-name.response.json | 1 +
.../EMPTY-prompts-get-unknown.request.json | 1 +
.../EMPTY-prompts-get-unknown.response.json | 1 +
.../EMPTY-prompts-list.request.json | 1 +
.../EMPTY-prompts-list.response.json | 1 +
.../EMPTY-resources-list.request.json | 1 +
.../EMPTY-resources-list.response.json | 1 +
.../EMPTY-resources-read-missing-uri.request.json | 1 +
.../EMPTY-resources-read-missing-uri.response.json | 1 +
.../EMPTY-resources-read-unknown.request.json | 1 +
.../EMPTY-resources-read-unknown.response.json | 1 +
.../EMPTY-tools-call-missing-name.request.json | 1 +
.../EMPTY-tools-call-missing-name.response.json | 1 +
.../EMPTY-tools-call-unknown-tool.request.json | 1 +
.../EMPTY-tools-call-unknown-tool.response.json | 1 +
.../characterization/EMPTY-tools-list.request.json | 1 +
.../EMPTY-tools-list.response.json | 1 +
.../EMPTY-unknown-method.request.json | 1 +
.../EMPTY-unknown-method.response.json | 1 +
.../characterization/FULL-initialize.request.json | 1 +
.../characterization/FULL-initialize.response.json | 1 +
.../characterization/FULL-prompts-get.request.json | 1 +
.../FULL-prompts-get.response.json | 1 +
.../FULL-prompts-list.request.json | 1 +
.../FULL-prompts-list.response.json | 1 +
.../FULL-resources-list.request.json | 1 +
.../FULL-resources-list.response.json | 1 +
.../FULL-resources-read.request.json | 1 +
.../FULL-resources-read.response.json | 1 +
.../characterization/FULL-string-id.request.json | 1 +
.../characterization/FULL-string-id.response.json | 1 +
.../FULL-tools-call-arguments-not-map.request.json | 1 +
...FULL-tools-call-arguments-not-map.response.json | 1 +
.../FULL-tools-call-error-flag.request.json | 1 +
.../FULL-tools-call-error-flag.response.json | 1 +
.../FULL-tools-call-mixed-content.request.json | 1 +
.../FULL-tools-call-mixed-content.response.json | 1 +
.../FULL-tools-call-no-arguments.request.json | 1 +
.../FULL-tools-call-no-arguments.response.json | 1 +
.../FULL-tools-call-params-not-map.request.json | 1 +
.../FULL-tools-call-params-not-map.response.json | 1 +
.../FULL-tools-call-text.request.json | 1 +
.../FULL-tools-call-text.response.json | 1 +
.../characterization/FULL-tools-list.request.json | 1 +
.../characterization/FULL-tools-list.response.json | 1 +
.../PAGED-tools-list-first.request.json | 1 +
.../PAGED-tools-list-first.response.json | 1 +
.../PAGED-tools-list-second.request.json | 1 +
.../PAGED-tools-list-second.response.json | 1 +
.../THROW-mcp-exception.request.json | 1 +
.../THROW-mcp-exception.response.json | 1 +
.../characterization/THROW-no-message.request.json | 1 +
.../THROW-no-message.response.json | 1 +
.../THROW-runtime-exception.request.json | 1 +
.../THROW-runtime-exception.response.json | 1 +
juneau-rest/juneau-rest-server-mcp/pom.xml | 33 ++-
.../org/apache/juneau/rest/server/mcp/Mcp.java | 58 -----
.../juneau/rest/server/mcp/McpContentBlock.java | 128 +++++++++
.../apache/juneau/rest/server/mcp/McpCursor.java | 12 +
.../juneau/rest/server/mcp/McpDispatcher.java | 270 -------------------
.../apache/juneau/rest/server/mcp/McpEndpoint.java | 24 +-
.../juneau/rest/server/mcp/McpErrorKind.java | 59 +++++
.../apache/juneau/rest/server/mcp/McpExchange.java | 70 +++++
.../juneau/rest/server/mcp/McpParamUtils.java | 93 +++++++
.../juneau/rest/server/mcp/McpPromptArgument.java | 44 ++--
.../juneau/rest/server/mcp/McpPromptHandler.java | 15 +-
.../juneau/rest/server/mcp/McpPromptMessage.java | 44 ++--
.../juneau/rest/server/mcp/McpPromptOutcome.java | 72 +++++
.../juneau/rest/server/mcp/McpPromptSpec.java | 93 +++++++
.../rest/server/mcp/McpResourceContents.java | 118 +++++++++
.../juneau/rest/server/mcp/McpResourceHandler.java | 15 +-
.../juneau/rest/server/mcp/McpResourceOutcome.java | 35 ++-
.../juneau/rest/server/mcp/McpResourceSpec.java | 153 +++++++++++
.../juneau/rest/server/mcp/McpRestServlet.java | 27 +-
.../apache/juneau/rest/server/mcp/McpRevision.java | 66 +++++
.../org/apache/juneau/rest/server/mcp/McpRole.java | 11 +-
.../apache/juneau/rest/server/mcp/McpSchema.java | 59 +++++
.../juneau/rest/server/mcp/McpServerConfig.java | 77 +++---
.../juneau/rest/server/mcp/McpToolHandler.java | 20 +-
.../juneau/rest/server/mcp/McpToolOutcome.java | 98 +++++++
.../apache/juneau/rest/server/mcp/McpToolSpec.java | 92 +++++++
.../juneau/rest/server/mcp/package-info.java | 15 +-
.../rest/server/mcp/FakeMcpRevision_Test.java | 130 +++++++++
.../juneau/rest/server/mcp/McpConfigCore_Test.java | 126 +++++++++
.../juneau/rest/server/mcp/McpCursorCtx_Test.java | 28 +-
.../rest/server/mcp/McpNeutralModel_Test.java | 117 +++++++++
.../rest/server/mcp/McpNeutralValues_Test.java | 98 +++++++
.../rest/server/mcp/McpServerConfig_Test.java | 136 ----------
.../apache/juneau/rest/server/mcp/McpSpi_Test.java | 106 ++++++++
juneau-rest/pom.xml | 1 +
juneau-shaded/juneau-shaded-all/pom.xml | 12 +-
perf-baseline.txt | 6 +-
185 files changed, 3956 insertions(+), 1208 deletions(-)
copy juneau-bean/{juneau-bean-mcp => juneau-bean-jsonrpc}/pom.xml (95%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc}/JsonRpcError.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc}/JsonRpcRequest.java
(93%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc}/JsonRpcResponse.java
(57%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc}/McpException.java
(98%)
copy
{juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/bean/rfc7807/adapter
=>
juneau-bean/juneau-bean-jsonrpc/src/main/java/org/apache/juneau/bean/jsonrpc}/package-info.java
(67%)
copy juneau-bean/{juneau-bean-mcp =>
juneau-bean-jsonrpc}/src/test/java/org/apache/juneau/TestUtils.java (100%)
create mode 100644
juneau-bean/juneau-bean-jsonrpc/src/test/java/org/apache/juneau/bean/jsonrpc/JsonRpcBeans_Test.java
create mode 100644
juneau-bean/juneau-bean-jsonrpc/src/test/java/org/apache/juneau/bean/jsonrpc/McpException_Test.java
rename juneau-bean/{juneau-bean-mcp => juneau-bean-mcp-2025-06-18}/pom.xml
(91%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/BlobResourceContents.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/CallToolRequest.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/CallToolResult.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ClientCapabilities.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/Content.java
(96%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/EmbeddedResourceContent.java
(97%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/GetPromptRequest.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/GetPromptResult.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ImageContent.java
(97%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/Implementation.java
(97%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/InitializeRequest.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/InitializeResult.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/JsonSchema.java
(99%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ListPromptsResult.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ListResourcesResult.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ListToolsResult.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/LoggingCapability.java
(96%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/McpMethods.java
(97%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/McpProtocol.java
(96%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/Prompt.java
(98%)
copy juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp =>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/PromptArgument.java
(97%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/PromptCapability.java
(96%)
copy juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp =>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/PromptMessage.java
(97%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ReadResourceRequest.java
(96%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ReadResourceResult.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/Resource.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ResourceCapability.java
(97%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ResourceContents.java
(96%)
copy juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp =>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/Role.java
(96%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/RootsCapability.java
(96%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ServerCapabilities.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/TextContent.java
(96%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/TextResourceContents.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/Tool.java
(97%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/ToolCapability.java
(96%)
rename juneau-bean/{juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/main/java/org/apache/juneau/bean/mcp/v20250618}/package-info.java
(85%)
rename juneau-bean/{juneau-bean-mcp =>
juneau-bean-mcp-2025-06-18}/src/test/java/org/apache/juneau/TestUtils.java
(100%)
rename juneau-bean/{juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/test/java/org/apache/juneau/bean/mcp/v20250618}/JsonSchema_Finiteness_Test.java
(98%)
rename juneau-bean/{juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/test/java/org/apache/juneau/bean/mcp/v20250618}/McpBeans_AddXNullInit_Test.java
(99%)
rename juneau-bean/{juneau-bean-mcp/src/test/java/org/apache/juneau/bean/mcp
=>
juneau-bean-mcp-2025-06-18/src/test/java/org/apache/juneau/bean/mcp/v20250618}/McpBeans_RoundTrip_Test.java
(92%)
create mode 100644
juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpConfigCore_Test.java
copy
juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/{auth/saml/SamlBinding_Test.java
=> mcp/McpCursorCtx_Test.java} (58%)
delete mode 100644
juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/McpServerConfig_Test.java
rename
juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/{McpDispatcher_Test.java
=> v20250618/Mcp20250618Revision_Test.java} (68%)
rename
juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/{ =>
v20250618}/McpHandlerDefaults_Test.java (55%)
rename
juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/{McpRestServlet_Test.java
=> v20250618/McpRestServlet20250618_Test.java} (84%)
rename
juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/mcp/{ =>
v20250618}/McpTypedHandlers_Test.java (87%)
copy juneau-rest/{juneau-rest-server-mcp =>
juneau-rest-server-mcp-2025-06-18}/pom.xml (93%)
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/main/java/org/apache/juneau/rest/server/mcp/v20250618/Mcp20250618Revision.java
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/main/java/org/apache/juneau/rest/server/mcp/v20250618/Mcp20250618Wire.java
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/main/java/org/apache/juneau/rest/server/mcp/v20250618/McpEndpoint20250618.java
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/main/java/org/apache/juneau/rest/server/mcp/v20250618/McpRestServlet20250618.java
rename
juneau-rest/{juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp
=>
juneau-rest-server-mcp-2025-06-18/src/main/java/org/apache/juneau/rest/server/mcp/v20250618}/McpTypedHandlers.java
(79%)
rename
juneau-rest/{juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp
=>
juneau-rest-server-mcp-2025-06-18/src/main/java/org/apache/juneau/rest/server/mcp/v20250618}/McpTypedPromptHandler.java
(91%)
rename
juneau-rest/{juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp
=>
juneau-rest-server-mcp-2025-06-18/src/main/java/org/apache/juneau/rest/server/mcp/v20250618}/McpTypedToolHandler.java
(94%)
copy
juneau-rest/{juneau-rest-client-classic/src/main/java/org/apache/juneau/rest/client/classic/RestRequestCreated.java
=>
juneau-rest-server-mcp-2025-06-18/src/main/java/org/apache/juneau/rest/server/mcp/v20250618/package-info.java}
(55%)
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/java/org/apache/juneau/rest/server/mcp/v20250618/Characterization_Test.java
rename
juneau-rest/{juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpDispatcher_Test.java
=>
juneau-rest-server-mcp-2025-06-18/src/test/java/org/apache/juneau/rest/server/mcp/v20250618/Mcp20250618Revision_Test.java}
(68%)
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/java/org/apache/juneau/rest/server/mcp/v20250618/McpCapabilityHook_Test.java
rename
juneau-rest/{juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp
=>
juneau-rest-server-mcp-2025-06-18/src/test/java/org/apache/juneau/rest/server/mcp/v20250618}/McpHandlerDefaults_Test.java
(55%)
rename
juneau-rest/{juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpRestServlet_Test.java
=>
juneau-rest-server-mcp-2025-06-18/src/test/java/org/apache/juneau/rest/server/mcp/v20250618/McpRestServlet20250618_Test.java}
(84%)
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/java/org/apache/juneau/rest/server/mcp/v20250618/McpSchemaCheck_Test.java
rename
juneau-rest/{juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp
=>
juneau-rest-server-mcp-2025-06-18/src/test/java/org/apache/juneau/rest/server/mcp/v20250618}/McpTypedHandlers_Test.java
(66%)
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/CAPS-initialize.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/CAPS-initialize.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-empty-method.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-empty-method.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-initialize.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-initialize.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-missing-method.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-missing-method.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-notification-ping.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-notification-ping.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-notification-unknown.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-notification-unknown.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-ping.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-ping.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-prompts-get-missing-name.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-prompts-get-missing-name.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-prompts-get-unknown.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-prompts-get-unknown.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-prompts-list.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-prompts-list.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-resources-list.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-resources-list.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-resources-read-missing-uri.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-resources-read-missing-uri.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-resources-read-unknown.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-resources-read-unknown.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-tools-call-missing-name.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-tools-call-missing-name.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-tools-call-unknown-tool.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-tools-call-unknown-tool.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-tools-list.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-tools-list.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-unknown-method.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/EMPTY-unknown-method.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-initialize.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-initialize.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-prompts-get.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-prompts-get.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-prompts-list.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-prompts-list.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-resources-list.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-resources-list.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-resources-read.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-resources-read.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-string-id.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-string-id.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-arguments-not-map.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-arguments-not-map.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-error-flag.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-error-flag.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-mixed-content.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-mixed-content.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-no-arguments.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-no-arguments.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-params-not-map.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-params-not-map.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-text.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-call-text.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-list.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/FULL-tools-list.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/PAGED-tools-list-first.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/PAGED-tools-list-first.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/PAGED-tools-list-second.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/PAGED-tools-list-second.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/THROW-mcp-exception.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/THROW-mcp-exception.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/THROW-no-message.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/THROW-no-message.response.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/THROW-runtime-exception.request.json
create mode 100644
juneau-rest/juneau-rest-server-mcp-2025-06-18/src/test/resources/characterization/THROW-runtime-exception.response.json
delete mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/Mcp.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpContentBlock.java
delete mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpDispatcher.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpErrorKind.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpExchange.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpParamUtils.java
rename
juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/PromptArgument.java
=>
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpPromptArgument.java
(57%)
rename
juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/PromptMessage.java
=>
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpPromptMessage.java
(53%)
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpPromptOutcome.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpPromptSpec.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpResourceContents.java
copy
juneau-bean/juneau-bean-jsonschema/src/main/java/org/apache/juneau/bean/jsonschema/JsonSchemaArray.java
=>
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpResourceOutcome.java
(55%)
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpResourceSpec.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpRevision.java
rename
juneau-bean/juneau-bean-mcp/src/main/java/org/apache/juneau/bean/mcp/Role.java
=>
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpRole.java
(82%)
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpSchema.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpToolOutcome.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/main/java/org/apache/juneau/rest/server/mcp/McpToolSpec.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/FakeMcpRevision_Test.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpConfigCore_Test.java
copy
juneau-integration-tests/src/test/java/org/apache/juneau/rest/server/auth/saml/SamlBinding_Test.java
=>
juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpCursorCtx_Test.java
(58%)
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpNeutralModel_Test.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpNeutralValues_Test.java
delete mode 100644
juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpServerConfig_Test.java
create mode 100644
juneau-rest/juneau-rest-server-mcp/src/test/java/org/apache/juneau/rest/server/mcp/McpSpi_Test.java