This is an automated email from the ASF dual-hosted git repository.
fmariani 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 948211c029cc Update LangChain4j to 1.7 + Use granite for tests
948211c029cc is described below
commit 948211c029cce877aa757096ae02f49d14a948b9
Author: Croway <[email protected]>
AuthorDate: Tue Oct 14 19:29:58 2025 +0200
Update LangChain4j to 1.7 + Use granite for tests
---
.../langchain4j/chat/OllamaTestSupport.java | 8 ++-
.../tools/LangChain4jToolMultipleCallsTest.java | 8 +--
.../tools/LangChain4jToolMultipleGroupsTest.java | 4 +-
.../tools/LangChain4jToolNoToolsExistTest.java | 4 +-
.../LangChain4jToolNoToolsToBeCalledTest.java | 4 +-
...hain4jToolParameterValueTypeConversionTest.java | 4 +-
.../langchain4j/tools/LangChain4jToolTest.java | 4 +-
.../component/langchain4j/tools/ToolsHelper.java | 4 +-
.../tools/integration/LangChain4jToolIT.java | 2 +-
.../LangChain4jToolMultipleCallsIT.java | 2 +-
.../LangChain4jToolMultipleGroupsIT.java | 2 +-
.../LangChain4jToolMultipleMatchingGroupsIT.java | 2 +-
.../integration/LangChain4jToolNoToolsExistIT.java | 2 +-
.../LangChain4jToolNoToolsToBeCalledIT.java | 2 +-
parent/pom.xml | 2 +-
.../services/OllamaLocalContainerInfraService.java | 2 +-
.../infra/ollama/services/container.properties | 4 +-
.../ollama/services/OllamaServiceFactory.java | 59 ++++++++++++++++++++++
18 files changed, 91 insertions(+), 28 deletions(-)
diff --git
a/components/camel-ai/camel-langchain4j-chat/src/test/java/org/apache/camel/component/langchain4j/chat/OllamaTestSupport.java
b/components/camel-ai/camel-langchain4j-chat/src/test/java/org/apache/camel/component/langchain4j/chat/OllamaTestSupport.java
index e7f4324b0f6f..e09fe2f7fa1b 100644
---
a/components/camel-ai/camel-langchain4j-chat/src/test/java/org/apache/camel/component/langchain4j/chat/OllamaTestSupport.java
+++
b/components/camel-ai/camel-langchain4j-chat/src/test/java/org/apache/camel/component/langchain4j/chat/OllamaTestSupport.java
@@ -30,7 +30,7 @@ public class OllamaTestSupport extends CamelTestSupport {
protected ChatModel chatModel;
@RegisterExtension
- static OllamaService OLLAMA = OllamaServiceFactory.createService();
+ static OllamaService OLLAMA =
OllamaServiceFactory.createSingletonServiceWithConfiguration(() -> getModel());
@Override
protected void setupResources() throws Exception {
@@ -42,9 +42,13 @@ public class OllamaTestSupport extends CamelTestSupport {
protected ChatModel createModel() {
return OllamaChatModel.builder()
.baseUrl(OLLAMA.getEndpoint())
- .modelName(OLLAMA.getModel())
+ .modelName(getModel())
.temperature(0.3)
.timeout(ofSeconds(60))
.build();
}
+
+ static String getModel() {
+ return "granite4:tiny-h";
+ }
}
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolMultipleCallsTest.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolMultipleCallsTest.java
index 495b2499ce27..b052991dee96 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolMultipleCallsTest.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolMultipleCallsTest.java
@@ -29,7 +29,7 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.infra.openai.mock.OpenAIMock;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.assertj.core.api.Assertions;
-import org.junit.jupiter.api.RepeatedTest;
+import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolMultipleCallsTest extends CamelTestSupport {
@@ -82,8 +82,8 @@ public class LangChain4jToolMultipleCallsTest extends
CamelTestSupport {
.process(exchange -> {
String body =
exchange.getIn().getBody(String.class);
intermediateCalled = true;
- if (exchange.getIn().getHeader("longitude",
String.class).contains("-0.13388057363742217") &&
- exchange.getIn().getHeader("latitude",
String.class).contains("51.50758961965397") &&
+ if (exchange.getIn().getHeader("longitude",
String.class).contains("0") &&
+ exchange.getIn().getHeader("latitude",
String.class).contains("51") &&
body.contains("51.50758961965397") &&
body.contains("-0.13388057363742217")) {
intermediateHasValidBody = true;
}
@@ -111,7 +111,7 @@ public class LangChain4jToolMultipleCallsTest extends
CamelTestSupport {
};
}
- @RepeatedTest(10)
+ @Test
public void testSimpleInvocation() {
List<ChatMessage> messages = new ArrayList<>();
messages.add(new SystemMessage(
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolMultipleGroupsTest.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolMultipleGroupsTest.java
index 00f0af81e199..d5e01e5d9a82 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolMultipleGroupsTest.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolMultipleGroupsTest.java
@@ -29,7 +29,7 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.infra.openai.mock.OpenAIMock;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.assertj.core.api.Assertions;
-import org.junit.jupiter.api.RepeatedTest;
+import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolMultipleGroupsTest extends CamelTestSupport {
@@ -98,7 +98,7 @@ public class LangChain4jToolMultipleGroupsTest extends
CamelTestSupport {
};
}
- @RepeatedTest(10)
+ @Test
public void testSimpleInvocation() {
List<ChatMessage> messages = new ArrayList<>();
messages.add(new SystemMessage(
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolNoToolsExistTest.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolNoToolsExistTest.java
index 3b5f7d0dfd6f..9518982b3b4a 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolNoToolsExistTest.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolNoToolsExistTest.java
@@ -29,7 +29,7 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.infra.openai.mock.OpenAIMock;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.assertj.core.api.Assertions;
-import org.junit.jupiter.api.RepeatedTest;
+import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolNoToolsExistTest extends CamelTestSupport {
@@ -90,7 +90,7 @@ public class LangChain4jToolNoToolsExistTest extends
CamelTestSupport {
};
}
- @RepeatedTest(1)
+ @Test
public void testSimpleInvocation() throws InterruptedException {
List<ChatMessage> messages = new ArrayList<>();
messages.add(new SystemMessage(
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolNoToolsToBeCalledTest.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolNoToolsToBeCalledTest.java
index 61858405493c..80dc463a6c00 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolNoToolsToBeCalledTest.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolNoToolsToBeCalledTest.java
@@ -29,7 +29,7 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.infra.openai.mock.OpenAIMock;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.assertj.core.api.Assertions;
-import org.junit.jupiter.api.RepeatedTest;
+import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolNoToolsToBeCalledTest extends CamelTestSupport {
@@ -90,7 +90,7 @@ public class LangChain4jToolNoToolsToBeCalledTest extends
CamelTestSupport {
};
}
- @RepeatedTest(1)
+ @Test
public void testSimpleInvocation() throws InterruptedException {
List<ChatMessage> messages = new ArrayList<>();
messages.add(new SystemMessage(
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolParameterValueTypeConversionTest.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolParameterValueTypeConversionTest.java
index be03fae61f60..9115879d84dc 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolParameterValueTypeConversionTest.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolParameterValueTypeConversionTest.java
@@ -30,7 +30,7 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.infra.openai.mock.OpenAIMock;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.assertj.core.api.Assertions;
-import org.junit.jupiter.api.RepeatedTest;
+import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
class LangChain4jToolParameterValueTypeConversionTest extends CamelTestSupport
{
@@ -82,7 +82,7 @@ class LangChain4jToolParameterValueTypeConversionTest extends
CamelTestSupport {
};
}
- @RepeatedTest(1)
+ @Test
void parameterValueTypeConversion() {
List<ChatMessage> messages = new ArrayList<>();
messages.add(new SystemMessage(
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolTest.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolTest.java
index 82047da2ea60..6894fe5bef2f 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolTest.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/LangChain4jToolTest.java
@@ -30,7 +30,7 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.test.infra.openai.mock.OpenAIMock;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.assertj.core.api.Assertions;
-import org.junit.jupiter.api.RepeatedTest;
+import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolTest extends CamelTestSupport {
@@ -86,7 +86,7 @@ public class LangChain4jToolTest extends CamelTestSupport {
};
}
- @RepeatedTest(1)
+ @Test
public void testSimpleInvocation() {
List<ChatMessage> messages = new ArrayList<>();
messages.add(new SystemMessage(
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/ToolsHelper.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/ToolsHelper.java
index 074dec5b3b90..356c4c43c74c 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/ToolsHelper.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/ToolsHelper.java
@@ -34,7 +34,7 @@ public final class ToolsHelper {
return OpenAiChatModel.builder()
.apiKey(apiKey)
.modelName(modelName)
- .baseUrl(baseUrl)
+ .baseUrl(baseUrl + "/v1")
.temperature(0.0)
.timeout(ofSeconds(60))
.logRequests(true)
@@ -43,6 +43,6 @@ public final class ToolsHelper {
}
public static String modelName() {
- return System.getProperty("langchain4j.tools.model.name",
"llama3.1:latest");
+ return System.getProperty("langchain4j.tools.model.name",
"granite4:tiny-h");
}
}
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolIT.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolIT.java
index 1c3875cb7b1e..45b5c288d7a8 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolIT.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolIT.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolIT extends LangChain4jToolTest {
@RegisterExtension
- static OllamaService OLLAMA =
OllamaServiceFactory.createServiceWithConfiguration(() ->
ToolsHelper.modelName());
+ static OllamaService OLLAMA =
OllamaServiceFactory.createSingletonServiceWithConfiguration(() ->
ToolsHelper.modelName());
@Override
protected void setupResources() throws Exception {
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleCallsIT.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleCallsIT.java
index 0c9532a043c4..98e67b5c31ed 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleCallsIT.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleCallsIT.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolMultipleCallsIT extends
LangChain4jToolMultipleCallsTest {
@RegisterExtension
- static OllamaService OLLAMA =
OllamaServiceFactory.createServiceWithConfiguration(() ->
ToolsHelper.modelName());
+ static OllamaService OLLAMA =
OllamaServiceFactory.createSingletonServiceWithConfiguration(() ->
ToolsHelper.modelName());
@Override
protected void setupResources() throws Exception {
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleGroupsIT.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleGroupsIT.java
index 9759ffacbf9e..c8c4d3158a9b 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleGroupsIT.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleGroupsIT.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolMultipleGroupsIT extends
LangChain4jToolMultipleGroupsTest {
@RegisterExtension
- static OllamaService OLLAMA =
OllamaServiceFactory.createServiceWithConfiguration(() ->
ToolsHelper.modelName());
+ static OllamaService OLLAMA =
OllamaServiceFactory.createSingletonServiceWithConfiguration(() ->
ToolsHelper.modelName());
@Override
protected void setupResources() throws Exception {
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleMatchingGroupsIT.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleMatchingGroupsIT.java
index 339d64492ff8..792fc096e846 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleMatchingGroupsIT.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolMultipleMatchingGroupsIT.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolMultipleMatchingGroupsIT extends
LangChain4jToolMultipleMatchingGroupsTest {
@RegisterExtension
- static OllamaService OLLAMA =
OllamaServiceFactory.createServiceWithConfiguration(() ->
ToolsHelper.modelName());
+ static OllamaService OLLAMA =
OllamaServiceFactory.createSingletonServiceWithConfiguration(() ->
ToolsHelper.modelName());
@Override
protected void setupResources() throws Exception {
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolNoToolsExistIT.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolNoToolsExistIT.java
index 4541fda1e77e..b9273f38073b 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolNoToolsExistIT.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolNoToolsExistIT.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolNoToolsExistIT extends
LangChain4jToolNoToolsExistTest {
@RegisterExtension
- static OllamaService OLLAMA =
OllamaServiceFactory.createServiceWithConfiguration(() ->
ToolsHelper.modelName());
+ static OllamaService OLLAMA =
OllamaServiceFactory.createSingletonServiceWithConfiguration(() ->
ToolsHelper.modelName());
@Override
protected void setupResources() throws Exception {
diff --git
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolNoToolsToBeCalledIT.java
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolNoToolsToBeCalledIT.java
index b0c478ad77e8..591721a93576 100644
---
a/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolNoToolsToBeCalledIT.java
+++
b/components/camel-ai/camel-langchain4j-tools/src/test/java/org/apache/camel/component/langchain4j/tools/integration/LangChain4jToolNoToolsToBeCalledIT.java
@@ -27,7 +27,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
public class LangChain4jToolNoToolsToBeCalledIT extends
LangChain4jToolNoToolsToBeCalledTest {
@RegisterExtension
- static OllamaService OLLAMA =
OllamaServiceFactory.createServiceWithConfiguration(() ->
ToolsHelper.modelName());
+ static OllamaService OLLAMA =
OllamaServiceFactory.createSingletonServiceWithConfiguration(() ->
ToolsHelper.modelName());
@Override
protected void setupResources() throws Exception {
diff --git a/parent/pom.xml b/parent/pom.xml
index c08b5b386dd2..2a0840f79998 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -335,7 +335,7 @@
<keycloak-client-version>26.0.7</keycloak-client-version>
<kubernetes-client-version>7.4.0</kubernetes-client-version>
<kudu-version>1.18.0</kudu-version>
- <langchain4j-version>1.6.0</langchain4j-version>
+ <langchain4j-version>1.7.1</langchain4j-version>
<!-- remove this one when all langchain4j artifacts are made final -->
<langchain4j-beta-version>1.6.0-beta12</langchain4j-beta-version> <!--
dependencies in beta version are still in tech preview mode in the Langchain4j
project -->
<langchain4j-community-version>1.6.0-beta12</langchain4j-community-version>
<!-- version for Langchain4j community dependencies :
https://github.com/langchain4j/langchain4j-community-->
diff --git
a/test-infra/camel-test-infra-ollama/src/main/java/org/apache/camel/test/infra/ollama/services/OllamaLocalContainerInfraService.java
b/test-infra/camel-test-infra-ollama/src/main/java/org/apache/camel/test/infra/ollama/services/OllamaLocalContainerInfraService.java
index 4d2d93cb23c8..2315ba322631 100644
---
a/test-infra/camel-test-infra-ollama/src/main/java/org/apache/camel/test/infra/ollama/services/OllamaLocalContainerInfraService.java
+++
b/test-infra/camel-test-infra-ollama/src/main/java/org/apache/camel/test/infra/ollama/services/OllamaLocalContainerInfraService.java
@@ -89,7 +89,7 @@ public class OllamaLocalContainerInfraService implements
OllamaInfraService, Con
@Override
public void registerProperties() {
- System.setProperty(OllamaProperties.ENDPOINT, container.getEndpoint());
+ System.setProperty(OllamaProperties.ENDPOINT, getEndpoint());
}
@Override
diff --git
a/test-infra/camel-test-infra-ollama/src/main/resources/org/apache/camel/test/infra/ollama/services/container.properties
b/test-infra/camel-test-infra-ollama/src/main/resources/org/apache/camel/test/infra/ollama/services/container.properties
index 0774247a7ade..6d794a33c33c 100644
---
a/test-infra/camel-test-infra-ollama/src/main/resources/org/apache/camel/test/infra/ollama/services/container.properties
+++
b/test-infra/camel-test-infra-ollama/src/main/resources/org/apache/camel/test/infra/ollama/services/container.properties
@@ -14,5 +14,5 @@
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
-ollama.container=mirror.gcr.io/ollama/ollama:0.3.5
-ollama.model=orca-mini
\ No newline at end of file
+ollama.container=mirror.gcr.io/ollama/ollama:0.12.5
+ollama.model=granite4:tiny-h
\ No newline at end of file
diff --git
a/test-infra/camel-test-infra-ollama/src/test/java/org/apache/camel/test/infra/ollama/services/OllamaServiceFactory.java
b/test-infra/camel-test-infra-ollama/src/test/java/org/apache/camel/test/infra/ollama/services/OllamaServiceFactory.java
index 2f87a9c11f45..b13523f74fd1 100644
---
a/test-infra/camel-test-infra-ollama/src/test/java/org/apache/camel/test/infra/ollama/services/OllamaServiceFactory.java
+++
b/test-infra/camel-test-infra-ollama/src/test/java/org/apache/camel/test/infra/ollama/services/OllamaServiceFactory.java
@@ -17,9 +17,37 @@
package org.apache.camel.test.infra.ollama.services;
import org.apache.camel.test.infra.common.services.SimpleTestServiceBuilder;
+import org.apache.camel.test.infra.common.services.SingletonService;
+import org.junit.jupiter.api.extension.ExtensionContext;
public final class OllamaServiceFactory {
+ static class SingletonOllamaService extends
SingletonService<OllamaService> implements OllamaService {
+ public SingletonOllamaService(OllamaService service, String name) {
+ super(service, name);
+ }
+
+ @Override
+ public String getEndpoint() {
+ return getService().getEndpoint();
+ }
+
+ @Override
+ public String getModel() {
+ return getService().getModel();
+ }
+
+ @Override
+ public final void beforeAll(ExtensionContext extensionContext) {
+ super.beforeAll(extensionContext);
+ }
+
+ @Override
+ public final void afterAll(ExtensionContext extensionContext) {
+ // NO-OP
+ }
+ }
+
private OllamaServiceFactory() {
}
@@ -41,4 +69,35 @@ public final class OllamaServiceFactory {
.addRemoteMapping(() -> new
OllamaRemoteService(serviceConfiguration))
.build();
}
+
+ public static OllamaService createSingletonService() {
+ return SingletonServiceHolder.INSTANCE;
+ }
+
+ public static OllamaService
createSingletonServiceWithConfiguration(OllamaServiceConfiguration
serviceConfiguration) {
+ return
SingletonServiceWithConfigurationHolder.getInstance(serviceConfiguration);
+ }
+
+ private static class SingletonServiceHolder {
+ static final OllamaService INSTANCE;
+ static {
+ SimpleTestServiceBuilder<OllamaService> instance = builder();
+
+ instance.addLocalMapping(() -> new SingletonOllamaService(new
OllamaLocalContainerService(), "ollama"))
+ .addRemoteMapping(OllamaRemoteService::new);
+
+ INSTANCE = instance.build();
+ }
+ }
+
+ private static class SingletonServiceWithConfigurationHolder {
+ private static volatile OllamaService INSTANCE;
+
+ static synchronized OllamaService
getInstance(OllamaServiceConfiguration serviceConfiguration) {
+ if (INSTANCE == null) {
+ INSTANCE = new SingletonOllamaService(new
OllamaLocalContainerService(serviceConfiguration), "ollama");
+ }
+ return INSTANCE;
+ }
+ }
}