mirror of
https://github.com/corda/corda.git
synced 2024-12-28 00:38:55 +00:00
Reduce the dependencies of the JMeter project by copying (#118)
one function and listing required explicit dependencies instead of depending on loadtest
This commit is contained in:
parent
08d3361381
commit
4d19a594d6
@ -7,7 +7,16 @@ mainClassName = 'com.r3.corda.jmeter.Launcher'
|
|||||||
dependencies {
|
dependencies {
|
||||||
compile project(':client:rpc')
|
compile project(':client:rpc')
|
||||||
compile project(':finance')
|
compile project(':finance')
|
||||||
compile project(':tools:loadtest')
|
|
||||||
|
// https://mvnrepository.com/artifact/com.jcraft/jsch
|
||||||
|
compile group: 'com.jcraft', name: 'jsch', version: '0.1.54'
|
||||||
|
compile group: 'com.jcraft', name: 'jsch.agentproxy.core', version: '0.0.9'
|
||||||
|
compile group: 'com.jcraft', name: 'jsch.agentproxy.sshagent', version: '0.0.9'
|
||||||
|
compile group: 'com.jcraft', name: 'jsch.agentproxy.usocket-jna', version: '0.0.9'
|
||||||
|
|
||||||
|
// Log4J: logging framework (with SLF4J bindings)
|
||||||
|
compile "org.apache.logging.log4j:log4j-slf4j-impl:$log4j_version"
|
||||||
|
compile "org.apache.logging.log4j:log4j-core:$log4j_version"
|
||||||
|
|
||||||
// JMeter
|
// JMeter
|
||||||
ext.jmVersion = "3.3"
|
ext.jmVersion = "3.3"
|
||||||
|
@ -0,0 +1,58 @@
|
|||||||
|
package com.r3.corda.jmeter
|
||||||
|
|
||||||
|
import com.jcraft.jsch.Buffer
|
||||||
|
import com.jcraft.jsch.Identity
|
||||||
|
import com.jcraft.jsch.IdentityRepository
|
||||||
|
import com.jcraft.jsch.JSch
|
||||||
|
import com.jcraft.jsch.agentproxy.AgentProxy
|
||||||
|
import com.jcraft.jsch.agentproxy.connector.SSHAgentConnector
|
||||||
|
import com.jcraft.jsch.agentproxy.usocket.JNAUSocketFactory
|
||||||
|
import org.slf4j.LoggerFactory
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
private val log = LoggerFactory.getLogger(Ssh::class.java)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new [JSch] instance with identities loaded from the running SSH agent.
|
||||||
|
*/
|
||||||
|
fun setupJSchWithSshAgent(): JSch {
|
||||||
|
val connector = SSHAgentConnector(JNAUSocketFactory())
|
||||||
|
val agentProxy = AgentProxy(connector)
|
||||||
|
val identities = agentProxy.identities
|
||||||
|
require(identities.isNotEmpty()) { "No SSH identities found, please add one to the agent" }
|
||||||
|
require(identities.size == 1) { "Multiple SSH identities found, don't know which one to pick" }
|
||||||
|
val identity = identities[0]
|
||||||
|
log.info("Using SSH identity ${String(identity.comment)}")
|
||||||
|
|
||||||
|
return JSch().apply {
|
||||||
|
identityRepository = object : IdentityRepository {
|
||||||
|
override fun getStatus(): Int {
|
||||||
|
if (connector.isAvailable) {
|
||||||
|
return IdentityRepository.RUNNING
|
||||||
|
} else {
|
||||||
|
return IdentityRepository.UNAVAILABLE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getName() = connector.name
|
||||||
|
override fun getIdentities(): Vector<Identity> = Vector(listOf(
|
||||||
|
object : Identity {
|
||||||
|
override fun clear() {}
|
||||||
|
override fun getAlgName() = String(Buffer(identity.blob).string)
|
||||||
|
override fun getName() = String(identity.comment)
|
||||||
|
override fun isEncrypted() = false
|
||||||
|
override fun getSignature(data: ByteArray?) = agentProxy.sign(identity.blob, data)
|
||||||
|
@Suppress("OverridingDeprecatedMember")
|
||||||
|
override fun decrypt() = true
|
||||||
|
|
||||||
|
override fun getPublicKeyBlob() = identity.blob
|
||||||
|
override fun setPassphrase(passphrase: ByteArray?) = true
|
||||||
|
}
|
||||||
|
))
|
||||||
|
|
||||||
|
override fun remove(blob: ByteArray?) = throw UnsupportedOperationException()
|
||||||
|
override fun removeAll() = throw UnsupportedOperationException()
|
||||||
|
override fun add(bytes: ByteArray?) = throw UnsupportedOperationException()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -3,7 +3,6 @@ package com.r3.corda.jmeter
|
|||||||
import com.jcraft.jsch.JSch
|
import com.jcraft.jsch.JSch
|
||||||
import com.jcraft.jsch.Session
|
import com.jcraft.jsch.Session
|
||||||
import net.corda.core.utilities.NetworkHostAndPort
|
import net.corda.core.utilities.NetworkHostAndPort
|
||||||
import net.corda.loadtest.setupJSchWithSshAgent
|
|
||||||
import net.corda.nodeapi.internal.addShutdownHook
|
import net.corda.nodeapi.internal.addShutdownHook
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import java.io.BufferedReader
|
import java.io.BufferedReader
|
||||||
|
Loading…
Reference in New Issue
Block a user