camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r923235 [1/6] - in /websites/production/camel/content: ./ cache/
Date Tue, 23 Sep 2014 12:50:15 GMT
Author: buildbot
Date: Tue Sep 23 12:50:14 2014
New Revision: 923235

Log:
Production update by buildbot for camel

Added:
    websites/production/camel/content/cache/main.pageCache   (with props)
Modified:
    websites/production/camel/content/book-component-appendix.html
    websites/production/camel/content/book-dataformat-appendix.html
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/book-languages-appendix.html
    websites/production/camel/content/book-pattern-appendix.html
    websites/production/camel/content/book-tutorials.html
    websites/production/camel/content/building.html
    websites/production/camel/content/camel-30-ideas.html
    websites/production/camel/content/camel-jmx.html
    websites/production/camel/content/community.html
    websites/production/camel/content/component.html
    websites/production/camel/content/csv.html
    websites/production/camel/content/cxf.html
    websites/production/camel/content/download-archives.html
    websites/production/camel/content/elasticsearch.html
    websites/production/camel/content/file-language.html
    websites/production/camel/content/in-progress.html
    websites/production/camel/content/release-guide.html
    websites/production/camel/content/scala-dsl-eip.html
    websites/production/camel/content/siteindex.html
    websites/production/camel/content/sitemap.html
    websites/production/camel/content/spring.html
    websites/production/camel/content/transactional-client.html
    websites/production/camel/content/tutorial-axis-camel.html
    websites/production/camel/content/tutorial-jmsremoting.html
    websites/production/camel/content/user-guide.html

Modified: websites/production/camel/content/book-component-appendix.html
==============================================================================
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Tue Sep 23 12:50:14 2014
@@ -1529,11 +1529,11 @@ template.send("direct:alias-verify&
                     </div>
     </div>
 <p>The <strong>cxf:</strong> component provides integration with <a shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1410837558913 {padding: 0px;}
-div.rbtoc1410837558913 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1410837558913 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1411476400748 {padding: 0px;}
+div.rbtoc1411476400748 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1411476400748 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1410837558913">
+/*]]>*/</style></p><div class="toc-macro rbtoc1411476400748">
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-URIformat">URI format</a></li><li><a shape="rect" href="#CXF-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-Thedescriptionsofthedataformats">The descriptions of the dataformats</a>

Modified: websites/production/camel/content/book-dataformat-appendix.html
==============================================================================
--- websites/production/camel/content/book-dataformat-appendix.html (original)
+++ websites/production/camel/content/book-dataformat-appendix.html Tue Sep 23 12:50:14 2014
@@ -440,7 +440,7 @@ from(&quot;direct:start&quot;).
 </div></div><p>... you will end up with a String containing this CSV message</p><div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>abc,123</pre>
 </div></div><p>Sending the Map below through this route will result in a CSV message that looks like <code>foo,bar</code></p><h3 id="BookDataFormatAppendix-UnmarshallingaCSVmessageintoaJavaList">Unmarshalling a CSV message into a Java List</h3><p>Unmarshalling will transform a CSV messsage into a Java List with CSV file lines (containing another List with all the field values).</p><p>An example: we have a CSV file with names of persons, their IQ and their current activity.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: sql; gutter: false" type="syntaxhighlighter"><![CDATA[
+<script class="theme: Default; brush: text; gutter: false" type="syntaxhighlighter"><![CDATA[
 Jack Dalton, 115, mad at Averell
 Joe Dalton, 105, calming Joe
 William Dalton, 105, keeping Joe from killing Averell

Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Tue Sep 23 12:50:14 2014
@@ -4122,11 +4122,11 @@ While not actual tutorials you might fin
                     </div>
     </div>
 <h2 id="BookInOnePage-Preface">Preface</h2><p>This tutorial aims to guide the reader through the stages of creating a project which uses Camel to facilitate the routing of messages from a JMS queue to a <a shape="rect" class="external-link" href="http://www.springramework.org" rel="nofollow">Spring</a> service. The route works in a synchronous fashion returning a response to the client.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1411316266146 {padding: 0px;}
-div.rbtoc1411316266146 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1411316266146 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1411476342391 {padding: 0px;}
+div.rbtoc1411476342391 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1411476342391 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1411316266146">
+/*]]>*/</style></p><div class="toc-macro rbtoc1411476342391">
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-JmsRemoting-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Preface">Preface</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Distribution">Distribution</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-About">About</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-CreatetheCamelProject">Create the Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-JmsRemoting-UpdatethePOMwithDependencies">Update the POM with Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#Tutorial-JmsRemoting-WritingtheServer">Writing the Server</a>
@@ -6312,11 +6312,11 @@ So we completed the last piece in the pi
 
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1411316266511 {padding: 0px;}
-div.rbtoc1411316266511 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1411316266511 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1411476342886 {padding: 0px;}
+div.rbtoc1411476342886 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1411476342886 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1411316266511">
+/*]]>*/</style><div class="toc-macro rbtoc1411476342886">
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-Distribution">Distribution</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-Introduction">Introduction</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-SettinguptheprojecttorunAxis">Setting up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-Maven2">Maven 2</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-wsdl">wsdl</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-ConfiguringAxis">Configuring Axis</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-RunningtheExample">Running the Example</a></li></ul>
@@ -9467,92 +9467,33 @@ This is done using the following syntax:
 
 <h3 id="BookInOnePage-Dependencies.15">Dependencies</h3>
 <p>The <a shape="rect" href="simple.html">Simple</a> language is part of <strong>camel-core</strong>.</p>
-<h2 id="BookInOnePage-FileExpressionLanguage">File Expression Language</h2>
-
-    <div class="aui-message hint shadowed information-macro">
+<h2 id="BookInOnePage-FileExpressionLanguage">File Expression Language</h2>    <div class="aui-message hint shadowed information-macro">
                     <p class="title">File language is now merged with Simple language</p>
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
-                            
-<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>
+                            <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> components for setting dynamic file patterns for both consumer and producer. </p>
-
-<h3 id="BookInOnePage-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 the <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 colspa
 n="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="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: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="c
 onfluenceTd"><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="confluenc
 eTd"><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 co
 lspan="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.SimepleDataFormat</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="BookInOnePage-Filetokenexample">File token example</h3>
-
-<h4 id="BookInOnePage-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" c
 lass="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\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="BookInOnePage-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" c
 lass="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="BookInOnePage-Samples.4">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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-fileName=&quot;myfile.txt&quot;
+<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> components for setting dynamic file patterns for both consumer and producer.</p><h3 id="BookInOnePage-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 fi
 le 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 the <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 col
 span="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="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: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="confl
 uenceTd"><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" cla
 ss="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="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><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.SimepleDateFormate</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="BookInOnePage-Filetokenexample">File token example</h3><h4 id="BookInOnePage-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 <co
 de>.\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\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="BookInOnePage-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</stron
 g> 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">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\came
 l-core\target\filelanguage\test\hello.txt</p></td></tr></tbody></table></div><h3 id="BookInOnePage-Samples.4">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="theme: Default; brush: java; gutter: false" 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">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-fileName=&quot;backup/${date:now:yyyyMMdd}/${file:name.noext}.bak&quot;
+</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">
+<script class="theme: Default; brush: java; gutter: false" 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">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-fileName=&quot;../backup/${date:now:yyyyMMdd}/${file:name.noext}.bak&quot;
+</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">
+<script class="theme: Default; brush: java; gutter: false" 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">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-fileName=&quot;../backup/${date:now:yyyyMMdd}/type-${in.header.type}/backup-of-${file:name.noext}.bak&quot;
+</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">
+<script class="theme: Default; brush: java; gutter: false" 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">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-fileName=&quot;orders/order-${in.header.customerId}-${date:in.header.orderDate:yyyyMMdd}.xml&quot;
+</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">
+<script class="theme: Default; brush: java; gutter: false" 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">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-fileName=&quot;uniquefile-${bean:myguidgenerator.generateid}.txt&quot;
+</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">
+<script class="theme: Default; brush: java; gutter: false" 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="BookInOnePage-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">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-  &lt;from uri=&quot;file://input/orders&quot;/&gt;
+</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="BookInOnePage-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
 ">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[  &lt;from uri=&quot;file://input/orders&quot;/&gt;
      &lt;choice&gt;
        &lt;when&gt;
            &lt;simple&gt;${file:ext} == &#39;txt&#39;&lt;/simple&gt;
@@ -9567,14 +9508,8 @@ fileName=&quot;uniquefile-${bean:myguidg
        &lt;/otherwise&gt;
     &lt;/choice&gt;
 ]]></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">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;bean id=&quot;propertyPlaceholder&quot; class=&quot;org.springframework.beans.factory.config.PropertyPlaceholderConfigurer&quot;&gt;
+</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">
+<script class="theme: Default; brush: java; gutter: false" 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;
 
@@ -9583,28 +9518,16 @@ use the alternative syntax (available fr
     &lt;property name=&quot;toEndpoint&quot; value=&quot;${toEndpoint}&quot; /&gt;
 &lt;/bean&gt;
 ]]></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">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-fromEndpoint=activemq:queue:test
+</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">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[fromEndpoint=activemq:queue:test
 toEndpoint=file://fileRoute/out?fileName=test-$simple{date:now:yyyyMMdd}.txt
 ]]></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">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-org.springframework.beans.factory.BeanDefinitionStoreException:
+</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">
+<script class="theme: Default; brush: java; gutter: false" 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="BookInOnePage-Dependencies.16">Dependencies</h3>
-<p>The File language is part of <strong>camel-core</strong>.</p> 
+</div></div><h3 id="BookInOnePage-Dependencies.16">Dependencies</h3><p>The File language is part of <strong>camel-core</strong>.</p> 
 <h2 id="BookInOnePage-SQLLanguage">SQL Language</h2>
 
 <p>The SQL support is added by <a shape="rect" class="external-link" href="http://josql.sourceforge.net/" rel="nofollow">JoSQL</a> and is primarily used for performing SQL queries on in-memory objects. If you prefer to perform actual database queries then check out the <a shape="rect" href="jpa.html">JPA</a> component.</p>
@@ -10707,7 +10630,7 @@ from(&quot;direct:start&quot;).
 </div></div><p>... you will end up with a String containing this CSV message</p><div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>abc,123</pre>
 </div></div><p>Sending the Map below through this route will result in a CSV message that looks like <code>foo,bar</code></p><h3 id="BookInOnePage-UnmarshallingaCSVmessageintoaJavaList">Unmarshalling a CSV message into a Java List</h3><p>Unmarshalling will transform a CSV messsage into a Java List with CSV file lines (containing another List with all the field values).</p><p>An example: we have a CSV file with names of persons, their IQ and their current activity.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: sql; gutter: false" type="syntaxhighlighter"><![CDATA[
+<script class="theme: Default; brush: text; gutter: false" type="syntaxhighlighter"><![CDATA[
 Jack Dalton, 115, mad at Averell
 Joe Dalton, 105, calming Joe
 William Dalton, 105, keeping Joe from killing Averell
@@ -17925,7 +17848,7 @@ from(&quot;direct:start&quot;)
                             <p>The redelivery in transacted mode is <strong>not</strong> handled by Camel but by the backing system (the transaction manager). In such cases you should resort to the backing system how to configure the redelivery.</p>
                     </div>
     </div>
-<p>You should use the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-spring/apidocs/org/apache/camel/spring/SpringRouteBuilder.html">SpringRouteBuilder</a> to setup the routes since you will need to setup the spring context with the <a shape="rect" class="external-link" href="http://www.springframework.org/docs/api/org/springframework/transaction/support/TransactionTemplate.html" rel="nofollow">TransactionTemplate</a>s that will define the transaction manager configuration and policies.</p><p>For inbound endpoint to be transacted, they normally need to be configured to use a Spring <a shape="rect" class="external-link" href="http://www.springframework.org/docs/api/org/springframework/transaction/PlatformTransactionManager.html" rel="nofollow">PlatformTransactionManager</a>. In the case of the JMS component, this can be done by looking it up in the spring context.</p><p>You first define needed object in the spring configuration.</p><div class=
 "code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<p>You should use the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-spring/apidocs/org/apache/camel/spring/SpringRouteBuilder.html">SpringRouteBuilder</a> to setup the routes since you will need to setup the spring context with the TransactionTemplates that will define the transaction manager configuration and policies.</p><p>For inbound endpoint to be transacted, they normally need to be configured to use a Spring PlatformTransactionManager. In the case of the JMS component, this can be done by looking it up in the spring context.</p><p>You first define needed object in the spring configuration.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[  &lt;bean id=&quot;jmsTransactionManager&quot; class=&quot;org.springframework.jms.connection.JmsTransactionManager&quot;&gt;
     &lt;property name=&quot;connectionFactory&quot; ref=&quot;jmsConnectionFactory&quot; /&gt;
   &lt;/bean&gt;
@@ -17941,7 +17864,7 @@ from(&quot;direct:start&quot;)
   component.getConfiguration().setConcurrentConsumers(1);
   ctx.addComponent(&quot;activemq&quot;, component);
 ]]></script>
-</div></div><h4 id="BookInOnePage-TransactionPolicies">Transaction Policies</h4><p>Outbound endpoints will automatically enlist in the current transaction context. But what if you do not want your outbound endpoint to enlist in the same transaction as your inbound endpoint? The solution is to add a Transaction Policy to the processing route. You first have to define transaction policies that you will be using. The policies use a spring <a shape="rect" class="external-link" href="http://www.springframework.org/docs/api/org/springframework/transaction/support/TransactionTemplate.html" rel="nofollow">TransactionTemplate</a> under the covers for declaring the transaction demarcation to use. So you will need to add something like the following to your spring xml:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h4 id="BookInOnePage-TransactionPolicies">Transaction Policies</h4><p>Outbound endpoints will automatically enlist in the current transaction context. But what if you do not want your outbound endpoint to enlist in the same transaction as your inbound endpoint? The solution is to add a Transaction Policy to the processing route. You first have to define transaction policies that you will be using. The policies use a spring TransactionTemplate under the covers for declaring the transaction demarcation to use. So you will need to add something like the following to your spring xml:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[  &lt;bean id=&quot;PROPAGATION_REQUIRED&quot; class=&quot;org.apache.camel.spring.spi.SpringTransactionPolicy&quot;&gt;
     &lt;property name=&quot;transactionManager&quot; ref=&quot;jmsTransactionManager&quot;/&gt;
   &lt;/bean&gt;
@@ -17980,7 +17903,7 @@ from(&quot;direct:start&quot;)
   &lt;to uri=&quot;activemq:queue:bar&quot;/&gt;
 &lt;/route&gt;
 ]]></script>
-</div></div><h3 id="BookInOnePage-DatabaseSample">Database Sample</h3><p>In this sample we want to ensure that two endpoints is under transaction control. These two endpoints inserts data into a database.<br clear="none"> The sample is in its full as a <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceMinimalConfigurationTest.java?view=log">unit test</a>.</p><p>First of all we setup the usual spring stuff in its configuration file. Here we have defined a DataSource to the HSQLDB and a most importantly&#160;the Spring DataSource TransactionManager that is doing the heavy lifting of ensuring our transactional policies. You are of course free to use any&#160;of the Spring based TransactionMananger, eg. if you are in a full blown J2EE container you could use JTA or the WebLogic or WebSphere specific managers.</p><p>As we use the new convention over co
 nfiguration we do <strong>not</strong> need to configure a transaction policy bean, so we do not have any <code>PROPAGATION_REQUIRED</code> beans.&#160;All the beans needed to be configured is <strong>standard</strong> Spring beans only, eg. there are no Camel specific configuration at all.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookInOnePage-DatabaseSample">Database Sample</h3><p>In this sample we want to ensure that two endpoints is under transaction control. These two endpoints inserts data into a database.<br clear="none"> The sample is in its full as a <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceMinimalConfigurationTest.java?view=log">unit test</a>.</p><p>First of all we setup the usual spring stuff in its configuration file. Here we have defined a DataSource to the HSQLDB and a most importantly&#160;the Spring DataSource TransactionManager that is doing the heavy lifting of ensuring our transactional policies. You are of course free to use any&#160;of the Spring based TransactionManager, eg. if you are in a full blown J2EE container you could use JTA or the WebLogic or WebSphere specific managers.</p><p>As we use the new convention over con
 figuration we do <strong>not</strong> need to configure a transaction policy bean, so we do not have any <code>PROPAGATION_REQUIRED</code> beans.&#160;All the beans needed to be configured is <strong>standard</strong> Spring beans only, eg. there are no Camel specific configuration at all.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
 &lt;!-- this example uses JDBC so we define a data source --&gt;
 &lt;jdbc:embedded-database id=&quot;dataSource&quot; type=&quot;DERBY&quot;&gt;
@@ -18088,7 +18011,13 @@ from(&quot;direct:start&quot;)
                             <p>When a route is marked as transacted using <strong>transacted</strong> Camel will automatic use the <a shape="rect" href="transactionerrorhandler.html">TransactionErrorHandler</a> as <a shape="rect" href="error-handler.html">Error Handler</a>. It supports basically the same feature set as the <a shape="rect" href="defaulterrorhandler.html">DefaultErrorHandler</a>, so you can for instance use <a shape="rect" href="exception-clause.html">Exception Clause</a> as well.</p>
                     </div>
     </div>
-<h2 id="BookInOnePage-Usingmultiplerouteswithdifferentpropagationbehaviors">Using multiple routes with different propagation behaviors</h2><p><strong>Available as of Camel 2.2</strong><br clear="none"> Suppose you want to route a message through two routes and by which the 2nd route should run in its own transaction. How do you do that? You use propagation behaviors for that where you configure it as follows:</p><ul class="alternate"><li>The first route use <code>PROPAGATION_REQUIRED</code></li><li>The second route use <code>PROPAGATION_REQUIRES_NEW</code></li></ul><p>This is configured in the Spring XML file:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h3 id="BookInOnePage-IntegrationTestingwithSpring">Integration Testing with Spring</h3>    <div class="aui-message warning shadowed information-macro">
+                            <span class="aui-icon icon-warning">Icon</span>
+                <div class="message-content">
+                            <p>An Integration Test here means a test runner class annotated <code>@RunWith(SpringJUnit4ClassRunner.class).</code></p>
+                    </div>
+    </div>
+<p><span style="line-height: 1.4285715;">When following the Spring Transactions documentation it is tempting to annotate your integration test with&#160;</span><code style="line-height: 1.4285715;">@Transactional</code><span style="line-height: 1.4285715;"> then seed your database before firing up the route to be tested and sending a message in. This is incorrect as Spring will have an in-progress transaction, and Camel will wait on this before proceeding, leading to the route timing out.</span></p><p>Instead, remove the <code>@Transactional</code> annotation from the test method and seed the test data within a&#160;<code>TransactionTemplate</code> execution which will ensure the data is committed to the database before Camel attempts to pick up and use the transaction manager. A simple example&#160;<a shape="rect" class="external-link" href="https://github.com/rajivj2/example2/blob/master/src/test/java/com/example/NotificationRouterIT.java" rel="nofollow">can be found on GitHub</a>
 .</p><p>Spring's transactional model ensures each transaction is bound to one thread. A Camel route may invoke additional threads which is where the blockage may occur. This is not a fault of Camel but as the programmer you must be aware of the consequences of beginning a transaction in a test thread and expecting a separate thread created by your Camel route to be participate, which it cannot. You can, in your test, mock the parts that cause separate threads to avoid this issue.</p><h2 id="BookInOnePage-Usingmultiplerouteswithdifferentpropagationbehaviors">Using multiple routes with different propagation behaviors</h2><p><strong>Available as of Camel 2.2</strong><br clear="none"> Suppose you want to route a message through two routes and by which the 2nd route should run in its own transaction. How do you do that? You use propagation behaviors for that where you configure it as follows:</p><ul class="alternate"><li>The first route use <code>PROPAGATION_REQUIRED</code></li><li>The s
 econd route use <code>PROPAGATION_REQUIRES_NEW</code></li></ul><p>This is configured in the Spring XML file:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
 &lt;bean id=&quot;PROPAGATION_REQUIRED&quot; class=&quot;org.apache.camel.spring.spi.SpringTransactionPolicy&quot;&gt;
     &lt;property name=&quot;transactionManager&quot; ref=&quot;txManager&quot;/&gt;
@@ -19840,11 +19769,11 @@ template.send(&quot;direct:alias-verify&
                     </div>
     </div>
 <p>The <strong>cxf:</strong> component provides integration with <a shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1411316275280 {padding: 0px;}
-div.rbtoc1411316275280 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1411316275280 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1411476348827 {padding: 0px;}
+div.rbtoc1411476348827 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1411476348827 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1411316275280">
+/*]]>*/</style></p><div class="toc-macro rbtoc1411476348827">
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-URIformat">URI format</a></li><li><a shape="rect" href="#CXF-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-Thedescriptionsofthedataformats">The descriptions of the dataformats</a>



Mime
View raw message