private boolean setupJSchIdentityRepository (JSch jsch, String identityFile, boolean preferAgent) throws JSchException { boolean agentUsed = false; if (preferAgent) { Connector con = ConnectorFactory.getInstance().createConnector(ConnectorFactory.ConnectorKind.ANY); if (con != null) { IdentityRepository irepo = new IdentityRepositoryImpl(con); if (irepo.getStatus() == IdentityRepository.RUNNING) { jsch.setIdentityRepository(irepo); agentUsed = true; } } } if (!agentUsed) { jsch.setIdentityRepository(null); // remove all identity files jsch.removeAllIdentity(); // and add the one specified by CredentialsProvider jsch.addIdentity(identityFile); } return agentUsed; }
@Override public int getStatus () { return connector.isAvailable() && proxy.isRunning() ? IdentityRepository.RUNNING : IdentityRepository.UNAVAILABLE; }