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

amaechler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new a38a81f1ce3 test: remove `protobuf-dynamic` dependency (#20495)
a38a81f1ce3 is described below

commit a38a81f1ce309b6bddb0300715b6e63d13772cf6
Author: Andreas Maechler <[email protected]>
AuthorDate: Tue Oct 6 20:02:36 2026 -0600

    test: remove `protobuf-dynamic` dependency (#20495)
    
    * Remove protobuf-dynamic from embedded-tests
    
    Build the Wikipedia protobuf messages in ProtobufEventSerializer and
    ProtobufSchemaRegistryEventSerializer from the wikipedia.desc descriptor
    the decoder side already uses, instead of redefining the schema with
    protobuf-dynamic.
    
    * Remove unused protobuf-dynamic from quidem-ut
---
 embedded-tests/pom.xml                             |  6 ---
 .../embedded/tools/ProtobufEventSerializer.java    | 48 ++++------------------
 .../ProtobufSchemaRegistryEventSerializer.java     | 11 +----
 quidem-ut/pom.xml                                  |  6 ---
 4 files changed, 10 insertions(+), 61 deletions(-)

diff --git a/embedded-tests/pom.xml b/embedded-tests/pom.xml
index d9052fea9c1..41fb83257a4 100644
--- a/embedded-tests/pom.xml
+++ b/embedded-tests/pom.xml
@@ -683,12 +683,6 @@
       <version>${aws.sdk.v2.version}</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>com.github.os72</groupId>
-      <artifactId>protobuf-dynamic</artifactId>
-      <version>1.0.1</version>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>io.confluent</groupId>
       <artifactId>kafka-protobuf-provider</artifactId>
diff --git 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/tools/ProtobufEventSerializer.java
 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/tools/ProtobufEventSerializer.java
index 83ad5c863e8..17b6dc02ec9 100644
--- 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/tools/ProtobufEventSerializer.java
+++ 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/tools/ProtobufEventSerializer.java
@@ -19,12 +19,11 @@
 
 package org.apache.druid.testing.embedded.tools;
 
-import com.github.os72.protobuf.dynamic.DynamicSchema;
-import com.github.os72.protobuf.dynamic.MessageDefinition;
 import com.google.protobuf.Descriptors;
 import com.google.protobuf.DynamicMessage;
+import org.apache.druid.data.input.protobuf.FileBasedProtobufBytesDecoder;
 import org.apache.druid.java.util.common.Pair;
-import org.apache.druid.java.util.common.logger.Logger;
+import org.apache.druid.testing.embedded.indexing.MoreResources;
 
 import java.util.List;
 
@@ -32,48 +31,17 @@ public class ProtobufEventSerializer implements 
EventSerializer
 {
   public static final String TYPE = "protobuf";
 
-  private static final Logger LOGGER = new 
Logger(ProtobufEventSerializer.class);
-
-  public static final DynamicSchema SCHEMA;
-
-  static {
-    DynamicSchema.Builder schemaBuilder = DynamicSchema.newBuilder();
-    MessageDefinition wikiDef = MessageDefinition.newBuilder("Wikipedia")
-        .addField("optional", "string", "timestamp", 1)
-        .addField("optional", "string", "page", 2)
-        .addField("optional", "string", "language", 3)
-        .addField("optional", "string", "user", 4)
-        .addField("optional", "string", "unpatrolled", 5)
-        .addField("optional", "string", "newPage", 6)
-        .addField("optional", "string", "robot", 7)
-        .addField("optional", "string", "anonymous", 8)
-        .addField("optional", "string", "namespace", 9)
-        .addField("optional", "string", "continent", 10)
-        .addField("optional", "string", "country", 11)
-        .addField("optional", "string", "region", 12)
-        .addField("optional", "string", "city", 13)
-        .addField("optional", "int32", "added", 14)
-        .addField("optional", "int32", "deleted", 15)
-        .addField("optional", "int32", "delta", 16)
-        .build();
-    schemaBuilder.addMessageDefinition(wikiDef);
-    DynamicSchema schema = null;
-    try {
-      schema = schemaBuilder.build();
-    }
-    catch (Descriptors.DescriptorValidationException e) {
-      LOGGER.error("Could not init protobuf schema.");
-    }
-    SCHEMA = schema;
-  }
+  public static final Descriptors.Descriptor DESCRIPTOR = new 
FileBasedProtobufBytesDecoder(
+      MoreResources.ProbufData.WIKI_PROTOBUF_BYTES_DECODER_RESOURCE,
+      MoreResources.ProbufData.WIKI_PROTO_MESSAGE_TYPE
+  ).getDescriptor();
 
   @Override
   public byte[] serialize(List<Pair<String, Object>> event)
   {
-    DynamicMessage.Builder builder = SCHEMA.newMessageBuilder("Wikipedia");
-    Descriptors.Descriptor msgDesc = builder.getDescriptorForType();
+    final DynamicMessage.Builder builder = 
DynamicMessage.newBuilder(DESCRIPTOR);
     for (Pair<String, Object> pair : event) {
-      builder.setField(msgDesc.findFieldByName(pair.lhs), pair.rhs);
+      builder.setField(DESCRIPTOR.findFieldByName(pair.lhs), pair.rhs);
     }
     return builder.build().toByteArray();
   }
diff --git 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/tools/ProtobufSchemaRegistryEventSerializer.java
 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/tools/ProtobufSchemaRegistryEventSerializer.java
index dfe0dad5e5b..6dcce1228f8 100644
--- 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/tools/ProtobufSchemaRegistryEventSerializer.java
+++ 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/tools/ProtobufSchemaRegistryEventSerializer.java
@@ -19,8 +19,6 @@
 
 package org.apache.druid.testing.embedded.tools;
 
-import com.google.protobuf.Descriptors;
-import com.google.protobuf.DynamicMessage;
 import io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient;
 import io.confluent.kafka.schemaregistry.protobuf.ProtobufSchema;
 import org.apache.druid.java.util.common.Pair;
@@ -51,7 +49,7 @@ public class ProtobufSchemaRegistryEventSerializer extends 
ProtobufEventSerializ
     try {
       RetryUtils.retry(
           () -> {
-            schemaId = client.register(topic, new 
ProtobufSchema(ProtobufEventSerializer.SCHEMA.newMessageBuilder("Wikipedia").getDescriptorForType()));
+            schemaId = client.register(topic, new ProtobufSchema(DESCRIPTOR));
             return 0;
           },
           (e) -> true,
@@ -66,12 +64,7 @@ public class ProtobufSchemaRegistryEventSerializer extends 
ProtobufEventSerializ
   @Override
   public byte[] serialize(List<Pair<String, Object>> event)
   {
-    DynamicMessage.Builder builder = SCHEMA.newMessageBuilder("Wikipedia");
-    Descriptors.Descriptor msgDesc = builder.getDescriptorForType();
-    for (Pair<String, Object> pair : event) {
-      builder.setField(msgDesc.findFieldByName(pair.lhs), pair.rhs);
-    }
-    byte[] bytes = builder.build().toByteArray();
+    final byte[] bytes = super.serialize(event);
     ByteBuffer bb = ByteBuffer.allocate(bytes.length + 6).put((byte) 
0).putInt(schemaId).put((byte) 0).put(bytes);
     bb.rewind();
     return bb.array();
diff --git a/quidem-ut/pom.xml b/quidem-ut/pom.xml
index b8bf2c8f4d6..bd384697f09 100644
--- a/quidem-ut/pom.xml
+++ b/quidem-ut/pom.xml
@@ -466,12 +466,6 @@
             <artifactId>calcite-testkit</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>com.github.os72</groupId>
-            <artifactId>protobuf-dynamic</artifactId>
-            <version>1.0.1</version>
-            <scope>compile</scope>
-        </dependency>
         <dependency>
             <groupId>com.github.kgyrtkirk.datasets</groupId>
             <artifactId>kttm-nested</artifactId>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to