You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2014/12/08 16:49:33 UTC
[02/25] activemq-6 git commit: ACTIVEMQ6-9 - port to markdown
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/using-jms.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/using-jms.xml b/docs/user-manual/en/using-jms.xml
deleted file mode 100644
index fdf0729..0000000
--- a/docs/user-manual/en/using-jms.xml
+++ /dev/null
@@ -1,364 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ============================================================================= -->
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more -->
-<!-- contributor license agreements. See the NOTICE file distributed with -->
-<!-- this work for additional information regarding copyright ownership. -->
-<!-- The ASF licenses this file to You under the Apache License, Version 2.0 -->
-<!-- (the "License"); you may not use this file except in compliance with -->
-<!-- the License. You may obtain a copy of the License at -->
-<!-- -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
-<!-- -->
-<!-- Unless required by applicable law or agreed to in writing, software -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -->
-<!-- See the License for the specific language governing permissions and -->
-<!-- limitations under the License. -->
-<!-- ============================================================================= -->
-
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "ActiveMQ_User_Manual.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="using-jms">
- <title>Using JMS</title>
- <para>Although ActiveMQ provides a JMS agnostic messaging API, many users will be more
- comfortable using JMS.</para>
- <para>JMS is a very popular API standard for messaging, and most messaging systems provide a JMS
- API. If you are completely new to JMS we suggest you follow the<ulink
- url="http://docs.oracle.com/javaee/1.3/jms/tutorial"> Sun
- JMS tutorial</ulink> - a full JMS tutorial is out of scope for this guide.</para>
- <para>ActiveMQ also ships with a wide range of examples, many of which demonstrate JMS API usage.
- A good place to start would be to play around with the simple JMS Queue and Topic example,
- but we also provide examples for many other parts of the JMS API. A full description of the
- examples is available in <xref linkend="examples"/>.</para>
- <para>In this section we'll go through the main steps in configuring the server for JMS and
- creating a simple JMS program. We'll also show how to configure and use JNDI, and also how
- to use JMS with ActiveMQ without using any JNDI.</para>
- <section>
- <title>A simple ordering system</title>
- <para>For this chapter we're going to use a very simple ordering system as our example. It is
- a somewhat contrived example because of its extreme simplicity, but it serves to
- demonstrate the very basics of setting up and using JMS.</para>
- <para>We will have a single JMS Queue called <literal>OrderQueue</literal>, and we will have
- a single <literal>MessageProducer</literal> sending an order message to the queue and a
- single <literal>MessageConsumer</literal> consuming the order message from the
- queue.</para>
- <para>The queue will be a <literal>durable</literal> queue, i.e. it will survive a server
- restart or crash. We also want to pre-deploy the queue, i.e. specify the queue in the
- server JMS configuration so it is created automatically without us having to explicitly
- create it from the client.</para>
- </section>
- <section id="using-jms.jndi.configuration">
- <title>JNDI Configuration</title>
- <para>The JMS specification establishes the convention that <emphasis>administered
- objects</emphasis> (i.e. JMS queue, topic and connection factory instances) are made
- available via the JNDI API. Brokers are free to implement JNDI as they see fit assuming
- the implementation fits the API. ActiveMQ does not have a JNDI server. Rather, it uses a
- client-side JNDI implementation that relies on special properties set in the environment
- to construct the appropriate JMS objects. In other words, no objects are stored in JNDI
- on the ActiveMQ server. There are simply instantiated on the client based on the provided
- configuration. Let's look at the different kinds of administered objects and how to configure
- them.</para>
- <note>
- <para>The following configuration properties <emphasis>are strictly required when ActiveMQ
- is running in stand-alone mode</emphasis>. When ActiveMQ is integrated to an application
- server (e.g. Wildfly) the application server itself will almost certainly provide a JNDI
- client with its own properties.</para>
- </note>
- <section>
- <title>ConnectionFactory JNDI</title>
- <para>A JMS connection factory is used by the client to make connections to the server.
- It knows the location of the server it is connecting to, as well as many other
- configuration parameters.</para>
- <para>By default, a <literal>javax.naming.Context</literal> instance created using the
- <literal>org.apache.activemq.jndi.ActiveMQInitialContextFactory</literal> will automatically
- have the following connection factories available for lookup:</para>
- <itemizedlist>
- <listitem>
- <para><literal>ConnectionFactory</literal></para>
- </listitem>
- <listitem>
- <para><literal>XAConnectionFactory</literal></para>
- </listitem>
- <listitem>
- <para><literal>QueueConnectionFactory</literal></para>
- </listitem>
- <listitem>
- <para><literal>TopicConnectionFactory</literal></para>
- </listitem>
- </itemizedlist>
- <para>Here's a simple example of the JNDI context environment for a client looking up a connection factory
- to access an <emphasis>embedded</emphasis> instance of ActiveMQ:</para>
- <programlisting>
-java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory</programlisting>
- <para>It's really as simple as that. As noted previously, any JNDI context created with the
- <literal>ActiveMQInitialContextFactory</literal> will have a set of default connection factories
- available. Therefore, only the <literal>java.naming.factory.initial</literal> property is required
- to access an embedded broker.</para>
- <para>In certain situations there could be multiple server instances running within a particular JVM. In
- that situation each server would typically have an InVM acceptor with a unique server-ID. A client
- using JMS and JNDI can account for this by specifying a
- <literal>javax.naming.Context.PROVIDER_URL</literal> (<literal>String</literal> value of
- "java.naming.provider.url") in the JNDI environment like <literal>vm://2</literal> where
- <literal>2</literal> is the server-ID for acceptor.</para>
- <para>Here is a list of all the supported URL schemes:</para>
- <itemizedlist>
- <listitem><para><literal>vm</literal></para></listitem>
- <listitem><para><literal>tcp</literal></para></listitem>
- <listitem><para><literal>udp</literal></para></listitem>
- <listitem><para><literal>jgroups</literal></para></listitem>
- </itemizedlist>
- <para>Most clients won't be connecting to an embedded broker. Clients will most commonly connect
- across a network a remote broker. In that case the client can use the
- <literal>javax.naming.Context.PROVIDER_URL</literal> (<literal>String</literal> value of
- "java.naming.provider.url") in the JNDI environment to specify where to connect. Here's a simple
- example of a client configuring a connection factory to connect to a remote broker running on
- myhost:5445:</para>
- <programlisting>
-java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
-java.naming.provider.url=tcp://myhost:5445</programlisting>
- <para>In the example above the client is using the <literal>tcp</literal> scheme for the provider URL.
- A client may also specify multiple comma-delimited host:port combinations in the URL (e.g.
- <literal>tcp://remote-host1:5445,remote-host2:5445</literal>). Whether there is one or many
- host:port combinations in the URL they are treated as the <emphasis>initial connector(s)</emphasis>
- for the underlying connection.</para>
- <para>The <literal>udp</literal> scheme is also supported which should use an host:port combination that
- matches the <literal>group-address</literal> and <literal>group-port</literal> from the corresponding
- <literal>broadcast-group</literal> configured on the ActiveMQ server(s).</para>
- <para>Each scheme has a specific set of properties which can be set using the traditional URL query string
- format (e.g. <literal>scheme://host:port?key1=value1&key2=value2</literal>) to customize the underlying
- transport mechanism. For example, if a client wanted to connect to a remote server using TCP and SSL
- it would use a <literal>Context.PROVIDER_URL</literal> of
- <literal>tcp://remote-host:5445?ssl-enabled=true</literal>.</para>
- <para>All the properties available for the <literal>tcp</literal> scheme are described in
- <link linkend="configuring-transports.netty">the documentation regarding the Netty transport</link>.</para>
- <para>The <literal>udp</literal> scheme supports 4 properties:</para>
- <itemizedlist>
- <listitem>
- <para><literal>local-address</literal> - If you are running with multiple network interfaces on the same
- machine, you may want to specify that the discovery group listens only only a specific interface. To
- do this you can specify the interface address with this parameter.</para>
- </listitem>
- <listitem>
- <para><literal>local-port</literal> - If you want to specify a local port to which the datagram socket is
- bound you can specify it here. Normally you would just use the default value of -1 which signifies
- that an anonymous port should be used. This parameter is always specified in conjunction with
- <literal>local-address</literal>.</para>
- </listitem>
- <listitem>
- <para><literal>refresh-timeout</literal> - This is the period the discovery group waits after receiving
- the last broadcast from a particular server before removing that servers connector pair entry from its
- list. You would normally set this to a value significantly higher than the broadcast-period on the
- broadcast group otherwise servers might intermittently disappear from the list even though they are
- still broadcasting due to slight differences in timing. This parameter is optional, the default value
- is 10000 milliseconds (10 seconds).</para>
- </listitem>
- <listitem>
- <para><literal>discovery-initial-wait-timeout</literal> - If the connection factory is used immediately
- after creation then it may not have had enough time to received broadcasts from all the nodes in the
- cluster. On first usage, the connection factory will make sure it waits this long since creation
- before creating the first connection. The default value for this parameter is 10000 milliseconds.</para>
- </listitem>
- </itemizedlist>
- <para>Lastly, the <literal>jgroups</literal> scheme is supported which provides an alternative to the
- <literal>udp</literal> scheme for server discovery. The URL pattern is as follows
- <literal>jgroups://<jgroups-xml-conf-filename></literal> where
- <literal><jgroups-xml-conf-filename></literal> refers to an XML file on the classpath that contains
- the JGroups configuration.</para>
- <para>The <literal>refresh-timeout</literal> and <literal>discovery-initial-wait-timeout</literal> properties
- are supported just like with <literal>udp</literal>.</para>
- <para>Although a <literal>javax.naming.Context</literal> instance created using the
- <literal>org.apache.activemq.jndi.ActiveMQInitialContextFactory</literal> will automatically
- have some connection factories present, it is possible for a client to specify its own connection
- factories. This is done using the
- <literal>org.apache.activemq.jndi.ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES</literal>
- property (String value of "connectionFactoryNames"). The value for this property is a comma delimited
- String of all the connection factories the client wishes to create. For example:</para>
- <programlisting>
-java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
-java.naming.provider.url=tcp://localhost:5445
-connectionFactoryNames=myConnectionFactory</programlisting>
- <para>In this example, the client is creating a connection factory named "myConnectionFactory." This
- replaces all the default connection factories so that only the "myConnectionFactory" connection factory
- is available to the client.</para>
- <para>Aside from the underlying transport, the underlying connection factory implementation can also be
- configured using special properties. To configure a particular connection factory the client would
- follow this pattern for the property name to set in the environment:
- <literal>connection.<connection-factory-name>.<property-name></literal>. For example, if the
- client wanted to customize the default connection factory "ConnectionFactory" to support
- high-availability then it would do this:</para>
- <programlisting>
-java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
-java.naming.provider.url=tcp://myhost:5445
-connection.ConnectionFactory.ha=true</programlisting>
- <para>Any property available on the underlying
- <literal>org.apache.activemq.jms.client.ActiveMQConnectionFactory</literal> can be set this way in
- addition to the <literal>ha</literal> (boolean) and <literal>type</literal> (String) properties. Here
- are the different options for the <literal>type</literal>:</para>
- <table frame="topbot" id="using-jms.table.configure.factory.types">
- <title>Configuration for Connection Factory Types</title>
- <tgroup cols="3">
- <colspec colname="cftype" colnum="1"/>
- <colspec colname="interface" colnum="2"/>
- <thead>
- <row>
- <entry>type</entry>
- <entry>interface</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>CF (default)</entry>
- <entry>javax.jms.ConnectionFactory</entry>
- </row>
- <row>
- <entry>XA_CF</entry>
- <entry>javax.jms.XAConnectionFactory</entry>
- </row>
- <row>
- <entry>QUEUE_CF</entry>
- <entry>javax.jms.QueueConnectionFactory</entry>
- </row>
- <row>
- <entry>QUEUE_XA_CF</entry>
- <entry>javax.jms.XAQueueConnectionFactory</entry>
- </row>
- <row>
- <entry>TOPIC_CF</entry>
- <entry>javax.jms.TopicConnectionFactory</entry>
- </row>
- <row>
- <entry>TOPIC_XA_CF</entry>
- <entry>javax.jms.XATopicConnectionFactory</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </section>
- <section>
- <title>Destination JNDI</title>
- <para>JMS destinations are also typically looked up via JNDI. As with connection factories, destinations can
- be configured using special properties in the JNDI context environment. The property
- <emphasis>name</emphasis> should follow the pattern: <literal>queue.<jndi-binding></literal> or
- <literal>topic.<jndi-binding></literal>. The property <emphasis>value</emphasis> should be the name
- of the queue hosted by the ActiveMQ server. For example, if the server had a JMS queue configured like
- so:</para>
- <programlisting>
-<queue name="OrderQueue"/></programlisting>
- <para>And if the client wanted to bind this queue to "queues/OrderQueue" then the JNDI properties would be
- configured like so:</para>
- <programlisting>
-java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
-java.naming.provider.url=tcp://myhost:5445
-queue.queues/OrderQueue=OrderQueue</programlisting>
- <para>It is also possible to look-up JMS destinations which haven't been configured explicitly in the JNDI
- context environment. This is possible using <literal>dynamicQueues/</literal> or
- <literal>dynamicTopics/</literal> in the look-up string. For example, if the client wanted to look-up the
- aforementioned "OrderQueue" it could do so simply by using the string "dynamicQueues/OrderQueue". Note,
- the text that follows <literal>dynamicQueues/</literal> or <literal>dynamicTopics/</literal> must
- correspond <emphasis>exactly</emphasis> to the name of the destination on the server.</para>
- </section>
- <section>
- <title>The code</title>
- <para>Here's the code for the example:</para>
- <para>First we'll create a JNDI initial context from which to lookup our JMS objects. If the above
- properties are set in <literal>jndi.properties</literal> and it is on the classpath then any new, empty
- <literal>InitialContext</literal> will be initialized using those properties:</para>
- <programlisting>InitialContext ic = new InitialContext();</programlisting>
- <para>Now we'll look up the connection factory from which we can create connections to myhost:5445:</para>
- <programlisting>ConnectionFactory cf = (ConnectionFactory)ic.lookup("ConnectionFactory");</programlisting>
- <para>And look up the Queue:</para>
- <programlisting>Queue orderQueue = (Queue)ic.lookup("queues/OrderQueue");</programlisting>
- <para>Next we create a JMS connection using the connection factory:</para>
- <programlisting>Connection connection = cf.createConnection();</programlisting>
- <para>And we create a non transacted JMS Session, with AUTO_ACKNOWLEDGE acknowledge
- mode:</para>
- <programlisting>Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);</programlisting>
- <para>We create a MessageProducer that will send orders to the queue:</para>
- <programlisting>MessageProducer producer = session.createProducer(orderQueue);</programlisting>
- <para>And we create a MessageConsumer which will consume orders from the queue:</para>
- <programlisting>MessageConsumer consumer = session.createConsumer(orderQueue);</programlisting>
- <para>We make sure we start the connection, or delivery won't occur on it:</para>
- <programlisting>connection.start();</programlisting>
- <para>We create a simple TextMessage and send it:</para>
- <programlisting>TextMessage message = session.createTextMessage("This is an order");
-producer.send(message);</programlisting>
- <para>And we consume the message:</para>
- <programlisting>TextMessage receivedMessage = (TextMessage)consumer.receive();
-System.out.println("Got order: " + receivedMessage.getText());</programlisting>
- <para>It is as simple as that. For a wide range of working JMS examples please see the
- examples directory in the distribution.</para>
- <warning>
- <para>Please note that JMS connections, sessions, producers and consumers are
- <emphasis>designed to be re-used</emphasis>.</para>
- <para>It is an anti-pattern to create new connections, sessions, producers and consumers
- for each message you produce or consume. If you do this, your application will
- perform very poorly. This is discussed further in the section on performance tuning
- <xref linkend="perf-tuning"/>.</para>
- </warning>
- </section>
- </section>
- <section>
- <title>Directly instantiating JMS Resources without using JNDI</title>
- <para>Although it is a very common JMS usage pattern to lookup JMS <emphasis>Administered
- Objects</emphasis> (that's JMS Queue, Topic and ConnectionFactory instances) from JNDI,
- in some cases you just think "Why do I need JNDI? Why can't I just instantiate these
- objects directly?"</para>
- <para>With ActiveMQ you can do exactly that. ActiveMQ supports the direct instantiation of JMS
- Queue, Topic and ConnectionFactory instances, so you don't have to use JNDI at
- all.</para>
- <para>For a full working example of direct instantiation please see the JMS examples in
- <xref linkend="examples"/>.</para>
- <para>Here's our simple example, rewritten to not use JNDI at all:</para>
- <para>We create the JMS ConnectionFactory object via the ActiveMQJMSClient Utility class,
- note we need to provide connection parameters and specify which transport we are using,
- for more information on connectors please see <xref linkend="configuring-transports"
- />.</para>
- <programlisting>
-TransportConfiguration transportConfiguration = new TransportConfiguration(NettyConnectorFactory.class.getName());
-ConnectionFactory cf = ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF,transportConfiguration);</programlisting>
- <para>We also create the JMS Queue object via the ActiveMQJMSClient Utility class:</para>
- <programlisting>Queue orderQueue = ActiveMQJMSClient.createQueue("OrderQueue");</programlisting>
- <para>Next we create a JMS connection using the connection factory:</para>
- <programlisting>Connection connection = cf.createConnection();</programlisting>
- <para>And we create a non transacted JMS Session, with AUTO_ACKNOWLEDGE acknowledge
- mode:</para>
- <programlisting>Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);</programlisting>
- <para>We create a MessageProducer that will send orders to the queue:</para>
- <programlisting>MessageProducer producer = session.createProducer(orderQueue);</programlisting>
- <para>And we create a MessageConsumer which will consume orders from the queue:</para>
- <programlisting>MessageConsumer consumer = session.createConsumer(orderQueue);</programlisting>
- <para>We make sure we start the connection, or delivery won't occur on it:</para>
- <programlisting>connection.start();</programlisting>
- <para>We create a simple TextMessage and send it:</para>
- <programlisting>TextMessage message = session.createTextMessage("This is an order");
-producer.send(message);</programlisting>
- <para>And we consume the message:</para>
- <programlisting>TextMessage receivedMessage = (TextMessage)consumer.receive();
-System.out.println("Got order: " + receivedMessage.getText());</programlisting>
- </section>
- <section id="using-jms.clientid">
- <title>Setting The Client ID</title>
- <para>This represents the client id for a JMS client and is needed for creating durable
- subscriptions. It is possible to configure this on the connection factory and can be set
- via the <literal>client-id</literal> element. Any connection created by this connection
- factory will have this set as its client id.</para>
- </section>
- <section id="using-jms.dupsokbatchsize">
- <title>Setting The Batch Size for DUPS_OK </title>
- <para>When the JMS acknowledge mode is set to <literal>DUPS_OK</literal> it is possible to
- configure the consumer so that it sends acknowledgements in batches rather that one at a
- time, saving valuable bandwidth. This can be configured via the connection factory via
- the <literal>dups-ok-batch-size</literal> element and is set in bytes. The default is
- 1024 * 1024 bytes = 1 MiB.</para>
- </section>
- <section id="using-jms.txbatchsize">
- <title>Setting The Transaction Batch Size</title>
- <para>When receiving messages in a transaction it is possible to configure the consumer to
- send acknowledgements in batches rather than individually saving valuable bandwidth.
- This can be configured on the connection factory via the <literal
- >transaction-batch-size</literal> element and is set in bytes. The default is 1024 *
- 1024.</para>
- </section>
-</chapter>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/using-server.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/using-server.md b/docs/user-manual/en/using-server.md
new file mode 100644
index 0000000..9998646
--- /dev/null
+++ b/docs/user-manual/en/using-server.md
@@ -0,0 +1,204 @@
+Using the Server
+================
+
+This chapter will familiarise you with how to use the ActiveMQ server.
+
+We'll show where it is, how to start and stop it, and we'll describe the
+directory layout and what all the files are and what they do.
+
+For the remainder of this chapter when we talk about the ActiveMQ server
+we mean the ActiveMQ standalone server, in its default configuration
+with a JMS Service and JNDI service enabled.
+
+When running embedded in JBoss Application Server the layout may be
+slightly different but by-and-large will be the same.
+
+Starting and Stopping the standalone server
+===========================================
+
+In the distribution you will find a directory called `bin`.
+
+`cd` into that directory and you will find a Unix/Linux script called
+`activemq` and a Windows script called `activemq.cmd`.
+
+To start the ActiveMQ instance on Unix/Linux type `./activemq run`
+
+To start the ActiveMQ instance on Windows type `activemq.cmd run`
+
+These scripts are very simple and basically just set-up the classpath
+and some JVM parameters and bootstrap the server using
+[Airline](https://github.com/airlift/airline).
+
+To stop the ActiveMQ instance you will use the same `activemq` script.
+
+To run on Unix/Linux type `./activemq stop`
+
+To run on Windows type `activemq.cmd stop`
+
+Please note that ActiveMQ requires a Java 6 or later runtime to run.
+
+By default the `config/non-clustered/bootstrap.xml` configuration is
+used. The configuration can be changed e.g. by running
+`./activemq run -- xml:../config/clustered/bootstrap.xml` or another
+config of your choosing.
+
+Server JVM settings
+===================
+
+The run scripts set some JVM settings for tuning the garbage collection
+policy and heap size. We recommend using a parallel garbage collection
+algorithm to smooth out latency and minimise large GC pauses.
+
+By default ActiveMQ runs in a maximum of 1GiB of RAM. To increase the
+memory settings change the `-Xms` and `-Xmx` memory settings as you
+would for any Java program.
+
+If you wish to add any more JVM arguments or tune the existing ones, the
+run scripts are the place to do it.
+
+Pre-configured Options
+======================
+
+The distribution contains several standard configuration sets for
+running:
+
+- Non clustered stand-alone.
+
+- Clustered stand-alone
+
+- Replicated stand-alone
+
+- Shared-store stand-alone
+
+You can of course create your own configuration and specify any
+configuration when running the run script.
+
+Library Path
+============
+
+If you're using the [Asynchronous IO Journal](#aio-journal) on Linux,
+you need to specify `java.library.path` as a property on your Java
+options. This is done automatically in the scripts.
+
+If you don't specify `java.library.path` at your Java options then the
+JVM will use the environment variable `LD_LIBRARY_PATH`.
+
+System properties
+=================
+
+ActiveMQ can take a system property on the command line for configuring
+logging.
+
+For more information on configuring logging, please see ?.
+
+Configuration files
+===================
+
+The configuration file used to bootstrap the server (e.g.
+`bootstrap.xml` by default) references the specific broker configuration
+files.
+
+- `activemq-configuration.xml`. This is the main ActiveMQ
+ configuration file. All the parameters in this file are described in
+ ?. Please see ? for more information on this file.
+
+- `activemq-queues.xml`. This file contains predefined queues, queue
+ settings and security settings. The file is optional - all this
+ configuration can also live in `activemq-configuration.xml`. In
+ fact, the default configuration sets do not have a
+ `activemq-queues.xml` file. The purpose of allowing queues to be
+ configured in these files is to allow you to manage your queue
+ configuration over many files instead of being forced to maintain it
+ in a single file. There can be many `activemq-queues.xml` files on
+ the classpath. All will be loaded if found.
+
+- `activemq-users.xml` ActiveMQ ships with a basic security manager
+ implementation which obtains user credentials from the
+ `activemq-users.xml` file. This file contains user, password and
+ role information. For more information on security, please see ?.
+
+- `activemq-jms.xml` The distro configuration by default includes a
+ server side JMS service which mainly deploys JMS Queues, Topics and
+ ConnectionFactorys from this file into JNDI. If you're not using
+ JMS, or you don't need to deploy JMS objects on the server side,
+ then you don't need this file. For more information on using JMS,
+ please see ?.
+
+> **Note**
+>
+> The property `file-deployment-enabled` in the
+> `activemq-configuration.xml` configuration when set to false means
+> that the other configuration files are not loaded. This is true by
+> default.
+
+It is also possible to use system property substitution in all the
+configuration files. by replacing a value with the name of a system
+property. Here is an example of this with a connector configuration:
+
+ <connector name="netty">
+ <factory-class>org.apache.activemq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
+ <param key="host" value="${activemq.remoting.netty.host:localhost}"/>
+ <param key="port" value="${activemq.remoting.netty.port:5445}"/>
+ </connector>
+
+Here you can see we have replaced 2 values with system properties
+`activemq.remoting.netty.host` and `activemq.remoting.netty.port`. These
+values will be replaced by the value found in the system property if
+there is one, if not they default back to localhost or 5445
+respectively. It is also possible to not supply a default. i.e.
+`${activemq.remoting.netty.host}`, however the system property *must* be
+supplied in that case.
+
+Bootstrap File
+==============
+
+The stand-alone server is basically a set of POJOs which are
+instantiated by Airline commands.
+
+The bootstrap file is very simple. Let's take a look at an example:
+
+ <broker xmlns="http://activemq.org/schema">
+
+ <file:core configuration="${activemq.home}/config/stand-alone/non-clustered/activemq-configuration.xml"></core>
+ <file:jms configuration="${activemq.home}/config/stand-alone/non-clustered/activemq-jms.xml"></jms>
+
+ <basic-security/>
+
+ <naming bindAddress="localhost" port="1099" rmiBindAddress="localhost" rmiPort="1098"/>
+
+ </broker>
+
+- core
+
+ Instantiates a core server using the configuration file from the
+ `configuration` attribute. This is the main broker POJO necessary to
+ do all the real messaging work.
+
+- jms
+
+ This deploys any JMS Objects such as JMS Queues, Topics and
+ ConnectionFactory instances from the `activemq-jms.xml` file
+ specified. It also provides a simple management API for manipulating
+ JMS Objects. On the whole it just translates and delegates its work
+ to the core server. If you don't need to deploy JMS Queues, Topics
+ and ConnectionFactories from server side configuration and don't
+ require the JMS management interface this can be disabled.
+
+- naming
+
+ Instantiates a naming server which implements JNDI. This is used by
+ JMS clients
+
+The main configuration file.
+============================
+
+The configuration for the ActiveMQ core server is contained in
+`activemq-configuration.xml`. This is what the FileConfiguration bean
+uses to configure the messaging server.
+
+There are many attributes which you can configure ActiveMQ. In most
+cases the defaults will do fine, in fact every attribute can be
+defaulted which means a file with a single empty `configuration` element
+is a valid configuration file. The different configuration will be
+explained throughout the manual or you can refer to the configuration
+reference [here](#configuration-index).
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/using-server.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/using-server.xml b/docs/user-manual/en/using-server.xml
deleted file mode 100644
index 3653711..0000000
--- a/docs/user-manual/en/using-server.xml
+++ /dev/null
@@ -1,208 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ============================================================================= -->
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more -->
-<!-- contributor license agreements. See the NOTICE file distributed with -->
-<!-- this work for additional information regarding copyright ownership. -->
-<!-- The ASF licenses this file to You under the Apache License, Version 2.0 -->
-<!-- (the "License"); you may not use this file except in compliance with -->
-<!-- the License. You may obtain a copy of the License at -->
-<!-- -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
-<!-- -->
-<!-- Unless required by applicable law or agreed to in writing, software -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -->
-<!-- See the License for the specific language governing permissions and -->
-<!-- limitations under the License. -->
-<!-- ============================================================================= -->
-
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "ActiveMQ_User_Manual.ent">
-%BOOK_ENTITIES;
-]>
-<chapter id="using-server">
- <title>Using the Server</title>
- <para>This chapter will familiarise you with how to use the ActiveMQ server.</para>
- <para>We'll show where it is, how to start and stop it, and we'll describe the directory layout
- and what all the files are and what they do.</para>
- <para>For the remainder of this chapter when we talk about the ActiveMQ server we mean the
- ActiveMQ standalone server, in its default configuration with a JMS Service and JNDI service
- enabled.</para>
- <para>When running embedded in JBoss Application Server the layout may be slightly different but
- by-and-large will be the same.</para>
- <section>
- <title>Starting and Stopping the standalone server</title>
- <para>In the distribution you will find a directory called <literal>bin</literal>.</para>
- <para><literal>cd</literal> into that directory and you will find a Unix/Linux script called
- <literal>activemq</literal> and a Windows script called <literal>activemq.cmd</literal>.</para>
- <para>To start the ActiveMQ instance on Unix/Linux type <literal>./activemq run</literal></para>
- <para>To start the ActiveMQ instance on Windows type <literal>activemq.cmd run</literal></para>
- <para>These scripts are very simple and basically just set-up the classpath and some JVM
- parameters and bootstrap the server using <ulink
- url="https://github.com/airlift/airline">Airline</ulink>.</para>
- <para>To stop the ActiveMQ instance you will use the same <literal>activemq</literal> script.</para>
- <para>To run on Unix/Linux type <literal>./activemq stop</literal></para>
- <para>To run on Windows type <literal>activemq.cmd stop</literal></para>
- <para>Please note that ActiveMQ requires a Java 6 or later runtime to run.</para>
- <para>By default the <literal>config/non-clustered/bootstrap.xml</literal> configuration is used. The
- configuration can be changed e.g. by running
- <literal>./activemq run -- xml:../config/clustered/bootstrap.xml</literal> or another config of
- your choosing.</para>
- </section>
- <section>
- <title>Server JVM settings</title>
- <para>The run scripts set some JVM settings for tuning the garbage collection policy
- and heap size. We recommend using a parallel garbage collection algorithm to smooth
- out latency and minimise large GC pauses.</para>
- <para>By default ActiveMQ runs in a maximum of 1GiB of RAM. To increase the memory settings
- change the <literal>-Xms</literal> and <literal>-Xmx</literal> memory settings as you
- would for any Java program.</para>
- <para>If you wish to add any more JVM arguments or tune the existing ones, the run scripts
- are the place to do it.</para>
- </section>
- <section>
- <title>Pre-configured Options</title>
- <para>The distribution contains several standard configuration sets for running:</para>
- <itemizedlist>
- <listitem>
- <para>Non clustered stand-alone.</para>
- </listitem>
- <listitem>
- <para>Clustered stand-alone</para>
- </listitem>
- <listitem>
- <para>Replicated stand-alone</para>
- </listitem>
- <listitem>
- <para>Shared-store stand-alone</para>
- </listitem>
- </itemizedlist>
- <para>You can of course create your own configuration and specify any configuration
- when running the run script.</para>
- </section>
- <section id="using-server.library.path">
- <title>Library Path</title>
- <para>If you're using the <link linkend="aio-journal">Asynchronous IO Journal</link> on
- Linux, you need to specify <literal>java.library.path</literal> as a property on your
- Java options. This is done automatically in the scripts.</para>
- <para>If you don't specify <literal>java.library.path</literal> at your Java options then
- the JVM will use the environment variable <literal>LD_LIBRARY_PATH</literal>.</para>
- </section>
- <section>
- <title>System properties</title>
- <para>ActiveMQ can take a system property on the command line for configuring logging.</para>
- <para>For more information on configuring logging, please see <xref linkend="logging"
- />.</para>
- </section>
- <section id="using-server.configuration">
- <title>Configuration files</title>
- <para>The configuration file used to bootstrap the server (e.g. <literal>bootstrap.xml</literal>
- by default) references the specific broker configuration files.</para>
- <itemizedlist>
- <listitem>
- <para><literal>activemq-configuration.xml</literal>. This is the main ActiveMQ
- configuration file. All the parameters in this file are described in <xref
- linkend="configuration-index"/>. Please see <xref
- linkend="usingserver.mainconfig"/> for more information on this file.</para>
- </listitem>
- <listitem>
- <para><literal>activemq-queues.xml</literal>. This file contains predefined queues,
- queue settings and security settings. The file is optional - all this
- configuration can also live in <literal>activemq-configuration.xml</literal>. In
- fact, the default configuration sets do not have a <literal
- >activemq-queues.xml</literal> file. The purpose of allowing queues to be
- configured in these files is to allow you to manage your queue configuration
- over many files instead of being forced to maintain it in a single file. There
- can be many <literal>activemq-queues.xml</literal> files on the classpath. All
- will be loaded if found.</para>
- </listitem>
- <listitem>
- <para><literal>activemq-users.xml</literal> ActiveMQ ships with a basic security
- manager implementation which obtains user credentials from the <literal
- >activemq-users.xml</literal> file. This file contains user, password and
- role information. For more information on security, please see <xref
- linkend="security"/>.</para>
- </listitem>
- <listitem>
- <para><literal>activemq-jms.xml</literal> The distro configuration by default
- includes a server side JMS service which mainly deploys JMS Queues, Topics and
- ConnectionFactorys from this file into JNDI. If you're not using JMS, or you
- don't need to deploy JMS objects on the server side, then you don't need this
- file. For more information on using JMS, please see <xref linkend="using-jms"
- />.</para>
- </listitem>
- </itemizedlist>
- <note>
- <para>The property <literal>file-deployment-enabled</literal> in the <literal
- >activemq-configuration.xml</literal> configuration when set to false means that
- the other configuration files are not loaded. This is true by default.</para>
- </note>
- <para>It is also possible to use system property substitution in all the configuration
- files. by replacing a value with the name of a system property. Here is an example of
- this with a connector configuration:</para>
- <programlisting>
-<connector name="netty">
- <factory-class>org.apache.activemq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
- <param key="host" value="${activemq.remoting.netty.host:localhost}"/>
- <param key="port" value="${activemq.remoting.netty.port:5445}"/>
-</connector></programlisting>
- <para>Here you can see we have replaced 2 values with system properties <literal
- >activemq.remoting.netty.host</literal> and <literal
- >activemq.remoting.netty.port</literal>. These values will be replaced by the value
- found in the system property if there is one, if not they default back to localhost or
- 5445 respectively. It is also possible to not supply a default. i.e. <literal
- >${activemq.remoting.netty.host}</literal>, however the system property
- <emphasis>must</emphasis> be supplied in that case.</para>
- </section>
- <section id="server.bootstrap.configuration">
- <title>Bootstrap File</title>
- <para>The stand-alone server is basically a set of POJOs which are instantiated by Airline commands.</para>
- <para>The bootstrap file is very simple. Let's take a look at an example:</para>
- <para>
- <programlisting>
-<broker xmlns="http://activemq.org/schema">
-
- <file:core configuration="${activemq.home}/config/stand-alone/non-clustered/activemq-configuration.xml"></core>
- <file:jms configuration="${activemq.home}/config/stand-alone/non-clustered/activemq-jms.xml"></jms>
-
- <basic-security/>
-
- <naming bindAddress="localhost" port="1099" rmiBindAddress="localhost" rmiPort="1098"/>
-
-</broker></programlisting>
- </para>
- <itemizedlist>
- <listitem>
- <para>core</para>
- <para>Instantiates a core server using the configuration file from the
- <literal>configuration</literal> attribute. This is the main broker POJO necessary
- to do all the real messaging work.</para>
- </listitem>
- <listitem id="jms">
- <para>jms</para>
- <para>This deploys any JMS Objects such as JMS Queues, Topics and ConnectionFactory
- instances from the <literal>activemq-jms.xml</literal> file specified. It also
- provides a simple management API for manipulating JMS Objects. On the whole it
- just translates and delegates its work to the core server. If you don't need to
- deploy JMS Queues, Topics and ConnectionFactories from server side configuration
- and don't require the JMS management interface this can be disabled.</para>
- </listitem>
- <listitem>
- <para>naming</para>
- <para>Instantiates a naming server which implements JNDI. This is used by JMS
- clients</para>
- </listitem>
- </itemizedlist>
- </section>
- <section id="usingserver.mainconfig">
- <title>The main configuration file.</title>
- <para>The configuration for the ActiveMQ core server is contained in <literal
- >activemq-configuration.xml</literal>. This is what the FileConfiguration bean uses
- to configure the messaging server.</para>
- <para>There are many attributes which you can configure ActiveMQ. In most cases the defaults
- will do fine, in fact every attribute can be defaulted which means a file with a single
- empty <literal>configuration</literal> element is a valid configuration file. The
- different configuration will be explained throughout the manual or you can refer to the
- configuration reference <link linkend="configuration-index">here</link>.</para>
- </section>
-</chapter>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/vertx-integration.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/vertx-integration.md b/docs/user-manual/en/vertx-integration.md
new file mode 100644
index 0000000..0b89d79
--- /dev/null
+++ b/docs/user-manual/en/vertx-integration.md
@@ -0,0 +1,91 @@
+Vert.x Integration
+==================
+
+[Vert.x](http://vertx.io/) is a lightweight, high performance
+application platform for the JVM that's designed for modern mobile, web,
+and enterprise applications. Vert.x provides a distributed event bus
+that allows messages to be sent across vert.x instances and clients. You
+can now redirect and persist any vert.x messages to ActiveMQ and route
+those messages to a specified vertx address by configuring ActiveMQ
+vertx incoming and outgoing vertx connector services.
+
+Configuring a Vertx Incoming Connector Service
+==============================================
+
+Vertx Incoming Connector services receive messages from vertx event bus
+and route them to a ActiveMQ queue. Such a service can be configured as
+follows:
+
+ <connector-service name="vertx-incoming-connector">
+ <factory-class>org.apache.activemq.integration.vertx.VertxIncomingConnectorServiceFactory</factory-class>
+ <param key="host" value="127.0.0.1"/>
+ <param key="port" value="0"/>
+ <param key="queue" value="jms.queue.vertxQueue"/>
+ <param key="vertx-address" value="vertx.in.eventaddress"/>
+ </connector-service>
+
+
+Shown are the required params for the connector service:
+
+- `queue`. The name of the ActiveMQ queue to send message to.
+
+As well as these required paramaters there are the following optional
+parameters
+
+- `host`. The host name on which the vertx target container is
+ running. Default is localhost.
+
+- `port`. The port number to which the target vertx listens. Default
+ is zero.
+
+- `quorum-size`. The quorum size of the target vertx instance.
+
+- `ha-group`. The name of the ha-group of target vertx instance.
+ Default is `activemq`.
+
+- `vertx-address`. The vertx address to listen to. default is
+ org.apache.activemq.
+
+Configuring a Vertx Outgoing Connector Service
+==============================================
+
+Vertx Outgoing Connector services fetch vertx messages from a ActiveMQ
+queue and put them to vertx event bus. Such a service can be configured
+as follows:
+
+ <connector-service name="vertx-outgoing-connector">
+ <factory-class>org.apache.activemq.integration.vertx.VertxOutgoingConnectorServiceFactory</factory-class>
+ <param key="host" value="127.0.0.1"/>
+ <param key="port" value="0"/>
+ <param key="queue" value="jms.queue.vertxQueue"/>
+ <param key="vertx-address" value="vertx.out.eventaddress"/>
+ <param key="publish" value="true"/>
+ </connector-service>
+
+
+Shown are the required params for the connector service:
+
+- `queue`. The name of the ActiveMQ queue to fetch message from.
+
+As well as these required paramaters there are the following optional
+parameters
+
+- `host`. The host name on which the vertx target container is
+ running. Default is localhost.
+
+- `port`. The port number to which the target vertx listens. Default
+ is zero.
+
+- `quorum-size`. The quorum size of the target vertx instance.
+
+- `ha-group`. The name of the ha-group of target vertx instance.
+ Default is `activemq`.
+
+- `vertx-address`. The vertx address to put messages to. default is
+ org.apache.activemq.
+
+- `publish`. How messages is sent to vertx event bus. "true" means
+ using publish style. "false" means using send style. Default is
+ false.
+
+
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/vertx-integration.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/vertx-integration.xml b/docs/user-manual/en/vertx-integration.xml
deleted file mode 100644
index adcb612..0000000
--- a/docs/user-manual/en/vertx-integration.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ============================================================================= -->
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more -->
-<!-- contributor license agreements. See the NOTICE file distributed with -->
-<!-- this work for additional information regarding copyright ownership. -->
-<!-- The ASF licenses this file to You under the Apache License, Version 2.0 -->
-<!-- (the "License"); you may not use this file except in compliance with -->
-<!-- the License. You may obtain a copy of the License at -->
-<!-- -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
-<!-- -->
-<!-- Unless required by applicable law or agreed to in writing, software -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -->
-<!-- See the License for the specific language governing permissions and -->
-<!-- limitations under the License. -->
-<!-- ============================================================================= -->
-
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
- <!ENTITY % BOOK_ENTITIES SYSTEM "ActiveMQ_User_Manual.ent">
- %BOOK_ENTITIES;
- ]>
-<chapter id="vertx-integration">
- <title>Vert.x Integration</title>
- <para><ulink url="http://vertx.io/">Vert.x</ulink> is a lightweight, high performance application platform for the
- JVM that's designed for modern mobile, web, and enterprise applications. Vert.x provides a distributed event bus that
- allows messages to be sent across vert.x instances and clients. You can now redirect and persist any vert.x messages
- to ActiveMQ and route those messages to a specified vertx address by configuring ActiveMQ vertx incoming and outgoing
- vertx connector services.
- </para>
-
- <section>
- <title>Configuring a Vertx Incoming Connector Service</title>
- <para>Vertx Incoming Connector services receive messages from vertx event bus and route them to a ActiveMQ queue.
- Such a service can be configured as follows:</para>
- <programlisting>
- <connector-service name="vertx-incoming-connector">
- <factory-class>org.apache.activemq.integration.vertx.VertxIncomingConnectorServiceFactory</factory-class>
- <param key="host" value="127.0.0.1"/>
- <param key="port" value="0"/>
- <param key="queue" value="jms.queue.vertxQueue"/>
- <param key="vertx-address" value="vertx.in.eventaddress"/>
- </connector-service>
- </programlisting>
- <para>Shown are the required params for the connector service:</para>
- <itemizedlist>
- <listitem>
- <para><literal>queue</literal>. The name of the ActiveMQ queue to send message to.</para>
- </listitem>
- </itemizedlist>
- <para>As well as these required paramaters there are the following optional parameters</para>
- <itemizedlist>
- <listitem>
- <para><literal>host</literal>. The host name on which the vertx target container is running. Default is localhost.</para>
- </listitem>
- <listitem>
- <para><literal>port</literal>. The port number to which the target vertx listens. Default is zero.</para>
- </listitem>
- <listitem>
- <para><literal>quorum-size</literal>. The quorum size of the target vertx instance.</para>
- </listitem>
- <listitem>
- <para><literal>ha-group</literal>. The name of the ha-group of target vertx instance. Default is <literal>activemq</literal>.</para>
- </listitem>
- <listitem>
- <para><literal>vertx-address</literal>. The vertx address to listen to. default is org.apache.activemq.</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Configuring a Vertx Outgoing Connector Service</title>
- <para>Vertx Outgoing Connector services fetch vertx messages from a ActiveMQ queue and put them to vertx event bus.
- Such a service can be configured as follows:</para>
- <programlisting>
- <connector-service name="vertx-outgoing-connector">
- <factory-class>org.apache.activemq.integration.vertx.VertxOutgoingConnectorServiceFactory</factory-class>
- <param key="host" value="127.0.0.1"/>
- <param key="port" value="0"/>
- <param key="queue" value="jms.queue.vertxQueue"/>
- <param key="vertx-address" value="vertx.out.eventaddress"/>
- <param key="publish" value="true"/>
- </connector-service>
- </programlisting>
- <para>Shown are the required params for the connector service:</para>
- <itemizedlist>
- <listitem>
- <para><literal>queue</literal>. The name of the ActiveMQ queue to fetch message from.</para>
- </listitem>
- </itemizedlist>
- <para>As well as these required paramaters there are the following optional parameters</para>
- <itemizedlist>
- <listitem>
- <para><literal>host</literal>. The host name on which the vertx target container is running. Default is localhost.</para>
- </listitem>
- <listitem>
- <para><literal>port</literal>. The port number to which the target vertx listens. Default is zero.</para>
- </listitem>
- <listitem>
- <para><literal>quorum-size</literal>. The quorum size of the target vertx instance.</para>
- </listitem>
- <listitem>
- <para><literal>ha-group</literal>. The name of the ha-group of target vertx instance. Default is <literal>activemq</literal>.</para>
- </listitem>
- <listitem>
- <para><literal>vertx-address</literal>. The vertx address to put messages to. default is org.apache.activemq.</para>
- </listitem>
- <listitem>
- <para><literal>publish</literal>. How messages is sent to vertx event bus. "true" means using publish style.
- "false" means using send style. Default is false.</para>
- </listitem>
- </itemizedlist>
- </section>
-</chapter>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/wildcard-routing.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/wildcard-routing.md b/docs/user-manual/en/wildcard-routing.md
new file mode 100644
index 0000000..cabf9bd
--- /dev/null
+++ b/docs/user-manual/en/wildcard-routing.md
@@ -0,0 +1,21 @@
+Routing Messages With Wild Cards
+================================
+
+ActiveMQ allows the routing of messages via wildcard addresses.
+
+If a queue is created with an address of say `queue.news.#` then it will
+receive any messages sent to addresses that match this, for instance
+`queue.news.europe` or `queue.news.usa` or `queue.news.usa.sport`. If
+you create a consumer on this queue, this allows a consumer to consume
+messages which are sent to a *hierarchy* of addresses.
+
+> **Note**
+>
+> In JMS terminology this allows "topic hierarchies" to be created.
+
+To enable this functionality set the property
+`wild-card-routing-enabled` in the `activemq-configuration.xml` file to
+`true`. This is `true` by default.
+
+For more information on the wild card syntax take a look at ? chapter,
+also see ?.
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/wildcard-routing.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/wildcard-routing.xml b/docs/user-manual/en/wildcard-routing.xml
deleted file mode 100644
index e8ca400..0000000
--- a/docs/user-manual/en/wildcard-routing.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ============================================================================= -->
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more -->
-<!-- contributor license agreements. See the NOTICE file distributed with -->
-<!-- this work for additional information regarding copyright ownership. -->
-<!-- The ASF licenses this file to You under the Apache License, Version 2.0 -->
-<!-- (the "License"); you may not use this file except in compliance with -->
-<!-- the License. You may obtain a copy of the License at -->
-<!-- -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
-<!-- -->
-<!-- Unless required by applicable law or agreed to in writing, software -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -->
-<!-- See the License for the specific language governing permissions and -->
-<!-- limitations under the License. -->
-<!-- ============================================================================= -->
-
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "ActiveMQ_User_Manual.ent">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="wildcard-routing">
- <title>Routing Messages With Wild Cards</title>
- <para>ActiveMQ allows the routing of messages via wildcard addresses.</para>
- <para>If a queue is created with an address of say <literal>queue.news.#</literal> then it
- will receive any messages sent to addresses that match this, for instance <literal
- >queue.news.europe</literal> or <literal>queue.news.usa</literal> or <literal
- >queue.news.usa.sport</literal>. If you create a consumer on this queue, this allows a consumer to consume messages which are
- sent to a <emphasis>hierarchy</emphasis> of addresses.</para>
- <note>
- <para>In JMS terminology this allows "topic hierarchies" to be created.</para>
- </note>
- <para>To enable this functionality set the property <literal>wild-card-routing-enabled</literal>
- in the <literal>activemq-configuration.xml</literal> file to <literal>true</literal>. This is
- <literal>true</literal> by default.</para>
- <para>For more information on the wild card syntax take a look at <xref
- linkend="wildcard-syntax" /> chapter, also see <xref
- linkend="topic-hierarchy-example" />.</para>
-</chapter>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/wildcard-syntax.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/wildcard-syntax.md b/docs/user-manual/en/wildcard-syntax.md
new file mode 100644
index 0000000..3fe7b37
--- /dev/null
+++ b/docs/user-manual/en/wildcard-syntax.md
@@ -0,0 +1,28 @@
+Understanding the ActiveMQ Wildcard Syntax
+==========================================
+
+ActiveMQ uses a specific syntax for representing wildcards in security
+settings, address settings and when creating consumers.
+
+The syntax is similar to that used by [AMQP](http://www.amqp.org).
+
+A ActiveMQ wildcard expression contains words delimited by the character
+'`.`' (full stop).
+
+The special characters '`#`' and '`*`' also have special meaning and can
+take the place of a word.
+
+The character '`#`' means 'match any sequence of zero or more words'.
+
+The character '`*`' means 'match a single word'.
+
+So the wildcard 'news.europe.\#' would match 'news.europe',
+'news.europe.sport', 'news.europe.politics', and
+'news.europe.politics.regional' but would not match 'news.usa',
+'news.usa.sport' nor 'entertainment'.
+
+The wildcard 'news.\*' would match 'news.europe', but not
+'news.europe.sport'.
+
+The wildcard 'news.\*.sport' would match 'news.europe.sport' and also
+'news.usa.sport', but not 'news.europe.politics'.
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/en/wildcard-syntax.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/wildcard-syntax.xml b/docs/user-manual/en/wildcard-syntax.xml
deleted file mode 100644
index 4ad78bb..0000000
--- a/docs/user-manual/en/wildcard-syntax.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ============================================================================= -->
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more -->
-<!-- contributor license agreements. See the NOTICE file distributed with -->
-<!-- this work for additional information regarding copyright ownership. -->
-<!-- The ASF licenses this file to You under the Apache License, Version 2.0 -->
-<!-- (the "License"); you may not use this file except in compliance with -->
-<!-- the License. You may obtain a copy of the License at -->
-<!-- -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
-<!-- -->
-<!-- Unless required by applicable law or agreed to in writing, software -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -->
-<!-- See the License for the specific language governing permissions and -->
-<!-- limitations under the License. -->
-<!-- ============================================================================= -->
-
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "ActiveMQ_User_Manual.ent">
-%BOOK_ENTITIES;
-]>
-
-<chapter id="wildcard-syntax">
- <title>Understanding the ActiveMQ Wildcard Syntax</title>
- <para>ActiveMQ uses a specific syntax for representing wildcards in security settings,
- address settings and when creating consumers.</para>
- <para>The syntax is similar to that used by <ulink url="http://www.amqp.org">AMQP</ulink>.</para>
- <para>A ActiveMQ wildcard expression contains words delimited by the character '<literal
- >.</literal>' (full stop).</para>
- <para>The special characters '<literal>#</literal>' and '<literal>*</literal>' also have special
- meaning and can take the place of a word.</para>
- <para>The character '<literal>#</literal>' means 'match any sequence of zero or more
- words'.</para>
- <para>The character '<literal>*</literal>' means 'match a single word'.</para>
- <para>So the wildcard 'news.europe.#' would match 'news.europe', 'news.europe.sport',
- 'news.europe.politics', and 'news.europe.politics.regional' but would not match 'news.usa',
- 'news.usa.sport' nor 'entertainment'.</para>
- <para>The wildcard 'news.*' would match 'news.europe', but not 'news.europe.sport'.</para>
- <para>The wildcard 'news.*.sport' would match 'news.europe.sport' and also 'news.usa.sport', but
- not 'news.europe.politics'.</para>
-</chapter>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/pom.xml
----------------------------------------------------------------------
diff --git a/docs/user-manual/pom.xml b/docs/user-manual/pom.xml
deleted file mode 100644
index cf693f2..0000000
--- a/docs/user-manual/pom.xml
+++ /dev/null
@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one or more
- ~ contributor license agreements. See the NOTICE file distributed with
- ~ this work for additional information regarding copyright ownership.
- ~ The ASF licenses this file to You under the Apache License, Version 2.0
- ~ (the "License"); you may not use this file except in compliance with
- ~ the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.activemq.docs</groupId>
- <artifactId>activemq-docs</artifactId>
- <version>6.0.0-SNAPSHOT</version>
- </parent>
-
- <groupId>org.apache.activemq.docs</groupId>
- <artifactId>user-manual</artifactId>
- <version>1.0</version>
- <packaging>jdocbook</packaging>
- <name>user-manual</name>
-
- <properties>
- <translation>en</translation>
- <docname>ActiveMQ_User_Manual</docname>
- <bookname>ActiveMQ User Manual</bookname>
- </properties>
-
- <repositories>
- <repository>
- <id>jboss-public-repository-group</id>
- <name>JBoss Public Maven Repository Group</name>
- <url>https://repository.jboss.org/nexus/content/groups/public/</url>
- <layout>default</layout>
- <releases>
- <enabled>true</enabled>
- <updatePolicy>never</updatePolicy>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- <updatePolicy>never</updatePolicy>
- </snapshots>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>jboss-public-repository-group</id>
- <name>JBoss Public Maven Repository Group</name>
- <url>https://repository.jboss.org/nexus/content/groups/public/</url>
- <layout>default</layout>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </pluginRepository>
- <!--pluginRepository>
- <id>jboss-snapshot-repository-group</id>
- <name>JBoss Snapshot Maven Repository Group</name>
- <url>https://repository.jboss.org/nexus/content/groups/snapshot/</url>
- <layout>default</layout>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </pluginRepository-->
- </pluginRepositories>
-
- <profiles>
-
- <!-- mvn compile -Phtml -->
- <profile>
- <id>html</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.3.5</version>
- <extensions>true</extensions>
- <configuration>
- <formats>
- <format>
- <formatName>html</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- </formats>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <!-- mvn compile -->
- <profile>
- <id>all</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.3.5</version>
- <extensions>true</extensions>
- <configuration>
- <formats>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>${docname}.pdf</finalName>
- </format>
- <format>
- <formatName>html</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- <format>
- <formatName>html_single</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- </formats>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <!-- mvn compile -Phtml-single -->
- <profile>
- <id>html-single</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.3.5</version>
- <extensions>true</extensions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <!-- mvn compile -Ppdf -->
- <profile>
- <id>pdf</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.3.5</version>
- <extensions>true</extensions>
- <configuration>
- <formats>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>${docname}.pdf</finalName>
- </format>
- </formats>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.2.1</version>
- <extensions>true</extensions>
- <dependencies>
- <dependency>
- <groupId>org.jboss.pressgang</groupId>
- <artifactId>pressgang-xslt</artifactId>
- <version>2.0.2</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-jdocbook-style</artifactId>
- <version>1.1.1</version>
- <type>jdocbook-style</type>
- </dependency>
- </dependencies>
- <configuration>
- <sourceDirectory>${project.basedir}</sourceDirectory>
- <sourceDocumentName>${docname}.xml</sourceDocumentName>
- <masterTranslation>en</masterTranslation>
- <imageResource>
- <directory>${project.basedir}/en</directory>
- <includes>
- <include>images/*.png</include>
- <include>images/*.jpg</include>
- </includes>
- </imageResource>
- <formats>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>${pdf.name}</finalName>
- </format>
- <format>
- <formatName>html</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- <format>
- <formatName>html_single</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
- <finalName>index.html</finalName>
- </format>
- </formats>
- <options>
- <xincludeSupported>true</xincludeSupported>
- <xmlTransformerType>saxon</xmlTransformerType>
- <docbookVersion>1.72.0</docbookVersion>
- <localeSeparator>-</localeSeparator>
- <applyStandardInjectionValues>false</applyStandardInjectionValues>
- <transformerParameters>
- <property>
- <name>javax.xml.parsers.DocumentBuilderFactory</name>
- <value>org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</value>
- </property>
- <property>
- <name>javax.xml.parsers.SAXParserFactory</name>
- <value>org.apache.xerces.jaxp.SAXParserFactoryImpl</value>
- </property>
- </transformerParameters>
- </options>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>xml-maven-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>transform</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <transformerFactory>net.sf.saxon.TransformerFactoryImpl</transformerFactory>
- <transformationSets>
- <transformationSet>
- <dir>../../activemq-server/src/main/resources/schema</dir>
- <stylesheet>./src/main/resources/schemaToTable.xsl</stylesheet>
- <includes>
- <include>activemq-configuration.xsd</include>
- </includes>
- <fileMappers>
- <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
- <targetExtension>.xml</targetExtension>
- </fileMapper>
- </fileMappers>
- </transformationSet>
- <transformationSet>
- <dir>../../activemq-jms-server/src/main/resources/schema</dir>
- <stylesheet>./src/main/resources/schemaToTable.xsl</stylesheet>
- <includes>
- <include>activemq-jms.xsd</include>
- </includes>
- <fileMappers>
- <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
- <targetExtension>.xml</targetExtension>
- </fileMapper>
- </fileMappers>
- </transformationSet>
- </transformationSets>
- </configuration>
- <dependencies>
- <dependency>
- <groupId>net.sf.saxon</groupId>
- <artifactId>saxon</artifactId>
- <version>8.7</version>
- </dependency>
- </dependencies>
- </plugin>
- </plugins>
- </build>
-
- <!--<build>
- <plugins>
- <plugin>
- <groupId>org.jboss.maven.plugins</groupId>
- <artifactId>maven-jdocbook-plugin</artifactId>
- <version>2.2.1</version>
- <extensions>true</extensions>
- <dependencies>
- <dependency>
- <groupId>org.jboss.pressgang</groupId>
- <artifactId>pressgang-xslt</artifactId>
- <version>1.2.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-jdocbook-style</artifactId>
- <version>1.1.1</version>
- <type>jdocbook-style</type>
- </dependency>
- </dependencies>
- <configuration>
- <sourceDocumentName>${docname}.xml</sourceDocumentName>
- <sourceDirectory>.</sourceDirectory>
- <imageResource>
- <directory>${translation}</directory>
- <includes>
- <include>images/*</include>
- </includes>
- </imageResource>
- <options>
- <xincludeSupported>true</xincludeSupported>
- <xmlTransformerType>saxon</xmlTransformerType>
- <transformerParameters>
- <property>
- <name>javax.xml.parsers.DocumentBuilderFactory</name>
- <value>org.apache.xerces.jaxp.DocumentBuilderFactoryImpl</value>
- </property>
- <property>
- <name>javax.xml.parsers.SAXParserFactory</name>
- <value>org.apache.xerces.jaxp.SAXParserFactoryImpl</value>
- </property>
- </transformerParameters>
- </options>
- </configuration>
- </plugin>
- </plugins>
- </build>-->
-</project>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/4245a6b4/docs/user-manual/publican.cfg
----------------------------------------------------------------------
diff --git a/docs/user-manual/publican.cfg b/docs/user-manual/publican.cfg
deleted file mode 100644
index 821b348..0000000
--- a/docs/user-manual/publican.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-# Config::Simple 4.59
-# Tue Mar 29 06:11:07 2011
-
-xml_lang: en
-type: Book
-brand: common
-