Author: gertv
Date: Sun Mar 23 22:46:16 2014
New Revision: 1580647
URL: http://svn.apache.org/r1580647
Log:
[scm-publish] Updating ServiceMix 5.0.x documentation contents
Modified:
servicemix/site/production/docs/5.0.x/camel/camel-guide.pdf
servicemix/site/production/docs/5.0.x/quickstart/activemq.html
servicemix/site/production/docs/5.0.x/quickstart/quickstart.pdf
servicemix/site/production/docs/5.0.x/quickstart/quickstart.pdf.html
Modified: servicemix/site/production/docs/5.0.x/camel/camel-guide.pdf
URL:
http://svn.apache.org/viewvc/servicemix/site/production/docs/5.0.x/camel/camel-guide.pdf?rev=1580647&r1=1580646&r2=1580647&view=diff
==============================================================================
Files servicemix/site/production/docs/5.0.x/camel/camel-guide.pdf (original)
and servicemix/site/production/docs/5.0.x/camel/camel-guide.pdf Sun Mar 23
22:46:16 2014 differ
Modified: servicemix/site/production/docs/5.0.x/quickstart/activemq.html
URL:
http://svn.apache.org/viewvc/servicemix/site/production/docs/5.0.x/quickstart/activemq.html?rev=1580647&r1=1580646&r2=1580647&view=diff
==============================================================================
--- servicemix/site/production/docs/5.0.x/quickstart/activemq.html (original)
+++ servicemix/site/production/docs/5.0.x/quickstart/activemq.html Sun Mar 23
22:46:16 2014
@@ -89,7 +89,7 @@
</ul>
</div>
<div id="body">
- <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 an
d send that to an ActiveMQ queue called <tt>events</tt>.</p><div
class="syntax"><div class="highlight"><pre><span class="cp"><?xml
version="1.0" encoding="UTF-8"?></span>
<span
class="nt"><blueprint</span>
 <span class="na">xmlns=</span><span
class="s">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>

<span class="na">xmlns:xsi=</span><span
class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>

<span class="na">xsi:schemaLocation=</span><span
class="s">"</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"</span><span
class="nt">></span>

 <span
class="nt"><camelContext</span> <span class="na">xmlns=</span><span
class="s">"http://camel.apache.org/schema/blueprint"</span><span
class="nt">></span>
 <span class="nt">
<route></span>
 <span class="nt"><from</span> <span
class="na">uri=</span><span
class="s">"file:activemq/input"</span><span
class="nt">/></span>
 <span class="nt"><to</span> <span
class="na">uri=</span><span
class="s">"file:activemq/output"</span><span
class="nt">/></span>

 <span
class="nt"><setBody></span>
 <span
class="nt"><simple></span>
 FileMovedEvent(file:
${file:name}, timestamp: ${date:now:hh:MM:ss.SSS})
 <span
class="nt"></simple></span>
 <span
class="nt"></setBody></span>
 <span
class="nt"><to</span> <span class="na">uri=</span><span
class="s">"activemq://events"</span> <span
class="nt">/></span>
 <span
class="nt"></route></span>
 <span
class="nt"></camelContext></span>
<span
class="nt"></blueprint></span>
</pre></div
>
</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"><?xml version="1.0"
>encoding="UTF-8"?></span>
<span
>class="nt"><blueprint</span>
 <span
>class="na">xmlns=</span><span
>class="s">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>

> <span class="na">xmlns:xsi=</span><span class="s">&q
uot;http://www.w3.org/2001/XMLSchema-instance"</span>
 <span
class="na">xsi:schemaLocation=</span><span class="s">"</span>
<span
class="s"> http://www.osgi.org/xmlns/blueprint/v1.0.0</span>
<span
class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"</span><span
class="nt">></span>

 <span
class="nt"><camelContext</span> <span class="na">xmlns=</span><span
class="s">"http://camel.apache.org/schema/blueprint"</span><span
class="nt">></span>
 <span
class="nt"><route></span>
 <span class="nt"><from</span>
<span class="na">uri=</span><span
class="s">"activemq://events"</span><span
class="nt">/></span>
 <span class="nt"><to</span> <span
class="na">uri=</span><span class="s">"log:events"</span><span
class="nt">/></span>
 <span
class="nt"></route></span>
 <span class="nt"></camelContex
t></span>
<span
class="nt"></blueprint></span>
</pre></div>
</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="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="Beforewestart">Before we start</h2><p>First, we have to
install an optional feature to allow Camel send and receive JMS messages.
We'll talk about optional features a bit more in the next page of this
quickstart guide, but for now, just run the following command in the
console.</p><div cl
ass="syntax"><div class="highlight"><pre>karaf@root> features:install
camel-jms
</pre></div>
</div><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"><?xml
version="1.0" encoding="UTF-8"?></span>
<span
class="nt"><blueprint</span>
 <span class="na">xmlns=</span><span
class="s">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>

<span class="na">xmlns:xsi=</span><span
class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>

<span class="na">xsi:schemaLocation=</span><span
class="s">"</span>
<span cla
ss="s"> http://www.osgi.org/xmlns/blueprint/v1.0.0</span>
<span
class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"</span><span
class="nt">></span>

 <span
class="nt"><camelContext</span> <span class="na">xmlns=</span><span
class="s">"http://camel.apache.org/schema/blueprint"</span><span
class="nt">></span>
 <span
class="nt"><route></span>
 <span class="nt"><from</span>
<span class="na">uri=</span><span
class="s">"file:activemq/input"</span><span
class="nt">/></span>
 <span class="nt"><to</span> <span
class="na">uri=</span><span
class="s">"file:activemq/output"</span><span
class="nt">/></span>

 <span
class="nt"><setBody></span>
 <span
class="nt"><simple></span>
 FileMovedEvent(file:
${file:name}, timestamp: ${date:now:hh:MM:ss.SSS})
 <span
class="nt"
></simple></span>
 <span
>class="nt"></setBody></span>
 <span
>class="nt"><to</span> <span class="na">uri=</span><span
>class="s">"activemq://events"</span> <span
>class="nt">/></span>
 <span
>class="nt"></route></span>
 <span
>class="nt"></camelContext></span>

 <span
>class="nt"><reference</span> <span class="na">id=</span><span
>class="s">"connectionFactory"</span> <span
>class="na">interface=</span><span
>class="s">"javax.jms.ConnectionFactory"</span> <span
>class="nt">/></span>
 <span class="nt"><bean</span> <span
>class="na">id=</span><span class="s">"activemq"</span> <span
>class="na">class=</span><span
>class="s">"org.apache.activemq.camel.component.ActiveMQComponent"</span><span
> class="nt">></span>
 <span
>class="nt"><property</span> <span class="na">name=</span><span
>class="s">"brokerURL"</s
pan> <span class="na">value=</span><span
class="s">"tcp://localhost:61616"</span><span
class="nt">/></span>
 <span class="nt"><property</span>
<span class="na">name=</span><span class="s">"userName"</span> <span
class="na">value=</span><span class="s">"smx"</span><span
class="nt">/></span>
 <span class="nt"><property</span>
<span class="na">name=</span><span class="s">"password"</span> <span
class="na">value=</span><span class="s">"smx"</span><span
class="nt">/></span>
 <span
class="nt"></bean></span>

<span
class="nt"></blueprint></span>
</pre></div>
</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"><?xml version="1.0"
encoding="UTF-8"?></span>
<span
class="nt"><blueprint</span>
 <span class="na">xmlns=</span><span
class="s">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>

<span class="na">xmlns:xsi=</span><span
class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>

<span class="na">xsi:schemaLocation=</span><span
class="s">"</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd&quo
t;</span><span class="nt">></span>

 <span
class="nt"><camelContext</span> <span class="na">xmlns=</span><span
class="s">"http://camel.apache.org/schema/blueprint"</span><span
class="nt">></span>
 <span
class="nt"><route></span>
 <span class="nt"><from</span>
<span class="na">uri=</span><span
class="s">"activemq://events"</span><span
class="nt">/></span>
 <span class="nt"><to</span> <span
class="na">uri=</span><span class="s">"log:events"</span><span
class="nt">/></span>
 <span
class="nt"></route></span>
 <span
class="nt"></camelContext></span>

 <span
class="nt"><reference</span> <span class="na">id=</span><span
class="s">"connectionFactory"</span> <span
class="na">interface=</span><span
class="s">"javax.jms.ConnectionFactory"</span> <span
class="nt">/></span>
 <span class="nt"><be
an</span> <span class="na">id=</span><span
class="s">"activemq"</span> <span class="na">class=</span><span
class="s">"org.apache.activemq.camel.component.ActiveMQComponent"</span><span
class="nt">></span>
 <span class="nt"><property</span>
<span class="na">name=</span><span class="s">"brokerURL"</span> <span
class="na">value=</span><span
class="s">"tcp://localhost:61616"</span><span
class="nt">/></span>
 <span class="nt"><property</span> <span
class="na">name=</span><span class="s">"userName"</span> <span
class="na">value=</span><span class="s">"smx"</span><span
class="nt">/></span>
 <span class="nt"><property</span>
<span class="na">name=</span><span class="s">"password"</span> <span
class="na">value=</span><span class="s">"smx"</span><span
class="nt">/></span>
 <span
class="nt"></bean></span>

<span class="nt">&l
t;/blueprint></span>
</pre></div>
</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>
</div>
</div>
Modified: servicemix/site/production/docs/5.0.x/quickstart/quickstart.pdf
URL:
http://svn.apache.org/viewvc/servicemix/site/production/docs/5.0.x/quickstart/quickstart.pdf?rev=1580647&r1=1580646&r2=1580647&view=diff
==============================================================================
Files servicemix/site/production/docs/5.0.x/quickstart/quickstart.pdf
(original) and servicemix/site/production/docs/5.0.x/quickstart/quickstart.pdf
Sun Mar 23 22:46:16 2014 differ
Modified: servicemix/site/production/docs/5.0.x/quickstart/quickstart.pdf.html
URL:
http://svn.apache.org/viewvc/servicemix/site/production/docs/5.0.x/quickstart/quickstart.pdf.html?rev=1580647&r1=1580646&r2=1580647&view=diff
==============================================================================
--- servicemix/site/production/docs/5.0.x/quickstart/quickstart.pdf.html
(original)
+++ servicemix/site/production/docs/5.0.x/quickstart/quickstart.pdf.html Sun
Mar 23 22:46:16 2014
@@ -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><p>For running
Apache ServiceMix itself, you'll need</p><ul><li><p>Java Runtime Environment
(JRE) 1.6.x (Java 6) or<br/> Java Runtime Environment (JRE) 1.7.x (Java
7)</p></li><li><p>About 100 MB of free disk space for the default
assembly</p></li></ul><p>If you're developing your own integration applications
and OSGi bundles, you'll also need</p><ul><li><p>Java Developer Kit (JDK) 1.6.x
(Java 6) o
r<br/> Java Developer Kit (JDK) 1.7.x (Java 7)</p></li><li><p>Apache Maven
3.0.4 or higher</p></li></ul><h2 id="DownloadingApacheServiceMix">Downloading
Apache ServiceMix</h2><p>Apache ServiceMix 5.0.0-SNAPSHOT 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><tt>tar.gz</tt> for Linux/Unix/MacOS
X</p></li><li><p><tt>zip</tt> 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><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-5.0.0-SNAPSHOT</tt> directory</p><div
class="syntax"><div class="highlight"><pre><span class="p">></span> <span
class="n">cd</span> c:\tools\apache-servicemix<span class="m">-5</span>.<span
class="m">0</span>.<span class="m">0</span>-SNAPSHOT
>
.\bin\servicemix
</pre></div>
</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>~/Applica
tions/apache-servicemix-5.0.0-SNAPSHOT</tt> directory.</p><div
class="syntax"><div class="highlight"><pre><span class="nv">$ </span><span
class="nb">cd</span>
~/Applications/apache-servicemix-5.0.0-SNAPSHOT
<span class="nv">$
</span>./bin/servicemix
</pre></div>
</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 c
lass="syntax"><div class="highlight"><pre>karaf@root>
osgi:list
</pre></div>
</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> osgi:list | grep
camel
</pre></div>
</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>
log:display
</pre></div>
</div><p>!/quickstart/images/log-display.png</p>|title=log:display!<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>
log:display-exception
</pre></div>
</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> log:set DEBU
G
karaf@root> log:display | grep
DEBUG
</pre></div>
</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> log:set
INFO
</pre></div>
</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 scena
rio, 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"><?xml
version="1.0" encoding="UTF-8"?></span>
<span
class="nt"><blueprint</span>
 <span class="na">xmlns=</span><span
class="s">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>

<span class="na">xmlns:xsi=</span><span
class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>

<span class="na">xsi:schemaLocation=</span><span
class="s">"</span>
<span class="s">
http://www.osgi.org/xmlns/blu
eprint/v1.0.0</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"</span><span
class="nt">></span>

 <span
class="nt"><camelContext</span> <span class="na">xmlns=</span><span
class="s">"http://camel.apache.org/schema/blueprint"</span><span
class="nt">></span>
 <span
class="nt"><route></span>
 <span class="nt"><from</span>
<span class="na">uri=</span><span
class="s">"file:camel/input"</span><span
class="nt">/></span>
 <span class="nt"><log</span> <span
class="na">message=</span><span class="s">"Moving ${file:name} to the
output directory"</span><span class="nt">/></span>
 <span
class="nt"><to</span> <span class="na">uri=</span><span
class="s">"file:camel/output"</span><span
class="nt">/></span>
 <span
class="nt"></route></span>
 <span
class="nt"></camelContext></s
pan>

<span
class="nt"></blueprint></span>
</pre></div>
</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-samp
le-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>
osgi:stop 200
</pre></div>
</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>
osgi:start 200
</pre></div>
</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 after
wards 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"><?xml
version="1.0" encoding="UTF-8"?></span>
<span
class="nt"><blueprint</span>
 <span class="na">xmlns=</span><span
class="s">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>�
A; <span class="na">xmlns:xsi=</span><span
class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>

<span class="na">xsi:schemaLocation=</span><span
class="s">"</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"</span><span
class="nt">></span>

 <span
class="nt"><camelContext</span> <span class="na">xmlns=</span><span
class="s">"http://camel.apache.org/schema/blueprint"</span><span
class="nt">></span>
 <span
class="nt"><route></span>
 <span class="nt"><from</span>
<span class="na">uri=</span><span
class="s">"file:activemq/input"</span><span
class="nt">/></span>
 <span class="nt"><to</span> <span
class="na">uri=</span><span
class="s">"file:activemq/output"</span><span
class="nt">/></span>

 <sp
an class="nt"><setBody></span>
 <span
class="nt"><simple></span>
 FileMovedEvent(file:
${file:name}, timestamp: ${date:now:hh:MM:ss.SSS})
 <span
class="nt"></simple></span>
 <span
class="nt"></setBody></span>
 <span
class="nt"><to</span> <span class="na">uri=</span><span
class="s">"activemq://events"</span> <span
class="nt">/></span>
 <span
class="nt"></route></span>
 <span
class="nt"></camelContext></span>
<span
class="nt"></blueprint></span>
</pre></div>
</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 messag
es</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"><?xml version="1.0"
encoding="UTF-8"?></span>
<span
class="nt"><blueprint</span>
 <span class="na">xmlns=</span><span
class="s">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>

<span class="na">xmlns:xsi=</span><span
class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>

<span class="na">xsi:schemaLocation=</span><span
class="s">"</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"</span><span
class="nt">></span>


<span class="nt"><camelContext</span> <span class="na">xmlns=</span><span
class="s">"http://camel.apache.org/schema/blueprint"</span><span
class="nt">></span>
 <span
class="nt"><route></span>
 <span class="nt"><from</span>
<span class="na">uri=</span><span
class="s">"activemq://events"</span><span
class="nt">/></span>
 <span class="nt"><to</span> <span
class="na">uri=</span><span class="s">"log:events"</span><span
class="nt">/></span>
 <span
class="nt"></route></span>
 <span
class="nt"></camelContext></span>
<span
class="nt"></blueprint></span>
</pre></div>
</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 s
hell. 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 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 thin
gs 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>
features:list | grep camel
</pre></div>
</div><h2
id="ExampleWebconsole">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> features:install
webconsole
</pre></div>
</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> features:list | grep
webconsole
</pre></div>
</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 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>
+ <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><p>For running
Apache ServiceMix itself, you'll need</p><ul><li><p>Java Runtime Environment
(JRE) 1.6.x (Java 6) or<br/> Java Runtime Environment (JRE) 1.7.x (Java
7)</p></li><li><p>About 100 MB of free disk space for the default
assembly</p></li></ul><p>If you're developing your own integration applications
and OSGi bundles, you'll also need</p><ul><li><p>Java Developer Kit (JDK) 1.6.x
(Java 6) o
r<br/> Java Developer Kit (JDK) 1.7.x (Java 7)</p></li><li><p>Apache Maven
3.0.4 or higher</p></li></ul><h2 id="DownloadingApacheServiceMix">Downloading
Apache ServiceMix</h2><p>Apache ServiceMix 5.0.0-SNAPSHOT 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><tt>tar.gz</tt> for Linux/Unix/MacOS
X</p></li><li><p><tt>zip</tt> 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><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-5.0.0-SNAPSHOT</tt> directory</p><div
class="syntax"><div class="highlight"><pre><span class="p">></span> <span
class="n">cd</span> c:\tools\apache-servicemix<span class="m">-5</span>.<span
class="m">0</span>.<span class="m">0</span>-SNAPSHOT
>
.\bin\servicemix
</pre></div>
</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>~/Applica
tions/apache-servicemix-5.0.0-SNAPSHOT</tt> directory.</p><div
class="syntax"><div class="highlight"><pre><span class="nv">$ </span><span
class="nb">cd</span>
~/Applications/apache-servicemix-5.0.0-SNAPSHOT
<span class="nv">$
</span>./bin/servicemix
</pre></div>
</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 c
lass="syntax"><div class="highlight"><pre>karaf@root>
osgi:list
</pre></div>
</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> osgi:list | grep
camel
</pre></div>
</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>
log:display
</pre></div>
</div><p>!/quickstart/images/log-display.png</p>|title=log:display!<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>
log:display-exception
</pre></div>
</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> log:set DEBU
G
karaf@root> log:display | grep
DEBUG
</pre></div>
</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> log:set
INFO
</pre></div>
</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 scena
rio, 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"><?xml
version="1.0" encoding="UTF-8"?></span>
<span
class="nt"><blueprint</span>
 <span class="na">xmlns=</span><span
class="s">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>

<span class="na">xmlns:xsi=</span><span
class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>

<span class="na">xsi:schemaLocation=</span><span
class="s">"</span>
<span class="s">
http://www.osgi.org/xmlns/blu
eprint/v1.0.0</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"</span><span
class="nt">></span>

 <span
class="nt"><camelContext</span> <span class="na">xmlns=</span><span
class="s">"http://camel.apache.org/schema/blueprint"</span><span
class="nt">></span>
 <span
class="nt"><route></span>
 <span class="nt"><from</span>
<span class="na">uri=</span><span
class="s">"file:camel/input"</span><span
class="nt">/></span>
 <span class="nt"><log</span> <span
class="na">message=</span><span class="s">"Moving ${file:name} to the
output directory"</span><span class="nt">/></span>
 <span
class="nt"><to</span> <span class="na">uri=</span><span
class="s">"file:camel/output"</span><span
class="nt">/></span>
 <span
class="nt"></route></span>
 <span
class="nt"></camelContext></s
pan>

<span
class="nt"></blueprint></span>
</pre></div>
</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-samp
le-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>
osgi:stop 200
</pre></div>
</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>
osgi:start 200
</pre></div>
</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 after
wards 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="Beforewestart">Before we
start</h2><p>First, we have to install an optional feature to allow Camel send
and receive JMS messages. We'll talk about optional features a bit more in the
next page of this quickstart guide, but for now, just run the following command
in the console.</p><div class="syntax"><div
class="highlight"><pre>karaf@root> features:install
camel-jms
</pre></div>
</div><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"><?xml version="1.0"
encoding="UTF-8"?></span>
<span
class="nt"><blueprint</span>
 <span class="na">xmlns=</span><span
class="s">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>

<span class="na">xmlns:xsi=</span><span
class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>

<span class="na">xsi:schemaLocation=</span><span
class="s">"</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"</span><span
class="nt">></span>

 <span
class="nt"><camelContext</span> <span class="na">xmlns=</span><span
class="s">"http://camel.apache.org/schema/blueprint"</span><span class
="nt">></span>
 <span class="nt"><route></span>

<span class="nt"><from</span> <span class="na">uri=</span><span
class="s">"file:activemq/input"</span><span
class="nt">/></span>
 <span class="nt"><to</span> <span
class="na">uri=</span><span
class="s">"file:activemq/output"</span><span
class="nt">/></span>

 <span
class="nt"><setBody></span>
 <span
class="nt"><simple></span>
 FileMovedEvent(file:
${file:name}, timestamp: ${date:now:hh:MM:ss.SSS})
 <span
class="nt"></simple></span>
 <span
class="nt"></setBody></span>
 <span
class="nt"><to</span> <span class="na">uri=</span><span
class="s">"activemq://events"</span> <span
class="nt">/></span>
 <span
class="nt"></route></span>
 <span
class="nt"></camelContext></span>

 <
span class="nt"><reference</span> <span class="na">id=</span><span
class="s">"connectionFactory"</span> <span
class="na">interface=</span><span
class="s">"javax.jms.ConnectionFactory"</span> <span
class="nt">/></span>
 <span class="nt"><bean</span> <span
class="na">id=</span><span class="s">"activemq"</span> <span
class="na">class=</span><span
class="s">"org.apache.activemq.camel.component.ActiveMQComponent"</span><span
class="nt">></span>
 <span class="nt"><property</span>
<span class="na">name=</span><span class="s">"brokerURL"</span> <span
class="na">value=</span><span
class="s">"tcp://localhost:61616"</span><span
class="nt">/></span>
 <span class="nt"><property</span>
<span class="na">name=</span><span class="s">"userName"</span> <span
class="na">value=</span><span class="s">"smx"</span><span
class="nt">/></span>
 <span class="
nt"><property</span> <span class="na">name=</span><span
class="s">"password"</span> <span class="na">value=</span><span
class="s">"smx"</span><span class="nt">/></span>
 <span
class="nt"></bean></span>

<span
class="nt"></blueprint></span>
</pre></div>
</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"><?xml version="1.0"
encoding="UTF-8"?></span>
<span
class="nt"><blueprint</span>
 <span class="na">xmlns=</span><span
class="s">"http://www.osgi.org/xmlns/blueprint/v1.0.0"</span>

<span class="na">xmlns:xsi=</span><span
class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>

<span class="na">xsi:schemaLocation=</span><span
class="s">"</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0</span>
<span class="s">
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"</span><span
class="nt">></span>

 <span
class="nt"><camelContext</span> <span class="na">xmlns=</span><span
class="s">"http://camel.apache.org/schema/blueprint"</span><span
class="nt">></span>
 <span
class="nt"><route></span>
 <span class="nt"><from</span>
<span class="na">uri=</span><span c
lass="s">"activemq://events"</span><span
class="nt">/></span>
 <span class="nt"><to</span> <span
class="na">uri=</span><span class="s">"log:events"</span><span
class="nt">/></span>
 <span
class="nt"></route></span>
 <span
class="nt"></camelContext></span>

 <span
class="nt"><reference</span> <span class="na">id=</span><span
class="s">"connectionFactory"</span> <span
class="na">interface=</span><span
class="s">"javax.jms.ConnectionFactory"</span> <span
class="nt">/></span>
 <span class="nt"><bean</span> <span
class="na">id=</span><span class="s">"activemq"</span> <span
class="na">class=</span><span
class="s">"org.apache.activemq.camel.component.ActiveMQComponent"</span><span
class="nt">></span>
 <span class="nt"><property</span>
<span class="na">name=</span><span class="s">"brokerURL"</span> <span
cl
ass="na">value=</span><span
class="s">"tcp://localhost:61616"</span><span
class="nt">/></span>
 <span class="nt"><property</span>
<span class="na">name=</span><span class="s">"userName"</span> <span
class="na">value=</span><span class="s">"smx"</span><span
class="nt">/></span>
 <span class="nt"><property</span>
<span class="na">name=</span><span class="s">"password"</span> <span
class="na">value=</span><span class="s">"smx"</span><span
class="nt">/></span>
 <span
class="nt"></bean></span>

<span
class="nt"></blueprint></span>
</pre></div>
</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 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> features:list | grep
camel
</pre></div>
</div><h2 id="ExampleWebconsole">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> features:install
webconsole
</pre></div>
</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> features:list | grep
webconsole
</pre></div>
</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 pa
ssword <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
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