X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Fruntime%2Forg.argeo.eclipse.ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Feclipse%2Fui%2FArgeoUiPlugin.java;h=c0394fff1a7fce2e927c7cd3f334bf4f0de5ef20;hb=c76283038c867fc0ef9eb6fa623040c58c6139bb;hp=1561282b67a4fc679293e7d948daef4f15a6eef2;hpb=92daeb190be66653f39544ae9b5a2f2c31a60797;p=lgpl%2Fargeo-commons.git diff --git a/eclipse/runtime/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/ArgeoUiPlugin.java b/eclipse/runtime/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/ArgeoUiPlugin.java index 1561282b6..c0394fff1 100644 --- a/eclipse/runtime/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/ArgeoUiPlugin.java +++ b/eclipse/runtime/org.argeo.eclipse.ui/src/main/java/org/argeo/eclipse/ui/ArgeoUiPlugin.java @@ -16,75 +16,64 @@ package org.argeo.eclipse.ui; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.eclipse.core.runtime.ILogListener; +import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; /** * The activator class controls the plug-in life cycle */ -public class ArgeoUiPlugin extends AbstractUIPlugin { - - // The plug-in ID +public class ArgeoUiPlugin extends AbstractUIPlugin implements ILogListener { public static final String PLUGIN_ID = "org.argeo.eclipse.ui"; - - private final static String SPRING_OSGI_EXTENDER = "org.springframework.osgi.extender"; - + private final static Log log = LogFactory.getLog(ArgeoUiPlugin.class); // The shared instance private static ArgeoUiPlugin plugin; - private BundleContext bundleContext; - - /** - * The constructor - */ - public ArgeoUiPlugin() { - } - - /* - * (non-Javadoc) - * - * @see - * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext - * ) - */ public void start(BundleContext context) throws Exception { super.start(context); - plugin = this; - bundleContext = context; - - // Make sure that the Spring OSGi extender is started - Bundle osgiExtBundle = Platform.getBundle(SPRING_OSGI_EXTENDER); - if (osgiExtBundle != null) - osgiExtBundle.start(); - else - throw new Exception("Spring OSGi Extender not found"); + // weirdly, the start method is called twice... + if (plugin == null) { + plugin = this; + Platform.addLogListener(this); + log.debug("Eclipse logging now directed to standard logging"); + } } - /* - * (non-Javadoc) - * - * @see - * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext - * ) - */ public void stop(BundleContext context) throws Exception { - plugin = null; - super.stop(context); + try { + // weirdly, the stop method is called twice... + if (plugin != null) { + Platform.removeLogListener(this); + log.debug("Eclipse logging not directed anymore to standard logging"); + plugin = null; + } + } finally { + super.stop(context); + } } - /** - * Returns the shared instance - * - * @return the shared instance - */ + /** Returns the shared instance */ public static ArgeoUiPlugin getDefault() { return plugin; } - public BundleContext getBundleContext() { - return bundleContext; + public void logging(IStatus status, String plugin) { + Log pluginLog = LogFactory.getLog(plugin); + Integer severity = status.getSeverity(); + if (severity == IStatus.ERROR) + pluginLog.error(status.getMessage(), status.getException()); + else if (severity == IStatus.WARNING) + pluginLog.warn(status.getMessage(), status.getException()); + else if (severity == IStatus.INFO) + pluginLog.info(status.getMessage(), status.getException()); + else if (severity == IStatus.CANCEL) + if (pluginLog.isDebugEnabled()) + pluginLog.debug(status.getMessage(), status.getException()); + } }