Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/mqtt-manual.html
==============================================================================
---
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/mqtt-manual.html
(original)
+++
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/mqtt-manual.html
Thu Mar 21 17:29:17 2013
@@ -89,11 +89,17 @@ as an MQTT connection. You don't have to
all be auto-detected). To force specific protocols over a certain connector
there are two ways you can do this.
You can choose to not use protocol detection at all and set the connector to
be specifically for mqtt:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613"</span> <span
class="na">protocol=</span><span class="s">"mqtt"</span><span
class="nt">/></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="tcp" bind="tcp://0.0.0.0:61613"
protocol="mqtt"/>
+</code></pre></div>
<p>Alternatively, you can limit which protocols can be “detected”
using the <code><detect></code> configuration element like this:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613"</span><span
class="nt">></span>
 <span class="nt"><detect</span> <span
class="na">protocols=</span><span class="s">"mqtt openwire"</span>
<span class="nt">/></span>
<span
class="nt"></connector></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="tcp" bind="tcp://0.0.0.0:61613">
+ <detect protocols="mqtt openwire" />
+</connector>
+</code></pre></div>
<p>The <code>protocols</code> attribute in the <code><detect></code>
element takes space delimited protoco values.
The <code>protocol</code> attribtue of the <code><connector></code>
element takes a single protocol, not space delimited. It defaults to
@@ -102,7 +108,11 @@ The <code>protocol</code> attribtue of t
<p>If you wish to tune the MQTT defaults, you can use the <code>mqtt</code>
configuration element within the <code>connector</code> element
in the <code>apollo.xml</code> configuration file :</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613"</span><span
class="nt">></span>
 <span class="nt"><mqtt</span> <span
class="na">max_message_length=</span><span class="s">"1000"</span>
<span class="nt">/></span>
<span
class="nt"></connector></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="tcp" bind="tcp://0.0.0.0:61613">
+ <mqtt max_message_length="1000" />
+</connector>
+</code></pre></div>
<p>The <code>mqtt</code> element supports the following configuration
attributes:</p>
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/openwire-manual.html
==============================================================================
---
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/openwire-manual.html
(original)
+++
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/openwire-manual.html
Thu Mar 21 17:29:17 2013
@@ -84,7 +84,11 @@ to the broker, the protocol version that
in the <code>apollo.xml</code> configuration file to change the default
settings used
in the OpenWire protocol implementation.</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613"</span><span
class="nt">></span>
 <span class="nt"><openwire</span> <span
class="na">attribute=</span><span class="s">"value"</span><span
class="nt">/></span>
<span
class="nt"></connector></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="tcp" bind="tcp://0.0.0.0:61613">
+ <openwire attribute="value"/>
+</connector>
+</code></pre></div>
<p>The <code>openwire</code> element supports the following configuration
attributes:</p>
@@ -109,7 +113,11 @@ and actually closing it. Default is <cod
<p>An example of configuring the OpenWire protocol</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613"</span><span
class="nt">></span>
 <span class="nt"><openwire</span> <span
class="na">tight_encoding=</span><span class="s">"false"</span> <span
class="na">tcp_no_delay=</span><span class="s">"true"</span><span
class="nt">/></span>
<span
class="nt"></connector></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="tcp" bind="tcp://0.0.0.0:61613">
+ <openwire tight_encoding="false"
tcp_no_delay="true"/>
+</connector>
+</code></pre></div>
<h3 id =
"Protocol_Detection__different_that_open-wire_vesion_detection_">Protocol
Detection (different that open-wire vesion detection)</h3>
@@ -120,11 +128,17 @@ the broker, and means you only need to o
If you would like to specify a certain connector for OpenWire and another
connector for a different protocol, you can
explicitly configure the connector to be an OpenWire connector:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">protocol=</span><span
class="s">"openwire"</span> <span class="err">...</span> <span
class="nt">/></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector protocol="openwire" ... />
+</code></pre></div>
<p>You can also support a limited subset of protocols:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">bind=</span><span
class="s">"..."</span><span class="nt">></span>
 <span
class="nt"><detect</span> <span class="na">protocols=</span><span
class="s">"openwire stomp"</span> <span
class="nt">/></span>
<span
class="nt"></connector></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector bind="...">
+ <detect protocols="openwire stomp" />
+</connector>
+</code></pre></div>
<p>Or you can leave it open to any of the supported protocols (default), and
the correct protocol will be used depending
on what the client is using. You do this by not specifying any protocol
settings.</p>
@@ -246,7 +260,16 @@ a value of “me”, pass a sele
<p>Here's an example of producing the message:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="n">MessageProducer</span> <span class="n">producer</span> <span
class="o">=</span> <span class="n">session</span><span class="o">.</span><span
class="na">createProducer</span><span class="o">(</span><span
class="n">destination</span><span class="o">);</span>

<span
class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span
class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span
class="o">;</span> <span class="n">i</span> <span class="o"><</span> <span
class="n">NUM_MESSAGES_TO_SEND</span><span class="o">;</span> <span
class="n">i</span><span class="o">++)</span> <span class="o">{</span>

<span class="n">TextMessage</span> <span class="n">message</span> <span
class="o">=</span> <span class="n">session</span><span class="o">.</span><span
class="na">createTextMessage</span><span class="o">(</span><span
class="s">"Message #"</span> <span class=
"o">+</span> <span class="n">i</span><span class="o">);</span>

<span class="n">LOG</span><span class="o">.</span><span
class="na">info</span><span class="o">(</span><span class="s">"Sending
message #"</span> <span class="o">+</span> <span class="n">i</span><span
class="o">);</span>
 <span class="n">producer</span><span
class="o">.</span><span class="na">send</span><span class="o">(</span><span
class="n">message</span><span class="o">);</span>
 <span
class="n">Thread</span><span class="o">.</span><span
class="na">sleep</span><span class="o">(</span><span
class="n">DELAY</span><span class="o">);</span>
<span
class="o">}</span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: java; gutter: false;'><code>
+MessageProducer producer = session.createProducer(destination);
+
+for (int i = 0; i < NUM_MESSAGES_TO_SEND; i++) {
+ TextMessage message = session.createTextMessage("Message #" + i);
+ LOG.info("Sending message #" + i);
+ producer.send(message);
+ Thread.sleep(DELAY);
+}
+</code></pre></div>
<h4 id = "Browing_Subscription">Browing Subscription</h4>
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/performance-scaling.html
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/schema/apollo.xsd
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/stomp-manual.html
==============================================================================
---
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/stomp-manual.html
(original)
+++
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/stomp-manual.html
Thu Mar 21 17:29:17 2013
@@ -147,7 +147,13 @@ principle kinds)</li>
<p>Example:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613"</span><span
class="nt">></span>
 <span class="nt"><stomp</span> <span
class="na">max_header_length=</span><span
class="s">"10000"</span><span class="nt">></span>
 <span
class="nt"><add_user_header</span> <span class="na">separator=</span><span
class="s">","</span><span class="nt">></span>user<span
class="nt"></add_user_header></span>
 <span
class="nt"></stomp></span>
<span
class="nt"></connector></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="tcp" bind="tcp://0.0.0.0:61613">
+ <stomp max_header_length="10000">
+ <add_user_header separator=",">user</add_user_header>
+ </stomp>
+</connector>
+</code></pre></div>
<h3 id = "Client_Libraries">Client Libraries</h3>
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/user-manual.html
==============================================================================
---
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/user-manual.html
(original)
+++
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/user-manual.html
Thu Mar 21 17:29:17 2013
@@ -189,7 +189,18 @@ configure it to use this <a href="schema
<p>The simplest valid <code>apollo.xml</code> defines a single virtual host
and a
single connector.</p>
-<div class="syntax"><div class="highlight"><pre>
s
<span class="nt"><broker</span> <span class="na">xmlns=</span><span
class="s">"http://activemq.apache.org/schema/activemq/apollo"</span><span
class="nt">></span>

 <span
class="nt"><virtual_host</span> <span class="na">id=</span><span
class="s">"default"</span><span class="nt">></span>

<span class="nt"><host_name></span>localhost<span
class="nt"></host_name></span>
 <span
class="nt"><null_store/></span>
 <span
class="nt"></virtual_host></span>

 <span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613"</span><span
class="nt">/></span>
 
<span
class="nt"></broker></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
s
+<broker
xmlns="http://activemq.apache.org/schema/activemq/apollo">
+
+ <virtual_host id="default">
+ <host_name>localhost</host_name>
+ <null_store/>
+ </virtual_host>
+
+ <connector id="tcp" bind="tcp://0.0.0.0:61613"/>
+
+</broker>
+</code></pre></div>
<p>The broker, virtual host, and connector are assigned an id which which
is used to by the REST based administration console to identify
@@ -205,7 +216,12 @@ it finds problems. You would want to th
if any issues are found with the schema validation you should set
the <code>broker</code> element's <code>validation</code> attribute to
<code>strict</code>. Example:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><broker</span> <span class="na">validation=</span><span
class="s">"strict"</span> 
 <span
class="na">xmlns=</span><span
class="s">"http://activemq.apache.org/schema/activemq/apollo"</span><span
class="nt">></span>
 ...
<span
class="nt"></broker></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<broker validation="strict"
+ xmlns="http://activemq.apache.org/schema/activemq/apollo">
+ ...
+</broker>
+</code></pre></div>
<p>If you would like the broker to automatically trigger a Java
heap garbage collection (GC) cycle periodically, add a <code>auto_gc</code>
@@ -219,7 +235,13 @@ forced GC cycles. If interval is not se
<p>Example:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><broker></span>
 ...
 <span
class="nt"><auto_gc</span> <span class="na">interval=</span><span
class="s">"10"</span><span class="nt">></span>

...
<span
class="nt"></broker></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<broker>
+ ...
+ <auto_gc interval="10">
+ ...
+</broker>
+</code></pre></div>
<h4 id = "Connectors">Connectors</h4>
@@ -254,7 +276,11 @@ configuration elements. For example, to
header of messages to the id of user that sent the message, you would
use the following configuration:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613"</span><span
class="nt">></span>
 <span class="nt"><stomp</span> <span
class="na">add_user_header=</span><span
class="s">"user_id"</span><span class="nt">/></span>
<span
class="nt"></connector></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="tcp" bind="tcp://0.0.0.0:61613">
+ <stomp add_user_header="user_id"/>
+</connector>
+</code></pre></div>
<p>If your using the <code>any</code> protocol then actual protocol being used
will be
detected by examining the client's initial request. You can use the
@@ -271,7 +297,11 @@ the connection is closed.</li>
<p>Example of how to set the protocol detection timeout to 30 seconds:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613"</span><span
class="nt">></span>
 <span class="nt"><detect</span> <span
class="na">timeout=</span><span class="s">"30000"</span><span
class="nt">/></span>
<span
class="nt"></connector></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="tcp" bind="tcp://0.0.0.0:61613">
+ <detect timeout="30000"/>
+</connector>
+</code></pre></div>
<h5 id = "TCP_Transports">TCP Transports</h5>
@@ -308,9 +338,11 @@ buffer (aka setting the socket's SO_RCVB
<p>Example which uses a couple of options:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613?receive_buffer_size=1024&amp;max_read_rate=65536"</span><span
class="nt">/></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="tcp"
bind="tcp://0.0.0.0:61613?receive_buffer_size=1024&amp;max_read_rate=65536"/>
+</code></pre></div>
-<p>Note that <div class="syntax"><div class="highlight"><pre><span
class="ni">&amp;</span>
</pre></div>
</div>
+<p>Note that <div class="syntax"><pre name='code' class='brush: xml; gutter:
false;'><code>&amp;</code></pre></div>
was used to separate the option values instead of just <code>&</code>
since the
URI is within an XML file. In the URI string, we specify what the buffer sizes
should be when the socket is created, but their values can change if
auto-tuning is enabled.</p>
@@ -347,7 +379,9 @@ not all browsers support binary WebSocke
<p>Example configuraiton:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"ws"</span> <span class="na">bind=</span><span
class="s">"ws://0.0.0.0:61623?binary_transfers=false"</span><span
class="nt">/></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="ws"
bind="ws://0.0.0.0:61623?binary_transfers=false"/>
+</code></pre></div>
<p>One thing worth noting is that web sockets (just as Ajax) implements the
same
origin policy, so by default you can access only brokers running on the same
host as
@@ -358,7 +392,9 @@ by different hosts then your should add
a common seperated list of domains that are allowed to access the WebSocket
connector. Use <code>*</code> to allow access from any domain. Example:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"ws"</span> <span class="na">bind=</span><span
class="s">"ws://0.0.0.0:61623?cors_origin=*"</span><span
class="nt">/></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="ws"
bind="ws://0.0.0.0:61623?cors_origin=*"/>
+</code></pre></div>
<h6 id = "WebSocket_Clients">WebSocket Clients</h6>
@@ -390,7 +426,9 @@ handler. That is done by setting the <c
<p>Example:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"udp"</span> <span class="na">bind=</span><span
class="s">"udp://0.0.0.0:61615"</span> <span
class="na">protocol=</span><span class="s">"udp"</span><span
class="nt">/></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<connector id="udp" bind="udp://0.0.0.0:61615"
protocol="udp"/>
+</code></pre></div>
<p>The supported protocols that can be used with the udp transport are:</p>
@@ -543,7 +581,15 @@ Defaults to 'block' if not specified.</p
<p>Example configuraiton:</p>
-<div class="syntax"><div class="highlight"><pre>...
 <span
class="nt"><virtual_host</span> <span class="na">id=</span><span
class="s">"default"</span><span class="nt">></span>

...
 <span class="nt"><queue</span> <span
class="na">id=</span><span class="s">"app1.**"</span> <span
class="na">dlq=</span><span class="s">"dlq.*"</span> <span
class="na">nak_limit=</span><span class="s">"3"</span> <span
class="na">auto_delete_after=</span><span class="s">"0"</span><span
class="nt">/></span>
 ...
 <span
class="nt"></virtual_host></span>
...
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+...
+ <virtual_host id="default">
+ ...
+ <queue id="app1.**" dlq="dlq.*"
nak_limit="3" auto_delete_after="0"/>
+ ...
+ </virtual_host>
+...
+</code></pre></div>
<h5 id = "Topics">Topics</h5>
@@ -581,7 +627,17 @@ attributes of the <code>queue</code> ele
<code>swap_range_size</code>, <code>quota</code>, <code>full_policy</code>,
<code>fast_delivery_rate</code>,
<code>catchup_enqueue_rate</code>, <code>max_enqueue_rate</code>,
<code>dlq</code>, <code>nak_limit</code>. Example:</p>
-<div class="syntax"><div class="highlight"><pre>...
 <span
class="nt"><virtual_host</span> <span class="na">id=</span><span
class="s">"default"</span><span class="nt">></span>

...
 <span class="nt"><topic</span> <span
class="na">id=</span><span class="s">"example"</span> <span
class="na">slow_consumer_policy=</span><span
class="s">"queue"</span><span class="nt">></span>

<span class="nt"><subscription</span> <span
class="na">tail_buffer=</span><span class="s">"4k"</span><span
class="nt">/></span>
 <span
class="nt"></topic></span>
 ...
 <span
class="nt"></virtual_host></span>
...
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+...
+ <virtual_host id="default">
+ ...
+ <topic id="example" slow_consumer_policy="queue">
+ <subscription tail_buffer="4k"/>
+ </topic>
+ ...
+ </virtual_host>
+...
+</code></pre></div>
<h5 id = "Durable_Subscriptions">Durable Subscriptions</h5>
@@ -657,7 +713,15 @@ will use.</p>
<p>It is enabled when your <code>virtual_host</code> element contains a
<code>leveldb_store</code> element.</p>
-<div class="syntax"><div class="highlight"><pre> ...
 <span
class="nt"><virtual_host</span> <span class="na">id=</span><span
class="s">"default"</span><span class="nt">></span>

...
 <span class="nt"><leveldb_store</span> <span
class="na">directory=</span><span
class="s">"${apollo.base}/data"</span><span
class="nt">/></span>
 ..
 <span
class="nt"></virtual_host></span>

...
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+ ...
+ <virtual_host id="default">
+ ...
+ <leveldb_store directory="${apollo.base}/data"/>
+ ..
+ </virtual_host>
+ ...
+</code></pre></div>
<p>A <code>leveldb_store</code> element may be configured with the following
attributes:</p>
@@ -731,7 +795,15 @@ and then copy it into the <code>${APOLLO
<p>Once that is done, you can enable the store by adding a
<code>bdb_store</code> element
inside your <code>virtual_host</code>. Example:</p>
-<div class="syntax"><div class="highlight"><pre> ...
 <span
class="nt"><virtual_host</span> <span class="na">id=</span><span
class="s">"default"</span><span class="nt">></span>

...
 <span class="nt"><bdb_store</span> <span
class="na">directory=</span><span
class="s">"${apollo.base}/data"</span><span
class="nt">/></span>
 ..
 <span
class="nt"></virtual_host></span>

...
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+ ...
+ <virtual_host id="default">
+ ...
+ <bdb_store directory="${apollo.base}/data"/>
+ ..
+ </virtual_host>
+ ...
+</code></pre></div>
<p>A <code>bdb_store</code> element may be configured with the following
attributes:</p>
@@ -760,7 +832,16 @@ the encryption keys and certificates are
<p>Example:</p>
-<div class="syntax"><div class="highlight"><pre> ...
 <span
class="nt"><key_storage</span> 
 <span
class="na">file=</span><span
class="s">"${apollo.base}/etc/keystore"</span> 
 <span
class="na">password=</span><span class="s">"password"</span> 

<span class="na">key_password=</span><span
class="s">"password"</span><span class="nt">/></span>


 <span class="nt"><connector</span> <span
class="na">id=</span><span class="s">"stomp-secure"</span> <span
class="na">bind=</span><span
class="s">"ssl://0.0.0.0:61614"</span><span
class="nt">/></span>
 ...
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+ ...
+ <key_storage
+ file="${apollo.base}/etc/keystore"
+ password="password"
+ key_password="password"/>
+
+ <connector id="stomp-secure"
bind="ssl://0.0.0.0:61614"/>
+ ...
+</code></pre></div>
<p>The <code>connector</code> element's <code>bind</code> attribute controls
which secure transport
algorithm gets used by the sever. Supported values are:</p>
@@ -816,7 +897,27 @@ any virtual hosts which did not define a
want to disable authentication in a virtual host, you set the
<code>enable</code> attribute
to <code>false</code>.</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><broker</span> <span class="na">xmlns=</span><span
class="s">"http://activemq.apache.org/schema/activemq/apollo"</span><span
class="nt">></span>
 <span class="nt"><authentication</span>
<span class="na">domain=</span><span class="s">"internal"</span><span
class="nt">/></span>
 
 <span
class="nt"><virtual_host</span> <span class="na">id=</span><span
class="s">"wine.com"</span><span class="nt">></span>

<span class="nt"><authentication</span> <span class="na">domain=</span><span
class="s">"external"</span><span class="nt">/></span>

<span class="nt"><host_name></span>wine.com<span
class="nt"></host_name></span>
 <span
class="nt"></virtual_host></span>

 <span
class="nt"><virtual_host</span> <span class="na">id=</span><span
class="s">"internal.wine.com"</
span><span class="nt">></span>
 <span
class="nt"><host_name></span>internal.wine.com<span
class="nt"></host_name></span>
 <span
class="nt"></virtual_host></span>

 <span
class="nt"><virtual_host</span> <span class="na">id=</span><span
class="s">"test"</span><span class="nt">></span>
 <span
class="nt"><authentication</span> <span class="na">enabled=</span><span
class="s">"false"</span><span class="nt">/></span>

<span class="nt"><host_name></span>cheeze.com<span
class="nt"></host_name></span>
 <span
class="nt"></virtual_host></span>

 <span
class="nt"><connector</span> <span class="na">id=</span><span
class="s">"tcp"</span> <span class="na">bind=</span><span
class="s">"tcp://0.0.0.0:61613"</span><span
class="nt">/></span>
<span
class="nt"></broker></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<broker
xmlns="http://activemq.apache.org/schema/activemq/apollo">
+ <authentication domain="internal"/>
+
+ <virtual_host id="wine.com">
+ <authentication domain="external"/>
+ <host_name>wine.com</host_name>
+ </virtual_host>
+
+ <virtual_host id="internal.wine.com">
+ <host_name>internal.wine.com</host_name>
+ </virtual_host>
+
+ <virtual_host id="test">
+ <authentication enabled="false"/>
+ <host_name>cheeze.com</host_name>
+ </virtual_host>
+
+ <connector id="tcp" bind="tcp://0.0.0.0:61613"/>
+</broker>
+</code></pre></div>
<p>The above example uses 2 JAAS domains, <code>internal</code> and
<code>external</code>. Broker
The <code>wine.com</code> host will use the external domain, the
<code>internal.wine.com</code>
@@ -852,7 +953,17 @@ kinds listed here.</p>
<p>Example of customizing the principal kinds used:</p>
-<div class="syntax"><div class="highlight"><pre> ...
 <span
class="nt"><authentication</span> <span class="na">domain=</span><span
class="s">"apollo"</span><span class="nt">></span>

<span
class="nt"><user_principal_kind></span>com.sun.security.auth.UnixPrincipal<span
class="nt"></user_principal_kind></span>
 <span
class="nt"><user_principal_kind></span>com.sun.security.auth.LdapPrincipal<span
class="nt"></user_principal_kind></span>
 <span
class="nt"><acl_principal_kind></span>com.sun.security.auth.UnixPrincipal<span
class="nt"></acl_principal_kind></span>
 <span
class="nt"><acl_principal_kind></span>com.sun.security.auth.LdapPrincipal<span
class="nt"></acl_principal_kind></span>
 <span
class="nt"></authentication></span>
 ...
<span
class="nt"></broker></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+ ...
+ <authentication domain="apollo">
+
<user_principal_kind>com.sun.security.auth.UnixPrincipal</user_principal_kind>
+
<user_principal_kind>com.sun.security.auth.LdapPrincipal</user_principal_kind>
+
<acl_principal_kind>com.sun.security.auth.UnixPrincipal</acl_principal_kind>
+
<acl_principal_kind>com.sun.security.auth.LdapPrincipal</acl_principal_kind>
+ </authentication>
+ ...
+</broker>
+</code></pre></div>
<h4 id = "Authorization">Authorization</h4>
@@ -862,7 +973,13 @@ access control rules using a <code>acces
denied access to perform actions against server resources. An example list of
rule is shown below:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><broker></span>
 <span
class="nt"><access_rule</span> <span class="na">deny=</span><span
class="s">"guest"</span> <span class="na">action=</span><span
class="s">"send"</span><span class="nt">/></span>
 <span
class="nt"><access_rule</span> <span class="na">allow=</span><span
class="s">"*"</span> <span class="na">action=</span><span
class="s">"send"</span><span class="nt">/></span>
 <span
class="nt"><access_rule</span> <span class="na">allow=</span><span
class="s">"app1"</span> <span class="na">action=</span><span
class="s">"receive"</span><span class="nt">/></span>
<span
class="nt"></broker></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<broker>
+ <access_rule deny="guest" action="send"/>
+ <access_rule allow="*" action="send"/>
+ <access_rule allow="app1" action="receive"/>
+</broker>
+</code></pre></div>
<p>The <code>allow</code> and <code>deny</code> attributes define the
principals which are allowed or
denied access. If set to “+" then it matches all principals but requires
at
@@ -905,19 +1022,27 @@ matches determines if he will have acces
groups 'blue' and 'red', and you are matching against the following
rules:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><access_rule</span> <span class="na">deny=</span><span
class="s">"blue"</span> <span class="na">action=</span><span
class="s">"send"</span><span class="nt">/></span>
<span
class="nt"><access_rule</span> <span class="na">allow=</span><span
class="s">"red"</span> <span class="na">action=</span><span
class="s">"send"</span><span
class="nt">/></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<access_rule deny="blue" action="send"/>
+<access_rule allow="red" action="send"/>
+</code></pre></div>
<p>Then the user would not be allowed to send since the deny rule was
matched first. If the order in the ACL list were reversed, like
so:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><access_rule</span> <span class="na">allow=</span><span
class="s">"red"</span> <span class="na">action=</span><span
class="s">"send"</span><span class="nt">/></span>
<span
class="nt"><access_rule</span> <span class="na">deny=</span><span
class="s">"blue"</span> <span class="na">action=</span><span
class="s">"send"</span><span
class="nt">/></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<access_rule allow="red" action="send"/>
+<access_rule deny="blue" action="send"/>
+</code></pre></div>
<p>Then the user would be allowed access to the resource since the allow
rule matched first. When a single rule defines both <code>allow</code> and
<code>deny</code> attributes and they both match then the action is denied.</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><access_rule</span> <span class="na">deny=</span><span
class="s">"blue"</span> <span class="na">allow=</span><span
class="s">"red"</span> <span class="na">action=</span><span
class="s">"send"</span><span
class="nt">/></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<access_rule deny="blue" allow="red"
action="send"/>
+</code></pre></div>
<h4 id = "Resource_Actions">Resource Actions</h4>
@@ -960,7 +1085,14 @@ using the <code>apollo encrypt</code> co
<p>Lets say you your current <code>key_storage</code> contains plain text
passwords that
need to be replaced with encrypted versions:</p>
-<div class="syntax"><div class="highlight"><pre> ...
 <span
class="nt"><key_storage</span> 
 <span
class="na">file=</span><span
class="s">"${apollo.base}/etc/keystore"</span> 
 <span
class="na">password=</span><span class="s">"open"</span> 

<span class="na">key_password=</span><span
class="s">"sesame"</span><span class="nt">/></span>

...
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+ ...
+ <key_storage
+ file="${apollo.base}/etc/keystore"
+ password="open"
+ key_password="sesame"/>
+ ...
+</code></pre></div>
<p>Lets first find out what the encrypted versions of the passwords would be.
Apollo encrypts and decrypts values using the password stored in
@@ -984,7 +1116,14 @@ key.pass=ENC(FP+H2FIg++sSaOxg/ISknw==)</
<p>Finally the last step of securing the configuration is to replace the plain
text passwords with variable references to the corresponding property
names:</p>
-<div class="syntax"><div class="highlight"><pre> ...
 <span
class="nt"><key_storage</span> 
 <span
class="na">file=</span><span
class="s">"${apollo.base}/etc/keystore"</span> 
 <span
class="na">password=</span><span class="s">"${store.pass}"</span>

 <span class="na">key_password=</span><span
class="s">"${key.pass}"</span><span class="nt">/></span>

...
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+ ...
+ <key_storage
+ file="${apollo.base}/etc/keystore"
+ password="${store.pass}"
+ key_password="${key.pass}"/>
+ ...
+</code></pre></div>
<p>When you use encrypted passwords in your configuration, you MUST make
sure that the <code>APOLLO_ENCRYPTION_PASSWORD</code> environment variable is
set
@@ -1010,7 +1149,14 @@ it bind either the <code>0.0.0.0</code>
<p>For example:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><broker</span> <span class="na">xmlns=</span><span
class="s">"http://activemq.apache.org/schema/activemq/apollo"</span><span
class="nt">></span>
 ...
 <span
class="nt"><web_admin</span> <span class="na">bind=</span><span
class="s">"http://0.0.0.0:61680"</span><span
class="nt">/></span>
 <span class="nt"><web_admin</span> <span
class="na">bind=</span><span
class="s">"https://0.0.0.0:61681"</span><span
class="nt">/></span>
 ...
<span
class="nt"></broker></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<broker
xmlns="http://activemq.apache.org/schema/activemq/apollo">
+ ...
+ <web_admin bind="http://0.0.0.0:61680"/>
+ <web_admin bind="https://0.0.0.0:61681"/>
+ ...
+</broker>
+</code></pre></div>
<p>A <code>web_admin</code> element may be configured with the following
attributes:</p>
@@ -1023,7 +1169,14 @@ then your should add <code>cors_origin</
a common seperated list of domains that are allowed to access the web
admin APIs. Use <code>*</code> to allow access from any domain. Example:</p>
-<div class="syntax"><div class="highlight"><pre><span
class="nt"><broker</span> <span class="na">xmlns=</span><span
class="s">"http://activemq.apache.org/schema/activemq/apollo"</span><span
class="nt">></span>
 ...
 <span
class="nt"><web_admin</span> <span class="na">bind=</span><span
class="s">"http://0.0.0.0:61680?cors_origin=*"</span><span
class="nt">/></span>
 <span class="nt"><web_admin</span> <span
class="na">bind=</span><span
class="s">"https://0.0.0.0:61681?cors_origin=www.foo.com,bar.com"</span><span
class="nt">/></span>
 ...
<span
class="nt"></broker></span>
</pre></div>
</div>
+<div class="syntax"><pre name='code' class='brush: xml; gutter: false;'><code>
+<broker
xmlns="http://activemq.apache.org/schema/activemq/apollo">
+ ...
+ <web_admin bind="http://0.0.0.0:61680?cors_origin=*"/>
+ <web_admin
bind="https://0.0.0.0:61681?cors_origin=www.foo.com,bar.com"/>
+ ...
+</broker>
+</code></pre></div>
<h2 id = "Managing_Brokers">Managing Brokers</h2>
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/verification.html
==============================================================================
---
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/verification.html
(original)
+++
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/documentation/verification.html
Thu Mar 21 17:29:17 2013
@@ -52,11 +52,17 @@ broker is operating correctly.</p>
<p>Change to the <code>examples/stomp/ruby</code> directory that was included
in the Apollo
distribution. Then in a terminal window, run:</p>
-<div class="compare"><div class="compare-left"><h3>Unix/Linux/OS X</h3><div
class="syntax"><div class="highlight"><pre>cd
${APOLLO_HOME}/examples/stomp/ruby
ruby
listener.rb
</pre></div>
</div></div><div
class="compare-right"><h3>Windows</h3><div class="syntax"><div
class="highlight"><pre>cd %APOLLO_HOME%\examples\stomp\ruby
ruby
listener.rb
</pre></div>
</div></div><br class="clear"/></div>
+<div class="compare"><div class="compare-left"><h3>Unix/Linux/OS X</h3><div
class="syntax"><pre name='code' class='brush: text; gutter: false;'><code>cd
${APOLLO_HOME}/examples/stomp/ruby
+ruby listener.rb</code></pre></div></div><div
class="compare-right"><h3>Windows</h3><div class="syntax"><pre name='code'
class='brush: text; gutter: false;'><code>cd %APOLLO_HOME%\examples\stomp\ruby
+ruby listener.rb
+</code></pre></div></div><br class="clear"/></div>
<p>Then in a separate terminal window, run:</p>
-<div class="compare"><div class="compare-left"><h3>Unix/Linux/OS X</h3><div
class="syntax"><div class="highlight"><pre>cd
${APOLLO_HOME}/examples/stomp/ruby
ruby
publisher.rb
</pre></div>
</div></div><div
class="compare-right"><h3>Windows</h3><div class="syntax"><div
class="highlight"><pre>cd %APOLLO_HOME%\examples\stomp\ruby
ruby
publisher.rb
</pre></div>
</div></div><br class="clear"/></div>
+<div class="compare"><div class="compare-left"><h3>Unix/Linux/OS X</h3><div
class="syntax"><pre name='code' class='brush: text; gutter: false;'><code>cd
${APOLLO_HOME}/examples/stomp/ruby
+ruby publisher.rb</code></pre></div></div><div
class="compare-right"><h3>Windows</h3><div class="syntax"><pre name='code'
class='brush: text; gutter: false;'><code>cd %APOLLO_HOME%\examples\stomp\ruby
+ruby publisher.rb
+</code></pre></div></div><br class="clear"/></div>
<p>If everything is working well, the publisher should produce output similar
to:</p>
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/download.html
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/images/module-deps-graph.png
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/images/project-logo-vector.png
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/images/project-logo.png
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/images/rss.gif
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/index.html
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/privacy-policy.html
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/scripts/jquery.js
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/styles/impact/blog.template
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/styles/impact/css/pygmentize.css
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/styles/impact/css/site.css
==============================================================================
(empty)
Modified:
websites/production/activemq/content/apollo/versions/99-trunk-SNAPSHOT/website/versions/index.html
==============================================================================
(empty)