| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.camel.builder.endpoint.dsl; |
| |
| import java.util.Comparator; |
| import java.util.Map; |
| import java.util.concurrent.ScheduledExecutorService; |
| import java.util.concurrent.TimeUnit; |
| import javax.annotation.Generated; |
| import org.apache.camel.Exchange; |
| import org.apache.camel.ExchangePattern; |
| import org.apache.camel.Expression; |
| import org.apache.camel.LoggingLevel; |
| import org.apache.camel.Predicate; |
| import org.apache.camel.builder.EndpointConsumerBuilder; |
| import org.apache.camel.builder.EndpointProducerBuilder; |
| import org.apache.camel.builder.endpoint.AbstractEndpointBuilder; |
| import org.apache.camel.spi.ExceptionHandler; |
| import org.apache.camel.spi.IdempotentRepository; |
| import org.apache.camel.spi.PollingConsumerPollStrategy; |
| |
| /** |
| * The file component is used for reading or writing files. |
| * |
| * Generated by camel-package-maven-plugin - do not edit this file! |
| */ |
| @Generated("org.apache.camel.maven.packaging.EndpointDslMojo") |
| public interface FileEndpointBuilderFactory { |
| |
| |
| /** |
| * Builder for endpoint consumers for the File component. |
| */ |
| public interface FileEndpointConsumerBuilder |
| extends |
| EndpointConsumerBuilder { |
| default AdvancedFileEndpointConsumerBuilder advanced() { |
| return (AdvancedFileEndpointConsumerBuilder) this; |
| } |
| /** |
| * This option is used to specify the encoding of the file. You can use |
| * this on the consumer, to specify the encodings of the files, which |
| * allow Camel to know the charset it should load the file content in |
| * case the file content is being accessed. Likewise when writing a |
| * file, you can use this option to specify which charset to write the |
| * file as well. Do mind that when writing the file Camel may have to |
| * read the message content into memory to be able to convert the data |
| * into the configured charset, so do not use this if you have big |
| * messages. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointConsumerBuilder charset(String charset) { |
| doSetProperty("charset", charset); |
| return this; |
| } |
| /** |
| * Producer: If provided, then Camel will write a 2nd done file when the |
| * original file has been written. The done file will be empty. This |
| * option configures what file name to use. Either you can specify a |
| * fixed name. Or you can use dynamic placeholders. The done file will |
| * always be written in the same folder as the original file. Consumer: |
| * If provided, Camel will only consume files if a done file exists. |
| * This option configures what file name to use. Either you can specify |
| * a fixed name. Or you can use dynamic placeholders.The done file is |
| * always expected in the same folder as the original file. Only |
| * ${file.name} and ${file.name.noext} is supported as dynamic |
| * placeholders. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointConsumerBuilder doneFileName(String doneFileName) { |
| doSetProperty("doneFileName", doneFileName); |
| return this; |
| } |
| /** |
| * Use Expression such as File Language to dynamically set the filename. |
| * For consumers, it's used as a filename filter. For producers, it's |
| * used to evaluate the filename to write. If an expression is set, it |
| * take precedence over the CamelFileName header. (Note: The header |
| * itself can also be an Expression). The expression options support |
| * both String and Expression types. If the expression is a String type, |
| * it is always evaluated using the File Language. If the expression is |
| * an Expression type, the specified Expression type is used - this |
| * allows you, for instance, to use OGNL expressions. For the consumer, |
| * you can use it to filter filenames, so you can for instance consume |
| * today's file using the File Language syntax: |
| * mydata-${date:now:yyyyMMdd}.txt. The producers support the |
| * CamelOverruleFileName header which takes precedence over any existing |
| * CamelFileName header; the CamelOverruleFileName is a header that is |
| * used only once, and makes it easier as this avoids to temporary store |
| * CamelFileName and have to restore it afterwards. |
| * |
| * The option is a: <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointConsumerBuilder fileName(Expression fileName) { |
| doSetProperty("fileName", fileName); |
| return this; |
| } |
| /** |
| * Use Expression such as File Language to dynamically set the filename. |
| * For consumers, it's used as a filename filter. For producers, it's |
| * used to evaluate the filename to write. If an expression is set, it |
| * take precedence over the CamelFileName header. (Note: The header |
| * itself can also be an Expression). The expression options support |
| * both String and Expression types. If the expression is a String type, |
| * it is always evaluated using the File Language. If the expression is |
| * an Expression type, the specified Expression type is used - this |
| * allows you, for instance, to use OGNL expressions. For the consumer, |
| * you can use it to filter filenames, so you can for instance consume |
| * today's file using the File Language syntax: |
| * mydata-${date:now:yyyyMMdd}.txt. The producers support the |
| * CamelOverruleFileName header which takes precedence over any existing |
| * CamelFileName header; the CamelOverruleFileName is a header that is |
| * used only once, and makes it easier as this avoids to temporary store |
| * CamelFileName and have to restore it afterwards. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointConsumerBuilder fileName(String fileName) { |
| doSetProperty("fileName", fileName); |
| return this; |
| } |
| /** |
| * Allows for bridging the consumer to the Camel routing Error Handler, |
| * which mean any exceptions occurred while the consumer is trying to |
| * pickup incoming messages, or the likes, will now be processed as a |
| * message and handled by the routing Error Handler. By default the |
| * consumer will use the org.apache.camel.spi.ExceptionHandler to deal |
| * with exceptions, that will be logged at WARN or ERROR level and |
| * ignored. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder bridgeErrorHandler( |
| boolean bridgeErrorHandler) { |
| doSetProperty("bridgeErrorHandler", bridgeErrorHandler); |
| return this; |
| } |
| /** |
| * Allows for bridging the consumer to the Camel routing Error Handler, |
| * which mean any exceptions occurred while the consumer is trying to |
| * pickup incoming messages, or the likes, will now be processed as a |
| * message and handled by the routing Error Handler. By default the |
| * consumer will use the org.apache.camel.spi.ExceptionHandler to deal |
| * with exceptions, that will be logged at WARN or ERROR level and |
| * ignored. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder bridgeErrorHandler( |
| String bridgeErrorHandler) { |
| doSetProperty("bridgeErrorHandler", bridgeErrorHandler); |
| return this; |
| } |
| /** |
| * If true, the file will be deleted after it is processed successfully. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder delete(boolean delete) { |
| doSetProperty("delete", delete); |
| return this; |
| } |
| /** |
| * If true, the file will be deleted after it is processed successfully. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder delete(String delete) { |
| doSetProperty("delete", delete); |
| return this; |
| } |
| /** |
| * Sets the move failure expression based on Simple language. For |
| * example, to move files into a .error subdirectory use: .error. Note: |
| * When moving the files to the fail location Camel will handle the |
| * error and will not pick up the file again. |
| * |
| * The option is a: <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder moveFailed(Expression moveFailed) { |
| doSetProperty("moveFailed", moveFailed); |
| return this; |
| } |
| /** |
| * Sets the move failure expression based on Simple language. For |
| * example, to move files into a .error subdirectory use: .error. Note: |
| * When moving the files to the fail location Camel will handle the |
| * error and will not pick up the file again. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder moveFailed(String moveFailed) { |
| doSetProperty("moveFailed", moveFailed); |
| return this; |
| } |
| /** |
| * If true, the file is not moved or deleted in any way. This option is |
| * good for readonly data, or for ETL type requirements. If noop=true, |
| * Camel will set idempotent=true as well, to avoid consuming the same |
| * files over and over again. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder noop(boolean noop) { |
| doSetProperty("noop", noop); |
| return this; |
| } |
| /** |
| * If true, the file is not moved or deleted in any way. This option is |
| * good for readonly data, or for ETL type requirements. If noop=true, |
| * Camel will set idempotent=true as well, to avoid consuming the same |
| * files over and over again. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder noop(String noop) { |
| doSetProperty("noop", noop); |
| return this; |
| } |
| /** |
| * Expression (such as File Language) used to dynamically set the |
| * filename when moving it before processing. For example to move |
| * in-progress files into the order directory set this value to order. |
| * |
| * The option is a: <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder preMove(Expression preMove) { |
| doSetProperty("preMove", preMove); |
| return this; |
| } |
| /** |
| * Expression (such as File Language) used to dynamically set the |
| * filename when moving it before processing. For example to move |
| * in-progress files into the order directory set this value to order. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder preMove(String preMove) { |
| doSetProperty("preMove", preMove); |
| return this; |
| } |
| /** |
| * When pre-sort is enabled then the consumer will sort the file and |
| * directory names during polling, that was retrieved from the file |
| * system. You may want to do this in case you need to operate on the |
| * files in a sorted order. The pre-sort is executed before the consumer |
| * starts to filter, and accept files to process by Camel. This option |
| * is default=false meaning disabled. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder preSort(boolean preSort) { |
| doSetProperty("preSort", preSort); |
| return this; |
| } |
| /** |
| * When pre-sort is enabled then the consumer will sort the file and |
| * directory names during polling, that was retrieved from the file |
| * system. You may want to do this in case you need to operate on the |
| * files in a sorted order. The pre-sort is executed before the consumer |
| * starts to filter, and accept files to process by Camel. This option |
| * is default=false meaning disabled. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder preSort(String preSort) { |
| doSetProperty("preSort", preSort); |
| return this; |
| } |
| /** |
| * If a directory, will look for files in all the sub-directories as |
| * well. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder recursive(boolean recursive) { |
| doSetProperty("recursive", recursive); |
| return this; |
| } |
| /** |
| * If a directory, will look for files in all the sub-directories as |
| * well. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder recursive(String recursive) { |
| doSetProperty("recursive", recursive); |
| return this; |
| } |
| /** |
| * If the polling consumer did not poll any files, you can enable this |
| * option to send an empty message (no body) instead. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder sendEmptyMessageWhenIdle( |
| boolean sendEmptyMessageWhenIdle) { |
| doSetProperty("sendEmptyMessageWhenIdle", sendEmptyMessageWhenIdle); |
| return this; |
| } |
| /** |
| * If the polling consumer did not poll any files, you can enable this |
| * option to send an empty message (no body) instead. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: consumer |
| */ |
| default FileEndpointConsumerBuilder sendEmptyMessageWhenIdle( |
| String sendEmptyMessageWhenIdle) { |
| doSetProperty("sendEmptyMessageWhenIdle", sendEmptyMessageWhenIdle); |
| return this; |
| } |
| /** |
| * Ant style filter exclusion. If both antInclude and antExclude are |
| * used, antExclude takes precedence over antInclude. Multiple |
| * exclusions may be specified in comma-delimited format. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder antExclude(String antExclude) { |
| doSetProperty("antExclude", antExclude); |
| return this; |
| } |
| /** |
| * Sets case sensitive flag on ant filter. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder antFilterCaseSensitive( |
| boolean antFilterCaseSensitive) { |
| doSetProperty("antFilterCaseSensitive", antFilterCaseSensitive); |
| return this; |
| } |
| /** |
| * Sets case sensitive flag on ant filter. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder antFilterCaseSensitive( |
| String antFilterCaseSensitive) { |
| doSetProperty("antFilterCaseSensitive", antFilterCaseSensitive); |
| return this; |
| } |
| /** |
| * Ant style filter inclusion. Multiple inclusions may be specified in |
| * comma-delimited format. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder antInclude(String antInclude) { |
| doSetProperty("antInclude", antInclude); |
| return this; |
| } |
| /** |
| * Allows for controlling whether the limit from maxMessagesPerPoll is |
| * eager or not. If eager then the limit is during the scanning of |
| * files. Where as false would scan all files, and then perform sorting. |
| * Setting this option to false 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. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder eagerMaxMessagesPerPoll( |
| boolean eagerMaxMessagesPerPoll) { |
| doSetProperty("eagerMaxMessagesPerPoll", eagerMaxMessagesPerPoll); |
| return this; |
| } |
| /** |
| * Allows for controlling whether the limit from maxMessagesPerPoll is |
| * eager or not. If eager then the limit is during the scanning of |
| * files. Where as false would scan all files, and then perform sorting. |
| * Setting this option to false 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. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder eagerMaxMessagesPerPoll( |
| String eagerMaxMessagesPerPoll) { |
| doSetProperty("eagerMaxMessagesPerPoll", eagerMaxMessagesPerPoll); |
| return this; |
| } |
| /** |
| * Is used to exclude files, if filename matches the regex pattern |
| * (matching is case in-senstive). Notice if you use symbols such as |
| * plus sign and others you would need to configure this using the RAW() |
| * syntax if configuring this as an endpoint uri. See more details at |
| * configuring endpoint uris. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder exclude(String exclude) { |
| doSetProperty("exclude", exclude); |
| return this; |
| } |
| /** |
| * Pluggable filter as a |
| * org.apache.camel.component.file.GenericFileFilter class. Will skip |
| * files if filter returns false in its accept() method. |
| * |
| * The option is a: |
| * <code>org.apache.camel.component.file.GenericFileFilter<java.io.File></code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder filter(Object filter) { |
| doSetProperty("filter", filter); |
| return this; |
| } |
| /** |
| * Pluggable filter as a |
| * org.apache.camel.component.file.GenericFileFilter class. Will skip |
| * files if filter returns false in its accept() method. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.component.file.GenericFileFilter<java.io.File></code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder filter(String filter) { |
| doSetProperty("filter", filter); |
| return this; |
| } |
| /** |
| * Filters the directory based on Simple language. For example to filter |
| * on current date, you can use a simple date pattern such as |
| * ${date:now:yyyMMdd}. |
| * |
| * The option is a: <code>org.apache.camel.Predicate</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder filterDirectory( |
| Predicate filterDirectory) { |
| doSetProperty("filterDirectory", filterDirectory); |
| return this; |
| } |
| /** |
| * Filters the directory based on Simple language. For example to filter |
| * on current date, you can use a simple date pattern such as |
| * ${date:now:yyyMMdd}. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Predicate</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder filterDirectory( |
| String filterDirectory) { |
| doSetProperty("filterDirectory", filterDirectory); |
| return this; |
| } |
| /** |
| * Filters the file based on Simple language. For example to filter on |
| * file size, you can use ${file:size} 5000. |
| * |
| * The option is a: <code>org.apache.camel.Predicate</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder filterFile(Predicate filterFile) { |
| doSetProperty("filterFile", filterFile); |
| return this; |
| } |
| /** |
| * Filters the file based on Simple language. For example to filter on |
| * file size, you can use ${file:size} 5000. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Predicate</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder filterFile(String filterFile) { |
| doSetProperty("filterFile", filterFile); |
| return this; |
| } |
| /** |
| * Option to use the Idempotent Consumer EIP pattern to let Camel skip |
| * already processed files. Will by default use a memory based LRUCache |
| * that holds 1000 entries. If noop=true then idempotent will be enabled |
| * as well to avoid consuming the same files over and over again. |
| * |
| * The option is a: <code>java.lang.Boolean</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder idempotent(Boolean idempotent) { |
| doSetProperty("idempotent", idempotent); |
| return this; |
| } |
| /** |
| * Option to use the Idempotent Consumer EIP pattern to let Camel skip |
| * already processed files. Will by default use a memory based LRUCache |
| * that holds 1000 entries. If noop=true then idempotent will be enabled |
| * as well to avoid consuming the same files over and over again. |
| * |
| * The option will be converted to a <code>java.lang.Boolean</code> |
| * type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder idempotent(String idempotent) { |
| doSetProperty("idempotent", idempotent); |
| return this; |
| } |
| /** |
| * To use a custom idempotent key. By default the absolute path of the |
| * file is used. You can use the File Language, for example to use the |
| * file name and file size, you can do: |
| * idempotentKey=${file:name}-${file:size}. |
| * |
| * The option is a: <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder idempotentKey( |
| Expression idempotentKey) { |
| doSetProperty("idempotentKey", idempotentKey); |
| return this; |
| } |
| /** |
| * To use a custom idempotent key. By default the absolute path of the |
| * file is used. You can use the File Language, for example to use the |
| * file name and file size, you can do: |
| * idempotentKey=${file:name}-${file:size}. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder idempotentKey(String idempotentKey) { |
| doSetProperty("idempotentKey", idempotentKey); |
| return this; |
| } |
| /** |
| * A pluggable repository org.apache.camel.spi.IdempotentRepository |
| * which by default use MemoryMessageIdRepository if none is specified |
| * and idempotent is true. |
| * |
| * The option is a: |
| * <code>org.apache.camel.spi.IdempotentRepository</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder idempotentRepository( |
| IdempotentRepository idempotentRepository) { |
| doSetProperty("idempotentRepository", idempotentRepository); |
| return this; |
| } |
| /** |
| * A pluggable repository org.apache.camel.spi.IdempotentRepository |
| * which by default use MemoryMessageIdRepository if none is specified |
| * and idempotent is true. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.spi.IdempotentRepository</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder idempotentRepository( |
| String idempotentRepository) { |
| doSetProperty("idempotentRepository", idempotentRepository); |
| return this; |
| } |
| /** |
| * Is used to include files, if filename matches the regex pattern |
| * (matching is case in-sensitive). Notice if you use symbols such as |
| * plus sign and others you would need to configure this using the RAW() |
| * syntax if configuring this as an endpoint uri. See more details at |
| * configuring endpoint uris. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder include(String include) { |
| doSetProperty("include", include); |
| return this; |
| } |
| /** |
| * The maximum depth to traverse when recursively processing a |
| * directory. |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder maxDepth(int maxDepth) { |
| doSetProperty("maxDepth", maxDepth); |
| return this; |
| } |
| /** |
| * The maximum depth to traverse when recursively processing a |
| * directory. |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder maxDepth(String maxDepth) { |
| doSetProperty("maxDepth", maxDepth); |
| return this; |
| } |
| /** |
| * 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. 1000 to avoid when |
| * starting up the server that there are thousands of files. Set a value |
| * of 0 or negative to disabled it. Notice: If this option is in use |
| * then the File and FTP components will limit before any sorting. For |
| * example if you have 100000 files and use maxMessagesPerPoll=500, then |
| * only the first 500 files will be picked up, and then sorted. You can |
| * use the eagerMaxMessagesPerPoll option and set this to false to allow |
| * to scan all files first and then sort afterwards. |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder maxMessagesPerPoll( |
| int maxMessagesPerPoll) { |
| doSetProperty("maxMessagesPerPoll", maxMessagesPerPoll); |
| return this; |
| } |
| /** |
| * 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. 1000 to avoid when |
| * starting up the server that there are thousands of files. Set a value |
| * of 0 or negative to disabled it. Notice: If this option is in use |
| * then the File and FTP components will limit before any sorting. For |
| * example if you have 100000 files and use maxMessagesPerPoll=500, then |
| * only the first 500 files will be picked up, and then sorted. You can |
| * use the eagerMaxMessagesPerPoll option and set this to false to allow |
| * to scan all files first and then sort afterwards. |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder maxMessagesPerPoll( |
| String maxMessagesPerPoll) { |
| doSetProperty("maxMessagesPerPoll", maxMessagesPerPoll); |
| return this; |
| } |
| /** |
| * The minimum depth to start processing when recursively processing a |
| * directory. Using minDepth=1 means the base directory. Using |
| * minDepth=2 means the first sub directory. |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder minDepth(int minDepth) { |
| doSetProperty("minDepth", minDepth); |
| return this; |
| } |
| /** |
| * The minimum depth to start processing when recursively processing a |
| * directory. Using minDepth=1 means the base directory. Using |
| * minDepth=2 means the first sub directory. |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder minDepth(String minDepth) { |
| doSetProperty("minDepth", minDepth); |
| return this; |
| } |
| /** |
| * Expression (such as Simple Language) used to dynamically set the |
| * filename when moving it after processing. To move files into a .done |
| * subdirectory just enter .done. |
| * |
| * The option is a: <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder move(Expression move) { |
| doSetProperty("move", move); |
| return this; |
| } |
| /** |
| * Expression (such as Simple Language) used to dynamically set the |
| * filename when moving it after processing. To move files into a .done |
| * subdirectory just enter .done. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: filter |
| */ |
| default FileEndpointConsumerBuilder move(String move) { |
| doSetProperty("move", move); |
| return this; |
| } |
| /** |
| * Pluggable read-lock as a |
| * org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy |
| * implementation. |
| * |
| * The option is a: |
| * <code>org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy<java.io.File></code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder exclusiveReadLockStrategy( |
| Object exclusiveReadLockStrategy) { |
| doSetProperty("exclusiveReadLockStrategy", exclusiveReadLockStrategy); |
| return this; |
| } |
| /** |
| * Pluggable read-lock as a |
| * org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy |
| * implementation. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy<java.io.File></code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder exclusiveReadLockStrategy( |
| String exclusiveReadLockStrategy) { |
| doSetProperty("exclusiveReadLockStrategy", exclusiveReadLockStrategy); |
| return this; |
| } |
| /** |
| * Used by consumer, to only poll the files if it has exclusive |
| * read-lock on the file (i.e. the file is not in-progress or being |
| * written). Camel will wait until the file lock is granted. This option |
| * provides the build in strategies: |
| * |
| * - none - No read lock is in use |
| * - markerFile - Camel creates a marker file (fileName.camelLock) and |
| * then holds a lock on it. This option is not available for the FTP |
| * component |
| * - changed - Changed 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 readLockCheckInterval can be used to set |
| * the check frequency. |
| * - fileLock - is for using java.nio.channels.FileLock. This option is |
| * not avail for Windows OS and the FTP component. This approach should |
| * be avoided when accessing a remote file system via a mount/share |
| * unless that file system supports distributed file locks. |
| * - rename - rename is for using a try to rename the file as a test if |
| * we can get exclusive read-lock. |
| * - idempotent - (only for file component) idempotent is for using a |
| * idempotentRepository as the read-lock. This allows to use read locks |
| * that supports clustering if the idempotent repository implementation |
| * supports that. |
| * - idempotent-changed - (only for file component) idempotent-changed |
| * is for using a idempotentRepository and changed as the combined |
| * read-lock. This allows to use read locks that supports clustering if |
| * the idempotent repository implementation supports that. |
| * - idempotent-rename - (only for file component) idempotent-rename is |
| * for using a idempotentRepository and rename as the combined |
| * read-lock. This allows to use read locks that supports clustering if |
| * the idempotent repository implementation supports that. |
| * |
| * Notice: The various read locks is not all suited to work in clustered |
| * mode, where concurrent consumers on different nodes is competing for |
| * the same files on a shared file system. The markerFile using a close |
| * to atomic operation to create the empty marker file, but its not |
| * guaranteed to work in a cluster. The fileLock may work better but |
| * then the file system need to support distributed file locks, and so |
| * on. Using the idempotent read lock can support clustering if the |
| * idempotent repository supports clustering, such as Hazelcast |
| * Component or Infinispan. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLock(String readLock) { |
| doSetProperty("readLock", readLock); |
| return this; |
| } |
| /** |
| * Interval in millis 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 changed read lock, you can set |
| * a higher interval period to cater for slow writes. The default of 1 |
| * sec. may be too fast if the producer is very slow writing the file. |
| * Notice: For FTP the default readLockCheckInterval is 5000. The |
| * readLockTimeout value must be higher than readLockCheckInterval, but |
| * a rule of thumb is to have a timeout that is at least 2 or more times |
| * higher than the readLockCheckInterval. This is needed to ensure that |
| * amble time is allowed for the read lock process to try to grab the |
| * lock before the timeout was hit. |
| * |
| * The option is a: <code>long</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockCheckInterval( |
| long readLockCheckInterval) { |
| doSetProperty("readLockCheckInterval", readLockCheckInterval); |
| return this; |
| } |
| /** |
| * Interval in millis 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 changed read lock, you can set |
| * a higher interval period to cater for slow writes. The default of 1 |
| * sec. may be too fast if the producer is very slow writing the file. |
| * Notice: For FTP the default readLockCheckInterval is 5000. The |
| * readLockTimeout value must be higher than readLockCheckInterval, but |
| * a rule of thumb is to have a timeout that is at least 2 or more times |
| * higher than the readLockCheckInterval. This is needed to ensure that |
| * amble time is allowed for the read lock process to try to grab the |
| * lock before the timeout was hit. |
| * |
| * The option will be converted to a <code>long</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockCheckInterval( |
| String readLockCheckInterval) { |
| doSetProperty("readLockCheckInterval", readLockCheckInterval); |
| return this; |
| } |
| /** |
| * 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 shared |
| * directory. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockDeleteOrphanLockFiles( |
| boolean readLockDeleteOrphanLockFiles) { |
| doSetProperty("readLockDeleteOrphanLockFiles", readLockDeleteOrphanLockFiles); |
| return this; |
| } |
| /** |
| * 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 shared |
| * directory. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockDeleteOrphanLockFiles( |
| String readLockDeleteOrphanLockFiles) { |
| doSetProperty("readLockDeleteOrphanLockFiles", readLockDeleteOrphanLockFiles); |
| return this; |
| } |
| /** |
| * Whether the delayed release task should be synchronous or |
| * asynchronous. See more details at the readLockIdempotentReleaseDelay |
| * option. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockIdempotentReleaseAsync( |
| boolean readLockIdempotentReleaseAsync) { |
| doSetProperty("readLockIdempotentReleaseAsync", readLockIdempotentReleaseAsync); |
| return this; |
| } |
| /** |
| * Whether the delayed release task should be synchronous or |
| * asynchronous. See more details at the readLockIdempotentReleaseDelay |
| * option. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockIdempotentReleaseAsync( |
| String readLockIdempotentReleaseAsync) { |
| doSetProperty("readLockIdempotentReleaseAsync", readLockIdempotentReleaseAsync); |
| return this; |
| } |
| /** |
| * The number of threads in the scheduled thread pool when using |
| * asynchronous release tasks. Using a default of 1 core threads should |
| * be sufficient in almost all use-cases, only set this to a higher |
| * value if either updating the idempotent repository is slow, or there |
| * are a lot of files to process. This option is not in-use if you use a |
| * shared thread pool by configuring the |
| * readLockIdempotentReleaseExecutorService option. See more details at |
| * the readLockIdempotentReleaseDelay option. |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockIdempotentReleaseAsyncPoolSize( |
| int readLockIdempotentReleaseAsyncPoolSize) { |
| doSetProperty("readLockIdempotentReleaseAsyncPoolSize", readLockIdempotentReleaseAsyncPoolSize); |
| return this; |
| } |
| /** |
| * The number of threads in the scheduled thread pool when using |
| * asynchronous release tasks. Using a default of 1 core threads should |
| * be sufficient in almost all use-cases, only set this to a higher |
| * value if either updating the idempotent repository is slow, or there |
| * are a lot of files to process. This option is not in-use if you use a |
| * shared thread pool by configuring the |
| * readLockIdempotentReleaseExecutorService option. See more details at |
| * the readLockIdempotentReleaseDelay option. |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockIdempotentReleaseAsyncPoolSize( |
| String readLockIdempotentReleaseAsyncPoolSize) { |
| doSetProperty("readLockIdempotentReleaseAsyncPoolSize", readLockIdempotentReleaseAsyncPoolSize); |
| return this; |
| } |
| /** |
| * Whether to delay the release task for a period of millis. This can be |
| * used to delay the release tasks to expand the window when a file is |
| * regarded as read-locked, in an active/active cluster scenario with a |
| * shared idempotent repository, to ensure other nodes cannot |
| * potentially scan and acquire the same file, due to race-conditions. |
| * By expanding the time-window of the release tasks helps prevents |
| * these situations. Note delaying is only needed if you have configured |
| * readLockRemoveOnCommit to true. |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockIdempotentReleaseDelay( |
| int readLockIdempotentReleaseDelay) { |
| doSetProperty("readLockIdempotentReleaseDelay", readLockIdempotentReleaseDelay); |
| return this; |
| } |
| /** |
| * Whether to delay the release task for a period of millis. This can be |
| * used to delay the release tasks to expand the window when a file is |
| * regarded as read-locked, in an active/active cluster scenario with a |
| * shared idempotent repository, to ensure other nodes cannot |
| * potentially scan and acquire the same file, due to race-conditions. |
| * By expanding the time-window of the release tasks helps prevents |
| * these situations. Note delaying is only needed if you have configured |
| * readLockRemoveOnCommit to true. |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockIdempotentReleaseDelay( |
| String readLockIdempotentReleaseDelay) { |
| doSetProperty("readLockIdempotentReleaseDelay", readLockIdempotentReleaseDelay); |
| return this; |
| } |
| /** |
| * To use a custom and shared thread pool for asynchronous release |
| * tasks. See more details at the readLockIdempotentReleaseDelay option. |
| * |
| * The option is a: |
| * <code>java.util.concurrent.ScheduledExecutorService</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockIdempotentReleaseExecutorService( |
| ScheduledExecutorService readLockIdempotentReleaseExecutorService) { |
| doSetProperty("readLockIdempotentReleaseExecutorService", readLockIdempotentReleaseExecutorService); |
| return this; |
| } |
| /** |
| * To use a custom and shared thread pool for asynchronous release |
| * tasks. See more details at the readLockIdempotentReleaseDelay option. |
| * |
| * The option will be converted to a |
| * <code>java.util.concurrent.ScheduledExecutorService</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockIdempotentReleaseExecutorService( |
| String readLockIdempotentReleaseExecutorService) { |
| doSetProperty("readLockIdempotentReleaseExecutorService", readLockIdempotentReleaseExecutorService); |
| return this; |
| } |
| /** |
| * Logging level used when a read lock could not be acquired. By default |
| * a DEBUG is logged. You can change this level, for example to OFF to |
| * not have any logging. This option is only applicable for readLock of |
| * types: changed, fileLock, idempotent, idempotent-changed, |
| * idempotent-rename, rename. |
| * |
| * The option is a: <code>org.apache.camel.LoggingLevel</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockLoggingLevel( |
| LoggingLevel readLockLoggingLevel) { |
| doSetProperty("readLockLoggingLevel", readLockLoggingLevel); |
| return this; |
| } |
| /** |
| * Logging level used when a read lock could not be acquired. By default |
| * a DEBUG is logged. You can change this level, for example to OFF to |
| * not have any logging. This option is only applicable for readLock of |
| * types: changed, fileLock, idempotent, idempotent-changed, |
| * idempotent-rename, rename. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.LoggingLevel</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockLoggingLevel( |
| String readLockLoggingLevel) { |
| doSetProperty("readLockLoggingLevel", readLockLoggingLevel); |
| return this; |
| } |
| /** |
| * Whether to use marker file with the changed, rename, or exclusive |
| * 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 false. For example if you do |
| * not want to write marker files to the file systems by the Camel |
| * application. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockMarkerFile( |
| boolean readLockMarkerFile) { |
| doSetProperty("readLockMarkerFile", readLockMarkerFile); |
| return this; |
| } |
| /** |
| * Whether to use marker file with the changed, rename, or exclusive |
| * 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 false. For example if you do |
| * not want to write marker files to the file systems by the Camel |
| * application. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockMarkerFile( |
| String readLockMarkerFile) { |
| doSetProperty("readLockMarkerFile", readLockMarkerFile); |
| return this; |
| } |
| /** |
| * This option is applied only for readLock=changed. It allows to |
| * specify a minimum age the file must be before attempting to acquire |
| * the read lock. For example use readLockMinAge=300s to require the |
| * file is at last 5 minutes old. This can speedup the changed read lock |
| * as it will only attempt to acquire files which are at least that |
| * given age. |
| * |
| * The option is a: <code>long</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockMinAge(long readLockMinAge) { |
| doSetProperty("readLockMinAge", readLockMinAge); |
| return this; |
| } |
| /** |
| * This option is applied only for readLock=changed. It allows to |
| * specify a minimum age the file must be before attempting to acquire |
| * the read lock. For example use readLockMinAge=300s to require the |
| * file is at last 5 minutes old. This can speedup the changed read lock |
| * as it will only attempt to acquire files which are at least that |
| * given age. |
| * |
| * The option will be converted to a <code>long</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockMinAge(String readLockMinAge) { |
| doSetProperty("readLockMinAge", readLockMinAge); |
| return this; |
| } |
| /** |
| * This option is applied only for readLock=changed. It allows you to |
| * configure a minimum file length. By default Camel expects the file to |
| * contain data, and thus the default value is 1. You can set this |
| * option to zero, to allow consuming zero-length files. |
| * |
| * The option is a: <code>long</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockMinLength( |
| long readLockMinLength) { |
| doSetProperty("readLockMinLength", readLockMinLength); |
| return this; |
| } |
| /** |
| * This option is applied only for readLock=changed. It allows you to |
| * configure a minimum file length. By default Camel expects the file to |
| * contain data, and thus the default value is 1. You can set this |
| * option to zero, to allow consuming zero-length files. |
| * |
| * The option will be converted to a <code>long</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockMinLength( |
| String readLockMinLength) { |
| doSetProperty("readLockMinLength", readLockMinLength); |
| return this; |
| } |
| /** |
| * This option is applied only for readLock=idempotent. It allows to |
| * specify whether to remove the file name entry from the idempotent |
| * repository when processing the file is succeeded and a commit |
| * happens. By default 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. See more |
| * details at the readLockIdempotentReleaseDelay option. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockRemoveOnCommit( |
| boolean readLockRemoveOnCommit) { |
| doSetProperty("readLockRemoveOnCommit", readLockRemoveOnCommit); |
| return this; |
| } |
| /** |
| * This option is applied only for readLock=idempotent. It allows to |
| * specify whether to remove the file name entry from the idempotent |
| * repository when processing the file is succeeded and a commit |
| * happens. By default 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. See more |
| * details at the readLockIdempotentReleaseDelay option. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockRemoveOnCommit( |
| String readLockRemoveOnCommit) { |
| doSetProperty("readLockRemoveOnCommit", readLockRemoveOnCommit); |
| return this; |
| } |
| /** |
| * This option is applied only for readLock=idempotent. It 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). |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockRemoveOnRollback( |
| boolean readLockRemoveOnRollback) { |
| doSetProperty("readLockRemoveOnRollback", readLockRemoveOnRollback); |
| return this; |
| } |
| /** |
| * This option is applied only for readLock=idempotent. It 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). |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockRemoveOnRollback( |
| String readLockRemoveOnRollback) { |
| doSetProperty("readLockRemoveOnRollback", readLockRemoveOnRollback); |
| return this; |
| } |
| /** |
| * Optional timeout in millis for the read-lock, if supported by the |
| * read-lock. 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 0 or lower to indicate forever. Currently |
| * fileLock, changed and rename support the timeout. Notice: For FTP the |
| * default readLockTimeout value is 20000 instead of 10000. The |
| * readLockTimeout value must be higher than readLockCheckInterval, but |
| * a rule of thumb is to have a timeout that is at least 2 or more times |
| * higher than the readLockCheckInterval. This is needed to ensure that |
| * amble time is allowed for the read lock process to try to grab the |
| * lock before the timeout was hit. |
| * |
| * The option is a: <code>long</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockTimeout(long readLockTimeout) { |
| doSetProperty("readLockTimeout", readLockTimeout); |
| return this; |
| } |
| /** |
| * Optional timeout in millis for the read-lock, if supported by the |
| * read-lock. 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 0 or lower to indicate forever. Currently |
| * fileLock, changed and rename support the timeout. Notice: For FTP the |
| * default readLockTimeout value is 20000 instead of 10000. The |
| * readLockTimeout value must be higher than readLockCheckInterval, but |
| * a rule of thumb is to have a timeout that is at least 2 or more times |
| * higher than the readLockCheckInterval. This is needed to ensure that |
| * amble time is allowed for the read lock process to try to grab the |
| * lock before the timeout was hit. |
| * |
| * The option will be converted to a <code>long</code> type. |
| * |
| * Group: lock |
| */ |
| default FileEndpointConsumerBuilder readLockTimeout( |
| String readLockTimeout) { |
| doSetProperty("readLockTimeout", readLockTimeout); |
| return this; |
| } |
| /** |
| * The number of subsequent error polls (failed due some error) that |
| * should happen before the backoffMultipler should kick-in. |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder backoffErrorThreshold( |
| int backoffErrorThreshold) { |
| doSetProperty("backoffErrorThreshold", backoffErrorThreshold); |
| return this; |
| } |
| /** |
| * The number of subsequent error polls (failed due some error) that |
| * should happen before the backoffMultipler should kick-in. |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder backoffErrorThreshold( |
| String backoffErrorThreshold) { |
| doSetProperty("backoffErrorThreshold", backoffErrorThreshold); |
| return this; |
| } |
| /** |
| * The number of subsequent idle polls that should happen before the |
| * backoffMultipler should kick-in. |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder backoffIdleThreshold( |
| int backoffIdleThreshold) { |
| doSetProperty("backoffIdleThreshold", backoffIdleThreshold); |
| return this; |
| } |
| /** |
| * The number of subsequent idle polls that should happen before the |
| * backoffMultipler should kick-in. |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder backoffIdleThreshold( |
| String backoffIdleThreshold) { |
| doSetProperty("backoffIdleThreshold", backoffIdleThreshold); |
| return this; |
| } |
| /** |
| * 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 |
| * backoffIdleThreshold and/or backoffErrorThreshold must also be |
| * configured. |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder backoffMultiplier( |
| int backoffMultiplier) { |
| doSetProperty("backoffMultiplier", backoffMultiplier); |
| return this; |
| } |
| /** |
| * 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 |
| * backoffIdleThreshold and/or backoffErrorThreshold must also be |
| * configured. |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder backoffMultiplier( |
| String backoffMultiplier) { |
| doSetProperty("backoffMultiplier", backoffMultiplier); |
| return this; |
| } |
| /** |
| * Milliseconds before the next poll. You can also specify time values |
| * using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 |
| * seconds), and 1h (1 hour). |
| * |
| * The option is a: <code>long</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder delay(long delay) { |
| doSetProperty("delay", delay); |
| return this; |
| } |
| /** |
| * Milliseconds before the next poll. You can also specify time values |
| * using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 |
| * seconds), and 1h (1 hour). |
| * |
| * The option will be converted to a <code>long</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder delay(String delay) { |
| doSetProperty("delay", delay); |
| return this; |
| } |
| /** |
| * If greedy is enabled, then the ScheduledPollConsumer will run |
| * immediately again, if the previous run polled 1 or more messages. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder greedy(boolean greedy) { |
| doSetProperty("greedy", greedy); |
| return this; |
| } |
| /** |
| * If greedy is enabled, then the ScheduledPollConsumer will run |
| * immediately again, if the previous run polled 1 or more messages. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder greedy(String greedy) { |
| doSetProperty("greedy", greedy); |
| return this; |
| } |
| /** |
| * Milliseconds before the first poll starts. You can also specify time |
| * values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 |
| * seconds), and 1h (1 hour). |
| * |
| * The option is a: <code>long</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder initialDelay(long initialDelay) { |
| doSetProperty("initialDelay", initialDelay); |
| return this; |
| } |
| /** |
| * Milliseconds before the first poll starts. You can also specify time |
| * values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 |
| * seconds), and 1h (1 hour). |
| * |
| * The option will be converted to a <code>long</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder initialDelay(String initialDelay) { |
| doSetProperty("initialDelay", initialDelay); |
| return this; |
| } |
| /** |
| * Specifies a maximum limit of number of fires. So if you set it to 1, |
| * the scheduler will only fire once. If you set it to 5, it will only |
| * fire five times. A value of zero or negative means fire forever. |
| * |
| * The option is a: <code>long</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder repeatCount(long repeatCount) { |
| doSetProperty("repeatCount", repeatCount); |
| return this; |
| } |
| /** |
| * Specifies a maximum limit of number of fires. So if you set it to 1, |
| * the scheduler will only fire once. If you set it to 5, it will only |
| * fire five times. A value of zero or negative means fire forever. |
| * |
| * The option will be converted to a <code>long</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder repeatCount(String repeatCount) { |
| doSetProperty("repeatCount", repeatCount); |
| return this; |
| } |
| /** |
| * The consumer logs a start/complete log line when it polls. This |
| * option allows you to configure the logging level for that. |
| * |
| * The option is a: <code>org.apache.camel.LoggingLevel</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder runLoggingLevel( |
| LoggingLevel runLoggingLevel) { |
| doSetProperty("runLoggingLevel", runLoggingLevel); |
| return this; |
| } |
| /** |
| * The consumer logs a start/complete log line when it polls. This |
| * option allows you to configure the logging level for that. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.LoggingLevel</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder runLoggingLevel( |
| String runLoggingLevel) { |
| doSetProperty("runLoggingLevel", runLoggingLevel); |
| return this; |
| } |
| /** |
| * Allows for configuring a custom/shared thread pool to use for the |
| * consumer. By default each consumer has its own single threaded thread |
| * pool. |
| * |
| * The option is a: |
| * <code>java.util.concurrent.ScheduledExecutorService</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder scheduledExecutorService( |
| ScheduledExecutorService scheduledExecutorService) { |
| doSetProperty("scheduledExecutorService", scheduledExecutorService); |
| return this; |
| } |
| /** |
| * Allows for configuring a custom/shared thread pool to use for the |
| * consumer. By default each consumer has its own single threaded thread |
| * pool. |
| * |
| * The option will be converted to a |
| * <code>java.util.concurrent.ScheduledExecutorService</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder scheduledExecutorService( |
| String scheduledExecutorService) { |
| doSetProperty("scheduledExecutorService", scheduledExecutorService); |
| return this; |
| } |
| /** |
| * To use a cron scheduler from either camel-spring or camel-quartz |
| * component. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder scheduler(String scheduler) { |
| doSetProperty("scheduler", scheduler); |
| return this; |
| } |
| /** |
| * To configure additional properties when using a custom scheduler or |
| * any of the Quartz, Spring based scheduler. |
| * |
| * The option is a: <code>java.util.Map<java.lang.String, |
| * java.lang.Object></code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder schedulerProperties( |
| Map<String, Object> schedulerProperties) { |
| doSetProperty("schedulerProperties", schedulerProperties); |
| return this; |
| } |
| /** |
| * To configure additional properties when using a custom scheduler or |
| * any of the Quartz, Spring based scheduler. |
| * |
| * The option will be converted to a |
| * <code>java.util.Map<java.lang.String, java.lang.Object></code> |
| * type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder schedulerProperties( |
| String schedulerProperties) { |
| doSetProperty("schedulerProperties", schedulerProperties); |
| return this; |
| } |
| /** |
| * Whether the scheduler should be auto started. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder startScheduler( |
| boolean startScheduler) { |
| doSetProperty("startScheduler", startScheduler); |
| return this; |
| } |
| /** |
| * Whether the scheduler should be auto started. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder startScheduler(String startScheduler) { |
| doSetProperty("startScheduler", startScheduler); |
| return this; |
| } |
| /** |
| * Time unit for initialDelay and delay options. |
| * |
| * The option is a: <code>java.util.concurrent.TimeUnit</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder timeUnit(TimeUnit timeUnit) { |
| doSetProperty("timeUnit", timeUnit); |
| return this; |
| } |
| /** |
| * Time unit for initialDelay and delay options. |
| * |
| * The option will be converted to a |
| * <code>java.util.concurrent.TimeUnit</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder timeUnit(String timeUnit) { |
| doSetProperty("timeUnit", timeUnit); |
| return this; |
| } |
| /** |
| * Controls if fixed delay or fixed rate is used. See |
| * ScheduledExecutorService in JDK for details. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder useFixedDelay(boolean useFixedDelay) { |
| doSetProperty("useFixedDelay", useFixedDelay); |
| return this; |
| } |
| /** |
| * Controls if fixed delay or fixed rate is used. See |
| * ScheduledExecutorService in JDK for details. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: scheduler |
| */ |
| default FileEndpointConsumerBuilder useFixedDelay(String useFixedDelay) { |
| doSetProperty("useFixedDelay", useFixedDelay); |
| return this; |
| } |
| /** |
| * To shuffle the list of files (sort in random order). |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: sort |
| */ |
| default FileEndpointConsumerBuilder shuffle(boolean shuffle) { |
| doSetProperty("shuffle", shuffle); |
| return this; |
| } |
| /** |
| * To shuffle the list of files (sort in random order). |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: sort |
| */ |
| default FileEndpointConsumerBuilder shuffle(String shuffle) { |
| doSetProperty("shuffle", shuffle); |
| return this; |
| } |
| /** |
| * Built-in sort by using the File Language. Supports nested sorts, so |
| * you can have a sort by file name and as a 2nd group sort by modified |
| * date. |
| * |
| * The option is a: |
| * <code>java.util.Comparator<org.apache.camel.Exchange></code> |
| * type. |
| * |
| * Group: sort |
| */ |
| default FileEndpointConsumerBuilder sortBy(Comparator<Exchange> sortBy) { |
| doSetProperty("sortBy", sortBy); |
| return this; |
| } |
| /** |
| * Built-in sort by using the File Language. Supports nested sorts, so |
| * you can have a sort by file name and as a 2nd group sort by modified |
| * date. |
| * |
| * The option will be converted to a |
| * <code>java.util.Comparator<org.apache.camel.Exchange></code> |
| * type. |
| * |
| * Group: sort |
| */ |
| default FileEndpointConsumerBuilder sortBy(String sortBy) { |
| doSetProperty("sortBy", sortBy); |
| return this; |
| } |
| /** |
| * Pluggable sorter as a java.util.Comparator class. |
| * |
| * The option is a: |
| * <code>java.util.Comparator<org.apache.camel.component.file.GenericFile<java.io.File>></code> type. |
| * |
| * Group: sort |
| */ |
| default FileEndpointConsumerBuilder sorter(Comparator<Object> sorter) { |
| doSetProperty("sorter", sorter); |
| return this; |
| } |
| /** |
| * Pluggable sorter as a java.util.Comparator class. |
| * |
| * The option will be converted to a |
| * <code>java.util.Comparator<org.apache.camel.component.file.GenericFile<java.io.File>></code> type. |
| * |
| * Group: sort |
| */ |
| default FileEndpointConsumerBuilder sorter(String sorter) { |
| doSetProperty("sorter", sorter); |
| return this; |
| } |
| } |
| |
| /** |
| * Advanced builder for endpoint consumers for the File component. |
| */ |
| public interface AdvancedFileEndpointConsumerBuilder |
| extends |
| EndpointConsumerBuilder { |
| default FileEndpointConsumerBuilder basic() { |
| return (FileEndpointConsumerBuilder) this; |
| } |
| /** |
| * Similar to the startingDirectoryMustExist option but this applies |
| * during polling (after starting the consumer). |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder directoryMustExist( |
| boolean directoryMustExist) { |
| doSetProperty("directoryMustExist", directoryMustExist); |
| return this; |
| } |
| /** |
| * Similar to the startingDirectoryMustExist option but this applies |
| * during polling (after starting the consumer). |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder directoryMustExist( |
| String directoryMustExist) { |
| doSetProperty("directoryMustExist", directoryMustExist); |
| return this; |
| } |
| /** |
| * To let the consumer use a custom ExceptionHandler. Notice if the |
| * option bridgeErrorHandler is enabled then this option is not in use. |
| * By default the consumer will deal with exceptions, that will be |
| * logged at WARN or ERROR level and ignored. |
| * |
| * The option is a: <code>org.apache.camel.spi.ExceptionHandler</code> |
| * type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder exceptionHandler( |
| ExceptionHandler exceptionHandler) { |
| doSetProperty("exceptionHandler", exceptionHandler); |
| return this; |
| } |
| /** |
| * To let the consumer use a custom ExceptionHandler. Notice if the |
| * option bridgeErrorHandler is enabled then this option is not in use. |
| * By default the consumer will deal with exceptions, that will be |
| * logged at WARN or ERROR level and ignored. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.spi.ExceptionHandler</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder exceptionHandler( |
| String exceptionHandler) { |
| doSetProperty("exceptionHandler", exceptionHandler); |
| return this; |
| } |
| /** |
| * Sets the exchange pattern when the consumer creates an exchange. |
| * |
| * The option is a: <code>org.apache.camel.ExchangePattern</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder exchangePattern( |
| ExchangePattern exchangePattern) { |
| doSetProperty("exchangePattern", exchangePattern); |
| return this; |
| } |
| /** |
| * Sets the exchange pattern when the consumer creates an exchange. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.ExchangePattern</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder exchangePattern( |
| String exchangePattern) { |
| doSetProperty("exchangePattern", exchangePattern); |
| return this; |
| } |
| /** |
| * To define which file attributes of interest. Like |
| * posix:permissions,posix:owner,basic:lastAccessTime, it supports basic |
| * wildcard like posix:, basic:lastAccessTime. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder extendedAttributes( |
| String extendedAttributes) { |
| doSetProperty("extendedAttributes", extendedAttributes); |
| return this; |
| } |
| /** |
| * A pluggable in-progress repository |
| * org.apache.camel.spi.IdempotentRepository. The in-progress repository |
| * is used to account the current in progress files being consumed. By |
| * default a memory based repository is used. |
| * |
| * The option is a: |
| * <code>org.apache.camel.spi.IdempotentRepository</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder inProgressRepository( |
| IdempotentRepository inProgressRepository) { |
| doSetProperty("inProgressRepository", inProgressRepository); |
| return this; |
| } |
| /** |
| * A pluggable in-progress repository |
| * org.apache.camel.spi.IdempotentRepository. The in-progress repository |
| * is used to account the current in progress files being consumed. By |
| * default a memory based repository is used. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.spi.IdempotentRepository</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder inProgressRepository( |
| String inProgressRepository) { |
| doSetProperty("inProgressRepository", inProgressRepository); |
| return this; |
| } |
| /** |
| * When consuming, a local work directory can be used to store the |
| * remote file content directly in local files, to avoid loading the |
| * content into memory. This is beneficial, if you consume a very big |
| * remote file and thus can conserve memory. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder localWorkDirectory( |
| String localWorkDirectory) { |
| doSetProperty("localWorkDirectory", localWorkDirectory); |
| return this; |
| } |
| /** |
| * To use a custom org.apache.camel.spi.ExceptionHandler 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 WARN level and ignore. |
| * |
| * The option is a: <code>org.apache.camel.spi.ExceptionHandler</code> |
| * type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder onCompletionExceptionHandler( |
| ExceptionHandler onCompletionExceptionHandler) { |
| doSetProperty("onCompletionExceptionHandler", onCompletionExceptionHandler); |
| return this; |
| } |
| /** |
| * To use a custom org.apache.camel.spi.ExceptionHandler 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 WARN level and ignore. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.spi.ExceptionHandler</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder onCompletionExceptionHandler( |
| String onCompletionExceptionHandler) { |
| doSetProperty("onCompletionExceptionHandler", onCompletionExceptionHandler); |
| return this; |
| } |
| /** |
| * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing |
| * you to provide your custom implementation to control error handling |
| * usually occurred during the poll operation before an Exchange have |
| * been created and being routed in Camel. |
| * |
| * The option is a: |
| * <code>org.apache.camel.spi.PollingConsumerPollStrategy</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder pollStrategy( |
| PollingConsumerPollStrategy pollStrategy) { |
| doSetProperty("pollStrategy", pollStrategy); |
| return this; |
| } |
| /** |
| * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing |
| * you to provide your custom implementation to control error handling |
| * usually occurred during the poll operation before an Exchange have |
| * been created and being routed in Camel. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.spi.PollingConsumerPollStrategy</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder pollStrategy( |
| String pollStrategy) { |
| doSetProperty("pollStrategy", pollStrategy); |
| return this; |
| } |
| /** |
| * Whether to enable probing of the content type. If enable then the |
| * consumer uses Files#probeContentType(java.nio.file.Path) to determine |
| * the content-type of the file, and store that as a header with key |
| * Exchange#FILE_CONTENT_TYPE on the Message. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder probeContentType( |
| boolean probeContentType) { |
| doSetProperty("probeContentType", probeContentType); |
| return this; |
| } |
| /** |
| * Whether to enable probing of the content type. If enable then the |
| * consumer uses Files#probeContentType(java.nio.file.Path) to determine |
| * the content-type of the file, and store that as a header with key |
| * Exchange#FILE_CONTENT_TYPE on the Message. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder probeContentType( |
| String probeContentType) { |
| doSetProperty("probeContentType", probeContentType); |
| return this; |
| } |
| /** |
| * A pluggable |
| * org.apache.camel.component.file.GenericFileProcessStrategy allowing |
| * you to implement your own readLock option or similar. Can also be |
| * used when special conditions must be met before a file can be |
| * consumed, such as a special ready file exists. If this option is set |
| * then the readLock option does not apply. |
| * |
| * The option is a: |
| * <code>org.apache.camel.component.file.GenericFileProcessStrategy<java.io.File></code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder processStrategy( |
| Object processStrategy) { |
| doSetProperty("processStrategy", processStrategy); |
| return this; |
| } |
| /** |
| * A pluggable |
| * org.apache.camel.component.file.GenericFileProcessStrategy allowing |
| * you to implement your own readLock option or similar. Can also be |
| * used when special conditions must be met before a file can be |
| * consumed, such as a special ready file exists. If this option is set |
| * then the readLock option does not apply. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.component.file.GenericFileProcessStrategy<java.io.File></code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder processStrategy( |
| String processStrategy) { |
| doSetProperty("processStrategy", processStrategy); |
| return this; |
| } |
| /** |
| * Whether the starting directory must exist. Mind that the autoCreate |
| * option is default enabled, which means the starting directory is |
| * normally auto created if it doesn't exist. You can disable autoCreate |
| * and enable this to ensure the starting directory must exist. Will |
| * thrown an exception if the directory doesn't exist. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder startingDirectoryMustExist( |
| boolean startingDirectoryMustExist) { |
| doSetProperty("startingDirectoryMustExist", startingDirectoryMustExist); |
| return this; |
| } |
| /** |
| * Whether the starting directory must exist. Mind that the autoCreate |
| * option is default enabled, which means the starting directory is |
| * normally auto created if it doesn't exist. You can disable autoCreate |
| * and enable this to ensure the starting directory must exist. Will |
| * thrown an exception if the directory doesn't exist. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder startingDirectoryMustExist( |
| String startingDirectoryMustExist) { |
| doSetProperty("startingDirectoryMustExist", startingDirectoryMustExist); |
| return this; |
| } |
| /** |
| * Whether the starting directory has access permissions. Mind that the |
| * startingDirectoryMustExist parameter must be set to true in order to |
| * verify that the directory exists. Will thrown an exception if the |
| * directory doesn't have read and write permissions. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder startingDirectoryMustHaveAccess( |
| boolean startingDirectoryMustHaveAccess) { |
| doSetProperty("startingDirectoryMustHaveAccess", startingDirectoryMustHaveAccess); |
| return this; |
| } |
| /** |
| * Whether the starting directory has access permissions. Mind that the |
| * startingDirectoryMustExist parameter must be set to true in order to |
| * verify that the directory exists. Will thrown an exception if the |
| * directory doesn't have read and write permissions. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: consumer (advanced) |
| */ |
| default AdvancedFileEndpointConsumerBuilder startingDirectoryMustHaveAccess( |
| String startingDirectoryMustHaveAccess) { |
| doSetProperty("startingDirectoryMustHaveAccess", startingDirectoryMustHaveAccess); |
| return this; |
| } |
| /** |
| * Automatically create missing directories in the file's pathname. For |
| * the file consumer, that means creating the starting directory. For |
| * the file producer, it means the directory the files should be written |
| * to. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder autoCreate( |
| boolean autoCreate) { |
| doSetProperty("autoCreate", autoCreate); |
| return this; |
| } |
| /** |
| * Automatically create missing directories in the file's pathname. For |
| * the file consumer, that means creating the starting directory. For |
| * the file producer, it means the directory the files should be written |
| * to. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder autoCreate(String autoCreate) { |
| doSetProperty("autoCreate", autoCreate); |
| return this; |
| } |
| /** |
| * Whether the endpoint should use basic property binding (Camel 2.x) or |
| * the newer property binding with additional capabilities. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder basicPropertyBinding( |
| boolean basicPropertyBinding) { |
| doSetProperty("basicPropertyBinding", basicPropertyBinding); |
| return this; |
| } |
| /** |
| * Whether the endpoint should use basic property binding (Camel 2.x) or |
| * the newer property binding with additional capabilities. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder basicPropertyBinding( |
| String basicPropertyBinding) { |
| doSetProperty("basicPropertyBinding", basicPropertyBinding); |
| return this; |
| } |
| /** |
| * Buffer size in bytes used for writing files (or in case of FTP for |
| * downloading and uploading files). |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder bufferSize(int bufferSize) { |
| doSetProperty("bufferSize", bufferSize); |
| return this; |
| } |
| /** |
| * Buffer size in bytes used for writing files (or in case of FTP for |
| * downloading and uploading files). |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder bufferSize(String bufferSize) { |
| doSetProperty("bufferSize", bufferSize); |
| return this; |
| } |
| /** |
| * Whether to fallback and do a copy and delete file, in case the file |
| * could not be renamed directly. This option is not available for the |
| * FTP component. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder copyAndDeleteOnRenameFail( |
| boolean copyAndDeleteOnRenameFail) { |
| doSetProperty("copyAndDeleteOnRenameFail", copyAndDeleteOnRenameFail); |
| return this; |
| } |
| /** |
| * Whether to fallback and do a copy and delete file, in case the file |
| * could not be renamed directly. This option is not available for the |
| * FTP component. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder copyAndDeleteOnRenameFail( |
| String copyAndDeleteOnRenameFail) { |
| doSetProperty("copyAndDeleteOnRenameFail", copyAndDeleteOnRenameFail); |
| return this; |
| } |
| /** |
| * Perform rename operations using a copy and delete strategy. This is |
| * primarily used in environments where the regular rename operation is |
| * unreliable (e.g. across different file systems or networks). This |
| * option takes precedence over the copyAndDeleteOnRenameFail parameter |
| * that will automatically fall back to the copy and delete strategy, |
| * but only after additional delays. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder renameUsingCopy( |
| boolean renameUsingCopy) { |
| doSetProperty("renameUsingCopy", renameUsingCopy); |
| return this; |
| } |
| /** |
| * Perform rename operations using a copy and delete strategy. This is |
| * primarily used in environments where the regular rename operation is |
| * unreliable (e.g. across different file systems or networks). This |
| * option takes precedence over the copyAndDeleteOnRenameFail parameter |
| * that will automatically fall back to the copy and delete strategy, |
| * but only after additional delays. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder renameUsingCopy( |
| String renameUsingCopy) { |
| doSetProperty("renameUsingCopy", renameUsingCopy); |
| return this; |
| } |
| /** |
| * Sets whether synchronous processing should be strictly used, or Camel |
| * is allowed to use asynchronous processing (if supported). |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder synchronous( |
| boolean synchronous) { |
| doSetProperty("synchronous", synchronous); |
| return this; |
| } |
| /** |
| * Sets whether synchronous processing should be strictly used, or Camel |
| * is allowed to use asynchronous processing (if supported). |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointConsumerBuilder synchronous( |
| String synchronous) { |
| doSetProperty("synchronous", synchronous); |
| return this; |
| } |
| } |
| |
| /** |
| * Builder for endpoint producers for the File component. |
| */ |
| public interface FileEndpointProducerBuilder |
| extends |
| EndpointProducerBuilder { |
| default AdvancedFileEndpointProducerBuilder advanced() { |
| return (AdvancedFileEndpointProducerBuilder) this; |
| } |
| /** |
| * This option is used to specify the encoding of the file. You can use |
| * this on the consumer, to specify the encodings of the files, which |
| * allow Camel to know the charset it should load the file content in |
| * case the file content is being accessed. Likewise when writing a |
| * file, you can use this option to specify which charset to write the |
| * file as well. Do mind that when writing the file Camel may have to |
| * read the message content into memory to be able to convert the data |
| * into the configured charset, so do not use this if you have big |
| * messages. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointProducerBuilder charset(String charset) { |
| doSetProperty("charset", charset); |
| return this; |
| } |
| /** |
| * Producer: If provided, then Camel will write a 2nd done file when the |
| * original file has been written. The done file will be empty. This |
| * option configures what file name to use. Either you can specify a |
| * fixed name. Or you can use dynamic placeholders. The done file will |
| * always be written in the same folder as the original file. Consumer: |
| * If provided, Camel will only consume files if a done file exists. |
| * This option configures what file name to use. Either you can specify |
| * a fixed name. Or you can use dynamic placeholders.The done file is |
| * always expected in the same folder as the original file. Only |
| * ${file.name} and ${file.name.noext} is supported as dynamic |
| * placeholders. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointProducerBuilder doneFileName(String doneFileName) { |
| doSetProperty("doneFileName", doneFileName); |
| return this; |
| } |
| /** |
| * Use Expression such as File Language to dynamically set the filename. |
| * For consumers, it's used as a filename filter. For producers, it's |
| * used to evaluate the filename to write. If an expression is set, it |
| * take precedence over the CamelFileName header. (Note: The header |
| * itself can also be an Expression). The expression options support |
| * both String and Expression types. If the expression is a String type, |
| * it is always evaluated using the File Language. If the expression is |
| * an Expression type, the specified Expression type is used - this |
| * allows you, for instance, to use OGNL expressions. For the consumer, |
| * you can use it to filter filenames, so you can for instance consume |
| * today's file using the File Language syntax: |
| * mydata-${date:now:yyyyMMdd}.txt. The producers support the |
| * CamelOverruleFileName header which takes precedence over any existing |
| * CamelFileName header; the CamelOverruleFileName is a header that is |
| * used only once, and makes it easier as this avoids to temporary store |
| * CamelFileName and have to restore it afterwards. |
| * |
| * The option is a: <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointProducerBuilder fileName(Expression fileName) { |
| doSetProperty("fileName", fileName); |
| return this; |
| } |
| /** |
| * Use Expression such as File Language to dynamically set the filename. |
| * For consumers, it's used as a filename filter. For producers, it's |
| * used to evaluate the filename to write. If an expression is set, it |
| * take precedence over the CamelFileName header. (Note: The header |
| * itself can also be an Expression). The expression options support |
| * both String and Expression types. If the expression is a String type, |
| * it is always evaluated using the File Language. If the expression is |
| * an Expression type, the specified Expression type is used - this |
| * allows you, for instance, to use OGNL expressions. For the consumer, |
| * you can use it to filter filenames, so you can for instance consume |
| * today's file using the File Language syntax: |
| * mydata-${date:now:yyyyMMdd}.txt. The producers support the |
| * CamelOverruleFileName header which takes precedence over any existing |
| * CamelFileName header; the CamelOverruleFileName is a header that is |
| * used only once, and makes it easier as this avoids to temporary store |
| * CamelFileName and have to restore it afterwards. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointProducerBuilder fileName(String fileName) { |
| doSetProperty("fileName", fileName); |
| return this; |
| } |
| /** |
| * Used to append characters (text) after writing files. This can for |
| * example be used to add new lines or other separators when writing and |
| * appending to existing files. To specify new-line (slash-n or slash-r) |
| * or tab (slash-t) characters then escape with an extra slash, eg |
| * slash-slash-n. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder appendChars(String appendChars) { |
| doSetProperty("appendChars", appendChars); |
| return this; |
| } |
| /** |
| * What to do if a file already exists with the same name. Override, |
| * which is the default, replaces the existing file. |
| * |
| * - Append - adds content to the existing file. |
| * - Fail - throws a GenericFileOperationException, indicating that |
| * there is already an existing file. |
| * - Ignore - silently ignores the problem and does not override the |
| * existing file, but assumes everything is okay. |
| * - Move - option requires to use the moveExisting option to be |
| * configured as well. The option eagerDeleteTargetFile can be used to |
| * control what to do if an moving the file, and there exists already an |
| * existing file, otherwise causing the move operation to fail. The Move |
| * option will move any existing files, before writing the target file. |
| * - TryRename is only applicable if tempFileName option is in use. This |
| * allows to try renaming the file from the temporary name to the actual |
| * name, without doing any exists check. This check may be faster on |
| * some file systems and especially FTP servers. |
| * |
| * The option is a: |
| * <code>org.apache.camel.component.file.GenericFileExist</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder fileExist(GenericFileExist fileExist) { |
| doSetProperty("fileExist", fileExist); |
| return this; |
| } |
| /** |
| * What to do if a file already exists with the same name. Override, |
| * which is the default, replaces the existing file. |
| * |
| * - Append - adds content to the existing file. |
| * - Fail - throws a GenericFileOperationException, indicating that |
| * there is already an existing file. |
| * - Ignore - silently ignores the problem and does not override the |
| * existing file, but assumes everything is okay. |
| * - Move - option requires to use the moveExisting option to be |
| * configured as well. The option eagerDeleteTargetFile can be used to |
| * control what to do if an moving the file, and there exists already an |
| * existing file, otherwise causing the move operation to fail. The Move |
| * option will move any existing files, before writing the target file. |
| * - TryRename is only applicable if tempFileName option is in use. This |
| * allows to try renaming the file from the temporary name to the actual |
| * name, without doing any exists check. This check may be faster on |
| * some file systems and especially FTP servers. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.component.file.GenericFileExist</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder fileExist(String fileExist) { |
| doSetProperty("fileExist", fileExist); |
| return this; |
| } |
| /** |
| * Flatten is used to flatten the file name path to strip any leading |
| * paths, so it's just the file name. This allows you to consume |
| * recursively into sub-directories, but when you eg write the files to |
| * another directory they will be written in a single directory. Setting |
| * this to true on the producer enforces that any file name in |
| * CamelFileName header will be stripped for any leading paths. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder flatten(boolean flatten) { |
| doSetProperty("flatten", flatten); |
| return this; |
| } |
| /** |
| * Flatten is used to flatten the file name path to strip any leading |
| * paths, so it's just the file name. This allows you to consume |
| * recursively into sub-directories, but when you eg write the files to |
| * another directory they will be written in a single directory. Setting |
| * this to true on the producer enforces that any file name in |
| * CamelFileName header will be stripped for any leading paths. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder flatten(String flatten) { |
| doSetProperty("flatten", flatten); |
| return this; |
| } |
| /** |
| * Used for jailing (restricting) writing files to the starting |
| * directory (and sub) only. This is enabled by default to not allow |
| * Camel to write files to outside directories (to be more secured out |
| * of the box). You can turn this off to allow writing files to |
| * directories outside the starting directory, such as parent or root |
| * folders. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder jailStartingDirectory( |
| boolean jailStartingDirectory) { |
| doSetProperty("jailStartingDirectory", jailStartingDirectory); |
| return this; |
| } |
| /** |
| * Used for jailing (restricting) writing files to the starting |
| * directory (and sub) only. This is enabled by default to not allow |
| * Camel to write files to outside directories (to be more secured out |
| * of the box). You can turn this off to allow writing files to |
| * directories outside the starting directory, such as parent or root |
| * folders. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder jailStartingDirectory( |
| String jailStartingDirectory) { |
| doSetProperty("jailStartingDirectory", jailStartingDirectory); |
| return this; |
| } |
| /** |
| * Whether the producer should be started lazy (on the first message). |
| * By starting lazy you can use this to allow CamelContext and routes to |
| * startup in situations where a producer may otherwise fail during |
| * starting and cause the route to fail being started. By deferring this |
| * startup to be lazy then the startup failure can be handled during |
| * routing messages via Camel's routing error handlers. Beware that when |
| * the first message is processed then creating and starting the |
| * producer may take a little time and prolong the total processing time |
| * of the processing. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder lazyStartProducer( |
| boolean lazyStartProducer) { |
| doSetProperty("lazyStartProducer", lazyStartProducer); |
| return this; |
| } |
| /** |
| * Whether the producer should be started lazy (on the first message). |
| * By starting lazy you can use this to allow CamelContext and routes to |
| * startup in situations where a producer may otherwise fail during |
| * starting and cause the route to fail being started. By deferring this |
| * startup to be lazy then the startup failure can be handled during |
| * routing messages via Camel's routing error handlers. Beware that when |
| * the first message is processed then creating and starting the |
| * producer may take a little time and prolong the total processing time |
| * of the processing. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder lazyStartProducer( |
| String lazyStartProducer) { |
| doSetProperty("lazyStartProducer", lazyStartProducer); |
| return this; |
| } |
| /** |
| * Expression (such as File Language) used to compute file name to use |
| * when fileExist=Move is configured. To move files into a backup |
| * subdirectory just enter backup. This option only supports the |
| * following File Language tokens: file:name, file:name.ext, |
| * file:name.noext, file:onlyname, file:onlyname.noext, file:ext, and |
| * file:parent. Notice the file:parent is not supported by the FTP |
| * component, as the FTP component can only move any existing files to a |
| * relative directory based on current dir as base. |
| * |
| * The option is a: <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder moveExisting(Expression moveExisting) { |
| doSetProperty("moveExisting", moveExisting); |
| return this; |
| } |
| /** |
| * Expression (such as File Language) used to compute file name to use |
| * when fileExist=Move is configured. To move files into a backup |
| * subdirectory just enter backup. This option only supports the |
| * following File Language tokens: file:name, file:name.ext, |
| * file:name.noext, file:onlyname, file:onlyname.noext, file:ext, and |
| * file:parent. Notice the file:parent is not supported by the FTP |
| * component, as the FTP component can only move any existing files to a |
| * relative directory based on current dir as base. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder moveExisting(String moveExisting) { |
| doSetProperty("moveExisting", moveExisting); |
| return this; |
| } |
| /** |
| * The same as tempPrefix option but offering a more fine grained |
| * control on the naming of the temporary filename as it uses the File |
| * Language. The location for tempFilename is relative to the final file |
| * location in the option 'fileName', not the target directory in the |
| * base uri. For example if option fileName includes a directory prefix: |
| * dir/finalFilename then tempFileName is relative to that subdirectory |
| * dir. |
| * |
| * The option is a: <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder tempFileName(Expression tempFileName) { |
| doSetProperty("tempFileName", tempFileName); |
| return this; |
| } |
| /** |
| * The same as tempPrefix option but offering a more fine grained |
| * control on the naming of the temporary filename as it uses the File |
| * Language. The location for tempFilename is relative to the final file |
| * location in the option 'fileName', not the target directory in the |
| * base uri. For example if option fileName includes a directory prefix: |
| * dir/finalFilename then tempFileName is relative to that subdirectory |
| * dir. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder tempFileName(String tempFileName) { |
| doSetProperty("tempFileName", tempFileName); |
| return this; |
| } |
| /** |
| * This option is used to write the file using a temporary name and |
| * then, after the write is complete, rename it to the real name. Can be |
| * used to identify files being written and also avoid consumers (not |
| * using exclusive read locks) reading in progress files. Is often used |
| * by FTP when uploading big files. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: producer |
| */ |
| default FileEndpointProducerBuilder tempPrefix(String tempPrefix) { |
| doSetProperty("tempPrefix", tempPrefix); |
| return this; |
| } |
| } |
| |
| /** |
| * Advanced builder for endpoint producers for the File component. |
| */ |
| public interface AdvancedFileEndpointProducerBuilder |
| extends |
| EndpointProducerBuilder { |
| default FileEndpointProducerBuilder basic() { |
| return (FileEndpointProducerBuilder) this; |
| } |
| /** |
| * Used to specify if a null body is allowed during file writing. If set |
| * to true then an empty file will be created, when set to false, and |
| * attempting to send a null body to the file component, a |
| * GenericFileWriteException of 'Cannot write null body to file.' will |
| * be thrown. If the fileExist option is set to 'Override', then the |
| * file will be truncated, and if set to append the file will remain |
| * unchanged. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder allowNullBody( |
| boolean allowNullBody) { |
| doSetProperty("allowNullBody", allowNullBody); |
| return this; |
| } |
| /** |
| * Used to specify if a null body is allowed during file writing. If set |
| * to true then an empty file will be created, when set to false, and |
| * attempting to send a null body to the file component, a |
| * GenericFileWriteException of 'Cannot write null body to file.' will |
| * be thrown. If the fileExist option is set to 'Override', then the |
| * file will be truncated, and if set to append the file will remain |
| * unchanged. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder allowNullBody( |
| String allowNullBody) { |
| doSetProperty("allowNullBody", allowNullBody); |
| return this; |
| } |
| /** |
| * Specify the file permissions which is sent by the producer, the chmod |
| * value must be between 000 and 777; If there is a leading digit like |
| * in 0755 we will ignore it. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder chmod(String chmod) { |
| doSetProperty("chmod", chmod); |
| return this; |
| } |
| /** |
| * Specify the directory permissions used when the producer creates |
| * missing directories, the chmod value must be between 000 and 777; If |
| * there is a leading digit like in 0755 we will ignore it. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder chmodDirectory( |
| String chmodDirectory) { |
| doSetProperty("chmodDirectory", chmodDirectory); |
| return this; |
| } |
| /** |
| * Whether or not to eagerly delete any existing target file. This |
| * option only applies when you use fileExists=Override and the |
| * tempFileName option as well. You can use this to disable (set it to |
| * false) deleting the target file before the temp file is written. For |
| * example you may write big files and want the target file to exists |
| * during the temp file is being written. This ensure the target file is |
| * only deleted until the very last moment, just before the temp file is |
| * being renamed to the target filename. This option is also used to |
| * control whether to delete any existing files when fileExist=Move is |
| * enabled, and an existing file exists. If this option |
| * copyAndDeleteOnRenameFails false, then an exception will be thrown if |
| * an existing file existed, if its true, then the existing file is |
| * deleted before the move operation. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder eagerDeleteTargetFile( |
| boolean eagerDeleteTargetFile) { |
| doSetProperty("eagerDeleteTargetFile", eagerDeleteTargetFile); |
| return this; |
| } |
| /** |
| * Whether or not to eagerly delete any existing target file. This |
| * option only applies when you use fileExists=Override and the |
| * tempFileName option as well. You can use this to disable (set it to |
| * false) deleting the target file before the temp file is written. For |
| * example you may write big files and want the target file to exists |
| * during the temp file is being written. This ensure the target file is |
| * only deleted until the very last moment, just before the temp file is |
| * being renamed to the target filename. This option is also used to |
| * control whether to delete any existing files when fileExist=Move is |
| * enabled, and an existing file exists. If this option |
| * copyAndDeleteOnRenameFails false, then an exception will be thrown if |
| * an existing file existed, if its true, then the existing file is |
| * deleted before the move operation. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder eagerDeleteTargetFile( |
| String eagerDeleteTargetFile) { |
| doSetProperty("eagerDeleteTargetFile", eagerDeleteTargetFile); |
| return this; |
| } |
| /** |
| * Whether to force syncing writes to the file system. You can turn this |
| * off if you do not want this level of guarantee, for example if |
| * writing to logs / audit logs etc; this would yield better |
| * performance. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder forceWrites( |
| boolean forceWrites) { |
| doSetProperty("forceWrites", forceWrites); |
| return this; |
| } |
| /** |
| * Whether to force syncing writes to the file system. You can turn this |
| * off if you do not want this level of guarantee, for example if |
| * writing to logs / audit logs etc; this would yield better |
| * performance. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder forceWrites( |
| String forceWrites) { |
| doSetProperty("forceWrites", forceWrites); |
| return this; |
| } |
| /** |
| * Will keep the last modified timestamp from the source file (if any). |
| * Will use the Exchange.FILE_LAST_MODIFIED header to located the |
| * timestamp. This header can contain either a java.util.Date or long |
| * with the timestamp. If the timestamp exists and the option is enabled |
| * it will set this timestamp on the written file. Note: This option |
| * only applies to the file producer. You cannot use this option with |
| * any of the ftp producers. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder keepLastModified( |
| boolean keepLastModified) { |
| doSetProperty("keepLastModified", keepLastModified); |
| return this; |
| } |
| /** |
| * Will keep the last modified timestamp from the source file (if any). |
| * Will use the Exchange.FILE_LAST_MODIFIED header to located the |
| * timestamp. This header can contain either a java.util.Date or long |
| * with the timestamp. If the timestamp exists and the option is enabled |
| * it will set this timestamp on the written file. Note: This option |
| * only applies to the file producer. You cannot use this option with |
| * any of the ftp producers. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder keepLastModified( |
| String keepLastModified) { |
| doSetProperty("keepLastModified", keepLastModified); |
| return this; |
| } |
| /** |
| * Strategy (Custom Strategy) used to move file with special naming |
| * token to use when fileExist=Move is configured. By default, there is |
| * an implementation used if no custom strategy is provided. |
| * |
| * The option is a: |
| * <code>org.apache.camel.component.file.strategy.FileMoveExistingStrategy</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder moveExistingFileStrategy( |
| Object moveExistingFileStrategy) { |
| doSetProperty("moveExistingFileStrategy", moveExistingFileStrategy); |
| return this; |
| } |
| /** |
| * Strategy (Custom Strategy) used to move file with special naming |
| * token to use when fileExist=Move is configured. By default, there is |
| * an implementation used if no custom strategy is provided. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.component.file.strategy.FileMoveExistingStrategy</code> type. |
| * |
| * Group: producer (advanced) |
| */ |
| default AdvancedFileEndpointProducerBuilder moveExistingFileStrategy( |
| String moveExistingFileStrategy) { |
| doSetProperty("moveExistingFileStrategy", moveExistingFileStrategy); |
| return this; |
| } |
| /** |
| * Automatically create missing directories in the file's pathname. For |
| * the file consumer, that means creating the starting directory. For |
| * the file producer, it means the directory the files should be written |
| * to. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder autoCreate( |
| boolean autoCreate) { |
| doSetProperty("autoCreate", autoCreate); |
| return this; |
| } |
| /** |
| * Automatically create missing directories in the file's pathname. For |
| * the file consumer, that means creating the starting directory. For |
| * the file producer, it means the directory the files should be written |
| * to. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder autoCreate(String autoCreate) { |
| doSetProperty("autoCreate", autoCreate); |
| return this; |
| } |
| /** |
| * Whether the endpoint should use basic property binding (Camel 2.x) or |
| * the newer property binding with additional capabilities. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder basicPropertyBinding( |
| boolean basicPropertyBinding) { |
| doSetProperty("basicPropertyBinding", basicPropertyBinding); |
| return this; |
| } |
| /** |
| * Whether the endpoint should use basic property binding (Camel 2.x) or |
| * the newer property binding with additional capabilities. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder basicPropertyBinding( |
| String basicPropertyBinding) { |
| doSetProperty("basicPropertyBinding", basicPropertyBinding); |
| return this; |
| } |
| /** |
| * Buffer size in bytes used for writing files (or in case of FTP for |
| * downloading and uploading files). |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder bufferSize(int bufferSize) { |
| doSetProperty("bufferSize", bufferSize); |
| return this; |
| } |
| /** |
| * Buffer size in bytes used for writing files (or in case of FTP for |
| * downloading and uploading files). |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder bufferSize(String bufferSize) { |
| doSetProperty("bufferSize", bufferSize); |
| return this; |
| } |
| /** |
| * Whether to fallback and do a copy and delete file, in case the file |
| * could not be renamed directly. This option is not available for the |
| * FTP component. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder copyAndDeleteOnRenameFail( |
| boolean copyAndDeleteOnRenameFail) { |
| doSetProperty("copyAndDeleteOnRenameFail", copyAndDeleteOnRenameFail); |
| return this; |
| } |
| /** |
| * Whether to fallback and do a copy and delete file, in case the file |
| * could not be renamed directly. This option is not available for the |
| * FTP component. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder copyAndDeleteOnRenameFail( |
| String copyAndDeleteOnRenameFail) { |
| doSetProperty("copyAndDeleteOnRenameFail", copyAndDeleteOnRenameFail); |
| return this; |
| } |
| /** |
| * Perform rename operations using a copy and delete strategy. This is |
| * primarily used in environments where the regular rename operation is |
| * unreliable (e.g. across different file systems or networks). This |
| * option takes precedence over the copyAndDeleteOnRenameFail parameter |
| * that will automatically fall back to the copy and delete strategy, |
| * but only after additional delays. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder renameUsingCopy( |
| boolean renameUsingCopy) { |
| doSetProperty("renameUsingCopy", renameUsingCopy); |
| return this; |
| } |
| /** |
| * Perform rename operations using a copy and delete strategy. This is |
| * primarily used in environments where the regular rename operation is |
| * unreliable (e.g. across different file systems or networks). This |
| * option takes precedence over the copyAndDeleteOnRenameFail parameter |
| * that will automatically fall back to the copy and delete strategy, |
| * but only after additional delays. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder renameUsingCopy( |
| String renameUsingCopy) { |
| doSetProperty("renameUsingCopy", renameUsingCopy); |
| return this; |
| } |
| /** |
| * Sets whether synchronous processing should be strictly used, or Camel |
| * is allowed to use asynchronous processing (if supported). |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder synchronous( |
| boolean synchronous) { |
| doSetProperty("synchronous", synchronous); |
| return this; |
| } |
| /** |
| * Sets whether synchronous processing should be strictly used, or Camel |
| * is allowed to use asynchronous processing (if supported). |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointProducerBuilder synchronous( |
| String synchronous) { |
| doSetProperty("synchronous", synchronous); |
| return this; |
| } |
| } |
| |
| /** |
| * Builder for endpoint for the File component. |
| */ |
| public interface FileEndpointBuilder |
| extends |
| FileEndpointConsumerBuilder, FileEndpointProducerBuilder { |
| default AdvancedFileEndpointBuilder advanced() { |
| return (AdvancedFileEndpointBuilder) this; |
| } |
| /** |
| * This option is used to specify the encoding of the file. You can use |
| * this on the consumer, to specify the encodings of the files, which |
| * allow Camel to know the charset it should load the file content in |
| * case the file content is being accessed. Likewise when writing a |
| * file, you can use this option to specify which charset to write the |
| * file as well. Do mind that when writing the file Camel may have to |
| * read the message content into memory to be able to convert the data |
| * into the configured charset, so do not use this if you have big |
| * messages. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointBuilder charset(String charset) { |
| doSetProperty("charset", charset); |
| return this; |
| } |
| /** |
| * Producer: If provided, then Camel will write a 2nd done file when the |
| * original file has been written. The done file will be empty. This |
| * option configures what file name to use. Either you can specify a |
| * fixed name. Or you can use dynamic placeholders. The done file will |
| * always be written in the same folder as the original file. Consumer: |
| * If provided, Camel will only consume files if a done file exists. |
| * This option configures what file name to use. Either you can specify |
| * a fixed name. Or you can use dynamic placeholders.The done file is |
| * always expected in the same folder as the original file. Only |
| * ${file.name} and ${file.name.noext} is supported as dynamic |
| * placeholders. |
| * |
| * The option is a: <code>java.lang.String</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointBuilder doneFileName(String doneFileName) { |
| doSetProperty("doneFileName", doneFileName); |
| return this; |
| } |
| /** |
| * Use Expression such as File Language to dynamically set the filename. |
| * For consumers, it's used as a filename filter. For producers, it's |
| * used to evaluate the filename to write. If an expression is set, it |
| * take precedence over the CamelFileName header. (Note: The header |
| * itself can also be an Expression). The expression options support |
| * both String and Expression types. If the expression is a String type, |
| * it is always evaluated using the File Language. If the expression is |
| * an Expression type, the specified Expression type is used - this |
| * allows you, for instance, to use OGNL expressions. For the consumer, |
| * you can use it to filter filenames, so you can for instance consume |
| * today's file using the File Language syntax: |
| * mydata-${date:now:yyyyMMdd}.txt. The producers support the |
| * CamelOverruleFileName header which takes precedence over any existing |
| * CamelFileName header; the CamelOverruleFileName is a header that is |
| * used only once, and makes it easier as this avoids to temporary store |
| * CamelFileName and have to restore it afterwards. |
| * |
| * The option is a: <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointBuilder fileName(Expression fileName) { |
| doSetProperty("fileName", fileName); |
| return this; |
| } |
| /** |
| * Use Expression such as File Language to dynamically set the filename. |
| * For consumers, it's used as a filename filter. For producers, it's |
| * used to evaluate the filename to write. If an expression is set, it |
| * take precedence over the CamelFileName header. (Note: The header |
| * itself can also be an Expression). The expression options support |
| * both String and Expression types. If the expression is a String type, |
| * it is always evaluated using the File Language. If the expression is |
| * an Expression type, the specified Expression type is used - this |
| * allows you, for instance, to use OGNL expressions. For the consumer, |
| * you can use it to filter filenames, so you can for instance consume |
| * today's file using the File Language syntax: |
| * mydata-${date:now:yyyyMMdd}.txt. The producers support the |
| * CamelOverruleFileName header which takes precedence over any existing |
| * CamelFileName header; the CamelOverruleFileName is a header that is |
| * used only once, and makes it easier as this avoids to temporary store |
| * CamelFileName and have to restore it afterwards. |
| * |
| * The option will be converted to a |
| * <code>org.apache.camel.Expression</code> type. |
| * |
| * Group: common |
| */ |
| default FileEndpointBuilder fileName(String fileName) { |
| doSetProperty("fileName", fileName); |
| return this; |
| } |
| } |
| |
| /** |
| * Advanced builder for endpoint for the File component. |
| */ |
| public interface AdvancedFileEndpointBuilder |
| extends |
| AdvancedFileEndpointConsumerBuilder, AdvancedFileEndpointProducerBuilder { |
| default FileEndpointBuilder basic() { |
| return (FileEndpointBuilder) this; |
| } |
| /** |
| * Automatically create missing directories in the file's pathname. For |
| * the file consumer, that means creating the starting directory. For |
| * the file producer, it means the directory the files should be written |
| * to. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder autoCreate(boolean autoCreate) { |
| doSetProperty("autoCreate", autoCreate); |
| return this; |
| } |
| /** |
| * Automatically create missing directories in the file's pathname. For |
| * the file consumer, that means creating the starting directory. For |
| * the file producer, it means the directory the files should be written |
| * to. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder autoCreate(String autoCreate) { |
| doSetProperty("autoCreate", autoCreate); |
| return this; |
| } |
| /** |
| * Whether the endpoint should use basic property binding (Camel 2.x) or |
| * the newer property binding with additional capabilities. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder basicPropertyBinding( |
| boolean basicPropertyBinding) { |
| doSetProperty("basicPropertyBinding", basicPropertyBinding); |
| return this; |
| } |
| /** |
| * Whether the endpoint should use basic property binding (Camel 2.x) or |
| * the newer property binding with additional capabilities. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder basicPropertyBinding( |
| String basicPropertyBinding) { |
| doSetProperty("basicPropertyBinding", basicPropertyBinding); |
| return this; |
| } |
| /** |
| * Buffer size in bytes used for writing files (or in case of FTP for |
| * downloading and uploading files). |
| * |
| * The option is a: <code>int</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder bufferSize(int bufferSize) { |
| doSetProperty("bufferSize", bufferSize); |
| return this; |
| } |
| /** |
| * Buffer size in bytes used for writing files (or in case of FTP for |
| * downloading and uploading files). |
| * |
| * The option will be converted to a <code>int</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder bufferSize(String bufferSize) { |
| doSetProperty("bufferSize", bufferSize); |
| return this; |
| } |
| /** |
| * Whether to fallback and do a copy and delete file, in case the file |
| * could not be renamed directly. This option is not available for the |
| * FTP component. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder copyAndDeleteOnRenameFail( |
| boolean copyAndDeleteOnRenameFail) { |
| doSetProperty("copyAndDeleteOnRenameFail", copyAndDeleteOnRenameFail); |
| return this; |
| } |
| /** |
| * Whether to fallback and do a copy and delete file, in case the file |
| * could not be renamed directly. This option is not available for the |
| * FTP component. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder copyAndDeleteOnRenameFail( |
| String copyAndDeleteOnRenameFail) { |
| doSetProperty("copyAndDeleteOnRenameFail", copyAndDeleteOnRenameFail); |
| return this; |
| } |
| /** |
| * Perform rename operations using a copy and delete strategy. This is |
| * primarily used in environments where the regular rename operation is |
| * unreliable (e.g. across different file systems or networks). This |
| * option takes precedence over the copyAndDeleteOnRenameFail parameter |
| * that will automatically fall back to the copy and delete strategy, |
| * but only after additional delays. |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder renameUsingCopy( |
| boolean renameUsingCopy) { |
| doSetProperty("renameUsingCopy", renameUsingCopy); |
| return this; |
| } |
| /** |
| * Perform rename operations using a copy and delete strategy. This is |
| * primarily used in environments where the regular rename operation is |
| * unreliable (e.g. across different file systems or networks). This |
| * option takes precedence over the copyAndDeleteOnRenameFail parameter |
| * that will automatically fall back to the copy and delete strategy, |
| * but only after additional delays. |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder renameUsingCopy( |
| String renameUsingCopy) { |
| doSetProperty("renameUsingCopy", renameUsingCopy); |
| return this; |
| } |
| /** |
| * Sets whether synchronous processing should be strictly used, or Camel |
| * is allowed to use asynchronous processing (if supported). |
| * |
| * The option is a: <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder synchronous(boolean synchronous) { |
| doSetProperty("synchronous", synchronous); |
| return this; |
| } |
| /** |
| * Sets whether synchronous processing should be strictly used, or Camel |
| * is allowed to use asynchronous processing (if supported). |
| * |
| * The option will be converted to a <code>boolean</code> type. |
| * |
| * Group: advanced |
| */ |
| default AdvancedFileEndpointBuilder synchronous(String synchronous) { |
| doSetProperty("synchronous", synchronous); |
| return this; |
| } |
| } |
| |
| /** |
| * Proxy enum for |
| * <code>org.apache.camel.component.file.GenericFileExist</code> enum. |
| */ |
| enum GenericFileExist { |
| Override, |
| Append, |
| Fail, |
| Ignore, |
| Move, |
| TryRename; |
| } |
| /** |
| * File (camel-file) |
| * The file component is used for reading or writing files. |
| * |
| * Category: core,file |
| * Since: 1.0 |
| * Maven coordinates: org.apache.camel:camel-file |
| * |
| * Syntax: <code>file:directoryName</code> |
| * |
| * Path parameter: directoryName (required) |
| * The starting directory |
| */ |
| default FileEndpointBuilder file(String path) { |
| class FileEndpointBuilderImpl extends AbstractEndpointBuilder implements FileEndpointBuilder, AdvancedFileEndpointBuilder { |
| public FileEndpointBuilderImpl(String path) { |
| super("file", path); |
| } |
| } |
| return new FileEndpointBuilderImpl(path); |
| } |
| } |