You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2026/04/28 12:49:40 UTC

(camel-quarkus) 01/01: Fix Milvus extension build failure with milvus-sdk-java 2.6.18

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

gnodet pushed a commit to branch fix-milvus-shaded-marshalling
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit ca29b5cb238fefe17d3145e4992c00c8f2901b29
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Tue Apr 28 14:49:24 2026 +0200

    Fix Milvus extension build failure with milvus-sdk-java 2.6.18
    
    milvus-sdk-java 2.6.18 now bundles shaded gRPC/Netty classes under
    io.milvus.shaded.*, including netty marshalling codec classes that
    reference org.jboss.marshalling.ByteInput. The MilvusProcessor was
    attempting to transform all io.milvus.* classes including these shaded
    ones, causing ClassNotFoundException during Quarkus augmentation.
    
    - Exclude io.milvus.shaded.* from bytecode transformation
    - Add remapping rules for the new io/milvus/shaded/ prefix pattern
    
    Co-Authored-By: Claude Opus 4.6 <no...@anthropic.com>
---
 .../quarkus/component/milvus/deployment/MilvusProcessor.java  | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/extensions/milvus/deployment/src/main/java/org/apache/camel/quarkus/component/milvus/deployment/MilvusProcessor.java b/extensions/milvus/deployment/src/main/java/org/apache/camel/quarkus/component/milvus/deployment/MilvusProcessor.java
index 5357ff425f..dce0328658 100644
--- a/extensions/milvus/deployment/src/main/java/org/apache/camel/quarkus/component/milvus/deployment/MilvusProcessor.java
+++ b/extensions/milvus/deployment/src/main/java/org/apache/camel/quarkus/component/milvus/deployment/MilvusProcessor.java
@@ -42,7 +42,7 @@ class MilvusProcessor {
         index.getIndex().getKnownClasses().stream()
                 .filter(ci -> {
                     String name = ci.name().toString();
-                    return name.startsWith("io.milvus");
+                    return name.startsWith("io.milvus") && !name.startsWith("io.milvus.shaded");
                 })
                 .forEach(ci -> {
                     transformers.produce(new BytecodeTransformerBuildItem(
@@ -71,6 +71,15 @@ class MilvusProcessor {
                     if (internalName == null)
                         return null;
 
+                    if (internalName.startsWith("io/milvus/shaded/io/grpc/netty/shaded/io/grpc")) {
+                        return internalName.replace("io/milvus/shaded/io/grpc/netty/shaded/io/grpc", "io/grpc");
+                    }
+                    if (internalName.startsWith("io/milvus/shaded/io/grpc/netty/shaded/io/netty")) {
+                        return internalName.replace("io/milvus/shaded/io/grpc/netty/shaded/io/netty", "io/netty");
+                    }
+                    if (internalName.startsWith("io/milvus/shaded/io/grpc")) {
+                        return internalName.replace("io/milvus/shaded/io/grpc", "io/grpc");
+                    }
                     if (internalName.startsWith("io/grpc/netty/shaded/io/grpc")) {
                         return internalName.replace("io/grpc/netty/shaded/io/grpc", "io/grpc");
                     }