diff options
author | Michael Valenta | 2007-02-26 21:10:55 +0000 |
---|---|---|
committer | Michael Valenta | 2007-02-26 21:10:55 +0000 |
commit | 19c97c675f766f6c1dec750b1273a9c8fb64d199 (patch) | |
tree | becb071902a8d4fefa761d013273db555f508b8a /bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch | |
parent | b4acd6d98dd374a7fee15266220c364d04401836 (diff) | |
download | eclipse.platform.team-19c97c675f766f6c1dec750b1273a9c8fb64d199.tar.gz eclipse.platform.team-19c97c675f766f6c1dec750b1273a9c8fb64d199.tar.xz eclipse.platform.team-19c97c675f766f6c1dec750b1273a9c8fb64d199.zip |
Made JSch an OSGi service
Diffstat (limited to 'bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch')
5 files changed, 29 insertions, 4 deletions
diff --git a/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/JSchUIPlugin.java b/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/JSchUIPlugin.java index 4865d38b1..7ca8a2b82 100644 --- a/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/JSchUIPlugin.java +++ b/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/JSchUIPlugin.java @@ -17,8 +17,10 @@ import java.util.Hashtable; import org.eclipse.core.runtime.*; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jsch.core.IJSchService; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; +import org.osgi.util.tracker.ServiceTracker; public class JSchUIPlugin extends AbstractUIPlugin{ public static final String ID="org.eclipse.jsch.ui"; //$NON-NLS-1$ @@ -29,6 +31,7 @@ public class JSchUIPlugin extends AbstractUIPlugin{ * The singleton plug-in instance */ private static JSchUIPlugin plugin; + private ServiceTracker tracker; public JSchUIPlugin(){ super(); @@ -155,7 +158,19 @@ public class JSchUIPlugin extends AbstractUIPlugin{ store.setValue(IUIConstants.PREF_FIRST_STARTUP, false); } + tracker = new ServiceTracker(getBundle().getBundleContext(),IJSchService.class.getName(), null); + tracker.open(); } + + public void stop(BundleContext context) throws Exception{ + super.stop(context); + tracker.close(); + } + + public IJSchService getJSchService() { + return (IJSchService)tracker.getService(); + } + public URL getImageUrl(String relative){ return FileLocator.find(Platform.getBundle(ID), new Path(IUIConstants.ICON_PATH + relative), null); diff --git a/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/Messages.java b/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/Messages.java index 54594ee37..b7fe25182 100644 --- a/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/Messages.java +++ b/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/Messages.java @@ -90,6 +90,8 @@ public class Messages extends NLS{ public static String KeyboardInteractiveDialog_4; public static String KeyboardInteractiveDialog_5; public static String KeyboardInteractiveDialog_6; + public static String PreferencePage_0; + public static String PreferencePage_1; public static String UserInfoPrompter_0; public static String UserInfoPrompter_1; public static String UserValidationDialog_0; diff --git a/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/messages.properties b/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/messages.properties index a4035b36b..91195b4ab 100644 --- a/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/messages.properties +++ b/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/messages.properties @@ -88,3 +88,5 @@ UserValidationDialog_2=&Save password UserValidationDialog_3=Saved passwords are stored on your computer in a file that is difficult, but not impossible, for an intruder to read. UserValidationDialog_4=&Password: UserValidationDialog_5=&User name: +PreferencePage_0=SSH2 Service not available +PreferencePage_1=The SSH2 service is not available. diff --git a/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/preference/PreferencePage.java b/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/preference/PreferencePage.java index f515233db..3933b4a43 100644 --- a/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/preference/PreferencePage.java +++ b/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/internal/ui/preference/PreferencePage.java @@ -18,8 +18,9 @@ import org.eclipse.core.runtime.*; import org.eclipse.jface.dialogs.*; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.viewers.*; -import org.eclipse.jsch.core.JSchProvider; +import org.eclipse.jsch.core.IJSchService; import org.eclipse.jsch.internal.core.*; +import org.eclipse.jsch.internal.ui.JSchUIPlugin; import org.eclipse.jsch.internal.ui.Messages; import org.eclipse.jsch.ui.UserInfoPrompter; import org.eclipse.osgi.util.NLS; @@ -867,11 +868,16 @@ public class PreferencePage extends org.eclipse.jface.preference.PreferencePage */ int timeout = 60000; - Session session = JSchProvider.createSession(host, port, user); + IJSchService service = JSchUIPlugin.getPlugin().getJSchService(); + if (service == null) { + MessageDialog.openInformation(getShell(), Messages.PreferencePage_0, Messages.PreferencePage_1); + return; + } + Session session = service.createSession(host, port, user); new UserInfoPrompter(session); session.setTimeout(timeout); try { - JSchProvider.connect(session, timeout, new NullProgressMonitor()); + service.connect(session, timeout, new NullProgressMonitor()); if(session.getServerVersion().indexOf("OpenSSH")==-1){ //$NON-NLS-1$ setErrorMessage(Messages.CVSSSH2PreferencePage_110); return; diff --git a/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/ui/UserInfoPrompter.java b/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/ui/UserInfoPrompter.java index 495039568..ad0fa0308 100644 --- a/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/ui/UserInfoPrompter.java +++ b/bundles/org.eclipse.jsch.ui/src/org/eclipse/jsch/ui/UserInfoPrompter.java @@ -13,7 +13,7 @@ package org.eclipse.jsch.ui; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jsch.core.JSchProvider; +import org.eclipse.jsch.internal.core.JSchProvider; import org.eclipse.jsch.internal.ui.*; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; |