-
Notifications
You must be signed in to change notification settings - Fork 140
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
Outdated
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:
Connection
interface 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
)ConnectionImpl
class using Apache Mina SSHD library to provide concrete functionality for theConnection
interface, including authentication, session management, and file transfer via SCP. (src/main/java/io/jenkins/plugins/sshbuildagents/ssh/mina/ConnectionImpl.java
)ShellChannel
interface 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.xml
to include new dependencies (eddsa-api
,mina-sshd-api-common
,mina-sshd-api-core
,mina-sshd-api-scp
) and added exclusions fortrilead-api
in specific dependencies to improve compatibility and functionality. (pom.xml
)Code Style and Build Configuration:
.editorconfig
to include Java-specific settings such asindent_style
,indent_size
, andcharset
. (.editorconfig
)Jenkinsfile
to use JDK 21 for Windows builds, ensuring consistency across platforms. (Jenkinsfile
)Submitter checklist
JENKINS-64106