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 -
