com.r3corda.node.services.messaging / ArtemisMessagingService / <init>

# <init>

`ArtemisMessagingService(directory: Path, myHostPort: <ERROR CLASS>, config: NodeConfiguration, defaultExecutor: Executor = RunOnCallerThread)`

This class implements the MessagingService API using Apache Artemis, the successor to their ActiveMQ product. Artemis is a message queue broker and here, we embed the entire server inside our own process. Nodes communicate with each other 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.

### Parameters

`directory` - A place where Artemis can stash its message journal and other files.
`myHostPort` - What host and port to bind to for receiving inbound connections.
`config` - The config object is used to pass in the passwords for the certificate KeyStore and TrustStore
`defaultExecutor` - This will be used as the default executor to run message handlers on, if no other is specified.