You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ji...@apache.org on 2026/07/21 07:38:54 UTC
(camel-quarkus) 02/02: Fixed weaviate test module
This is an automated email from the ASF dual-hosted git repository.
JiriOndrusek pushed a commit to branch camel-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit f1c2fe4b54f4696cd69046f15d5d94c4e1c8997e
Author: Jiri Ondrusek <on...@gmail.com>
AuthorDate: Tue Jul 21 09:29:47 2026 +0200
Fixed weaviate test module
Co-Authored-By: Claude Opus 4.6 <no...@anthropic.com>
---
.../component/weaviate/it/WeaviateResource.java | 40 ++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/integration-tests/weaviate/src/main/java/org/apache/camel/quarkus/component/weaviate/it/WeaviateResource.java b/integration-tests/weaviate/src/main/java/org/apache/camel/quarkus/component/weaviate/it/WeaviateResource.java
index 3cdcea69ef..331d1daf75 100644
--- a/integration-tests/weaviate/src/main/java/org/apache/camel/quarkus/component/weaviate/it/WeaviateResource.java
+++ b/integration-tests/weaviate/src/main/java/org/apache/camel/quarkus/component/weaviate/it/WeaviateResource.java
@@ -22,7 +22,10 @@ import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
+import io.weaviate.client6.v1.api.collections.Vectors;
import io.weaviate.client6.v1.api.collections.WeaviateObject;
+import io.weaviate.client6.v1.api.collections.aggregate.AggregateResponse;
+import io.weaviate.client6.v1.api.collections.data.InsertManyResponse;
import io.weaviate.client6.v1.api.collections.query.QueryResponse;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
@@ -33,6 +36,8 @@ import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
+import org.apache.camel.component.weaviate.WeaviateVectorDbAction;
+import org.apache.camel.component.weaviate.WeaviateVectorDbHeaders;
import org.jboss.logging.Logger;
@Path("/weaviate")
@@ -61,8 +66,32 @@ public class WeaviateResource {
headers.remove("body");
if (body instanceof List) {
- body = ((List<?>) body).stream().map(o -> o instanceof Double ? ((Double) o).floatValue() : o)
- .collect(Collectors.toList());
+ String action = String.valueOf(headers.get(WeaviateVectorDbHeaders.ACTION));
+ if (WeaviateVectorDbAction.BATCH_CREATE.name().equals(action)) {
+ body = ((List<Map<String, Object>>) body).stream().map(m -> {
+ Map<String, Object> props = (Map<String, Object>) m.get("properties");
+ List<Number> vector = (List<Number>) m.get("vector");
+ float[] floatVector = new float[vector.size()];
+ for (int i = 0; i < vector.size(); i++) {
+ floatVector[i] = vector.get(i).floatValue();
+ }
+ return new WeaviateObject.Builder<Map<String, Object>>()
+ .properties(props)
+ .vectors(Vectors.of(floatVector))
+ .build();
+ }).collect(Collectors.toList());
+ } else {
+ body = ((List<?>) body).stream().map(o -> o instanceof Double ? ((Double) o).floatValue() : o)
+ .collect(Collectors.toList());
+ }
+ }
+
+ Object queryVector = headers.get(WeaviateVectorDbHeaders.QUERY_VECTOR);
+ if (queryVector instanceof List) {
+ headers.put(WeaviateVectorDbHeaders.QUERY_VECTOR,
+ ((List<?>) queryVector).stream()
+ .map(o -> o instanceof Double ? ((Double) o).floatValue() : o)
+ .collect(Collectors.toList()));
}
Exchange response = context.createFluentProducerTemplate()
@@ -95,6 +124,13 @@ public class WeaviateResource {
WeaviateObject<Map<String, Object>> wo = opt.get();
map.put("result", Map.of(wo.uuid(), wo.properties()));
}
+ } else if (result instanceof InsertManyResponse) {
+ InsertManyResponse imr = (InsertManyResponse) result;
+ map.put("uuids", imr.uuids());
+ map.put("errors", imr.errors());
+ } else if (result instanceof AggregateResponse) {
+ AggregateResponse ar = (AggregateResponse) result;
+ map.put("totalCount", ar.totalCount());
} else if (result instanceof QueryResponse) {
QueryResponse<Map<String, Object>> qr = (QueryResponse<Map<String, Object>>) result;
List<Map<String, Object>> objects = qr.objects().stream()