public void doStart()

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);
    }