You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ge...@apache.org on 2013/02/08 21:35:05 UTC

svn commit: r1444219 [16/20] - in /servicemix/site/production/docs/4.4.x: ./ activemq/ architecture/ camel/ camel/deployment/ commands/ developers-guide/ images/ jbi/ jbi/components/ karaf/developers-guide/ karaf/users-guide/ nmr/ quickstart/ user/ use...

Modified: servicemix/site/production/docs/4.4.x/jbi/jbi-guide.pdf.html
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/jbi/jbi-guide.pdf.html?rev=1444219&r1=1444218&r2=1444219&view=diff
==============================================================================
--- servicemix/site/production/docs/4.4.x/jbi/jbi-guide.pdf.html (original)
+++ servicemix/site/production/docs/4.4.x/jbi/jbi-guide.pdf.html Fri Feb  8 20:35:02 2013
@@ -16,7 +16,7 @@
     </div>
   </div>
   <div id="main">

[... 7 lines stripped ...]
Modified: servicemix/site/production/docs/4.4.x/nmr/index.html
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/nmr/index.html?rev=1444219&r1=1444218&r2=1444219&view=diff
==============================================================================
--- servicemix/site/production/docs/4.4.x/nmr/index.html (original)
+++ servicemix/site/production/docs/4.4.x/nmr/index.html Fri Feb  8 20:35:02 2013
@@ -70,16 +70,17 @@
             <ul>
     <li id="nmr">
 
-        <a href="../users-guide/nmr/index.html">Using the NMR   </a>
+        <a href="index.html">Using the NMR   </a>
         <ul>
-            <li id="camel-nmr"><a href="../users-guide/nmr/nmr-camel.html">Camel NMR</a></li>
-            <li id="nmr-event-listeners"><a href="../users-guide/nmr/nmr-event-listeners.html">Event Listeners</a></li>
+            <li id="camel-nmr"><a href="nmr-camel.html">Camel NMR</a></li>
+            <li id="nmr-event-listeners"><a href="nmr-event-listeners.html">Event Listeners</a></li>
         </ul>
     </li>
 </ul>
+
         </div>
         <div id="body">
-                    <h2 id="UsingtheNMR">Using the NMR</h2><h3 id="WhatstheNMR">What's the NMR?</h3><p>The Normalized Message Router (NMR) is a general-purpose message bus used for communication between bundles in the OSGi container.<br/>It's modeled after the Normalized Message Router (NMR) defined in the Java Business Integration (JBI) specification (<a href="http://www.jcp.org/en/jsr/detail?id=208">http://www.jcp.org/en/jsr/detail?id=208</a>).</p><p>It can be used to transport XML messages as well as other message body types, optionally augumented with headers and attachments.</p><h3 id="Learnmore">Learn more</h3><ul><li>TODO: configuration files and options</li><li>NMR components<ul><li><a href="nmr-camel.html">Camel NMR</a></li><li>TODO: CXF NMR</li></ul></li><li><a href="nmr-event-listeners.html">Event Listeneners</a></li><li>TODO: auditing</li></ul>
+                    <h2 id="UsingtheNMR">Using the NMR</h2><h3 id="WhatstheNMR">What's the NMR?</h3><p>The Normalized Message Router (NMR) is a general-purpose message bus used for communication between bundles in the OSGi container.<br/>It's modeled after the Normalized Message Router (NMR) defined in the Java Business Integration (JBI) specification (<a href="http://www.jcp.org/en/jsr/detail?id=208">http://www.jcp.org/en/jsr/detail?id=208</a>).</p><p>It can be used to transport XML messages as well as other message body types, optionally augumented with headers and attachments.</p><h3 id="Learnmore">Learn more</h3><ul><li><p>TODO: configuration files and options</p></li><li><p>NMR components</p><ul><li><p><a href="nmr-camel.html">Camel NMR</a></p></li><li><p>TODO: CXF NMR</p></li></ul></li><li><p><a href="nmr-event-listeners.html">Event Listeneners</a></p></li><li><p>TODO: auditing</p></li></ul>
         </div>
       
           </div>

Modified: servicemix/site/production/docs/4.4.x/nmr/nmr-camel.html
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/nmr/nmr-camel.html?rev=1444219&r1=1444218&r2=1444219&view=diff
==============================================================================
--- servicemix/site/production/docs/4.4.x/nmr/nmr-camel.html (original)
+++ servicemix/site/production/docs/4.4.x/nmr/nmr-camel.html Fri Feb  8 20:35:02 2013
@@ -70,16 +70,17 @@
             <ul>
     <li id="nmr">
 
-        <a href="../users-guide/nmr/index.html">Using the NMR   </a>
+        <a href="index.html">Using the NMR   </a>
         <ul>
-            <li id="camel-nmr"><a href="../users-guide/nmr/nmr-camel.html">Camel NMR</a></li>
-            <li id="nmr-event-listeners"><a href="../users-guide/nmr/nmr-event-listeners.html">Event Listeners</a></li>
+            <li id="camel-nmr"><a href="nmr-camel.html">Camel NMR</a></li>
+            <li id="nmr-event-listeners"><a href="nmr-event-listeners.html">Event Listeners</a></li>
         </ul>
     </li>
 </ul>
+
         </div>
         <div id="body">
-                    <h2 id="CamelNMRComponent">Camel NMR Component</h2><p>The Camel NMR component is an adapter to the Normalized Message Router (NMR) in ServiceMix, which is intended for use by Camel applications deployed directly into the OSGi container.</p><h3 id="Installing">Installing</h3><p>In order to be able to use this component, you first have to define it in  your Spring configuration file (<tt>META-INF/spring/*.xml</tt>) by adding the following <tt>bean</tt>:</p><div class="syntax"><div class="highlight"><pre><span class="nt">&lt;beans</span> <span class="na">xmlns:osgi=</span><span class="s">&quot;http://www.springframework.org/schema/osgi&quot;</span> <span class="err">...</span> <span class="nt">&gt;</span>&#x000A;    ...&#x000A;    <span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">&quot;nmr&quot;</span> <span class="na">class=</span><span class="s">&quot;org.apache.servicemix.camel.nmr.ServiceMixComponent&quot;</span><span class="nt"
 >&gt;</span>&#x000A;        <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">&quot;nmr&quot;</span><span class="nt">&gt;</span>&#x000A;            <span class="nt">&lt;osgi:reference</span> <span class="na">interface=</span><span class="s">&quot;org.apache.servicemix.nmr.api.NMR&quot;</span> <span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;/property&gt;</span>&#x000A;    <span class="nt">&lt;/bean&gt;</span>&#x000A;    ...&#x000A;<span class="nt">&lt;/beans&gt;</span>&#x000A;</pre></div>&#x000A;</div><h3 id="NMRconsumerandproducerendpoints">NMR consumer and producer endpoints</h3><p>The following code:</p><div class="syntax"><div class="highlight"><pre><span class="n">from</span><span class="o">(</span><span class="s">&quot;nmr:MyServiceEndpoint&quot;</span><span class="o">)</span>&#x000A;</pre></div>&#x000A;</div><p>Automatically exposes a new endpoint to the bus with endpoint name <tt>MyServiceEndpoint</tt> (see <a href="#U
 RIformat.html">#URI-format</a>).</p><p>When an NMR endpoint appears at the end of a route, for example:</p><div class="syntax"><div class="highlight"><pre><span class="n">to</span><span class="o">(</span><span class="s">&quot;nmr:MyServiceEndpoint&quot;</span><span class="o">)</span>&#x000A;</pre></div>&#x000A;</div><p>The messages sent by this producer endpoint are sent to the already deployed JBI endpoint.</p><h3 id="URIformat">URI format</h3><div class="syntax"><div class="highlight"><pre>nmr:endpointName&#x000A;</pre></div>&#x000A;</div><h4 id="URIOptions">URI Options</h4><ul style="list-style: square"><li><strong><tt>synchronous</tt></strong> (defaults to <tt>false</tt>) ::  When this is set to <tt>true</tt> on a consumer endpoint, an incoming, synchronous NMR Exchange will be handled on the sender's thread instead of being handled on a new thread of the NMR endpoint's thread pool |</li></ul><h4 id="Examples">Examples</h4><div class="syntax"><div class="highlight"><pre>
 <span class="n">from</span><span class="o">(</span><span class="s">&quot;nmr:MyServiceEndpoint&quot;</span><span class="o">)</span>&#x000A;<span class="n">from</span><span class="o">(</span><span class="s">&quot;nmr:MyServiceEndpoint?synchronous=true&quot;</span><span class="o">).</span><span class="na">to</span><span class="o">(</span><span class="s">&quot;nmr:AnotherEndpoint&quot;</span><span class="o">)</span>&#x000A;</pre></div>&#x000A;</div>
+                    <h2 id="CamelNMRComponent">Camel NMR Component</h2><p>The Camel NMR component is an adapter to the Normalized Message Router (NMR) in ServiceMix, which is intended for use by Camel applications deployed directly into the OSGi container.</p><h3 id="Installing">Installing</h3><p>In order to be able to use this component, you first have to define it in  your Spring configuration file (<tt>META-INF/spring/*.xml</tt>) by adding the following <tt>bean</tt>:</p><div class="syntax"><div class="highlight"><pre><span class="nt">&lt;beans</span> <span class="na">xmlns:osgi=</span><span class="s">&quot;http://www.springframework.org/schema/osgi&quot;</span> <span class="err">...</span> <span class="nt">&gt;</span>&#x000A;    ...&#x000A;    <span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">&quot;nmr&quot;</span> <span class="na">class=</span><span class="s">&quot;org.apache.servicemix.camel.nmr.ServiceMixComponent&quot;</span><span class="nt"
 >&gt;</span>&#x000A;        <span class="nt">&lt;property</span> <span class="na">name=</span><span class="s">&quot;nmr&quot;</span><span class="nt">&gt;</span>&#x000A;            <span class="nt">&lt;osgi:reference</span> <span class="na">interface=</span><span class="s">&quot;org.apache.servicemix.nmr.api.NMR&quot;</span> <span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;/property&gt;</span>&#x000A;    <span class="nt">&lt;/bean&gt;</span>&#x000A;    ...&#x000A;<span class="nt">&lt;/beans&gt;</span>&#x000A;</pre></div>&#x000A;</div><h3 id="NMRconsumerandproducerendpoints">NMR consumer and producer endpoints</h3><p>The following code:</p><div class="syntax"><div class="highlight"><pre><span class="n">from</span><span class="o">(</span><span class="s">&quot;nmr:MyServiceEndpoint&quot;</span><span class="o">)</span>&#x000A;</pre></div>&#x000A;</div><p>Automatically exposes a new endpoint to the bus with endpoint name <tt>MyServiceEndpoint</tt> (see <a href="#U
 RIformat.html">URI-format</a>).</p><p>When an NMR endpoint appears at the end of a route, for example:</p><div class="syntax"><div class="highlight"><pre><span class="n">to</span><span class="o">(</span><span class="s">&quot;nmr:MyServiceEndpoint&quot;</span><span class="o">)</span>&#x000A;</pre></div>&#x000A;</div><p>The messages sent by this producer endpoint are sent to the already deployed JBI endpoint.</p><h3 id="URIformat">URI format</h3><div class="syntax"><div class="highlight"><pre>nmr:endpointName&#x000A;</pre></div>&#x000A;</div><h4 id="URIOptions">URI Options</h4><ul style="list-style: square"><li><p><strong><tt>synchronous</tt></strong> (defaults to <tt>false</tt>) ::  When this is set to <tt>true</tt> on a consumer endpoint, an incoming, synchronous NMR Exchange will be handled on the sender's thread instead of being handled on a new thread of the NMR endpoint's thread pool </p>|</li></ul><h4 id="Examples">Examples</h4><div class="syntax"><div class="highlight"
 ><pre><span class="n">from</span><span class="o">(</span><span class="s">&quot;nmr:MyServiceEndpoint&quot;</span><span class="o">)</span>&#x000A;<span class="n">from</span><span class="o">(</span><span class="s">&quot;nmr:MyServiceEndpoint?synchronous=true&quot;</span><span class="o">).</span><span class="na">to</span><span class="o">(</span><span class="s">&quot;nmr:AnotherEndpoint&quot;</span><span class="o">)</span>&#x000A;</pre></div>&#x000A;</div>
         </div>
       
           </div>

Modified: servicemix/site/production/docs/4.4.x/nmr/nmr-event-listeners.html
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/nmr/nmr-event-listeners.html?rev=1444219&r1=1444218&r2=1444219&view=diff
==============================================================================
--- servicemix/site/production/docs/4.4.x/nmr/nmr-event-listeners.html (original)
+++ servicemix/site/production/docs/4.4.x/nmr/nmr-event-listeners.html Fri Feb  8 20:35:02 2013
@@ -70,16 +70,17 @@
             <ul>
     <li id="nmr">
 
-        <a href="../users-guide/nmr/index.html">Using the NMR   </a>
+        <a href="index.html">Using the NMR   </a>
         <ul>
-            <li id="camel-nmr"><a href="../users-guide/nmr/nmr-camel.html">Camel NMR</a></li>
-            <li id="nmr-event-listeners"><a href="../users-guide/nmr/nmr-event-listeners.html">Event Listeners</a></li>
+            <li id="camel-nmr"><a href="nmr-camel.html">Camel NMR</a></li>
+            <li id="nmr-event-listeners"><a href="nmr-event-listeners.html">Event Listeners</a></li>
         </ul>
     </li>
 </ul>
+
         </div>
         <div id="body">
-                    <h2 id="Eventlisteners">Event listeners</h2><p>The NMR has a rich event API that can be used to receive all sort of notifications about what's happening in the NMR.<br/>Currently, two types of listeners are defined:</p><ul style="list-style: square"><li><tt>org.apache.servicemix.nmr.api.event.EndpointListener</tt></li><li><tt>org.apache.servicemix.nmr.api.event.ExchangeListener</tt></li></ul><h3 id="EndpointListener">Endpoint Listener</h3><h4 id="API">API</h4><p>The <tt>EndpointListener</tt> defined two methods:</p><ul style="list-style: square"><li><tt>endpointRegistered</tt> is called whenever a new endpoint is registered with the NMR</li><li><tt>endpointUnregistered</tt> is called whenever an existing endpoint is unregistered</li></ul><div class="syntax"><div class="highlight"><pre><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">EndpointListener</span> <span class="o">{</span>&#x000A;    <span class="kt">void</span> <s
 pan class="nf">endpointRegistered</span><span class="o">(</span><span class="n">InternalEndpoint</span> <span class="n">endpoint</span><span class="o">);</span>&#x000A;    <span class="kt">void</span> <span class="nf">endpointUnregistered</span><span class="o">(</span><span class="n">InternalEndpoint</span> <span class="n">endpoint</span><span class="o">);</span>&#x000A;<span class="o">}</span>&#x000A;</pre></div>&#x000A;</div><h4 id="RegisteringEndpointListener">Registering <tt>EndpointListener</tt></h4><p>An <tt>EndpointListener</tt> can be registered directly with the NMR:</p><div class="syntax"><div class="highlight"><pre><span class="n">nmr</span><span class="o">.</span><span class="na">getListenerRegistry</span><span class="o">().</span><span class="na">register</span><span class="o">(</span><span class="n">listener</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span>&#x000A;</pre></div>&#x000A;</div><p>The recommended way of registering
  an <tt>EndpointListener</tt> is by adding it to the OSGi Service Registry, e.g. using a Blueprint XML file:</p><div class="syntax"><div class="highlight"><pre><span class="nt">&lt;blueprint</span> <span class="na">xmlns=</span><span class="s">&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;</span>&#x000A;           <span class="na">xmlns:ext=</span><span class="s">&quot;http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0&quot;</span><span class="nt">&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">&quot;myListener&quot;</span> <span class="na">class=</span><span class="s">&quot;...&quot;</span><span class="nt">/&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;service</span> <span class="na">ref=</span><span class="s">&quot;myListener&quot;</span><span class="nt">&gt;</span>&#x000A;      <span class="nt">&lt;interfaces&gt;</span>&#x000A;        <span class="nt">&lt;value&gt;</span>org.apache.servicem
 ix.nmr.api.event.EndpointListener<span class="nt">&lt;/value&gt;</span>&#x000A;        <span class="nt">&lt;value&gt;</span>org.apache.servicemix.nmr.api.event.Listener<span class="nt">&lt;/value&gt;</span>&#x000A;      <span class="nt">&lt;/interfaces&gt;</span>&#x000A;    <span class="nt">&lt;/service&gt;</span>&#x000A;&#x000A;<span class="nt">&lt;/blueprint&gt;</span>&#x000A;</pre></div>&#x000A;</div><h4 id="Example">Example</h4><p>An example of using an endpoint listener is shipped as part of the ServiceMix distribution.  It can be found in the <tt>examples/interceptors/endpoint</tt> directory.</p><h3 id="ExchangeListener">ExchangeListener</h3><h4 id="API2">API</h4><p>The <tt>ExchangeListener</tt> defined two methods:</p><ul style="list-style: square"><li><tt>exchangeSent</tt> is called whenever an exchange is sent to the NMR for delivery</li><li><tt>exchangeDelivered</tt> is called whenever an exchange is being delivered to an endpoint</li><li><tt>exchangeFailed</tt> is
  called when a failure occurs while handling an exchange</li></ul><div class="syntax"><div class="highlight"><pre><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">ExchangeListener</span> <span class="o">{</span>&#x000A;    <span class="kt">void</span> <span class="nf">exchangeSent</span><span class="o">(</span><span class="n">Exchange</span> <span class="n">exchange</span><span class="o">);</span>&#x000A;    <span class="kt">void</span> <span class="nf">exchangeDelivered</span><span class="o">(</span><span class="n">Exchange</span> <span class="n">exchange</span><span class="o">);</span>&#x000A;    <span class="kt">void</span> <span class="nf">exchangeFailed</span><span class="o">(</span><span class="n">Exchange</span> <span class="n">exchange</span><span class="o">);</span>&#x000A;<span class="o">}</span>&#x000A;</pre></div>&#x000A;</div><h4 id="RegisteringExchangeListener">Registering <tt>ExchangeListener</tt></h4><p>An <tt>ExchangeListener
 </tt> can be registered directly with the NMR:</p><div class="syntax"><div class="highlight"><pre><span class="n">nmr</span><span class="o">.</span><span class="na">getListenerRegistry</span><span class="o">().</span><span class="na">register</span><span class="o">(</span><span class="n">listener</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span>&#x000A;</pre></div>&#x000A;</div><p>The recommended way of registering an <tt>ExchangeListener</tt> is by adding it to the OSGi Service Registry, e.g. using a Blueprint XML file:</p><div class="syntax"><div class="highlight"><pre><span class="nt">&lt;blueprint</span> <span class="na">xmlns=</span><span class="s">&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;</span>&#x000A;           <span class="na">xmlns:ext=</span><span class="s">&quot;http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0&quot;</span><span class="nt">&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;bean</span> <s
 pan class="na">id=</span><span class="s">&quot;myListener&quot;</span> <span class="na">class=</span><span class="s">&quot;...&quot;</span><span class="nt">/&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;service</span> <span class="na">ref=</span><span class="s">&quot;myListener&quot;</span><span class="nt">&gt;</span>&#x000A;      <span class="nt">&lt;interfaces&gt;</span>&#x000A;        <span class="nt">&lt;value&gt;</span>org.apache.servicemix.nmr.api.event.ExchangeListener<span class="nt">&lt;/value&gt;</span>&#x000A;        <span class="nt">&lt;value&gt;</span>org.apache.servicemix.nmr.api.event.Listener<span class="nt">&lt;/value&gt;</span>&#x000A;      <span class="nt">&lt;/interfaces&gt;</span>&#x000A;    <span class="nt">&lt;/service&gt;</span>&#x000A;&#x000A;<span class="nt">&lt;/blueprint&gt;</span>&#x000A;</pre></div>&#x000A;</div><h4 id="Example2">Example</h4><p>An example of using an exchange listener is shipped as part of the ServiceMix distribution.  It 
 can be found in the <tt>examples/interceptors/exchange</tt> directory.</p>
+                    <h2 id="Eventlisteners">Event listeners</h2><p>The NMR has a rich event API that can be used to receive all sort of notifications about what's happening in the NMR.<br/>Currently, two types of listeners are defined:</p><ul style="list-style: square"><li><p><tt>org.apache.servicemix.nmr.api.event.EndpointListener</tt></p></li><li><p><tt>org.apache.servicemix.nmr.api.event.ExchangeListener</tt></p></li></ul><h3 id="EndpointListener">Endpoint Listener</h3><h4 id="API">API</h4><p>The <tt>EndpointListener</tt> defined two methods:</p><ul style="list-style: square"><li><p><tt>endpointRegistered</tt> is called whenever a new endpoint is registered with the NMR</p></li><li><p><tt>endpointUnregistered</tt> is called whenever an existing endpoint is unregistered</p></li></ul><div class="syntax"><div class="highlight"><pre><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">EndpointListener</span> <span class="o">{</span>&#x000A;    <sp
 an class="kt">void</span> <span class="nf">endpointRegistered</span><span class="o">(</span><span class="n">InternalEndpoint</span> <span class="n">endpoint</span><span class="o">);</span>&#x000A;    <span class="kt">void</span> <span class="nf">endpointUnregistered</span><span class="o">(</span><span class="n">InternalEndpoint</span> <span class="n">endpoint</span><span class="o">);</span>&#x000A;<span class="o">}</span>&#x000A;</pre></div>&#x000A;</div><h4 id="RegisteringEndpointListener">Registering <tt>EndpointListener</tt></h4><p>An <tt>EndpointListener</tt> can be registered directly with the NMR:</p><div class="syntax"><div class="highlight"><pre><span class="n">nmr</span><span class="o">.</span><span class="na">getListenerRegistry</span><span class="o">().</span><span class="na">register</span><span class="o">(</span><span class="n">listener</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span>&#x000A;</pre></div>&#x000A;</div><p>The re
 commended way of registering an <tt>EndpointListener</tt> is by adding it to the OSGi Service Registry, e.g. using a Blueprint XML file:</p><div class="syntax"><div class="highlight"><pre><span class="nt">&lt;blueprint</span> <span class="na">xmlns=</span><span class="s">&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;</span>&#x000A;           <span class="na">xmlns:ext=</span><span class="s">&quot;http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0&quot;</span><span class="nt">&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">&quot;myListener&quot;</span> <span class="na">class=</span><span class="s">&quot;...&quot;</span><span class="nt">/&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;service</span> <span class="na">ref=</span><span class="s">&quot;myListener&quot;</span><span class="nt">&gt;</span>&#x000A;      <span class="nt">&lt;interfaces&gt;</span>&#x000A;        <span class="nt">&lt;value&g
 t;</span>org.apache.servicemix.nmr.api.event.EndpointListener<span class="nt">&lt;/value&gt;</span>&#x000A;        <span class="nt">&lt;value&gt;</span>org.apache.servicemix.nmr.api.event.Listener<span class="nt">&lt;/value&gt;</span>&#x000A;      <span class="nt">&lt;/interfaces&gt;</span>&#x000A;    <span class="nt">&lt;/service&gt;</span>&#x000A;&#x000A;<span class="nt">&lt;/blueprint&gt;</span>&#x000A;</pre></div>&#x000A;</div><h4 id="Example">Example</h4><p>An example of using an endpoint listener is shipped as part of the ServiceMix distribution.  It can be found in the <tt>examples/interceptors/endpoint</tt> directory.</p><h3 id="ExchangeListener">ExchangeListener</h3><h4 id="API2">API</h4><p>The <tt>ExchangeListener</tt> defined two methods:</p><ul style="list-style: square"><li><p><tt>exchangeSent</tt> is called whenever an exchange is sent to the NMR for delivery</p></li><li><p><tt>exchangeDelivered</tt> is called whenever an exchange is being delivered to an endpo
 int</p></li><li><p><tt>exchangeFailed</tt> is called when a failure occurs while handling an exchange</p></li></ul><div class="syntax"><div class="highlight"><pre><span class="kd">public</span> <span class="kd">interface</span> <span class="nc">ExchangeListener</span> <span class="o">{</span>&#x000A;    <span class="kt">void</span> <span class="nf">exchangeSent</span><span class="o">(</span><span class="n">Exchange</span> <span class="n">exchange</span><span class="o">);</span>&#x000A;    <span class="kt">void</span> <span class="nf">exchangeDelivered</span><span class="o">(</span><span class="n">Exchange</span> <span class="n">exchange</span><span class="o">);</span>&#x000A;    <span class="kt">void</span> <span class="nf">exchangeFailed</span><span class="o">(</span><span class="n">Exchange</span> <span class="n">exchange</span><span class="o">);</span>&#x000A;<span class="o">}</span>&#x000A;</pre></div>&#x000A;</div><h4 id="RegisteringExchangeListener">Registering <tt>Exc
 hangeListener</tt></h4><p>An <tt>ExchangeListener</tt> can be registered directly with the NMR:</p><div class="syntax"><div class="highlight"><pre><span class="n">nmr</span><span class="o">.</span><span class="na">getListenerRegistry</span><span class="o">().</span><span class="na">register</span><span class="o">(</span><span class="n">listener</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span>&#x000A;</pre></div>&#x000A;</div><p>The recommended way of registering an <tt>ExchangeListener</tt> is by adding it to the OSGi Service Registry, e.g. using a Blueprint XML file:</p><div class="syntax"><div class="highlight"><pre><span class="nt">&lt;blueprint</span> <span class="na">xmlns=</span><span class="s">&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;</span>&#x000A;           <span class="na">xmlns:ext=</span><span class="s">&quot;http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0&quot;</span><span class="nt">&gt;</span>&#x000
 A;&#x000A;    <span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">&quot;myListener&quot;</span> <span class="na">class=</span><span class="s">&quot;...&quot;</span><span class="nt">/&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;service</span> <span class="na">ref=</span><span class="s">&quot;myListener&quot;</span><span class="nt">&gt;</span>&#x000A;      <span class="nt">&lt;interfaces&gt;</span>&#x000A;        <span class="nt">&lt;value&gt;</span>org.apache.servicemix.nmr.api.event.ExchangeListener<span class="nt">&lt;/value&gt;</span>&#x000A;        <span class="nt">&lt;value&gt;</span>org.apache.servicemix.nmr.api.event.Listener<span class="nt">&lt;/value&gt;</span>&#x000A;      <span class="nt">&lt;/interfaces&gt;</span>&#x000A;    <span class="nt">&lt;/service&gt;</span>&#x000A;&#x000A;<span class="nt">&lt;/blueprint&gt;</span>&#x000A;</pre></div>&#x000A;</div><h4 id="Example2">Example</h4><p>An example of using an exchange listener is shi
 pped as part of the ServiceMix distribution.  It can be found in the <tt>examples/interceptors/exchange</tt> directory.</p>
         </div>
       
           </div>

Modified: servicemix/site/production/docs/4.4.x/nmr/toc.html
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/nmr/toc.html?rev=1444219&r1=1444218&r2=1444219&view=diff
==============================================================================
--- servicemix/site/production/docs/4.4.x/nmr/toc.html (original)
+++ servicemix/site/production/docs/4.4.x/nmr/toc.html Fri Feb  8 20:35:02 2013
@@ -70,25 +70,27 @@
             <ul>
     <li id="nmr">
 
-        <a href="../users-guide/nmr/index.html">Using the NMR   </a>
+        <a href="index.html">Using the NMR   </a>
         <ul>
-            <li id="camel-nmr"><a href="../users-guide/nmr/nmr-camel.html">Camel NMR</a></li>
-            <li id="nmr-event-listeners"><a href="../users-guide/nmr/nmr-event-listeners.html">Event Listeners</a></li>
+            <li id="camel-nmr"><a href="nmr-camel.html">Camel NMR</a></li>
+            <li id="nmr-event-listeners"><a href="nmr-event-listeners.html">Event Listeners</a></li>
         </ul>
     </li>
 </ul>
+
         </div>
         <div id="body">
                     <ul>
     <li id="nmr">
 
-        <a href="../users-guide/nmr/index.html">Using the NMR   </a>
+        <a href="index.html">Using the NMR   </a>
         <ul>
-            <li id="camel-nmr"><a href="../users-guide/nmr/nmr-camel.html">Camel NMR</a></li>
-            <li id="nmr-event-listeners"><a href="../users-guide/nmr/nmr-event-listeners.html">Event Listeners</a></li>
+            <li id="camel-nmr"><a href="nmr-camel.html">Camel NMR</a></li>
+            <li id="nmr-event-listeners"><a href="nmr-event-listeners.html">Event Listeners</a></li>
         </ul>
     </li>
 </ul>
+
         </div>
       
           </div>

Modified: servicemix/site/production/docs/4.4.x/quickstart/console.html
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/quickstart/console.html?rev=1444219&r1=1444218&r2=1444219&view=diff
==============================================================================
--- servicemix/site/production/docs/4.4.x/quickstart/console.html (original)
+++ servicemix/site/production/docs/4.4.x/quickstart/console.html Fri Feb  8 20:35:02 2013
@@ -89,7 +89,7 @@
 </ul>
         </div>
         <div id="body">
-                    <h1 id="ApacheServiceMixconsole">Apache ServiceMix console</h1><p>Now that we successfully installed and started Apache ServiceMix, we'll take a closer look at the console.  This is where you manage your ServiceMix instance, add and remove bundles, install optional features, ...</p><h2 id="Workingwithbundles">Working with bundles</h2><p>When ServiceMix is first started, a whole set of bundles providing the core features for the product are being installed.  Let's use the command console to find out more about them...</p><p>The <tt>osgi:list</tt> command can be used to get a list of all bundles currently installed.  Enter this</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:list&#x000A;</pre></div>&#x000A;</div><p>This is what the output looks like if you run this on your ServiceMix instance.</p><p><img border="0" src="images/osgi-list.png"/></p><p>For every bundle, you see:</p><ul><li>the bundle id</li><li>the bundle state</li><li>i
 f the bundle contains a Blueprint or Spring XML file, the next 2 columns will show you if the beans defined there were created successfully</li><li>the bundle start level</li><li>the bundle name and version</li></ul><p>If you're looking for something specific in the list, you can use unix-like pipes and utilities to help you.  An example: to look for all Camel related bundles...</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:list | grep camel&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/osgi-list-pipegrep.png"/></p><h2 id="Workingwithlogging">Working with logging</h2><p>Many of the applications you write will have some form of log output.  To look at the message in the log file, you can us the <tt>log:diplay</tt> command.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:display&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/log-display.png"/></p><p>If you're only interested in the latest excepti
 on in the log file, you can use <tt>log:display-exception</tt> instead.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:display-exception&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/log-display-exception.png"/></p><p>You can also change the log level at runtime by using the <tt>log:set</tt> command.  You can try these commands on your instance now by first setting the log level to <tt>DEBUG</tt> and then using <tt>grep</tt> to make sure that you can actually see the extra logging.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:set DEBUG&#x000A;karaf@root&gt; log:display | grep DEBUG&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/log-set-debug.png"/></p><p>Afterwards, revert the log level to its original <tt>INFO</tt> value again with <tt>log:set</tt>.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:set INFO&#x000A;</pre></div>&#x000A;</div><h2 id="...andtheresalotmore">...
 and there's a lot more</h2><p>These are obviously just a few examples of what the command shell is all about.  There are a lot more commands in the shell to help you deploy, monitor, manage and troubleshoot the applications you're building with ServiceMix.</p>
+                    <h1 id="ApacheServiceMixconsole">Apache ServiceMix console</h1><p>Now that we successfully installed and started Apache ServiceMix, we'll take a closer look at the console.  This is where you manage your ServiceMix instance, add and remove bundles, install optional features, ...</p><h2 id="Workingwithbundles">Working with bundles</h2><p>When ServiceMix is first started, a whole set of bundles providing the core features for the product are being installed.  Let's use the command console to find out more about them...</p><p>The <tt>osgi:list</tt> command can be used to get a list of all bundles currently installed.  Enter this</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:list&#x000A;</pre></div>&#x000A;</div><p>This is what the output looks like if you run this on your ServiceMix instance.</p><p>!/quickstart/images/osgi-list.png</p>|title=osgi:list!<p>For every bundle, you see:</p><ul><li><p>the bundle id</p></li><li><p>the bundle
  state</p></li><li><p>if the bundle contains a Blueprint or Spring XML file, the next 2 columns will show you if the beans defined there were created successfully</p></li><li><p>the bundle start level</p></li><li><p>the bundle name and version</p></li></ul><p>If you're looking for something specific in the list, you can use unix-like pipes and utilities to help you.  An example: to look for all Camel related bundles...</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:list | grep camel&#x000A;</pre></div>&#x000A;</div><p>!/quickstart/images/osgi-list-pipegrep.png</p>|title=osgi:list!<h2 id="Workingwithlogging">Working with logging</h2><p>Many of the applications you write will have some form of log output.  To look at the message in the log file, you can us the <tt>log:diplay</tt> command.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:display&#x000A;</pre></div>&#x000A;</div><p>!/quickstart/images/log-display.png</p>|title=log:dis
 play!<p>If you're only interested in the latest exception in the log file, you can use <tt>log:display-exception</tt> instead.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:display-exception&#x000A;</pre></div>&#x000A;</div><p>!/quickstart/images/log-display-exception.png</p>|title=log:display-exception!<p>You can also change the log level at runtime by using the <tt>log:set</tt> command.  You can try these commands on your instance now by first setting the log level to <tt>DEBUG</tt> and then using <tt>grep</tt> to make sure that you can actually see the extra logging.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:set DEBUG&#x000A;karaf@root&gt; log:display | grep DEBUG&#x000A;</pre></div>&#x000A;</div><p>!/quickstart/images/log-set-debug.png</p>|title=log:set DEBUG!<p>Afterwards, revert the log level to its original <tt>INFO</tt> value again with <tt>log:set</tt>.</p><div class="syntax"><div class="highlight"><pre>karaf@root&
 gt; log:set INFO&#x000A;</pre></div>&#x000A;</div><h2 id="...andtheresalotmore">...and there's a lot more</h2><p>These are obviously just a few examples of what the command shell is all about.  There are a lot more commands in the shell to help you deploy, monitor, manage and troubleshoot the applications you're building with ServiceMix.</p>
         </div>
       
           </div>

Modified: servicemix/site/production/docs/4.4.x/quickstart/features.html
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/quickstart/features.html?rev=1444219&r1=1444218&r2=1444219&view=diff
==============================================================================
--- servicemix/site/production/docs/4.4.x/quickstart/features.html (original)
+++ servicemix/site/production/docs/4.4.x/quickstart/features.html Fri Feb  8 20:35:02 2013
@@ -89,7 +89,7 @@
 </ul>
         </div>
         <div id="body">
-                    <h1 id="Optionalfeatures">Optional features</h1><p>Everything discussed in the quickstart guide so far is installed out-of-the-box in Apache ServiceMix, but we also have a lot of optional features that can be installed in the container when necessary.</p><h2 id="Listoffeatures">List of features</h2><p>The list of features is available with the <tt>features:list</tt> command.  The overview shows you whether or not the feature is currently installed, the version and the name of the feature.</p><p><img border="0" src="images/featureslist.png"/></p><p>The full list contains a lot of different features: optional Camel components, features for adding OBR or wrapper support to Serviceix, a web console, ...  Again, you can use things like <tt>|</tt> and <tt>grep</tt> to find the things in the list that you're interested in.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:list | grep camel&#x000A;</pre></div>&#x000A;</div><h2 id="Example
 Webconsole">Example: Web console</h2><p>To get the web console installed in ServiceMix, install the feature from your console</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:install webconsole&#x000A;</pre></div>&#x000A;</div><p>Afterwards, you can verify that the feature is marked installed in the overview.  You'll notice that the <tt>webconsole-base</tt> feature has also been installed as a requirement for the <tt>webconsole</tt> feature itself.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:list | grep webconsole&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/featureslist-grep-webconsole.png"/></p><p>You will now be able to point your browser to http://localhost:8181/system/console and login with user <tt>smx</tt> and password <tt>smx</tt> to access the web console.  From the webconsole, you can also start and stop bundles, install optional features again, ...</p>
+                    <h1 id="Optionalfeatures">Optional features</h1><p>Everything discussed in the quickstart guide so far is installed out-of-the-box in Apache ServiceMix, but we also have a lot of optional features that can be installed in the container when necessary.</p><h2 id="Listoffeatures">List of features</h2><p>The list of features is available with the <tt>features:list</tt> command.  The overview shows you whether or not the feature is currently installed, the version and the name of the feature.</p><p><img border="0" src="images/featureslist.png"/></p><p>The full list contains a lot of different features: optional Camel components, features for adding OBR or wrapper support to Serviceix, a web console, ...  Again, you can use things like {{</p>|}} and <tt>grep</tt> to find the things in the list that you're interested in.<div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:list | grep camel&#x000A;</pre></div>&#x000A;</div><h2 id="ExampleWebco
 nsole">Example: Web console</h2><p>To get the web console installed in ServiceMix, install the feature from your console</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:install webconsole&#x000A;</pre></div>&#x000A;</div><p>Afterwards, you can verify that the feature is marked installed in the overview.  You'll notice that the <tt>webconsole-base</tt> feature has also been installed as a requirement for the <tt>webconsole</tt> feature itself.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:list | grep webconsole&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/featureslist-grep-webconsole.png"/></p><p>You will now be able to point your browser to http://localhost:8181/system/console and login with user <tt>smx</tt> and password <tt>smx</tt> to access the web console.  From the webconsole, you can also start and stop bundles, install optional features again, ...</p>
         </div>
       
           </div>

Modified: servicemix/site/production/docs/4.4.x/quickstart/installation.html
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/quickstart/installation.html?rev=1444219&r1=1444218&r2=1444219&view=diff
==============================================================================
--- servicemix/site/production/docs/4.4.x/quickstart/installation.html (original)
+++ servicemix/site/production/docs/4.4.x/quickstart/installation.html Fri Feb  8 20:35:02 2013
@@ -89,7 +89,7 @@
 </ul>
         </div>
         <div id="body">
-                    <h1 id="Installation">Installation</h1><p>Before we can start working with Apache ServiceMix, we have to get it installed and running on our local machine first.</p><h2 id="Systemrequirements">System requirements</h2><ul><li>Java Developer Kit (JDK) 1.6.x (Java 6), for both deployment and compiling. <br/> (Note: Java 7 is currently not supported)</li><li>About 100 MB of free disk space</li></ul><h2 id="DownloadingApacheServiceMix">Downloading Apache ServiceMix</h2><p>Apache ServiceMix 4.4.2 is available under the Apache License v2 and can be downloaded from <a href="http://servicemix.apache.org/downloads.html">http://servicemix.apache.org/downloads.html</a>.</p><p>Depending on your operation system, you should download either the tar.gz or the zip file:</p><ul><li>tar.gz for Linux/Unix/MacOS X</li><li>zip for Windows</li></ul><h2 id="InstallingApacheServiceMix">Installing Apache ServiceMix</h2><p>Installing Apache ServiceMix is as simple as uncompressing 
 the downloaded archive on your hard disk.  For the rest of this guide, we'll refer to the this location as <strong><tt>&lt;SERVICEMIX_HOME></tt></strong>.</p><h2 id="StartingApacheServiceMix">Starting Apache ServiceMix</h2><p>Depending on your platform, start Apache ServiceMix by following the instructions below.  After starting the container, you will have access to the console from which you can manage the container.</p><h3 id="OnWindows">On Windows</h3><p>In a command prompt window, navigate to the directory where you extracted ServiceMix and run the <tt>bin\servicemix.bat</tt> file.</p><p>Example: if ServiceMix in installed in the <tt>c:\tools\apache-servicemix-4.4.2</tt> directory</p><div class="syntax"><div class="highlight"><pre><span class="p">&gt;</span> <span class="n">cd</span> c:\tools\apache-servicemix<span class="m">-4</span>.<span class="m">4</span>.<span class="m">2</span>&#x000A;&gt; .\bin\servicemix&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="i
 mages/start-windows.png"/></p><h3 id="OnLinuxUnixMacOSX">On Linux/Unix/MacOS X</h3><p>On a command shell, navigate to the directory where you extracted ServiceMix and the <tt>bin/servicemix</tt> shell script</p><p>Example: if ServiceMix is installed in the <tt>~/Applications/apache-servicemix-4.4.2</tt> directory.</p><div class="syntax"><div class="highlight"><pre><span class="nv">$ </span><span class="nb">cd</span> ~/Applications/apache-servicemix-4.4.2&#x000A;<span class="nv">$ </span>./bin/servicemix&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/start-linux.png"/></p>
+                    <h1 id="Installation">Installation</h1><p>Before we can start working with Apache ServiceMix, we have to get it installed and running on our local machine first.</p><h2 id="Systemrequirements">System requirements</h2><ul><li><p>Java Developer Kit (JDK) 1.6.x (Java 6), for both deployment and compiling. <br/> (Note: Java 7 is currently not supported)</p></li><li><p>About 100 MB of free disk space</p></li></ul><h2 id="DownloadingApacheServiceMix">Downloading Apache ServiceMix</h2><p>Apache ServiceMix 4.4.2 is available under the Apache License v2 and can be downloaded from <a href="http://servicemix.apache.org/downloads.html">http://servicemix.apache.org/downloads.html</a>.</p><p>Depending on your operation system, you should download either the tar.gz or the zip file:</p><ul><li><p>tar.gz for Linux/Unix/MacOS X</p></li><li><p>zip for Windows</p></li></ul><h2 id="InstallingApacheServiceMix">Installing Apache ServiceMix</h2><p>Installing Apache ServiceMix is
  as simple as uncompressing the downloaded archive on your hard disk.  For the rest of this guide, we'll refer to the this location as <strong><tt>&lt;SERVICEMIX_HOME></tt></strong>.</p><h2 id="StartingApacheServiceMix">Starting Apache ServiceMix</h2><p>Depending on your platform, start Apache ServiceMix by following the instructions below.  After starting the container, you will have access to the console from which you can manage the container.</p><h3 id="OnWindows">On Windows</h3><p>In a command prompt window, navigate to the directory where you extracted ServiceMix and run the <tt>bin\servicemix.bat</tt> file.</p><p>Example: if ServiceMix in installed in the <tt>c:\tools\apache-servicemix-4.4.2</tt> directory</p><div class="syntax"><div class="highlight"><pre><span class="p">&gt;</span> <span class="n">cd</span> c:\tools\apache-servicemix<span class="m">-4</span>.<span class="m">4</span>.<span class="m">2</span>&#x000A;&gt; .\bin\servicemix&#x000A;</pre></div>&#x000A;</d
 iv><p><img border="0" src="images/start-windows.png"/></p><h3 id="OnLinuxUnixMacOSX">On Linux/Unix/MacOS X</h3><p>On a command shell, navigate to the directory where you extracted ServiceMix and the <tt>bin/servicemix</tt> shell script</p><p>Example: if ServiceMix is installed in the <tt>~/Applications/apache-servicemix-4.4.2</tt> directory.</p><div class="syntax"><div class="highlight"><pre><span class="nv">$ </span><span class="nb">cd</span> ~/Applications/apache-servicemix-4.4.2&#x000A;<span class="nv">$ </span>./bin/servicemix&#x000A;</pre></div>&#x000A;</div><p>!/quickstart/images/start-linux.png</p>|width=75%|height=75%!
         </div>
       
           </div>

Modified: servicemix/site/production/docs/4.4.x/quickstart/quickstart.pdf
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/quickstart/quickstart.pdf?rev=1444219&r1=1444218&r2=1444219&view=diff
==============================================================================
Files servicemix/site/production/docs/4.4.x/quickstart/quickstart.pdf (original) and servicemix/site/production/docs/4.4.x/quickstart/quickstart.pdf Fri Feb  8 20:35:02 2013 differ

Modified: servicemix/site/production/docs/4.4.x/quickstart/quickstart.pdf.html
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/quickstart/quickstart.pdf.html?rev=1444219&r1=1444218&r2=1444219&view=diff
==============================================================================
--- servicemix/site/production/docs/4.4.x/quickstart/quickstart.pdf.html (original)
+++ servicemix/site/production/docs/4.4.x/quickstart/quickstart.pdf.html Fri Feb  8 20:35:02 2013
@@ -16,7 +16,7 @@
     </div>
   </div>
   <div id="main">
-    <h1 id="Introduction">Introduction</h1><p>First of all, welcome to the Apache ServiceMix project!</p><p>The goal of this Quickstart guide is to give you a 20-minute overview of what ServiceMix is and what you can do with it.  In that time, we'll install ServiceMix on your machine, deploy some basic integration routes and extend the container with an additional feature.</p><h1 id="Installation">Installation</h1><p>Before we can start working with Apache ServiceMix, we have to get it installed and running on our local machine first.</p><h2 id="Systemrequirements">System requirements</h2><ul><li>Java Developer Kit (JDK) 1.6.x (Java 6), for both deployment and compiling. <br/> (Note: Java 7 is currently not supported)</li><li>About 100 MB of free disk space</li></ul><h2 id="DownloadingApacheServiceMix">Downloading Apache ServiceMix</h2><p>Apache ServiceMix 4.4.2 is available under the Apache License v2 and can be downloaded from <a href="http://servicemix.apache.org/download
 s.html">http://servicemix.apache.org/downloads.html</a>.</p><p>Depending on your operation system, you should download either the tar.gz or the zip file:</p><ul><li>tar.gz for Linux/Unix/MacOS X</li><li>zip for Windows</li></ul><h2 id="InstallingApacheServiceMix">Installing Apache ServiceMix</h2><p>Installing Apache ServiceMix is as simple as uncompressing the downloaded archive on your hard disk.  For the rest of this guide, we'll refer to the this location as <strong><tt>&lt;SERVICEMIX_HOME></tt></strong>.</p><h2 id="StartingApacheServiceMix">Starting Apache ServiceMix</h2><p>Depending on your platform, start Apache ServiceMix by following the instructions below.  After starting the container, you will have access to the console from which you can manage the container.</p><h3 id="OnWindows">On Windows</h3><p>In a command prompt window, navigate to the directory where you extracted ServiceMix and run the <tt>bin\servicemix.bat</tt> file.</p><p>Example: if ServiceMix in inst
 alled in the <tt>c:\tools\apache-servicemix-4.4.2</tt> directory</p><div class="syntax"><div class="highlight"><pre><span class="p">&gt;</span> <span class="n">cd</span> c:\tools\apache-servicemix<span class="m">-4</span>.<span class="m">4</span>.<span class="m">2</span>&#x000A;&gt; .\bin\servicemix&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/start-windows.png"/></p><h3 id="OnLinuxUnixMacOSX">On Linux/Unix/MacOS X</h3><p>On a command shell, navigate to the directory where you extracted ServiceMix and the <tt>bin/servicemix</tt> shell script</p><p>Example: if ServiceMix is installed in the <tt>~/Applications/apache-servicemix-4.4.2</tt> directory.</p><div class="syntax"><div class="highlight"><pre><span class="nv">$ </span><span class="nb">cd</span> ~/Applications/apache-servicemix-4.4.2&#x000A;<span class="nv">$ </span>./bin/servicemix&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/start-linux.png"/></p><h1 id="ApacheServiceMixconsole">Ap
 ache ServiceMix console</h1><p>Now that we successfully installed and started Apache ServiceMix, we'll take a closer look at the console.  This is where you manage your ServiceMix instance, add and remove bundles, install optional features, ...</p><h2 id="Workingwithbundles">Working with bundles</h2><p>When ServiceMix is first started, a whole set of bundles providing the core features for the product are being installed.  Let's use the command console to find out more about them...</p><p>The <tt>osgi:list</tt> command can be used to get a list of all bundles currently installed.  Enter this</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:list&#x000A;</pre></div>&#x000A;</div><p>This is what the output looks like if you run this on your ServiceMix instance.</p><p><img border="0" src="images/osgi-list.png"/></p><p>For every bundle, you see:</p><ul><li>the bundle id</li><li>the bundle state</li><li>if the bundle contains a Blueprint or Spring XML file, t
 he next 2 columns will show you if the beans defined there were created successfully</li><li>the bundle start level</li><li>the bundle name and version</li></ul><p>If you're looking for something specific in the list, you can use unix-like pipes and utilities to help you.  An example: to look for all Camel related bundles...</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:list | grep camel&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/osgi-list-pipegrep.png"/></p><h2 id="Workingwithlogging">Working with logging</h2><p>Many of the applications you write will have some form of log output.  To look at the message in the log file, you can us the <tt>log:diplay</tt> command.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:display&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/log-display.png"/></p><p>If you're only interested in the latest exception in the log file, you can use <tt>log:display-excepti
 on</tt> instead.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:display-exception&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/log-display-exception.png"/></p><p>You can also change the log level at runtime by using the <tt>log:set</tt> command.  You can try these commands on your instance now by first setting the log level to <tt>DEBUG</tt> and then using <tt>grep</tt> to make sure that you can actually see the extra logging.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:set DEBUG&#x000A;karaf@root&gt; log:display | grep DEBUG&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/log-set-debug.png"/></p><p>Afterwards, revert the log level to its original <tt>INFO</tt> value again with <tt>log:set</tt>.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:set INFO&#x000A;</pre></div>&#x000A;</div><h2 id="...andtheresalotmore">...and there's a lot more</h2><p>These are obviously just 
 a few examples of what the command shell is all about.  There are a lot more commands in the shell to help you deploy, monitor, manage and troubleshoot the applications you're building with ServiceMix.</p><h1 id="UsingCamel">Using Camel</h1><p>Now that we know how to operate Apache ServiceMix through the shell console, it's time to start using it for what it is built for.  Let's build our very first integration solution with a Camel route and deploy it on ServiceMix.</p><h2 id="Oursimplescenario">Our simple scenario</h2><p>In this simple scenario, we're going to move files from an input directory called <tt>camel/input</tt> to an output directory called <tt>camel/output</tt>.  To ensure we can keep track of which files get moved, we'll also write a message to the log file whenever we move a file.</p><h2 id="Creatingtheroute">Creating the route</h2><p>One of the most simple ways to deploy a new route on ServiceMix, is by defining the route in a Blueprint XML file.</p><div cla
 ss="syntax"><div class="highlight"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>&#x000A;<span class="nt">&lt;blueprint</span>&#x000A;    <span class="na">xmlns=</span><span class="s">&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;</span>&#x000A;    <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>&#x000A;    <span class="na">xsi:schemaLocation=</span><span class="s">&quot;</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd&quot;</span><span class="nt">&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;camelContext</span> <span class="na">xmlns=</span><span class="s">&quot;http://camel.apache.org/schema/blueprint&quot;</span><span class="nt">&gt;</span>&#x000A;      <span class="nt">&lt;route&gt;</span>&#x000A;        <span class="nt">&lt;fro
 m</span> <span class="na">uri=</span><span class="s">&quot;file:camel/input&quot;</span><span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;log</span> <span class="na">message=</span><span class="s">&quot;Moving ${file:name} to the output directory&quot;</span><span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;to</span> <span class="na">uri=</span><span class="s">&quot;file:camel/output&quot;</span><span class="nt">/&gt;</span>&#x000A;      <span class="nt">&lt;/route&gt;</span>&#x000A;    <span class="nt">&lt;/camelContext&gt;</span>&#x000A;&#x000A;<span class="nt">&lt;/blueprint&gt;</span>&#x000A;</pre></div>&#x000A;</div><h2 id="Deployingtheroute">Deploying the route</h2><p>In order to deploy and start the route, just copy the XML file you created into ServiceMix' <tt>deploy</tt> directory.  The file will get picked up and deployed by ServiceMix.  You will see a <tt>camel/input</tt> folder appear in your ServiceMix installation directory and a
 ny files you copy into that directory will get moved into the <tt>camel/output</tt> directory.</p><p>If you do a <tt>log:display</tt> in the shell, you will also see the log output for every file that's been moved.</p><p><img border="0" src="images/camel-sample-log.png"/></p><h2 id="Usingtheshelltomanagetheroute">Using the shell to manage the route</h2><p>Using <tt>osgi:list</tt>, you'll notice that your XML file has been transformed into a bundle and that the Blueprint container has been created to start your Camel route.</p><p><img border="0" src="images/camel-sample-deploy.png"/></p><p>From this output, you also learn that the bundle id for your XML file is 200.  This allow you to start and stop the route whenever necessary.  Let's give this a go now...</p><p>First, stop the route with</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:stop 200&#x000A;</pre></div>&#x000A;</div><p>The route is no longer active, so any files you copy into the <tt>orders/
 input</tt> folder will remain there for now.  As soon as you restart the route, the pending files will get moving again.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:start 200&#x000A;</pre></div>&#x000A;</div><h1 id="AddingActiveMQtotheMix">Adding ActiveMQ to the 'Mix</h1><p>Out-of-the-box, every Apache ServiceMix instance comes with an embedded ActiveMQ JMS broker.  This makes it easy to communicate between Camel routes using persistent messages on the same machine, but it will also enable you to distribute your routes over multiple instances afterwards for clustering or load-balancing.</p><h2 id="Ourscenario">Our scenario</h2><p>In this scenario, we also want to move files between directories.  Instead of logging the move directly, we are going to send an event JMS message onto a queue.  Afterwards, we will create a second Camel route to receive the events and log them.</p><h2 id="Movingfilesandsendingeventmessages">Moving files and sending event 
 messages</h2><p>The first Blueprint XML file we'll create contains a Camel route that moves the files from <tt>activemq/input</tt> to the <tt>activemq/output</tt> directory.  Afterwards, it will generate an event message and send that to an ActiveMQ queue called <tt>events</tt>.</p><div class="syntax"><div class="highlight"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>&#x000A;<span class="nt">&lt;blueprint</span>&#x000A;    <span class="na">xmlns=</span><span class="s">&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;</span>&#x000A;    <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>&#x000A;    <span class="na">xsi:schemaLocation=</span><span class="s">&quot;</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd&quot;</span><span class="nt">&gt;<
 /span>&#x000A;&#x000A;    <span class="nt">&lt;camelContext</span> <span class="na">xmlns=</span><span class="s">&quot;http://camel.apache.org/schema/blueprint&quot;</span><span class="nt">&gt;</span>&#x000A;      <span class="nt">&lt;route&gt;</span>&#x000A;        <span class="nt">&lt;from</span> <span class="na">uri=</span><span class="s">&quot;file:activemq/input&quot;</span><span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;to</span> <span class="na">uri=</span><span class="s">&quot;file:activemq/output&quot;</span><span class="nt">/&gt;</span>&#x000A;&#x000A;        <span class="nt">&lt;setBody&gt;</span>&#x000A;          <span class="nt">&lt;simple&gt;</span>&#x000A;            FileMovedEvent(file: ${file:name}, timestamp: ${date:now:hh:MM:ss.SSS})&#x000A;          <span class="nt">&lt;/simple&gt;</span>&#x000A;        <span class="nt">&lt;/setBody&gt;</span>&#x000A;        <span class="nt">&lt;to</span> <span class="na">uri=</span><span class="s">&quot
 ;activemq://events&quot;</span> <span class="nt">/&gt;</span>&#x000A;      <span class="nt">&lt;/route&gt;</span>&#x000A;    <span class="nt">&lt;/camelContext&gt;</span>&#x000A;<span class="nt">&lt;/blueprint&gt;</span>&#x000A;</pre></div>&#x000A;</div><p>Save this file in ServiceMix' <tt>deploy</tt> folder and use <tt>osgi:list</tt> to check on the bundle status as you did with the simple Camel example.  You should now be able to put files in the <tt>activemq/input</tt> directory and see them being moved to <tt>activemq/output</tt>.</p><h2 id="Receivingtheeventmessages">Receiving the event messages</h2><p>After deploying the first XML file, you're obviously not seeing any events being logged yet.  The event messages are sent to an ActiveMQ queue, but there's nobody to receive the events yet.  Let's change that now by creating a second Blueprint XML file.</p><div class="syntax"><div class="highlight"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-
 8&quot;?&gt;</span>&#x000A;<span class="nt">&lt;blueprint</span>&#x000A;    <span class="na">xmlns=</span><span class="s">&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;</span>&#x000A;    <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>&#x000A;    <span class="na">xsi:schemaLocation=</span><span class="s">&quot;</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd&quot;</span><span class="nt">&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;camelContext</span> <span class="na">xmlns=</span><span class="s">&quot;http://camel.apache.org/schema/blueprint&quot;</span><span class="nt">&gt;</span>&#x000A;      <span class="nt">&lt;route&gt;</span>&#x000A;        <span class="nt">&lt;from</span> <span class="na">uri=</span><span class="s">&quot;activemq://events&quot;</span><span class="nt">/&g
 t;</span>&#x000A;        <span class="nt">&lt;to</span> <span class="na">uri=</span><span class="s">&quot;log:events&quot;</span><span class="nt">/&gt;</span>&#x000A;      <span class="nt">&lt;/route&gt;</span>&#x000A;    <span class="nt">&lt;/camelContext&gt;</span>&#x000A;<span class="nt">&lt;/blueprint&gt;</span>&#x000A;</pre></div>&#x000A;</div><p>As soon as this second file has been deployed, you'll start seeing the event messages in your <tt>log:display</tt> output.</p><h2 id="Usingtheshelltomanagetheroutes">Using the shell to manage the routes</h2><p>You can now start and stop both routes from the command shell.  The important thing to note here is that you can stop the event handler route while files are being processed.  As soon as you restart that bundle afterwards, you'll receive the events from all files that have been moved while the route was not running.</p><h1 id="Optionalfeatures">Optional features</h1><p>Everything discussed in the quickstart guide so far i
 s installed out-of-the-box in Apache ServiceMix, but we also have a lot of optional features that can be installed in the container when necessary.</p><h2 id="Listoffeatures">List of features</h2><p>The list of features is available with the <tt>features:list</tt> command.  The overview shows you whether or not the feature is currently installed, the version and the name of the feature.</p><p><img border="0" src="images/featureslist.png"/></p><p>The full list contains a lot of different features: optional Camel components, features for adding OBR or wrapper support to Serviceix, a web console, ...  Again, you can use things like <tt>|</tt> and <tt>grep</tt> to find the things in the list that you're interested in.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:list | grep camel&#x000A;</pre></div>&#x000A;</div><h2 id="ExampleWebconsole">Example: Web console</h2><p>To get the web console installed in ServiceMix, install the feature from your consol
 e</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:install webconsole&#x000A;</pre></div>&#x000A;</div><p>Afterwards, you can verify that the feature is marked installed in the overview.  You'll notice that the <tt>webconsole-base</tt> feature has also been installed as a requirement for the <tt>webconsole</tt> feature itself.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:list | grep webconsole&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/featureslist-grep-webconsole.png"/></p><p>You will now be able to point your browser to http://localhost:8181/system/console and login with user <tt>smx</tt> and password <tt>smx</tt> to access the web console.  From the webconsole, you can also start and stop bundles, install optional features again, ...</p><h1 id="Wrappingitup...">Wrapping it up...</h1><p>This is where our introductory journey through the world of Apache ServiceMix ends.  We've obviously just scratc
 hed the surface of what is possible, but we hope you have an idea of what you can expect from Apache ServiceMix and how you can use it in your environment.</p><p>For more in-depth information, have a look at our set of user guides.  Also, if you have any questions, we welcome you on our user mailing list!</p>
+    <h1 id="Introduction">Introduction</h1><p>First of all, welcome to the Apache ServiceMix project!</p><p>The goal of this Quickstart guide is to give you a 20-minute overview of what ServiceMix is and what you can do with it.  In that time, we'll install ServiceMix on your machine, deploy some basic integration routes and extend the container with an additional feature.</p><h1 id="Installation">Installation</h1><p>Before we can start working with Apache ServiceMix, we have to get it installed and running on our local machine first.</p><h2 id="Systemrequirements">System requirements</h2><ul><li><p>Java Developer Kit (JDK) 1.6.x (Java 6), for both deployment and compiling. <br/> (Note: Java 7 is currently not supported)</p></li><li><p>About 100 MB of free disk space</p></li></ul><h2 id="DownloadingApacheServiceMix">Downloading Apache ServiceMix</h2><p>Apache ServiceMix 4.4.2 is available under the Apache License v2 and can be downloaded from <a href="http://servicemix.apach
 e.org/downloads.html">http://servicemix.apache.org/downloads.html</a>.</p><p>Depending on your operation system, you should download either the tar.gz or the zip file:</p><ul><li><p>tar.gz for Linux/Unix/MacOS X</p></li><li><p>zip for Windows</p></li></ul><h2 id="InstallingApacheServiceMix">Installing Apache ServiceMix</h2><p>Installing Apache ServiceMix is as simple as uncompressing the downloaded archive on your hard disk.  For the rest of this guide, we'll refer to the this location as <strong><tt>&lt;SERVICEMIX_HOME></tt></strong>.</p><h2 id="StartingApacheServiceMix">Starting Apache ServiceMix</h2><p>Depending on your platform, start Apache ServiceMix by following the instructions below.  After starting the container, you will have access to the console from which you can manage the container.</p><h3 id="OnWindows">On Windows</h3><p>In a command prompt window, navigate to the directory where you extracted ServiceMix and run the <tt>bin\servicemix.bat</tt> file.</p><p>Ex
 ample: if ServiceMix in installed in the <tt>c:\tools\apache-servicemix-4.4.2</tt> directory</p><div class="syntax"><div class="highlight"><pre><span class="p">&gt;</span> <span class="n">cd</span> c:\tools\apache-servicemix<span class="m">-4</span>.<span class="m">4</span>.<span class="m">2</span>&#x000A;&gt; .\bin\servicemix&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/start-windows.png"/></p><h3 id="OnLinuxUnixMacOSX">On Linux/Unix/MacOS X</h3><p>On a command shell, navigate to the directory where you extracted ServiceMix and the <tt>bin/servicemix</tt> shell script</p><p>Example: if ServiceMix is installed in the <tt>~/Applications/apache-servicemix-4.4.2</tt> directory.</p><div class="syntax"><div class="highlight"><pre><span class="nv">$ </span><span class="nb">cd</span> ~/Applications/apache-servicemix-4.4.2&#x000A;<span class="nv">$ </span>./bin/servicemix&#x000A;</pre></div>&#x000A;</div><p>!/quickstart/images/start-linux.png</p>|width=75%|height=
 75%!<h1 id="ApacheServiceMixconsole">Apache ServiceMix console</h1><p>Now that we successfully installed and started Apache ServiceMix, we'll take a closer look at the console.  This is where you manage your ServiceMix instance, add and remove bundles, install optional features, ...</p><h2 id="Workingwithbundles">Working with bundles</h2><p>When ServiceMix is first started, a whole set of bundles providing the core features for the product are being installed.  Let's use the command console to find out more about them...</p><p>The <tt>osgi:list</tt> command can be used to get a list of all bundles currently installed.  Enter this</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:list&#x000A;</pre></div>&#x000A;</div><p>This is what the output looks like if you run this on your ServiceMix instance.</p><p>!/quickstart/images/osgi-list.png</p>|title=osgi:list!<p>For every bundle, you see:</p><ul><li><p>the bundle id</p></li><li><p>the bundle state</p></li><
 li><p>if the bundle contains a Blueprint or Spring XML file, the next 2 columns will show you if the beans defined there were created successfully</p></li><li><p>the bundle start level</p></li><li><p>the bundle name and version</p></li></ul><p>If you're looking for something specific in the list, you can use unix-like pipes and utilities to help you.  An example: to look for all Camel related bundles...</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:list | grep camel&#x000A;</pre></div>&#x000A;</div><p>!/quickstart/images/osgi-list-pipegrep.png</p>|title=osgi:list!<h2 id="Workingwithlogging">Working with logging</h2><p>Many of the applications you write will have some form of log output.  To look at the message in the log file, you can us the <tt>log:diplay</tt> command.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:display&#x000A;</pre></div>&#x000A;</div><p>!/quickstart/images/log-display.png</p>|title=log:display!<p>If you'r
 e only interested in the latest exception in the log file, you can use <tt>log:display-exception</tt> instead.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:display-exception&#x000A;</pre></div>&#x000A;</div><p>!/quickstart/images/log-display-exception.png</p>|title=log:display-exception!<p>You can also change the log level at runtime by using the <tt>log:set</tt> command.  You can try these commands on your instance now by first setting the log level to <tt>DEBUG</tt> and then using <tt>grep</tt> to make sure that you can actually see the extra logging.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:set DEBUG&#x000A;karaf@root&gt; log:display | grep DEBUG&#x000A;</pre></div>&#x000A;</div><p>!/quickstart/images/log-set-debug.png</p>|title=log:set DEBUG!<p>Afterwards, revert the log level to its original <tt>INFO</tt> value again with <tt>log:set</tt>.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; log:set INFO
 &#x000A;</pre></div>&#x000A;</div><h2 id="...andtheresalotmore">...and there's a lot more</h2><p>These are obviously just a few examples of what the command shell is all about.  There are a lot more commands in the shell to help you deploy, monitor, manage and troubleshoot the applications you're building with ServiceMix.</p><h1 id="UsingCamel">Using Camel</h1><p>Now that we know how to operate Apache ServiceMix through the shell console, it's time to start using it for what it is built for.  Let's build our very first integration solution with a Camel route and deploy it on ServiceMix.</p><h2 id="Oursimplescenario">Our simple scenario</h2><p>In this simple scenario, we're going to move files from an input directory called <tt>camel/input</tt> to an output directory called <tt>camel/output</tt>.  To ensure we can keep track of which files get moved, we'll also write a message to the log file whenever we move a file.</p><h2 id="Creatingtheroute">Creating the route</h2><p>One 
 of the most simple ways to deploy a new route on ServiceMix, is by defining the route in a Blueprint XML file.</p><div class="syntax"><div class="highlight"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>&#x000A;<span class="nt">&lt;blueprint</span>&#x000A;    <span class="na">xmlns=</span><span class="s">&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;</span>&#x000A;    <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>&#x000A;    <span class="na">xsi:schemaLocation=</span><span class="s">&quot;</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd&quot;</span><span class="nt">&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;camelContext</span> <span class="na">xmlns=</span><span class="s">&quot;http://camel.apache.org/schema/blueprint&quot;</sp
 an><span class="nt">&gt;</span>&#x000A;      <span class="nt">&lt;route&gt;</span>&#x000A;        <span class="nt">&lt;from</span> <span class="na">uri=</span><span class="s">&quot;file:camel/input&quot;</span><span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;log</span> <span class="na">message=</span><span class="s">&quot;Moving ${file:name} to the output directory&quot;</span><span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;to</span> <span class="na">uri=</span><span class="s">&quot;file:camel/output&quot;</span><span class="nt">/&gt;</span>&#x000A;      <span class="nt">&lt;/route&gt;</span>&#x000A;    <span class="nt">&lt;/camelContext&gt;</span>&#x000A;&#x000A;<span class="nt">&lt;/blueprint&gt;</span>&#x000A;</pre></div>&#x000A;</div><h2 id="Deployingtheroute">Deploying the route</h2><p>In order to deploy and start the route, just copy the XML file you created into ServiceMix' <tt>deploy</tt> directory.  The file will get picked up and 
 deployed by ServiceMix.  You will see a <tt>camel/input</tt> folder appear in your ServiceMix installation directory and any files you copy into that directory will get moved into the <tt>camel/output</tt> directory.</p><p>If you do a <tt>log:display</tt> in the shell, you will also see the log output for every file that's been moved.</p><p><img border="0" src="images/camel-sample-log.png"/></p><h2 id="Usingtheshelltomanagetheroute">Using the shell to manage the route</h2><p>Using <tt>osgi:list</tt>, you'll notice that your XML file has been transformed into a bundle and that the Blueprint container has been created to start your Camel route.</p><p><img border="0" src="images/camel-sample-deploy.png"/></p><p>From this output, you also learn that the bundle id for your XML file is 200.  This allow you to start and stop the route whenever necessary.  Let's give this a go now...</p><p>First, stop the route with</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; o
 sgi:stop 200&#x000A;</pre></div>&#x000A;</div><p>The route is no longer active, so any files you copy into the <tt>orders/input</tt> folder will remain there for now.  As soon as you restart the route, the pending files will get moving again.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; osgi:start 200&#x000A;</pre></div>&#x000A;</div><h1 id="AddingActiveMQtotheMix">Adding ActiveMQ to the 'Mix</h1><p>Out-of-the-box, every Apache ServiceMix instance comes with an embedded ActiveMQ JMS broker.  This makes it easy to communicate between Camel routes using persistent messages on the same machine, but it will also enable you to distribute your routes over multiple instances afterwards for clustering or load-balancing.</p><h2 id="Ourscenario">Our scenario</h2><p>In this scenario, we also want to move files between directories.  Instead of logging the move directly, we are going to send an event JMS message onto a queue.  Afterwards, we will create a second Came
 l route to receive the events and log them.</p><h2 id="Movingfilesandsendingeventmessages">Moving files and sending event messages</h2><p>The first Blueprint XML file we'll create contains a Camel route that moves the files from <tt>activemq/input</tt> to the <tt>activemq/output</tt> directory.  Afterwards, it will generate an event message and send that to an ActiveMQ queue called <tt>events</tt>.</p><div class="syntax"><div class="highlight"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>&#x000A;<span class="nt">&lt;blueprint</span>&#x000A;    <span class="na">xmlns=</span><span class="s">&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;</span>&#x000A;    <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>&#x000A;    <span class="na">xsi:schemaLocation=</span><span class="s">&quot;</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0</span
 >&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd&quot;</span><span class="nt">&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;camelContext</span> <span class="na">xmlns=</span><span class="s">&quot;http://camel.apache.org/schema/blueprint&quot;</span><span class="nt">&gt;</span>&#x000A;      <span class="nt">&lt;route&gt;</span>&#x000A;        <span class="nt">&lt;from</span> <span class="na">uri=</span><span class="s">&quot;file:activemq/input&quot;</span><span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;to</span> <span class="na">uri=</span><span class="s">&quot;file:activemq/output&quot;</span><span class="nt">/&gt;</span>&#x000A;&#x000A;        <span class="nt">&lt;setBody&gt;</span>&#x000A;          <span class="nt">&lt;simple&gt;</span>&#x000A;            FileMovedEvent(file: ${file:name}, timestamp: ${date:now:hh:MM:ss.SSS})&#x000A;          <span class="nt">&lt;/simple&gt;</span>&#x000A;        <span class="n
 t">&lt;/setBody&gt;</span>&#x000A;        <span class="nt">&lt;to</span> <span class="na">uri=</span><span class="s">&quot;activemq://events&quot;</span> <span class="nt">/&gt;</span>&#x000A;      <span class="nt">&lt;/route&gt;</span>&#x000A;    <span class="nt">&lt;/camelContext&gt;</span>&#x000A;<span class="nt">&lt;/blueprint&gt;</span>&#x000A;</pre></div>&#x000A;</div><p>Save this file in ServiceMix' <tt>deploy</tt> folder and use <tt>osgi:list</tt> to check on the bundle status as you did with the simple Camel example.  You should now be able to put files in the <tt>activemq/input</tt> directory and see them being moved to <tt>activemq/output</tt>.</p><h2 id="Receivingtheeventmessages">Receiving the event messages</h2><p>After deploying the first XML file, you're obviously not seeing any events being logged yet.  The event messages are sent to an ActiveMQ queue, but there's nobody to receive the events yet.  Let's change that now by creating a second Blueprint XML file
 .</p><div class="syntax"><div class="highlight"><pre><span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>&#x000A;<span class="nt">&lt;blueprint</span>&#x000A;    <span class="na">xmlns=</span><span class="s">&quot;http://www.osgi.org/xmlns/blueprint/v1.0.0&quot;</span>&#x000A;    <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>&#x000A;    <span class="na">xsi:schemaLocation=</span><span class="s">&quot;</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0</span>&#x000A;<span class="s">      http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd&quot;</span><span class="nt">&gt;</span>&#x000A;&#x000A;    <span class="nt">&lt;camelContext</span> <span class="na">xmlns=</span><span class="s">&quot;http://camel.apache.org/schema/blueprint&quot;</span><span class="nt">&gt;</span>&#x000A;      <span class="nt">&lt;route&gt;</span>&#x000A;        <span class
 ="nt">&lt;from</span> <span class="na">uri=</span><span class="s">&quot;activemq://events&quot;</span><span class="nt">/&gt;</span>&#x000A;        <span class="nt">&lt;to</span> <span class="na">uri=</span><span class="s">&quot;log:events&quot;</span><span class="nt">/&gt;</span>&#x000A;      <span class="nt">&lt;/route&gt;</span>&#x000A;    <span class="nt">&lt;/camelContext&gt;</span>&#x000A;<span class="nt">&lt;/blueprint&gt;</span>&#x000A;</pre></div>&#x000A;</div><p>As soon as this second file has been deployed, you'll start seeing the event messages in your <tt>log:display</tt> output.</p><h2 id="Usingtheshelltomanagetheroutes">Using the shell to manage the routes</h2><p>You can now start and stop both routes from the command shell.  The important thing to note here is that you can stop the event handler route while files are being processed.  As soon as you restart that bundle afterwards, you'll receive the events from all files that have been moved while the route wa
 s not running.</p><h1 id="Optionalfeatures">Optional features</h1><p>Everything discussed in the quickstart guide so far is installed out-of-the-box in Apache ServiceMix, but we also have a lot of optional features that can be installed in the container when necessary.</p><h2 id="Listoffeatures">List of features</h2><p>The list of features is available with the <tt>features:list</tt> command.  The overview shows you whether or not the feature is currently installed, the version and the name of the feature.</p><p><img border="0" src="images/featureslist.png"/></p><p>The full list contains a lot of different features: optional Camel components, features for adding OBR or wrapper support to Serviceix, a web console, ...  Again, you can use things like {{</p>|}} and <tt>grep</tt> to find the things in the list that you're interested in.<div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:list | grep camel&#x000A;</pre></div>&#x000A;</div><h2 id="ExampleWebcons
 ole">Example: Web console</h2><p>To get the web console installed in ServiceMix, install the feature from your console</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:install webconsole&#x000A;</pre></div>&#x000A;</div><p>Afterwards, you can verify that the feature is marked installed in the overview.  You'll notice that the <tt>webconsole-base</tt> feature has also been installed as a requirement for the <tt>webconsole</tt> feature itself.</p><div class="syntax"><div class="highlight"><pre>karaf@root&gt; features:list | grep webconsole&#x000A;</pre></div>&#x000A;</div><p><img border="0" src="images/featureslist-grep-webconsole.png"/></p><p>You will now be able to point your browser to http://localhost:8181/system/console and login with user <tt>smx</tt> and password <tt>smx</tt> to access the web console.  From the webconsole, you can also start and stop bundles, install optional features again, ...</p><h1 id="Wrappingitup...">Wrapping it up...</h
 1><p>This is where our introductory journey through the world of Apache ServiceMix ends.  We've obviously just scratched the surface of what is possible, but we hope you have an idea of what you can expect from Apache ServiceMix and how you can use it in your environment.</p><p>For more in-depth information, have a look at our set of user guides.  Also, if you have any questions, we welcome you on our user mailing list!</p>
   </div>
 </body>
 </html>
\ No newline at end of file

Added: servicemix/site/production/docs/4.4.x/user/index.html
URL: http://svn.apache.org/viewvc/servicemix/site/production/docs/4.4.x/user/index.html?rev=1444219&view=auto
==============================================================================
--- servicemix/site/production/docs/4.4.x/user/index.html (added)
+++ servicemix/site/production/docs/4.4.x/user/index.html Fri Feb  8 20:35:02 2013
@@ -0,0 +1,94 @@
+
+<!DOCTYPE html>
+<html>
+<head>
+  <title>Apache ServiceMix Documentation - </title>
+
+  <link href="../theme/master.css" rel="stylesheet" type="text/css" />
+  <link href="../theme/pygmentize.css" rel="stylesheet" type="text/css" />
+  
+  <script type="text/javascript" src="../scripts/jquery.js"></script>
+  <script type="text/javascript" src="../scripts/jquery.cookie.js"></script>
+  <script type="text/javascript" src="../scripts/jquery.jstree.js"></script>
+
+  <script>
+    $(document).ready(function(){
+	  $("#nav").jstree({
+		"themes": {
+		  "theme": "apple", "dots": false
+		},
+		"plugins" : [ "themes", "html_data", "cookies", "themes" ]
+  	  });
+    });
+  </script>
+  <script type="text/javascript">
+    var _gaq = _gaq || [];
+    _gaq.push(['_setAccount', 'UA-398545-1']);
+    _gaq.push(['_trackPageview']);
+
+    (function() {
+      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+    })();
+  </script>
+</head>
+<body>
+  <div id="page">
+    <div id="siteHeader">
+      <table width="100%">
+      <tr valign="middle">
+        <td align="left">
+            <a href="http://servicemix.apache.org/" title="An open source ESB">
+            <img border="0" src="../images/logodesign.png" height="80"/><img border="0" height="80" src="../images/new-logo.png" />
+            </a>
+          </td>
+          <td align="right">
+            <a href="http://www.apache.org/" title="The Apache Sofware Foundation">
+              <img border="0" height="60" src="../images/ASF-logo.png">
+            </a>
+            <ul class="siteNav">
+              <li><a href="../index.html" title="Overview">Guides Overview</a></li>
+              <li><a href="../contribute.html" title="Contributing?">Contributing?</a></li>
+              <li>
+                <form action="http://www.google.com/search" method="get" style="font-size: 10px;">
+                  <input name="ie" type="hidden" value="UTF-8"></input>
+                  <input name="oe" type="hidden" value="UTF-8"></input>
+                  <input maxlength="255" name="q" size="15" type="text" value=""></input>
+                  <input name="btnG" type="submit" value="Search"></input>
+                  <input name="domains" type="hidden" value="servicemix.apache.org/docs/4.4.x"></input>
+                  <input name="sitesearch" type="hidden" value="servicemix.apache.org/docs/4.4.x"></input>
+                </form>
+              </li>
+            </ul>
+          </td>
+        </tr>
+      </table>
+    </div>
+    <div id="content">
+              <div id="nav">
+            <ul>
+    <li id="introduction">
+        <a href="index.html">Introduction</a>
+    </li>
+    <li id="what-is-smx4">
+        <a href="what-is-smx4.html">What is (in) Apache ServiceMix?</a>
+    </li>
+    <li id="basic-commands">
+        <a href="technology-selection.html">Technology selection guidelines</a>
+    </li>
+</ul>
+        </div>
+        <div id="body">
+                    <p>Apache ServiceMix is a flexible, open-source integration container that unifies the features and functionality of<br/>Apache ActiveMQ, Camel, CXF and Karaf into a powerful runtime platform for building integrations solutions.</p><p><img border="0" src="../images/smx-overview.png"/></p><p>The goal of this document is to introduce you to the different components that are part of Apache ServiceMix and explain<br/>how and when they can be used together.</p><p>Table of contents:</p><ul><li><p><a href="what-is-smx4.html">What is (in) Apache ServiceMix 4</a></p></li><li><p><a href="technology-selection.html">Technology selection guidelines</a></p></li></ul>
+        </div>
+      
+          </div>
+    <div id="siteFooter">
+      &copy; 2008-2012 The Apache Software Foundation - <a href="http://servicemix.apache.org/site/privacy-policy.html">Privacy Policy</a>
+      <br/>
+      Apache ServiceMix, ServiceMix, Apache, the Apache feather logo, and the Apache ServiceMix project logo are trademarks of The Apache Software Foundation.
+    </div>
+  </div>
+</body>
+</html>
\ No newline at end of file