Closed aka-peter closed 6 hours ago
I think the problem is with some of the shaded bits in org.apache.kafka:kafka-clients
.
ProtoUtils
in io.grpc:grpc-protobuf
has the following signature:
public static <T extends Message> Marshaller<T> marshaller(final T defaultInstance)
And it's invoked from shaded OpenTelemetry TraceServiceGrpc
like this:
ProtoUtils.marshaller(ExportTraceServiceRequest.getDefaultInstance())
Shaded OpenTelemetry ExportTraceServiceRequest
is an implementation of org.apache.kafka.shaded.com.google.protobuf.Message
not com.google.protobuf.Message
expected by ProtoUtils
. Hence the native compiler complains that it cannot find the associated method.
I am confused how this error does not happen when using quarkus-kafka-clent
& quarkus-grpc
together. It is still probably broken even if the native app compiles.
Turns out this is due to the build time code in camel-quarkus-grpc
that scans for instances of BindableService
& the various flavours of gRPC stub class.
It discovers the shaded OpenTelemetry gRPC services from kafka-clients
, thinking they can be used for camel-grpc
route endpoints.
I'll try to adjust things to exclude unwanted services.
Bug description
Native build fails when creating an app that has the camel-quarkus-grpc and camel-quarkus-kafka extensions. Also camel-quarkus-grpc and quarkus-kafka-client fails in the same way.