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 2016/11/07 10:20:51 UTC

svn commit: r1000639 [1/2] - in /websites/production/camel/content: book-component-appendix.html book-in-one-page.html cache/main.pageCache camel-219-release.html file2.html

Author: buildbot
Date: Mon Nov  7 10:20:50 2016
New Revision: 1000639

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/book-component-appendix.html
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/camel-219-release.html
    websites/production/camel/content/file2.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 Mon Nov  7 10:20:50 2016
@@ -621,8 +621,8 @@ cometds://localhost:8443/service/mychann
  <div class="confluence-information-macro-body">
   <p>When using CXF in streaming modes (see DataFormat option), then also read about <a shape="rect" href="stream-caching.html">Stream caching</a>.</p>
  </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">/**/ div.rbtoc1478276281863 {padding: 0px;} div.rbtoc1478276281863 ul {list-style: disc;margin-left: 0px;} div.rbtoc1478276281863 li {margin-left: 0px;padding-left: 0px;} /**/</style>
- </p><div class="toc-macro rbtoc1478276281863"> 
+</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">/**/ div.rbtoc1478513883374 {padding: 0px;} div.rbtoc1478513883374 ul {list-style: disc;margin-left: 0px;} div.rbtoc1478513883374 li {margin-left: 0px;padding-left: 0px;} /**/</style>
+ </p><div class="toc-macro rbtoc1478513883374"> 
   <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-CXFComponent">CXF Component</a> 
     <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-URIformat">URI format</a></li><li><a shape="rect" href="#BookComponentAppendix-Options">Options</a> 
       <ul class="toc-indentation"><li><a shape="rect" href="#BookComponentAppendix-Thedescriptionsofthedataformats">The descriptions of the dataformats</a> 
@@ -1134,7 +1134,7 @@ cometds://localhost:8443/service/mychann
         <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter">idempotentKey=${file:name}-${file:size}</script> 
        </div> 
       </div></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>idempotentRepository</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A pluggable repository <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/IdempotentRepository.html"><code>org.apache.camel.spi.IdempotentRepository</code></a> which by default use <strong><code>MemoryMessageIdRepository</code></strong> if none is specified and <strong><code>idempotent</code></strong> is <strong><code>true</code>.</strong></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>inProgressRepository</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>memory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A pluggable in-progress repository <a shape="rect" class="external-link" href="http://camel
 .apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/IdempotentRepository.html"><code>org.apache.camel.spi.IdempotentRepository</code></a> . The in-progress repository is used to account the current in progress files being consumed. By default a memory based repository is used.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>filter</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Pluggable filter as a <strong><code>org.apache.camel.component.file.GenericFileFilter</code></strong> class. Will skip files if filter returns <strong><code>false</code></strong> in its <strong><code>accept()</code></strong> method. More details in section below.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>filterDirectory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" cl
 ass="confluenceTd"><p><strong>Camel 2.18</strong>: Filters the directory based on <a shape="rect" href="simple.html">Simple</a> language. For example to filter on current date, you can use a simple date pattern such as&#160;<strong><code>${date:now:yyyMMdd</code>}.</strong></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>filterFile</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.18:</strong> Filters the file based on <a shape="rect" href="simple.html">Simple</a> language. For example to filter on file size, you can use&#160;<strong><code>${file}:size &gt; 5000</code></strong>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>shuffle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> To shuffle the 
 list of files (sort in random order).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sorter</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Pluggable sorter as a <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Comparator.html" rel="nofollow"><code>java.util.Comparator&lt;org.apache.camel.component.file.GenericFile&gt;</code></a> class.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sortBy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Built-in sort using the <a shape="rect" href="file-language.html">File Language</a>. Supports nested sorts, so you can have a sort by file name and as a 2nd group sort by modified date. See sorting section below for details.</p></td></tr><tr><td colspan="1" row
 span="1" class="confluenceTd"><p><code>readLock</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>none</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used by consumer, to only poll the files if it has exclusive read-lock on the file e.g., the file is not in-progress or being written. Camel will wait until the file lock is granted.</p><p>This option provides the built-in strategies:</p> 
-      <ul><li><strong><code>none</code></strong><span> is for no read locks at all.</span></li><li><strong><code style="line-height: 1.4285715;"> markerFile</code></strong><span style="line-height: 1.4285715;"> Camel creates a marker file&#160;<strong><code>fileName.camelLock</code></strong> and then holds a lock on it. This option is </span><strong style="line-height: 1.4285715;">not</strong><span style="line-height: 1.4285715;"> available for the </span><a shape="rect" href="ftp2.html">FTP</a><span style="line-height: 1.4285715;"> component. </span></li><li><strong><code>changed</code></strong> is using file length/modification timestamp to detect whether the file is currently being copied or not. Will at least use 1 sec. to determine this, so this option cannot consume files as fast as the others, but can be more reliable as the JDK IO API cannot always determine whether a file is currently being used by another process. The option <strong><code>readLockCheckInterval</code></stro
 ng> can be used to set the check frequency. This option is <strong>only</strong> avail for the <a shape="rect" href="ftp2.html">FTP</a> component from <strong>Camel 2.8</strong> onward. Note: from <strong>Camel 2.10.1</strong> onward the <a shape="rect" href="ftp2.html">FTP</a> option <strong><code>fastExistsCheck</code></strong> can be enabled to speedup this&#160;<strong><code>readLock</code></strong> strategy, if the FTP server support the LIST operation with a full file name (some servers may not).</li><li><strong><code>fileLock</code></strong> is for using <strong><code>java.nio.channels.FileLock</code></strong>. This option is <strong>not</strong> avail for the <a shape="rect" href="ftp2.html">FTP</a> component. This approach should be avoided when accessing a remote file system via a mount/share unless that file system supports distributed file locks.</li><li><strong><code>rename</code></strong> is for using a try to rename the file as a test if we can get exclusive read-lock
 .</li><li><strong><code style="line-height: 1.4285715;">idempotent</code></strong><span style="line-height: 1.4285715;"> <strong>Camel 2.16</strong> (only file component) is for using a <strong><code>idempotentRepository</code></strong> as the read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that. </span></li></ul><p><strong>Warning</strong>: most of the read lock strategies are not suitable for use in clustered mode. That is, you cannot have multiple consumers attempting to read the same file in the same directory. In this case, the read locks will not function reliably. The idempotent read lock supports clustered reliably if you use a cluster aware idempotent repository implementation such as from <a shape="rect" href="hazelcast-component.html">Hazelcast Component</a> or <a shape="rect" href="infinispan.html">Infinispan</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockTimeo
 ut</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>10000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Optional timeout in milliseconds for the <strong><code>readLock</code></strong>, if supported. If the read-lock could not be granted and the timeout triggered, then Camel will skip the file. At next poll Camel, will try the file again, and this time maybe the read-lock could be granted. Use a value of&#160;<strong><code>0</code></strong> or lower to indicate forever. In <strong>Camel 2.0</strong> the default value is <strong><code>0</code></strong>. Starting with <strong>Camel 2.1</strong> the default value is <strong><code>10000</code></strong>. Currently <strong><code>fileLock</code>, </strong><code>changed</code> and <strong><code>rename</code></strong> support the timeout.</p><p><strong>Note:</strong> for <a shape="rect" href="ftp2.html">FTP</a> the default <strong><code>readLockTimeout</code></strong> value is <strong><code>20000</
 code></strong> instead of <strong><code>10000</code></strong>. The&#160;<strong><code>readLockTimeout</code></strong> value must be higher than <strong><code>readLockCheckInterval</code></strong>, but a rule of thumb is to have a timeout that is at least 2 or more times higher than the <strong><code>readLockCheckInterval</code></strong>. This is needed to ensure that ample time is allowed for the read lock process to try to grab the lock before the timeout was hit.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockCheckInterval</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6:</strong> Interval in milliseconds for the read-lock, if supported by the read lock. This interval is used for sleeping between attempts to acquire the read lock. For example when using the <code>changed</code> read lock, you can set a higher interval period to cater
  for <em>slow writes</em>. The default of 1 sec. may be <em>too fast</em> if the producer is very slow writing the file. For <a shape="rect" href="ftp2.html">FTP</a> the default <strong><code>readLockCheckInterval</code></strong> is <strong><code>5000</code></strong>. <span>The&#160;<strong><code>readLockTimeout</code></strong> value must be higher than&#160;<strong><code>readLockCheckInterval</code></strong>, but a rule of thumb is to have a timeout that is at least 2 or more times higher than the&#160;<strong><code>readLockCheckInterval</code></strong>. This is needed to ensure that ample time is allowed for the read lock process to try to grab the lock before the timeout was hit.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockMinLength</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.1:</strong> This option applied only for <st
 rong><code>readLock=changed</code></strong>. This option allows you to configure a minimum file length. By default Camel expects the file to contain data, and thus the default value is <strong>1</strong>. You can set this option to zero, to allow consuming zero-length files.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockMinAge</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15</strong>: This option applies only to <strong><code>readLock=change</code></strong>. This option allows you to specify a minimum age a file must be before attempting to acquire the read lock. For example, use&#160;<strong><code>readLockMinAge=300s</code></strong> to require that the file is at least 5 minutes old. This can speedup the poll when the file is old enough as it will acquire the read lock immediately. Notice for FTP: file timestamps reported by FTP server
 s are often reported with resolution of minutes, so&#160;<strong><code>readLockMinAge</code></strong> parameter should be defined in minutes, e.g. <strong>60000</strong> for 1 minute. Notice that Camel supports specifying this as <strong><code>60s</code></strong>, or <strong><code>1m</code></strong>, etc.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockLoggingLevel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>WARN</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> Logging level used when a read lock could not be acquired. By default a&#160;<strong><code>WARN</code></strong> is logged. You can change this level, for example to OFF to not have any logging.</p><p>This option is only applicable for the <strong><code>readLock</code></strong> types:</p> 
+      <ul><li><strong><code>none</code></strong><span> is for no read locks at all.</span></li><li><strong><code style="line-height: 1.4285715;"> markerFile</code></strong><span style="line-height: 1.4285715;"> Camel creates a marker file&#160;<strong><code>fileName.camelLock</code></strong> and then holds a lock on it. This option is </span><strong style="line-height: 1.4285715;">not</strong><span style="line-height: 1.4285715;"> available for the </span><a shape="rect" href="ftp2.html">FTP</a><span style="line-height: 1.4285715;"> component. </span></li><li><strong><code>changed</code></strong> is using file length/modification timestamp to detect whether the file is currently being copied or not. Will at least use 1 sec. to determine this, so this option cannot consume files as fast as the others, but can be more reliable as the JDK IO API cannot always determine whether a file is currently being used by another process. The option <strong><code>readLockCheckInterval</code></stro
 ng> can be used to set the check frequency. This option is <strong>only</strong> avail for the <a shape="rect" href="ftp2.html">FTP</a> component from <strong>Camel 2.8</strong> onward. Note: from <strong>Camel 2.10.1</strong> onward the <a shape="rect" href="ftp2.html">FTP</a> option <strong><code>fastExistsCheck</code></strong> can be enabled to speedup this&#160;<strong><code>readLock</code></strong> strategy, if the FTP server support the LIST operation with a full file name (some servers may not).</li><li><strong><code>fileLock</code></strong> is for using <strong><code>java.nio.channels.FileLock</code></strong>. This option is <strong>not</strong> avail for the <a shape="rect" href="ftp2.html">FTP</a> component. This approach should be avoided when accessing a remote file system via a mount/share unless that file system supports distributed file locks.</li><li><strong><code>rename</code></strong> is for using a try to rename the file as a test if we can get exclusive read-lock
 .</li><li><strong><code style="line-height: 1.4285715;">idempotent</code></strong><span style="line-height: 1.4285715;"> <strong>Camel 2.16</strong> (only file component) is for using a <strong><code>idempotentRepository</code></strong> as the read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that. </span></li><li><strong><code>idempotent-changed</code></strong><span> <strong>Camel 2.19</strong> (only file component) is for using a <strong><code>idempotentRepository</code></strong> and changed as combined read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that. </span></li><li><strong><code>idempotent-rename</code></strong><span> <strong>Camel 2.19</strong> (only file component) is for using a <strong><code>idempotentRepository</code></strong> and rename as combined read-lock. This allows to use read locks that supports clustering if the idempotent
  repository implementation supports that. </span><span style="line-height: 1.4285715;"><br clear="none"></span></li></ul><p><strong>Warning</strong>: most of the read lock strategies are not suitable for use in clustered mode. That is, you cannot have multiple consumers attempting to read the same file in the same directory. In this case, the read locks will not function reliably. The idempotent read lock supports clustered reliably if you use a cluster aware idempotent repository implementation such as from <a shape="rect" href="hazelcast-component.html">Hazelcast Component</a> or <a shape="rect" href="infinispan.html">Infinispan</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockTimeout</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>10000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Optional timeout in milliseconds for the <strong><code>readLock</code></strong>, if supported. If the read-lock coul
 d not be granted and the timeout triggered, then Camel will skip the file. At next poll Camel, will try the file again, and this time maybe the read-lock could be granted. Use a value of&#160;<strong><code>0</code></strong> or lower to indicate forever. In <strong>Camel 2.0</strong> the default value is <strong><code>0</code></strong>. Starting with <strong>Camel 2.1</strong> the default value is <strong><code>10000</code></strong>. Currently <strong><code>fileLock</code>, </strong><code>changed</code> and <strong><code>rename</code></strong> support the timeout.</p><p><strong>Note:</strong> for <a shape="rect" href="ftp2.html">FTP</a> the default <strong><code>readLockTimeout</code></strong> value is <strong><code>20000</code></strong> instead of <strong><code>10000</code></strong>. The&#160;<strong><code>readLockTimeout</code></strong> value must be higher than <strong><code>readLockCheckInterval</code></strong>, but a rule of thumb is to have a timeout that is at least 2 or more 
 times higher than the <strong><code>readLockCheckInterval</code></strong>. This is needed to ensure that ample time is allowed for the read lock process to try to grab the lock before the timeout was hit.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockCheckInterval</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6:</strong> Interval in milliseconds for the read-lock, if supported by the read lock. This interval is used for sleeping between attempts to acquire the read lock. For example when using the <code>changed</code> read lock, you can set a higher interval period to cater for <em>slow writes</em>. The default of 1 sec. may be <em>too fast</em> if the producer is very slow writing the file. For <a shape="rect" href="ftp2.html">FTP</a> the default <strong><code>readLockCheckInterval</code></strong> is <strong><code>5000</code></stron
 g>. <span>The&#160;<strong><code>readLockTimeout</code></strong> value must be higher than&#160;<strong><code>readLockCheckInterval</code></strong>, but a rule of thumb is to have a timeout that is at least 2 or more times higher than the&#160;<strong><code>readLockCheckInterval</code></strong>. This is needed to ensure that ample time is allowed for the read lock process to try to grab the lock before the timeout was hit.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockMinLength</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.1:</strong> This option applied only for <strong><code>readLock=changed</code></strong>. This option allows you to configure a minimum file length. By default Camel expects the file to contain data, and thus the default value is <strong>1</strong>. You can set this option to zero, to allow consuming zero-len
 gth files.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockMinAge</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15</strong>: This option applies only to <strong><code>readLock=change</code></strong>. This option allows you to specify a minimum age a file must be before attempting to acquire the read lock. For example, use&#160;<strong><code>readLockMinAge=300s</code></strong> to require that the file is at least 5 minutes old. This can speedup the poll when the file is old enough as it will acquire the read lock immediately. Notice for FTP: file timestamps reported by FTP servers are often reported with resolution of minutes, so&#160;<strong><code>readLockMinAge</code></strong> parameter should be defined in minutes, e.g. <strong>60000</strong> for 1 minute. Notice that Camel supports specifying this as <strong><code>60s</code></strong>, 
 or <strong><code>1m</code></strong>, etc.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockLoggingLevel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>WARN</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> Logging level used when a read lock could not be acquired. By default a&#160;<strong><code>WARN</code></strong> is logged. You can change this level, for example to OFF to not have any logging.</p><p>This option is only applicable for the <strong><code>readLock</code></strong> types:</p> 
       <ul><li><strong><code>changed</code></strong></li><li><strong><code>fileLock</code></strong></li><li><strong><code>rename</code></strong></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockMarkerFile</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.14:</strong> Whether to use marker file with the <strong><code>changed</code>, <code>rename</code></strong>, or <strong><code>exclusive</code></strong> read lock types. By default a marker file is used as well to guard against other processes picking up the same files. This behavior can be turned off by setting this option to <strong><code>false</code></strong>. For example if you do not want to write marker files to the file systems by the Camel application.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockRemoveOnRollback</code></p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> This option applied only for <strong><code>readLock=idempotent</code></strong>. This option allows to specify whether to remove the file name entry from the idempotent repository when processing the file failed and a rollback happens. If this option is false, then the file name entry is confirmed (as if the file did a commit).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span>readLockRemoveOnCommit</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong><span> This option applied only for <strong><code>readLock=idempotent</code></strong>. This option allows to specify whether to remove the file name entry from the idempotent repository when processing the file succeeded and a commit happens. By defa
 ult the file is not removed which ensures that any race-condition do not occur so another active node may attempt to grab the file. Instead the idempotent repository may support eviction strategies that you can configure to evict the file name entry after X minutes - this ensures no problems with race conditions.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockDeleteOrphanLockFiles</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> Whether or not read lock with marker files should upon startup delete any orphan read lock files, which may have been left on the file system, if Camel was not properly shutdown (such as a JVM crash). If turning this option to false then any orphaned lock file will cause Camel to not attempt to pickup that file, this could also be due another node is concurrently reading files from the same sh
 ared directory.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>directoryMustExist</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> Similar to <strong><code>startingDirectoryMustExist</code></strong> but this applies during polling recursive sub directories.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>doneFileName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6:</strong> If provided, Camel will only consume files if a <em>done</em> file exists. This option configures what file name to use. Either you can specify a fixed name. Or you can use dynamic placeholders. The <em>done</em> file is <strong>always</strong> expected in the same folder as the original file. See <em>using done file</em> a
 nd <em>writing done file</em> sections for examples.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>exclusiveReadLockStrategy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Pluggable read-lock as a <strong><code>org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy</code></strong> implementation.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxMessagesPerPoll</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>An integer to define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g.&#160;<strong><code>1000</code></strong> to avoid when starting up the server that there are thousands of files. Set a value of&#160;<strong><code>0</code></strong> or negative to disable it. See mo
 re details at <a shape="rect" href="batch-consumer.html">Batch Consumer</a>.</p><p><strong>Notice:</strong> If this option is in use then the <a shape="rect" href="file2.html">File</a> and <a shape="rect" href="ftp2.html">FTP</a> components will limit <strong>before</strong> any sorting. For example if you have 100000 files and use <strong><code>maxMessagesPerPoll=500</code></strong>, then only the first 500 files will be picked up, and then sorted. You can use the <strong><code>eagerMaxMessagesPerPoll</code></strong> option and set this to <strong><code>false</code></strong> to allow to scan all files first and then sort afterwards.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eagerMaxMessagesPerPoll</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.3:</strong> Allows for controlling whether the limit from <strong><code>maxMessagesPerPoll</c
 ode></strong> is eager or not. If eager then the limit is during the scanning of files. Where as <code>false</code> would scan all files, and then perform sorting. Setting this option to <code>false</code> allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>minDepth</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8</strong>: The minimum depth to start processing when recursively processing a directory. Using <strong><code>minDepth=1</code></strong> means the base directory. Using <strong><code>minDepth=2</code></strong> means the first sub directory.</p><p>This option is supported by <a shape="rect" href="ftp2.html">FTP</a> consumer from <strong>Camel 2.8.2, 2.9</strong> onward.</p></td></tr><tr><td col
 span="1" rowspan="1" class="confluenceTd"><p><code>maxDepth</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer.MAX_VALUE</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> The maximum depth to traverse when recursively processing a directory. This option is supported by <a shape="rect" href="ftp2.html">FTP</a> consumer from <strong>Camel 2.8.2, 2.9</strong> onward.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>processStrategy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A pluggable <strong><code>org.apache.camel.component.file.GenericFileProcessStrategy</code></strong> allowing you to implement your own <strong><code>readLock</code></strong> option or similar. Can also be used when special conditions must be met before a file can be consumed, such as a special <em>ready</em> file exi
 sts. If this option is set then the <strong><code>readLock</code></strong> option does not apply.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>startingDirectoryMustExist</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> Whether the starting directory must exist. Mind that the <strong><code>autoCreate</code></strong> option is default enabled, which means the starting directory is normally auto created if it doesn't exist. You can disable <strong><code>autoCreate</code></strong> and enable this to ensure the starting directory must exist. Will thrown an exception if the directory doesn't exist.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>pollStrategy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A pluggab
 le <strong><code>org.apache.camel.spi.PollingConsumerPollStrategy</code></strong> allowing you to provide your custom implementation to control error handling that may occur during the <strong><code>poll</code></strong> operation but <em>before</em> an <a shape="rect" href="exchange.html">Exchange</a> has been created and routed by Camel. In other words the error occurred while the polling was gathering information e.g., access to a file network failed so Camel cannot access it to scan for files.</p><p>The default implementation will log the caused exception at <strong><code>WARN</code></strong> level and ignore it.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sendEmptyMessageWhenIdle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> If the polling consumer did not poll any files, you can enable this option to send an empty message
  (no body) instead.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>consumer.bridgeErrorHandler</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> Allows for bridging the consumer to the Camel routing <a shape="rect" href="error-handler.html">Error Handler</a>, which mean any exceptions occurred while trying to pickup files, or the likes, will now be processed as a message and handled by the routing <a shape="rect" href="error-handler.html">Error Handler</a>. By default the consumer will use the <strong><code>org.apache.camel.spi.ExceptionHandler</code></strong> to deal with exceptions, that by default will be logged at <strong><code>WARN</code></strong>/<strong><code>ERROR</code></strong> level and ignored. See the following section for more details: <em>How to use the Camel error handler to deal with exceptions triggered outside the
  routing engine</em>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>scheduledExecutorService</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. This option allows you to share a thread pool among multiple file consumers.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>scheduler</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> To use a custom scheduler to trigger the consumer to run. See more details at <a shape="rect" href="polling-consumer.html">Polling Consumer</a>, for example there is a <a shape="rect" href="quartz2.html">Quartz2</a>, and <a
  shape="rect" href="spring.html">Spring</a> based scheduler that supports CRON expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>backoffMultiplier</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then <strong><code>backoffIdleThreshold</code></strong> and/or <strong><code>backoffErrorThreshold</code></strong> must also be configured.</p><p>For more details see: <a shape="rect" href="polling-consumer.html">Polling Consumer</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>backoffIdleThreshold</code></p></td><td colspan="1" rowspan="1" class="confluen
 ceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> The number of subsequent idle polls that should happen before the <strong><code>backoffMultipler</code></strong> should kick-in.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>backoffErrorThreshold</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> The number of subsequent error polls (failed due some error) that should happen before the <strong><code>backoffMultipler</code></strong> should kick-in.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>onCompletionExceptionHandler</code></p></td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> To use a custom <strong><code>org.apache.camel.spi.ExceptionHandler</code
 ></strong> to handle any thrown exceptions that happens during the file on completion process where the consumer does either a commit or rollback. The default implementation will log any exception at&#160;<strong><code>WARN</code></strong> level and ignore.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>probeContentType</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.17:</strong> Whether to enable probing of the content type. If enable then the consumer uses <code><strong>Files#probeContentType</strong>(<strong>java.nio.file.Path</strong>)</code> to determine the content-type of the file, and store that as a header with key <strong><code>Exchange#FILE_CONTENT_TYPE</code></strong> on the Message.</p><p><strong>Camel 2.15</strong>-<strong>2.16.x</strong> the default is true.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ex
 tendedAttributes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.17</strong>: To enable gathering extended file attributes through&#160;<strong><code>java.nio.file.attribute</code></strong> classes using&#160;<strong><code>Files.getAttribute(ava.nio.file.Path, java.lang.String attribute)</code></strong> or&#160;<strong><code>Files.readAttributes(ava.nio.file.Path, java.lang.String attributes)</code></strong> depending on the option value. This option supports a comma delimited list of attributes to collect e.g., <strong><code>basic:creationTime</code></strong>,&#160;<strong><code>posix:group</code></strong> or simple wildcard e.g.,&#160;<strong><code>posix:*</code></strong>. If the attribute name is not prefixed, the basic attributes are queried. The result is stored as a header with key&#160;<strong><code>CamelFileExtendedAttributes</code></strong> and it is of type&#160;<strong><code>Map&l
 t;String, Object&gt;</code></strong> where the key is the name of the attribute e.g.,&#160;<strong><code>posix:group</code></strong> and the value is the attributed returned by the call to&#160;<strong><code>Files.getAttribute()</code></strong> or <strong><code>Files.readAttributes</code></strong>.</p></td></tr></tbody></table> 
  </div>
 </div><h4 id="BookComponentAppendix-Defaultbehaviorforfileconsumer">Default behavior for file consumer</h4><ul><li><p>By default the file is <strong>not</strong> locked for the duration of the processing.</p></li><li><p>After the route has completed, files are moved into the<strong><code> .camel</code></strong> subdirectory, so that they appear to be deleted.</p></li><li><p>The File Consumer will always skip any file whose name starts with a dot, such as <strong><code>.</code></strong>, <strong><code>.camel</code></strong>, <strong><code>.m2</code></strong> or <strong><code>.groovy</code>.</strong></p></li><li><p>Only files (not directories) are matched for valid filename, if options such as: <strong><code>include</code></strong> or <strong><code>exclude</code></strong> are used.</p></li></ul><h4 id="BookComponentAppendix-Producer">Producer</h4><div class="confluenceTableSmall">

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 Mon Nov  7 10:20:50 2016
@@ -3966,11 +3966,11 @@ The tutorial has been designed in two pa
 While not actual tutorials you might find working through the source of the various <a shape="rect" href="examples.html">Examples</a> useful.</li></ul>
 
 <h2 id="BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</h2><p>&#160;</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Thanks</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This tutorial was kindly donated to Apache Camel by Martin Gilday.</p></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.rbtoc1478276323168 {padding: 0px;}
-div.rbtoc1478276323168 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1478276323168 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1478513926754 {padding: 0px;}
+div.rbtoc1478513926754 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1478513926754 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1478276323168">
+/*]]>*/</style></p><div class="toc-macro rbtoc1478513926754">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</a></li><li><a shape="rect" href="#BookInOnePage-Preface">Preface</a></li><li><a shape="rect" href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect" href="#BookInOnePage-About">About</a></li><li><a shape="rect" href="#BookInOnePage-CreatetheCamelProject">Create the Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-UpdatethePOMwithDependencies">Update the POM with Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#BookInOnePage-WritingtheServer">Writing the Server</a>
@@ -6085,11 +6085,11 @@ So we completed the last piece in the pi
 <p>This example has been removed from <strong>Camel 2.9</strong> onwards. Apache Axis 1.4 is a very old and unsupported framework. We encourage users to use <a shape="rect" href="cxf.html">CXF</a> instead of Axis.</p></div></div>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1478276323536 {padding: 0px;}
-div.rbtoc1478276323536 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1478276323536 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1478513927596 {padding: 0px;}
+div.rbtoc1478513927596 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1478513927596 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1478276323536">
+/*]]>*/</style><div class="toc-macro rbtoc1478513927596">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect" href="#BookInOnePage-Introduction">Introduction</a></li><li><a shape="rect" href="#BookInOnePage-SettinguptheprojecttorunAxis">Setting up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Maven2">Maven 2</a></li><li><a shape="rect" href="#BookInOnePage-wsdl">wsdl</a></li><li><a shape="rect" href="#BookInOnePage-ConfiguringAxis">Configuring Axis</a></li><li><a shape="rect" href="#BookInOnePage-RunningtheExample">Running the Example</a></li></ul>
@@ -14323,8 +14323,8 @@ cometds://localhost:8443/service/mychann
  <div class="confluence-information-macro-body">
   <p>When using CXF in streaming modes (see DataFormat option), then also read about <a shape="rect" href="stream-caching.html">Stream caching</a>.</p>
  </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">/**/ div.rbtoc1478276357185 {padding: 0px;} div.rbtoc1478276357185 ul {list-style: disc;margin-left: 0px;} div.rbtoc1478276357185 li {margin-left: 0px;padding-left: 0px;} /**/</style>
- </p><div class="toc-macro rbtoc1478276357185"> 
+</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">/**/ div.rbtoc1478513964037 {padding: 0px;} div.rbtoc1478513964037 ul {list-style: disc;margin-left: 0px;} div.rbtoc1478513964037 li {margin-left: 0px;padding-left: 0px;} /**/</style>
+ </p><div class="toc-macro rbtoc1478513964037"> 
   <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-CXFComponent">CXF Component</a> 
     <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-URIformat">URI format</a></li><li><a shape="rect" href="#BookInOnePage-Options">Options</a> 
       <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Thedescriptionsofthedataformats">The descriptions of the dataformats</a> 
@@ -14836,7 +14836,7 @@ cometds://localhost:8443/service/mychann
         <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter">idempotentKey=${file:name}-${file:size}</script> 
        </div> 
       </div></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>idempotentRepository</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A pluggable repository <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/IdempotentRepository.html"><code>org.apache.camel.spi.IdempotentRepository</code></a> which by default use <strong><code>MemoryMessageIdRepository</code></strong> if none is specified and <strong><code>idempotent</code></strong> is <strong><code>true</code>.</strong></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>inProgressRepository</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>memory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A pluggable in-progress repository <a shape="rect" class="external-link" href="http://camel
 .apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/IdempotentRepository.html"><code>org.apache.camel.spi.IdempotentRepository</code></a> . The in-progress repository is used to account the current in progress files being consumed. By default a memory based repository is used.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>filter</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Pluggable filter as a <strong><code>org.apache.camel.component.file.GenericFileFilter</code></strong> class. Will skip files if filter returns <strong><code>false</code></strong> in its <strong><code>accept()</code></strong> method. More details in section below.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>filterDirectory</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" cl
 ass="confluenceTd"><p><strong>Camel 2.18</strong>: Filters the directory based on <a shape="rect" href="simple.html">Simple</a> language. For example to filter on current date, you can use a simple date pattern such as&#160;<strong><code>${date:now:yyyMMdd</code>}.</strong></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>filterFile</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.18:</strong> Filters the file based on <a shape="rect" href="simple.html">Simple</a> language. For example to filter on file size, you can use&#160;<strong><code>${file}:size &gt; 5000</code></strong>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>shuffle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> To shuffle the 
 list of files (sort in random order).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sorter</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Pluggable sorter as a <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Comparator.html" rel="nofollow"><code>java.util.Comparator&lt;org.apache.camel.component.file.GenericFile&gt;</code></a> class.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sortBy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Built-in sort using the <a shape="rect" href="file-language.html">File Language</a>. Supports nested sorts, so you can have a sort by file name and as a 2nd group sort by modified date. See sorting section below for details.</p></td></tr><tr><td colspan="1" row
 span="1" class="confluenceTd"><p><code>readLock</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>none</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used by consumer, to only poll the files if it has exclusive read-lock on the file e.g., the file is not in-progress or being written. Camel will wait until the file lock is granted.</p><p>This option provides the built-in strategies:</p> 
-      <ul><li><strong><code>none</code></strong><span> is for no read locks at all.</span></li><li><strong><code style="line-height: 1.4285715;"> markerFile</code></strong><span style="line-height: 1.4285715;"> Camel creates a marker file&#160;<strong><code>fileName.camelLock</code></strong> and then holds a lock on it. This option is </span><strong style="line-height: 1.4285715;">not</strong><span style="line-height: 1.4285715;"> available for the </span><a shape="rect" href="ftp2.html">FTP</a><span style="line-height: 1.4285715;"> component. </span></li><li><strong><code>changed</code></strong> is using file length/modification timestamp to detect whether the file is currently being copied or not. Will at least use 1 sec. to determine this, so this option cannot consume files as fast as the others, but can be more reliable as the JDK IO API cannot always determine whether a file is currently being used by another process. The option <strong><code>readLockCheckInterval</code></stro
 ng> can be used to set the check frequency. This option is <strong>only</strong> avail for the <a shape="rect" href="ftp2.html">FTP</a> component from <strong>Camel 2.8</strong> onward. Note: from <strong>Camel 2.10.1</strong> onward the <a shape="rect" href="ftp2.html">FTP</a> option <strong><code>fastExistsCheck</code></strong> can be enabled to speedup this&#160;<strong><code>readLock</code></strong> strategy, if the FTP server support the LIST operation with a full file name (some servers may not).</li><li><strong><code>fileLock</code></strong> is for using <strong><code>java.nio.channels.FileLock</code></strong>. This option is <strong>not</strong> avail for the <a shape="rect" href="ftp2.html">FTP</a> component. This approach should be avoided when accessing a remote file system via a mount/share unless that file system supports distributed file locks.</li><li><strong><code>rename</code></strong> is for using a try to rename the file as a test if we can get exclusive read-lock
 .</li><li><strong><code style="line-height: 1.4285715;">idempotent</code></strong><span style="line-height: 1.4285715;"> <strong>Camel 2.16</strong> (only file component) is for using a <strong><code>idempotentRepository</code></strong> as the read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that. </span></li></ul><p><strong>Warning</strong>: most of the read lock strategies are not suitable for use in clustered mode. That is, you cannot have multiple consumers attempting to read the same file in the same directory. In this case, the read locks will not function reliably. The idempotent read lock supports clustered reliably if you use a cluster aware idempotent repository implementation such as from <a shape="rect" href="hazelcast-component.html">Hazelcast Component</a> or <a shape="rect" href="infinispan.html">Infinispan</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockTimeo
 ut</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>10000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Optional timeout in milliseconds for the <strong><code>readLock</code></strong>, if supported. If the read-lock could not be granted and the timeout triggered, then Camel will skip the file. At next poll Camel, will try the file again, and this time maybe the read-lock could be granted. Use a value of&#160;<strong><code>0</code></strong> or lower to indicate forever. In <strong>Camel 2.0</strong> the default value is <strong><code>0</code></strong>. Starting with <strong>Camel 2.1</strong> the default value is <strong><code>10000</code></strong>. Currently <strong><code>fileLock</code>, </strong><code>changed</code> and <strong><code>rename</code></strong> support the timeout.</p><p><strong>Note:</strong> for <a shape="rect" href="ftp2.html">FTP</a> the default <strong><code>readLockTimeout</code></strong> value is <strong><code>20000</
 code></strong> instead of <strong><code>10000</code></strong>. The&#160;<strong><code>readLockTimeout</code></strong> value must be higher than <strong><code>readLockCheckInterval</code></strong>, but a rule of thumb is to have a timeout that is at least 2 or more times higher than the <strong><code>readLockCheckInterval</code></strong>. This is needed to ensure that ample time is allowed for the read lock process to try to grab the lock before the timeout was hit.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockCheckInterval</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6:</strong> Interval in milliseconds for the read-lock, if supported by the read lock. This interval is used for sleeping between attempts to acquire the read lock. For example when using the <code>changed</code> read lock, you can set a higher interval period to cater
  for <em>slow writes</em>. The default of 1 sec. may be <em>too fast</em> if the producer is very slow writing the file. For <a shape="rect" href="ftp2.html">FTP</a> the default <strong><code>readLockCheckInterval</code></strong> is <strong><code>5000</code></strong>. <span>The&#160;<strong><code>readLockTimeout</code></strong> value must be higher than&#160;<strong><code>readLockCheckInterval</code></strong>, but a rule of thumb is to have a timeout that is at least 2 or more times higher than the&#160;<strong><code>readLockCheckInterval</code></strong>. This is needed to ensure that ample time is allowed for the read lock process to try to grab the lock before the timeout was hit.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockMinLength</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.1:</strong> This option applied only for <st
 rong><code>readLock=changed</code></strong>. This option allows you to configure a minimum file length. By default Camel expects the file to contain data, and thus the default value is <strong>1</strong>. You can set this option to zero, to allow consuming zero-length files.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockMinAge</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15</strong>: This option applies only to <strong><code>readLock=change</code></strong>. This option allows you to specify a minimum age a file must be before attempting to acquire the read lock. For example, use&#160;<strong><code>readLockMinAge=300s</code></strong> to require that the file is at least 5 minutes old. This can speedup the poll when the file is old enough as it will acquire the read lock immediately. Notice for FTP: file timestamps reported by FTP server
 s are often reported with resolution of minutes, so&#160;<strong><code>readLockMinAge</code></strong> parameter should be defined in minutes, e.g. <strong>60000</strong> for 1 minute. Notice that Camel supports specifying this as <strong><code>60s</code></strong>, or <strong><code>1m</code></strong>, etc.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockLoggingLevel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>WARN</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> Logging level used when a read lock could not be acquired. By default a&#160;<strong><code>WARN</code></strong> is logged. You can change this level, for example to OFF to not have any logging.</p><p>This option is only applicable for the <strong><code>readLock</code></strong> types:</p> 
+      <ul><li><strong><code>none</code></strong><span> is for no read locks at all.</span></li><li><strong><code style="line-height: 1.4285715;"> markerFile</code></strong><span style="line-height: 1.4285715;"> Camel creates a marker file&#160;<strong><code>fileName.camelLock</code></strong> and then holds a lock on it. This option is </span><strong style="line-height: 1.4285715;">not</strong><span style="line-height: 1.4285715;"> available for the </span><a shape="rect" href="ftp2.html">FTP</a><span style="line-height: 1.4285715;"> component. </span></li><li><strong><code>changed</code></strong> is using file length/modification timestamp to detect whether the file is currently being copied or not. Will at least use 1 sec. to determine this, so this option cannot consume files as fast as the others, but can be more reliable as the JDK IO API cannot always determine whether a file is currently being used by another process. The option <strong><code>readLockCheckInterval</code></stro
 ng> can be used to set the check frequency. This option is <strong>only</strong> avail for the <a shape="rect" href="ftp2.html">FTP</a> component from <strong>Camel 2.8</strong> onward. Note: from <strong>Camel 2.10.1</strong> onward the <a shape="rect" href="ftp2.html">FTP</a> option <strong><code>fastExistsCheck</code></strong> can be enabled to speedup this&#160;<strong><code>readLock</code></strong> strategy, if the FTP server support the LIST operation with a full file name (some servers may not).</li><li><strong><code>fileLock</code></strong> is for using <strong><code>java.nio.channels.FileLock</code></strong>. This option is <strong>not</strong> avail for the <a shape="rect" href="ftp2.html">FTP</a> component. This approach should be avoided when accessing a remote file system via a mount/share unless that file system supports distributed file locks.</li><li><strong><code>rename</code></strong> is for using a try to rename the file as a test if we can get exclusive read-lock
 .</li><li><strong><code style="line-height: 1.4285715;">idempotent</code></strong><span style="line-height: 1.4285715;"> <strong>Camel 2.16</strong> (only file component) is for using a <strong><code>idempotentRepository</code></strong> as the read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that. </span></li><li><strong><code>idempotent-changed</code></strong><span> <strong>Camel 2.19</strong> (only file component) is for using a <strong><code>idempotentRepository</code></strong> and changed as combined read-lock. This allows to use read locks that supports clustering if the idempotent repository implementation supports that. </span></li><li><strong><code>idempotent-rename</code></strong><span> <strong>Camel 2.19</strong> (only file component) is for using a <strong><code>idempotentRepository</code></strong> and rename as combined read-lock. This allows to use read locks that supports clustering if the idempotent
  repository implementation supports that. </span><span style="line-height: 1.4285715;"><br clear="none"></span></li></ul><p><strong>Warning</strong>: most of the read lock strategies are not suitable for use in clustered mode. That is, you cannot have multiple consumers attempting to read the same file in the same directory. In this case, the read locks will not function reliably. The idempotent read lock supports clustered reliably if you use a cluster aware idempotent repository implementation such as from <a shape="rect" href="hazelcast-component.html">Hazelcast Component</a> or <a shape="rect" href="infinispan.html">Infinispan</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockTimeout</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>10000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Optional timeout in milliseconds for the <strong><code>readLock</code></strong>, if supported. If the read-lock coul
 d not be granted and the timeout triggered, then Camel will skip the file. At next poll Camel, will try the file again, and this time maybe the read-lock could be granted. Use a value of&#160;<strong><code>0</code></strong> or lower to indicate forever. In <strong>Camel 2.0</strong> the default value is <strong><code>0</code></strong>. Starting with <strong>Camel 2.1</strong> the default value is <strong><code>10000</code></strong>. Currently <strong><code>fileLock</code>, </strong><code>changed</code> and <strong><code>rename</code></strong> support the timeout.</p><p><strong>Note:</strong> for <a shape="rect" href="ftp2.html">FTP</a> the default <strong><code>readLockTimeout</code></strong> value is <strong><code>20000</code></strong> instead of <strong><code>10000</code></strong>. The&#160;<strong><code>readLockTimeout</code></strong> value must be higher than <strong><code>readLockCheckInterval</code></strong>, but a rule of thumb is to have a timeout that is at least 2 or more 
 times higher than the <strong><code>readLockCheckInterval</code></strong>. This is needed to ensure that ample time is allowed for the read lock process to try to grab the lock before the timeout was hit.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockCheckInterval</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6:</strong> Interval in milliseconds for the read-lock, if supported by the read lock. This interval is used for sleeping between attempts to acquire the read lock. For example when using the <code>changed</code> read lock, you can set a higher interval period to cater for <em>slow writes</em>. The default of 1 sec. may be <em>too fast</em> if the producer is very slow writing the file. For <a shape="rect" href="ftp2.html">FTP</a> the default <strong><code>readLockCheckInterval</code></strong> is <strong><code>5000</code></stron
 g>. <span>The&#160;<strong><code>readLockTimeout</code></strong> value must be higher than&#160;<strong><code>readLockCheckInterval</code></strong>, but a rule of thumb is to have a timeout that is at least 2 or more times higher than the&#160;<strong><code>readLockCheckInterval</code></strong>. This is needed to ensure that ample time is allowed for the read lock process to try to grab the lock before the timeout was hit.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockMinLength</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10.1:</strong> This option applied only for <strong><code>readLock=changed</code></strong>. This option allows you to configure a minimum file length. By default Camel expects the file to contain data, and thus the default value is <strong>1</strong>. You can set this option to zero, to allow consuming zero-len
 gth files.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockMinAge</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.15</strong>: This option applies only to <strong><code>readLock=change</code></strong>. This option allows you to specify a minimum age a file must be before attempting to acquire the read lock. For example, use&#160;<strong><code>readLockMinAge=300s</code></strong> to require that the file is at least 5 minutes old. This can speedup the poll when the file is old enough as it will acquire the read lock immediately. Notice for FTP: file timestamps reported by FTP servers are often reported with resolution of minutes, so&#160;<strong><code>readLockMinAge</code></strong> parameter should be defined in minutes, e.g. <strong>60000</strong> for 1 minute. Notice that Camel supports specifying this as <strong><code>60s</code></strong>, 
 or <strong><code>1m</code></strong>, etc.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockLoggingLevel</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>WARN</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> Logging level used when a read lock could not be acquired. By default a&#160;<strong><code>WARN</code></strong> is logged. You can change this level, for example to OFF to not have any logging.</p><p>This option is only applicable for the <strong><code>readLock</code></strong> types:</p> 
       <ul><li><strong><code>changed</code></strong></li><li><strong><code>fileLock</code></strong></li><li><strong><code>rename</code></strong></li></ul></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockMarkerFile</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.14:</strong> Whether to use marker file with the <strong><code>changed</code>, <code>rename</code></strong>, or <strong><code>exclusive</code></strong> read lock types. By default a marker file is used as well to guard against other processes picking up the same files. This behavior can be turned off by setting this option to <strong><code>false</code></strong>. For example if you do not want to write marker files to the file systems by the Camel application.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockRemoveOnRollback</code></p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> This option applied only for <strong><code>readLock=idempotent</code></strong>. This option allows to specify whether to remove the file name entry from the idempotent repository when processing the file failed and a rollback happens. If this option is false, then the file name entry is confirmed (as if the file did a commit).</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span>readLockRemoveOnCommit</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong><span> This option applied only for <strong><code>readLock=idempotent</code></strong>. This option allows to specify whether to remove the file name entry from the idempotent repository when processing the file succeeded and a commit happens. By defa
 ult the file is not removed which ensures that any race-condition do not occur so another active node may attempt to grab the file. Instead the idempotent repository may support eviction strategies that you can configure to evict the file name entry after X minutes - this ensures no problems with race conditions.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>readLockDeleteOrphanLockFiles</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> Whether or not read lock with marker files should upon startup delete any orphan read lock files, which may have been left on the file system, if Camel was not properly shutdown (such as a JVM crash). If turning this option to false then any orphaned lock file will cause Camel to not attempt to pickup that file, this could also be due another node is concurrently reading files from the same sh
 ared directory.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>directoryMustExist</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> Similar to <strong><code>startingDirectoryMustExist</code></strong> but this applies during polling recursive sub directories.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>doneFileName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6:</strong> If provided, Camel will only consume files if a <em>done</em> file exists. This option configures what file name to use. Either you can specify a fixed name. Or you can use dynamic placeholders. The <em>done</em> file is <strong>always</strong> expected in the same folder as the original file. See <em>using done file</em> a
 nd <em>writing done file</em> sections for examples.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>exclusiveReadLockStrategy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Pluggable read-lock as a <strong><code>org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy</code></strong> implementation.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxMessagesPerPoll</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>An integer to define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g.&#160;<strong><code>1000</code></strong> to avoid when starting up the server that there are thousands of files. Set a value of&#160;<strong><code>0</code></strong> or negative to disable it. See mo
 re details at <a shape="rect" href="batch-consumer.html">Batch Consumer</a>.</p><p><strong>Notice:</strong> If this option is in use then the <a shape="rect" href="file2.html">File</a> and <a shape="rect" href="ftp2.html">FTP</a> components will limit <strong>before</strong> any sorting. For example if you have 100000 files and use <strong><code>maxMessagesPerPoll=500</code></strong>, then only the first 500 files will be picked up, and then sorted. You can use the <strong><code>eagerMaxMessagesPerPoll</code></strong> option and set this to <strong><code>false</code></strong> to allow to scan all files first and then sort afterwards.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>eagerMaxMessagesPerPoll</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.3:</strong> Allows for controlling whether the limit from <strong><code>maxMessagesPerPoll</c
 ode></strong> is eager or not. If eager then the limit is during the scanning of files. Where as <code>false</code> would scan all files, and then perform sorting. Setting this option to <code>false</code> allows for sorting all files first, and then limit the poll. Mind that this requires a higher memory usage as all file details are in memory to perform the sorting.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>minDepth</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8</strong>: The minimum depth to start processing when recursively processing a directory. Using <strong><code>minDepth=1</code></strong> means the base directory. Using <strong><code>minDepth=2</code></strong> means the first sub directory.</p><p>This option is supported by <a shape="rect" href="ftp2.html">FTP</a> consumer from <strong>Camel 2.8.2, 2.9</strong> onward.</p></td></tr><tr><td col
 span="1" rowspan="1" class="confluenceTd"><p><code>maxDepth</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>Integer.MAX_VALUE</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> The maximum depth to traverse when recursively processing a directory. This option is supported by <a shape="rect" href="ftp2.html">FTP</a> consumer from <strong>Camel 2.8.2, 2.9</strong> onward.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>processStrategy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A pluggable <strong><code>org.apache.camel.component.file.GenericFileProcessStrategy</code></strong> allowing you to implement your own <strong><code>readLock</code></strong> option or similar. Can also be used when special conditions must be met before a file can be consumed, such as a special <em>ready</em> file exi
 sts. If this option is set then the <strong><code>readLock</code></strong> option does not apply.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>startingDirectoryMustExist</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> Whether the starting directory must exist. Mind that the <strong><code>autoCreate</code></strong> option is default enabled, which means the starting directory is normally auto created if it doesn't exist. You can disable <strong><code>autoCreate</code></strong> and enable this to ensure the starting directory must exist. Will thrown an exception if the directory doesn't exist.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>pollStrategy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A pluggab
 le <strong><code>org.apache.camel.spi.PollingConsumerPollStrategy</code></strong> allowing you to provide your custom implementation to control error handling that may occur during the <strong><code>poll</code></strong> operation but <em>before</em> an <a shape="rect" href="exchange.html">Exchange</a> has been created and routed by Camel. In other words the error occurred while the polling was gathering information e.g., access to a file network failed so Camel cannot access it to scan for files.</p><p>The default implementation will log the caused exception at <strong><code>WARN</code></strong> level and ignore it.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>sendEmptyMessageWhenIdle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> If the polling consumer did not poll any files, you can enable this option to send an empty message
  (no body) instead.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>consumer.bridgeErrorHandler</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> Allows for bridging the consumer to the Camel routing <a shape="rect" href="error-handler.html">Error Handler</a>, which mean any exceptions occurred while trying to pickup files, or the likes, will now be processed as a message and handled by the routing <a shape="rect" href="error-handler.html">Error Handler</a>. By default the consumer will use the <strong><code>org.apache.camel.spi.ExceptionHandler</code></strong> to deal with exceptions, that by default will be logged at <strong><code>WARN</code></strong>/<strong><code>ERROR</code></strong> level and ignored. See the following section for more details: <em>How to use the Camel error handler to deal with exceptions triggered outside the
  routing engine</em>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>scheduledExecutorService</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. This option allows you to share a thread pool among multiple file consumers.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>scheduler</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> To use a custom scheduler to trigger the consumer to run. See more details at <a shape="rect" href="polling-consumer.html">Polling Consumer</a>, for example there is a <a shape="rect" href="quartz2.html">Quartz2</a>, and <a
  shape="rect" href="spring.html">Spring</a> based scheduler that supports CRON expressions.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>backoffMultiplier</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then <strong><code>backoffIdleThreshold</code></strong> and/or <strong><code>backoffErrorThreshold</code></strong> must also be configured.</p><p>For more details see: <a shape="rect" href="polling-consumer.html">Polling Consumer</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>backoffIdleThreshold</code></p></td><td colspan="1" rowspan="1" class="confluen
 ceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> The number of subsequent idle polls that should happen before the <strong><code>backoffMultipler</code></strong> should kick-in.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>backoffErrorThreshold</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> The number of subsequent error polls (failed due some error) that should happen before the <strong><code>backoffMultipler</code></strong> should kick-in.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>onCompletionExceptionHandler</code></p></td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> To use a custom <strong><code>org.apache.camel.spi.ExceptionHandler</code
 ></strong> to handle any thrown exceptions that happens during the file on completion process where the consumer does either a commit or rollback. The default implementation will log any exception at&#160;<strong><code>WARN</code></strong> level and ignore.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>probeContentType</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.17:</strong> Whether to enable probing of the content type. If enable then the consumer uses <code><strong>Files#probeContentType</strong>(<strong>java.nio.file.Path</strong>)</code> to determine the content-type of the file, and store that as a header with key <strong><code>Exchange#FILE_CONTENT_TYPE</code></strong> on the Message.</p><p><strong>Camel 2.15</strong>-<strong>2.16.x</strong> the default is true.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ex
 tendedAttributes</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.17</strong>: To enable gathering extended file attributes through&#160;<strong><code>java.nio.file.attribute</code></strong> classes using&#160;<strong><code>Files.getAttribute(ava.nio.file.Path, java.lang.String attribute)</code></strong> or&#160;<strong><code>Files.readAttributes(ava.nio.file.Path, java.lang.String attributes)</code></strong> depending on the option value. This option supports a comma delimited list of attributes to collect e.g., <strong><code>basic:creationTime</code></strong>,&#160;<strong><code>posix:group</code></strong> or simple wildcard e.g.,&#160;<strong><code>posix:*</code></strong>. If the attribute name is not prefixed, the basic attributes are queried. The result is stored as a header with key&#160;<strong><code>CamelFileExtendedAttributes</code></strong> and it is of type&#160;<strong><code>Map&l
 t;String, Object&gt;</code></strong> where the key is the name of the attribute e.g.,&#160;<strong><code>posix:group</code></strong> and the value is the attributed returned by the call to&#160;<strong><code>Files.getAttribute()</code></strong> or <strong><code>Files.readAttributes</code></strong>.</p></td></tr></tbody></table> 
  </div>
 </div><h4 id="BookInOnePage-Defaultbehaviorforfileconsumer">Default behavior for file consumer</h4><ul><li><p>By default the file is <strong>not</strong> locked for the duration of the processing.</p></li><li><p>After the route has completed, files are moved into the<strong><code> .camel</code></strong> subdirectory, so that they appear to be deleted.</p></li><li><p>The File Consumer will always skip any file whose name starts with a dot, such as <strong><code>.</code></strong>, <strong><code>.camel</code></strong>, <strong><code>.m2</code></strong> or <strong><code>.groovy</code>.</strong></p></li><li><p>Only files (not directories) are matched for valid filename, if options such as: <strong><code>include</code></strong> or <strong><code>exclude</code></strong> are used.</p></li></ul><h4 id="BookInOnePage-Producer">Producer</h4><div class="confluenceTableSmall">

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