/** * 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.freeplane.main.osgi.IControllerExtensionProvider; 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<IControllerExtensionProvider> 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$ if(getControllerExtensions() != null) { for(IControllerExtensionProvider provider : getControllerExtensions()) { context.registerService(IControllerExtensionProvider.class.getName(), provider, null); } } context.registerService(DocearService.class.getName(), this, props); } public final DocearBundleInfo getBundleInfo() { return info; } }