diff --git a/pulsar-broker-shaded/pom.xml b/pulsar-broker-shaded/pom.xml index 7b3b9669da7bc..1adc84f0f741e 100644 --- a/pulsar-broker-shaded/pom.xml +++ b/pulsar-broker-shaded/pom.xml @@ -345,6 +345,30 @@ + + + exec-maven-plugin + org.codehaus.mojo + + + rename-epoll-library + package + + exec + + + ${project.parent.basedir}/src/rename-netty-native-libs.sh + + ${project.artifactId} + + + + + diff --git a/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml b/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml index 3ba94e9aaf6c2..397ec475a72b9 100644 --- a/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml +++ b/pulsar-client-kafka-compat/pulsar-client-kafka-shaded/pom.xml @@ -223,6 +223,30 @@ + + + exec-maven-plugin + org.codehaus.mojo + + + rename-epoll-library + package + + exec + + + ${project.parent.basedir}/../src/rename-netty-native-libs.sh + + ${project.artifactId} + + + + + diff --git a/pulsar-client-shaded/pom.xml b/pulsar-client-shaded/pom.xml index 8e7eb98ee39ea..180e7f669309c 100644 --- a/pulsar-client-shaded/pom.xml +++ b/pulsar-client-shaded/pom.xml @@ -207,6 +207,31 @@ + + + + exec-maven-plugin + org.codehaus.mojo + + + rename-epoll-library + package + + exec + + + ${project.parent.basedir}/src/rename-netty-native-libs.sh + + ${project.artifactId} + + + + + diff --git a/src/rename-netty-native-libs.sh b/src/rename-netty-native-libs.sh new file mode 100755 index 0000000000000..136f82156f800 --- /dev/null +++ b/src/rename-netty-native-libs.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# +# 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. +# + +set -e + +ARTIFACT_ID=$1 +JAR_PATH="$PWD/target/$ARTIFACT_ID.jar" + +FILE_PREFIX='META-INF/native' + +FILES_TO_RENAME=( + 'libnetty_transport_native_epoll_x86_64.so liborg_apache_pulsar_shade_netty_transport_native_epoll_x86_64.so' + 'libnetty_tcnative_linux_x86_64.so liborg_apache_pulsar_shade_netty_tcnative_linux_x86_64.so' +) + +echo "----- Renaming epoll lib in $JAR_PATH ------" +TMP_DIR=`mktemp -d` +unzip -q $JAR_PATH -d $TMP_DIR + +pushd $TMP_DIR + +for line in "${FILES_TO_RENAME[@]}"; do + read -r -a A <<< "$line" + FROM=${A[0]} + TO=${A[1]} + + if [ -f $FILE_PREFIX/$FROM ]; then + echo "Renaming $FROM -> $TO" + mv $FILE_PREFIX/$FROM $FILE_PREFIX/$TO + fi +done + +# Overwrite the original ZIP archive +zip -q -r $JAR_PATH . +popd + +rm -rf $TMP_DIR