The git credentials binding project in Google Summer of Code is making progress on private key support. Private keys are working on Windows with investigation exploring non-Windows environments.
The
pull request includes a reference to the sshd-core library from the Apache Mina project. That reference allows the plugin to read and write private key files, including passphrase protected private key files. However, that reference also causes
two unrelated automated tests to fail with the message:
java.lang.ClassNotFoundException: org.jenkinsci.main.modules.sshd.SshCommandFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
Caused: java.lang.NoClassDefFoundError: org/jenkinsci/main/modules/sshd/SshCommandFactory
at java.lang.ClassLoader.defineClass1(Native Method)
The Apache Mina classes are referenced through their
shaded location as provided by the sshd plugin. That works at runtime (at least on Windows), but causes these test failures.
Any guidance on the preferred approach to use a library (sshd-core) that is part of a plugin (sshd) that was previously part of Jenkins core?
Mark Waite