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 8302e9df3d5b024cee75e996c6e81fb225a4b20d
Author: Jiri Ondrusek <[email protected]>
AuthorDate: Tue Jul 21 09:29:47 2026 +0200

    Fixed weaviate test module
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .../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()

Reply via email to