diff --git a/pom.xml b/pom.xml index 04a2019..adb1bb2 100644 --- a/pom.xml +++ b/pom.xml @@ -86,6 +86,21 @@ org.eclipse.jgit.http.apache ${dependency.jgit.revision} + + org.eclipse.jgit + org.eclipse.jgit.ssh.apache + ${dependency.jgit.revision} + + + org.apache.sshd + sshd-core + 2.2.0 + + + org.apache.sshd + sshd-common + 2.2.0 + org.tigris.svnclientadapter adapter-base @@ -139,7 +154,7 @@ 7.1.0.0-12 7.1.0.0-12 - 4.11.9.201909030838-r + 5.4.3.201909031940-r diff --git a/src/main/java/org/pentaho/di/git/spoon/model/UIGit.java b/src/main/java/org/pentaho/di/git/spoon/model/UIGit.java index 0dfc1dc..2cfdb2d 100644 --- a/src/main/java/org/pentaho/di/git/spoon/model/UIGit.java +++ b/src/main/java/org/pentaho/di/git/spoon/model/UIGit.java @@ -86,9 +86,13 @@ import org.eclipse.jgit.transport.RefSpec; import org.eclipse.jgit.transport.RemoteConfig; import org.eclipse.jgit.transport.RemoteRefUpdate; +import org.eclipse.jgit.transport.SshSessionFactory; import org.eclipse.jgit.transport.URIish; import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider; import org.eclipse.jgit.transport.http.apache.HttpClientConnectionFactory; +import org.eclipse.jgit.transport.sshd.DefaultProxyDataFactory; +import org.eclipse.jgit.transport.sshd.JGitKeyCache; +import org.eclipse.jgit.transport.sshd.SshdSessionFactory; import org.eclipse.jgit.treewalk.AbstractTreeIterator; import org.eclipse.jgit.treewalk.CanonicalTreeParser; import org.eclipse.jgit.treewalk.EmptyTreeIterator; @@ -121,6 +125,13 @@ public class UIGit extends VCS implements IVCS { * See here https://bugs.eclipse.org/bugs/show_bug.cgi?id=296201 for more details. */ HttpTransport.setConnectionFactory( new HttpClientConnectionFactory() ); + + /** + * Use Apache MINA sshd instead of JSch. + */ + SshdSessionFactory factory = new SshdSessionFactory(); + Runtime.getRuntime().addShutdownHook(new Thread(() -> factory.close())); + SshSessionFactory.setInstance(factory); } private Git git;