mirror of
https://github.com/corda/corda.git
synced 2025-01-19 03:06:36 +00:00
Fixed compilation error for case-insensitive operating systems. (#3896)
This commit is contained in:
parent
f2784197c7
commit
2fbeab1365
@ -11,7 +11,7 @@ import net.corda.core.messaging.ClientRpcSslOptions
|
|||||||
import net.corda.core.utilities.days
|
import net.corda.core.utilities.days
|
||||||
import net.corda.core.utilities.minutes
|
import net.corda.core.utilities.minutes
|
||||||
import net.corda.core.utilities.seconds
|
import net.corda.core.utilities.seconds
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.rpcConnectorTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport.Companion.rpcConnectorTcpTransport
|
||||||
import net.corda.serialization.internal.AMQP_RPC_CLIENT_CONTEXT
|
import net.corda.serialization.internal.AMQP_RPC_CLIENT_CONTEXT
|
||||||
import java.time.Duration
|
import java.time.Duration
|
||||||
|
|
||||||
|
@ -16,9 +16,9 @@ import net.corda.core.serialization.internal.nodeSerializationEnv
|
|||||||
import net.corda.core.utilities.NetworkHostAndPort
|
import net.corda.core.utilities.NetworkHostAndPort
|
||||||
import net.corda.core.utilities.contextLogger
|
import net.corda.core.utilities.contextLogger
|
||||||
import net.corda.nodeapi.RPCApi
|
import net.corda.nodeapi.RPCApi
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.rpcConnectorTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport.Companion.rpcConnectorTcpTransport
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.rpcConnectorTcpTransportsFromList
|
import net.corda.nodeapi.internal.ArtemisTcpTransport.Companion.rpcConnectorTcpTransportsFromList
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.rpcInternalClientTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport.Companion.rpcInternalClientTcpTransport
|
||||||
import net.corda.nodeapi.internal.config.SslConfiguration
|
import net.corda.nodeapi.internal.config.SslConfiguration
|
||||||
import org.apache.activemq.artemis.api.core.SimpleString
|
import org.apache.activemq.artemis.api.core.SimpleString
|
||||||
import org.apache.activemq.artemis.api.core.TransportConfiguration
|
import org.apache.activemq.artemis.api.core.TransportConfiguration
|
||||||
|
@ -1,105 +0,0 @@
|
|||||||
package net.corda.nodeapi
|
|
||||||
|
|
||||||
import net.corda.core.messaging.ClientRpcSslOptions
|
|
||||||
import net.corda.core.utilities.NetworkHostAndPort
|
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport
|
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.acceptorFactoryClassName
|
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.connectorFactoryClassName
|
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.defaultArtemisOptions
|
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.defaultSSLOptions
|
|
||||||
import net.corda.nodeapi.internal.config.SSLConfiguration
|
|
||||||
import net.corda.nodeapi.internal.config.SslConfiguration
|
|
||||||
import net.corda.nodeapi.internal.requireOnDefaultFileSystem
|
|
||||||
import org.apache.activemq.artemis.api.core.TransportConfiguration
|
|
||||||
import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants
|
|
||||||
import java.nio.file.Path
|
|
||||||
|
|
||||||
/** Class to set Artemis TCP configuration options. */
|
|
||||||
class ArtemisTcpTransport {
|
|
||||||
companion object {
|
|
||||||
/**
|
|
||||||
* Corda supported TLS schemes.
|
|
||||||
* <p><ul>
|
|
||||||
* <li>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
|
|
||||||
* <li>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
|
|
||||||
* <li>TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
|
|
||||||
* </ul></p>
|
|
||||||
* As shown above, current version restricts enabled TLS cipher suites to:
|
|
||||||
* AES128 using Galois/Counter Mode (GCM) for the block cipher being used to encrypt the message stream.
|
|
||||||
* SHA256 as message authentication algorithm.
|
|
||||||
* Ephemeral Diffie Hellman key exchange for advanced forward secrecy. ECDHE is preferred, but DHE is also
|
|
||||||
* supported in case one wants to completely avoid the use of ECC for TLS.
|
|
||||||
* ECDSA and RSA for digital signatures. Our self-generated certificates all use ECDSA for handshakes,
|
|
||||||
* but we allow classical RSA certificates to work in case one uses external tools or cloud providers or HSMs
|
|
||||||
* that do not support ECC certificates.
|
|
||||||
*/
|
|
||||||
val CIPHER_SUITES = listOf(
|
|
||||||
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
|
|
||||||
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
|
|
||||||
"TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"
|
|
||||||
)
|
|
||||||
|
|
||||||
/** Supported TLS versions, currently TLSv1.2 only. */
|
|
||||||
val TLS_VERSIONS = listOf("TLSv1.2")
|
|
||||||
|
|
||||||
private fun SSLConfiguration.toTransportOptions() = mapOf(
|
|
||||||
TransportConstants.SSL_ENABLED_PROP_NAME to true,
|
|
||||||
TransportConstants.KEYSTORE_PROVIDER_PROP_NAME to "JKS",
|
|
||||||
TransportConstants.KEYSTORE_PATH_PROP_NAME to sslKeystore,
|
|
||||||
TransportConstants.KEYSTORE_PASSWORD_PROP_NAME to keyStorePassword,
|
|
||||||
TransportConstants.TRUSTSTORE_PROVIDER_PROP_NAME to "JKS",
|
|
||||||
TransportConstants.TRUSTSTORE_PATH_PROP_NAME to trustStoreFile,
|
|
||||||
TransportConstants.TRUSTSTORE_PASSWORD_PROP_NAME to trustStorePassword,
|
|
||||||
TransportConstants.NEED_CLIENT_AUTH_PROP_NAME to true)
|
|
||||||
|
|
||||||
fun p2pAcceptorTcpTransport(hostAndPort: NetworkHostAndPort, config: SSLConfiguration?, enableSSL: Boolean = true): TransportConfiguration {
|
|
||||||
val options = defaultArtemisOptions(hostAndPort).toMutableMap()
|
|
||||||
|
|
||||||
if (config != null && enableSSL) {
|
|
||||||
config.sslKeystore.requireOnDefaultFileSystem()
|
|
||||||
config.trustStoreFile.requireOnDefaultFileSystem()
|
|
||||||
options.putAll(defaultSSLOptions)
|
|
||||||
options.putAll(config.toTransportOptions())
|
|
||||||
}
|
|
||||||
return TransportConfiguration(acceptorFactoryClassName, options)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun p2pConnectorTcpTransport(hostAndPort: NetworkHostAndPort, config: SSLConfiguration?, enableSSL: Boolean = true): TransportConfiguration {
|
|
||||||
val options = defaultArtemisOptions(hostAndPort).toMutableMap()
|
|
||||||
|
|
||||||
if (config != null && enableSSL) {
|
|
||||||
config.sslKeystore.requireOnDefaultFileSystem()
|
|
||||||
config.trustStoreFile.requireOnDefaultFileSystem()
|
|
||||||
options.putAll(defaultSSLOptions)
|
|
||||||
options.putAll(config.toTransportOptions())
|
|
||||||
}
|
|
||||||
return TransportConfiguration(connectorFactoryClassName, options)
|
|
||||||
}
|
|
||||||
|
|
||||||
/** [TransportConfiguration] for RPC TCP communication - server side. */
|
|
||||||
fun rpcAcceptorTcpTransport(hostAndPort: NetworkHostAndPort, config: BrokerRpcSslOptions?, enableSSL: Boolean = true): TransportConfiguration {
|
|
||||||
return InternalArtemisTcpTransport.rpcAcceptorTcpTransport(hostAndPort, config, enableSSL)
|
|
||||||
}
|
|
||||||
|
|
||||||
/** [TransportConfiguration] for RPC TCP communication
|
|
||||||
* This is the Transport that connects the client JVM to the broker. */
|
|
||||||
fun rpcConnectorTcpTransport(hostAndPort: NetworkHostAndPort, config: ClientRpcSslOptions?, enableSSL: Boolean = true): TransportConfiguration {
|
|
||||||
return InternalArtemisTcpTransport.rpcConnectorTcpTransport(hostAndPort, config, enableSSL)
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Create as list of [TransportConfiguration]. **/
|
|
||||||
fun rpcConnectorTcpTransportsFromList(hostAndPortList: List<NetworkHostAndPort>, config: ClientRpcSslOptions?, enableSSL: Boolean = true): List<TransportConfiguration> = hostAndPortList.map {
|
|
||||||
rpcConnectorTcpTransport(it, config, enableSSL)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun rpcInternalClientTcpTransport(hostAndPort: NetworkHostAndPort, config: SslConfiguration): TransportConfiguration {
|
|
||||||
return InternalArtemisTcpTransport.rpcInternalClientTcpTransport(hostAndPort, config)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun rpcInternalAcceptorTcpTransport(hostAndPort: NetworkHostAndPort, config: SslConfiguration): TransportConfiguration {
|
|
||||||
return InternalArtemisTcpTransport.rpcInternalAcceptorTcpTransport(hostAndPort, config)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
data class BrokerRpcSslOptions(val keyStorePath: Path, val keyStorePassword: String)
|
|
@ -0,0 +1,5 @@
|
|||||||
|
package net.corda.nodeapi
|
||||||
|
|
||||||
|
import java.nio.file.Path
|
||||||
|
|
||||||
|
data class BrokerRpcSslOptions(val keyStorePath: Path, val keyStorePassword: String)
|
@ -33,7 +33,7 @@ class ArtemisMessagingClient(private val config: MutualSslConfiguration,
|
|||||||
check(started == null) { "start can't be called twice" }
|
check(started == null) { "start can't be called twice" }
|
||||||
log.info("Connecting to message broker: $serverAddress")
|
log.info("Connecting to message broker: $serverAddress")
|
||||||
// TODO Add broker CN to config for host verification in case the embedded broker isn't used
|
// TODO Add broker CN to config for host verification in case the embedded broker isn't used
|
||||||
val tcpTransport = InternalArtemisTcpTransport.p2pConnectorTcpTransport(serverAddress, config)
|
val tcpTransport = ArtemisTcpTransport.p2pConnectorTcpTransport(serverAddress, config)
|
||||||
val locator = ActiveMQClient.createServerLocatorWithoutHA(tcpTransport).apply {
|
val locator = ActiveMQClient.createServerLocatorWithoutHA(tcpTransport).apply {
|
||||||
// Never time out on our loopback Artemis connections. If we switch back to using the InVM transport this
|
// Never time out on our loopback Artemis connections. If we switch back to using the InVM transport this
|
||||||
// would be the default and the two lines below can be deleted.
|
// would be the default and the two lines below can be deleted.
|
||||||
|
@ -14,7 +14,7 @@ import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants
|
|||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
|
||||||
// This avoids internal types from leaking in the public API. The "external" ArtemisTcpTransport delegates to this internal one.
|
// This avoids internal types from leaking in the public API. The "external" ArtemisTcpTransport delegates to this internal one.
|
||||||
class InternalArtemisTcpTransport {
|
class ArtemisTcpTransport {
|
||||||
companion object {
|
companion object {
|
||||||
val CIPHER_SUITES = listOf(
|
val CIPHER_SUITES = listOf(
|
||||||
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
|
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
|
@ -1,9 +1,5 @@
|
|||||||
package net.corda.nodeapi.internal.config
|
package net.corda.nodeapi.internal.config
|
||||||
|
|
||||||
import net.corda.core.internal.div
|
|
||||||
import net.corda.nodeapi.internal.crypto.X509KeyStore
|
|
||||||
import java.nio.file.Path
|
|
||||||
|
|
||||||
interface SslConfiguration {
|
interface SslConfiguration {
|
||||||
|
|
||||||
val keyStore: FileBasedCertificateStoreSupplier?
|
val keyStore: FileBasedCertificateStoreSupplier?
|
||||||
@ -24,27 +20,4 @@ interface MutualSslConfiguration : SslConfiguration {
|
|||||||
override val trustStore: FileBasedCertificateStoreSupplier
|
override val trustStore: FileBasedCertificateStoreSupplier
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MutualSslOptions(override val keyStore: FileBasedCertificateStoreSupplier, override val trustStore: FileBasedCertificateStoreSupplier) : MutualSslConfiguration
|
private class MutualSslOptions(override val keyStore: FileBasedCertificateStoreSupplier, override val trustStore: FileBasedCertificateStoreSupplier) : MutualSslConfiguration
|
||||||
|
|
||||||
// Don't use this internally. It's still here because it's used by ArtemisTcpTransport, which is in public node-api by mistake.
|
|
||||||
interface SSLConfiguration {
|
|
||||||
val keyStorePassword: String
|
|
||||||
val trustStorePassword: String
|
|
||||||
val certificatesDirectory: Path
|
|
||||||
val sslKeystore: Path get() = certificatesDirectory / "sslkeystore.jks"
|
|
||||||
val nodeKeystore: Path get() = certificatesDirectory / "nodekeystore.jks"
|
|
||||||
val trustStoreFile: Path get() = certificatesDirectory / "truststore.jks"
|
|
||||||
val crlCheckSoftFail: Boolean
|
|
||||||
|
|
||||||
fun loadTrustStore(createNew: Boolean = false): X509KeyStore {
|
|
||||||
return X509KeyStore.fromFile(trustStoreFile, trustStorePassword, createNew)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun loadNodeKeyStore(createNew: Boolean = false): X509KeyStore {
|
|
||||||
return X509KeyStore.fromFile(nodeKeystore, keyStorePassword, createNew)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun loadSslKeyStore(createNew: Boolean = false): X509KeyStore {
|
|
||||||
return X509KeyStore.fromFile(sslKeystore, keyStorePassword, createNew)
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,7 +5,7 @@ import net.corda.core.crypto.newSecureRandom
|
|||||||
import net.corda.core.utilities.NetworkHostAndPort
|
import net.corda.core.utilities.NetworkHostAndPort
|
||||||
import net.corda.core.utilities.contextLogger
|
import net.corda.core.utilities.contextLogger
|
||||||
import net.corda.core.utilities.toHex
|
import net.corda.core.utilities.toHex
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport
|
||||||
import net.corda.nodeapi.internal.config.CertificateStore
|
import net.corda.nodeapi.internal.config.CertificateStore
|
||||||
import net.corda.nodeapi.internal.crypto.toBc
|
import net.corda.nodeapi.internal.crypto.toBc
|
||||||
import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier
|
import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier
|
||||||
@ -110,8 +110,8 @@ internal fun createClientSslHelper(target: NetworkHostAndPort,
|
|||||||
sslContext.init(keyManagers, trustManagers, newSecureRandom())
|
sslContext.init(keyManagers, trustManagers, newSecureRandom())
|
||||||
val sslEngine = sslContext.createSSLEngine(target.host, target.port)
|
val sslEngine = sslContext.createSSLEngine(target.host, target.port)
|
||||||
sslEngine.useClientMode = true
|
sslEngine.useClientMode = true
|
||||||
sslEngine.enabledProtocols = InternalArtemisTcpTransport.TLS_VERSIONS.toTypedArray()
|
sslEngine.enabledProtocols = ArtemisTcpTransport.TLS_VERSIONS.toTypedArray()
|
||||||
sslEngine.enabledCipherSuites = InternalArtemisTcpTransport.CIPHER_SUITES.toTypedArray()
|
sslEngine.enabledCipherSuites = ArtemisTcpTransport.CIPHER_SUITES.toTypedArray()
|
||||||
sslEngine.enableSessionCreation = true
|
sslEngine.enableSessionCreation = true
|
||||||
return SslHandler(sslEngine)
|
return SslHandler(sslEngine)
|
||||||
}
|
}
|
||||||
@ -125,8 +125,8 @@ internal fun createServerSslHelper(keyManagerFactory: KeyManagerFactory,
|
|||||||
val sslEngine = sslContext.createSSLEngine()
|
val sslEngine = sslContext.createSSLEngine()
|
||||||
sslEngine.useClientMode = false
|
sslEngine.useClientMode = false
|
||||||
sslEngine.needClientAuth = true
|
sslEngine.needClientAuth = true
|
||||||
sslEngine.enabledProtocols = InternalArtemisTcpTransport.TLS_VERSIONS.toTypedArray()
|
sslEngine.enabledProtocols = ArtemisTcpTransport.TLS_VERSIONS.toTypedArray()
|
||||||
sslEngine.enabledCipherSuites = InternalArtemisTcpTransport.CIPHER_SUITES.toTypedArray()
|
sslEngine.enabledCipherSuites = ArtemisTcpTransport.CIPHER_SUITES.toTypedArray()
|
||||||
sslEngine.enableSessionCreation = true
|
sslEngine.enableSessionCreation = true
|
||||||
return SslHandler(sslEngine)
|
return SslHandler(sslEngine)
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ import net.corda.node.services.config.configureWithDevSSLCertificate
|
|||||||
import net.corda.node.services.messaging.ArtemisMessagingServer
|
import net.corda.node.services.messaging.ArtemisMessagingServer
|
||||||
import net.corda.nodeapi.internal.ArtemisMessagingClient
|
import net.corda.nodeapi.internal.ArtemisMessagingClient
|
||||||
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.P2P_PREFIX
|
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.P2P_PREFIX
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport
|
||||||
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
||||||
import net.corda.nodeapi.internal.registerDevP2pCertificates
|
import net.corda.nodeapi.internal.registerDevP2pCertificates
|
||||||
import net.corda.nodeapi.internal.crypto.*
|
import net.corda.nodeapi.internal.crypto.*
|
||||||
@ -137,7 +137,7 @@ class ProtonWrapperTests {
|
|||||||
val serverSocketFactory = context.serverSocketFactory
|
val serverSocketFactory = context.serverSocketFactory
|
||||||
|
|
||||||
val serverSocket = serverSocketFactory.createServerSocket(serverPort) as SSLServerSocket
|
val serverSocket = serverSocketFactory.createServerSocket(serverPort) as SSLServerSocket
|
||||||
val serverParams = SSLParameters(InternalArtemisTcpTransport.CIPHER_SUITES.toTypedArray(),
|
val serverParams = SSLParameters(ArtemisTcpTransport.CIPHER_SUITES.toTypedArray(),
|
||||||
arrayOf("TLSv1.2"))
|
arrayOf("TLSv1.2"))
|
||||||
serverParams.wantClientAuth = true
|
serverParams.wantClientAuth = true
|
||||||
serverParams.needClientAuth = true
|
serverParams.needClientAuth = true
|
||||||
|
@ -18,7 +18,7 @@ import net.corda.node.utilities.createKeyPairAndSelfSignedTLSCertificate
|
|||||||
import net.corda.node.utilities.saveToKeyStore
|
import net.corda.node.utilities.saveToKeyStore
|
||||||
import net.corda.node.utilities.saveToTrustStore
|
import net.corda.node.utilities.saveToTrustStore
|
||||||
import net.corda.nodeapi.BrokerRpcSslOptions
|
import net.corda.nodeapi.BrokerRpcSslOptions
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.rpcConnectorTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport.Companion.rpcConnectorTcpTransport
|
||||||
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
||||||
import net.corda.nodeapi.internal.config.User
|
import net.corda.nodeapi.internal.config.User
|
||||||
import net.corda.testing.core.SerializationEnvironmentRule
|
import net.corda.testing.core.SerializationEnvironmentRule
|
||||||
|
@ -3,7 +3,7 @@ package net.corda.services.messaging
|
|||||||
import net.corda.core.identity.CordaX500Name
|
import net.corda.core.identity.CordaX500Name
|
||||||
import net.corda.core.serialization.internal.nodeSerializationEnv
|
import net.corda.core.serialization.internal.nodeSerializationEnv
|
||||||
import net.corda.core.utilities.NetworkHostAndPort
|
import net.corda.core.utilities.NetworkHostAndPort
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.p2pConnectorTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport.Companion.p2pConnectorTcpTransport
|
||||||
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
||||||
import net.corda.testing.internal.configureTestSSL
|
import net.corda.testing.internal.configureTestSSL
|
||||||
import org.apache.activemq.artemis.api.core.client.*
|
import org.apache.activemq.artemis.api.core.client.*
|
||||||
|
@ -17,7 +17,7 @@ import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.INTERNAL_P
|
|||||||
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.JOURNAL_HEADER_SIZE
|
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.JOURNAL_HEADER_SIZE
|
||||||
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NOTIFICATIONS_ADDRESS
|
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NOTIFICATIONS_ADDRESS
|
||||||
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.P2P_PREFIX
|
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.P2P_PREFIX
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.p2pAcceptorTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport.Companion.p2pAcceptorTcpTransport
|
||||||
import net.corda.nodeapi.internal.requireOnDefaultFileSystem
|
import net.corda.nodeapi.internal.requireOnDefaultFileSystem
|
||||||
import org.apache.activemq.artemis.api.core.SimpleString
|
import org.apache.activemq.artemis.api.core.SimpleString
|
||||||
import org.apache.activemq.artemis.api.core.management.ActiveMQServerControl
|
import org.apache.activemq.artemis.api.core.management.ActiveMQServerControl
|
||||||
|
@ -7,7 +7,7 @@ import net.corda.core.serialization.internal.nodeSerializationEnv
|
|||||||
import net.corda.core.utilities.NetworkHostAndPort
|
import net.corda.core.utilities.NetworkHostAndPort
|
||||||
import net.corda.node.internal.security.RPCSecurityManager
|
import net.corda.node.internal.security.RPCSecurityManager
|
||||||
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NODE_RPC_USER
|
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.NODE_RPC_USER
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport
|
||||||
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
||||||
import org.apache.activemq.artemis.api.core.client.ActiveMQClient
|
import org.apache.activemq.artemis.api.core.client.ActiveMQClient
|
||||||
import org.apache.activemq.artemis.api.core.client.ServerLocator
|
import org.apache.activemq.artemis.api.core.client.ServerLocator
|
||||||
@ -22,7 +22,7 @@ class InternalRPCMessagingClient(val sslConfig: MutualSslConfiguration, val serv
|
|||||||
|
|
||||||
fun init(rpcOps: RPCOps, securityManager: RPCSecurityManager) = synchronized(this) {
|
fun init(rpcOps: RPCOps, securityManager: RPCSecurityManager) = synchronized(this) {
|
||||||
|
|
||||||
val tcpTransport = InternalArtemisTcpTransport.rpcInternalClientTcpTransport(serverAddress, sslConfig)
|
val tcpTransport = ArtemisTcpTransport.rpcInternalClientTcpTransport(serverAddress, sslConfig)
|
||||||
locator = ActiveMQClient.createServerLocatorWithoutHA(tcpTransport).apply {
|
locator = ActiveMQClient.createServerLocatorWithoutHA(tcpTransport).apply {
|
||||||
// Never time out on our loopback Artemis connections. If we switch back to using the InVM transport this
|
// Never time out on our loopback Artemis connections. If we switch back to using the InVM transport this
|
||||||
// would be the default and the two lines below can be deleted.
|
// would be the default and the two lines below can be deleted.
|
||||||
|
@ -33,7 +33,7 @@ import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.BRIDGE_NOT
|
|||||||
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.JOURNAL_HEADER_SIZE
|
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.JOURNAL_HEADER_SIZE
|
||||||
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.P2PMessagingHeaders
|
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.P2PMessagingHeaders
|
||||||
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.PEERS_PREFIX
|
import net.corda.nodeapi.internal.ArtemisMessagingComponent.Companion.PEERS_PREFIX
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.p2pConnectorTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport.Companion.p2pConnectorTcpTransport
|
||||||
import net.corda.nodeapi.internal.bridging.BridgeControl
|
import net.corda.nodeapi.internal.bridging.BridgeControl
|
||||||
import net.corda.nodeapi.internal.bridging.BridgeEntry
|
import net.corda.nodeapi.internal.bridging.BridgeEntry
|
||||||
import net.corda.nodeapi.internal.persistence.CordaPersistence
|
import net.corda.nodeapi.internal.persistence.CordaPersistence
|
||||||
|
@ -7,8 +7,8 @@ import net.corda.node.internal.artemis.SecureArtemisConfiguration
|
|||||||
import net.corda.nodeapi.BrokerRpcSslOptions
|
import net.corda.nodeapi.BrokerRpcSslOptions
|
||||||
import net.corda.nodeapi.RPCApi
|
import net.corda.nodeapi.RPCApi
|
||||||
import net.corda.nodeapi.internal.ArtemisMessagingComponent
|
import net.corda.nodeapi.internal.ArtemisMessagingComponent
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.rpcAcceptorTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport.Companion.rpcAcceptorTcpTransport
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport.Companion.rpcInternalAcceptorTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport.Companion.rpcInternalAcceptorTcpTransport
|
||||||
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
import net.corda.nodeapi.internal.config.MutualSslConfiguration
|
||||||
import org.apache.activemq.artemis.api.core.SimpleString
|
import org.apache.activemq.artemis.api.core.SimpleString
|
||||||
import org.apache.activemq.artemis.core.config.CoreQueueConfiguration
|
import org.apache.activemq.artemis.core.config.CoreQueueConfiguration
|
||||||
|
@ -22,7 +22,7 @@ import net.corda.node.internal.security.RPCSecurityManagerImpl
|
|||||||
import net.corda.node.services.messaging.RPCServer
|
import net.corda.node.services.messaging.RPCServer
|
||||||
import net.corda.node.services.messaging.RPCServerConfiguration
|
import net.corda.node.services.messaging.RPCServerConfiguration
|
||||||
import net.corda.nodeapi.RPCApi
|
import net.corda.nodeapi.RPCApi
|
||||||
import net.corda.nodeapi.internal.InternalArtemisTcpTransport
|
import net.corda.nodeapi.internal.ArtemisTcpTransport
|
||||||
import net.corda.serialization.internal.AMQP_RPC_CLIENT_CONTEXT
|
import net.corda.serialization.internal.AMQP_RPC_CLIENT_CONTEXT
|
||||||
import net.corda.testing.common.internal.testNetworkParameters
|
import net.corda.testing.common.internal.testNetworkParameters
|
||||||
import net.corda.testing.core.MAX_MESSAGE_SIZE
|
import net.corda.testing.core.MAX_MESSAGE_SIZE
|
||||||
@ -220,14 +220,14 @@ data class RPCDriverDSL(
|
|||||||
bindingsDirectory = "$artemisDir/bindings"
|
bindingsDirectory = "$artemisDir/bindings"
|
||||||
journalDirectory = "$artemisDir/journal"
|
journalDirectory = "$artemisDir/journal"
|
||||||
largeMessagesDirectory = "$artemisDir/large-messages"
|
largeMessagesDirectory = "$artemisDir/large-messages"
|
||||||
acceptorConfigurations = setOf(InternalArtemisTcpTransport.rpcAcceptorTcpTransport(hostAndPort, null))
|
acceptorConfigurations = setOf(ArtemisTcpTransport.rpcAcceptorTcpTransport(hostAndPort, null))
|
||||||
configureCommonSettings(maxFileSize, maxBufferedBytesPerClient)
|
configureCommonSettings(maxFileSize, maxBufferedBytesPerClient)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val inVmClientTransportConfiguration = TransportConfiguration(InVMConnectorFactory::class.java.name)
|
val inVmClientTransportConfiguration = TransportConfiguration(InVMConnectorFactory::class.java.name)
|
||||||
fun createNettyClientTransportConfiguration(hostAndPort: NetworkHostAndPort): TransportConfiguration {
|
fun createNettyClientTransportConfiguration(hostAndPort: NetworkHostAndPort): TransportConfiguration {
|
||||||
return InternalArtemisTcpTransport.rpcConnectorTcpTransport(hostAndPort, null)
|
return ArtemisTcpTransport.rpcConnectorTcpTransport(hostAndPort, null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,7 +339,7 @@ data class RPCDriverDSL(
|
|||||||
configuration: CordaRPCClientConfiguration = CordaRPCClientConfiguration.DEFAULT
|
configuration: CordaRPCClientConfiguration = CordaRPCClientConfiguration.DEFAULT
|
||||||
): CordaFuture<I> {
|
): CordaFuture<I> {
|
||||||
return driverDSL.executorService.fork {
|
return driverDSL.executorService.fork {
|
||||||
val client = RPCClient<I>(InternalArtemisTcpTransport.rpcConnectorTcpTransport(rpcAddress, null), configuration)
|
val client = RPCClient<I>(ArtemisTcpTransport.rpcConnectorTcpTransport(rpcAddress, null), configuration)
|
||||||
val connection = client.start(rpcOpsClass, username, password, externalTrace)
|
val connection = client.start(rpcOpsClass, username, password, externalTrace)
|
||||||
driverDSL.shutdownManager.registerShutdown {
|
driverDSL.shutdownManager.registerShutdown {
|
||||||
connection.close()
|
connection.close()
|
||||||
|
Loading…
Reference in New Issue
Block a user