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

Croway pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git


The following commit(s) were added to refs/heads/main by this push:
     new eb4907927ce CAMEL-23753: camel-spring-boot - upgrade to Spring AI 2.0
eb4907927ce is described below

commit eb4907927ceec2968926ba260ecc77ecd81cdbe1
Author: croway <[email protected]>
AuthorDate: Wed Aug 5 11:46:20 2026 +0200

    CAMEL-23753: camel-spring-boot - upgrade to Spring AI 2.0
    
    Follows CAMEL-24212 in apache/camel, which moves spring-ai-version to 2.0.0 
in the Camel
    parent. The starters inherit that property, so most of the change is 
regenerated output.
    
    Before this, an application combining camel-mcp-server-starter with any of 
the Spring AI
    starters ended up with two Spring AI majors on one classpath: 
camel-mcp-server-starter
    pinned Spring AI 2.0.0 (MCP SDK 2.0.0, Jackson 3) while 
camel-spring-ai-chat-starter
    resolved Spring AI 1.1.7 through camel-spring-ai-chat (MCP SDK 0.18.2, 
Jackson 2).
    
    * camel-mcp-server-starter drops its local spring-ai-mcp-version pin and 
uses
      ${spring-ai-version} from the Camel parent, which is now on the 2.x line.
    * The four Spring AI starters pick up generated commons-logging exclusions, 
since
      Spring AI 2.0 brings commons-logging transitively.
    * Regenerated the spring-ai-chat catalog entry for the reworded toolNames 
option.
    
    Tests: camel-mcp-server-starter passes 11/11 against Spring AI 2.0.0, and 
all five
    starters build.
    
    Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
---
 .../camel/springboot/catalog/components/spring-ai-chat.json      | 2 +-
 components-starter/camel-mcp-server-starter/pom.xml              | 9 +++------
 components-starter/camel-spring-ai-chat-starter/pom.xml          | 8 ++++++++
 components-starter/camel-spring-ai-embeddings-starter/pom.xml    | 8 ++++++++
 components-starter/camel-spring-ai-image-starter/pom.xml         | 8 ++++++++
 components-starter/camel-spring-ai-vector-store-starter/pom.xml  | 8 ++++++++
 6 files changed, 36 insertions(+), 7 deletions(-)

diff --git 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/spring-ai-chat.json
 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/spring-ai-chat.json
index 092568f9000..6cb7932498d 100644
--- 
a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/spring-ai-chat.json
+++ 
b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/spring-ai-chat.json
@@ -69,7 +69,7 @@
     "chatOperation": { "index": 3, "kind": "parameter", "displayName": "Chat 
Operation", "group": "producer", "label": "", "required": true, "type": "enum", 
"javaType": "org.apache.camel.component.springai.chat.SpringAiChatOperations", 
"enum": [ "CHAT_SINGLE_MESSAGE", "CHAT_SINGLE_MESSAGE_WITH_PROMPT", 
"CHAT_MULTIPLE_MESSAGES" ], "deprecated": false, "deprecationNote": "", 
"autowired": false, "secret": false, "defaultValue": "CHAT_SINGLE_MESSAGE", 
"configurationClass": "org.apache.camel. [...]
     "systemMessage": { "index": 4, "kind": "parameter", "displayName": "System 
Message", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.springai.chat.SpringAiChatConfiguration", 
"configurationField": "configuration", "description": "Default system message 
to set context for the conversation. Can be overridden by the CamelSprin [...]
     "tags": { "index": 5, "kind": "parameter", "displayName": "Tags", "group": 
"producer", "label": "", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": 
"org.apache.camel.component.springai.chat.SpringAiChatConfiguration", 
"configurationField": "configuration", "description": "Tags for discovering and 
calling Camel route tools" },
-    "toolNames": { "index": 6, "kind": "parameter", "displayName": "Tool 
Names", "group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.springai.chat.SpringAiChatConfiguration", 
"configurationField": "configuration", "description": "Comma-separated tool 
names for selecting tools by name via Spring AI's ToolCallbackResolver. This 
enabl [...]
+    "toolNames": { "index": 6, "kind": "parameter", "displayName": "Tool 
Names", "group": "producer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.springai.chat.SpringAiChatConfiguration", 
"configurationField": "configuration", "description": "Comma-separated tool 
names for selecting tools by name. Names are resolved against a 
ToolCallbackResolv [...]
     "userMessage": { "index": 7, "kind": "parameter", "displayName": "User 
Message", "group": "producer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.springai.chat.SpringAiChatConfiguration", 
"configurationField": "configuration", "description": "Default user message 
text for multimodal requests. Can be combined with media data in the message b 
[...]
     "lazyStartProducer": { "index": 8, "kind": "parameter", "displayName": 
"Lazy Start Producer", "group": "producer (advanced)", "label": 
"producer,advanced", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether the producer should be started 
lazy (on the first message). By starting lazy you can use this to allow 
CamelContext and routes to startup in situations where a produc [...]
     "advisors": { "index": 9, "kind": "parameter", "displayName": "Advisors", 
"group": "advanced", "label": "advanced", "required": false, "type": "array", 
"javaType": 
"java.util.List<org.springframework.ai.chat.client.advisor.api.Advisor>", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "configurationClass": 
"org.apache.camel.component.springai.chat.SpringAiChatConfiguration", 
"configurationField": "configuration", "description": "List of custom advisor 
[...]
diff --git a/components-starter/camel-mcp-server-starter/pom.xml 
b/components-starter/camel-mcp-server-starter/pom.xml
index 93922ae05f4..527872d230b 100644
--- a/components-starter/camel-mcp-server-starter/pom.xml
+++ b/components-starter/camel-mcp-server-starter/pom.xml
@@ -28,11 +28,6 @@
   <packaging>jar</packaging>
   <name>Camel SB Starters :: MCP Server</name>
   <description>Spring Boot Starter to expose ai-tool routes as MCP tools 
through the Spring AI MCP server</description>
-  <properties>
-    <!-- the Spring AI MCP server support requires Spring AI 2.x (Spring Boot 
4.1 baseline);
-             it pins the same MCP Java SDK version (2.0.0) that Apache Camel 
manages -->
-    <spring-ai-mcp-version>2.0.0</spring-ai-mcp-version>
-  </properties>
   <dependencies>
     <dependency>
       <groupId>org.springframework.boot</groupId>
@@ -46,10 +41,12 @@
       <artifactId>camel-mcp-server-api</artifactId>
       <version>${camel-version}</version>
     </dependency>
+    <!-- the MCP serving engine; spring-ai-version comes from the Camel parent 
and is on the 2.x line,
+             which is the one that supports the Spring Boot 4.1 baseline -->
     <dependency>
       <groupId>org.springframework.ai</groupId>
       <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
-      <version>${spring-ai-mcp-version}</version>
+      <version>${spring-ai-version}</version>
     </dependency>
     <!-- test dependencies -->
     <dependency>
diff --git a/components-starter/camel-spring-ai-chat-starter/pom.xml 
b/components-starter/camel-spring-ai-chat-starter/pom.xml
index 5c8766e7117..8de51904d92 100644
--- a/components-starter/camel-spring-ai-chat-starter/pom.xml
+++ b/components-starter/camel-spring-ai-chat-starter/pom.xml
@@ -37,6 +37,14 @@
       <groupId>org.apache.camel</groupId>
       <artifactId>camel-spring-ai-chat</artifactId>
       <version>${camel-version}</version>
+      <!--START OF GENERATED CODE-->
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+      </exclusions>
+      <!--END OF GENERATED CODE-->
     </dependency>
     <dependency>
       <groupId>org.springframework.ai</groupId>
diff --git a/components-starter/camel-spring-ai-embeddings-starter/pom.xml 
b/components-starter/camel-spring-ai-embeddings-starter/pom.xml
index c265e7ffb23..d2a188d3609 100644
--- a/components-starter/camel-spring-ai-embeddings-starter/pom.xml
+++ b/components-starter/camel-spring-ai-embeddings-starter/pom.xml
@@ -37,6 +37,14 @@
       <groupId>org.apache.camel</groupId>
       <artifactId>camel-spring-ai-embeddings</artifactId>
       <version>${camel-version}</version>
+      <!--START OF GENERATED CODE-->
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+      </exclusions>
+      <!--END OF GENERATED CODE-->
     </dependency>
     <!--START OF GENERATED CODE-->
     <dependency>
diff --git a/components-starter/camel-spring-ai-image-starter/pom.xml 
b/components-starter/camel-spring-ai-image-starter/pom.xml
index c476477aa4c..0b0c37cfad9 100644
--- a/components-starter/camel-spring-ai-image-starter/pom.xml
+++ b/components-starter/camel-spring-ai-image-starter/pom.xml
@@ -37,6 +37,14 @@
       <groupId>org.apache.camel</groupId>
       <artifactId>camel-spring-ai-image</artifactId>
       <version>${camel-version}</version>
+      <!--START OF GENERATED CODE-->
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+      </exclusions>
+      <!--END OF GENERATED CODE-->
     </dependency>
     <!--START OF GENERATED CODE-->
     <dependency>
diff --git a/components-starter/camel-spring-ai-vector-store-starter/pom.xml 
b/components-starter/camel-spring-ai-vector-store-starter/pom.xml
index 31e5ecac579..806cc221034 100644
--- a/components-starter/camel-spring-ai-vector-store-starter/pom.xml
+++ b/components-starter/camel-spring-ai-vector-store-starter/pom.xml
@@ -37,6 +37,14 @@
       <groupId>org.apache.camel</groupId>
       <artifactId>camel-spring-ai-vector-store</artifactId>
       <version>${camel-version}</version>
+      <!--START OF GENERATED CODE-->
+      <exclusions>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+      </exclusions>
+      <!--END OF GENERATED CODE-->
     </dependency>
     <!--START OF GENERATED CODE-->
     <dependency>

Reply via email to