jgit/org.eclipse.jgit.test
Thomas Wolf cc000f93a8 Factor out a JSch-independent ssh config parser
Move the bulk of the basic parsing and host entry handling into a
new class OpenSshConfigFile that has no dependencies on any concrete
ssh implementation. Make the existing OpenSshConfig use the new
parser.

Introduce a new class SshConstants collecting all the various ssh-
related string literals. Also use TreeMaps with a case-insensitive
key comparator instead of converting keys to uppercase. Add a test
to verify that keys are matched case-insensitively.

Most of the parsing code was simply moved, except that the new
parser supports looking up entries given host name, port, and user
name, and can thus handle more %-substitutions correctly. This
feature is not yet used and cannot be used with JSch since JSch
only has a ConfigRepository.getConfig(String) interface.

The split is still worth the trouble as it opens the way to using
another ssh client altogether. Apache MINA sshd, for instance,
resolves host entries giving host name, port, and user name.

(Apache MINA has a built-in ssh config handling, but that has
problems, too: its pattern matching is case-insensitive, and its
merging of host entries if several match is not the same as in
OpenSsh. But with this refactoring, it will be possible to plug in
OpenSshConfigFile into an Apache MINA sshd  client without dragging
along JSch.)

One test case that doesn't make sense anymore has been removed. It
tested that repeatedly querying for a host entry returned the same
object. That is no longer true since the caching has been moved to
a deeper level.

Bug: 520927
Change-Id: I6381d52b29099595e6eaf8b05c786aeeaefbf9cc
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
2018-11-06 13:17:22 +01:00
..
.settings Disable Eclipse warning about unrecognized @SuppressWarnings value 2018-10-17 10:40:36 +09:00
META-INF Ssh tests with an Apache MINA sshd test git server 2018-11-06 13:17:21 +01:00
exttst/org/eclipse/jgit Deprecate Constants.CHARSET in favor of StandardCharsets.UTF_8 2018-09-04 10:53:10 +09:00
src/org/eclipse/jgit refactor: simplify collection.toArray() 2018-08-23 01:34:39 -04:00
tst/org/eclipse/jgit Factor out a JSch-independent ssh config parser 2018-11-06 13:17:22 +01:00
tst-rsrc Ssh tests with an Apache MINA sshd test git server 2018-11-06 13:17:21 +01:00
.classpath Fix test setup for Eclipse Photon and greater 2018-11-02 18:50:26 +01:00
.gitignore Fix test setup for Eclipse Photon and greater 2018-11-02 18:50:26 +01:00
.project Remove references to org.eclipse.jgit.java7 2016-08-05 11:22:27 +09:00
BUILD Ssh tests with an Apache MINA sshd test git server 2018-11-06 13:17:21 +01:00
build.properties Fix test setup for Eclipse Photon and greater 2018-11-02 18:50:26 +01:00
org.eclipse.jgit.core--All-Tests (Java 8) (de).launch Fixed few locale dependent pgm tests 2016-01-02 17:41:58 +01:00
org.eclipse.jgit.core--All-Tests (Java 8).launch Fix classpath of test launch configurations 2015-11-21 00:33:43 +01:00
org.eclipse.jgit.core--All-Tests.launch Use JUnit4 for tests 2010-08-26 12:26:38 -05:00
org.eclipse.jgit.test-WalkEncryptionTest-Proxy.launch Adding AES Walk Encryption support in http://www.jets3t.org/ mode 2015-10-18 19:14:31 +00:00
org.eclipse.jgit.test-WalkEncryptionTest.launch Adding AES Walk Encryption support in http://www.jets3t.org/ mode 2015-10-18 19:14:31 +00:00
plugin.properties Fix plugin provider names to conform with release train requirement 2013-04-08 23:05:36 +02:00
pom.xml Ssh tests with an Apache MINA sshd test git server 2018-11-06 13:17:21 +01:00
tests.bzl Ssh tests with an Apache MINA sshd test git server 2018-11-06 13:17:21 +01:00