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/08/08 12:20:10 UTC

svn commit: r961140 [2/2] - in /websites/production/camel/content: book-in-one-page.html book-languages-appendix.html cache/main.pageCache file-language.html

Modified: websites/production/camel/content/file-language.html
==============================================================================
--- websites/production/camel/content/file-language.html (original)
+++ websites/production/camel/content/file-language.html Sat Aug  8 10:20:10 2015
@@ -85,66 +85,66 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="FileLanguage-FileExpressionLanguage">File Expression Language</h2><div class="confluence-information-macro confluence-information-macro-information"><p class="title">File language is now merged with Simple language</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>From Camel 2.2 onwards, the file language is now merged with <a shape="rect" href="simple.html">Simple</a> language which means you can use all the file syntax directly within the simple language.</p></div></div><p>The File Expression Language is an extension to the <a shape="rect" href="simple.html">Simple</a> language, adding file related capabilities. These capabilities are related to common use cases working with file path and names. The goal is to allow expressions to be used with the <a shape="rect" href="file2.html">File</a> and <a shape="rect" href="ftp.html">FTP</a> comp
 onents for setting dynamic file patterns for both consumer and producer.</p><h3 id="FileLanguage-Syntax">Syntax</h3><p>This language is an <strong>extension</strong> to the <a shape="rect" href="simple.html">Simple</a> language so the <a shape="rect" href="simple.html">Simple</a> syntax applies also. So the table below only lists the additional. <br clear="none"> As opposed to <a shape="rect" href="simple.html">Simple</a> language <a shape="rect" href="file-language.html">File Language</a> also supports <a shape="rect" href="constant.html">Constant</a> expressions so you can enter a fixed filename.</p><p>All the file tokens use the same expression name as the method on the <code>java.io.File</code> object, for instance <code>file:absolute</code> refers to the <code>java.io.File.getAbsolute()</code> method. Notice that not all expressions are supported by the current Exchange. For instance the <a shape="rect" href="ftp.html">FTP</a> component supports some of the options, where as th
 e <a shape="rect" href="file2.html">File</a> component supports all of them.</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Expression</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>File Consumer</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>File Producer</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>FTP Consumer</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>FTP Producer</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd">
 <p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file name (is relative to the starting directory, see note below)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> refers to the file extension only</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p
 >no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file name with no extension (is relative to the starting directory, see note below)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file name only with no leading paths.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="conflue
 nceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file name only with no extension and with no leading paths.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file extension only</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:parent</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan=
 "1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file parent</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file path</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute</td><td colspan="1" rowspan="1" class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p><
 /td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to whether the file is regarded as absolute or relative</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute.path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the absolute file path</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:length</td><td colspan="1" rowspan="1" class="confluenceTd"><p>Long</p></td><td colspan="1" rowspan="1" class="confluenceTd"
 ><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file length returned as a Long type</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:size</td><td colspan="1" rowspan="1" class="confluenceTd"><p>Long</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> refers to the file length returned as a Long type</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:modified</td><td colspan="1" rowspan="1" class="confluenceTd"><p>Date</p></td><td colspan
 ="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>efers to the file last modified returned as a Date type</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>date:<em>command:pattern</em></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>for date formatting using the <code>java.text.SimpleDateFormat</code> patterns. Is an <strong>extension</strong> to the <a shape="rect" href="simple.html">Simple</a
 > language. Additional command is: <strong>file</strong> (consumers only) for the last modified timestamp of the file. Notice: all the commands from the <a shape="rect" href="simple.html">Simple</a> language can also be used.</p></td></tr></tbody></table></div></div><h3 id="FileLanguage-Filetokenexample">File token example</h3><h4 id="FileLanguage-Relativepaths">Relative paths</h4><p>We have a <code>java.io.File</code> handle for the file <code>hello.txt</code> in the following <strong>relative</strong> directory: <code>.\filelanguage\test</code>. And we configure our endpoint to use this starting directory <code>.\filelanguage</code>. The file tokens will return as:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Expression</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Returns</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name</td><td colspan="1" rowspan="1" class="conflu
 enceTd"><p>test\hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>test\hello</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname</td><td colspan="1" rowspan="1" class="confluenceTd"><p>hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>hello</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:parent</td><td colspan="1" rowspan="1" class="confluenceTd"><p>filelanguage\test</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:path</td><td colspan="1" rowsp
 an="1" class="confluenceTd"><p>filelanguage\test\hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute</td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute.path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>\workspace\camel\camel-core\target\filelanguage\test\hello.txt</p></td></tr></tbody></table></div><h4 id="FileLanguage-Absolutepaths">Absolute paths</h4><p>We have a <code>java.io.File</code> handle for the file <code>hello.txt</code> in the following <strong>absolute</strong> directory: <code>\workspace\camel\camel-core\target\filelanguage\test</code>. And we configure out endpoint to use the absolute starting directory <code>\workspace\camel\camel-core\target\filelanguage</code>. The file tokens will return as:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Expression</p><
 /th><th colspan="1" rowspan="1" class="confluenceTh"><p>Returns</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name</td><td colspan="1" rowspan="1" class="confluenceTd"><p>test\hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>test\hello</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname</td><td colspan="1" rowspan="1" class="confluenceTd"><p>hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>hello</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">fi
 le:parent</td><td colspan="1" rowspan="1" class="confluenceTd"><p>\workspace\camel\camel-core\target\filelanguage\test</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>\workspace\camel\camel-core\target\filelanguage\test\hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute</td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute.path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>\workspace\camel\camel-core\target\filelanguage\test\hello.txt</p></td></tr></tbody></table></div><h3 id="FileLanguage-Samples">Samples</h3><p>You can enter a fixed <a shape="rect" href="constant.html">Constant</a> expression such as <code>myfile.txt</code>:</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;">fileName="myfile.txt"
-</pre>
+<div class="wiki-content maincontent"><h2 id="FileLanguage-FileExpressionLanguage">File Expression Language</h2><div class="confluence-information-macro confluence-information-macro-information"><p class="title">File language is now merged with Simple language</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>From Camel 2.2 onwards, the file language is now merged with <a shape="rect" href="simple.html">Simple</a> language which means you can use all the file syntax directly within the simple language.</p></div></div><p>The File Expression Language is an extension to the <a shape="rect" href="simple.html">Simple</a> language, adding file related capabilities. These capabilities are related to common use cases working with file path and names. The goal is to allow expressions to be used with the <a shape="rect" href="file2.html">File</a> and <a shape="rect" href="ftp.html">FTP</a> comp
 onents for setting dynamic file patterns for both consumer and producer.</p><h3 id="FileLanguage-Syntax">Syntax</h3><p>This language is an <strong>extension</strong> to the <a shape="rect" href="simple.html">Simple</a> language so the <a shape="rect" href="simple.html">Simple</a> syntax applies also. So the table below only lists the additional. <br clear="none"> As opposed to <a shape="rect" href="simple.html">Simple</a> language <a shape="rect" href="file-language.html">File Language</a> also supports <a shape="rect" href="constant.html">Constant</a> expressions so you can enter a fixed filename.</p><p>All the file tokens use the same expression name as the method on the <code>java.io.File</code> object, for instance <code>file:absolute</code> refers to the <code>java.io.File.getAbsolute()</code> method. Notice that not all expressions are supported by the current Exchange. For instance the <a shape="rect" href="ftp.html">FTP</a> component supports some of the options, where as th
 e <a shape="rect" href="file2.html">File</a> component supports all of them.</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Expression</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>File Consumer</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>File Producer</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>FTP Consumer</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>FTP Producer</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd">
 <p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file name (is relative to the starting directory, see note below)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> refers to the file extension only</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.singleext</td><td colspan="1" rowspan="1" class="confluenceTd">String</td><td colspan="1" rowspan="1" class="confluenceTd">yes</td><td colspan="1" rowspan="1" class="confluenceTd">no</td><td c
 olspan="1" rowspan="1" class="confluenceTd">yes</td><td colspan="1" rowspan="1" class="confluenceTd">no</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14.4/2.15.3:</strong> refers to the file extension. If the file extension has mutiple dots, then this expression strips and only returns the last part.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file name with no extension (is relative to the starting directory, see note below)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.nosingleext</td><td colspan="1" rowspan="1"
  class="confluenceTd">String</td><td colspan="1" rowspan="1" class="confluenceTd">yes</td><td colspan="1" rowspan="1" class="confluenceTd">no</td><td colspan="1" rowspan="1" class="confluenceTd">yes</td><td colspan="1" rowspan="1" class="confluenceTd">no</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14.4/2.15.3:</strong><span> <span>refers to the file name with no extension (is relative to the starting directory, see note below)</span>. If the file extension has multiple dots, then this expression strips only the last part, and keep the others.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1"
  rowspan="1" class="confluenceTd"><p>refers to the file name only with no leading paths.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file name only with no extension and with no leading paths.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname.nosingleext</td><td colspan="1" rowspan="1" class="confluenceTd">String</td><td colspan="1" rowspan="1" class="confluenceTd">yes</td><td colspan="1" rowspan="1" class="confluenceTd">no</td><td colspan="1" rowspan="1" class="confluenceTd">yes</td><td colspan="1" rowspan="1" class="confluence
 Td">no</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14.4/2.15.3: </strong>refers to the file name only with no extension and with no leading paths. I<span>f the file extension has multiple dots, then this expression strips only the last part, and keep the others.</span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file extension only</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:parent</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td col
 span="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file parent</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file path</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute</td><td colspan="1" rowspan="1" class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluen
 ceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to whether the file is regarded as absolute or relative</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute.path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the absolute file path</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:length</td><td colspan="1" rowspan="1" class="confluenceTd"><p>Long</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" cla
 ss="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>refers to the file length returned as a Long type</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:size</td><td colspan="1" rowspan="1" class="confluenceTd"><p>Long</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> refers to the file length returned as a Long type</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:modified</td><td colspan="1" rowspan="1" class="confluenceTd"><p>Date</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p
 ></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>no</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>efers to the file last modified returned as a Date type</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>date:<em>command:pattern</em></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>yes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>for date formatting using the <code>java.text.SimpleDateFormat</code> patterns. Is an <strong>extension</strong> to the <a shape="rect" href="simple.html">Simple</a> language. Additional command is: <strong>file
 </strong> (consumers only) for the last modified timestamp of the file. Notice: all the commands from the <a shape="rect" href="simple.html">Simple</a> language can also be used.</p></td></tr></tbody></table></div></div><h3 id="FileLanguage-Filetokenexample">File token example</h3><h4 id="FileLanguage-Relativepaths">Relative paths</h4><p>We have a <code>java.io.File</code> handle for the file <code>hello.txt</code> in the following <strong>relative</strong> directory: <code>.\filelanguage\test</code>. And we configure our endpoint to use this starting directory <code>.\filelanguage</code>. The file tokens will return as:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Expression</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Returns</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name</td><td colspan="1" rowspan="1" class="confluenceTd"><p>test\hello.txt</p></td></tr><tr><td 
 colspan="1" rowspan="1" class="confluenceTd">file:name.ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>test\hello</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname</td><td colspan="1" rowspan="1" class="confluenceTd"><p>hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>hello</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:parent</td><td colspan="1" rowspan="1" class="confluenceTd"><p>filelanguage\test</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>filelanguage\tes
 t\hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute</td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute.path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>\workspace\camel\camel-core\target\filelanguage\test\hello.txt</p></td></tr></tbody></table></div><h4 id="FileLanguage-Absolutepaths">Absolute paths</h4><p>We have a <code>java.io.File</code> handle for the file <code>hello.txt</code> in the following <strong>absolute</strong> directory: <code>\workspace\camel\camel-core\target\filelanguage\test</code>. And we configure out endpoint to use the absolute starting directory <code>\workspace\camel\camel-core\target\filelanguage</code>. The file tokens will return as:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Expression</p></th><th colspan="1" rowspan="1" class="confluen
 ceTh"><p>Returns</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name</td><td colspan="1" rowspan="1" class="confluenceTd"><p>test\hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:name.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>test\hello</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname</td><td colspan="1" rowspan="1" class="confluenceTd"><p>hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:onlyname.noext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>hello</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:ext</td><td colspan="1" rowspan="1" class="confluenceTd"><p>txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:parent</td><td colspan="1" rowspan="1" class
 ="confluenceTd"><p>\workspace\camel\camel-core\target\filelanguage\test</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>\workspace\camel\camel-core\target\filelanguage\test\hello.txt</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute</td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">file:absolute.path</td><td colspan="1" rowspan="1" class="confluenceTd"><p>\workspace\camel\camel-core\target\filelanguage\test\hello.txt</p></td></tr></tbody></table></div><h3 id="FileLanguage-Samples">Samples</h3><p>You can enter a fixed <a shape="rect" href="constant.html">Constant</a> expression such as <code>myfile.txt</code>:</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[fileName=&quot;myfile.txt&quot;
+]]></script>
 </div></div><p>Lets assume we use the file consumer to read files and want to move the read files to backup folder with the current date as a sub folder. This can be archieved using an expression like:</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;">fileName="backup/${date:now:yyyyMMdd}/${file:name.noext}.bak"
-</pre>
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[fileName=&quot;backup/${date:now:yyyyMMdd}/${file:name.noext}.bak&quot;
+]]></script>
 </div></div><p>relative folder names are also supported so suppose the backup folder should be a sibling folder then you can append .. as:</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;">fileName="../backup/${date:now:yyyyMMdd}/${file:name.noext}.bak"
-</pre>
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[fileName=&quot;../backup/${date:now:yyyyMMdd}/${file:name.noext}.bak&quot;
+]]></script>
 </div></div><p>As this is an extension to the <a shape="rect" href="simple.html">Simple</a> language we have access to all the goodies from this language also, so in this use case we want to use the in.header.type as a parameter in the dynamic expression:</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;">fileName="../backup/${date:now:yyyyMMdd}/type-${in.header.type}/backup-of-${file:name.noext}.bak"
-</pre>
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[fileName=&quot;../backup/${date:now:yyyyMMdd}/type-${in.header.type}/backup-of-${file:name.noext}.bak&quot;
+]]></script>
 </div></div><p>If you have a custom Date you want to use in the expression then Camel supports retrieving dates from the message header.</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;">fileName="orders/order-${in.header.customerId}-${date:in.header.orderDate:yyyyMMdd}.xml"
-</pre>
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[fileName=&quot;orders/order-${in.header.customerId}-${date:in.header.orderDate:yyyyMMdd}.xml&quot;
+]]></script>
 </div></div><p>And finally we can also use a bean expression to invoke a POJO class that generates some String output (or convertible to String) to be used:</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;">fileName="uniquefile-${bean:myguidgenerator.generateid}.txt"
-</pre>
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[fileName=&quot;uniquefile-${bean:myguidgenerator.generateid}.txt&quot;
+]]></script>
 </div></div><p>And of course all this can be combined in one expression where you can use the <a shape="rect" href="file-language.html">File Language</a>, <a shape="rect" href="simple.html">Simple</a> and the <a shape="rect" href="bean.html">Bean</a> language in one combined expression. This is pretty powerful for those common file path patterns.</p><h3 id="FileLanguage-UsingSpringPropertyPlaceholderConfigurertogetherwiththeFilecomponent">Using Spring PropertyPlaceholderConfigurer together with the <a shape="rect" href="file2.html">File</a> component</h3><p>In Camel you can use the <a shape="rect" href="file-language.html">File Language</a> directly from the <a shape="rect" href="simple.html">Simple</a> language which makes a <a shape="rect" href="content-based-router.html">Content Based Router</a> easier to do in Spring XML, where we can route based on file extensions as shown below:</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;">  &lt;from uri="file://input/orders"/&gt;
+<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[  &lt;from uri=&quot;file://input/orders&quot;/&gt;
      &lt;choice&gt;
        &lt;when&gt;
-           &lt;simple&gt;${file:ext} == 'txt'&lt;/simple&gt;
-           &lt;to uri="bean:orderService?method=handleTextFiles"/&gt;
+           &lt;simple&gt;${file:ext} == &#39;txt&#39;&lt;/simple&gt;
+           &lt;to uri=&quot;bean:orderService?method=handleTextFiles&quot;/&gt;
        &lt;/when&gt;
        &lt;when&gt;
-           &lt;simple&gt;${file:ext} == 'xml'&lt;/simple&gt;
-           &lt;to uri="bean:orderService?method=handleXmlFiles"/&gt;
+           &lt;simple&gt;${file:ext} == &#39;xml&#39;&lt;/simple&gt;
+           &lt;to uri=&quot;bean:orderService?method=handleXmlFiles&quot;/&gt;
        &lt;/when&gt;
        &lt;otherwise&gt;
-           &lt;to uri="bean:orderService?method=handleOtherFiles"/&gt;
+           &lt;to uri=&quot;bean:orderService?method=handleOtherFiles&quot;/&gt;
        &lt;/otherwise&gt;
     &lt;/choice&gt;
-</pre>
+]]></script>
 </div></div><p>If you use the <code>fileName</code> option on the <a shape="rect" href="file2.html">File</a> endpoint to set a dynamic filename using the <a shape="rect" href="file-language.html">File Language</a> then make sure you <br clear="none"> use the alternative syntax (available from Camel 2.5 onwards) to avoid clashing with Springs <code>PropertyPlaceholderConfigurer</code>.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>bundle-context.xml</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">&lt;bean id="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt;
-    &lt;property name="location" value="classpath:bundle-context.cfg" /&gt;
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;bean id=&quot;propertyPlaceholder&quot; class=&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;&gt;
+    &lt;property name=&quot;location&quot; value=&quot;classpath:bundle-context.cfg&quot; /&gt;
 &lt;/bean&gt;
 
-&lt;bean id="sampleRoute" class="SampleRoute"&gt;
-    &lt;property name="fromEndpoint" value="${fromEndpoint}" /&gt;
-    &lt;property name="toEndpoint" value="${toEndpoint}" /&gt;
+&lt;bean id=&quot;sampleRoute&quot; class=&quot;SampleRoute&quot;&gt;
+    &lt;property name=&quot;fromEndpoint&quot; value=&quot;${fromEndpoint}&quot; /&gt;
+    &lt;property name=&quot;toEndpoint&quot; value=&quot;${toEndpoint}&quot; /&gt;
 &lt;/bean&gt;
-</pre>
+]]></script>
 </div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>bundle-context.cfg</b></div><div class="codeContent panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">fromEndpoint=activemq:queue:test
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[fromEndpoint=activemq:queue:test
 toEndpoint=file://fileRoute/out?fileName=test-$simple{date:now:yyyyMMdd}.txt
-</pre>
+]]></script>
 </div></div><p>Notice how we use the $simple{ } syntax in the <code>toEndpoint</code> above.<br clear="none"> If you don't do this, there is a clash and Spring will throw an exception like</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;">org.springframework.beans.factory.BeanDefinitionStoreException:
-Invalid bean definition with name 'sampleRoute' defined in class path resource [bundle-context.xml]:
-Could not resolve placeholder 'date:now:yyyyMMdd'
-</pre>
+<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[org.springframework.beans.factory.BeanDefinitionStoreException:
+Invalid bean definition with name &#39;sampleRoute&#39; defined in class path resource [bundle-context.xml]:
+Could not resolve placeholder &#39;date:now:yyyyMMdd&#39;
+]]></script>
 </div></div><h3 id="FileLanguage-Dependencies">Dependencies</h3><p>The File language is part of <strong>camel-core</strong>.</p></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">
@@ -152,7 +152,7 @@ Could not resolve placeholder 'date:now:
     <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 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&amp;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>