package org.freeplane.plugin.bugreport; import java.util.logging.Logger; import org.freeplane.features.mode.Controller; import org.freeplane.main.osgi.IControllerExtensionProvider; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class Activator implements BundleActivator { private ReportGenerator handler; private Logger parentLogger; /* * (non-Javadoc) * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) */ public void start(final BundleContext context) throws Exception { parentLogger = Logger.getAnonymousLogger().getParent(); handler = new ReportGenerator(); parentLogger.addHandler(handler); context.registerService(IControllerExtensionProvider.class.getName(), new IControllerExtensionProvider() { public void installExtension(Controller controller) { handler.setBugReportListener(new ManualBugReporter()); } }, null); } /* * (non-Javadoc) * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) */ public void stop(final BundleContext context) throws Exception { parentLogger.removeHandler(handler); } }