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]