public void doStart()

in obr/src/main/java/org/apache/karaf/cellar/obr/internal/osgi/Activator.java [62:121]


    public void doStart() throws Exception {

        RepositoryAdmin repositoryAdmin = getTrackedService(RepositoryAdmin.class);
        if (repositoryAdmin == null)
            return;
        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 OBR: init URL event handler");
        urlEventHandler = new ObrUrlEventHandler();
        urlEventHandler.setClusterManager(clusterManager);
        urlEventHandler.setGroupManager(groupManager);
        urlEventHandler.setConfigurationAdmin(configurationAdmin);
        urlEventHandler.setObrService(repositoryAdmin);
        urlEventHandler.init(bundleContext);
        Hashtable props = new Hashtable();
        props.put("managed", "true");
        register(EventHandler.class, urlEventHandler, props);

        LOGGER.debug("CELLAR OBR: init bundle event handler");
        bundleEventHandler = new ObrBundleEventHandler();
        bundleEventHandler.setObrService(repositoryAdmin);
        bundleEventHandler.setClusterManager(clusterManager);
        bundleEventHandler.setGroupManager(groupManager);
        bundleEventHandler.setConfigurationAdmin(configurationAdmin);
        bundleEventHandler.init(bundleContext);
        register(EventHandler.class, bundleEventHandler, props);

        LOGGER.debug("CELLAR OBR: init URL synchronizer");
        urlSynchronizer = new ObrUrlSynchronizer();
        urlSynchronizer.setObrService(repositoryAdmin);
        urlSynchronizer.setClusterManager(clusterManager);
        urlSynchronizer.setGroupManager(groupManager);
        urlSynchronizer.setEventProducer(eventProducer);
        urlSynchronizer.setConfigurationAdmin(configurationAdmin);
        urlSynchronizer.init(bundleContext);
        props = new Hashtable();
        props.put("resource", "obr.urls");
        register(Synchronizer.class, urlSynchronizer, props);

        LOGGER.debug("CELLAR OBR: register MBean");
        CellarOBRMBeanImpl mbean = new CellarOBRMBeanImpl();
        mbean.setClusterManager(clusterManager);
        mbean.setGroupManager(groupManager);
        mbean.setConfigurationAdmin(configurationAdmin);
        mbean.setEventProducer(eventProducer);
        props = new Hashtable();
        props.put("jmx.objectname", "org.apache.karaf.cellar:type=obr,name=" + System.getProperty("karaf.name"));
        mbeanRegistration = bundleContext.registerService(getInterfaceNames(mbean), mbean, props);
    }