This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit ab8eba640aa5b6f5b2486451e71100acccdc9e5b
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Thu Apr 8 08:03:06 2021 +0200

    CAMEL-16469 - Camel-AWS2-S3 - Streaming upload: restart from the last index 
when using the progressive naming strategy
---
 .../camel/catalog/docs/aws2-s3-component.adoc      | 18 +++----
 .../aws2/s3/AWS2S3ComponentConfigurer.java         |  6 +++
 .../aws2/s3/AWS2S3EndpointConfigurer.java          |  6 +++
 .../aws2/s3/AWS2S3EndpointUriFactory.java          |  3 +-
 .../apache/camel/component/aws2/s3/aws2-s3.json    | 14 +++---
 .../src/main/docs/aws2-s3-component.adoc           | 18 +++----
 .../dsl/Aws2S3ComponentBuilderFactory.java         | 24 ++++++++--
 .../endpoint/dsl/AWS2S3EndpointBuilderFactory.java | 55 +++++++++++++++++++---
 .../modules/ROOT/pages/aws2-s3-component.adoc      | 18 +++----
 9 files changed, 122 insertions(+), 40 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc
index b4dd75b..188dab6 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc
@@ -47,7 +47,7 @@ 
from("aws2-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&pref
 
 
 // component options: START
-The AWS 2 S3 Storage Service component supports 48 options, which are listed 
below.
+The AWS 2 S3 Storage Service component supports 49 options, which are listed 
below.
 
 
 
@@ -84,15 +84,16 @@ The AWS 2 S3 Storage Service component supports 48 options, 
which are listed bel
 | *moveAfterRead* (consumer) | Move objects from S3 bucket to a different 
bucket after they have been retrieved. To accomplish the operation the 
destinationBucket option must be set. The copy bucket operation is only 
performed if the Exchange is committed. If a rollback occurs, the object is not 
moved. | false | boolean
 | *prefix* (consumer) | The prefix which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
 | *autocloseBody* (consumer) | If this option is true and includeBody is 
false, then the S3Object.close() method will be called on exchange completion. 
This option is strongly related to includeBody option. In case of setting 
includeBody to false and autocloseBody to false, it will be up to the caller to 
close the S3Object stream. Setting autocloseBody to true, will close the 
S3Object stream automatically. | true | boolean
-| *batchMessageNumber* (producer) | The number of messages composing a batch 
in stream mode | 10 | int
-| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 
| int
+| *batchMessageNumber* (producer) | The number of messages composing a batch 
in streaming upload mode | 10 | int
+| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode 
| 1000000 | int
 | *deleteAfterWrite* (producer) | Delete file object after the S3 file has 
been uploaded | false | boolean
 | *keyName* (producer) | Setting the key name for an element in the bucket 
through endpoint parameter |  | String
 | *lazyStartProducer* (producer) | 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 [...]
 | *multiPartUpload* (producer) | If it is true, camel will upload the file 
with multi part format, the part size is decided by the option of partSize | 
false | boolean
-| *namingStrategy* (producer) | The naming strategy to use in stream mode. 
There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
+| *namingStrategy* (producer) | The naming strategy to use in streaming upload 
mode. There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
 | *operation* (producer) | The operation to do in case the user don't want to 
do only an upload. There are 7 enums and the value can be one of: copyObject, 
listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange 
|  | AWS2S3Operations
 | *partSize* (producer) | Setup the partSize which is used in multi part 
upload, the default size is 25M. | 26214400 | long
+| *restartingPolicy* (producer) | The restarting policy to use in streaming 
upload mode. There are 2 enums and the value can be one of: override, lastPart 
| override | AWSS3RestartingPolicyEnum
 | *storageClass* (producer) | The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
 | *streamingUploadMode* (producer) | When stream mode is true the upload to 
bucket will be done in streaming | false | boolean
 | *streamingUploadTimeout* (producer) | While streaming upload mode is true, 
this option set the timeout to complete upload |  | long
@@ -134,7 +135,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (66 parameters):
+=== Query Parameters (67 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -175,15 +176,16 @@ with the following path and query parameters:
 | *exceptionHandler* (consumer) | 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. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer 
creates an exchange. There are 3 enums and the value can be one of: InOnly, 
InOut, InOptionalOut |  | ExchangePattern
 | *pollStrategy* (consumer) | 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. 
|  | PollingConsumerPollStrategy
-| *batchMessageNumber* (producer) | The number of messages composing a batch 
in stream mode | 10 | int
-| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 
| int
+| *batchMessageNumber* (producer) | The number of messages composing a batch 
in streaming upload mode | 10 | int
+| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode 
| 1000000 | int
 | *deleteAfterWrite* (producer) | Delete file object after the S3 file has 
been uploaded | false | boolean
 | *keyName* (producer) | Setting the key name for an element in the bucket 
through endpoint parameter |  | String
 | *lazyStartProducer* (producer) | 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 [...]
 | *multiPartUpload* (producer) | If it is true, camel will upload the file 
with multi part format, the part size is decided by the option of partSize | 
false | boolean
-| *namingStrategy* (producer) | The naming strategy to use in stream mode. 
There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
+| *namingStrategy* (producer) | The naming strategy to use in streaming upload 
mode. There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
 | *operation* (producer) | The operation to do in case the user don't want to 
do only an upload. There are 7 enums and the value can be one of: copyObject, 
listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange 
|  | AWS2S3Operations
 | *partSize* (producer) | Setup the partSize which is used in multi part 
upload, the default size is 25M. | 26214400 | long
+| *restartingPolicy* (producer) | The restarting policy to use in streaming 
upload mode. There are 2 enums and the value can be one of: override, lastPart 
| override | AWSS3RestartingPolicyEnum
 | *storageClass* (producer) | The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
 | *streamingUploadMode* (producer) | When stream mode is true the upload to 
bucket will be done in streaming | false | boolean
 | *streamingUploadTimeout* (producer) | While streaming upload mode is true, 
this option set the timeout to complete upload |  | long
diff --git 
a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3ComponentConfigurer.java
 
b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3ComponentConfigurer.java
index 4920a0a..9ff15ea 100644
--- 
a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3ComponentConfigurer.java
+++ 
b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3ComponentConfigurer.java
@@ -100,6 +100,8 @@ public class AWS2S3ComponentConfigurer extends 
PropertyConfigurerSupport impleme
         case "proxyprotocol":
         case "proxyProtocol": 
getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, 
software.amazon.awssdk.core.Protocol.class, value)); return true;
         case "region": 
getOrCreateConfiguration(target).setRegion(property(camelContext, 
java.lang.String.class, value)); return true;
+        case "restartingpolicy":
+        case "restartingPolicy": 
getOrCreateConfiguration(target).setRestartingPolicy(property(camelContext, 
org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum.class, 
value)); return true;
         case "secretkey":
         case "secretKey": 
getOrCreateConfiguration(target).setSecretKey(property(camelContext, 
java.lang.String.class, value)); return true;
         case "storageclass":
@@ -202,6 +204,8 @@ public class AWS2S3ComponentConfigurer extends 
PropertyConfigurerSupport impleme
         case "proxyprotocol":
         case "proxyProtocol": return 
software.amazon.awssdk.core.Protocol.class;
         case "region": return java.lang.String.class;
+        case "restartingpolicy":
+        case "restartingPolicy": return 
org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum.class;
         case "secretkey":
         case "secretKey": return java.lang.String.class;
         case "storageclass":
@@ -300,6 +304,8 @@ public class AWS2S3ComponentConfigurer extends 
PropertyConfigurerSupport impleme
         case "proxyprotocol":
         case "proxyProtocol": return 
getOrCreateConfiguration(target).getProxyProtocol();
         case "region": return getOrCreateConfiguration(target).getRegion();
+        case "restartingpolicy":
+        case "restartingPolicy": return 
getOrCreateConfiguration(target).getRestartingPolicy();
         case "secretkey":
         case "secretKey": return 
getOrCreateConfiguration(target).getSecretKey();
         case "storageclass":
diff --git 
a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointConfigurer.java
 
b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointConfigurer.java
index 9b57190..8f689c7 100644
--- 
a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointConfigurer.java
+++ 
b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointConfigurer.java
@@ -112,6 +112,8 @@ public class AWS2S3EndpointConfigurer extends 
PropertyConfigurerSupport implemen
         case "region": 
target.getConfiguration().setRegion(property(camelContext, 
java.lang.String.class, value)); return true;
         case "repeatcount":
         case "repeatCount": target.setRepeatCount(property(camelContext, 
long.class, value)); return true;
+        case "restartingpolicy":
+        case "restartingPolicy": 
target.getConfiguration().setRestartingPolicy(property(camelContext, 
org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum.class, 
value)); return true;
         case "runlogginglevel":
         case "runLoggingLevel": 
target.setRunLoggingLevel(property(camelContext, 
org.apache.camel.LoggingLevel.class, value)); return true;
         case "scheduledexecutorservice":
@@ -248,6 +250,8 @@ public class AWS2S3EndpointConfigurer extends 
PropertyConfigurerSupport implemen
         case "region": return java.lang.String.class;
         case "repeatcount":
         case "repeatCount": return long.class;
+        case "restartingpolicy":
+        case "restartingPolicy": return 
org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum.class;
         case "runlogginglevel":
         case "runLoggingLevel": return org.apache.camel.LoggingLevel.class;
         case "scheduledexecutorservice":
@@ -380,6 +384,8 @@ public class AWS2S3EndpointConfigurer extends 
PropertyConfigurerSupport implemen
         case "region": return target.getConfiguration().getRegion();
         case "repeatcount":
         case "repeatCount": return target.getRepeatCount();
+        case "restartingpolicy":
+        case "restartingPolicy": return 
target.getConfiguration().getRestartingPolicy();
         case "runlogginglevel":
         case "runLoggingLevel": return target.getRunLoggingLevel();
         case "scheduledexecutorservice":
diff --git 
a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointUriFactory.java
 
b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointUriFactory.java
index 6eb9073..6debae3 100644
--- 
a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointUriFactory.java
+++ 
b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointUriFactory.java
@@ -20,7 +20,7 @@ public class AWS2S3EndpointUriFactory extends 
org.apache.camel.support.component
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(67);
+        Set<String> props = new HashSet<>(68);
         props.add("customerAlgorithm");
         props.add("fileName");
         props.add("batchMessageNumber");
@@ -57,6 +57,7 @@ public class AWS2S3EndpointUriFactory extends 
org.apache.camel.support.component
         props.add("deleteAfterWrite");
         props.add("region");
         props.add("exceptionHandler");
+        props.add("restartingPolicy");
         props.add("backoffMultiplier");
         props.add("destinationBucket");
         props.add("amazonS3Presigner");
diff --git 
a/components/camel-aws/camel-aws2-s3/src/generated/resources/org/apache/camel/component/aws2/s3/aws2-s3.json
 
b/components/camel-aws/camel-aws2-s3/src/generated/resources/org/apache/camel/component/aws2/s3/aws2-s3.json
index 584eec8..dd7871e 100644
--- 
a/components/camel-aws/camel-aws2-s3/src/generated/resources/org/apache/camel/component/aws2/s3/aws2-s3.json
+++ 
b/components/camel-aws/camel-aws2-s3/src/generated/resources/org/apache/camel/component/aws2/s3/aws2-s3.json
@@ -52,15 +52,16 @@
     "moveAfterRead": { "kind": "property", "displayName": "Move After Read", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "Move objects from S3 bucket to a different 
bucket after they have been retrieved. To accomplish  [...]
     "prefix": { "kind": "property", "displayName": "Prefix", "group": 
"consumer", "label": "consumer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The prefix which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in." },
     "autocloseBody": { "kind": "property", "displayName": "Autoclose Body", 
"group": "consumer (advanced)", "label": "consumer,advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": true, 
"configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", 
"configurationField": "configuration", "description": "If this option is true 
and includeBody is false, then the S3Object.close() met [...]
-    "batchMessageNumber": { "kind": "property", "displayName": "Batch Message 
Number", "group": "producer", "label": "producer", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The number of messages composing a batch in 
stream mode" },
-    "batchSize": { "kind": "property", "displayName": "Batch Size", "group": 
"producer", "label": "producer", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 1000000, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The batch size (in bytes) in stream mode" },
+    "batchMessageNumber": { "kind": "property", "displayName": "Batch Message 
Number", "group": "producer", "label": "producer", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The number of messages composing a batch in 
streaming upload mode" },
+    "batchSize": { "kind": "property", "displayName": "Batch Size", "group": 
"producer", "label": "producer", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 1000000, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The batch size (in bytes) in streaming upload 
mode" },
     "deleteAfterWrite": { "kind": "property", "displayName": "Delete After 
Write", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "Delete file object after the S3 file has been 
uploaded" },
     "keyName": { "kind": "property", "displayName": "Key Name", "group": 
"producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "Setting the key name for an element in the 
bucket through endpoint parameter" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "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 star [...]
     "multiPartUpload": { "kind": "property", "displayName": "Multi Part 
Upload", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "If it is true, camel will upload the file with 
multi part format, the part size is decided b [...]
-    "namingStrategy": { "kind": "property", "displayName": "Naming Strategy", 
"group": "producer", "label": "producer", "required": false, "type": "object", 
"javaType": 
"org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum", "enum": [ 
"progressive", "random" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "progressive", "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "descript [...]
+    "namingStrategy": { "kind": "property", "displayName": "Naming Strategy", 
"group": "producer", "label": "producer", "required": false, "type": "object", 
"javaType": 
"org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum", "enum": [ 
"progressive", "random" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "progressive", "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "descript [...]
     "operation": { "kind": "property", "displayName": "Operation", "group": 
"producer", "label": "producer", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.aws2.s3.AWS2S3Operations", "enum": [ 
"copyObject", "listObjects", "deleteObject", "deleteBucket", "listBuckets", 
"getObject", "getObjectRange" ], "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
 [...]
     "partSize": { "kind": "property", "displayName": "Part Size", "group": 
"producer", "label": "producer", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 26214400, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "Setup the partSize which is used in multi part 
upload, the default size is 25M." },
+    "restartingPolicy": { "kind": "property", "displayName": "Restarting 
Policy", "group": "producer", "label": "producer", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum", "enum": 
[ "override", "lastPart" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "override", "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "descri [...]
     "storageClass": { "kind": "property", "displayName": "Storage Class", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request." },
     "streamingUploadMode": { "kind": "property", "displayName": "Streaming 
Upload Mode", "group": "producer", "label": "producer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "When stream mode is true the upload to bucket 
will be done in streaming" },
     "streamingUploadTimeout": { "kind": "property", "displayName": "Streaming 
Upload Timeout", "group": "producer", "label": "producer", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "While streaming upload mode is true, this 
option set the timeout to complete upload" },
@@ -108,15 +109,16 @@
     "exceptionHandler": { "kind": "parameter", "displayName": "Exception 
Handler", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "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 
con [...]
     "exchangePattern": { "kind": "parameter", "displayName": "Exchange 
Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", 
"required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", 
"InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, 
"description": "Sets the exchange pattern when the consumer creates an 
exchange." },
     "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", 
"group": "consumer (advanced)", "label": "consumer,advanced", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, 
"autowired": false, "secret": false, "description": "A pluggable 
org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your 
custom implementation to control error handling usually occurred during the 
poll operation  [...]
-    "batchMessageNumber": { "kind": "parameter", "displayName": "Batch Message 
Number", "group": "producer", "label": "producer", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The number of messages composing a batch in 
stream mode" },
-    "batchSize": { "kind": "parameter", "displayName": "Batch Size", "group": 
"producer", "label": "producer", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 1000000, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The batch size (in bytes) in stream mode" },
+    "batchMessageNumber": { "kind": "parameter", "displayName": "Batch Message 
Number", "group": "producer", "label": "producer", "required": false, "type": 
"integer", "javaType": "int", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 10, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The number of messages composing a batch in 
streaming upload mode" },
+    "batchSize": { "kind": "parameter", "displayName": "Batch Size", "group": 
"producer", "label": "producer", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 1000000, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The batch size (in bytes) in streaming upload 
mode" },
     "deleteAfterWrite": { "kind": "parameter", "displayName": "Delete After 
Write", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "Delete file object after the S3 file has been 
uploaded" },
     "keyName": { "kind": "parameter", "displayName": "Key Name", "group": 
"producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "Setting the key name for an element in the 
bucket through endpoint parameter" },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start 
Producer", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "description": "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 sta [...]
     "multiPartUpload": { "kind": "parameter", "displayName": "Multi Part 
Upload", "group": "producer", "label": "producer", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "If it is true, camel will upload the file with 
multi part format, the part size is decided  [...]
-    "namingStrategy": { "kind": "parameter", "displayName": "Naming Strategy", 
"group": "producer", "label": "producer", "required": false, "type": "object", 
"javaType": 
"org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum", "enum": [ 
"progressive", "random" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "progressive", "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "descrip [...]
+    "namingStrategy": { "kind": "parameter", "displayName": "Naming Strategy", 
"group": "producer", "label": "producer", "required": false, "type": "object", 
"javaType": 
"org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum", "enum": [ 
"progressive", "random" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "progressive", "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "descrip [...]
     "operation": { "kind": "parameter", "displayName": "Operation", "group": 
"producer", "label": "producer", "required": false, "type": "object", 
"javaType": "org.apache.camel.component.aws2.s3.AWS2S3Operations", "enum": [ 
"copyObject", "listObjects", "deleteObject", "deleteBucket", "listBuckets", 
"getObject", "getObjectRange" ], "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
[...]
     "partSize": { "kind": "parameter", "displayName": "Part Size", "group": 
"producer", "label": "producer", "required": false, "type": "integer", 
"javaType": "long", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": 26214400, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "Setup the partSize which is used in multi part 
upload, the default size is 25M." },
+    "restartingPolicy": { "kind": "parameter", "displayName": "Restarting 
Policy", "group": "producer", "label": "producer", "required": false, "type": 
"object", "javaType": 
"org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum", "enum": 
[ "override", "lastPart" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "override", "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "descr [...]
     "storageClass": { "kind": "parameter", "displayName": "Storage Class", 
"group": "producer", "label": "producer", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request." },
     "streamingUploadMode": { "kind": "parameter", "displayName": "Streaming 
Upload Mode", "group": "producer", "label": "producer", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "When stream mode is true the upload to bucket 
will be done in streaming" },
     "streamingUploadTimeout": { "kind": "parameter", "displayName": "Streaming 
Upload Timeout", "group": "producer", "label": "producer", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "configurationClass": 
"org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": 
"configuration", "description": "While streaming upload mode is true, this 
option set the timeout to complete upload" },
diff --git 
a/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc 
b/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc
index b4dd75b..188dab6 100644
--- a/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc
+++ b/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc
@@ -47,7 +47,7 @@ 
from("aws2-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&pref
 
 
 // component options: START
-The AWS 2 S3 Storage Service component supports 48 options, which are listed 
below.
+The AWS 2 S3 Storage Service component supports 49 options, which are listed 
below.
 
 
 
@@ -84,15 +84,16 @@ The AWS 2 S3 Storage Service component supports 48 options, 
which are listed bel
 | *moveAfterRead* (consumer) | Move objects from S3 bucket to a different 
bucket after they have been retrieved. To accomplish the operation the 
destinationBucket option must be set. The copy bucket operation is only 
performed if the Exchange is committed. If a rollback occurs, the object is not 
moved. | false | boolean
 | *prefix* (consumer) | The prefix which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
 | *autocloseBody* (consumer) | If this option is true and includeBody is 
false, then the S3Object.close() method will be called on exchange completion. 
This option is strongly related to includeBody option. In case of setting 
includeBody to false and autocloseBody to false, it will be up to the caller to 
close the S3Object stream. Setting autocloseBody to true, will close the 
S3Object stream automatically. | true | boolean
-| *batchMessageNumber* (producer) | The number of messages composing a batch 
in stream mode | 10 | int
-| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 
| int
+| *batchMessageNumber* (producer) | The number of messages composing a batch 
in streaming upload mode | 10 | int
+| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode 
| 1000000 | int
 | *deleteAfterWrite* (producer) | Delete file object after the S3 file has 
been uploaded | false | boolean
 | *keyName* (producer) | Setting the key name for an element in the bucket 
through endpoint parameter |  | String
 | *lazyStartProducer* (producer) | 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 [...]
 | *multiPartUpload* (producer) | If it is true, camel will upload the file 
with multi part format, the part size is decided by the option of partSize | 
false | boolean
-| *namingStrategy* (producer) | The naming strategy to use in stream mode. 
There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
+| *namingStrategy* (producer) | The naming strategy to use in streaming upload 
mode. There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
 | *operation* (producer) | The operation to do in case the user don't want to 
do only an upload. There are 7 enums and the value can be one of: copyObject, 
listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange 
|  | AWS2S3Operations
 | *partSize* (producer) | Setup the partSize which is used in multi part 
upload, the default size is 25M. | 26214400 | long
+| *restartingPolicy* (producer) | The restarting policy to use in streaming 
upload mode. There are 2 enums and the value can be one of: override, lastPart 
| override | AWSS3RestartingPolicyEnum
 | *storageClass* (producer) | The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
 | *streamingUploadMode* (producer) | When stream mode is true the upload to 
bucket will be done in streaming | false | boolean
 | *streamingUploadTimeout* (producer) | While streaming upload mode is true, 
this option set the timeout to complete upload |  | long
@@ -134,7 +135,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (66 parameters):
+=== Query Parameters (67 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -175,15 +176,16 @@ with the following path and query parameters:
 | *exceptionHandler* (consumer) | 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. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer 
creates an exchange. There are 3 enums and the value can be one of: InOnly, 
InOut, InOptionalOut |  | ExchangePattern
 | *pollStrategy* (consumer) | 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. 
|  | PollingConsumerPollStrategy
-| *batchMessageNumber* (producer) | The number of messages composing a batch 
in stream mode | 10 | int
-| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 
| int
+| *batchMessageNumber* (producer) | The number of messages composing a batch 
in streaming upload mode | 10 | int
+| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode 
| 1000000 | int
 | *deleteAfterWrite* (producer) | Delete file object after the S3 file has 
been uploaded | false | boolean
 | *keyName* (producer) | Setting the key name for an element in the bucket 
through endpoint parameter |  | String
 | *lazyStartProducer* (producer) | 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 [...]
 | *multiPartUpload* (producer) | If it is true, camel will upload the file 
with multi part format, the part size is decided by the option of partSize | 
false | boolean
-| *namingStrategy* (producer) | The naming strategy to use in stream mode. 
There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
+| *namingStrategy* (producer) | The naming strategy to use in streaming upload 
mode. There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
 | *operation* (producer) | The operation to do in case the user don't want to 
do only an upload. There are 7 enums and the value can be one of: copyObject, 
listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange 
|  | AWS2S3Operations
 | *partSize* (producer) | Setup the partSize which is used in multi part 
upload, the default size is 25M. | 26214400 | long
+| *restartingPolicy* (producer) | The restarting policy to use in streaming 
upload mode. There are 2 enums and the value can be one of: override, lastPart 
| override | AWSS3RestartingPolicyEnum
 | *storageClass* (producer) | The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
 | *streamingUploadMode* (producer) | When stream mode is true the upload to 
bucket will be done in streaming | false | boolean
 | *streamingUploadTimeout* (producer) | While streaming upload mode is true, 
this option set the timeout to complete upload |  | long
diff --git 
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2S3ComponentBuilderFactory.java
 
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2S3ComponentBuilderFactory.java
index 9218000..8af4047 100644
--- 
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2S3ComponentBuilderFactory.java
+++ 
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2S3ComponentBuilderFactory.java
@@ -557,7 +557,7 @@ public interface Aws2S3ComponentBuilderFactory {
             return this;
         }
         /**
-         * The number of messages composing a batch in stream mode.
+         * The number of messages composing a batch in streaming upload mode.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -572,7 +572,7 @@ public interface Aws2S3ComponentBuilderFactory {
             return this;
         }
         /**
-         * The batch size (in bytes) in stream mode.
+         * The batch size (in bytes) in streaming upload mode.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -657,7 +657,7 @@ public interface Aws2S3ComponentBuilderFactory {
             return this;
         }
         /**
-         * The naming strategy to use in stream mode.
+         * The naming strategy to use in streaming upload mode.
          * 
          * The option is a:
          * 
&lt;code&gt;org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum&lt;/code&gt;
 type.
@@ -706,6 +706,23 @@ public interface Aws2S3ComponentBuilderFactory {
             return this;
         }
         /**
+         * The restarting policy to use in streaming upload mode.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum&lt;/code&gt;
 type.
+         * 
+         * Default: override
+         * Group: producer
+         * 
+         * @param restartingPolicy the value to set
+         * @return the dsl builder
+         */
+        default Aws2S3ComponentBuilder restartingPolicy(
+                
org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum 
restartingPolicy) {
+            doSetProperty("restartingPolicy", restartingPolicy);
+            return this;
+        }
+        /**
          * The storage class to set in the
          * com.amazonaws.services.s3.model.PutObjectRequest request.
          * 
@@ -909,6 +926,7 @@ public interface Aws2S3ComponentBuilderFactory {
             case "namingStrategy": getOrCreateConfiguration((AWS2S3Component) 
component).setNamingStrategy((org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum)
 value); return true;
             case "operation": getOrCreateConfiguration((AWS2S3Component) 
component).setOperation((org.apache.camel.component.aws2.s3.AWS2S3Operations) 
value); return true;
             case "partSize": getOrCreateConfiguration((AWS2S3Component) 
component).setPartSize((long) value); return true;
+            case "restartingPolicy": 
getOrCreateConfiguration((AWS2S3Component) 
component).setRestartingPolicy((org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum)
 value); return true;
             case "storageClass": getOrCreateConfiguration((AWS2S3Component) 
component).setStorageClass((java.lang.String) value); return true;
             case "streamingUploadMode": 
getOrCreateConfiguration((AWS2S3Component) 
component).setStreamingUploadMode((boolean) value); return true;
             case "streamingUploadTimeout": 
getOrCreateConfiguration((AWS2S3Component) 
component).setStreamingUploadTimeout((long) value); return true;
diff --git 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java
 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java
index bcc7ff6..89e3638 100644
--- 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java
+++ 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java
@@ -1937,7 +1937,7 @@ public interface AWS2S3EndpointBuilderFactory {
             return this;
         }
         /**
-         * The number of messages composing a batch in stream mode.
+         * The number of messages composing a batch in streaming upload mode.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -1953,7 +1953,7 @@ public interface AWS2S3EndpointBuilderFactory {
             return this;
         }
         /**
-         * The number of messages composing a batch in stream mode.
+         * The number of messages composing a batch in streaming upload mode.
          * 
          * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -1969,7 +1969,7 @@ public interface AWS2S3EndpointBuilderFactory {
             return this;
         }
         /**
-         * The batch size (in bytes) in stream mode.
+         * The batch size (in bytes) in streaming upload mode.
          * 
          * The option is a: &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -1984,7 +1984,7 @@ public interface AWS2S3EndpointBuilderFactory {
             return this;
         }
         /**
-         * The batch size (in bytes) in stream mode.
+         * The batch size (in bytes) in streaming upload mode.
          * 
          * The option will be converted to a &lt;code&gt;int&lt;/code&gt; type.
          * 
@@ -2131,7 +2131,7 @@ public interface AWS2S3EndpointBuilderFactory {
             return this;
         }
         /**
-         * The naming strategy to use in stream mode.
+         * The naming strategy to use in streaming upload mode.
          * 
          * The option is a:
          * 
&lt;code&gt;org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum&lt;/code&gt;
 type.
@@ -2148,7 +2148,7 @@ public interface AWS2S3EndpointBuilderFactory {
             return this;
         }
         /**
-         * The naming strategy to use in stream mode.
+         * The naming strategy to use in streaming upload mode.
          * 
          * The option will be converted to a
          * 
&lt;code&gt;org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum&lt;/code&gt;
 type.
@@ -2228,6 +2228,40 @@ public interface AWS2S3EndpointBuilderFactory {
             return this;
         }
         /**
+         * The restarting policy to use in streaming upload mode.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum&lt;/code&gt;
 type.
+         * 
+         * Default: override
+         * Group: producer
+         * 
+         * @param restartingPolicy the value to set
+         * @return the dsl builder
+         */
+        default AWS2S3EndpointProducerBuilder restartingPolicy(
+                AWSS3RestartingPolicyEnum restartingPolicy) {
+            doSetProperty("restartingPolicy", restartingPolicy);
+            return this;
+        }
+        /**
+         * The restarting policy to use in streaming upload mode.
+         * 
+         * The option will be converted to a
+         * 
&lt;code&gt;org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum&lt;/code&gt;
 type.
+         * 
+         * Default: override
+         * Group: producer
+         * 
+         * @param restartingPolicy the value to set
+         * @return the dsl builder
+         */
+        default AWS2S3EndpointProducerBuilder restartingPolicy(
+                String restartingPolicy) {
+            doSetProperty("restartingPolicy", restartingPolicy);
+            return this;
+        }
+        /**
          * The storage class to set in the
          * com.amazonaws.services.s3.model.PutObjectRequest request.
          * 
@@ -2962,6 +2996,15 @@ public interface AWS2S3EndpointBuilderFactory {
         createDownloadLink;
     }
 
+    /**
+     * Proxy enum for
+     * 
<code>org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum</code>
 enum.
+     */
+    enum AWSS3RestartingPolicyEnum {
+        override,
+        lastPart;
+    }
+
     public interface AWS2S3Builders {
         /**
          * AWS 2 S3 Storage Service (camel-aws2-s3)
diff --git a/docs/components/modules/ROOT/pages/aws2-s3-component.adoc 
b/docs/components/modules/ROOT/pages/aws2-s3-component.adoc
index a895c3a..0bfe40c 100644
--- a/docs/components/modules/ROOT/pages/aws2-s3-component.adoc
+++ b/docs/components/modules/ROOT/pages/aws2-s3-component.adoc
@@ -49,7 +49,7 @@ 
from("aws2-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&pref
 
 
 // component options: START
-The AWS 2 S3 Storage Service component supports 48 options, which are listed 
below.
+The AWS 2 S3 Storage Service component supports 49 options, which are listed 
below.
 
 
 
@@ -86,15 +86,16 @@ The AWS 2 S3 Storage Service component supports 48 options, 
which are listed bel
 | *moveAfterRead* (consumer) | Move objects from S3 bucket to a different 
bucket after they have been retrieved. To accomplish the operation the 
destinationBucket option must be set. The copy bucket operation is only 
performed if the Exchange is committed. If a rollback occurs, the object is not 
moved. | false | boolean
 | *prefix* (consumer) | The prefix which is used in the 
com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we 
are interested in. |  | String
 | *autocloseBody* (consumer) | If this option is true and includeBody is 
false, then the S3Object.close() method will be called on exchange completion. 
This option is strongly related to includeBody option. In case of setting 
includeBody to false and autocloseBody to false, it will be up to the caller to 
close the S3Object stream. Setting autocloseBody to true, will close the 
S3Object stream automatically. | true | boolean
-| *batchMessageNumber* (producer) | The number of messages composing a batch 
in stream mode | 10 | int
-| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 
| int
+| *batchMessageNumber* (producer) | The number of messages composing a batch 
in streaming upload mode | 10 | int
+| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode 
| 1000000 | int
 | *deleteAfterWrite* (producer) | Delete file object after the S3 file has 
been uploaded | false | boolean
 | *keyName* (producer) | Setting the key name for an element in the bucket 
through endpoint parameter |  | String
 | *lazyStartProducer* (producer) | 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 [...]
 | *multiPartUpload* (producer) | If it is true, camel will upload the file 
with multi part format, the part size is decided by the option of partSize | 
false | boolean
-| *namingStrategy* (producer) | The naming strategy to use in stream mode. 
There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
+| *namingStrategy* (producer) | The naming strategy to use in streaming upload 
mode. There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
 | *operation* (producer) | The operation to do in case the user don't want to 
do only an upload. There are 7 enums and the value can be one of: copyObject, 
listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange 
|  | AWS2S3Operations
 | *partSize* (producer) | Setup the partSize which is used in multi part 
upload, the default size is 25M. | 26214400 | long
+| *restartingPolicy* (producer) | The restarting policy to use in streaming 
upload mode. There are 2 enums and the value can be one of: override, lastPart 
| override | AWSS3RestartingPolicyEnum
 | *storageClass* (producer) | The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
 | *streamingUploadMode* (producer) | When stream mode is true the upload to 
bucket will be done in streaming | false | boolean
 | *streamingUploadTimeout* (producer) | While streaming upload mode is true, 
this option set the timeout to complete upload |  | long
@@ -136,7 +137,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (66 parameters):
+=== Query Parameters (67 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -177,15 +178,16 @@ with the following path and query parameters:
 | *exceptionHandler* (consumer) | 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. |  | ExceptionHandler
 | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer 
creates an exchange. There are 3 enums and the value can be one of: InOnly, 
InOut, InOptionalOut |  | ExchangePattern
 | *pollStrategy* (consumer) | 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. 
|  | PollingConsumerPollStrategy
-| *batchMessageNumber* (producer) | The number of messages composing a batch 
in stream mode | 10 | int
-| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 
| int
+| *batchMessageNumber* (producer) | The number of messages composing a batch 
in streaming upload mode | 10 | int
+| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode 
| 1000000 | int
 | *deleteAfterWrite* (producer) | Delete file object after the S3 file has 
been uploaded | false | boolean
 | *keyName* (producer) | Setting the key name for an element in the bucket 
through endpoint parameter |  | String
 | *lazyStartProducer* (producer) | 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 [...]
 | *multiPartUpload* (producer) | If it is true, camel will upload the file 
with multi part format, the part size is decided by the option of partSize | 
false | boolean
-| *namingStrategy* (producer) | The naming strategy to use in stream mode. 
There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
+| *namingStrategy* (producer) | The naming strategy to use in streaming upload 
mode. There are 2 enums and the value can be one of: progressive, random | 
progressive | AWSS3NamingStrategyEnum
 | *operation* (producer) | The operation to do in case the user don't want to 
do only an upload. There are 7 enums and the value can be one of: copyObject, 
listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange 
|  | AWS2S3Operations
 | *partSize* (producer) | Setup the partSize which is used in multi part 
upload, the default size is 25M. | 26214400 | long
+| *restartingPolicy* (producer) | The restarting policy to use in streaming 
upload mode. There are 2 enums and the value can be one of: override, lastPart 
| override | AWSS3RestartingPolicyEnum
 | *storageClass* (producer) | The storage class to set in the 
com.amazonaws.services.s3.model.PutObjectRequest request. |  | String
 | *streamingUploadMode* (producer) | When stream mode is true the upload to 
bucket will be done in streaming | false | boolean
 | *streamingUploadTimeout* (producer) | While streaming upload mode is true, 
this option set the timeout to complete upload |  | long

Reply via email to