in uReplicator-Controller/src/main/java/com/uber/stream/kafka/mirrormaker/controller/ControllerInstance.java [163:218]
public void start() throws Exception {
_component.getServers().add(Protocol.HTTP, Integer.parseInt(_config.getControllerPort()));
_component.getClients().add(Protocol.FILE);
_component.getClients().add(Protocol.JAR);
_component.getClients().add(Protocol.WAR);
final Context applicationContext = _component.getContext().createChildContext();
LOGGER.info("injecting conf and resource manager to the api context");
applicationContext.getAttributes().put(ControllerConf.class.toString(), _config);
applicationContext.getAttributes().put(HelixMirrorMakerManager.class.toString(),
_helixMirrorMakerManager);
applicationContext.getAttributes().put(ValidationManager.class.toString(), _validationManager);
if (_managerControllerHelix != null) {
applicationContext.getAttributes().put(ManagerControllerHelix.class.toString(),
_managerControllerHelix);
}
if (_srcKafkaValidationManager != null) {
applicationContext.getAttributes().put(SourceKafkaClusterValidationManager.class.toString(),
_srcKafkaValidationManager);
applicationContext.getAttributes().put(KafkaBrokerTopicObserver.class.toString(),
_kafkaBrokerTopicObserverMap.get(SRC_KAFKA_CLUSTER));
}
if (_autoTopicWhitelistingManager != null) {
applicationContext.getAttributes().put(AutoTopicWhitelistingManager.class.toString(),
_autoTopicWhitelistingManager);
}
_controllerRestApp.setContext(applicationContext);
_component.getDefaultHost().attach(_controllerRestApp);
try {
LOGGER.info("starting helix mirror maker manager");
_helixMirrorMakerManager.start();
_validationManager.start();
if (_autoTopicWhitelistingManager != null) {
_autoTopicWhitelistingManager.start();
}
if (_srcKafkaValidationManager != null) {
_srcKafkaValidationManager.start();
}
if (_clusterInfoBackupManager != null) {
_clusterInfoBackupManager.start();
}
LOGGER.info("starting api component");
_component.start();
started = true;
} catch (final Exception e) {
LOGGER.error("Caught exception while starting controller", e);
throw e;
}
}