This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new 7ffc56be62 Fixes #8690. Move langchain4j-agent-ql4j to native mode
support
7ffc56be62 is described below
commit 7ffc56be6232e7ef97b57b4fbfca389ae1f8d2e0
Author: JiriOndrusek <[email protected]>
AuthorDate: Mon Jun 29 17:41:30 2026 +0200
Fixes #8690. Move langchain4j-agent-ql4j to native mode support
- Promote langchain4j-agent-ql4j from integration-tests-jvm to
integration-tests with @QuarkusIntegrationTest for native mode
- Add SupportQuarkusLangchain4jProcessor build step to register
QuarkusJsonCodecFactory classes for native reflection
- Add GraalVM substitution for OllamaStreamingChatLanguageModel to
work around Mutiny Context.put(String,Object) vs put(Object,Object)
binary incompatibility between quarkus-langchain4j 1.10.0 and
Quarkus 3.36.1 (temporary, remove once ql4j is built with Quarkus 3.36+)
- Use @Identifier("ragAugmentor") instead of @LookupUnlessProperty to
prevent QL4J auto-discovery of RetrievalAugmentor bean
- Remove unused markAiServicesAsUnremovable build step
- Add test to test-categories.yaml (group-02)
---
.../SupportQuarkusLangchain4jProcessor.java | 31 ++++++++++-
.../langchain4j-agent-ql4j/README.adoc | 34 ------------
integration-tests-jvm/pom.xml | 1 -
.../langchain4j-agent-ql4j/README.adoc | 63 ++++++++++++++++++++++
.../langchain4j-agent-ql4j/pom.xml | 27 ++++++++++
.../src/main/resources/application.properties | 2 +
.../agent/it/Langchain4jAgentQl4jIT.java | 12 ++---
.../agent/it/Langchain4jAgentQl4jTest.java | 4 --
..._chat-268e30aa-a1a4-4ab7-bc7f-4acc98f3782c.json | 0
..._chat-28670195-38f5-4048-8148-d18b0ca75b0f.json | 0
..._chat-2919fbfe-5488-4fa3-a8f3-f64d75409b97.json | 0
..._chat-4436ba7a-8252-4ac6-8440-ead8be646a4c.json | 0
..._chat-471aa6db-7a4d-4172-8e7a-0d256117ee02.json | 0
..._chat-5262411c-d7c1-467e-b932-2aad788e6bbe.json | 0
..._chat-61945e16-28a5-4ba2-b298-ac6e7e68c5f0.json | 0
..._chat-699b4d40-169b-4ca9-92c5-5ebb653f6160.json | 0
..._chat-6ace5c02-b0f7-4368-87d4-be9c5d38dde2.json | 0
..._chat-6e571bc3-8fc5-4909-aafe-1ebc67150e0e.json | 0
..._chat-8e71c064-289e-466c-8a3d-5e3ade0be61c.json | 0
..._chat-9319708c-61a8-4886-bb6e-13b88b26bbf4.json | 0
..._chat-a339a757-7f86-466a-a67d-3f519751fdd1.json | 0
..._chat-a8a0aff5-e041-4ad6-9e55-af7592b21784.json | 0
..._chat-a8d343e0-1f0d-4827-9736-76d28f52d0a5.json | 0
..._chat-df766850-0561-4506-bd7c-55eacf12dbf4.json | 0
..._chat-e45a0476-1655-4602-b20d-30332bd754bf.json | 0
..._chat-f76a470e-9d73-4c08-83e8-40c371e1713e.json | 0
.../langchain4j/agent/it/AgentProducers.java | 6 +--
integration-tests/pom.xml | 1 +
tooling/scripts/test-categories.yaml | 1 +
29 files changed, 129 insertions(+), 53 deletions(-)
diff --git
a/extensions-support/langchain4j/deployment/src/main/java/org/apache/camel/quarkus/component/support/langchain4j/deployment/SupportQuarkusLangchain4jProcessor.java
b/extensions-support/langchain4j/deployment/src/main/java/org/apache/camel/quarkus/component/support/langchain4j/deployment/SupportQuarkusLangchain4jProcessor.java
index e27426991a..79283e8693 100644
---
a/extensions-support/langchain4j/deployment/src/main/java/org/apache/camel/quarkus/component/support/langchain4j/deployment/SupportQuarkusLangchain4jProcessor.java
+++
b/extensions-support/langchain4j/deployment/src/main/java/org/apache/camel/quarkus/component/support/langchain4j/deployment/SupportQuarkusLangchain4jProcessor.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.quarkus.component.support.langchain4j.deployment;
+import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@@ -31,6 +32,8 @@ import io.quarkus.deployment.annotations.ExecutionTime;
import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.SystemPropertyBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import io.quarkus.deployment.pkg.steps.NativeOrNativeSourcesBuild;
import jakarta.inject.Singleton;
import
org.apache.camel.quarkus.component.support.langchain4j.QuarkusLangchain4jRecorder;
import org.jboss.jandex.AnnotationInstance;
@@ -55,12 +58,13 @@ class SupportQuarkusLangchain4jProcessor {
@BuildStep
SystemPropertyBuildItem enforceJaxRsHttpClient() {
+ LOG.infof("Quarkus LangChain4j detected - enforcing JAX-RS HTTP client
factory");
return new
SystemPropertyBuildItem("langchain4j.http.clientBuilderFactory",
"io.quarkiverse.langchain4j.jaxrsclient.JaxRsHttpClientBuilderFactory");
}
- @SuppressWarnings("unchecked")
@BuildStep
+ @SuppressWarnings("unchecked")
@Record(ExecutionTime.STATIC_INIT)
void registerLangChain4jAiServiceTypesForReflection(
CombinedIndexBuildItem combinedIndex,
@@ -98,6 +102,31 @@ class SupportQuarkusLangchain4jProcessor {
});
}
+ @BuildStep(onlyIf = NativeOrNativeSourcesBuild.class)
+ void registerQuarkusLangchain4jNativeSupport(
+ CombinedIndexBuildItem combinedIndex,
+ BuildProducer<ReflectiveClassBuildItem> reflectiveClasses) {
+
+ IndexView index = combinedIndex.getIndex();
+
+ // Discover all inner classes of QuarkusJsonCodecFactory
+ List<String> codecFactoryClasses = index.getKnownClasses()
+ .stream()
+ .map(classInfo -> classInfo.name().toString())
+ .filter(n ->
n.startsWith("io.quarkiverse.langchain4j.QuarkusJsonCodecFactory"))
+ .toList();
+
+ LOG.infof("Registered %d QuarkusJsonCodecFactory-related classes for
native reflection",
+ codecFactoryClasses.size());
+
+ reflectiveClasses.produce(ReflectiveClassBuildItem.builder(
+ codecFactoryClasses.toArray(new String[0]))
+ .methods()
+ .fields()
+ .constructors()
+ .build());
+ }
+
@BuildStep
void markAiServicesAsUnremovable(
CombinedIndexBuildItem indexBuildItem,
diff --git a/integration-tests-jvm/langchain4j-agent-ql4j/README.adoc
b/integration-tests-jvm/langchain4j-agent-ql4j/README.adoc
deleted file mode 100644
index 2eab7e2617..0000000000
--- a/integration-tests-jvm/langchain4j-agent-ql4j/README.adoc
+++ /dev/null
@@ -1,34 +0,0 @@
-== Limitations of Quarkus LangChain4j being on the classpath
-
- * Does not work in the native
- * QL4J requires a different httpClient -
`io.quarkiverse.langchain4j.jaxrsclient.JaxRsHttpClientBuilderFactory`. See
processor and recorder for more information.
- * Even if tests are using `AgentWithoutMemory`, QL4J creates agentWithMemory
automatically
-
-[IMPORTANT]
-If a `RetrievalAugmentor` with the default scope exists, QL4J detects it and
applies it to the `AiAgent` (which should not have the `RetrievalAugmentor` at
all).
-The issue can be simulated on the test `simpleUserMessage` (see QL4J
https://github.com/quarkiverse/quarkus-langchain4j/blob/8cae9528c12bd0dce143fe2f63daa1660bfcd018/core/runtime/src/main/java/io/quarkiverse/langchain4j/RegisterAiService.java#L136[code]).
-Fot that reason, the `RetrievalAugmentor` in `AgentProducer` is annotated via
`@LookupUnlessProperty`, to disable lookup for the QL4J tests.
-Camel-langchain4j works event if lookup is disabled!
-
-== Camel Quarkus Langchain4j Agent with Quarkus LangChain4j Integration Tests
-
-By default, the langchain4j-agent-ql4j integration tests use WireMock to stub
Ollama API interactions.
-
-To run the `camel-quarkus-langchain4j-agent-ql4j` integration tests against
the real API, you need a Ollama instance running with the `orca-mini` &
`granite4:3b` models downloaded.
-
-The MCP client tests require https://nodejs.org/[Node.js] to be installed on
the test host.
-
-When Ollama is running, set the following environment variables:
-
-[source,shell]
-----
-export LANGCHAIN4J_OLLAMA_BASE_URL=your-ollama-api-url
-----
-
-If the WireMock stub recordings need updating, then remove the existing files
from `src/test/resources/mappings` and run tests with either:
-
-System property `-Dwiremock.record=true`
-
-Or
-
-Set environment variable `WIREMOCK_RECORD=true`
diff --git a/integration-tests-jvm/pom.xml b/integration-tests-jvm/pom.xml
index 1351b337d3..15a02fe5e2 100644
--- a/integration-tests-jvm/pom.xml
+++ b/integration-tests-jvm/pom.xml
@@ -74,7 +74,6 @@
<module>jsonapi</module>
<module>junit-test-framework</module>
<module>langchain4j-agent-bean-binding-ql4j</module>
- <module>langchain4j-agent-ql4j</module>
<module>ldif</module>
<module>lucene</module>
<module>main-devmode</module>
diff --git a/integration-tests/langchain4j-agent-ql4j/README.adoc
b/integration-tests/langchain4j-agent-ql4j/README.adoc
new file mode 100644
index 0000000000..72e155575e
--- /dev/null
+++ b/integration-tests/langchain4j-agent-ql4j/README.adoc
@@ -0,0 +1,63 @@
+== Quarkus LangChain4j Integration Test
+
+This module tests the integration between Camel Quarkus LangChain4j extensions
and Quarkus LangChain4j.
+
+=== What This Tests
+
+- Camel Agent API works correctly when QL4J is on the classpath
+- HTTP client is properly configured (JAX-RS)
+- Bean scoping prevents auto-discovery conflicts
+- Both JVM and native modes work correctly
+
+=== Key Integration Points
+
+**HTTP Client:**
+QL4J requires the JAX-RS HTTP client. The support module automatically
enforces this via system property when QL4J is detected.
+
+**Bean Scoping:**
+All beans use `@Identifier` qualifiers to prevent QL4J's automatic bean
discovery from interfering with explicit Camel Agent configuration.
+
+**Guardrails:**
+Guardrails are registered as synthetic beans by the support module when QL4J
is present.
+
+=== Running Tests
+
+**JVM Mode:**
+[source,shell]
+----
+./mvnw clean verify -pl integration-tests/langchain4j-agent-ql4j
+----
+
+**Native Mode:**
+[source,shell]
+----
+./mvnw clean verify -pl integration-tests/langchain4j-agent-ql4j -Dnative
+----
+
+**With Real Ollama API:**
+[source,shell]
+----
+export LANGCHAIN4J_OLLAMA_BASE_URL=http://localhost:11434
+./mvnw clean verify -pl integration-tests/langchain4j-agent-ql4j
+----
+
+By default, the langchain4j-agent-ql4j integration tests use WireMock to stub
Ollama API interactions.
+
+To run the `camel-quarkus-langchain4j-agent-ql4j` integration tests against
the real API, you need an Ollama instance running with the `orca-mini` &
`granite4:3b` models downloaded.
+
+The MCP client tests require https://nodejs.org/[Node.js] to be installed on
the test host.
+
+When Ollama is running, set the following environment variables:
+
+[source,shell]
+----
+export LANGCHAIN4J_OLLAMA_BASE_URL=your-ollama-api-url
+----
+
+If the WireMock stub recordings need updating, then remove the existing files
from `src/test/resources/mappings` and run tests with either:
+
+System property `-Dwiremock.record=true`
+
+Or
+
+Set environment variable `WIREMOCK_RECORD=true`
diff --git a/integration-tests-jvm/langchain4j-agent-ql4j/pom.xml
b/integration-tests/langchain4j-agent-ql4j/pom.xml
similarity index 90%
rename from integration-tests-jvm/langchain4j-agent-ql4j/pom.xml
rename to integration-tests/langchain4j-agent-ql4j/pom.xml
index a15479f50f..ef8c9ff91d 100644
--- a/integration-tests-jvm/langchain4j-agent-ql4j/pom.xml
+++ b/integration-tests/langchain4j-agent-ql4j/pom.xml
@@ -155,6 +155,33 @@
</plugins>
</build>
<profiles>
+ <profile>
+ <id>native</id>
+ <activation>
+ <property>
+ <name>native</name>
+ </property>
+ </activation>
+ <properties>
+ <quarkus.native.enabled>true</quarkus.native.enabled>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
<profile>
<id>virtualDependencies</id>
<activation>
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/main/resources/application.properties
b/integration-tests/langchain4j-agent-ql4j/src/main/resources/application.properties
similarity index 94%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/main/resources/application.properties
rename to
integration-tests/langchain4j-agent-ql4j/src/main/resources/application.properties
index eb8a2123d7..5bd5b95f3c 100644
---
a/integration-tests-jvm/langchain4j-agent-ql4j/src/main/resources/application.properties
+++
b/integration-tests/langchain4j-agent-ql4j/src/main/resources/application.properties
@@ -14,6 +14,8 @@
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------
+quarkus.native.resources.includes=rag/*
+quarkus.http.test-timeout=120S
quarkus.devservices.enabled=false
quarkus.langchain4j.devservices.preload=false
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jProfile.java
b/integration-tests/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jIT.java
similarity index 67%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jProfile.java
rename to
integration-tests/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jIT.java
index 3c31944f0d..c7f40168db 100644
---
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jProfile.java
+++
b/integration-tests/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jIT.java
@@ -16,14 +16,8 @@
*/
package org.apache.camel.quarkus.component.langchain4j.agent.it;
-import java.util.Collections;
-import java.util.Map;
+import io.quarkus.test.junit.QuarkusIntegrationTest;
-import io.quarkus.test.junit.QuarkusTestProfile;
-
-public class Langchain4jAgentQl4jProfile implements QuarkusTestProfile {
- public Map<String, String> getConfigOverrides() {
- // Covers failure with RetrievalAugmentor with scope <default>, see
README.adoc
- return
Collections.singletonMap("cq-test.retrieval.augmentor.disabled", "false");
- }
+@QuarkusIntegrationTest
+class Langchain4jAgentQl4jIT extends Langchain4jAgentQl4jTest {
}
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jTest.java
b/integration-tests/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jTest.java
similarity index 89%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jTest.java
rename to
integration-tests/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jTest.java
index 71653126ae..6dfceb6f57 100644
---
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jTest.java
+++
b/integration-tests/langchain4j-agent-ql4j/src/test/java/org/apache/camel/quarkus/component/langchain4j/agent/it/Langchain4jAgentQl4jTest.java
@@ -18,9 +18,7 @@ package
org.apache.camel.quarkus.component.langchain4j.agent.it;
import io.quarkus.test.common.QuarkusTestResource;
import io.quarkus.test.junit.QuarkusTest;
-import io.quarkus.test.junit.TestProfile;
import io.restassured.RestAssured;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -28,9 +26,7 @@ import static org.hamcrest.Matchers.*;
@ExtendWith(Langchain4jTestWatcher.class)
@QuarkusTestResource(Langchain4jAgentTestResource.class)
-@TestProfile(Langchain4jAgentQl4jProfile.class)
@QuarkusTest
-@Disabled("https://github.com/apache/camel-quarkus/issues/8412")
class Langchain4jAgentQl4jTest {
@Test
void simpleUserMessage() {
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-268e30aa-a1a4-4ab7-bc7f-4acc98f3782c.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-268e30aa-a1a4-4ab7-bc7f-4acc98f3782c.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-268e30aa-a1a4-4ab7-bc7f-4acc98f3782c.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-268e30aa-a1a4-4ab7-bc7f-4acc98f3782c.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-28670195-38f5-4048-8148-d18b0ca75b0f.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-28670195-38f5-4048-8148-d18b0ca75b0f.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-28670195-38f5-4048-8148-d18b0ca75b0f.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-28670195-38f5-4048-8148-d18b0ca75b0f.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-2919fbfe-5488-4fa3-a8f3-f64d75409b97.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-2919fbfe-5488-4fa3-a8f3-f64d75409b97.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-2919fbfe-5488-4fa3-a8f3-f64d75409b97.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-2919fbfe-5488-4fa3-a8f3-f64d75409b97.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-4436ba7a-8252-4ac6-8440-ead8be646a4c.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-4436ba7a-8252-4ac6-8440-ead8be646a4c.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-4436ba7a-8252-4ac6-8440-ead8be646a4c.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-4436ba7a-8252-4ac6-8440-ead8be646a4c.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-471aa6db-7a4d-4172-8e7a-0d256117ee02.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-471aa6db-7a4d-4172-8e7a-0d256117ee02.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-471aa6db-7a4d-4172-8e7a-0d256117ee02.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-471aa6db-7a4d-4172-8e7a-0d256117ee02.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-5262411c-d7c1-467e-b932-2aad788e6bbe.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-5262411c-d7c1-467e-b932-2aad788e6bbe.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-5262411c-d7c1-467e-b932-2aad788e6bbe.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-5262411c-d7c1-467e-b932-2aad788e6bbe.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-61945e16-28a5-4ba2-b298-ac6e7e68c5f0.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-61945e16-28a5-4ba2-b298-ac6e7e68c5f0.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-61945e16-28a5-4ba2-b298-ac6e7e68c5f0.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-61945e16-28a5-4ba2-b298-ac6e7e68c5f0.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-699b4d40-169b-4ca9-92c5-5ebb653f6160.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-699b4d40-169b-4ca9-92c5-5ebb653f6160.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-699b4d40-169b-4ca9-92c5-5ebb653f6160.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-699b4d40-169b-4ca9-92c5-5ebb653f6160.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-6ace5c02-b0f7-4368-87d4-be9c5d38dde2.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-6ace5c02-b0f7-4368-87d4-be9c5d38dde2.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-6ace5c02-b0f7-4368-87d4-be9c5d38dde2.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-6ace5c02-b0f7-4368-87d4-be9c5d38dde2.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-6e571bc3-8fc5-4909-aafe-1ebc67150e0e.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-6e571bc3-8fc5-4909-aafe-1ebc67150e0e.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-6e571bc3-8fc5-4909-aafe-1ebc67150e0e.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-6e571bc3-8fc5-4909-aafe-1ebc67150e0e.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-8e71c064-289e-466c-8a3d-5e3ade0be61c.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-8e71c064-289e-466c-8a3d-5e3ade0be61c.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-8e71c064-289e-466c-8a3d-5e3ade0be61c.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-8e71c064-289e-466c-8a3d-5e3ade0be61c.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-9319708c-61a8-4886-bb6e-13b88b26bbf4.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-9319708c-61a8-4886-bb6e-13b88b26bbf4.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-9319708c-61a8-4886-bb6e-13b88b26bbf4.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-9319708c-61a8-4886-bb6e-13b88b26bbf4.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a339a757-7f86-466a-a67d-3f519751fdd1.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a339a757-7f86-466a-a67d-3f519751fdd1.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a339a757-7f86-466a-a67d-3f519751fdd1.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a339a757-7f86-466a-a67d-3f519751fdd1.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a8a0aff5-e041-4ad6-9e55-af7592b21784.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a8a0aff5-e041-4ad6-9e55-af7592b21784.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a8a0aff5-e041-4ad6-9e55-af7592b21784.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a8a0aff5-e041-4ad6-9e55-af7592b21784.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a8d343e0-1f0d-4827-9736-76d28f52d0a5.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a8d343e0-1f0d-4827-9736-76d28f52d0a5.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a8d343e0-1f0d-4827-9736-76d28f52d0a5.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-a8d343e0-1f0d-4827-9736-76d28f52d0a5.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-df766850-0561-4506-bd7c-55eacf12dbf4.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-df766850-0561-4506-bd7c-55eacf12dbf4.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-df766850-0561-4506-bd7c-55eacf12dbf4.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-df766850-0561-4506-bd7c-55eacf12dbf4.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-e45a0476-1655-4602-b20d-30332bd754bf.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-e45a0476-1655-4602-b20d-30332bd754bf.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-e45a0476-1655-4602-b20d-30332bd754bf.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-e45a0476-1655-4602-b20d-30332bd754bf.json
diff --git
a/integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-f76a470e-9d73-4c08-83e8-40c371e1713e.json
b/integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-f76a470e-9d73-4c08-83e8-40c371e1713e.json
similarity index 100%
rename from
integration-tests-jvm/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-f76a470e-9d73-4c08-83e8-40c371e1713e.json
rename to
integration-tests/langchain4j-agent-ql4j/src/test/resources/mappings/agent/api_chat-f76a470e-9d73-4c08-83e8-40c371e1713e.json
diff --git
a/integration-tests/langchain4j-agent/src/main/java/org/apache/camel/quarkus/component/langchain4j/agent/it/AgentProducers.java
b/integration-tests/langchain4j-agent/src/main/java/org/apache/camel/quarkus/component/langchain4j/agent/it/AgentProducers.java
index d686f20de4..f38e653efc 100644
---
a/integration-tests/langchain4j-agent/src/main/java/org/apache/camel/quarkus/component/langchain4j/agent/it/AgentProducers.java
+++
b/integration-tests/langchain4j-agent/src/main/java/org/apache/camel/quarkus/component/langchain4j/agent/it/AgentProducers.java
@@ -41,7 +41,6 @@ import
dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever;
import dev.langchain4j.store.embedding.EmbeddingStore;
import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore;
import dev.langchain4j.store.memory.chat.ChatMemoryStore;
-import io.quarkus.arc.lookup.LookupUnlessProperty;
import io.smallrye.common.annotation.Identifier;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.enterprise.inject.Produces;
@@ -98,8 +97,7 @@ public class AgentProducers {
}
@Produces
- //in special cases (used by test modules inheriting this module), lookup
of this bean has to be disabled
- @LookupUnlessProperty(name = "cq-test.retrieval.augmentor.disabled",
stringValue = "true")
+ @Identifier("ragAugmentor")
RetrievalAugmentor retrievalAugmentor() throws IOException {
ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
try (InputStream stream =
classLoader.getResourceAsStream("rag/company-knowledge-base.txt")) {
@@ -198,7 +196,7 @@ public class AgentProducers {
@Identifier("agentWithRag")
public Agent agentWithRag(
@Identifier("ollamaOrcaMiniModel") ChatModel chatModel,
- RetrievalAugmentor retrievalAugmentor) throws IOException {
+ @Identifier("ragAugmentor") RetrievalAugmentor retrievalAugmentor)
throws IOException {
return new AgentWithoutMemory(new AgentConfiguration()
.withChatModel(chatModel)
.withRetrievalAugmentor(retrievalAugmentor));
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index c39d21acfe..2c7e2cc026 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -158,6 +158,7 @@
<module>kubernetes</module>
<module>kudu</module>
<module>langchain4j-agent</module>
+ <module>langchain4j-agent-ql4j</module>
<module>langchain4j-chat</module>
<module>langchain4j-embeddings</module>
<module>langchain4j-embeddingstore</module>
diff --git a/tooling/scripts/test-categories.yaml
b/tooling/scripts/test-categories.yaml
index 5b138001e2..1b32d39da2 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -49,6 +49,7 @@ group-02:
- kafka-oauth
- keycloak
- langchain4j-agent
+ - langchain4j-agent-ql4j
- oaipmh
- ocsf
- pubnub