in dosgi/src/main/java/org/apache/karaf/cellar/dosgi/internal/osgi/Activator.java [58:115]
public void doStart() throws Exception {
ClusterManager clusterManager = getTrackedService(ClusterManager.class);
if (clusterManager == null)
return;
EventTransportFactory eventTransportFactory = getTrackedService(EventTransportFactory.class);
if (eventTransportFactory == null)
return;
CommandStore commandStore = getTrackedService(CommandStore.class);
if (commandStore == null)
return;
ConfigurationAdmin configurationAdmin = getTrackedService(ConfigurationAdmin.class);
if (configurationAdmin == null)
return;
LOGGER.debug("CELLAR DOSGI: init remote service call handler");
RemoteServiceCallHandler remoteServiceCallHandler = new RemoteServiceCallHandler();
remoteServiceCallHandler.setEventTransportFactory(eventTransportFactory);
remoteServiceCallHandler.setClusterManager(clusterManager);
remoteServiceCallHandler.setBundleContext(bundleContext);
remoteServiceCallHandler.setConfigurationAdmin(configurationAdmin);
Hashtable props = new Hashtable();
props.put("managed", "true");
register(EventHandler.class, remoteServiceCallHandler, props);
LOGGER.debug("CELLAR DOSGI: init remote service result handler");
RemoteServiceResultHandler remoteServiceResultHandler = new RemoteServiceResultHandler();
remoteServiceResultHandler.setCommandStore(commandStore);
register(EventHandler.class, remoteServiceResultHandler);
LOGGER.debug("CELLAR DOSGI: init import service listener");
importServiceListener = new ImportServiceListener();
importServiceListener.setClusterManager(clusterManager);
importServiceListener.setEventTransportFactory(eventTransportFactory);
importServiceListener.setCommandStore(commandStore);
importServiceListener.setBundleContext(bundleContext);
importServiceListener.init();
register(ListenerHook.class, importServiceListener);
LOGGER.debug("CELLAR DOSGI: init export service listener");
exportServiceListener = new ExportServiceListener();
exportServiceListener.setClusterManager(clusterManager);
exportServiceListener.setEventTransportFactory(eventTransportFactory);
exportServiceListener.setBundleContext(bundleContext);
exportServiceListener.init();
LOGGER.debug("CELLAR DOSGI: start removed nodes service tracker");
removedNodeServiceTracker = new RemovedNodeServiceTracker();
removedNodeServiceTracker.setClusterManager(clusterManager);
removedNodeServiceTracker.init();
LOGGER.debug("CELLAR DOSGI: register MBean");
ServiceMBeanImpl mbean = new ServiceMBeanImpl();
mbean.setClusterManager(clusterManager);
props = new Hashtable();
props.put("jmx.objectname", "org.apache.karaf.cellar:type=service,name=" + System.getProperty("karaf.name"));
mbeanRegistration = bundleContext.registerService(getInterfaceNames(mbean), mbean, props);
}