Use ServiceLoader to define the default SSH session factory.
Use ServiceLoader and define org.eclipse.jgit.transport.DefaultSshSessionFactory in META-INF/services/org.eclipse.jgit.transport.SshSessionFactory so that the legacy behavior is still the same. Bug: 553625 Change-Id: Id1a65506140d921ed76d83699e3817f0d2ca08ed Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com> Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
8fa3594565
commit
54b1c7cc6a
|
@ -0,0 +1 @@
|
|||
org.eclipse.jgit.transport.DefaultSshSessionFactory
|
|
@ -24,8 +24,10 @@
|
|||
* <p>
|
||||
* If user interactivity is required by SSH (e.g. to obtain a password), the
|
||||
* connection will immediately fail.
|
||||
*
|
||||
* @since 5.7
|
||||
*/
|
||||
class DefaultSshSessionFactory extends JschConfigSessionFactory {
|
||||
public class DefaultSshSessionFactory extends JschConfigSessionFactory {
|
||||
/** {@inheritDoc} */
|
||||
@Override
|
||||
protected void configure(OpenSshConfig.Host hc, Session session) {
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.util.Iterator;
|
||||
import java.util.ServiceLoader;
|
||||
|
||||
import org.eclipse.jgit.errors.TransportException;
|
||||
import org.eclipse.jgit.lib.Constants;
|
||||
|
@ -31,8 +33,16 @@
|
|||
* SshSessionFactory for the duration of the period they are using the Session.
|
||||
*/
|
||||
public abstract class SshSessionFactory {
|
||||
private static SshSessionFactory INSTANCE = new DefaultSshSessionFactory();
|
||||
private static SshSessionFactory INSTANCE = loadSshSessionFactory();
|
||||
|
||||
private static SshSessionFactory loadSshSessionFactory() {
|
||||
ServiceLoader<SshSessionFactory> loader = ServiceLoader.load(SshSessionFactory.class);
|
||||
Iterator<SshSessionFactory> iter = loader.iterator();
|
||||
if(iter.hasNext()) {
|
||||
return iter.next();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* Get the currently configured JVM-wide factory.
|
||||
* <p>
|
||||
|
|
Loading…
Reference in New Issue