### Eclipse Workspace Patch 1.0 #P org.eclipse.jsch.core Index: META-INF/MANIFEST.MF =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jsch.core/META-INF/MANIFEST.MF,v retrieving revision 1.12 diff -u -r1.12 MANIFEST.MF --- META-INF/MANIFEST.MF 1 Sep 2011 12:38:03 -0000 1.12 +++ META-INF/MANIFEST.MF 8 Feb 2012 04:56:28 -0000 @@ -8,8 +8,10 @@ Bundle-Localization: plugin Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.3.0,4.0.0)", com.jcraft.jsch;bundle-version="[0.1.28,1.0.0)", - org.eclipse.core.net;bundle-version="[1.0.0,2.0.0)" + org.eclipse.core.net;bundle-version="[1.0.0,2.0.0)", + com.jcraft.jsch.agentproxy;bundle-version="0.0.2" Bundle-ActivationPolicy: lazy -Export-Package: org.eclipse.jsch.core, +Export-Package: + org.eclipse.jsch.core, org.eclipse.jsch.internal.core;x-friends:="org.eclipse.jsch.ui" Bundle-RequiredExecutionEnvironment: J2SE-1.4 Index: plugin.xml =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jsch.core/plugin.xml,v retrieving revision 1.5 diff -u -r1.5 plugin.xml --- plugin.xml 13 May 2011 13:16:00 -0000 1.5 +++ plugin.xml 8 Feb 2012 04:56:28 -0000 @@ -12,7 +12,8 @@ --> - + + + + + + + + + + [Enter description of this extension point.] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Enter the first release in which this extension point appears.] + + + + + + + + + [Enter extension point usage example here.] + + + + + + + + + [Enter API information here.] + + + + + + + + + [Enter information about supplied implementation of this extension point.] + + + + + Index: src/org/eclipse/jsch/core/IAgentProxyConnectorFactory.java =================================================================== RCS file: src/org/eclipse/jsch/core/IAgentProxyConnectorFactory.java diff -N src/org/eclipse/jsch/core/IAgentProxyConnectorFactory.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ src/org/eclipse/jsch/core/IAgentProxyConnectorFactory.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,7 @@ +package org.eclipse.jsch.core; + +import com.jcraft.jsch.agentproxy.Connector; + +public interface IAgentProxyConnectorFactory{ + Connector create(); +} Index: src/org/eclipse/jsch/internal/core/IConstants.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jsch.core/src/org/eclipse/jsch/internal/core/IConstants.java,v retrieving revision 1.4 diff -u -r1.4 IConstants.java --- src/org/eclipse/jsch/internal/core/IConstants.java 12 Jan 2011 11:02:58 -0000 1.4 +++ src/org/eclipse/jsch/internal/core/IConstants.java 8 Feb 2012 04:56:29 -0000 @@ -54,4 +54,5 @@ public static final String PREF_PREFERRED_AUTHENTICATION_METHODS="CVSSSH2PreferencePage.PREF_AUTH_METHODS"; //$NON-NLS-1$ public static final String PREF_PREFERRED_AUTHENTICATION_METHODS_ORDER="CVSSSH2PreferencePage.PREF_AUTH_METHODS_ORDER"; //$NON-NLS-1$ + public static final String PREF_PREFERRED_SSHAGENT="CVSSSH2PreferencePage.PREF_SSHAGENT"; //$NON-NLS-1$ } Index: src/org/eclipse/jsch/internal/core/JSchCorePlugin.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jsch.core/src/org/eclipse/jsch/internal/core/JSchCorePlugin.java,v retrieving revision 1.9 diff -u -r1.9 JSchCorePlugin.java --- src/org/eclipse/jsch/internal/core/JSchCorePlugin.java 3 Jun 2008 13:36:04 -0000 1.9 +++ src/org/eclipse/jsch/internal/core/JSchCorePlugin.java 8 Feb 2012 04:56:29 -0000 @@ -12,17 +12,22 @@ package org.eclipse.jsch.internal.core; import java.util.Hashtable; +import java.util.Vector; import org.eclipse.core.net.proxy.IProxyService; import org.eclipse.core.runtime.*; +import org.eclipse.jsch.core.IAgentProxyConnectorFactory; import org.eclipse.jsch.core.IJSchService; import org.eclipse.osgi.util.NLS; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; import org.osgi.util.tracker.ServiceTracker; +import com.jcraft.jsch.IdentityRepository; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.agentproxy.Connector; +import com.jcraft.jsch.agentproxy.RemoteIdentityRepository; public class JSchCorePlugin extends Plugin{ @@ -39,6 +44,8 @@ private String current_pkeys=""; //$NON-NLS-1$ public static final String PT_AUTHENTICATOR="authenticator"; //$NON-NLS-1$ + public static final String PT_IDENTITYREPO="identityrepo"; //$NON-NLS-1$ + public static final String PT_AGENTPROXYCONNECTOR="jschagentproxyconnector"; //$NON-NLS-1$ private static JSchCorePlugin plugin; private ServiceTracker tracker; @@ -100,10 +107,81 @@ } public synchronized JSch getJSch(){ - if(jsch==null) - jsch=new JSch(); + if(jsch==null){ + jsch=new JSch(); + setIdentityRepository(); + } return jsch; } + + public synchronized void setIdentityRepository(){ + Connector[] connectors = getPluggedInAgentProxyConnectors(); + String[] selected = Utils.getSelectedSSHAgent().split(","); //$NON-NLS-1$ + IdentityRepository irepo = null; + for(int i=0; i