@ThreadSafe class ArtemisMessagingServer : ArtemisMessagingComponent
This class configures and manages an Apache Artemis message queue broker.
Nodes communication is managed using an Artemis specific protocol, but it supports other protocols like AMQP/1.0 as well for interop.
The current implementation is skeletal and lacks features like security or firewall tunnelling (that is, you must be able to receive TCP connections in order to receive messages). It is good enough for local communication within a fully connected network, trusted network or on localhost.
<init> |
ArtemisMessagingServer(config: NodeConfiguration, myHostPort: HostAndPort, networkMapCache: NetworkMapCache, userService: RPCUserService)
This class configures and manages an Apache Artemis message queue broker. |
config |
val config: NodeConfiguration
The config object is used to pass in the passwords for the certificate KeyStore and TrustStore |
myHostPort |
val myHostPort: HostAndPort |
networkMapCache |
val networkMapCache: NetworkMapCache |
networkMapConnectionFuture |
val networkMapConnectionFuture: SettableFuture<Unit>?
A ListenableFuture which completes when the server successfully connects to the network map node. If a non-recoverable error is encountered then the Future will complete with an exception. |
userService |
val userService: RPCUserService |
start |
fun start(): Unit
The server will make sure the bridge exists on network map changes, see method updateBridgesOnNetworkChange We assume network map will be updated accordingly when the client node register with the network map server. |
stop |
fun stop(): Unit |
checkStorePasswords |
fun checkStorePasswords(): Unit
Returns nothing if the keystore was opened OK or throws if not. Useful to check the password, as unfortunately Artemis tends to bury the exception when the password is wrong. |
expectedOnDefaultFileSystem |
fun Path.expectedOnDefaultFileSystem(): Unit |
tcpTransport |
fun tcpTransport(direction: ConnectionDirection, host: String, port: Int): TransportConfiguration |