Community
Participate
Working Groups
Our project is exclusively using the SshdSessionFactory and never using using the DefaultSshSessionFactory and so we were wondering if it would be possible to remove the need for the JCraft dependency. Thank you!
Maybe in a future major release 6.x. I don't think it's possible without breaking API.
I was wondering if we could use ServiceLoader and provides the META-INF property in a separate artifact that would point to DefaultSshSessionFactory thus we could simply exclude this artefact and use one with the Mina ssh factory.
The service property file could even be in jgit core artifact.
My change does this, but yeah minor API break. https://git.eclipse.org/r/156153
My ServiceLoader patch doesn't suit you ?
I mean yeah, but itβd be nice to have the ssh implementation completely decoupled from jgit core by default (as my change also does with bouncycastle).
Ok, I was wondering about retro compatibility. But this level of decoupling is really nice. Thanks a lot
Gerrit change https://git.eclipse.org/r/155782 was merged to [master]. Commit: http://git.eclipse.org/c/jgit/jgit.git/commit/?id=54b1c7cc6a2ba6031b97d8a5c455d93ffd4ce5f5
Using a service loader is one thing, but the maven/bazel/OSGi dependencies are still there. Could they become compile time / test dependencies only? If so: what if jsch is not present and the default instance is attempted to be used? Looks to me that one would get an NPE. Should JGit produce a more meaningful error in this case?
Thomas, I believe it will actually throw a relatively clear ServiceConfigurationError not an NPE. & My change set https://git.eclipse.org/r/156153 completely decouples it from JGit core so its not even a compile depend
New Gerrit change created: https://git.eclipse.org/r/163454
Gerrit change https://git.eclipse.org/r/156153 was merged to [master]. Commit: http://git.eclipse.org/c/jgit/jgit.git/commit/?id=8d2d683655e2de17cf465fa46af10e0e56b3aaed
Gerrit change https://git.eclipse.org/r/163454 was merged to [master]. Commit: http://git.eclipse.org/c/egit/egit.git/commit/?id=165f8231d43ea406a452c894861679e9ab29ac3c