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 2015/09/15 11:19:50 UTC
svn commit: r965491 - in /websites/production/camel/content: apns.html
cache/main.pageCache
Author: buildbot
Date: Tue Sep 15 09:19:49 2015
New Revision: 965491
Log:
Production update by buildbot for camel
Modified:
websites/production/camel/content/apns.html
websites/production/camel/content/cache/main.pageCache
Modified: websites/production/camel/content/apns.html
==============================================================================
--- websites/production/camel/content/apns.html (original)
+++ websites/production/camel/content/apns.html Tue Sep 15 09:19:49 2015
@@ -86,120 +86,131 @@
<tr>
<td valign="top" width="100%">
<div class="wiki-content maincontent"><h2 id="APNS-ApnsComponent">Apns Component</h2><p><strong>Available as of Camel 2.8</strong></p><p>The <strong>apns</strong> component is used for sending notifications to iOS devices. The apns components use <a shape="rect" class="external-link" href="https://github.com/notnoop/java-apns" rel="nofollow">javapns</a> library.<br clear="none"> The component supports sending notifications to Apple Push Notification Servers (APNS) and consuming feedback from the servers.</p><p>The consumer is configured with 3600 seconds for polling by default because it is a best practice to consume feedback stream from Apple Push Notification Servers only from time to time. For example: every 1 hour to avoid flooding the servers.</p><p>The feedback stream gives informations about inactive devices. You only need to get this informations every some hours if your mobile application is not a heavily used one.</p><p>Maven users will need to add the following dependency
to their <code>pom.xml</code> for this component:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;"><dependency>
+<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-apns</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
-</pre>
+]]></script>
</div></div><h3 id="APNS-URIformat">URI format</h3><p>To send notifications:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">apns:notify[?options]
-</pre>
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[apns:notify[?options]
+]]></script>
</div></div><p>To consume feedback:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">apns:consumer[?options]
-</pre>
-</div></div><h3 id="APNS-Options">Options</h3><h4 id="APNS-Producer">Producer</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>tokens</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Empty by default. Configure this property in case you want to statically declare tokens related to devices you want to notify. Tokens are separated by comma.</p></td></tr></tbody></table></div><h4 id="APNS-Consumer">Consumer</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th>
<th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>delay</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>3600</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Delay in seconds between each poll.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>initialDelay</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>10</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Seconds before polling starts.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeUnit</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>SECONDS</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Time Unit for polling.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>userFixedDelay</code></p></td><td colspan="1" rowspan="1" class="confluenceTd">
<p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If <code>true</code>, use fixed delay between pools, otherwise fixed rate is used. See <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ScheduledExecutorService.html" rel="nofollow">ScheduledExecutorService</a> in JDK for details.</p></td></tr></tbody></table></div><p>You can append query options to the URI in the following format, <code>?option=value&option=value&...</code></p><h4 id="APNS-Component">Component</h4><p>The <code>ApnsComponent</code> must be configured with a <code>com.notnoop.apns.ApnsService</code>. The service can be created and configured using the <code>org.apache.camel.component.apns.factory.ApnsServiceFactory</code>. See further below for an example. And as well in the <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-apns/">test source code</a>.</p><h3 id="APNS-E
xchangedataformat">Exchange data format</h3><p>When Camel will fetch feedback data corresponding to inactive devices, it will retrieve a List of InactiveDevice objects. Each InactiveDevice object of the retrieved list will be setted as the In body, and then processed by the consumer endpoint.</p><h3 id="APNS-MessageHeaders">Message Headers</h3><p>Camel Apns uses these headers.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelApnsTokens</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Empty by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelApnsMessageType</code></
p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>STRING, PAYLOAD, APNS_NOTIFICATION</code><span style="line-height: 1.4285715;"> </span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>In case you choose PAYLOAD for the message type, then the message will be considered as a APNS payload and sent as is. In case you choose STRING, message will be converted as a APNS payload. From <strong>Camel 2.16</strong> onwards APNS_NOTIFICATION is used for sending message body as com.notnoop.apns.ApnsNotification types.</p></td></tr></tbody></table></div><h3 id="APNS-Samples">Samples</h3><h4 id="APNS-CamelXmlroute">Camel Xml route</h4><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;"><beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:camel="http://camel.apache.org/schema/spring"
- xsi:schemaLocation="
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[apns:consumer[?options]
+]]></script>
+</div></div><h3 id="APNS-Options">Options</h3><h4 id="APNS-Producer">Producer</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>tokens</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Empty by default. Configure this property in case you want to statically declare tokens related to devices you want to notify. Tokens are separated by comma.</p></td></tr></tbody></table></div><h4 id="APNS-Consumer">Consumer</h4><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th>
<th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>delay</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>3600</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Delay in seconds between each poll.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>initialDelay</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>10</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Seconds before polling starts.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>timeUnit</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>SECONDS</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Time Unit for polling.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>userFixedDelay</code></p></td><td colspan="1" rowspan="1" class="confluenceTd">
<p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>If <code>true</code>, use fixed delay between pools, otherwise fixed rate is used. See <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ScheduledExecutorService.html" rel="nofollow">ScheduledExecutorService</a> in JDK for details.</p></td></tr></tbody></table></div><p>You can append query options to the URI in the following format, <code>?option=value&option=value&...</code></p><h4 id="APNS-Component">Component</h4><p>The <code>ApnsComponent</code> must be configured with a <code>com.notnoop.apns.ApnsService</code>. The service can be created and configured using the <code>org.apache.camel.component.apns.factory.ApnsServiceFactory</code>. See further below for an example. And as well in the <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-apns/">test source code</a>.</p><h3 id="APNS-E
xchangedataformat">Exchange data format</h3><p>When Camel will fetch feedback data corresponding to inactive devices, it will retrieve a List of InactiveDevice objects. Each InactiveDevice object of the retrieved list will be setted as the In body, and then processed by the consumer endpoint.</p><h3 id="APNS-MessageHeaders">Message Headers</h3><p>Camel Apns uses these headers.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelApnsTokens</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Empty by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelApnsMessageType</code></
p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>STRING, PAYLOAD, APNS_NOTIFICATION</code><span style="line-height: 1.4285715;"> </span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>In case you choose PAYLOAD for the message type, then the message will be considered as a APNS payload and sent as is. In case you choose STRING, message will be converted as a APNS payload. From <strong>Camel 2.16</strong> onwards APNS_NOTIFICATION is used for sending message body as com.notnoop.apns.ApnsNotification types.</p></td></tr></tbody></table></div><h3 id="APNS-ApnsServiceFactorybuildercallback">ApnsServiceFactory builder callback</h3><p><code>ApnsServiceFactory</code> comes with the empty callback method that could be used to configure (or even replace) the default <code>ApnsServiceBuilder</code> instance. The signature of the method could look as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[protected ApnsServiceBuilder configureServiceBuilder(ApnsServiceBuilder serviceBuilder);]]></script>
+</div></div><p><span style="line-height: 1.4285715;">And could be used like as follows:</span></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ApnsServiceFactory proxiedApnsServiceFactory = new ApnsServiceFactory(){
+ Â
+ @Override
+ protected ApnsServiceBuilder configureServiceBuilder(ApnsServiceBuilder serviceBuilder) {
+ return serviceBuilder.withSocksProxy("my.proxy.com", 6666);
+ }
+
+};]]></script>
+</div></div><h3 id="APNS-Samples">Samples</h3><h4 id="APNS-CamelXmlroute">Camel Xml route</h4><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:camel="http://camel.apache.org/schema/spring"
+ xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
- http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<!-- Replace by desired values -->
- <bean id="apnsServiceFactory" class="org.apache.camel.component.apns.factory.ApnsServiceFactory">
+ <bean id="apnsServiceFactory" class="org.apache.camel.component.apns.factory.ApnsServiceFactory">
<!-- Optional configuration of feedback host and port -->
- <!-- <property name="feedbackHost" value="localhost" /> -->
- <!-- <property name="feedbackPort" value="7843" /> -->
+ <!-- <property name="feedbackHost" value="localhost" /> -->
+ <!-- <property name="feedbackPort" value="7843" /> -->
<!-- Optional configuration of gateway host and port -->
- <!-- <property name="gatewayHost" value="localhost" /> -->
- <!-- <property name="gatewayPort" value="7654" /> -->
+ <!-- <property name="gatewayHost" value="localhost" /> -->
+ <!-- <property name="gatewayPort" value="7654" /> -->
<!-- Declaration of certificate used -->
<!-- from Camel 2.11 onwards you can use prefix: classpath:, file: to refer to load the certificate from classpath or file. Default it classpath -->
- <property name="certificatePath" value="certificate.p12" />
- <property name="certificatePassword" value="MyCertPassword" />
+ <property name="certificatePath" value="certificate.p12" />
+ <property name="certificatePassword" value="MyCertPassword" />
<!-- Optional connection strategy - By Default: No need to configure -->
<!-- Possible options: NON_BLOCKING, QUEUE, POOL or Nothing -->
- <!-- <property name="connectionStrategy" value="POOL" /> -->
+ <!-- <property name="connectionStrategy" value="POOL" /> -->
<!-- Optional pool size -->
- <!-- <property name="poolSize" value="15" /> -->
+ <!-- <property name="poolSize" value="15" /> -->
<!-- Optional connection strategy - By Default: No need to configure -->
<!-- Possible options: EVERY_HALF_HOUR, EVERY_NOTIFICATION or Nothing (Corresponds to NEVER javapns option) -->
- <!-- <property name="reconnectionPolicy" value="EVERY_HALF_HOUR" /> -->
+ <!-- <property name="reconnectionPolicy" value="EVERY_HALF_HOUR" /> -->
</bean>
- <bean id="apnsService" factory-bean="apnsServiceFactory" factory-method="getApnsService" />
+ <bean id="apnsService" factory-bean="apnsServiceFactory" factory-method="getApnsService" />
<!-- Replace this declaration by wanted configuration -->
- <bean id="apns" class="org.apache.camel.component.apns.ApnsComponent">
- <property name="apnsService" ref="apnsService" />
+ <bean id="apns" class="org.apache.camel.component.apns.ApnsComponent">
+ <property name="apnsService" ref="apnsService" />
</bean>
- <camelContext id="camel-apns-test" xmlns="http://camel.apache.org/schema/spring">
- <route id="apns-test">
- <from uri="apns:consumer?initialDelay=10&amp;delay=3600&amp;timeUnit=SECONDS" />
- <to uri="log:org.apache.camel.component.apns?showAll=true&amp;multiline=true" />
- <to uri="mock:result" />
+ <camelContext id="camel-apns-test" xmlns="http://camel.apache.org/schema/spring">
+ <route id="apns-test">
+ <from uri="apns:consumer?initialDelay=10&amp;delay=3600&amp;timeUnit=SECONDS" />
+ <to uri="log:org.apache.camel.component.apns?showAll=true&amp;multiline=true" />
+ <to uri="mock:result" />
</route>
</camelContext>
</beans>
-</pre>
+]]></script>
</div></div><h4 id="APNS-CamelJavaroute">Camel Java route</h4><h5 id="APNS-Createcamelcontextanddeclareapnscomponentprogrammatically">Create camel context and declare apns component programmatically</h5><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> protected CamelContext createCamelContext() throws Exception {
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ protected CamelContext createCamelContext() throws Exception {
CamelContext camelContext = super.createCamelContext();
ApnsServiceFactory apnsServiceFactory = new ApnsServiceFactory();
- apnsServiceFactory.setCertificatePath("classpath:/certificate.p12");
- apnsServiceFactory.setCertificatePassword("MyCertPassword");
+ apnsServiceFactory.setCertificatePath("classpath:/certificate.p12");
+ apnsServiceFactory.setCertificatePassword("MyCertPassword");
ApnsService apnsService = apnsServiceFactory.getApnsService(camelContext);
ApnsComponent apnsComponent = new ApnsComponent(apnsService);
- camelContext.addComponent("apns", apnsComponent);
+ camelContext.addComponent("apns", apnsComponent);
return camelContext;
}
-</pre>
+]]></script>
</div></div><h5 id="APNS-ApnsProducer-iOStargetdevicedynamicallyconfiguredviaheader:"CamelApnsTokens"">ApnsProducer - iOS target device dynamically configured via header: <code>"CamelApnsTokens"</code></h5><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> protected RouteBuilder createRouteBuilder() throws Exception {
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {
- from("direct:test")
+ from("direct:test")
.setHeader(ApnsConstants.HEADER_TOKENS, constant(IOS_DEVICE_TOKEN))
- .to("apns:notify");
+ .to("apns:notify");
}
}
}
-</pre>
+]]></script>
</div></div><h5 id="APNS-ApnsProducer-iOStargetdevicestaticallyconfiguredviauri">ApnsProducer - iOS target device statically configured via uri</h5><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> protected RouteBuilder createRouteBuilder() throws Exception {
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {
- from("direct:test").
- to("apns:notify?tokens=" + IOS_DEVICE_TOKEN);
+ from("direct:test").
+ to("apns:notify?tokens=" + IOS_DEVICE_TOKEN);
}
};
}
-</pre>
+]]></script>
</div></div><h5 id="APNS-ApnsConsumer">ApnsConsumer</h5><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">from("apns:consumer?initialDelay=10&delay=3600&timeUnit=SECONDS")
- .to("log:com.apache.camel.component.apns?showAll=true&multiline=true")
- .to("mock:result");
-</pre>
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[from("apns:consumer?initialDelay=10&delay=3600&timeUnit=SECONDS")
+ .to("log:com.apache.camel.component.apns?showAll=true&multiline=true")
+ .to("mock:result");
+]]></script>
</div></div><h3 id="APNS-SeeAlso">See Also</h3><ul><li><a shape="rect" class="external-link" href="http://camel.apache.org/component.html">Component</a></li><li><a shape="rect" class="external-link" href="http://camel.apache.org/endpoint.html">Endpoint</a></li><li><a shape="rect" class="external-link" href="http://blog.xebia.fr/2010/09/30/creer-un-composant-apache-camel-de-connexion-a-lapns-1-sur-3/" rel="nofollow">Blog about using APNS (in french)</a></li></ul></div>
</td>
<td valign="top">
<div class="navigation">
<div class="navigation_top">
<!-- NavigationBar -->
-<div class="navigation_bottom" id="navigation_bottom"><h3 id="Navigation-Overviewhttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=49132"><a shape="rect" href="overview.html">Overview</a></h3><ul class="alternate"><li><a shape="rect" href="index.html">Home</a></li><li><a shape="rect" href="download.html">Download</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="faq.html">FAQ</a></li></ul><h3 id="Navigation-Documentationhttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=49534"><a shape="rect" href="documentation.html">Documentation</a></h3><ul class="alternate"><li><a shape="rect" href="user-guide.html">User Guide</a></li><li><a shape="rect" href="manual.html">Manual</a></li><li><a shape="rect" href="books.html">Books</a></li><li><a shape="rect" href="tutorials.html">Tutorials</a></li><li><a shape="rect" href="examples.html">Examples</a></li><li><a shape="rect" href="cookbook.html">Cookbook</a></li>
<li><a shape="rect" href="architecture.html">Architecture</a></li><li><a shape="rect" href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a></li><li><a shape="rect" href="dsl.html">DSL</a></li><li><a shape="rect" href="components.html">Components</a></li><li><a shape="rect" href="data-format.html">Data Format</a></li><li><a shape="rect" href="languages.html">Languages</a></li><li><a shape="rect" href="security.html">Security</a></li><li><a shape="rect" href="security-advisories.html">Security Advisories</a></li></ul><h3 id="Navigation-Search">Search</h3><form enctype="application/x-www-form-urlencoded" method="get" id="cse-search-box" action="http://www.google.com/cse">
+<div class="navigation_bottom" id="navigation_bottom"><h3 id="Navigation-Overview"><a shape="rect" href="overview.html">Overview</a></h3><ul class="alternate"><li><a shape="rect" href="index.html">Home</a></li><li><a shape="rect" href="download.html">Download</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="faq.html">FAQ</a></li></ul><h3 id="Navigation-Documentation"><a shape="rect" href="documentation.html">Documentation</a></h3><ul class="alternate"><li><a shape="rect" href="user-guide.html">User Guide</a></li><li><a shape="rect" href="manual.html">Manual</a></li><li><a shape="rect" href="books.html">Books</a></li><li><a shape="rect" href="tutorials.html">Tutorials</a></li><li><a shape="rect" href="examples.html">Examples</a></li><li><a shape="rect" href="cookbook.html">Cookbook</a></li><li><a shape="rect" href="architecture.html">Architecture</a></li><li><a shape="rect" href="enterprise-integration-patterns.html">Enterprise
Integration Patterns</a></li><li><a shape="rect" href="dsl.html">DSL</a></li><li><a shape="rect" href="components.html">Components</a></li><li><a shape="rect" href="data-format.html">Data Format</a></li><li><a shape="rect" href="languages.html">Languages</a></li><li><a shape="rect" href="security.html">Security</a></li><li><a shape="rect" href="security-advisories.html">Security Advisories</a></li></ul><h3 id="Navigation-Search">Search</h3><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">
@@ -207,7 +218,7 @@
<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&lang=en"></script><h3 id="Navigation-Communityhttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=49115"><a shape="rect" href="community.html">Community</a></h3><ul class="alternate"><li><a shape="rect" href="support.html">Support</a></li><li><a shape="rect" href="contributing.html">Contributing</a></li><li><a shape="rect" href="discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" href="mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" href="user-stories.html">User Stories</a></li><li><a shape="rect" href="news.html">News</a></li><li><a shape="rect" href="articles.html">Articles</a></li><li><a shape="rect" href="site.html">Site</a></li><li><a shape="rect" href="team.html">Team</a></li><li><a shape="rect" class="external-link" href="http://camel-extra.googlecode.com/" rel="nofollow">Camel Extra</a></li></ul><h3 id="Navigation-Developershttps://cwi
ki.apache.org/confluence/pages/viewpage.action?pageId=49124"><a shape="rect" href="developers.html">Developers</a></h3><ul class="alternate"><li><a shape="rect" href="developers.html">Developer Guide</a></li><li><a shape="rect" href="source.html">Source</a></li><li><a shape="rect" href="building.html">Building</a></li><li><a shape="rect" href="javadoc.html">JavaDoc</a></li><li><a shape="rect" href="irc-room.html">IRC Room</a></li></ul><h3 id="Navigation-ApacheSoftwareFoundation">Apache Software Foundation</h3><ul class="alternate"><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>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script><h3 id="Navigation-Community"><a shape="rect" href="community.html">Community</a></h3><ul class="alternate"><li><a shape="rect" href="support.html">Support</a></li><li><a shape="rect" href="contributing.html">Contributing</a></li><li><a shape="rect" href="discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" href="mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" href="user-stories.html">User Stories</a></li><li><a shape="rect" href="news.html">News</a></li><li><a shape="rect" href="articles.html">Articles</a></li><li><a shape="rect" href="site.html">Site</a></li><li><a shape="rect" href="team.html">Team</a></li><li><a shape="rect" class="external-link" href="http://camel-extra.googlecode.com/" rel="nofollow">Camel Extra</a></li></ul><h3 id="Navigation-Developers"><a shape="rect" href="developers.html">Developers</a></h3><ul class="alternate"
><li><a shape="rect" href="developers.html">Developer Guide</a></li><li><a shape="rect" href="source.html">Source</a></li><li><a shape="rect" href="building.html">Building</a></li><li><a shape="rect" href="javadoc.html">JavaDoc</a></li><li><a shape="rect" href="irc-room.html">IRC Room</a></li></ul><h3 id="Navigation-ApacheSoftwareFoundation">Apache Software Foundation</h3><ul class="alternate"><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>
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.