-
Notifications
You must be signed in to change notification settings - Fork 141
feat: new launcher using Apache Mina sshd library #570
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
db78481 to
beb4353
Compare
beb4353 to
38a02a4
Compare
|
Not sure about the CI errors, 106 test run, and there is no failures. It fails when it try to make the Surefire report |
|
Are any tests attempting to write to stdout/stderr (not using |
|
I do not remember any, but I will review it. |
|
Jesse was right; the cause was a bunch of outputs to |
0b2fcc4 to
df049bb
Compare
|
This is the initial implementation; it lacks host key verifications and other features the current launcher has. These features will be added in follow-up PRs. |
|
Did you mean to update the PR title? |
71669ee to
3568ca0
Compare
51f0388 to
d90eff3
Compare
Maybe changing the PR title as well?
Not sure you got my point. I mean I'm not sure there is need for an interface Connection and ConnectionImpl and especially make this a public API because at the end of day there will be only a single implementation. Why not simply make a single class MinaConnection package private so it will not be seen as a public API to maintain. same for other new interfaces.
|
src/main/java/io/jenkins/plugins/sshbuildagents/ssh/mina/ConnectionImpl.java
Show resolved
Hide resolved
src/main/java/io/jenkins/plugins/sshbuildagents/ssh/mina/ConnectionImpl.java
Show resolved
Hide resolved
src/main/java/io/jenkins/plugins/sshbuildagents/ssh/mina/ConnectionImpl.java
Show resolved
Hide resolved
src/main/java/io/jenkins/plugins/sshbuildagents/ssh/mina/KeyAlgorithmManagerImpl.java
Show resolved
Hide resolved
src/main/java/io/jenkins/plugins/sshbuildagents/ssh/Connection.java
Outdated
Show resolved
Hide resolved
src/main/java/io/jenkins/plugins/sshbuildagents/ssh/Connection.java
Outdated
Show resolved
Hide resolved
src/main/java/io/jenkins/plugins/sshbuildagents/ssh/Connection.java
Outdated
Show resolved
Hide resolved
src/test/java/io/jenkins/plugins/sshbuildagents/ssh/ConnectionImplTest.java
Outdated
Show resolved
Hide resolved
src/test/java/io/jenkins/plugins/sshbuildagents/ssh/ConnectionImplTest.java
Outdated
Show resolved
Hide resolved
src/test/java/io/jenkins/plugins/sshbuildagents/ssh/agents/AgentRSA512ConnectionTest.java
Show resolved
Hide resolved
src/test/java/io/jenkins/plugins/sshbuildagents/ssh/agents/AgentConnectionBaseTest.java
Show resolved
Hide resolved
src/test/java/io/jenkins/plugins/sshbuildagents/ssh/agents/ClientRSA512ConnectionTest.java
Show resolved
Hide resolved
src/main/java/io/jenkins/plugins/sshbuildagents/ssh/mina/SSHApacheMinaLauncher.java
Show resolved
Hide resolved
src/test/java/io/jenkins/plugins/sshbuildagents/ssh/agents/AgentConnectionBaseTest.java
Outdated
Show resolved
Hide resolved
Co-authored-by: James Nord <[email protected]>
This pull request introduces several enhancements and new features related to SSH connection management. It implements a brand new launcher base in Apache Mina SSH library.
This new launcher is in the early stages of development and is not yet fully functional, but it lays the groundwork for future improvements.
SSH Connection Management:
Connectioninterface to define methods for managing SSH connections, including executing commands, copying files, and setting various connection parameters. (src/main/java/io/jenkins/plugins/sshbuildagents/ssh/Connection.java)ConnectionImplclass using Apache Mina SSHD library to provide concrete functionality for theConnectioninterface, including authentication, session management, and file transfer via SCP. (src/main/java/io/jenkins/plugins/sshbuildagents/ssh/mina/ConnectionImpl.java)ShellChannelinterface for managing non-interactive SSH sessions, facilitating command execution and I/O stream handling. (src/main/java/io/jenkins/plugins/sshbuildagents/ssh/ShellChannel.java)Dependency Management:
pom.xmlto include new dependencies (eddsa-api,mina-sshd-api-common,mina-sshd-api-core,mina-sshd-api-scp) and added exclusions fortrilead-apiin specific dependencies to improve compatibility and functionality. (pom.xml)Code Style and Build Configuration:
.editorconfigto include Java-specific settings such asindent_style,indent_size, andcharset. (.editorconfig)Jenkinsfileto use JDK 21 for Windows builds, ensuring consistency across platforms. (Jenkinsfile)Submitter checklist
JENKINS-64106