From 2e34c25dd08484f2dcb05c45e7ebe2a711035093 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 11 Feb 2015 15:25:46 +0000 Subject: [PATCH] Remove dependency with workbench git-svn-id: https://svn.argeo.org/commons/trunk@7786 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- org.argeo.security.ui/bnd.bnd | 17 +++---- .../argeo/security/ui/SecurityUiPlugin.java | 50 +++++++------------ .../ui/dialogs/AbstractLoginDialog.java | 2 +- 3 files changed, 25 insertions(+), 44 deletions(-) diff --git a/org.argeo.security.ui/bnd.bnd b/org.argeo.security.ui/bnd.bnd index 6dbb1d4e4..66284b153 100644 --- a/org.argeo.security.ui/bnd.bnd +++ b/org.argeo.security.ui/bnd.bnd @@ -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,\ +* 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..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,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 = 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$ + + 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 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 { diff --git a/org.argeo.security.ui/src/org/argeo/security/ui/dialogs/AbstractLoginDialog.java b/org.argeo.security.ui/src/org/argeo/security/ui/dialogs/AbstractLoginDialog.java index 7c7e0c6b6..a68d50e24 100644 --- a/org.argeo.security.ui/src/org/argeo/security/ui/dialogs/AbstractLoginDialog.java +++ b/org.argeo.security.ui/src/org/argeo/security/ui/dialogs/AbstractLoginDialog.java @@ -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 { -- 2.30.2