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

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


The following commit(s) were added to refs/heads/master by this push:
     new e5dba1966c9 Refactor broker routing managers into routing.manager 
package and introduce BaseBrokerRoutingManager (#17413)
e5dba1966c9 is described below

commit e5dba1966c9c3cd0a690ace61dc1758b7a7251aa
Author: Shaurya Chaturvedi <[email protected]>
AuthorDate: Tue Dec 23 10:11:36 2025 -0800

    Refactor broker routing managers into routing.manager package and introduce 
BaseBrokerRoutingManager (#17413)
---
 .../broker/api/resources/PinotBrokerDebug.java     |  2 +-
 .../broker/api/resources/PinotBrokerRouting.java   |  2 +-
 .../broker/broker/BrokerAdminApiApplication.java   |  2 +-
 .../broker/broker/helix/BaseBrokerStarter.java     |  2 +-
 ...okerResourceOnlineOfflineStateModelFactory.java |  2 +-
 .../BrokerUserDefinedMessageHandlerFactory.java    |  2 +-
 .../requesthandler/TimeSeriesRequestHandler.java   |  2 +-
 .../BaseBrokerRoutingManager.java}                 |  8 ++---
 .../routing/manager/BrokerRoutingManager.java      | 39 ++++++++++++++++++++++
 .../{ => manager}/MultiClusterRoutingManager.java  | 16 ++++-----
 .../RemoteClusterBrokerRoutingManager.java         |  4 +--
 .../broker/api/resources/PinotBrokerDebugTest.java |  2 +-
 .../broker/broker/HelixBrokerStarterTest.java      |  2 +-
 .../BaseSingleStageBrokerRequestHandlerTest.java   |  2 +-
 .../BrokerRoutingManagerConcurrencyTest.java       | 15 ++++++---
 .../MultiClusterRoutingManagerTest.java            |  2 +-
 .../RemoteClusterBrokerRoutingManagerTest.java     |  2 +-
 17 files changed, 75 insertions(+), 31 deletions(-)

diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/api/resources/PinotBrokerDebug.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/api/resources/PinotBrokerDebug.java
index 1db7133631b..69248672bb5 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/api/resources/PinotBrokerDebug.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/api/resources/PinotBrokerDebug.java
@@ -47,7 +47,7 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import org.apache.pinot.broker.broker.AccessControlFactory;
 import org.apache.pinot.broker.queryquota.QueryQuotaManager;
-import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.broker.routing.manager.BrokerRoutingManager;
 import org.apache.pinot.common.request.BrokerRequest;
 import org.apache.pinot.common.utils.DatabaseUtils;
 import org.apache.pinot.core.auth.Actions;
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/api/resources/PinotBrokerRouting.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/api/resources/PinotBrokerRouting.java
index dd55158e5ad..f9ee597ef1c 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/api/resources/PinotBrokerRouting.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/api/resources/PinotBrokerRouting.java
@@ -38,7 +38,7 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import org.apache.helix.HelixManager;
-import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.broker.routing.manager.BrokerRoutingManager;
 import org.apache.pinot.common.metadata.ZKMetadataProvider;
 import org.apache.pinot.common.utils.DatabaseUtils;
 import org.apache.pinot.common.utils.URIUtils;
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
index ff99e1b291a..6381e76098c 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
@@ -34,7 +34,7 @@ import org.apache.hc.core5.util.Timeout;
 import org.apache.helix.HelixManager;
 import org.apache.pinot.broker.queryquota.QueryQuotaManager;
 import org.apache.pinot.broker.requesthandler.BrokerRequestHandler;
-import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.broker.routing.manager.BrokerRoutingManager;
 import org.apache.pinot.common.audit.AuditLogFilter;
 import org.apache.pinot.common.cursors.AbstractResponseStore;
 import org.apache.pinot.common.http.PoolingHttpClientConnectionManagerHelper;
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
index 9b99c4f4603..d4c2b2c8754 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
@@ -54,7 +54,7 @@ import 
org.apache.pinot.broker.requesthandler.MultiStageBrokerRequestHandler;
 import org.apache.pinot.broker.requesthandler.MultiStageQueryThrottler;
 import 
org.apache.pinot.broker.requesthandler.SingleConnectionBrokerRequestHandler;
 import org.apache.pinot.broker.requesthandler.TimeSeriesRequestHandler;
-import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.broker.routing.manager.BrokerRoutingManager;
 import org.apache.pinot.common.Utils;
 import org.apache.pinot.common.audit.AuditServiceBinder;
 import org.apache.pinot.common.config.DefaultClusterConfigChangeHandler;
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BrokerResourceOnlineOfflineStateModelFactory.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BrokerResourceOnlineOfflineStateModelFactory.java
index d9e83d4e4c5..a819254c29a 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BrokerResourceOnlineOfflineStateModelFactory.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BrokerResourceOnlineOfflineStateModelFactory.java
@@ -28,7 +28,7 @@ import org.apache.helix.participant.statemachine.Transition;
 import org.apache.helix.store.zk.ZkHelixPropertyStore;
 import org.apache.helix.zookeeper.datamodel.ZNRecord;
 import 
org.apache.pinot.broker.queryquota.HelixExternalViewBasedQueryQuotaManager;
-import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.broker.routing.manager.BrokerRoutingManager;
 import org.apache.pinot.common.metadata.ZKMetadataProvider;
 import org.apache.pinot.common.utils.DatabaseUtils;
 import org.apache.pinot.spi.config.table.TableConfig;
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BrokerUserDefinedMessageHandlerFactory.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BrokerUserDefinedMessageHandlerFactory.java
index 555371346bd..c283e3a02ff 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BrokerUserDefinedMessageHandlerFactory.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BrokerUserDefinedMessageHandlerFactory.java
@@ -24,7 +24,7 @@ import org.apache.helix.messaging.handling.MessageHandler;
 import org.apache.helix.messaging.handling.MessageHandlerFactory;
 import org.apache.helix.model.Message;
 import 
org.apache.pinot.broker.queryquota.HelixExternalViewBasedQueryQuotaManager;
-import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.broker.routing.manager.BrokerRoutingManager;
 import org.apache.pinot.common.messages.ApplicationQpsQuotaRefreshMessage;
 import org.apache.pinot.common.messages.DatabaseConfigRefreshMessage;
 import org.apache.pinot.common.messages.LogicalTableConfigRefreshMessage;
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/TimeSeriesRequestHandler.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/TimeSeriesRequestHandler.java
index d8efeeebbea..8306c4bd33b 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/TimeSeriesRequestHandler.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/TimeSeriesRequestHandler.java
@@ -41,7 +41,7 @@ import org.apache.http.client.utils.URLEncodedUtils;
 import org.apache.pinot.broker.api.AccessControl;
 import org.apache.pinot.broker.broker.AccessControlFactory;
 import org.apache.pinot.broker.queryquota.QueryQuotaManager;
-import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.broker.routing.manager.BrokerRoutingManager;
 import org.apache.pinot.common.config.provider.TableCache;
 import org.apache.pinot.common.metrics.BrokerMeter;
 import org.apache.pinot.common.metrics.BrokerTimer;
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/routing/BrokerRoutingManager.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/BaseBrokerRoutingManager.java
similarity index 99%
rename from 
pinot-broker/src/main/java/org/apache/pinot/broker/routing/BrokerRoutingManager.java
rename to 
pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/BaseBrokerRoutingManager.java
index be9452ccd89..e2ecdf59033 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/routing/BrokerRoutingManager.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/BaseBrokerRoutingManager.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.broker.routing;
+package org.apache.pinot.broker.routing.manager;
 
 import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.ThreadFactoryBuilder;
@@ -117,8 +117,8 @@ import org.slf4j.LoggerFactory;
  * TODO: Expose RoutingEntry class to get a consistent view in the broker 
request handler and save the redundant map
  *       lookups.
  */
-public class BrokerRoutingManager implements RoutingManager, 
ClusterChangeHandler {
-  private static final Logger LOGGER = 
LoggerFactory.getLogger(BrokerRoutingManager.class);
+public abstract class BaseBrokerRoutingManager implements RoutingManager, 
ClusterChangeHandler {
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(BaseBrokerRoutingManager.class);
 
   protected final BrokerMetrics _brokerMetrics;
   protected final Map<String, RoutingEntry> _routingEntryMap = new 
ConcurrentHashMap<>();
@@ -155,7 +155,7 @@ public class BrokerRoutingManager implements 
RoutingManager, ClusterChangeHandle
   // race conditions with processSegmentAssignmentChange()
   private long _processAssignmentChangeSnapshotTimestampMs;
 
-  public BrokerRoutingManager(BrokerMetrics brokerMetrics, 
ServerRoutingStatsManager serverRoutingStatsManager,
+  public BaseBrokerRoutingManager(BrokerMetrics brokerMetrics, 
ServerRoutingStatsManager serverRoutingStatsManager,
       PinotConfiguration pinotConfig) {
     _brokerMetrics = brokerMetrics;
     _serverRoutingStatsManager = serverRoutingStatsManager;
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/BrokerRoutingManager.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/BrokerRoutingManager.java
new file mode 100644
index 00000000000..27cde679357
--- /dev/null
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/BrokerRoutingManager.java
@@ -0,0 +1,39 @@
+/**
+ * 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.
+ */
+package org.apache.pinot.broker.routing.manager;
+
+import org.apache.pinot.common.metrics.BrokerMetrics;
+import 
org.apache.pinot.core.transport.server.routing.stats.ServerRoutingStatsManager;
+import org.apache.pinot.spi.env.PinotConfiguration;
+
+
+/**
+ * Default broker routing manager implementation.
+ *
+ * <p>This class is a thin wrapper over {@link BaseBrokerRoutingManager} and 
exists primarily to provide the
+ * canonical routing manager type for the local broker, while allowing 
specialized implementations
+ * (e.g. remote-cluster routing managers) to extend the shared base behavior.
+ */
+public class BrokerRoutingManager extends BaseBrokerRoutingManager {
+
+  public BrokerRoutingManager(BrokerMetrics brokerMetrics, 
ServerRoutingStatsManager serverRoutingStatsManager,
+      PinotConfiguration pinotConfig) {
+    super(brokerMetrics, serverRoutingStatsManager, pinotConfig);
+  }
+}
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/routing/MultiClusterRoutingManager.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/MultiClusterRoutingManager.java
similarity index 93%
rename from 
pinot-broker/src/main/java/org/apache/pinot/broker/routing/MultiClusterRoutingManager.java
rename to 
pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/MultiClusterRoutingManager.java
index 8ab5f24af30..0f247786c76 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/routing/MultiClusterRoutingManager.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/MultiClusterRoutingManager.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.broker.routing;
+package org.apache.pinot.broker.routing.manager;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -62,12 +62,12 @@ public class MultiClusterRoutingManager implements 
RoutingManager {
     _remoteClusterRoutingManagers = remoteClusterRoutingManagers;
   }
 
-  private Stream<BrokerRoutingManager> allClusters() {
+  private Stream<BaseBrokerRoutingManager> allClusters() {
     return Stream.concat(Stream.of(_localClusterRoutingManager), 
_remoteClusterRoutingManagers.stream());
   }
 
   @Nullable
-  private <T> T findFirst(Function<BrokerRoutingManager, T> getter, String 
tableNameForLog) {
+  private <T> T findFirst(Function<BaseBrokerRoutingManager, T> getter, String 
tableNameForLog) {
     return allClusters()
         .map(mgr -> {
           try {
@@ -82,7 +82,7 @@ public class MultiClusterRoutingManager implements 
RoutingManager {
         .orElse(null);
   }
 
-  private boolean anyMatch(Predicate<BrokerRoutingManager> predicate) {
+  private boolean anyMatch(Predicate<BaseBrokerRoutingManager> predicate) {
     return allClusters().anyMatch(predicate);
   }
 
@@ -117,7 +117,7 @@ public class MultiClusterRoutingManager implements 
RoutingManager {
         ? new ArrayList<>(localTable.getUnavailableSegments()) : new 
ArrayList<>();
     int prunedCount = localTable != null ? localTable.getNumPrunedSegments() : 
0;
 
-    for (BrokerRoutingManager remoteCluster : _remoteClusterRoutingManagers) {
+    for (BaseBrokerRoutingManager remoteCluster : 
_remoteClusterRoutingManagers) {
       try {
         RoutingTable remoteTable = 
remoteCluster.getRoutingTable(brokerRequest, tableNameWithType, requestId);
         if (remoteTable != null) {
@@ -154,7 +154,7 @@ public class MultiClusterRoutingManager implements 
RoutingManager {
   @Override
   public Map<String, ServerInstance> getEnabledServerInstanceMap() {
     Map<String, ServerInstance> combined = new 
HashMap<>(_localClusterRoutingManager.getEnabledServerInstanceMap());
-    for (BrokerRoutingManager remoteCluster : _remoteClusterRoutingManagers) {
+    for (BaseBrokerRoutingManager remoteCluster : 
_remoteClusterRoutingManagers) {
       combined.putAll(remoteCluster.getEnabledServerInstanceMap());
     }
     return combined;
@@ -172,7 +172,7 @@ public class MultiClusterRoutingManager implements 
RoutingManager {
     if (localInstances != null) {
       combined.addAll(localInstances);
     }
-    for (BrokerRoutingManager remoteCluster : _remoteClusterRoutingManagers) {
+    for (BaseBrokerRoutingManager remoteCluster : 
_remoteClusterRoutingManagers) {
       try {
         Set<String> instances = 
remoteCluster.getServingInstances(tableNameWithType);
         if (instances != null) {
@@ -192,7 +192,7 @@ public class MultiClusterRoutingManager implements 
RoutingManager {
     if (localSegments != null) {
       combined.addAll(localSegments);
     }
-    for (BrokerRoutingManager remoteCluster : _remoteClusterRoutingManagers) {
+    for (BaseBrokerRoutingManager remoteCluster : 
_remoteClusterRoutingManagers) {
       try {
         List<String> remoteSegments = remoteCluster.getSegments(brokerRequest);
         if (remoteSegments != null) {
diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/routing/RemoteClusterBrokerRoutingManager.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/RemoteClusterBrokerRoutingManager.java
similarity index 97%
rename from 
pinot-broker/src/main/java/org/apache/pinot/broker/routing/RemoteClusterBrokerRoutingManager.java
rename to 
pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/RemoteClusterBrokerRoutingManager.java
index 8fd9a2cb762..bbd44e24b77 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/routing/RemoteClusterBrokerRoutingManager.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/routing/manager/RemoteClusterBrokerRoutingManager.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.broker.routing;
+package org.apache.pinot.broker.routing.manager;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
@@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
  * federation. It periodically checks for changes in the set of tables 
available in the remote cluster and updates the
  * routing accordingly.
  */
-public class RemoteClusterBrokerRoutingManager extends BrokerRoutingManager {
+public class RemoteClusterBrokerRoutingManager extends 
BaseBrokerRoutingManager {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(RemoteClusterBrokerRoutingManager.class);
   private static final long ROUTING_CHANGE_DETECTION_INTERVAL_MS = 10_000L;
 
diff --git 
a/pinot-broker/src/test/java/org/apache/pinot/broker/api/resources/PinotBrokerDebugTest.java
 
b/pinot-broker/src/test/java/org/apache/pinot/broker/api/resources/PinotBrokerDebugTest.java
index 550eedd867d..f1f25d1173a 100644
--- 
a/pinot-broker/src/test/java/org/apache/pinot/broker/api/resources/PinotBrokerDebugTest.java
+++ 
b/pinot-broker/src/test/java/org/apache/pinot/broker/api/resources/PinotBrokerDebugTest.java
@@ -22,7 +22,7 @@ import java.lang.reflect.Field;
 import java.util.Collections;
 import java.util.List;
 import javax.ws.rs.core.HttpHeaders;
-import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.broker.routing.manager.BrokerRoutingManager;
 import org.apache.pinot.common.request.BrokerRequest;
 import org.apache.pinot.core.routing.RoutingTable;
 import org.mockito.ArgumentCaptor;
diff --git 
a/pinot-broker/src/test/java/org/apache/pinot/broker/broker/HelixBrokerStarterTest.java
 
b/pinot-broker/src/test/java/org/apache/pinot/broker/broker/HelixBrokerStarterTest.java
index 6052d8a663d..0118907e840 100644
--- 
a/pinot-broker/src/test/java/org/apache/pinot/broker/broker/HelixBrokerStarterTest.java
+++ 
b/pinot-broker/src/test/java/org/apache/pinot/broker/broker/HelixBrokerStarterTest.java
@@ -26,7 +26,7 @@ import org.apache.helix.model.HelixConfigScope;
 import org.apache.helix.model.IdealState;
 import org.apache.helix.model.builder.HelixConfigScopeBuilder;
 import org.apache.pinot.broker.broker.helix.HelixBrokerStarter;
-import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.broker.routing.manager.BrokerRoutingManager;
 import org.apache.pinot.common.metadata.segment.SegmentZKMetadata;
 import org.apache.pinot.common.request.BrokerRequest;
 import org.apache.pinot.common.utils.config.TagNameUtils;
diff --git 
a/pinot-broker/src/test/java/org/apache/pinot/broker/requesthandler/BaseSingleStageBrokerRequestHandlerTest.java
 
b/pinot-broker/src/test/java/org/apache/pinot/broker/requesthandler/BaseSingleStageBrokerRequestHandlerTest.java
index c452cbf978f..3df8c7bcc8f 100644
--- 
a/pinot-broker/src/test/java/org/apache/pinot/broker/requesthandler/BaseSingleStageBrokerRequestHandlerTest.java
+++ 
b/pinot-broker/src/test/java/org/apache/pinot/broker/requesthandler/BaseSingleStageBrokerRequestHandlerTest.java
@@ -27,7 +27,7 @@ import java.util.concurrent.CountDownLatch;
 import org.apache.helix.model.InstanceConfig;
 import org.apache.pinot.broker.broker.AllowAllAccessControlFactory;
 import org.apache.pinot.broker.queryquota.QueryQuotaManager;
-import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.broker.routing.manager.BrokerRoutingManager;
 import org.apache.pinot.common.config.provider.TableCache;
 import org.apache.pinot.common.metrics.BrokerMetrics;
 import org.apache.pinot.common.request.BrokerRequest;
diff --git 
a/pinot-broker/src/test/java/org/apache/pinot/broker/routing/BrokerRoutingManagerConcurrencyTest.java
 
b/pinot-broker/src/test/java/org/apache/pinot/broker/routing/manager/BrokerRoutingManagerConcurrencyTest.java
similarity index 99%
rename from 
pinot-broker/src/test/java/org/apache/pinot/broker/routing/BrokerRoutingManagerConcurrencyTest.java
rename to 
pinot-broker/src/test/java/org/apache/pinot/broker/routing/manager/BrokerRoutingManagerConcurrencyTest.java
index abb4a714980..a6a83719dca 100644
--- 
a/pinot-broker/src/test/java/org/apache/pinot/broker/routing/BrokerRoutingManagerConcurrencyTest.java
+++ 
b/pinot-broker/src/test/java/org/apache/pinot/broker/routing/manager/BrokerRoutingManagerConcurrencyTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.broker.routing;
+package org.apache.pinot.broker.routing.manager;
 
 import java.lang.reflect.Field;
 import java.util.ArrayList;
@@ -177,7 +177,9 @@ public class BrokerRoutingManagerConcurrencyTest extends 
ControllerTest {
   private void clearRoutingEntries() {
     // Clear existing routing entries to ensure test isolation
     try {
-      java.lang.reflect.Field routingEntryMapField = 
BrokerRoutingManager.class.getDeclaredField("_routingEntryMap");
+      // Access the inherited field from the parent class 
(BaseBrokerRoutingManager)
+      Class<?> baseClass = _routingManager.getClass().getSuperclass();
+      java.lang.reflect.Field routingEntryMapField = 
baseClass.getDeclaredField("_routingEntryMap");
       routingEntryMapField.setAccessible(true);
       Map<?, ?> routingEntryMap = (Map<?, ?>) 
routingEntryMapField.get(_routingManager);
       routingEntryMap.clear();
@@ -436,7 +438,9 @@ public class BrokerRoutingManagerConcurrencyTest extends 
ControllerTest {
     // Set a future last build start time to force skipping the current build 
call
     long futureStart = System.currentTimeMillis() + 10_000L;
 
-    Field startTimesField = 
BrokerRoutingManager.class.getDeclaredField("_routingTableBuildStartTimeMs");
+    // Access the field from the parent class (BaseBrokerRoutingManager)
+    Class<?> baseClass = manager.getClass().getSuperclass();
+    Field startTimesField = 
baseClass.getDeclaredField("_routingTableBuildStartTimeMs");
     startTimesField.setAccessible(true);
     Map<String, Long> startTimes = (Map<String, Long>) 
startTimesField.get(manager);
     if (startTimes == null) {
@@ -715,8 +719,9 @@ public class BrokerRoutingManagerConcurrencyTest extends 
ControllerTest {
 
   private Object getRoutingEntry(String tableNameWithType) {
     try {
-      // Use reflection to access the private _routingEntryMap
-      java.lang.reflect.Field field = 
BrokerRoutingManager.class.getDeclaredField("_routingEntryMap");
+      // Use reflection to access the private _routingEntryMap from the parent 
class (BaseBrokerRoutingManager)
+      Class<?> baseClass = _routingManager.getClass().getSuperclass();
+      java.lang.reflect.Field field = 
baseClass.getDeclaredField("_routingEntryMap");
       field.setAccessible(true);
       @SuppressWarnings("unchecked")
       java.util.Map<String, Object> routingEntryMap = (java.util.Map<String, 
Object>) field.get(_routingManager);
diff --git 
a/pinot-broker/src/test/java/org/apache/pinot/broker/routing/MultiClusterRoutingManagerTest.java
 
b/pinot-broker/src/test/java/org/apache/pinot/broker/routing/manager/MultiClusterRoutingManagerTest.java
similarity index 99%
rename from 
pinot-broker/src/test/java/org/apache/pinot/broker/routing/MultiClusterRoutingManagerTest.java
rename to 
pinot-broker/src/test/java/org/apache/pinot/broker/routing/manager/MultiClusterRoutingManagerTest.java
index 2716fc0ec0b..f18cfbaf037 100644
--- 
a/pinot-broker/src/test/java/org/apache/pinot/broker/routing/MultiClusterRoutingManagerTest.java
+++ 
b/pinot-broker/src/test/java/org/apache/pinot/broker/routing/manager/MultiClusterRoutingManagerTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.broker.routing;
+package org.apache.pinot.broker.routing.manager;
 
 import java.util.Arrays;
 import java.util.Collections;
diff --git 
a/pinot-broker/src/test/java/org/apache/pinot/broker/routing/RemoteClusterBrokerRoutingManagerTest.java
 
b/pinot-broker/src/test/java/org/apache/pinot/broker/routing/manager/RemoteClusterBrokerRoutingManagerTest.java
similarity index 99%
rename from 
pinot-broker/src/test/java/org/apache/pinot/broker/routing/RemoteClusterBrokerRoutingManagerTest.java
rename to 
pinot-broker/src/test/java/org/apache/pinot/broker/routing/manager/RemoteClusterBrokerRoutingManagerTest.java
index 2ce308dbfd3..1eecb92da0b 100644
--- 
a/pinot-broker/src/test/java/org/apache/pinot/broker/routing/RemoteClusterBrokerRoutingManagerTest.java
+++ 
b/pinot-broker/src/test/java/org/apache/pinot/broker/routing/manager/RemoteClusterBrokerRoutingManagerTest.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.pinot.broker.routing;
+package org.apache.pinot.broker.routing.manager;
 
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;


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

Reply via email to