You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2013/07/17 10:19:10 UTC

svn commit: r869808 - in /websites/production/camel/content: aggregate-example.html cache/main.pageCache leveldb.html

Author: buildbot
Date: Wed Jul 17 08:19:10 2013
New Revision: 869808

Log:
Production update by buildbot for camel

Added:
    websites/production/camel/content/leveldb.html
Modified:
    websites/production/camel/content/aggregate-example.html
    websites/production/camel/content/cache/main.pageCache

Modified: websites/production/camel/content/aggregate-example.html
==============================================================================
--- websites/production/camel/content/aggregate-example.html (original)
+++ websites/production/camel/content/aggregate-example.html Wed Jul 17 08:19:10 2013
@@ -212,7 +212,7 @@ public class NumberAggregationStrategy i
 
 
 <h3><a shape="rect" name="AggregateExample-SeeAlso"></a>See Also</h3>
-<ul class="alternate" type="square"><li><a shape="rect" href="examples.html" title="Examples">Examples</a></li><li><a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregator</a></li><li><a shape="rect" href="hawtdb.html" title="HawtDB">HawtDB</a></li></ul>
+<ul class="alternate" type="square"><li><a shape="rect" href="examples.html" title="Examples">Examples</a></li><li><a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregator</a></li><li><a shape="rect" href="hawtdb.html" title="HawtDB">HawtDB</a></li><li><a shape="rect" href="leveldb.html" title="LevelDB">LevelDB</a></li></ul>
 </div>
         </td>
         <td valign="top">

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Added: websites/production/camel/content/leveldb.html
==============================================================================
--- websites/production/camel/content/leveldb.html (added)
+++ websites/production/camel/content/leveldb.html Wed Jul 17 08:19:10 2013
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<html>
+<head>
+    <link href="http://camel.apache.org/styles/site.css" rel="stylesheet" type="text/css">
+    <link href="http://camel.apache.org/styles/type-settings.css" rel="stylesheet" type="text/css">
+    <script src="http://camel.apache.org/styles/prototype.js" type="text/javascript"></script>
+    <script src="http://camel.apache.org/styles/rico.js" type="text/javascript"></script>    
+    <script src="http://camel.apache.org/styles/site.js" type="text/javascript"></script>
+
+    <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
+
+    <style type="text/css">
+      .maincontent { overflow:hidden; }
+    </style>
+    <!--[if IE]>
+    <style type="text/css">
+      .maincontent { width:100%; }
+    </style>
+    <![endif]-->
+
+
+  <link href='http://camel.apache.org/styles/highlighter/styles/shCoreCamel.css' rel='stylesheet' type='text/css' />
+  <link href='http://camel.apache.org/styles/highlighter/styles/shThemeCamel.css' rel='stylesheet' type='text/css' />
+  <script src='http://camel.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script>
+  <script src='http://camel.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+  <script src='http://camel.apache.org/styles/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
+  
+  <script type="text/javascript">
+  SyntaxHighlighter.defaults['toolbar'] = false;
+  SyntaxHighlighter.all();
+  </script>
+
+    <title>
+    Apache Camel: LevelDB
+    </title>
+</head>
+<body>
+<div class="white_box">
+<div class="header">
+  <div class="header_l">
+    <div class="header_r">
+    </div>
+  </div>
+</div>
+<div class="content">
+  <div class="content_l">
+    <div class="content_r">
+      <div>
+          <!-- Banner -->
+<div id="banner-content"><div id="asf_logo">
+	<div id="activemq_logo" style="height:108px; background:transparent url(banner.data/apache-camel-7.png) no-repeat scroll left top;">
+            <a shape="rect" style="float:left; width:310px;display:block;text-indent:-5000px;text-decoration:none;line-height:140px; margin-top:20px; margin-left:18px;" href="http://camel.apache.org/">Camel</a>
+            <a shape="rect" style="float:right; width:180px;display:block;text-indent:-5000px;text-decoration:none;line-height:80px; margin-top:45px; margin-right:10px;" href="http://www.apache.org">Apache</a>
+	</div>
+        </div></div>
+          <!-- Banner -->
+        <div class="top_red_bar">
+          <div id="site-breadcrumbs">
+                <!-- Breadcrumbs -->
+<a href="index.html">Apache Camel</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="components.html">Components</a>&nbsp;&gt;&nbsp;<a href="leveldb.html">LevelDB</a>
+          </div>
+          <!-- Quicklinks -->
+<div id="site-quicklinks"><p><a shape="rect" href="download.html" title="Download">Download</a> | <a shape="rect" href="javadoc.html" title="JavaDoc">JavaDoc</a> | <a shape="rect" href="source.html" title="Source">Source</a> | <a shape="rect" href="discussion-forums.html" title="Discussion Forums">Forums</a> | <a shape="rect" href="support.html" title="Support">Support</a></p></div>
+          <!-- Quicklinks -->
+        </div>
+
+	<table border="0">
+	<tbody>
+        <tr>
+        <td valign="top" width="100%">
+<div class="wiki-content maincontent"><h2><a shape="rect" name="LevelDB-LevelDB"></a>LevelDB</h2>
+<p><b>Available as of Camel 2.10</b></p>
+
+<p><a shape="rect" class="external-link" href="https://code.google.com/p/leveldb/" rel="nofollow">Leveldb</a> is a very lightweight and embedable key value database. It allows together with Camel to provide persistent support for various Camel features such as <a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregator</a>. </p>
+
+<p>Current features it provides:</p>
+<ul class="alternate" type="square"><li>LevelDBAggregationRepository</li></ul>
+
+
+<h3><a shape="rect" name="LevelDB-UsingLevelDBAggregationRepository"></a>Using LevelDBAggregationRepository</h3>
+<p><tt>LevelDBAggregationRepository</tt> is an <tt>AggregationRepository</tt> which on the fly persists the aggregated messages. This ensures that you will not loose messages, as the default aggregator will use an in memory only <tt>AggregationRepository</tt>.</p>
+
+<p>It has the following options:</p>
+<div class="table-wrap">
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Option </th><th colspan="1" rowspan="1" class="confluenceTh"> Type </th><th colspan="1" rowspan="1" class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>repositoryName</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> String </td><td colspan="1" rowspan="1" class="confluenceTd"> A mandatory repository name. Allows you to use a shared <tt>LevelDBFile</tt> for multiple repositories. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>persistentFileName</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> String </td><td colspan="1" rowspan="1" class="confluenceTd"> Filename for the persistent storage. If no file exists on startup a new file is created. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>levelDBFile</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> LevelDBFile </td><td col
 span="1" rowspan="1" class="confluenceTd"> Use an existing configured <tt>org.apache.camel.component.leveldb.LevelDBFile</tt> instance. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>returnOldExchange</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> boolean </td><td colspan="1" rowspan="1" class="confluenceTd"> Whether the get operation should return the old existing Exchange if any existed. By default this option is <tt>false</tt> to optimize as we do not need the old exchange when aggregating. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>useRecovery</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> boolean </td><td colspan="1" rowspan="1" class="confluenceTd"> Whether or not recovery is enabled. This option is by default <tt>true</tt>. When enabled the Camel <a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregator</a> automatic recover failed aggregated exchange and have them resubmitted. </td></tr><tr>
 <td colspan="1" rowspan="1" class="confluenceTd"> <tt>recoveryInterval</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> long </td><td colspan="1" rowspan="1" class="confluenceTd"> If recovery is enabled then a background task is run every x'th time to scan for failed exchanges to recover and resubmit. By default this interval is 5000 millis. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>maximumRedeliveries</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> int </td><td colspan="1" rowspan="1" class="confluenceTd"> Allows you to limit the maximum number of redelivery attempts for a recovered exchange. If enabled then the Exchange will be moved to the dead letter channel if all redelivery attempts failed. By default this option is disabled. If this option is used then the <tt>deadLetterUri</tt> option must also be provided. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>deadLetterUri</tt> </td><td colspan="1" rowspan="1" c
 lass="confluenceTd"> String </td><td colspan="1" rowspan="1" class="confluenceTd"> An endpoint uri for a <a shape="rect" href="dead-letter-channel.html" title="Dead Letter Channel">Dead Letter Channel</a> where exhausted recovered Exchanges will be moved. If this option is used then the <tt>maximumRedeliveries</tt> option must also be provided. </td></tr></tbody></table>
+</div>
+
+
+<p>The <tt>repositoryName</tt> option must be provided. Then either the <tt>persistentFileName</tt> or the <tt>levelDBFile</tt> must be provided.</p>
+
+<h3><a shape="rect" name="LevelDB-Whatispreservedwhenpersisting"></a>What is preserved when persisting</h3>
+<p><tt>LevelDBAggregationRepository</tt> will only preserve any <tt>Serializable</tt> compatible data types. If a data type is not such a type its dropped and a <tt>WARN</tt> is logged. And it only persists the <tt>Message</tt> body and the <tt>Message</tt> headers. The <tt>Exchange</tt> properties are <b>not</b> persisted. </p>
+
+<h3><a shape="rect" name="LevelDB-Recovery"></a>Recovery</h3>
+<p>The <tt>LevelDBAggregationRepository</tt> will by default recover any failed <a shape="rect" href="exchange.html" title="Exchange">Exchange</a>. It does this by having a background tasks that scans for failed <a shape="rect" href="exchange.html" title="Exchange">Exchange</a>s in the persistent store. You can use the <tt>checkInterval</tt> option to set how often this task runs. The recovery works as transactional which ensures that Camel will try to recover and redeliver the failed <a shape="rect" href="exchange.html" title="Exchange">Exchange</a>. Any <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> which was found to be recovered will be restored from the persistent store and resubmitted and send out again. </p>
+
+<p>The following headers is set when an <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> is being recovered/redelivered:</p>
+<div class="table-wrap">
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Header </th><th colspan="1" rowspan="1" class="confluenceTh"> Type </th><th colspan="1" rowspan="1" class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>Exchange.REDELIVERED</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> Boolean </td><td colspan="1" rowspan="1" class="confluenceTd"> Is set to true to indicate the <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> is being redelivered. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>Exchange.REDELIVERY_COUNTER</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> Integer </td><td colspan="1" rowspan="1" class="confluenceTd"> The redelivery attempt, starting from 1. </td></tr></tbody></table>
+</div>
+
+
+<p>Only when an <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> has been successfully processed it will be marked as complete which happens when the <tt>confirm</tt> method is invoked on the <tt>AggregationRepository</tt>. This means if the same <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> fails again it will be kept retried until it success.</p>
+
+<p>You can use option <tt>maximumRedeliveries</tt> to limit the maximum number of redelivery attempts for a given recovered <a shape="rect" href="exchange.html" title="Exchange">Exchange</a>. You must also set the <tt>deadLetterUri</tt> option so Camel knows where to send the <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> when the <tt>maximumRedeliveries</tt> was hit. </p>
+
+<p>You can see some examples in the unit tests of camel-leveldb, for example <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-leveldb/src/test/java/org/apache/camel/component/leveldb/LevelDBAggregateRecoverTest.java">this test</a>.</p>
+
+
+<h4><a shape="rect" name="LevelDB-UsingLevelDBAggregationRepositoryinJavaDSL"></a>Using LevelDBAggregationRepository in Java DSL</h4>
+<p>In this example we want to persist aggregated messages in the <tt>target/data/leveldb.dat</tt> file.</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
+public void configure() throws Exception {
+    // create the leveldb repo
+    LevelDBAggregationRepository repo = new LevelDBAggregationRepository("repo1", "target/data/leveldb.dat");
+
+    // here is the Camel route where we aggregate
+    from("direct:start")
+        .aggregate(header("id"), new MyAggregationStrategy())
+            // use our created leveldb repo as aggregation repository
+            .completionSize(5).aggregationRepository(repo)
+            .to("mock:aggregated");
+}
+]]></script>
+</div></div>
+
+<h4><a shape="rect" name="LevelDB-UsingLevelDBAggregationRepositoryinSpringXML"></a>Using LevelDBAggregationRepository in Spring XML</h4>
+<p>The same example but using Spring XML instead:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+
+&lt;!-- a persistent aggregation repository using camel-leveldb --&gt;
+&lt;bean id="repo" class="org.apache.camel.component.leveldb.LevelDBAggregationRepository"&gt;
+    &lt;!-- store the repo in the leveldb.dat file --&gt;
+    &lt;property name="persistentFileName" value="target/data/leveldb.dat"/&gt;
+    &lt;!-- and use repo2 as the repository name --&gt;
+    &lt;property name="repositoryName" value="repo2"/&gt;
+&lt;/bean&gt;
+
+&lt;!-- aggregate the messages using this strategy --&gt;
+&lt;bean id="myAggregatorStrategy" class="org.apache.camel.component.leveldb.LevelDBSpringAggregateTest$MyAggregationStrategy"/&gt;
+
+&lt;!-- this is the camel routes --&gt;
+&lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
+
+    &lt;route&gt;
+        &lt;from uri="direct:start"/&gt;
+        &lt;!-- aggregate using our strategy and leveldb repo, and complete when we have 5 messages aggregated --&gt;
+        &lt;aggregate strategyRef="myAggregatorStrategy" aggregationRepositoryRef="repo" completionSize="5"&gt;
+            &lt;!-- correlate by header with the key id --&gt;
+            &lt;correlationExpression&gt;&lt;header&gt;id&lt;/header&gt;&lt;/correlationExpression&gt;
+            &lt;!-- send aggregated messages to the mock endpoint --&gt;
+            &lt;to uri="mock:aggregated"/&gt;
+        &lt;/aggregate&gt;
+    &lt;/route&gt;
+
+&lt;/camelContext&gt;
+]]></script>
+</div></div>
+
+<h3><a shape="rect" name="LevelDB-Dependencies"></a>Dependencies</h3>
+
+<p>To use <a shape="rect" href="leveldb.html" title="LevelDB">LevelDB</a> in your camel routes you need to add the a dependency on <b>camel-leveldb</b>. </p>
+
+<p>If you use maven you could just add the following to your pom.xml, substituting the version number for the latest &amp; greatest release (see <a shape="rect" href="download.html" title="Download">the download page for the latest versions</a>).</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
+&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
+  &lt;artifactId&gt;camel-leveldb&lt;/artifactId&gt;
+  &lt;version&gt;2.10.0&lt;/version&gt;
+&lt;/dependency&gt;
+]]></script>
+</div></div>
+
+
+<h3><a shape="rect" name="LevelDB-SeeAlso"></a>See Also</h3>
+<ul><li><a shape="rect" href="configuring-camel.html" title="Configuring Camel">Configuring Camel</a></li><li><a shape="rect" href="component.html" title="Component">Component</a></li><li><a shape="rect" href="endpoint.html" title="Endpoint">Endpoint</a></li><li><a shape="rect" href="getting-started.html" title="Getting Started">Getting Started</a></li></ul>
+
+<ul class="alternate" type="square"><li><a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregator</a></li><li><a shape="rect" href="hawtdb.html" title="HawtDB">HawtDB</a></li><li><a shape="rect" href="components.html" title="Components">Components</a></li></ul>
+</div>
+        </td>
+        <td valign="top">
+          <div class="navigation">
+            <div class="navigation_top">
+                <!-- NavigationBar -->
+<div class="navigation_bottom" id="navigation_bottom"><h3><a shape="rect" name="Navigation-Overview"></a><a shape="rect" href="overview.html" title="Overview">Overview</a></h3>
+
+<ul class="alternate" type="square"><li><a shape="rect" href="index.html" title="Index">Home</a></li><li><a shape="rect" href="download.html" title="Download">Download</a></li><li><a shape="rect" href="getting-started.html" title="Getting Started">Getting Started</a></li><li><a shape="rect" href="faq.html" title="FAQ">FAQ</a></li></ul>
+
+
+<h3><a shape="rect" name="Navigation-Documentation"></a><a shape="rect" href="documentation.html" title="Documentation">Documentation</a></h3>
+
+<ul class="alternate" type="square"><li><a shape="rect" href="user-guide.html" title="User Guide">User Guide</a></li><li><a shape="rect" href="manual.html" title="Manual">Manual</a></li><li><a shape="rect" href="books.html" title="Books">Books</a></li><li><a shape="rect" href="tutorials.html" title="Tutorials">Tutorials</a></li><li><a shape="rect" href="examples.html" title="Examples">Examples</a></li><li><a shape="rect" href="cookbook.html" title="Cookbook">Cookbook</a></li><li><a shape="rect" href="architecture.html" title="Architecture">Architecture</a></li><li><a shape="rect" href="enterprise-integration-patterns.html" title="Enterprise Integration Patterns">Enterprise Integration Patterns</a></li><li><a shape="rect" href="dsl.html" title="DSL">DSL</a></li><li><a shape="rect" href="components.html" title="Components">Components</a></li><li><a shape="rect" href="data-format.html" title="Data Format">Data Format</a></li><li><a shape="rect" href="languages.html" title="Languages">L
 anguages</a></li><li><a shape="rect" href="security.html" title="Security">Security</a></li></ul>
+
+
+<h3><a shape="rect" name="Navigation-Search"></a>Search</h3>
+
+<p>
+</p><form enctype="application/x-www-form-urlencoded" method="get" id="cse-search-box" action="http://www.google.com/cse">
+  <div>
+    <input type="hidden" name="cx" value="007878419884033443453:m5nhvy4hmyq">
+    <input type="hidden" name="ie" value="UTF-8">
+    <input type="text" name="q" size="21">
+    <input type="submit" name="sa" value="Search">
+  </div>
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=en"></script>
+
+
+<h3><a shape="rect" name="Navigation-Community"></a><a shape="rect" href="community.html" title="Community">Community</a></h3>
+
+<ul class="alternate" type="square"><li><a shape="rect" href="support.html" title="Support">Support</a></li><li><a shape="rect" href="contributing.html" title="Contributing">Contributing</a></li><li><a shape="rect" href="discussion-forums.html" title="Discussion Forums">Discussion Forums</a></li><li><a shape="rect" href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li><li><a shape="rect" href="user-stories.html" title="User Stories">User Stories</a></li><li><a shape="rect" href="news.html" title="News">News</a></li><li><a shape="rect" href="articles.html" title="Articles">Articles</a></li><li><a shape="rect" href="site.html" title="Site">Site</a></li><li><a shape="rect" href="team.html" title="Team">Team</a></li><li><a shape="rect" class="external-link" href="http://camel-extra.googlecode.com/" rel="nofollow">Camel Extra</a></li></ul>
+
+
+<h3><a shape="rect" name="Navigation-Developers"></a><a shape="rect" href="developers.html" title="Developers">Developers</a></h3>
+
+<ul class="alternate" type="square"><li><a shape="rect" href="developers.html" title="Developers">Developer Guide</a></li><li><a shape="rect" href="source.html" title="Source">Source</a></li><li><a shape="rect" href="building.html" title="Building">Building</a></li><li><a shape="rect" href="javadoc.html" title="JavaDoc">JavaDoc</a></li><li><a shape="rect" href="irc-room.html" title="IRC Room">IRC Room</a></li></ul>
+
+
+<h3><a shape="rect" name="Navigation-ApacheSoftwareFoundation"></a>Apache Software Foundation</h3>
+
+<ul class="alternate" type="square"><li><a shape="rect" class="external-link" href="http://www.apache.org/licenses/">License</a></li><li><a shape="rect" class="external-link" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a shape="rect" class="external-link" href="http://www.apache.org/foundation/thanks.html">Thanks</a></li><li><a shape="rect" class="external-link" href="http://www.apache.org/security/">Security</a></li></ul>
+</div>
+                <!-- NavigationBar -->
+            </div>
+          </div>
+        </td>
+        </tr>
+	</tbody>
+        </table>
+
+
+        <div class="bottom_red_bar"></div>
+      </div>
+    </div>
+  </div>
+</div>
+<div class="black_box">
+<div class="footer">
+  <div class="footer_l">
+    <div class="footer_r">
+      <div>
+        <a href="$base/privacy-policy.html">Privacy Policy</a> -
+        (<a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=33295170">edit page</a>)
+   	 (<a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=33295170&amp;showComments=true&amp;showCommentArea=true#addcomment">add comment</a>)
+      </div>
+    </div>
+  </div>
+</div>
+</div>
+</div>
+<div class="design_attribution">
+&copy; 2004-2011 The Apache Software Foundation.
+<br>          
+Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation.  All other marks mentioned may be trademarks or registered trademarks of their respective owners.
+<br>
+<a href="http://hiramchirino.com">Graphic Design By Hiram</a>
+</div>
+
+<!-- Camel committers that would like access to the Analytics, send a note to private@camel.apache.org -->
+<script type="text/javascript">
+
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-25976253-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>
+
+</body>
+</html>
+
+