X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2FSecurityUiPlugin.java;h=ad5b3620392a5961a3ff03fd408ef8b851554ff5;hb=2e34c25dd08484f2dcb05c45e7ebe2a711035093;hp=03584185bf06ad73193068ec1b2d717543262459;hpb=d33e8191813f561cee96fbbbd3f74737070140d0;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui/src/org/argeo/security/ui/SecurityUiPlugin.java b/org.argeo.security.ui/src/org/argeo/security/ui/SecurityUiPlugin.java index 03584185b..ad5b36203 100644 --- a/org.argeo.security.ui/src/org/argeo/security/ui/SecurityUiPlugin.java +++ b/org.argeo.security.ui/src/org/argeo/security/ui/SecurityUiPlugin.java @@ -23,27 +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 = new InheritableThreadLocal() { @Override @@ -52,32 +41,36 @@ 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 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 ImageDescriptor getImageDescriptor(String path) { - return imageDescriptorFromPlugin(PLUGIN_ID, path); + public static BundleContext getBundleContext() { + return bundleContext; } protected class DefaultCallbackHandler implements CallbackHandler {