Remove dependency with workbench
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 11 Feb 2015 15:25:46 +0000 (15:25 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 11 Feb 2015 15:25:46 +0000 (15:25 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@7786 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.security.ui/bnd.bnd
org.argeo.security.ui/src/org/argeo/security/ui/SecurityUiPlugin.java
org.argeo.security.ui/src/org/argeo/security/ui/dialogs/AbstractLoginDialog.java

index 6dbb1d4e4c51d36d0b3e771821c5141158e6b877..66284b153fac42f3727947886259ec75721c6f18 100644 (file)
@@ -2,15 +2,10 @@ Bundle-SymbolicName: org.argeo.security.ui;singleton:=true
 Bundle-ActivationPolicy: lazy
 Bundle-Activator: org.argeo.security.ui.SecurityUiPlugin
 
-Require-Bundle: org.eclipse.ui;resolution:=optional,\
-                               org.eclipse.core.runtime,\
-                               org.eclipse.rap.ui;resolution:=optional
-
 Import-Package: org.argeo.eclipse.spring,\
-                               org.apache.log4j;resolution:=optional,\
-                               org.eclipse.swt.widgets;version="[0,1.0)",\
-                               org.osgi.framework;version="[1.4,2)",\
-                               *
-                               
-Export-Packages:       !org.argeo.security.ui.internal.*,\
-                                       org.argeo.security.ui.* 
+org.osgi.framework,\
+org.eclipse.swt,\
+org.eclipse.jface.window,\
+org.apache.log4j;resolution:=optional,\
+org.eclipse.ui;resolution:=optional,\
+*
index a19fec17d02cb9ad107e23eaba5768d7f3ccf11e..ad5b3620392a5961a3ff03fd408ef8b851554ff5 100644 (file)
@@ -23,28 +23,16 @@ import javax.security.auth.callback.UnsupportedCallbackException;
 
 import org.argeo.ArgeoException;
 import org.argeo.security.ui.dialogs.DefaultLoginDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceRegistration;
 
 /**
  * The activator class controls the plug-in life cycle
  */
-public class SecurityUiPlugin extends AbstractUIPlugin {
-
-       // The plug-in ID
-       public static final String PLUGIN_ID = "org.argeo.security.ui"; //$NON-NLS-1$
-
-       public final static String CONTEXT_KEYRING = "KEYRING";
-
-       private CallbackHandler defaultCallbackHandler;
-       private ServiceRegistration defaultCallbackHandlerReg;
-
-       private static SecurityUiPlugin plugin;
+public class SecurityUiPlugin implements BundleActivator {
        private static BundleContext bundleContext;
-
        public static InheritableThreadLocal<Display> display = new InheritableThreadLocal<Display>() {
 
                @Override
@@ -53,40 +41,38 @@ public class SecurityUiPlugin extends AbstractUIPlugin {
                }
        };
 
+       // The plug-in ID
+       public final static String PLUGIN_ID = "org.argeo.security.ui"; //$NON-NLS-1$
+
+       public final static String CONTEXT_KEYRING = "KEYRING";
+
+       private CallbackHandler defaultCallbackHandler;
+       private ServiceRegistration<CallbackHandler> defaultCallbackHandlerReg;
+
        public void start(BundleContext context) throws Exception {
-               super.start(context);
-               plugin = this;
+               if (bundleContext != null)
+                       if (!bundleContext.equals(bundleContext))
+                               throw new ArgeoException(
+                                               "Bundle context already set with a different value");
+                       else
+                               return;
+
                bundleContext = context;
 
                defaultCallbackHandler = new DefaultCallbackHandler();
                defaultCallbackHandlerReg = context.registerService(
-                               CallbackHandler.class.getName(), defaultCallbackHandler, null);
+                               CallbackHandler.class, defaultCallbackHandler, null);
        }
 
        public void stop(BundleContext context) throws Exception {
-               plugin = null;
                bundleContext = null;
                defaultCallbackHandlerReg.unregister();
-               super.stop(context);
-       }
-
-       /**
-        * Returns the shared instance
-        * 
-        * @return the shared instance
-        */
-       public static SecurityUiPlugin getDefault() {
-               return plugin;
        }
 
        public static BundleContext getBundleContext() {
                return bundleContext;
        }
 
-       public static ImageDescriptor getImageDescriptor(String path) {
-               return imageDescriptorFromPlugin(PLUGIN_ID, path);
-       }
-
        protected class DefaultCallbackHandler implements CallbackHandler {
                public void handle(final Callback[] callbacks) throws IOException,
                                UnsupportedCallbackException {
index 7c7e0c6b6cb4a0547ef37ed84ea2471ea1e61bb0..a68d50e248b7ef328756bf338f87b584ed6d622c 100644 (file)
@@ -135,7 +135,7 @@ public abstract class AbstractLoginDialog extends TrayDialog implements
                                        // event).
                                        while (!processCallbacks && (modalContextThread != null)
                                                        && (modalContextThread == Thread.currentThread())
-                                                       && SecurityUiPlugin.getDefault() != null) {
+                                                       && SecurityUiPlugin.getBundleContext() != null) {
                                                // Note: SecurityUiPlugin.getDefault() != null is false
                                                // when the OSGi runtime is shut down
                                                try {