This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-3.14.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.14.x by this push:
new 86dd995f5ad Camel 3.14 sftp fix (#11855)
86dd995f5ad is described below
commit 86dd995f5ad3eb96ad8300038c307a9ecb617425
Author: Manuel <[email protected]>
AuthorDate: Fri Oct 27 22:10:40 2023 +0200
Camel 3.14 sftp fix (#11855)
* camel-ftp - Force using synchronous due to thread-safety of ftp client
used by the consumer.
* camel-ftp - Force using synchronous due to thread-safety of ftp client
used by the consumer.
---------
Co-authored-by: Claus Ibsen <[email protected]>
---
.../camel/component/file/remote/FtpEndpointConfigurer.java | 3 ---
.../camel/component/file/remote/FtpEndpointUriFactory.java | 3 +--
.../camel/component/file/remote/FtpsEndpointUriFactory.java | 3 +--
.../camel/component/file/remote/SftpEndpointConfigurer.java | 3 ---
.../camel/component/file/remote/SftpEndpointUriFactory.java | 3 +--
.../resources/org/apache/camel/component/file/remote/ftp.json | 1 -
.../resources/org/apache/camel/component/file/remote/ftps.json | 1 -
.../resources/org/apache/camel/component/file/remote/sftp.json | 1 -
.../org/apache/camel/component/file/remote/FtpEndpoint.java | 2 +-
.../org/apache/camel/component/file/remote/FtpsEndpoint.java | 2 +-
.../apache/camel/component/file/remote/RemoteFileEndpoint.java | 10 +++++++++-
.../org/apache/camel/component/file/remote/SftpEndpoint.java | 2 +-
.../org/apache/camel/component/scp/ScpEndpointConfigurer.java | 3 ---
.../org/apache/camel/component/scp/ScpEndpointUriFactory.java | 3 +--
.../resources/org/apache/camel/component/scp/scp.json | 1 -
.../main/java/org/apache/camel/component/scp/ScpEndpoint.java | 2 +-
16 files changed, 17 insertions(+), 26 deletions(-)
diff --git
a/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpEndpointConfigurer.java
b/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpEndpointConfigurer.java
index e9516f7767c..714f6981264 100644
---
a/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpEndpointConfigurer.java
+++
b/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpEndpointConfigurer.java
@@ -196,7 +196,6 @@ public class FtpEndpointConfigurer extends
PropertyConfigurerSupport implements
case "stepwise":
target.getConfiguration().setStepwise(property(camelContext, boolean.class,
value)); return true;
case "streamdownload":
case "streamDownload":
target.getConfiguration().setStreamDownload(property(camelContext,
boolean.class, value)); return true;
- case "synchronous": target.setSynchronous(property(camelContext,
boolean.class, value)); return true;
case "tempfilename":
case "tempFileName": target.setTempFileName(property(camelContext,
java.lang.String.class, value)); return true;
case "tempprefix":
@@ -399,7 +398,6 @@ public class FtpEndpointConfigurer extends
PropertyConfigurerSupport implements
case "stepwise": return boolean.class;
case "streamdownload":
case "streamDownload": return boolean.class;
- case "synchronous": return boolean.class;
case "tempfilename":
case "tempFileName": return java.lang.String.class;
case "tempprefix":
@@ -603,7 +601,6 @@ public class FtpEndpointConfigurer extends
PropertyConfigurerSupport implements
case "stepwise": return target.getConfiguration().isStepwise();
case "streamdownload":
case "streamDownload": return
target.getConfiguration().isStreamDownload();
- case "synchronous": return target.isSynchronous();
case "tempfilename":
case "tempFileName": return target.getTempFileName();
case "tempprefix":
diff --git
a/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpEndpointUriFactory.java
b/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpEndpointUriFactory.java
index 590bb5aa64b..0f023f36850 100644
---
a/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpEndpointUriFactory.java
+++
b/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpEndpointUriFactory.java
@@ -20,11 +20,10 @@ public class FtpEndpointUriFactory extends
org.apache.camel.support.component.En
private static final Set<String> PROPERTY_NAMES;
private static final Set<String> SECRET_PROPERTY_NAMES;
static {
- Set<String> props = new HashSet<>(114);
+ Set<String> props = new HashSet<>(113);
props.add("disconnect");
props.add("moveExistingFileStrategy");
props.add("fileName");
- props.add("synchronous");
props.add("idempotent");
props.add("password");
props.add("preSort");
diff --git
a/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpsEndpointUriFactory.java
b/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpsEndpointUriFactory.java
index 14b488289fa..e9ad9740299 100644
---
a/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpsEndpointUriFactory.java
+++
b/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/FtpsEndpointUriFactory.java
@@ -20,11 +20,10 @@ public class FtpsEndpointUriFactory extends
org.apache.camel.support.component.E
private static final Set<String> PROPERTY_NAMES;
private static final Set<String> SECRET_PROPERTY_NAMES;
static {
- Set<String> props = new HashSet<>(122);
+ Set<String> props = new HashSet<>(121);
props.add("disconnect");
props.add("moveExistingFileStrategy");
props.add("fileName");
- props.add("synchronous");
props.add("idempotent");
props.add("password");
props.add("preSort");
diff --git
a/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/SftpEndpointConfigurer.java
b/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/SftpEndpointConfigurer.java
index 2701c9adbc8..dddca4ae5b5 100644
---
a/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/SftpEndpointConfigurer.java
+++
b/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/SftpEndpointConfigurer.java
@@ -228,7 +228,6 @@ public class SftpEndpointConfigurer extends
PropertyConfigurerSupport implements
case "streamDownload":
target.getConfiguration().setStreamDownload(property(camelContext,
boolean.class, value)); return true;
case "stricthostkeychecking":
case "strictHostKeyChecking":
target.getConfiguration().setStrictHostKeyChecking(property(camelContext,
java.lang.String.class, value)); return true;
- case "synchronous": target.setSynchronous(property(camelContext,
boolean.class, value)); return true;
case "tempfilename":
case "tempFileName": target.setTempFileName(property(camelContext,
java.lang.String.class, value)); return true;
case "tempprefix":
@@ -459,7 +458,6 @@ public class SftpEndpointConfigurer extends
PropertyConfigurerSupport implements
case "streamDownload": return boolean.class;
case "stricthostkeychecking":
case "strictHostKeyChecking": return java.lang.String.class;
- case "synchronous": return boolean.class;
case "tempfilename":
case "tempFileName": return java.lang.String.class;
case "tempprefix":
@@ -691,7 +689,6 @@ public class SftpEndpointConfigurer extends
PropertyConfigurerSupport implements
case "streamDownload": return
target.getConfiguration().isStreamDownload();
case "stricthostkeychecking":
case "strictHostKeyChecking": return
target.getConfiguration().getStrictHostKeyChecking();
- case "synchronous": return target.isSynchronous();
case "tempfilename":
case "tempFileName": return target.getTempFileName();
case "tempprefix":
diff --git
a/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/SftpEndpointUriFactory.java
b/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/SftpEndpointUriFactory.java
index c432b732571..1dd925ee66a 100644
---
a/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/SftpEndpointUriFactory.java
+++
b/components/camel-ftp/src/generated/java/org/apache/camel/component/file/remote/SftpEndpointUriFactory.java
@@ -20,12 +20,11 @@ public class SftpEndpointUriFactory extends
org.apache.camel.support.component.E
private static final Set<String> PROPERTY_NAMES;
private static final Set<String> SECRET_PROPERTY_NAMES;
static {
- Set<String> props = new HashSet<>(129);
+ Set<String> props = new HashSet<>(128);
props.add("disconnect");
props.add("moveExistingFileStrategy");
props.add("fileName");
props.add("strictHostKeyChecking");
- props.add("synchronous");
props.add("idempotent");
props.add("password");
props.add("privateKeyPassphrase");
diff --git
a/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/ftp.json
b/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/ftp.json
index 7304a2cab49..02426efb4ba 100644
---
a/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/ftp.json
+++
b/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/ftp.json
@@ -91,7 +91,6 @@
"siteCommand": { "kind": "parameter", "displayName": "Site Command",
"group": "advanced", "label": "advanced", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.file.remote.FtpConfiguration",
"configurationField": "configuration", "description": "Sets optional site
command(s) to be executed after successful login. Multiple site commands can be
separated using [...]
"soTimeout": { "kind": "parameter", "displayName": "So Timeout", "group":
"advanced", "label": "advanced", "required": false, "type": "duration",
"javaType": "int", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "300000", "configurationClass":
"org.apache.camel.component.file.remote.FtpConfiguration",
"configurationField": "configuration", "description": "Sets the so timeout FTP
and FTPS Is the SocketOptions.SO_TIMEOUT value in millis. Recommended option is
[...]
"stepwise": { "kind": "parameter", "displayName": "Stepwise", "group":
"advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": true, "configurationClass":
"org.apache.camel.component.file.remote.FtpConfiguration",
"configurationField": "configuration", "description": "Sets whether we should
stepwise change directories while traversing file structures when downloading
files, [...]
- "synchronous": { "kind": "parameter", "displayName": "Synchronous",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "description": "Sets whether synchronous
processing should be strictly used" },
"throwExceptionOnConnectFailed": { "kind": "parameter", "displayName":
"Throw Exception On Connect Failed", "group": "advanced", "label": "advanced",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": false,
"configurationClass":
"org.apache.camel.component.file.remote.FtpConfiguration",
"configurationField": "configuration", "description": "Should an exception be
thrown if connection failed (exhauste [...]
"timeout": { "kind": "parameter", "displayName": "Timeout", "group":
"advanced", "label": "advanced", "required": false, "type": "duration",
"javaType": "int", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "30000", "configurationClass":
"org.apache.camel.component.file.remote.FtpConfiguration",
"configurationField": "configuration", "description": "Sets the data timeout
for waiting for reply Used only by FTPClient" },
"antExclude": { "kind": "parameter", "displayName": "Ant Exclude",
"group": "filter", "label": "consumer,filter", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "description": "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." },
diff --git
a/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/ftps.json
b/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/ftps.json
index 4bfcc4bb734..7e63f9792e5 100644
---
a/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/ftps.json
+++
b/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/ftps.json
@@ -92,7 +92,6 @@
"siteCommand": { "kind": "parameter", "displayName": "Site Command",
"group": "advanced", "label": "advanced", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.file.remote.FtpsConfiguration",
"configurationField": "configuration", "description": "Sets optional site
command(s) to be executed after successful login. Multiple site commands can be
separated usin [...]
"soTimeout": { "kind": "parameter", "displayName": "So Timeout", "group":
"advanced", "label": "advanced", "required": false, "type": "duration",
"javaType": "int", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "300000", "configurationClass":
"org.apache.camel.component.file.remote.FtpsConfiguration",
"configurationField": "configuration", "description": "Sets the so timeout FTP
and FTPS Is the SocketOptions.SO_TIMEOUT value in millis. Recommended option i
[...]
"stepwise": { "kind": "parameter", "displayName": "Stepwise", "group":
"advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": true, "configurationClass":
"org.apache.camel.component.file.remote.FtpsConfiguration",
"configurationField": "configuration", "description": "Sets whether we should
stepwise change directories while traversing file structures when downloading
files [...]
- "synchronous": { "kind": "parameter", "displayName": "Synchronous",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "description": "Sets whether synchronous
processing should be strictly used" },
"throwExceptionOnConnectFailed": { "kind": "parameter", "displayName":
"Throw Exception On Connect Failed", "group": "advanced", "label": "advanced",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": false,
"configurationClass":
"org.apache.camel.component.file.remote.FtpsConfiguration",
"configurationField": "configuration", "description": "Should an exception be
thrown if connection failed (exhaust [...]
"timeout": { "kind": "parameter", "displayName": "Timeout", "group":
"advanced", "label": "advanced", "required": false, "type": "duration",
"javaType": "int", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "30000", "configurationClass":
"org.apache.camel.component.file.remote.FtpsConfiguration",
"configurationField": "configuration", "description": "Sets the data timeout
for waiting for reply Used only by FTPClient" },
"antExclude": { "kind": "parameter", "displayName": "Ant Exclude",
"group": "filter", "label": "consumer,filter", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "description": "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." },
diff --git
a/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/sftp.json
b/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/sftp.json
index 98e378da47c..09c906a8e2e 100644
---
a/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/sftp.json
+++
b/components/camel-ftp/src/generated/resources/org/apache/camel/component/file/remote/sftp.json
@@ -87,7 +87,6 @@
"serverAliveInterval": { "kind": "parameter", "displayName": "Server Alive
Interval", "group": "advanced", "label": "advanced", "required": false, "type":
"integer", "javaType": "int", "deprecated": false, "autowired": false,
"secret": false, "configurationClass":
"org.apache.camel.component.file.remote.SftpConfiguration",
"configurationField": "configuration", "description": "Sets the interval
(millis) to send a keep-alive message. If zero is specified, any keep-alive
message must n [...]
"soTimeout": { "kind": "parameter", "displayName": "So Timeout", "group":
"advanced", "label": "advanced", "required": false, "type": "duration",
"javaType": "int", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "300000", "configurationClass":
"org.apache.camel.component.file.remote.SftpConfiguration",
"configurationField": "configuration", "description": "Sets the so timeout FTP
and FTPS Is the SocketOptions.SO_TIMEOUT value in millis. Recommended option i
[...]
"stepwise": { "kind": "parameter", "displayName": "Stepwise", "group":
"advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": true, "configurationClass":
"org.apache.camel.component.file.remote.SftpConfiguration",
"configurationField": "configuration", "description": "Sets whether we should
stepwise change directories while traversing file structures when downloading
files [...]
- "synchronous": { "kind": "parameter", "displayName": "Synchronous",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "description": "Sets whether synchronous
processing should be strictly used" },
"throwExceptionOnConnectFailed": { "kind": "parameter", "displayName":
"Throw Exception On Connect Failed", "group": "advanced", "label": "advanced",
"required": false, "type": "boolean", "javaType": "boolean", "deprecated":
false, "autowired": false, "secret": false, "defaultValue": false,
"configurationClass":
"org.apache.camel.component.file.remote.SftpConfiguration",
"configurationField": "configuration", "description": "Should an exception be
thrown if connection failed (exhaust [...]
"timeout": { "kind": "parameter", "displayName": "Timeout", "group":
"advanced", "label": "advanced", "required": false, "type": "duration",
"javaType": "int", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "30000", "configurationClass":
"org.apache.camel.component.file.remote.SftpConfiguration",
"configurationField": "configuration", "description": "Sets the data timeout
for waiting for reply Used only by FTPClient" },
"antExclude": { "kind": "parameter", "displayName": "Ant Exclude",
"group": "filter", "label": "consumer,filter", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": false, "description": "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." },
diff --git
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java
index 2b3191ba5a7..58d878e8df7 100644
---
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java
+++
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java
@@ -53,7 +53,7 @@ import org.slf4j.LoggerFactory;
+
"readLockIdempotentReleaseDelay,readLockIdempotentReleaseExecutorService,"
+
"directoryMustExist,extendedAttributes,probeContentType,startingDirectoryMustExist,"
+
"startingDirectoryMustHaveAccess,chmodDirectory,forceWrites,copyAndDeleteOnRenameFail,"
- + "renameUsingCopy")
+ + "renameUsingCopy,synchronous")
@ManagedResource(description = "Managed FtpEndpoint")
public class FtpEndpoint<T extends FTPFile> extends
RemoteFileEndpoint<FTPFile> {
diff --git
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java
index 736ea35839e..fac83e02578 100644
---
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java
+++
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java
@@ -50,7 +50,7 @@ import org.slf4j.LoggerFactory;
+
"readLockIdempotentReleaseDelay,readLockIdempotentReleaseExecutorService,"
+
"directoryMustExist,extendedAttributes,probeContentType,startingDirectoryMustExist,"
+
"startingDirectoryMustHaveAccess,chmodDirectory,forceWrites,copyAndDeleteOnRenameFail,"
- + "renameUsingCopy")
+ + "renameUsingCopy,synchronous")
@ManagedResource(description = "Managed FtpsEndpoint")
public class FtpsEndpoint extends FtpEndpoint<FTPFile> {
private static final Logger LOG =
LoggerFactory.getLogger(FtpsEndpoint.class);
diff --git
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java
index 904805d6cf6..a8e78d54e40 100644
---
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java
+++
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileEndpoint.java
@@ -68,6 +68,8 @@ public abstract class RemoteFileEndpoint<T> extends
GenericFileEndpoint<T> {
private boolean download = true;
public RemoteFileEndpoint() {
+ // ftp must be synchronous as the ftp-client is not thread-safe
+ setSynchronous(true);
// no args constructor for spring bean endpoint configuration
// for ftp we need to use higher interval/checkout that for files
setReadLockTimeout(20000);
@@ -80,6 +82,8 @@ public abstract class RemoteFileEndpoint<T> extends
GenericFileEndpoint<T> {
public RemoteFileEndpoint(String uri, RemoteFileComponent<T> component,
RemoteFileConfiguration configuration) {
super(uri, component);
this.configuration = configuration;
+ // ftp must be synchronous as the ftp-client is not thread-safe
+ setSynchronous(true);
// for ftp we need to use higher interval/checkout that for files
setReadLockTimeout(20000);
setReadLockCheckInterval(5000);
@@ -180,12 +184,16 @@ public abstract class RemoteFileEndpoint<T> extends
GenericFileEndpoint<T> {
/**
* Validates this endpoint if its configured properly.
*
- * @throws Exception is thrown if endpoint is invalid configured for its
mandatory options
+ * @throws IllegalArgumentException is thrown if endpoint is invalid
configured for its mandatory options
*/
protected void afterPropertiesSet() {
RemoteFileConfiguration config = getConfiguration();
StringHelper.notEmpty(config.getHost(), "host");
StringHelper.notEmpty(config.getProtocol(), "protocol");
+
+ if (!isSynchronous()) {
+ throw new IllegalArgumentException("Using synchronous=false is not
supported for camel-ftp");
+ }
}
@Override
diff --git
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
index ba1b7b4656e..5a26d75d3b7 100644
---
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
+++
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
@@ -35,7 +35,7 @@ import org.apache.camel.spi.UriParam;
@Metadata(excludeProperties = "appendChars,bufferSize,siteCommand,"
+
"directoryMustExist,extendedAttributes,probeContentType,startingDirectoryMustExist,"
+
"startingDirectoryMustHaveAccess,forceWrites,copyAndDeleteOnRenameFail,"
- + "renameUsingCopy")
+ + "renameUsingCopy,synchronous")
public class SftpEndpoint extends RemoteFileEndpoint<SftpRemoteFile> {
@UriParam
diff --git
a/components/camel-jsch/src/generated/java/org/apache/camel/component/scp/ScpEndpointConfigurer.java
b/components/camel-jsch/src/generated/java/org/apache/camel/component/scp/ScpEndpointConfigurer.java
index b43119058e1..7ded765e341 100644
---
a/components/camel-jsch/src/generated/java/org/apache/camel/component/scp/ScpEndpointConfigurer.java
+++
b/components/camel-jsch/src/generated/java/org/apache/camel/component/scp/ScpEndpointConfigurer.java
@@ -54,7 +54,6 @@ public class ScpEndpointConfigurer extends
PropertyConfigurerSupport implements
case "soTimeout":
target.getConfiguration().setSoTimeout(property(camelContext, int.class,
value)); return true;
case "stricthostkeychecking":
case "strictHostKeyChecking":
target.getConfiguration().setStrictHostKeyChecking(property(camelContext,
java.lang.String.class, value)); return true;
- case "synchronous": target.setSynchronous(property(camelContext,
boolean.class, value)); return true;
case "timeout":
target.getConfiguration().setTimeout(property(camelContext, int.class, value));
return true;
case "useuserknownhostsfile":
case "useUserKnownHostsFile":
target.getConfiguration().setUseUserKnownHostsFile(property(camelContext,
boolean.class, value)); return true;
@@ -99,7 +98,6 @@ public class ScpEndpointConfigurer extends
PropertyConfigurerSupport implements
case "soTimeout": return int.class;
case "stricthostkeychecking":
case "strictHostKeyChecking": return java.lang.String.class;
- case "synchronous": return boolean.class;
case "timeout": return int.class;
case "useuserknownhostsfile":
case "useUserKnownHostsFile": return boolean.class;
@@ -145,7 +143,6 @@ public class ScpEndpointConfigurer extends
PropertyConfigurerSupport implements
case "soTimeout": return target.getConfiguration().getSoTimeout();
case "stricthostkeychecking":
case "strictHostKeyChecking": return
target.getConfiguration().getStrictHostKeyChecking();
- case "synchronous": return target.isSynchronous();
case "timeout": return target.getConfiguration().getTimeout();
case "useuserknownhostsfile":
case "useUserKnownHostsFile": return
target.getConfiguration().isUseUserKnownHostsFile();
diff --git
a/components/camel-jsch/src/generated/java/org/apache/camel/component/scp/ScpEndpointUriFactory.java
b/components/camel-jsch/src/generated/java/org/apache/camel/component/scp/ScpEndpointUriFactory.java
index b4ccbf4776f..f2b0c3971a6 100644
---
a/components/camel-jsch/src/generated/java/org/apache/camel/component/scp/ScpEndpointUriFactory.java
+++
b/components/camel-jsch/src/generated/java/org/apache/camel/component/scp/ScpEndpointUriFactory.java
@@ -20,14 +20,13 @@ public class ScpEndpointUriFactory extends
org.apache.camel.support.component.En
private static final Set<String> PROPERTY_NAMES;
private static final Set<String> SECRET_PROPERTY_NAMES;
static {
- Set<String> props = new HashSet<>(26);
+ Set<String> props = new HashSet<>(25);
props.add("useUserKnownHostsFile");
props.add("disconnect");
props.add("disconnectOnBatchComplete");
props.add("moveExistingFileStrategy");
props.add("fileName");
props.add("strictHostKeyChecking");
- props.add("synchronous");
props.add("timeout");
props.add("flatten");
props.add("password");
diff --git
a/components/camel-jsch/src/generated/resources/org/apache/camel/component/scp/scp.json
b/components/camel-jsch/src/generated/resources/org/apache/camel/component/scp/scp.json
index df33b24b871..9d41ce1e765 100644
---
a/components/camel-jsch/src/generated/resources/org/apache/camel/component/scp/scp.json
+++
b/components/camel-jsch/src/generated/resources/org/apache/camel/component/scp/scp.json
@@ -43,7 +43,6 @@
"moveExistingFileStrategy": { "kind": "parameter", "displayName": "Move
Existing File Strategy", "group": "producer (advanced)", "label":
"producer,advanced", "required": false, "type": "object", "javaType":
"org.apache.camel.component.file.strategy.FileMoveExistingStrategy",
"deprecated": false, "autowired": false, "secret": false, "description":
"Strategy (Custom Strategy) used to move file with special naming token to use
when fileExist=Move is configured. By default, there is an [...]
"connectTimeout": { "kind": "parameter", "displayName": "Connect Timeout",
"group": "advanced", "label": "advanced", "required": false, "type":
"duration", "javaType": "int", "deprecated": false, "autowired": false,
"secret": false, "defaultValue": "10000", "configurationClass":
"org.apache.camel.component.scp.ScpConfiguration", "configurationField":
"configuration", "description": "Sets the connect timeout for waiting for a
connection to be established Used by both FTPClient and JSCH" },
"soTimeout": { "kind": "parameter", "displayName": "So Timeout", "group":
"advanced", "label": "advanced", "required": false, "type": "duration",
"javaType": "int", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "300000", "configurationClass":
"org.apache.camel.component.scp.ScpConfiguration", "configurationField":
"configuration", "description": "Sets the so timeout FTP and FTPS Is the
SocketOptions.SO_TIMEOUT value in millis. Recommended option is to set [...]
- "synchronous": { "kind": "parameter", "displayName": "Synchronous",
"group": "advanced", "label": "advanced", "required": false, "type": "boolean",
"javaType": "boolean", "deprecated": false, "autowired": false, "secret":
false, "defaultValue": false, "description": "Sets whether synchronous
processing should be strictly used" },
"timeout": { "kind": "parameter", "displayName": "Timeout", "group":
"advanced", "label": "advanced", "required": false, "type": "duration",
"javaType": "int", "deprecated": false, "autowired": false, "secret": false,
"defaultValue": "30000", "configurationClass":
"org.apache.camel.component.scp.ScpConfiguration", "configurationField":
"configuration", "description": "Sets the data timeout for waiting for reply
Used only by FTPClient" },
"knownHostsFile": { "kind": "parameter", "displayName": "Known Hosts
File", "group": "security", "label": "security", "required": false, "type":
"string", "javaType": "java.lang.String", "deprecated": false, "autowired":
false, "secret": true, "configurationClass":
"org.apache.camel.component.scp.ScpConfiguration", "configurationField":
"configuration", "description": "Sets the known_hosts file, so that the jsch
endpoint can do host key verification. You can prefix with classpath: to [...]
"password": { "kind": "parameter", "displayName": "Password", "group":
"security", "label": "security", "required": false, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "autowired": false,
"secret": true, "configurationClass":
"org.apache.camel.component.scp.ScpConfiguration", "configurationField":
"configuration", "description": "Password to use for login" },
diff --git
a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java
b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java
index f2ff27c81d3..5f97aff0c48 100644
---
a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java
+++
b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java
@@ -38,7 +38,7 @@ import org.apache.camel.spi.UriParam;
+
",maximumReconnectAttempts,reconnectDelay,autoCreate,bufferSize,siteCommand,stepwise,throwExceptionOnConnectFailed"
+
",transferLoggingIntervalSeconds,transferLoggingLevel,transferLoggingVerbose,resumeDownload"
+
",handleDirectoryParserAbsoluteResult,activePortRange,ftpClient,ftpClientConfig"
- +
",ftpClientConfigParameters,ftpClientParameters,account")
+ +
",ftpClientConfigParameters,ftpClientParameters,account,synchronous")
public class ScpEndpoint extends RemoteFileEndpoint<ScpFile> {
@UriParam