public void doStart()

in log/src/main/java/org/apache/karaf/cellar/log/internal/osgi/Activator.java [60:135]


    public void doStart() throws Exception {
        LOGGER.debug("CELLAR LOG: retrieve cluster manager service");
        ClusterManager clusterManager = getTrackedService(ClusterManager.class);
        if (clusterManager == null) {
            return;
        }

        LOGGER.debug("CELLAR LOG: retrieve producer service");
        EventProducer producer = getTrackedService(EventProducer.class);
        if (producer == null) {
            return;
        }

        LOGGER.debug("CELLAR LOG: retrieve command store service");
        CommandStore commandStore = getTrackedService(CommandStore.class);
        if (commandStore == null) {
            return;
        }

        LOGGER.debug("CELLAR LOG: retrieve execution context service");
        ExecutionContext executionContext = getTrackedService(ExecutionContext.class);
        if (executionContext == null) {
            return;
        }

        LOGGER.debug("CELLAR LOG: retrieve configuration admin service");
        ConfigurationAdmin configurationAdmin = getTrackedService(ConfigurationAdmin.class);
        if (configurationAdmin == null) {
            return;
        }

        LOGGER.debug("CELLAR LOG: retrieve log service");
        LogService logService = getTrackedService(LogService.class);
        if (logService == null) {
            return;
        }

        LOGGER.debug("CELLAR LOG: init PaxAppender");
        LogAppender paxAppender = new LogAppender();
        paxAppender.setClusterManager(clusterManager);
        Hashtable props = new Hashtable();
        props.put("org.ops4j.pax.logging.appender.name", "CellarLogAppender");
        register(PaxAppender.class, paxAppender, props);

        LOGGER.debug("CELLAR LOG: register get log command handler");
        GetLogCommandHandler getLogCommandHandler = new GetLogCommandHandler();
        getLogCommandHandler.setProducer(producer);
        getLogCommandHandler.setConfigurationAdmin(configurationAdmin);
        getLogCommandHandler.setLogService(logService);
        register(EventHandler.class, getLogCommandHandler);

        LOGGER.debug("CELLAR LOG: register get log result handler");
        GetLogResultHandler getLogResultHandler = new GetLogResultHandler();
        getLogResultHandler.setCommandStore(commandStore);
        register(EventHandler.class, getLogResultHandler);

        LOGGER.debug("CELLAR LOG: register set log command handler");
        SetLogCommandHandler setLogCommandHandler = new SetLogCommandHandler();
        setLogCommandHandler.setProducer(producer);
        setLogCommandHandler.setConfigurationAdmin(configurationAdmin);
        setLogCommandHandler.setLogService(logService);
        register(EventHandler.class, setLogCommandHandler);

        LOGGER.debug("CELLAR LOG: register set log result handler");
        SetLogResultHandler setLogResultHandler = new SetLogResultHandler();
        setLogResultHandler.setCommandStore(commandStore);
        register(EventHandler.class, setLogResultHandler);

        LOGGER.debug("CELLAR LOG: register MBean");
        CellarLogMBeanImpl mbean = new CellarLogMBeanImpl();
        mbean.setClusterManager(clusterManager);
        mbean.setExecutionContext(executionContext);
        props = new Hashtable();
        props.put("jmx.objectname", "org.apache.karaf.cellar:type=log,name=" + System.getProperty("karaf.name"));
        mbeanRegistration = bundleContext.registerService(getInterfaceNames(mbean), mbean, props);
    }