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

lhotari pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new a982d7b2efb [improve][misc] Upgrade to Netty 4.1.111.Final and switch 
to use grpc-netty-shaded (#22892)
a982d7b2efb is described below

commit a982d7b2efb3aad456c9c0ec921c8f7bbcb48ab3
Author: Lari Hotari <lhot...@users.noreply.github.com>
AuthorDate: Thu Jun 13 01:24:04 2024 +0300

    [improve][misc] Upgrade to Netty 4.1.111.Final and switch to use 
grpc-netty-shaded (#22892)
    
    (cherry picked from commit 75d7e557d84bf2cca2ec791dfe8479b8a6df7875)
---
 buildtools/pom.xml                                 |   2 +-
 distribution/server/pom.xml                        |  13 ++
 distribution/server/src/assemble/LICENSE.bin.txt   |  50 +++---
 distribution/shell/src/assemble/LICENSE.bin.txt    |  40 ++---
 jetcd-core-shaded/pom.xml                          | 187 +++++++++++++++++++++
 pom.xml                                            |  60 ++++++-
 pulsar-broker/pom.xml                              |  12 ++
 pulsar-functions/instance/pom.xml                  |   9 +-
 pulsar-metadata/pom.xml                            |  11 +-
 .../pulsar/metadata/impl/EtcdMetadataStore.java    |   6 +-
 pulsar-sql/presto-distribution/LICENSE             |  53 +++---
 .../presto-distribution/src/assembly/assembly.xml  |   3 +
 .../presto-pulsar-plugin/src/assembly/assembly.xml |   3 +
 src/check-binary-license.sh                        |   2 +-
 14 files changed, 360 insertions(+), 91 deletions(-)

diff --git a/buildtools/pom.xml b/buildtools/pom.xml
index 3cec25625cf..e872e861cbf 100644
--- a/buildtools/pom.xml
+++ b/buildtools/pom.xml
@@ -47,7 +47,7 @@
     <license-maven-plugin.version>4.1</license-maven-plugin.version>
     <puppycrawl.checkstyle.version>10.14.2</puppycrawl.checkstyle.version>
     <maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version>
-    <netty.version>4.1.108.Final</netty.version>
+    <netty.version>4.1.111.Final</netty.version>
     <guice.version>4.2.3</guice.version>
     <guava.version>32.1.1-jre</guava.version>
     <ant.version>1.10.12</ant.version>
diff --git a/distribution/server/pom.xml b/distribution/server/pom.xml
index 27f95e0b46b..136eda902a2 100644
--- a/distribution/server/pom.xml
+++ b/distribution/server/pom.xml
@@ -40,6 +40,19 @@
       <version>${project.version}</version>
     </dependency>
 
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>pulsar-metadata</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>jetcd-core-shaded</artifactId>
+      <version>${project.version}</version>
+      <classifier>shaded</classifier>
+    </dependency>
+
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>pulsar-proxy</artifactId>
diff --git a/distribution/server/src/assemble/LICENSE.bin.txt 
b/distribution/server/src/assemble/LICENSE.bin.txt
index 6de77c7beab..9d6975e4a43 100644
--- a/distribution/server/src/assemble/LICENSE.bin.txt
+++ b/distribution/server/src/assemble/LICENSE.bin.txt
@@ -289,27 +289,27 @@ The Apache Software License, Version 2.0
     - org.apache.commons-commons-lang3-3.11.jar
     - org.apache.commons-commons-text-1.10.0.jar
  * Netty
-    - io.netty-netty-buffer-4.1.108.Final.jar
-    - io.netty-netty-codec-4.1.108.Final.jar
-    - io.netty-netty-codec-dns-4.1.108.Final.jar
-    - io.netty-netty-codec-http-4.1.108.Final.jar
-    - io.netty-netty-codec-http2-4.1.108.Final.jar
-    - io.netty-netty-codec-socks-4.1.108.Final.jar
-    - io.netty-netty-codec-haproxy-4.1.108.Final.jar
-    - io.netty-netty-common-4.1.108.Final.jar
-    - io.netty-netty-handler-4.1.108.Final.jar
-    - io.netty-netty-handler-proxy-4.1.108.Final.jar
-    - io.netty-netty-resolver-4.1.108.Final.jar
-    - io.netty-netty-resolver-dns-4.1.108.Final.jar
-    - io.netty-netty-resolver-dns-classes-macos-4.1.108.Final.jar
-    - io.netty-netty-resolver-dns-native-macos-4.1.108.Final-osx-aarch_64.jar
-    - io.netty-netty-resolver-dns-native-macos-4.1.108.Final-osx-x86_64.jar
-    - io.netty-netty-transport-4.1.108.Final.jar
-    - io.netty-netty-transport-classes-epoll-4.1.108.Final.jar
-    - io.netty-netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar
-    - io.netty-netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar
-    - io.netty-netty-transport-native-unix-common-4.1.108.Final.jar
-    - 
io.netty-netty-transport-native-unix-common-4.1.108.Final-linux-x86_64.jar
+    - io.netty-netty-buffer-4.1.111.Final.jar
+    - io.netty-netty-codec-4.1.111.Final.jar
+    - io.netty-netty-codec-dns-4.1.111.Final.jar
+    - io.netty-netty-codec-http-4.1.111.Final.jar
+    - io.netty-netty-codec-http2-4.1.111.Final.jar
+    - io.netty-netty-codec-socks-4.1.111.Final.jar
+    - io.netty-netty-codec-haproxy-4.1.111.Final.jar
+    - io.netty-netty-common-4.1.111.Final.jar
+    - io.netty-netty-handler-4.1.111.Final.jar
+    - io.netty-netty-handler-proxy-4.1.111.Final.jar
+    - io.netty-netty-resolver-4.1.111.Final.jar
+    - io.netty-netty-resolver-dns-4.1.111.Final.jar
+    - io.netty-netty-resolver-dns-classes-macos-4.1.111.Final.jar
+    - io.netty-netty-resolver-dns-native-macos-4.1.111.Final-osx-aarch_64.jar
+    - io.netty-netty-resolver-dns-native-macos-4.1.111.Final-osx-x86_64.jar
+    - io.netty-netty-transport-4.1.111.Final.jar
+    - io.netty-netty-transport-classes-epoll-4.1.111.Final.jar
+    - io.netty-netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar
+    - io.netty-netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar
+    - io.netty-netty-transport-native-unix-common-4.1.111.Final.jar
+    - 
io.netty-netty-transport-native-unix-common-4.1.111.Final-linux-x86_64.jar
     - io.netty-netty-tcnative-boringssl-static-2.0.65.Final.jar
     - io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar
     - io.netty-netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar
@@ -424,7 +424,6 @@ The Apache Software License, Version 2.0
     - io.grpc-grpc-auth-1.55.3.jar
     - io.grpc-grpc-context-1.55.3.jar
     - io.grpc-grpc-core-1.55.3.jar
-    - io.grpc-grpc-netty-1.55.3.jar
     - io.grpc-grpc-protobuf-1.55.3.jar
     - io.grpc-grpc-protobuf-lite-1.55.3.jar
     - io.grpc-grpc-stub-1.55.3.jar
@@ -483,7 +482,6 @@ The Apache Software License, Version 2.0
     - io.vertx-vertx-core-4.5.8.jar
     - io.vertx-vertx-web-4.5.8.jar
     - io.vertx-vertx-web-common-4.5.8.jar
-    - io.vertx-vertx-grpc-4.5.8.jar
   * Apache ZooKeeper
     - org.apache.zookeeper-zookeeper-3.9.2.jar
     - org.apache.zookeeper-zookeeper-jute-3.9.2.jar
@@ -495,11 +493,7 @@ The Apache Software License, Version 2.0
     - com.google.http-client-google-http-client-1.41.0.jar
     - com.google.auto.value-auto-value-annotations-1.9.jar
     - com.google.re2j-re2j-1.6.jar
-  * Jetcd
-    - io.etcd-jetcd-api-0.7.7.jar
-    - io.etcd-jetcd-common-0.7.7.jar
-    - io.etcd-jetcd-core-0.7.7.jar
-    - io.etcd-jetcd-grpc-0.7.7.jar
+  * Jetcd - shaded
   * IPAddress
     - com.github.seancfoley-ipaddress-5.5.0.jar
   * RxJava
diff --git a/distribution/shell/src/assemble/LICENSE.bin.txt 
b/distribution/shell/src/assemble/LICENSE.bin.txt
index 125d08ca436..dd1ff70cad6 100644
--- a/distribution/shell/src/assemble/LICENSE.bin.txt
+++ b/distribution/shell/src/assemble/LICENSE.bin.txt
@@ -348,23 +348,23 @@ The Apache Software License, Version 2.0
     - commons-text-1.10.0.jar
     - commons-compress-1.26.0.jar
  * Netty
-    - netty-buffer-4.1.108.Final.jar
-    - netty-codec-4.1.108.Final.jar
-    - netty-codec-dns-4.1.108.Final.jar
-    - netty-codec-http-4.1.108.Final.jar
-    - netty-codec-socks-4.1.108.Final.jar
-    - netty-codec-haproxy-4.1.108.Final.jar
-    - netty-common-4.1.108.Final.jar
-    - netty-handler-4.1.108.Final.jar
-    - netty-handler-proxy-4.1.108.Final.jar
-    - netty-resolver-4.1.108.Final.jar
-    - netty-resolver-dns-4.1.108.Final.jar
-    - netty-transport-4.1.108.Final.jar
-    - netty-transport-classes-epoll-4.1.108.Final.jar
-    - netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar
-    - netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar
-    - netty-transport-native-unix-common-4.1.108.Final.jar
-    - netty-transport-native-unix-common-4.1.108.Final-linux-x86_64.jar
+    - netty-buffer-4.1.111.Final.jar
+    - netty-codec-4.1.111.Final.jar
+    - netty-codec-dns-4.1.111.Final.jar
+    - netty-codec-http-4.1.111.Final.jar
+    - netty-codec-socks-4.1.111.Final.jar
+    - netty-codec-haproxy-4.1.111.Final.jar
+    - netty-common-4.1.111.Final.jar
+    - netty-handler-4.1.111.Final.jar
+    - netty-handler-proxy-4.1.111.Final.jar
+    - netty-resolver-4.1.111.Final.jar
+    - netty-resolver-dns-4.1.111.Final.jar
+    - netty-transport-4.1.111.Final.jar
+    - netty-transport-classes-epoll-4.1.111.Final.jar
+    - netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar
+    - netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar
+    - netty-transport-native-unix-common-4.1.111.Final.jar
+    - netty-transport-native-unix-common-4.1.111.Final-linux-x86_64.jar
     - netty-tcnative-boringssl-static-2.0.65.Final.jar
     - netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar
     - netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar
@@ -375,9 +375,9 @@ The Apache Software License, Version 2.0
     - netty-incubator-transport-classes-io_uring-0.0.21.Final.jar
     - netty-incubator-transport-native-io_uring-0.0.21.Final-linux-aarch_64.jar
     - netty-incubator-transport-native-io_uring-0.0.21.Final-linux-x86_64.jar
-    - netty-resolver-dns-classes-macos-4.1.108.Final.jar
-    - netty-resolver-dns-native-macos-4.1.108.Final-osx-aarch_64.jar
-    - netty-resolver-dns-native-macos-4.1.108.Final-osx-x86_64.jar
+    - netty-resolver-dns-classes-macos-4.1.111.Final.jar
+    - netty-resolver-dns-native-macos-4.1.111.Final-osx-aarch_64.jar
+    - netty-resolver-dns-native-macos-4.1.111.Final-osx-x86_64.jar
  * Prometheus client
     - simpleclient-0.16.0.jar
     - simpleclient_log4j2-0.16.0.jar
diff --git a/jetcd-core-shaded/pom.xml b/jetcd-core-shaded/pom.xml
new file mode 100644
index 00000000000..18dabf28b87
--- /dev/null
+++ b/jetcd-core-shaded/pom.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<project
+        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";
+        xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.pulsar</groupId>
+    <artifactId>pulsar</artifactId>
+    <version>3.0.6-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>jetcd-core-shaded</artifactId>
+  <name>Apache Pulsar :: jetcd-core shaded</name>
+
+  <dependencies>
+    <dependency>
+      <groupId>io.etcd</groupId>
+      <artifactId>jetcd-core</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>io.grpc</groupId>
+          <artifactId>grpc-netty</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>io.netty</groupId>
+          <artifactId>*</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-netty-shaded</artifactId>
+    </dependency>
+    <!-- add transient dependencies for jetcd libraries, this is necessary for 
IntelliJ support -->
+    <dependency>
+      <groupId>dev.failsafe</groupId>
+      <artifactId>failsafe</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-protobuf</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-stub</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-grpclb</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-util</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <createDependencyReducedPom>true</createDependencyReducedPom>
+              
<promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+              <minimizeJar>false</minimizeJar>
+              <artifactSet>
+                <includes>
+                  <include>io.etcd:*</include>
+                  <include>io.vertx:*</include>
+                </includes>
+              </artifactSet>
+              <relocations>
+                <!-- relocate vertx packages since they will be transformed to 
use grpc-netty-shaded packages -->
+                <relocation>
+                  <pattern>io.vertx</pattern>
+                  
<shadedPattern>org.apache.pulsar.jetcd.shaded.io.vertx</shadedPattern>
+                </relocation>
+                <!-- relocate to use grpc-netty-shaded packages -->
+                <relocation>
+                  <pattern>io.grpc.netty</pattern>
+                  
<shadedPattern>io.grpc.netty.shaded.io.grpc.netty</shadedPattern>
+                </relocation>
+                <!-- relocate to use grpc-netty-shaded packages -->
+                <relocation>
+                  <pattern>io.netty</pattern>
+                  <shadedPattern>io.grpc.netty.shaded.io.netty</shadedPattern>
+                </relocation>
+              </relocations>
+              <filters>
+                <filter>
+                  <artifact>*:*</artifact>
+                  <excludes>
+                    <exclude>META-INF/*.SF</exclude>
+                    <exclude>META-INF/*.DSA</exclude>
+                    <exclude>META-INF/*.RSA</exclude>
+                    
<exclude>META-INF/maven/${project.groupId}/${project.artifactId}/pom.xml</exclude>
+                  </excludes>
+                </filter>
+              </filters>
+              <transformers>
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.PluginXmlResourceTransformer"/>
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+                  
<resource>META-INF/maven/${project.groupId}/${project.artifactId}/pom.xml</resource>
+                  <file>${project.basedir}/dependency-reduced-pom.xml</file>
+                </transformer>
+              </transformers>
+              <!-- required for IntelliJ support -->
+              <shadedArtifactAttached>true</shadedArtifactAttached>
+              <shadedClassifierName>shaded</shadedClassifierName>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <!-- required for IntelliJ support, for some reason 
shadedArtifactAttached isn't sufficient alone -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>attach-shaded-jar</id>
+            <phase>package</phase>
+            <goals>
+              <goal>attach-artifact</goal>
+            </goals>
+            <configuration>
+              <artifacts>
+                <artifact>
+                  
<file>${project.build.directory}/${project.artifactId}-${project.version}-shaded.jar</file>
+                  <type>jar</type>
+                  <classifier>shaded</classifier>
+                </artifact>
+              </artifacts>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <!-- required for running tests in subproject -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <version>${maven-antrun-plugin.version}</version>
+        <executions>
+          <execution>
+            <id>unpack-shaded-jar</id>
+            <phase>package</phase>
+            <goals>
+              <goal>run</goal>
+            </goals>
+            <configuration>
+              <target>
+                <unzip 
src="${project.build.directory}/${project.artifactId}-${project.version}-shaded.jar"
+                       dest="${project.build.outputDirectory}"
+                       overwrite="true" />
+              </target>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/pom.xml b/pom.xml
index 9ac151670f3..01c63b2f97f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -143,7 +143,7 @@ flexible messaging model and an intuitive client 
API.</description>
     <snappy.version>1.1.10.5</snappy.version> <!-- ZooKeeper server -->
     <dropwizardmetrics.version>4.1.12.1</dropwizardmetrics.version> <!-- 
ZooKeeper server -->
     <curator.version>5.1.0</curator.version>
-    <netty.version>4.1.108.Final</netty.version>
+    <netty.version>4.1.111.Final</netty.version>
     <netty-iouring.version>0.0.21.Final</netty-iouring.version>
     <jetty.version>9.4.54.v20240208</jetty.version>
     <conscrypt.version>2.5.2</conscrypt.version>
@@ -292,6 +292,7 @@ flexible messaging model and an intuitive client 
API.</description>
     <maven-modernizer-plugin.version>2.3.0</maven-modernizer-plugin.version>
     <maven-shade-plugin>3.4.1</maven-shade-plugin>
     <maven-antrun-plugin.version>3.1.0</maven-antrun-plugin.version>
+    
<build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>
     <properties-maven-plugin.version>1.1.0</properties-maven-plugin.version>
     <nifi-nar-maven-plugin.version>1.5.0</nifi-nar-maven-plugin.version>
     <maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version>
@@ -572,6 +573,10 @@ flexible messaging model and an intuitive client 
API.</description>
             <artifactId>jose4j</artifactId>
             <groupId>org.bitbucket.b_c</groupId>
           </exclusion>
+          <exclusion>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty</artifactId>
+          </exclusion>
         </exclusions>
       </dependency>
 
@@ -1039,12 +1044,51 @@ flexible messaging model and an intuitive client 
API.</description>
         <groupId>io.etcd</groupId>
         <artifactId>jetcd-core</artifactId>
         <version>${jetcd.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
-
       <dependency>
         <groupId>io.etcd</groupId>
         <artifactId>jetcd-test</artifactId>
         <version>${jetcd.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>io.etcd</groupId>
+            <artifactId>jetcd-core</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>io.etcd</groupId>
+            <artifactId>jetcd-api</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>io.vertx</groupId>
+            <artifactId>*</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>${project.groupId}</groupId>
+        <artifactId>jetcd-core-shaded</artifactId>
+        <version>${project.version}</version>
+        <classifier>shaded</classifier>
+        <exclusions>
+          <exclusion>
+            <groupId>io.etcd</groupId>
+            <artifactId>*</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>io.vertx</groupId>
+            <artifactId>*</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
 
       <dependency>
@@ -1138,6 +1182,10 @@ flexible messaging model and an intuitive client 
API.</description>
             <groupId>com.squareup.okio</groupId>
             <artifactId>okio</artifactId>
           </exclusion>
+          <exclusion>
+            <groupId>io.grpc</groupId>
+            <artifactId>grpc-netty</artifactId>
+          </exclusion>
         </exclusions>
       </dependency>
 
@@ -2087,6 +2135,11 @@ flexible messaging model and an intuitive client 
API.</description>
           <artifactId>docker-maven-plugin</artifactId>
           <version>${docker-maven.version}</version>
         </plugin>
+        <plugin>
+          <groupId>org.codehaus.mojo</groupId>
+          <artifactId>build-helper-maven-plugin</artifactId>
+          <version>${build-helper-maven-plugin.version}</version>
+        </plugin>
       </plugins>
     </pluginManagement>
     <extensions>
@@ -2329,6 +2382,7 @@ flexible messaging model and an intuitive client 
API.</description>
         <module>pulsar-client-messagecrypto-bc</module>
 
         <module>pulsar-metadata</module>
+        <module>jetcd-core-shaded</module>
         <module>jclouds-shaded</module>
 
         <!-- package management releated modules (begin) -->
@@ -2388,7 +2442,7 @@ flexible messaging model and an intuitive client 
API.</description>
         <!-- all these modules should be put at the end in this exact sequence 
-->
         <module>distribution</module>
         <module>pulsar-metadata</module>
-
+        <module>jetcd-core-shaded</module>
         <!-- package management releated modules (begin) -->
         <module>pulsar-package-management</module>
         <!-- package management releated modules (end) -->
diff --git a/pulsar-broker/pom.xml b/pulsar-broker/pom.xml
index d1173a24ccc..03510c22c38 100644
--- a/pulsar-broker/pom.xml
+++ b/pulsar-broker/pom.xml
@@ -439,6 +439,18 @@
       <version>${project.version}</version>
     </dependency>
 
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>jetcd-core-shaded</artifactId>
+      <version>${project.version}</version>
+      <classifier>shaded</classifier>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-netty-shaded</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>io.etcd</groupId>
       <artifactId>jetcd-test</artifactId>
diff --git a/pulsar-functions/instance/pom.xml 
b/pulsar-functions/instance/pom.xml
index 622a91e34db..b6df4c4962a 100644
--- a/pulsar-functions/instance/pom.xml
+++ b/pulsar-functions/instance/pom.xml
@@ -101,7 +101,7 @@
       <exclusions>
         <exclusion>
           <groupId>io.grpc</groupId>
-          <artifactId>grpc-all</artifactId>
+          <artifactId>*</artifactId>
         </exclusion>
         <exclusion>
           <groupId>com.google.protobuf</groupId>
@@ -110,6 +110,11 @@
       </exclusions>
     </dependency>
 
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-netty-shaded</artifactId>
+    </dependency>
+
     <dependency>
       <groupId>io.grpc</groupId>
       <artifactId>grpc-stub</artifactId>
@@ -215,7 +220,7 @@
           </execution>
         </executions>
       </plugin>
-      
+
       <!-- this task is used for copy all python files together to provide a 
instance directory
            for running python instance -->
       <plugin>
diff --git a/pulsar-metadata/pom.xml b/pulsar-metadata/pom.xml
index dfcf7f222c2..6641931d001 100644
--- a/pulsar-metadata/pom.xml
+++ b/pulsar-metadata/pom.xml
@@ -109,10 +109,15 @@
     </dependency>
 
     <dependency>
-      <groupId>io.etcd</groupId>
-      <artifactId>jetcd-core</artifactId>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>jetcd-core-shaded</artifactId>
+      <version>${project.version}</version>
+      <classifier>shaded</classifier>
+    </dependency>
+    <dependency>
+      <groupId>io.grpc</groupId>
+      <artifactId>grpc-netty-shaded</artifactId>
     </dependency>
-
 
     <dependency>
       <groupId>io.etcd</groupId>
diff --git 
a/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/impl/EtcdMetadataStore.java
 
b/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/impl/EtcdMetadataStore.java
index a7fb7192cb5..27862cd20b5 100644
--- 
a/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/impl/EtcdMetadataStore.java
+++ 
b/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/impl/EtcdMetadataStore.java
@@ -43,10 +43,10 @@ import io.etcd.jetcd.watch.WatchEvent;
 import io.etcd.jetcd.watch.WatchResponse;
 import io.grpc.Status;
 import io.grpc.StatusRuntimeException;
-import io.grpc.netty.GrpcSslContexts;
+import io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts;
+import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext;
+import io.grpc.netty.shaded.io.netty.handler.ssl.SslProvider;
 import io.grpc.stub.StreamObserver;
-import io.netty.handler.ssl.SslContext;
-import io.netty.handler.ssl.SslProvider;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/pulsar-sql/presto-distribution/LICENSE 
b/pulsar-sql/presto-distribution/LICENSE
index 677ea324aaf..09f7c688216 100644
--- a/pulsar-sql/presto-distribution/LICENSE
+++ b/pulsar-sql/presto-distribution/LICENSE
@@ -231,21 +231,21 @@ The Apache Software License, Version 2.0
     - commons-compress-1.26.0.jar
     - commons-lang3-3.11.jar
  * Netty
-    - netty-buffer-4.1.108.Final.jar
-    - netty-codec-4.1.108.Final.jar
-    - netty-codec-dns-4.1.108.Final.jar
-    - netty-codec-http-4.1.108.Final.jar
-    - netty-codec-haproxy-4.1.108.Final.jar
-    - netty-codec-socks-4.1.108.Final.jar
-    - netty-handler-proxy-4.1.108.Final.jar
-    - netty-common-4.1.108.Final.jar
-    - netty-handler-4.1.108.Final.jar
+    - netty-buffer-4.1.111.Final.jar
+    - netty-codec-4.1.111.Final.jar
+    - netty-codec-dns-4.1.111.Final.jar
+    - netty-codec-http-4.1.111.Final.jar
+    - netty-codec-haproxy-4.1.111.Final.jar
+    - netty-codec-socks-4.1.111.Final.jar
+    - netty-handler-proxy-4.1.111.Final.jar
+    - netty-common-4.1.111.Final.jar
+    - netty-handler-4.1.111.Final.jar
     - netty-reactive-streams-2.0.6.jar
-    - netty-resolver-4.1.108.Final.jar
-    - netty-resolver-dns-4.1.108.Final.jar
-    - netty-resolver-dns-classes-macos-4.1.108.Final.jar
-    - netty-resolver-dns-native-macos-4.1.108.Final-osx-aarch_64.jar
-    - netty-resolver-dns-native-macos-4.1.108.Final-osx-x86_64.jar
+    - netty-resolver-4.1.111.Final.jar
+    - netty-resolver-dns-4.1.111.Final.jar
+    - netty-resolver-dns-classes-macos-4.1.111.Final.jar
+    - netty-resolver-dns-native-macos-4.1.111.Final-osx-aarch_64.jar
+    - netty-resolver-dns-native-macos-4.1.111.Final-osx-x86_64.jar
     - netty-tcnative-boringssl-static-2.0.65.Final.jar
     - netty-tcnative-boringssl-static-2.0.65.Final-linux-aarch_64.jar
     - netty-tcnative-boringssl-static-2.0.65.Final-linux-x86_64.jar
@@ -253,13 +253,12 @@ The Apache Software License, Version 2.0
     - netty-tcnative-boringssl-static-2.0.65.Final-osx-x86_64.jar
     - netty-tcnative-boringssl-static-2.0.65.Final-windows-x86_64.jar
     - netty-tcnative-classes-2.0.65.Final.jar
-    - netty-transport-4.1.108.Final.jar
-    - netty-transport-classes-epoll-4.1.108.Final.jar
-    - netty-transport-native-epoll-4.1.108.Final-linux-aarch_64.jar
-    - netty-transport-native-epoll-4.1.108.Final-linux-x86_64.jar
-    - netty-transport-native-unix-common-4.1.108.Final.jar
-    - netty-transport-native-unix-common-4.1.108.Final-linux-x86_64.jar
-    - netty-codec-http2-4.1.108.Final.jar
+    - netty-transport-4.1.111.Final.jar
+    - netty-transport-classes-epoll-4.1.111.Final.jar
+    - netty-transport-native-epoll-4.1.111.Final-linux-aarch_64.jar
+    - netty-transport-native-epoll-4.1.111.Final-linux-x86_64.jar
+    - netty-transport-native-unix-common-4.1.111.Final.jar
+    - netty-transport-native-unix-common-4.1.111.Final-linux-x86_64.jar
     - netty-incubator-transport-classes-io_uring-0.0.21.Final.jar
     - netty-incubator-transport-native-io_uring-0.0.21.Final-linux-x86_64.jar
     - netty-incubator-transport-native-io_uring-0.0.21.Final-linux-aarch_64.jar
@@ -268,19 +267,13 @@ The Apache Software License, Version 2.0
     - grpc-context-1.55.3.jar
     - grpc-core-1.55.3.jar
     - grpc-grpclb-1.55.3.jar
-    - grpc-netty-1.55.3.jar
+    - grpc-netty-shaded-1.55.3.jar
     - grpc-protobuf-1.55.3.jar
     - grpc-protobuf-lite-1.55.3.jar
     - grpc-stub-1.55.3.jar
     - grpc-util-1.60.0.jar
-  * JEtcd
-    - jetcd-api-0.7.7.jar
-    - jetcd-common-0.7.7.jar
-    - jetcd-core-0.7.7.jar
-    - jetcd-grpc-0.7.7.jar
-  * Vertx
-    - vertx-core-4.5.8.jar
-    - vertx-grpc-4.5.8.jar
+  * JEtcd - shaded
+  * Vertx - shaded
  * Joda Time
     - joda-time-2.10.10.jar
     - failsafe-3.3.2.jar
diff --git a/pulsar-sql/presto-distribution/src/assembly/assembly.xml 
b/pulsar-sql/presto-distribution/src/assembly/assembly.xml
index 96c0421c715..64c6778bc43 100644
--- a/pulsar-sql/presto-distribution/src/assembly/assembly.xml
+++ b/pulsar-sql/presto-distribution/src/assembly/assembly.xml
@@ -60,6 +60,9 @@
                 
<exclude>io.airlift:launcher:tar.gz:bin:${airlift.version}</exclude>
                 
<exclude>io.airlift:launcher:tar.gz:properties:${airlift.version}</exclude>
                 <exclude>*:tar.gz</exclude>
+                <!-- prevent adding annotation libraries -->
+                <exclude>org.codehaus.mojo:animal-sniffer-annotations</exclude>
+                <exclude>com.google.android:annotations</exclude>
             </excludes>
         </dependencySet>
         <dependencySet>
diff --git a/pulsar-sql/presto-pulsar-plugin/src/assembly/assembly.xml 
b/pulsar-sql/presto-pulsar-plugin/src/assembly/assembly.xml
index 6650abfda3f..ac17aaed70b 100644
--- a/pulsar-sql/presto-pulsar-plugin/src/assembly/assembly.xml
+++ b/pulsar-sql/presto-pulsar-plugin/src/assembly/assembly.xml
@@ -33,6 +33,9 @@
             <scope>runtime</scope>
             <excludes>
               <exclude>jakarta.ws.rs:jakarta.ws.rs-api</exclude>
+                <!-- prevent adding annotation libraries -->
+                <exclude>org.codehaus.mojo:animal-sniffer-annotations</exclude>
+                <exclude>com.google.android:annotations</exclude>
             </excludes>
         </dependencySet>
     </dependencySets>
diff --git a/src/check-binary-license.sh b/src/check-binary-license.sh
index 3a6d266345f..c9ca41fef35 100755
--- a/src/check-binary-license.sh
+++ b/src/check-binary-license.sh
@@ -96,7 +96,7 @@ done
 
 if [ "$NO_PRESTO" -ne 1 ]; then
   # check pulsar sql jars
-  JARS=$(tar -tf $TARBALL | grep '\.jar' | grep 'trino/' | grep -v 
pulsar-client | grep -v bouncy-castle-bc | grep -v pulsar-metadata | grep -v 
'managed-ledger' | grep -v  'pulsar-client-admin' | grep -v  
'pulsar-client-api' | grep -v 'pulsar-functions-api' | grep -v 
'pulsar-presto-connector-original' | grep -v 'pulsar-presto-distribution' | 
grep -v 'pulsar-common' | grep -v 'pulsar-functions-proto' | grep -v 
'pulsar-functions-utils' | grep -v 'pulsar-io-core' | grep -v 'pulsar-transacti 
[...]
+  JARS=$(tar -tf $TARBALL | grep '\.jar' | grep 'trino/' | grep -v 
pulsar-client | grep -v bouncy-castle-bc | grep -v pulsar-metadata | grep -v 
'managed-ledger' | grep -v  'pulsar-client-admin' | grep -v  
'pulsar-client-api' | grep -v 'pulsar-functions-api' | grep -v 
'pulsar-presto-connector-original' | grep -v 'pulsar-presto-distribution' | 
grep -v 'pulsar-common' | grep -v 'pulsar-functions-proto' | grep -v 
'pulsar-functions-utils' | grep -v 'pulsar-io-core' | grep -v 'pulsar-transacti 
[...]
   if [ -n "$JARS" ]; then
     LICENSEPATH=$(tar -tf $TARBALL  | awk '/^[^\/]*\/trino\/LICENSE/')
     LICENSE=$(tar -O -xf $TARBALL "$LICENSEPATH")

Reply via email to