Clarify doc on embedding
This commit is contained in:
parent
09b2a12f3c
commit
8e8bbc93ac
|
@ -1,10 +1,10 @@
|
|||
# Embedding Apache ActiveMQ Artemis
|
||||
|
||||
Apache ActiveMQ Artemis is designed as set of simple Plain Old Java Objects
|
||||
(POJOs). This means Apache ActiveMQ Artemis can be instantiated and run in any
|
||||
(POJOs). This means Apache ActiveMQ Artemis can be instantiated and run in any
|
||||
dependency injection framework such as Spring or Google Guice. It also means
|
||||
that if you have an application that could use messaging functionality
|
||||
internally, then it can *directly instantiate* Apache ActiveMQ Artemis clients
|
||||
internally then it can *directly instantiate* Apache ActiveMQ Artemis clients
|
||||
and servers in its own application code to perform that functionality. We call
|
||||
this *embedding* Apache ActiveMQ Artemis.
|
||||
|
||||
|
@ -12,23 +12,33 @@ Examples of applications that might want to do this include any application
|
|||
that needs very high performance, transactional, persistent messaging but
|
||||
doesn't want the hassle of writing it all from scratch.
|
||||
|
||||
Embedding Apache ActiveMQ Artemis can be done in very few easy steps.
|
||||
Instantiate the configuration object, instantiate the server, start it, and you
|
||||
have a Apache ActiveMQ Artemis running in your virtual machine. It's as simple
|
||||
and easy as that.
|
||||
Embedding Apache ActiveMQ Artemis can be done in very few easy steps -
|
||||
supply a `broker.xml` on the classpath or instantiate the configuration object,
|
||||
instantiate the server, start it, and you have a Apache ActiveMQ Artemis running
|
||||
in your JVM. It's as simple and easy as that.
|
||||
|
||||
## Simple Config File Embedding
|
||||
## Embedding with XML configuration
|
||||
|
||||
The simplest way to embed Apache ActiveMQ Artemis is to use the embedded
|
||||
wrapper classes and configure Apache ActiveMQ Artemis through its configuration
|
||||
files. There are two different helper classes for this depending on whether
|
||||
your using the Apache ActiveMQ Artemis Core API or JMS.
|
||||
wrapper class and configure Apache ActiveMQ Artemis through `broker.xml`.
|
||||
|
||||
## Embedding an Apache ActiveMQ Artemis Broker
|
||||
Here's a simple example `broker.xml`:
|
||||
|
||||
```xml
|
||||
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:activemq" xsi:schemaLocation="urn:activemq /schema/artemis-server.xsd">
|
||||
<core xmlns="urn:activemq:core">
|
||||
|
||||
<persistence-enabled>false</persistence-enabled>
|
||||
|
||||
<security-enabled>false</security-enabled>
|
||||
|
||||
<acceptors>
|
||||
<acceptor name="in-vm">vm://0</acceptor>
|
||||
</acceptors>
|
||||
</core>
|
||||
</configuration>
|
||||
```
|
||||
|
||||
For instantiating a core Apache ActiveMQ Artemis Server, the steps are pretty
|
||||
simple. The example requires that you have defined a configuration file
|
||||
`broker.xml` in your classpath:
|
||||
|
||||
```java
|
||||
import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ;
|
||||
|
@ -36,33 +46,23 @@ import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ;
|
|||
...
|
||||
|
||||
EmbeddedActiveMQ embedded = new EmbeddedActiveMQ();
|
||||
|
||||
embedded.start();
|
||||
|
||||
ServerLocator serverLocator = ActiveMQClient.createServerLocator("vm://0");
|
||||
|
||||
ClientSessionFactory factory = serverLocator.createSessionFactory();
|
||||
|
||||
ClientSession session = factory.createSession();
|
||||
|
||||
session.createQueue("example", "example", true);
|
||||
session.createQueue(new QueueConfiguration("example"));
|
||||
|
||||
ClientProducer producer = session.createProducer("example");
|
||||
|
||||
ClientMessage message = session.createMessage(true);
|
||||
|
||||
message.getBody().writeString("Hello");
|
||||
|
||||
producer.send(message);
|
||||
|
||||
session.start();
|
||||
|
||||
ClientConsumer consumer = session.createConsumer("example");
|
||||
|
||||
ClientMessage msgReceived = consumer.receive();
|
||||
|
||||
System.out.println("message = " + msgReceived.getBody().readString());
|
||||
|
||||
session.close();
|
||||
```
|
||||
|
||||
|
@ -70,14 +70,14 @@ The `EmbeddedActiveMQ` class has a few additional setter methods that allow you
|
|||
to specify a different config file name as well as other properties. See the
|
||||
javadocs for this class for more details.
|
||||
|
||||
## POJO instantiation - Embedding Programmatically
|
||||
## Embedding with programmatic configuration
|
||||
|
||||
You can follow this step-by-step guide to programmatically embed the core,
|
||||
non-JMS Apache ActiveMQ Artemis Server instance:
|
||||
You can follow this step-by-step guide to programmatically embed a broker
|
||||
instance.
|
||||
|
||||
Create the configuration object - this contains configuration information for
|
||||
Create the `Configuration` object. This contains configuration information for
|
||||
an Apache ActiveMQ Artemis instance. The setter methods of this class allow you
|
||||
to programmatically set configuration options as describe in the [Server
|
||||
to programmatically set configuration options as described in the [Server
|
||||
Configuration](configuration-index.md) section.
|
||||
|
||||
The acceptors are configured through `Configuration`. Just add the acceptor URL
|
||||
|
|
Loading…
Reference in New Issue