in http/balancer/src/main/java/org/apache/karaf/cellar/http/balancer/internal/osgi/Activator.java [62:123]
public void doStart() throws Exception {
ClusterManager clusterManager = getTrackedService(ClusterManager.class);
if (clusterManager == null) {
return;
}
GroupManager groupManager = getTrackedService(GroupManager.class);
if (groupManager == null) {
return;
}
ConfigurationAdmin configurationAdmin = getTrackedService(ConfigurationAdmin.class);
if (configurationAdmin == null) {
return;
}
EventProducer eventProducer = getTrackedService(EventProducer.class);
if (eventProducer == null) {
return;
}
LOGGER.debug("CELLAR HTTP BALANCER: starting proxy registry");
proxyRegistry = new ProxyServletRegistry();
proxyRegistry.init();
LOGGER.debug("CELLAR HTTP BALANCER: starting balancer event handler");
BalancerEventHandler balancerEventHandler = new BalancerEventHandler();
balancerEventHandler.setClusterManager(clusterManager);
balancerEventHandler.setBundleContext(bundleContext);
balancerEventHandler.setConfigurationAdmin(configurationAdmin);
balancerEventHandler.setGroupManager(groupManager);
balancerEventHandler.setProxyRegistry(proxyRegistry);
Hashtable props = new Hashtable();
props.put("managed", "true");
register(EventHandler.class, balancerEventHandler, props);
LOGGER.debug("CELLAR HTTP BALANCER: starting servlet synchronizer");
ServletSynchronizer synchronizer = new ServletSynchronizer();
synchronizer.setEventProducer(eventProducer);
synchronizer.setClusterManager(clusterManager);
synchronizer.setConfigurationAdmin(configurationAdmin);
synchronizer.setProxyRegistry(proxyRegistry);
synchronizer.setGroupManager(groupManager);
synchronizer.setBundleContext(bundleContext);
synchronizer.init(bundleContext);
props = new Hashtable();
props.put("resource", "balanced.servlet");
register(Synchronizer.class, synchronizer, props);
LOGGER.debug("CELLAR HTTP BALANCER: starting local servlet listener");
LocalServletListener servletListener = new LocalServletListener();
servletListener.setClusterManager(clusterManager);
servletListener.setGroupManager(groupManager);
servletListener.setConfigurationAdmin(configurationAdmin);
servletListener.setEventProducer(eventProducer);
register(ServletListener.class, servletListener);
LOGGER.debug("CELLAR HTTP BALANCER: register MBean");
CellarHttpMBeanImpl mbean = new CellarHttpMBeanImpl();
mbean.setClusterManager(clusterManager);
mbean.setGroupManager(groupManager);
props = new Hashtable();
props.put("jmx.objectname", "org.apache.karaf.cellar:type=http,name=" + System.getProperty("karaf.name"));
mbeanRegistration = bundleContext.registerService(getInterfaceNames(mbean), mbean, props);
}