com.r3corda.node.services.messaging / ArtemisMessagingComponent

# ArtemisMessagingComponent

`abstract class ArtemisMessagingComponent : SingletonSerializeAsToken`

The base class for Artemis services that defines shared data structures and transport configuration

### Parameters

`directory` - A place where Artemis can stash its message journal and other files.
`config` - The config object is used to pass in the passwords for the certificate KeyStore and TrustStore

### Types

ArtemisAddress | `interface ArtemisAddress`
ConnectionDirection | `enum class ConnectionDirection`
NetworkMapAddress | `data class NetworkMapAddress : SingleMessageRecipient, ArtemisAddress`
NodeAddress | `data class NodeAddress : SingleMessageRecipient, ArtemisAddress`

### Constructors

<init> | `ArtemisMessagingComponent(directory: Path, config: NodeConfiguration)` The base class for Artemis services that defines shared data structures and transport configuration

### Properties

config | `val config: NodeConfiguration`
directory | `val directory: Path`

### Functions

configureWithDevSSLCertificate | `fun configureWithDevSSLCertificate(): Unit` Strictly for dev only automatically construct a server certificate/private key signed from the CA certs in Node resources. Then provision KeyStores into certificates folder under node path.
tcpTransport | `fun tcpTransport(direction: ConnectionDirection, host: String, port: Int): <ERROR CLASS>`
tryParseKeyFromQueueName | `fun tryParseKeyFromQueueName(queueName: <ERROR CLASS>): PublicKey?`

### Inherited Functions

toToken | `open fun toToken(context: SerializeAsTokenContext): SerializationToken`

### Companion Object Properties

NETWORK_MAP_ADDRESS | `val NETWORK_MAP_ADDRESS: <ERROR CLASS>`
PEERS_PREFIX | `const val PEERS_PREFIX: String`

### Companion Object Functions

toQueueName | `fun toQueueName(target: MessageRecipients): <ERROR CLASS>` Assuming the passed in target address is actually an ArtemisAddress will extract the queue name used. For now the queue name is the Base58 version of the nodes identity. This should only be used in the internals of the messaging services to keep addressing opaque for the future. N.B. Marked as JvmStatic to allow use in the inherited classes.

### Inheritors

ArtemisMessagingClient | `class ArtemisMessagingClient : ArtemisMessagingComponent, MessagingServiceInternal` This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. Artemis is a message queue broker and here we run a client connecting to the specified broker instance ArtemisMessagingServer.
ArtemisMessagingServer | `class ArtemisMessagingServer : ArtemisMessagingComponent` This class configures and manages an Apache Artemis message queue broker.