diff --git a/distribution/server/src/assemble/LICENSE.bin.txt b/distribution/server/src/assemble/LICENSE.bin.txt
index 2123129512efe..aea5cc4dfc4a5 100644
--- a/distribution/server/src/assemble/LICENSE.bin.txt
+++ b/distribution/server/src/assemble/LICENSE.bin.txt
@@ -263,7 +263,7 @@ The Apache Software License, Version 2.0
* Caffeine -- com.github.ben-manes.caffeine-caffeine-2.9.1.jar
* Conscrypt -- org.conscrypt-conscrypt-openjdk-uber-2.5.2.jar
* Fastutil -- it.unimi.dsi-fastutil-8.5.14.jar
- * Proto Google Common Protos -- com.google.api.grpc-proto-google-common-protos-2.17.0.jar
+ * Proto Google Common Protos -- com.google.api.grpc-proto-google-common-protos-2.51.0.jar
* Bitbucket -- org.bitbucket.b_c-jose4j-0.9.4.jar
* Gson
- com.google.code.gson-gson-2.8.9.jar
@@ -282,14 +282,17 @@ The Apache Software License, Version 2.0
- com.yahoo.datasketches-memory-0.8.3.jar
- com.yahoo.datasketches-sketches-core-0.8.3.jar
* Apache Commons
+ - commons-beanutils-commons-beanutils-1.11.0.jar
- commons-cli-commons-cli-1.9.0.jar
- commons-codec-commons-codec-1.18.0.jar
- commons-configuration-commons-configuration-1.10.jar
- commons-io-commons-io-2.19.0.jar
- commons-lang-commons-lang-2.6.jar
- commons-logging-commons-logging-1.1.1.jar
+ - commons-collections-commons-collections-3.2.2.jar
- org.apache.commons-commons-collections4-4.4.jar
- org.apache.commons-commons-compress-1.27.1.jar
+ - org.apache.commons-commons-configuration2-2.12.0.jar
- org.apache.commons-commons-lang3-3.17.0.jar
- org.apache.commons-commons-text-1.13.1.jar
* Netty
@@ -356,34 +359,34 @@ The Apache Software License, Version 2.0
- net.java.dev.jna-jna-jpms-5.12.1.jar
- net.java.dev.jna-jna-platform-jpms-5.12.1.jar
* BookKeeper
- - org.apache.bookkeeper-bookkeeper-common-4.17.1.jar
- - org.apache.bookkeeper-bookkeeper-common-allocator-4.17.1.jar
- - org.apache.bookkeeper-bookkeeper-proto-4.17.1.jar
- - org.apache.bookkeeper-bookkeeper-server-4.17.1.jar
- - org.apache.bookkeeper-bookkeeper-tools-framework-4.17.1.jar
- - org.apache.bookkeeper-circe-checksum-4.17.1.jar
- - org.apache.bookkeeper-cpu-affinity-4.17.1.jar
- - org.apache.bookkeeper-statelib-4.17.1.jar
- - org.apache.bookkeeper-stream-storage-api-4.17.1.jar
- - org.apache.bookkeeper-stream-storage-common-4.17.1.jar
- - org.apache.bookkeeper-stream-storage-java-client-4.17.1.jar
- - org.apache.bookkeeper-stream-storage-java-client-base-4.17.1.jar
- - org.apache.bookkeeper-stream-storage-proto-4.17.1.jar
- - org.apache.bookkeeper-stream-storage-server-4.17.1.jar
- - org.apache.bookkeeper-stream-storage-service-api-4.17.1.jar
- - org.apache.bookkeeper-stream-storage-service-impl-4.17.1.jar
- - org.apache.bookkeeper.http-http-server-4.17.1.jar
- - org.apache.bookkeeper.http-vertx-http-server-4.17.1.jar
- - org.apache.bookkeeper.stats-bookkeeper-stats-api-4.17.1.jar
- - org.apache.bookkeeper.stats-prometheus-metrics-provider-4.17.1.jar
- - org.apache.distributedlog-distributedlog-common-4.17.1.jar
- - org.apache.distributedlog-distributedlog-core-4.17.1-tests.jar
- - org.apache.distributedlog-distributedlog-core-4.17.1.jar
- - org.apache.distributedlog-distributedlog-protocol-4.17.1.jar
- - org.apache.bookkeeper.stats-codahale-metrics-provider-4.17.1.jar
- - org.apache.bookkeeper-bookkeeper-slogger-api-4.17.1.jar
- - org.apache.bookkeeper-bookkeeper-slogger-slf4j-4.17.1.jar
- - org.apache.bookkeeper-native-io-4.17.1.jar
+ - org.apache.bookkeeper-bookkeeper-common-4.17.2.jar
+ - org.apache.bookkeeper-bookkeeper-common-allocator-4.17.2.jar
+ - org.apache.bookkeeper-bookkeeper-proto-4.17.2.jar
+ - org.apache.bookkeeper-bookkeeper-server-4.17.2.jar
+ - org.apache.bookkeeper-bookkeeper-tools-framework-4.17.2.jar
+ - org.apache.bookkeeper-circe-checksum-4.17.2.jar
+ - org.apache.bookkeeper-cpu-affinity-4.17.2.jar
+ - org.apache.bookkeeper-statelib-4.17.2.jar
+ - org.apache.bookkeeper-stream-storage-api-4.17.2.jar
+ - org.apache.bookkeeper-stream-storage-common-4.17.2.jar
+ - org.apache.bookkeeper-stream-storage-java-client-4.17.2.jar
+ - org.apache.bookkeeper-stream-storage-java-client-base-4.17.2.jar
+ - org.apache.bookkeeper-stream-storage-proto-4.17.2.jar
+ - org.apache.bookkeeper-stream-storage-server-4.17.2.jar
+ - org.apache.bookkeeper-stream-storage-service-api-4.17.2.jar
+ - org.apache.bookkeeper-stream-storage-service-impl-4.17.2.jar
+ - org.apache.bookkeeper.http-http-server-4.17.2.jar
+ - org.apache.bookkeeper.http-vertx-http-server-4.17.2.jar
+ - org.apache.bookkeeper.stats-bookkeeper-stats-api-4.17.2.jar
+ - org.apache.bookkeeper.stats-prometheus-metrics-provider-4.17.2.jar
+ - org.apache.distributedlog-distributedlog-common-4.17.2.jar
+ - org.apache.distributedlog-distributedlog-core-4.17.2-tests.jar
+ - org.apache.distributedlog-distributedlog-core-4.17.2.jar
+ - org.apache.distributedlog-distributedlog-protocol-4.17.2.jar
+ - org.apache.bookkeeper.stats-codahale-metrics-provider-4.17.2.jar
+ - org.apache.bookkeeper-bookkeeper-slogger-api-4.17.2.jar
+ - org.apache.bookkeeper-bookkeeper-slogger-slf4j-4.17.2.jar
+ - org.apache.bookkeeper-native-io-4.17.2.jar
* Apache HTTP Client
- org.apache.httpcomponents-httpclient-4.5.13.jar
- org.apache.httpcomponents-httpcore-4.4.15.jar
@@ -430,29 +433,31 @@ The Apache Software License, Version 2.0
- org.jetbrains.kotlin-kotlin-stdlib-jdk8-1.8.20.jar
- org.jetbrains-annotations-13.0.jar
* gRPC
- - io.grpc-grpc-all-1.56.1.jar
- - io.grpc-grpc-auth-1.56.1.jar
- - io.grpc-grpc-context-1.56.1.jar
- - io.grpc-grpc-core-1.56.1.jar
- - io.grpc-grpc-protobuf-1.56.1.jar
- - io.grpc-grpc-protobuf-lite-1.56.1.jar
- - io.grpc-grpc-stub-1.56.1.jar
- - io.grpc-grpc-alts-1.56.1.jar
- - io.grpc-grpc-api-1.56.1.jar
- - io.grpc-grpc-grpclb-1.56.1.jar
- - io.grpc-grpc-netty-shaded-1.56.1.jar
- - io.grpc-grpc-services-1.56.1.jar
- - io.grpc-grpc-xds-1.56.1.jar
- - io.grpc-grpc-rls-1.56.1.jar
- - io.grpc-grpc-servlet-1.56.1.jar
- - io.grpc-grpc-servlet-jakarta-1.56.1.jar
+ - io.grpc-grpc-all-1.72.0.jar
+ - io.grpc-grpc-auth-1.72.0.jar
+ - io.grpc-grpc-context-1.72.0.jar
+ - io.grpc-grpc-core-1.72.0.jar
+ - io.grpc-grpc-protobuf-1.72.0.jar
+ - io.grpc-grpc-protobuf-lite-1.72.0.jar
+ - io.grpc-grpc-stub-1.72.0.jar
+ - io.grpc-grpc-alts-1.72.0.jar
+ - io.grpc-grpc-api-1.72.0.jar
+ - io.grpc-grpc-grpclb-1.72.0.jar
+ - io.grpc-grpc-netty-shaded-1.72.0.jar
+ - io.grpc-grpc-services-1.72.0.jar
+ - io.grpc-grpc-xds-1.72.0.jar
+ - io.grpc-grpc-rls-1.72.0.jar
+ - io.grpc-grpc-servlet-1.72.0.jar
+ - io.grpc-grpc-servlet-jakarta-1.72.0.jar
- io.grpc-grpc-util-1.60.0.jar
+ - io.grpc-grpc-opentelemetry-1.72.0.jar
+ - io.grpc-grpc-gcp-csm-observability-1.72.0.jar
+ - io.grpc-grpc-inprocess-1.72.0.jar
* Perfmark
- io.perfmark-perfmark-api-0.26.0.jar
* OpenCensus
- io.opencensus-opencensus-api-0.28.0.jar
- io.opencensus-opencensus-contrib-http-util-0.28.0.jar
- - io.opencensus-opencensus-proto-0.2.0.jar
* Jodah
- net.jodah-typetools-0.5.0.jar
- dev.failsafe-failsafe-3.3.2.jar
@@ -506,7 +511,7 @@ The Apache Software License, Version 2.0
* Google HTTP Client
- com.google.http-client-google-http-client-gson-1.41.0.jar
- com.google.http-client-google-http-client-1.41.0.jar
- - com.google.auto.value-auto-value-annotations-1.10.1.jar
+ - com.google.auto.value-auto-value-annotations-1.11.0.jar
- com.google.re2j-re2j-1.7.jar
* Jetcd - shaded
* IPAddress
@@ -537,6 +542,8 @@ The Apache Software License, Version 2.0
- io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java17-1.33.6-alpha.jar
- io.opentelemetry.instrumentation-opentelemetry-runtime-telemetry-java8-1.33.6-alpha.jar
- io.opentelemetry.semconv-opentelemetry-semconv-1.29.0-alpha.jar
+ - com.google.cloud.opentelemetry-detector-resources-support-0.33.0.jar
+ - io.opentelemetry.contrib-opentelemetry-gcp-resources-1.43.0-alpha.jar
* Spotify completable-futures
- com.spotify-completable-futures-0.3.6.jar
* JSpecify
@@ -544,8 +551,8 @@ The Apache Software License, Version 2.0
BSD 3-clause "New" or "Revised" License
* Google auth library
- - com.google.auth-google-auth-library-credentials-1.4.0.jar -- ../licenses/LICENSE-google-auth-library.txt
- - com.google.auth-google-auth-library-oauth2-http-1.4.0.jar -- ../licenses/LICENSE-google-auth-library.txt
+ - com.google.auth-google-auth-library-credentials-1.24.1.jar -- ../licenses/LICENSE-google-auth-library.txt
+ - com.google.auth-google-auth-library-oauth2-http-1.24.1.jar -- ../licenses/LICENSE-google-auth-library.txt
* LevelDB -- (included in org.rocksdb.*.jar) -- ../licenses/LICENSE-LevelDB.txt
* JSR305 -- com.google.code.findbugs-jsr305-3.0.2.jar -- ../licenses/LICENSE-JSR305.txt
* JLine -- jline-jline-2.14.6.jar -- ../licenses/LICENSE-JLine.txt
diff --git a/distribution/shell/src/assemble/LICENSE.bin.txt b/distribution/shell/src/assemble/LICENSE.bin.txt
index 6bd5fca8cad18..e3441ccfcfc12 100644
--- a/distribution/shell/src/assemble/LICENSE.bin.txt
+++ b/distribution/shell/src/assemble/LICENSE.bin.txt
@@ -341,13 +341,14 @@ The Apache Software License, Version 2.0
- sketches-core-0.8.3.jar
* Apache Commons
- commons-codec-1.18.0.jar
- - commons-configuration-1.10.jar
- commons-io-2.19.0.jar
- - commons-lang-2.6.jar
- commons-logging-1.2.jar
- commons-lang3-3.17.0.jar
- commons-text-1.13.1.jar
- commons-compress-1.27.1.jar
+ - commons-beanutils-1.11.0.jar
+ - commons-collections-3.2.2.jar
+ - commons-configuration2-2.12.0.jar
* Netty
- netty-buffer-4.1.122.Final.jar
- netty-codec-4.1.122.Final.jar
@@ -395,9 +396,9 @@ The Apache Software License, Version 2.0
- opentelemetry-context-1.45.0.jar
* BookKeeper
- - bookkeeper-common-allocator-4.17.1.jar
- - cpu-affinity-4.17.1.jar
- - circe-checksum-4.17.1.jar
+ - bookkeeper-common-allocator-4.17.2.jar
+ - cpu-affinity-4.17.2.jar
+ - circe-checksum-4.17.2.jar
* AirCompressor
- aircompressor-0.27.jar
* AsyncHttpClient
diff --git a/pom.xml b/pom.xml
index fe0aa9743274d..d96c1948a5c32 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,7 +177,7 @@ flexible messaging model and an intuitive client API.
1.27.1
- 4.17.1
+ 4.17.2
3.9.3
1.9.0
1.13.1
@@ -212,7 +212,7 @@ flexible messaging model and an intuitive client API.
1.17
3.25.5
${protobuf3.version}
- 1.56.1
+ 1.72.0
1.41.0
0.26.0
${grpc.version}
diff --git a/pulsar-broker-common/src/main/java/org/apache/pulsar/bookie/rackawareness/BookieRackAffinityMapping.java b/pulsar-broker-common/src/main/java/org/apache/pulsar/bookie/rackawareness/BookieRackAffinityMapping.java
index 4a5ff746f4039..2df4dc22c144f 100644
--- a/pulsar-broker-common/src/main/java/org/apache/pulsar/bookie/rackawareness/BookieRackAffinityMapping.java
+++ b/pulsar-broker-common/src/main/java/org/apache/pulsar/bookie/rackawareness/BookieRackAffinityMapping.java
@@ -40,7 +40,7 @@
import org.apache.bookkeeper.net.BookieNode;
import org.apache.bookkeeper.net.BookieSocketAddress;
import org.apache.bookkeeper.proto.BookieAddressResolver;
-import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration2.Configuration;
import org.apache.commons.lang3.StringUtils;
import org.apache.pulsar.common.policies.data.BookieInfo;
import org.apache.pulsar.common.policies.data.BookiesRackConfiguration;
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarBrokerStarter.java b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarBrokerStarter.java
index 2d031cc8a74f6..7be3d16d49b80 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarBrokerStarter.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarBrokerStarter.java
@@ -43,7 +43,7 @@
import org.apache.bookkeeper.replication.AutoRecoveryMain;
import org.apache.bookkeeper.server.conf.BookieConfiguration;
import org.apache.bookkeeper.stats.StatsProvider;
-import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.util.datetime.FixedDateFormat;
import org.apache.pulsar.broker.PulsarServerException;
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarClusterMetadataSetup.java b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarClusterMetadataSetup.java
index 96ea8877c5b61..267e4f7eac73b 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/PulsarClusterMetadataSetup.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/PulsarClusterMetadataSetup.java
@@ -29,6 +29,7 @@
import org.apache.bookkeeper.stream.storage.api.cluster.ClusterInitializer;
import org.apache.bookkeeper.stream.storage.impl.cluster.ZkClusterInitializer;
import org.apache.bookkeeper.util.BookKeeperConstants;
+import org.apache.commons.configuration2.convert.DisabledListDelimiterHandler;
import org.apache.pulsar.bookie.rackawareness.BookieRackAffinityMapping;
import org.apache.pulsar.broker.resources.NamespaceResources;
import org.apache.pulsar.broker.resources.PulsarResources;
@@ -304,7 +305,7 @@ private static void initializeCluster(Arguments arguments, int bundleNumberForDe
// Format BookKeeper ledger storage metadata
if (arguments.existingBkMetadataServiceUri == null && arguments.bookieMetadataServiceUri == null) {
ServerConfiguration bkConf = new ServerConfiguration();
- bkConf.setDelimiterParsingDisabled(true);
+ bkConf.setListDelimiterHandler(new DisabledListDelimiterHandler());
bkConf.setMetadataServiceUri("metadata-store:" + arguments.metadataStoreUrl);
bkConf.setZkTimeout(arguments.zkSessionTimeoutMillis);
// only format if /ledgers doesn't exist
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/ManagedLedgerClientFactory.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/ManagedLedgerClientFactory.java
index e0ca6c0f97df9..e1561bda303c7 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/ManagedLedgerClientFactory.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/ManagedLedgerClientFactory.java
@@ -39,7 +39,7 @@
import org.apache.bookkeeper.stats.NullStatsProvider;
import org.apache.bookkeeper.stats.StatsLogger;
import org.apache.bookkeeper.stats.StatsProvider;
-import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration2.Configuration;
import org.apache.pulsar.broker.stats.prometheus.metrics.PrometheusMetricsProvider;
import org.apache.pulsar.broker.storage.BookkeeperManagedLedgerStorageClass;
import org.apache.pulsar.broker.storage.ManagedLedgerStorage;
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/prometheus/metrics/PrometheusMetricsProvider.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/prometheus/metrics/PrometheusMetricsProvider.java
index 19fa7c0d2d14c..ea56c051c1924 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/prometheus/metrics/PrometheusMetricsProvider.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/prometheus/metrics/PrometheusMetricsProvider.java
@@ -31,7 +31,7 @@
import org.apache.bookkeeper.stats.CachingStatsProvider;
import org.apache.bookkeeper.stats.StatsLogger;
import org.apache.bookkeeper.stats.StatsProvider;
-import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration2.Configuration;
import org.apache.commons.lang3.StringUtils;
import org.apache.pulsar.client.util.ExecutorProvider;
diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsemble.java b/pulsar-broker/src/main/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsemble.java
index 939998f6f8054..219498284e0ed 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsemble.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/zookeeper/LocalBookkeeperEnsemble.java
@@ -67,7 +67,7 @@
import org.apache.bookkeeper.stream.server.StreamStorageLifecycleComponent;
import org.apache.bookkeeper.stream.storage.api.cluster.ClusterInitializer;
import org.apache.bookkeeper.stream.storage.impl.cluster.ZkClusterInitializer;
-import org.apache.commons.configuration.CompositeConfiguration;
+import org.apache.commons.configuration2.CompositeConfiguration;
import org.apache.commons.io.FileUtils;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/BookKeeperClientFactoryImplTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/BookKeeperClientFactoryImplTest.java
index 3c0e4d0c409df..ca73b979258fb 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/BookKeeperClientFactoryImplTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/BookKeeperClientFactoryImplTest.java
@@ -36,7 +36,7 @@
import org.apache.bookkeeper.conf.ClientConfiguration;
import org.apache.bookkeeper.net.CachedDNSToSwitchMapping;
import org.apache.bookkeeper.stats.StatsLogger;
-import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration2.ex.ConfigurationException;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.pulsar.bookie.rackawareness.BookieRackAffinityMapping;
import org.apache.pulsar.metadata.api.MetadataStore;
diff --git a/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/impl/PulsarZooKeeperClient.java b/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/impl/PulsarZooKeeperClient.java
index e8bfb39395a0e..6a995f20e745a 100644
--- a/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/impl/PulsarZooKeeperClient.java
+++ b/pulsar-metadata/src/main/java/org/apache/pulsar/metadata/impl/PulsarZooKeeperClient.java
@@ -255,8 +255,9 @@ public PulsarZooKeeperClient build() throws IOException,
// Create a watcher manager
StatsLogger watcherStatsLogger = statsLogger.scope("watcher");
ZooKeeperWatcherBase watcherManager =
- null == watchers ? new ZooKeeperWatcherBase(sessionTimeoutMs, watcherStatsLogger) :
- new ZooKeeperWatcherBase(sessionTimeoutMs, watchers, watcherStatsLogger);
+ null == watchers
+ ? new ZooKeeperWatcherBase(sessionTimeoutMs, allowReadOnlyMode, watcherStatsLogger) :
+ new ZooKeeperWatcherBase(sessionTimeoutMs, allowReadOnlyMode, watchers, watcherStatsLogger);
PulsarZooKeeperClient client = new PulsarZooKeeperClient(
connectString,
sessionTimeoutMs,
diff --git a/testmocks/src/main/java/org/apache/bookkeeper/client/TestStatsProvider.java b/testmocks/src/main/java/org/apache/bookkeeper/client/TestStatsProvider.java
index 8dae84ab22ff1..43a39bf4f8452 100644
--- a/testmocks/src/main/java/org/apache/bookkeeper/client/TestStatsProvider.java
+++ b/testmocks/src/main/java/org/apache/bookkeeper/client/TestStatsProvider.java
@@ -29,7 +29,7 @@
import org.apache.bookkeeper.stats.OpStatsLogger;
import org.apache.bookkeeper.stats.StatsLogger;
import org.apache.bookkeeper.stats.StatsProvider;
-import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration2.Configuration;
import org.apache.commons.lang3.StringUtils;
/**