This is an automated email from the ASF dual-hosted git repository.
jackie 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 7dbb05d2ee Adding registerExtraComponents to allow registering
additional components in various services (#13465)
7dbb05d2ee is described below
commit 7dbb05d2ee921f1a1b127a4c10bfd4ba168c5114
Author: soumitra-st <[email protected]>
AuthorDate: Wed Jun 26 10:54:54 2024 -0700
Adding registerExtraComponents to allow registering additional components
in various services (#13465)
---
.../pinot/broker/broker/BrokerAdminApiApplication.java | 4 ++++
.../pinot/broker/broker/helix/BaseBrokerStarter.java | 14 ++++++++++----
.../org/apache/pinot/controller/BaseControllerStarter.java | 6 +++++-
.../controller/api/ControllerAdminApiApplication.java | 4 ++++
.../java/org/apache/pinot/minion/BaseMinionStarter.java | 6 +++++-
.../org/apache/pinot/minion/MinionAdminApiApplication.java | 4 ++++
.../org/apache/pinot/server/api/AdminApiApplication.java | 4 ++++
.../pinot/server/starter/helix/BaseServerStarter.java | 12 ++++++++----
8 files changed, 44 insertions(+), 10 deletions(-)
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 8dedc8c72b..b204dcd435 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
@@ -162,4 +162,8 @@ public class BrokerAdminApiApplication extends
ResourceConfig {
LOGGER.info("Shutting down executor service");
_executorService.shutdownNow();
}
+
+ public HttpServer getHttpServer() {
+ return _httpServer;
+ }
}
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 b16489b35b..4fce735b74 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
@@ -346,10 +346,7 @@ public abstract class BaseBrokerStarter implements
ServiceStartable {
_sqlQueryExecutor = new SqlQueryExecutor(_spectatorHelixManager);
}
LOGGER.info("Starting broker admin application on: {}",
ListenerConfigUtil.toString(_listenerConfigs));
- _brokerAdminApplication =
- new BrokerAdminApiApplication(_routingManager, _brokerRequestHandler,
_brokerMetrics, _brokerConf,
- _sqlQueryExecutor, _serverRoutingStatsManager,
_accessControlFactory, _spectatorHelixManager);
- registerExtraComponents(_brokerAdminApplication);
+ _brokerAdminApplication = createBrokerAdminApp();
_brokerAdminApplication.start(_listenerConfigs);
LOGGER.info("Initializing cluster change mediator");
@@ -413,6 +410,7 @@ public abstract class BaseBrokerStarter implements
ServiceStartable {
}
/**
+ * @deprecated Use {@link #createBrokerAdminApp()} instead.
* This method is called after initialization of BrokerAdminApiApplication
object
* and before calling start to allow custom broker starters to register
additional
* components.
@@ -600,4 +598,12 @@ public abstract class BaseBrokerStarter implements
ServiceStartable {
public BrokerRequestHandler getBrokerRequestHandler() {
return _brokerRequestHandler;
}
+
+ protected BrokerAdminApiApplication createBrokerAdminApp() {
+ BrokerAdminApiApplication brokerAdminApiApplication =
+ new BrokerAdminApiApplication(_routingManager, _brokerRequestHandler,
_brokerMetrics, _brokerConf,
+ _sqlQueryExecutor, _serverRoutingStatsManager,
_accessControlFactory, _spectatorHelixManager);
+ registerExtraComponents(brokerAdminApiApplication);
+ return brokerAdminApiApplication;
+ }
}
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java
index 43c177a326..2b8ea555bd 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java
@@ -240,7 +240,7 @@ public abstract class BaseControllerStarter implements
ServiceStartable {
// Initialize FunctionRegistry before starting the admin application
(PinotQueryResource requires it to compile
// queries)
FunctionRegistry.init();
- _adminApp = new ControllerAdminApiApplication(_config);
+ _adminApp = createControllerAdminApp();
// Do not use this before the invocation of {@link
PinotHelixResourceManager::start()}, which happens in {@link
// ControllerStarter::start()}
_helixResourceManager = new PinotHelixResourceManager(_config);
@@ -927,4 +927,8 @@ public abstract class BaseControllerStarter implements
ServiceStartable {
public ControllerMetrics getControllerMetrics() {
return _controllerMetrics;
}
+
+ protected ControllerAdminApiApplication createControllerAdminApp() {
+ return new ControllerAdminApiApplication(_config);
+ }
}
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/ControllerAdminApiApplication.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/ControllerAdminApiApplication.java
index b04e6a75d9..978777661f 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/ControllerAdminApiApplication.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/ControllerAdminApiApplication.java
@@ -122,4 +122,8 @@ public class ControllerAdminApiApplication extends
ResourceConfig {
}
}
}
+
+ public HttpServer getHttpServer() {
+ return _httpServer;
+ }
}
diff --git
a/pinot-minion/src/main/java/org/apache/pinot/minion/BaseMinionStarter.java
b/pinot-minion/src/main/java/org/apache/pinot/minion/BaseMinionStarter.java
index 6ad1140d0d..3ddd2b1472 100644
--- a/pinot-minion/src/main/java/org/apache/pinot/minion/BaseMinionStarter.java
+++ b/pinot-minion/src/main/java/org/apache/pinot/minion/BaseMinionStarter.java
@@ -280,7 +280,7 @@ public abstract class BaseMinionStarter implements
ServiceStartable {
minionContext.setHelixPropertyStore(_helixManager.getHelixPropertyStore());
minionContext.setHelixManager(_helixManager);
LOGGER.info("Starting minion admin application on: {}",
ListenerConfigUtil.toString(_listenerConfigs));
- _minionAdminApplication = new MinionAdminApiApplication(_instanceId,
_config);
+ _minionAdminApplication = createMinionAdminApp();
_minionAdminApplication.start(_listenerConfigs);
// Initialize health check callback
@@ -347,4 +347,8 @@ public abstract class BaseMinionStarter implements
ServiceStartable {
}
LOGGER.info("Pinot minion stopped");
}
+
+ protected MinionAdminApiApplication createMinionAdminApp() {
+ return new MinionAdminApiApplication(_instanceId, _config);
+ }
}
diff --git
a/pinot-minion/src/main/java/org/apache/pinot/minion/MinionAdminApiApplication.java
b/pinot-minion/src/main/java/org/apache/pinot/minion/MinionAdminApiApplication.java
index 9e8ce95713..25fd957329 100644
---
a/pinot-minion/src/main/java/org/apache/pinot/minion/MinionAdminApiApplication.java
+++
b/pinot-minion/src/main/java/org/apache/pinot/minion/MinionAdminApiApplication.java
@@ -95,4 +95,8 @@ public class MinionAdminApiApplication extends ResourceConfig
{
_httpServer.shutdownNow();
}
}
+
+ public HttpServer getHttpServer() {
+ return _httpServer;
+ }
}
diff --git
a/pinot-server/src/main/java/org/apache/pinot/server/api/AdminApiApplication.java
b/pinot-server/src/main/java/org/apache/pinot/server/api/AdminApiApplication.java
index 520b95cf06..3c959e3ecd 100644
---
a/pinot-server/src/main/java/org/apache/pinot/server/api/AdminApiApplication.java
+++
b/pinot-server/src/main/java/org/apache/pinot/server/api/AdminApiApplication.java
@@ -141,4 +141,8 @@ public class AdminApiApplication extends ResourceConfig {
public void stop() {
_httpServer.shutdownNow();
}
+
+ public HttpServer getHttpServer() {
+ return _httpServer;
+ }
}
diff --git
a/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/BaseServerStarter.java
b/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/BaseServerStarter.java
index e1d78a88f5..b961582a9e 100644
---
a/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/BaseServerStarter.java
+++
b/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/BaseServerStarter.java
@@ -139,6 +139,7 @@ public abstract class BaseServerStarter implements
ServiceStartable {
protected HelixManager _helixManager;
protected HelixAdmin _helixAdmin;
protected ServerInstance _serverInstance;
+ protected AccessControlFactory _accessControlFactory;
protected AdminApiApplication _adminApiApplication;
protected ServerQueriesDisabledTracker _serverQueriesDisabledTracker;
protected RealtimeLuceneIndexRefreshState _realtimeLuceneIndexRefreshState;
@@ -572,9 +573,8 @@ public abstract class BaseServerStarter implements
ServiceStartable {
String accessControlFactoryClass =
_serverConf.getProperty(Server.ACCESS_CONTROL_FACTORY_CLASS,
Server.DEFAULT_ACCESS_CONTROL_FACTORY_CLASS);
LOGGER.info("Using class: {} as the AccessControlFactory",
accessControlFactoryClass);
- AccessControlFactory accessControlFactory;
try {
- accessControlFactory =
PluginManager.get().createInstance(accessControlFactoryClass);
+ _accessControlFactory =
PluginManager.get().createInstance(accessControlFactoryClass);
} catch (Exception e) {
throw new RuntimeException(
"Caught exception while creating new AccessControlFactory instance
using class '" + accessControlFactoryClass
@@ -593,7 +593,7 @@ public abstract class BaseServerStarter implements
ServiceStartable {
ServerSegmentCompletionProtocolHandler.init(
_serverConf.subset(SegmentCompletionProtocol.PREFIX_OF_CONFIG_OF_SEGMENT_UPLOADER));
ServerConf serverConf = new ServerConf(_serverConf);
- _serverInstance = new ServerInstance(serverConf, _helixManager,
accessControlFactory);
+ _serverInstance = new ServerInstance(serverConf, _helixManager,
_accessControlFactory);
ServerMetrics serverMetrics = _serverInstance.getServerMetrics();
InstanceDataManager instanceDataManager =
_serverInstance.getInstanceDataManager();
@@ -617,7 +617,7 @@ public abstract class BaseServerStarter implements
ServiceStartable {
// Start restlet server for admin API endpoint
LOGGER.info("Starting server admin application on: {}",
ListenerConfigUtil.toString(_listenerConfigs));
- _adminApiApplication = new AdminApiApplication(_serverInstance,
accessControlFactory, _serverConf);
+ _adminApiApplication = createServerAdminApp();
_adminApiApplication.start(_listenerConfigs);
// Init QueryRewriterFactory
@@ -931,4 +931,8 @@ public abstract class BaseServerStarter implements
ServiceStartable {
PinotConfiguration pinotCrypterConfig =
config.subset(CommonConstants.Server.PREFIX_OF_CONFIG_OF_PINOT_CRYPTER);
PinotCrypterFactory.init(pinotCrypterConfig);
}
+
+ protected AdminApiApplication createServerAdminApp() {
+ return new AdminApiApplication(_serverInstance, _accessControlFactory,
_serverConf);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]