/** * author: Marcel Genzmehr * 19.10.2011 */ package org.docear.plugin.core; import java.util.Collection; import java.util.Hashtable; import org.freeplane.features.mode.ModeController; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; /** * */ public abstract class DocearService implements BundleActivator { public final static String DEPENDS_ON = "org.docear.plugin.core"; private DocearBundleInfo info; public abstract void startService(BundleContext context, ModeController modeController); protected abstract Collection<IDocearControllerExtension> getControllerExtensions(); public final void start(BundleContext context) throws Exception { this.info = new DocearBundleInfo(context); final Hashtable<String, String[]> props = new Hashtable<String, String[]>(); props.put("dependsOn", new String[] { DEPENDS_ON }); //$NON-NLS-1$ Collection<IDocearControllerExtension> extensions = getControllerExtensions(); if(extensions != null) { for(IDocearControllerExtension provider : extensions) { context.registerService(IDocearControllerExtension.class.getName(), provider, props); } } context.registerService(DocearService.class.getName(), this, props); } public final DocearBundleInfo getBundleInfo() { return info; } }