X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2FSecurityUiPlugin.java;h=a4190d69a620c89385aaae5107e923badf4a7e35;hb=648a4c267ac50861ce094c8f968c4652706b6cca;hp=a19fec17d02cb9ad107e23eaba5768d7f3ccf11e;hpb=ac0e87610688fb0634ab5528ab170459134e94a2;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 a19fec17d..a4190d69a 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 @@ -22,29 +22,17 @@ import javax.security.auth.callback.CallbackHandler; 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.argeo.security.ui.auth.DefaultLoginDialog; 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 @@ -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$ + + 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 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 {