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

apupier pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 2bf28b3c23cf camel-langchain4j-agent - Replace deprecated methods
2bf28b3c23cf is described below

commit 2bf28b3c23cffecc1dcdaeadbc13a253588c4c38
Author: AurĂ©lien Pupier <[email protected]>
AuthorDate: Wed Oct 14 13:50:52 2026 +0200

    camel-langchain4j-agent - Replace deprecated methods
    
    camel-langchain4j-agent-api:
    - CompositeToolProvider: replace the deprecated
      ToolProviderResult.tools() and immediateReturnToolNames() (and
      ToolProviderResult.Builder.immediateReturnToolNames(Set)) with
      ToolProviderResult.aiServiceTools() and Builder.addAll(Collection).
      Each AiServiceTool carries its own ReturnBehavior, so the immediate
      return information is preserved when merging providers.
    - CompositeToolProviderTest: use Builder.add(spec, executor,
      ReturnBehavior.IMMEDIATE) instead of 
Builder.immediateReturnToolNames(Set),
      and assert through AiServiceTool (toolSpecification(), returnBehavior())
      instead of the deprecated tools(), toolSpecificationByName() and
      immediateReturnToolNames().
    
    camel-langchain4j-agent:
    - LangChain4jAgentConfiguration: replace deprecated
      @UriParam(secret = true) with security = "secret" on apiKey.
    - LangChain4jAgentMcpToolProviderFilterTest: replace the deprecated
      ToolProviderResult.tools() with aiServiceTools(), and the deprecated
      CamelTestSupport.isUseAdviceWith() override with
      testConfiguration().withUseAdviceWith(true).
    - StubMcpClient: McpClient.subscribeToResource(), unsubscribeFromResource()
      and setRoots() are deprecated but still abstract, so the stub must keep
      implementing them; mark the overrides with 
@SuppressWarnings("deprecation").
    
    Co-authored-by: IBM Bob <[email protected]>
    Signed-off-by: AurĂ©lien Pupier <[email protected]>
---
 .../agent/api/CompositeToolProvider.java           |  3 +-
 .../agent/api/CompositeToolProviderTest.java       | 38 +++++++++++++---------
 .../agent/LangChain4jAgentConfiguration.java       |  2 +-
 .../LangChain4jAgentMcpToolProviderFilterTest.java | 10 +++---
 .../langchain4j/agent/support/StubMcpClient.java   |  3 ++
 5 files changed, 32 insertions(+), 24 deletions(-)

diff --git 
a/components/camel-ai/camel-langchain4j-agent-api/src/main/java/org/apache/camel/component/langchain4j/agent/api/CompositeToolProvider.java
 
b/components/camel-ai/camel-langchain4j-agent-api/src/main/java/org/apache/camel/component/langchain4j/agent/api/CompositeToolProvider.java
index da50c9c4c3a6..4074726ef6b2 100644
--- 
a/components/camel-ai/camel-langchain4j-agent-api/src/main/java/org/apache/camel/component/langchain4j/agent/api/CompositeToolProvider.java
+++ 
b/components/camel-ai/camel-langchain4j-agent-api/src/main/java/org/apache/camel/component/langchain4j/agent/api/CompositeToolProvider.java
@@ -48,8 +48,7 @@ public class CompositeToolProvider implements ToolProvider {
 
         for (ToolProvider provider : providers) {
             ToolProviderResult result = provider.provideTools(request);
-            result.tools().forEach(resultBuilder::add);
-            
resultBuilder.immediateReturnToolNames(result.immediateReturnToolNames());
+            resultBuilder.addAll(result.aiServiceTools());
         }
 
         return resultBuilder.build();
diff --git 
a/components/camel-ai/camel-langchain4j-agent-api/src/test/java/org/apache/camel/component/langchain4j/agent/api/CompositeToolProviderTest.java
 
b/components/camel-ai/camel-langchain4j-agent-api/src/test/java/org/apache/camel/component/langchain4j/agent/api/CompositeToolProviderTest.java
index 907247077c3f..4e5d82a4ddd1 100644
--- 
a/components/camel-ai/camel-langchain4j-agent-api/src/test/java/org/apache/camel/component/langchain4j/agent/api/CompositeToolProviderTest.java
+++ 
b/components/camel-ai/camel-langchain4j-agent-api/src/test/java/org/apache/camel/component/langchain4j/agent/api/CompositeToolProviderTest.java
@@ -18,10 +18,11 @@ package org.apache.camel.component.langchain4j.agent.api;
 
 import java.util.Collections;
 import java.util.List;
-import java.util.Set;
 
+import dev.langchain4j.agent.tool.ReturnBehavior;
 import dev.langchain4j.agent.tool.ToolSpecification;
 import dev.langchain4j.data.message.UserMessage;
+import dev.langchain4j.service.tool.AiServiceTool;
 import dev.langchain4j.service.tool.ToolExecutor;
 import dev.langchain4j.service.tool.ToolProvider;
 import dev.langchain4j.service.tool.ToolProviderRequest;
@@ -50,8 +51,8 @@ public class CompositeToolProviderTest {
         ToolProviderResult result = composite.provideTools(DUMMY_REQUEST);
 
         assertNotNull(result);
-        assertEquals(1, result.tools().size());
-        assertTrue(result.tools().containsKey(spec));
+        assertEquals(1, result.aiServiceTools().size());
+        assertEquals(spec, toolByName(result, "tool1").toolSpecification());
     }
 
     @Test
@@ -71,9 +72,9 @@ public class CompositeToolProviderTest {
         ToolProviderResult result = composite.provideTools(DUMMY_REQUEST);
 
         assertNotNull(result);
-        assertEquals(2, result.tools().size());
-        assertTrue(result.tools().containsKey(spec1));
-        assertTrue(result.tools().containsKey(spec2));
+        assertEquals(2, result.aiServiceTools().size());
+        assertEquals(spec1, toolByName(result, "tool1").toolSpecification());
+        assertEquals(spec2, toolByName(result, "tool2").toolSpecification());
     }
 
     @Test
@@ -82,7 +83,7 @@ public class CompositeToolProviderTest {
         ToolProviderResult result = composite.provideTools(DUMMY_REQUEST);
 
         assertNotNull(result);
-        assertTrue(result.tools().isEmpty());
+        assertTrue(result.aiServiceTools().isEmpty());
     }
 
     @Test
@@ -110,22 +111,20 @@ public class CompositeToolProviderTest {
         ToolSpecification spec2 = 
ToolSpecification.builder().name("tool2").description("Tool 2").build();
 
         ToolProvider provider1 = request -> ToolProviderResult.builder()
-                .add(spec1, NOOP_EXECUTOR)
-                .immediateReturnToolNames(Set.of("tool1"))
+                .add(spec1, NOOP_EXECUTOR, ReturnBehavior.IMMEDIATE)
                 .build();
 
         ToolProvider provider2 = request -> ToolProviderResult.builder()
-                .add(spec2, NOOP_EXECUTOR)
-                .immediateReturnToolNames(Set.of("tool2"))
+                .add(spec2, NOOP_EXECUTOR, ReturnBehavior.IMMEDIATE)
                 .build();
 
         CompositeToolProvider composite = new 
CompositeToolProvider(List.of(provider1, provider2));
         ToolProviderResult result = composite.provideTools(DUMMY_REQUEST);
 
         assertNotNull(result);
-        assertEquals(2, result.tools().size());
-        assertTrue(result.immediateReturnToolNames().contains("tool1"));
-        assertTrue(result.immediateReturnToolNames().contains("tool2"));
+        assertEquals(2, result.aiServiceTools().size());
+        assertEquals(ReturnBehavior.IMMEDIATE, toolByName(result, 
"tool1").returnBehavior());
+        assertEquals(ReturnBehavior.IMMEDIATE, toolByName(result, 
"tool2").returnBehavior());
     }
 
     @Test
@@ -142,7 +141,14 @@ public class CompositeToolProviderTest {
         ToolProviderResult result = composite.provideTools(DUMMY_REQUEST);
 
         assertNotNull(result);
-        assertEquals(1, result.tools().size());
-        assertTrue(result.tools().containsKey(spec1));
+        assertEquals(1, result.aiServiceTools().size());
+        assertEquals(spec1, toolByName(result, "tool1").toolSpecification());
+    }
+
+    private static AiServiceTool toolByName(ToolProviderResult result, String 
name) {
+        return result.aiServiceTools().stream()
+                .filter(t -> name.equals(t.name()))
+                .findFirst()
+                .orElseThrow();
     }
 }
diff --git 
a/components/camel-ai/camel-langchain4j-agent/src/main/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentConfiguration.java
 
b/components/camel-ai/camel-langchain4j-agent/src/main/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentConfiguration.java
index 174afd7ae533..ec195ce7802e 100644
--- 
a/components/camel-ai/camel-langchain4j-agent/src/main/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentConfiguration.java
+++ 
b/components/camel-ai/camel-langchain4j-agent/src/main/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentConfiguration.java
@@ -58,7 +58,7 @@ public class LangChain4jAgentConfiguration implements 
Cloneable {
     private String modelName;
     @UriParam(label = "model")
     private String baseUrl;
-    @UriParam(label = "model,security", secret = true)
+    @UriParam(label = "model,security", security = "secret")
     private String apiKey;
     @UriParam(label = "model")
     private Double temperature;
diff --git 
a/components/camel-ai/camel-langchain4j-agent/src/test/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentMcpToolProviderFilterTest.java
 
b/components/camel-ai/camel-langchain4j-agent/src/test/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentMcpToolProviderFilterTest.java
index 1b029e156dcb..71726e27845b 100644
--- 
a/components/camel-ai/camel-langchain4j-agent/src/test/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentMcpToolProviderFilterTest.java
+++ 
b/components/camel-ai/camel-langchain4j-agent/src/test/java/org/apache/camel/component/langchain4j/agent/LangChain4jAgentMcpToolProviderFilterTest.java
@@ -25,6 +25,7 @@ import dev.langchain4j.agent.tool.ToolSpecification;
 import dev.langchain4j.data.message.UserMessage;
 import dev.langchain4j.mcp.client.McpClient;
 import dev.langchain4j.service.Result;
+import dev.langchain4j.service.tool.AiServiceTool;
 import dev.langchain4j.service.tool.ToolProvider;
 import dev.langchain4j.service.tool.ToolProviderRequest;
 import dev.langchain4j.service.tool.ToolProviderResult;
@@ -67,9 +68,8 @@ class LangChain4jAgentMcpToolProviderFilterTest extends 
CamelTestSupport {
         capturedToolProvider.set(null);
     }
 
-    @Override
-    public boolean isUseAdviceWith() {
-        return true;
+    LangChain4jAgentMcpToolProviderFilterTest() {
+        testConfiguration().withUseAdviceWith(true);
     }
 
     @Override
@@ -169,8 +169,8 @@ class LangChain4jAgentMcpToolProviderFilterTest extends 
CamelTestSupport {
     private static Set<String> toolNames(ToolProvider toolProvider) {
         assertThat(toolProvider).isNotNull();
         ToolProviderResult result = toolProvider.provideTools(TOOL_REQUEST);
-        return result.tools().keySet().stream()
-                .map(ToolSpecification::name)
+        return result.aiServiceTools().stream()
+                .map(AiServiceTool::name)
                 .collect(Collectors.toSet());
     }
 }
diff --git 
a/components/camel-ai/camel-langchain4j-agent/src/test/java/org/apache/camel/component/langchain4j/agent/support/StubMcpClient.java
 
b/components/camel-ai/camel-langchain4j-agent/src/test/java/org/apache/camel/component/langchain4j/agent/support/StubMcpClient.java
index 897a85cb3665..91eafa210724 100644
--- 
a/components/camel-ai/camel-langchain4j-agent/src/test/java/org/apache/camel/component/langchain4j/agent/support/StubMcpClient.java
+++ 
b/components/camel-ai/camel-langchain4j-agent/src/test/java/org/apache/camel/component/langchain4j/agent/support/StubMcpClient.java
@@ -105,11 +105,13 @@ public final class StubMcpClient implements McpClient {
     }
 
     @Override
+    @SuppressWarnings("deprecation")
     public void subscribeToResource(String uri) {
         throw new UnsupportedOperationException("Not needed for filter tests");
     }
 
     @Override
+    @SuppressWarnings("deprecation")
     public void unsubscribeFromResource(String uri) {
         throw new UnsupportedOperationException("Not needed for filter tests");
     }
@@ -130,6 +132,7 @@ public final class StubMcpClient implements McpClient {
     }
 
     @Override
+    @SuppressWarnings("deprecation")
     public void setRoots(List<McpRoot> roots) {
         // no-op
     }

Reply via email to