Load JCR CND files with OSGi bundle context
[lgpl/argeo-commons.git] / eclipse / runtime / org.argeo.eclipse.ui / src / main / java / org / argeo / eclipse / ui / ArgeoUiPlugin.java
index 73fef7812c5ef1fceb5849014a1494daf89eba5a..c0394fff1a7fce2e927c7cd3f334bf4f0de5ef20 100644 (file)
@@ -22,84 +22,45 @@ 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 implements ILogListener {
-
-       // The plug-in ID
        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;
-
-               Platform.addLogListener(this);
-               log.debug("Eclipse logging now directed to standard logging");
-
-               // Make sure that the Spring OSGi extender is started
-               Bundle osgiExtBundle = Platform.getBundle(SPRING_OSGI_EXTENDER);
-               if (osgiExtBundle != null)
-                       osgiExtBundle.start();
-               else
-                       log.error("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 {
-               Platform.removeLogListener(this);
-               log.debug("Eclipse logging not directed anymore to standard logging");
-
-               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();