This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch smb in repository https://gitbox.apache.org/repos/asf/camel.git
commit fa5b206ad097de9ef6d544d18427fc5f8a15ec88 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue May 6 15:42:24 2025 +0200 CAMEL-22043: camel-smb - Configure path in context-path to be more similar to other file based components --- .../org/apache/camel/catalog/components/smb.json | 12 ++--- .../camel/component/smb/SmbEndpointConfigurer.java | 3 -- .../camel/component/smb/SmbEndpointUriFactory.java | 3 +- .../org/apache/camel/component/smb/smb.json | 12 ++--- .../camel-smb/src/main/docs/smb-component.adoc | 4 +- .../apache/camel/component/smb/SmbComponent.java | 22 ++++++++- .../camel/component/smb/SmbConfiguration.java | 11 ++++- .../apache/camel/component/smb/SmbEndpoint.java | 2 +- .../smb/FromSmbFileSortByExpressionIT.java | 2 +- .../component/smb/FromSmbMessagesPerPollIT.java | 2 +- .../FromSmbMoveFileAbsoluteFolderRecursiveIT.java | 2 +- .../component/smb/FromSmbMoveFileToSubdirIT.java | 2 +- .../component/smb/FromSmbMoveWithExistingIT.java | 2 +- .../camel/component/smb/FromSmbNoFilesIT.java | 2 +- .../apache/camel/component/smb/FromSmbNoopIT.java | 2 +- .../component/smb/FromSmbPreMoveDeleteIT.java | 2 +- .../smb/FromSmbPreMoveFileExpressionIT.java | 2 +- .../camel/component/smb/FromSmbPreMoveIT.java | 2 +- .../smb/FromSmbRemoteFileFilterDirectoryIT.java | 2 +- .../component/smb/FromSmbRemoteFileFilterIT.java | 2 +- .../component/smb/FromSmbRemoteFileSorterIT.java | 2 +- .../component/smb/FromSmbRenameReadLockIT.java | 4 +- .../camel/component/smb/FromSmbToAsciiFileIT.java | 2 +- .../component/smb/PollDynamicFileNameTest.java | 2 +- .../camel/component/smb/SmbChangedReadLockIT.java | 2 +- .../component/smb/SmbChangedRootDirReadLockIT.java | 2 +- .../component/smb/SmbComponentConnectionIT.java | 10 ++-- .../apache/camel/component/smb/SmbComponentIT.java | 6 +-- .../component/smb/SmbConsumerAutoCreateIT.java | 2 +- .../smb/SmbConsumerDefaultIdempotentIT.java | 2 +- .../smb/SmbConsumerDirectoriesNotMatchedIT.java | 2 +- .../component/smb/SmbConsumerExcludeExtIT.java | 2 +- .../component/smb/SmbConsumerExcludeNameIT.java | 2 +- .../SmbConsumerIdempotentKeyChangedIssueIT.java | 2 +- .../smb/SmbConsumerIdempotentMemoryRefIT.java | 2 +- .../component/smb/SmbConsumerIncludeExtIT.java | 2 +- .../smb/SmbConsumerLocalWorkDirectoryIT.java | 2 +- .../smb/SmbConsumerMaxMessagesPerPollIT.java | 2 +- .../component/smb/SmbConsumerPartialReadIT.java | 2 +- .../smb/SmbConsumerProcessStrategyIT.java | 2 +- .../SmbConsumerStartingDirectoryMustExistIT.java | 4 +- .../camel/component/smb/SmbDeleteFileIT.java | 2 +- ...=> SmbDeleteFilePathBackwardsCompatibleIT.java} | 8 ++-- .../camel/component/smb/SmbNoDownloadIT.java | 2 +- .../component/smb/SmbProducerAllowNullBodyIT.java | 2 +- .../component/smb/SmbProducerBuildDirectoryIT.java | 2 +- .../component/smb/SmbProducerDoneFileNameIT.java | 18 +++---- .../smb/SmbProducerFileExistAppendIT.java | 4 +- .../SmbProducerFileExistAppendNoFileBeforeIT.java | 2 +- .../component/smb/SmbProducerFileExistFailIT.java | 4 +- .../smb/SmbProducerFileExistIgnoreIT.java | 2 +- .../smb/SmbProducerFileExistOverrideIT.java | 2 +- ...SmbProducerFileExistOverrideNoFileBeforeIT.java | 2 +- ...verrideNotEagerDeleteTargetFileTwoUploadIT.java | 2 +- .../SmbProducerFileExistOverrideTwoUploadIT.java | 2 +- .../smb/SmbProducerFileWithCharsetIT.java | 2 +- .../component/smb/SmbProducerFileWithPathIT.java | 2 +- .../smb/SmbProducerToDMoveExistingIT.java | 2 +- .../component/smb/SmbProducerToMoveExistingIT.java | 2 +- .../component/smb/SmbRecursiveMaxDepthIT.java | 2 +- .../component/smb/SmbRecursiveMinDepthIT.java | 2 +- .../component/smb/SmbStreamDownloadFalseIT.java | 2 +- .../camel/component/smb/SmbStreamDownloadIT.java | 2 +- .../smb/SmbStreamDownloadStreamCacheIT.java | 2 +- .../ROOT/pages/camel-4x-upgrade-guide-4_12.adoc | 20 ++++++++ .../builder/endpoint/StaticEndpointBuilders.java | 14 ++++-- .../endpoint/dsl/SmbEndpointBuilderFactory.java | 56 ++++------------------ 67 files changed, 162 insertions(+), 151 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smb.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smb.json index 3f242e27660..71082061ac7 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smb.json +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/smb.json @@ -14,7 +14,7 @@ "version": "4.12.0-SNAPSHOT", "scheme": "smb", "extendsScheme": "", - "syntax": "smb:hostname:port\/shareName", + "syntax": "smb:hostname:port\/shareName\/path", "async": false, "api": false, "consumerOnly": false, @@ -53,11 +53,11 @@ "hostname": { "index": 0, "kind": "path", "displayName": "Hostname", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "The share hostname or IP address" }, "port": { "index": 1, "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 445, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "The share port number" }, "shareName": { "index": 2, "kind": "path", "displayName": "Share Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "The name of the share directory" }, - "charset": { "index": 3, "kind": "parameter", "displayName": "Charset", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 accesse [...] - "disconnect": { "index": 4, "kind": "parameter", "displayName": "Disconnect", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "Whether or not to disconnect from remote SMB share right after use. Disconnect will only disconnect th [...] - "doneFileName": { "index": 5, "kind": "parameter", "displayName": "Done File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 [...] - "fileName": { "index": 6, "kind": "parameter", "displayName": "File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 CamelFil [...] - "path": { "index": 7, "kind": "parameter", "displayName": "Path", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "The base directory within the share" }, + "path": { "index": 3, "kind": "path", "displayName": "Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "The base directory within the share" }, + "charset": { "index": 4, "kind": "parameter", "displayName": "Charset", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 accesse [...] + "disconnect": { "index": 5, "kind": "parameter", "displayName": "Disconnect", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "Whether or not to disconnect from remote SMB share right after use. Disconnect will only disconnect th [...] + "doneFileName": { "index": 6, "kind": "parameter", "displayName": "Done File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 [...] + "fileName": { "index": 7, "kind": "parameter", "displayName": "File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 CamelFil [...] "delete": { "index": 8, "kind": "parameter", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, the file will be deleted after it is processed successfully." }, "moveFailed": { "index": 9, "kind": "parameter", "displayName": "Move Failed", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 [...] "noop": { "index": 10, "kind": "parameter", "displayName": "Noop", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 o [...] diff --git a/components/camel-smb/src/generated/java/org/apache/camel/component/smb/SmbEndpointConfigurer.java b/components/camel-smb/src/generated/java/org/apache/camel/component/smb/SmbEndpointConfigurer.java index 4c3fd83c95d..532b1afc2dc 100644 --- a/components/camel-smb/src/generated/java/org/apache/camel/component/smb/SmbEndpointConfigurer.java +++ b/components/camel-smb/src/generated/java/org/apache/camel/component/smb/SmbEndpointConfigurer.java @@ -120,7 +120,6 @@ public class SmbEndpointConfigurer extends PropertyConfigurerSupport implements case "oncompletionexceptionhandler": case "onCompletionExceptionHandler": target.setOnCompletionExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true; case "password": target.getConfiguration().setPassword(property(camelContext, java.lang.String.class, value)); return true; - case "path": target.getConfiguration().setPath(property(camelContext, java.lang.String.class, value)); return true; case "pollstrategy": case "pollStrategy": target.setPollStrategy(property(camelContext, org.apache.camel.spi.PollingConsumerPollStrategy.class, value)); return true; case "premove": @@ -295,7 +294,6 @@ public class SmbEndpointConfigurer extends PropertyConfigurerSupport implements case "oncompletionexceptionhandler": case "onCompletionExceptionHandler": return org.apache.camel.spi.ExceptionHandler.class; case "password": return java.lang.String.class; - case "path": return java.lang.String.class; case "pollstrategy": case "pollStrategy": return org.apache.camel.spi.PollingConsumerPollStrategy.class; case "premove": @@ -466,7 +464,6 @@ public class SmbEndpointConfigurer extends PropertyConfigurerSupport implements case "oncompletionexceptionhandler": case "onCompletionExceptionHandler": return target.getOnCompletionExceptionHandler(); case "password": return target.getConfiguration().getPassword(); - case "path": return target.getConfiguration().getPath(); case "pollstrategy": case "pollStrategy": return target.getPollStrategy(); case "premove": diff --git a/components/camel-smb/src/generated/java/org/apache/camel/component/smb/SmbEndpointUriFactory.java b/components/camel-smb/src/generated/java/org/apache/camel/component/smb/SmbEndpointUriFactory.java index 6cb545cb014..e7fbd5316dd 100644 --- a/components/camel-smb/src/generated/java/org/apache/camel/component/smb/SmbEndpointUriFactory.java +++ b/components/camel-smb/src/generated/java/org/apache/camel/component/smb/SmbEndpointUriFactory.java @@ -17,7 +17,7 @@ import org.apache.camel.spi.EndpointUriFactory; @Generated("org.apache.camel.maven.packaging.GenerateEndpointUriFactoryMojo") public class SmbEndpointUriFactory extends org.apache.camel.support.component.EndpointUriFactorySupport implements EndpointUriFactory { - private static final String BASE = ":hostname:port/shareName"; + private static final String BASE = ":hostname:port/shareName/path"; private static final Set<String> PROPERTY_NAMES; private static final Set<String> SECRET_PROPERTY_NAMES; @@ -144,6 +144,7 @@ public class SmbEndpointUriFactory extends org.apache.camel.support.component.En uri = buildPathParameter(syntax, uri, "hostname", null, true, copy); uri = buildPathParameter(syntax, uri, "port", 445, false, copy); uri = buildPathParameter(syntax, uri, "shareName", null, true, copy); + uri = buildPathParameter(syntax, uri, "path", null, false, copy); uri = buildQueryParameters(uri, copy, encode); return uri; } diff --git a/components/camel-smb/src/generated/resources/META-INF/org/apache/camel/component/smb/smb.json b/components/camel-smb/src/generated/resources/META-INF/org/apache/camel/component/smb/smb.json index 3f242e27660..71082061ac7 100644 --- a/components/camel-smb/src/generated/resources/META-INF/org/apache/camel/component/smb/smb.json +++ b/components/camel-smb/src/generated/resources/META-INF/org/apache/camel/component/smb/smb.json @@ -14,7 +14,7 @@ "version": "4.12.0-SNAPSHOT", "scheme": "smb", "extendsScheme": "", - "syntax": "smb:hostname:port\/shareName", + "syntax": "smb:hostname:port\/shareName\/path", "async": false, "api": false, "consumerOnly": false, @@ -53,11 +53,11 @@ "hostname": { "index": 0, "kind": "path", "displayName": "Hostname", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "The share hostname or IP address" }, "port": { "index": 1, "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 445, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "The share port number" }, "shareName": { "index": 2, "kind": "path", "displayName": "Share Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "The name of the share directory" }, - "charset": { "index": 3, "kind": "parameter", "displayName": "Charset", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 accesse [...] - "disconnect": { "index": 4, "kind": "parameter", "displayName": "Disconnect", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "Whether or not to disconnect from remote SMB share right after use. Disconnect will only disconnect th [...] - "doneFileName": { "index": 5, "kind": "parameter", "displayName": "Done File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 [...] - "fileName": { "index": 6, "kind": "parameter", "displayName": "File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 CamelFil [...] - "path": { "index": 7, "kind": "parameter", "displayName": "Path", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "The base directory within the share" }, + "path": { "index": 3, "kind": "path", "displayName": "Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "The base directory within the share" }, + "charset": { "index": 4, "kind": "parameter", "displayName": "Charset", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 accesse [...] + "disconnect": { "index": 5, "kind": "parameter", "displayName": "Disconnect", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.smb.SmbConfiguration", "configurationField": "configuration", "description": "Whether or not to disconnect from remote SMB share right after use. Disconnect will only disconnect th [...] + "doneFileName": { "index": 6, "kind": "parameter", "displayName": "Done File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 [...] + "fileName": { "index": 7, "kind": "parameter", "displayName": "File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 CamelFil [...] "delete": { "index": 8, "kind": "parameter", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, the file will be deleted after it is processed successfully." }, "moveFailed": { "index": 9, "kind": "parameter", "displayName": "Move Failed", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "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 [...] "noop": { "index": 10, "kind": "parameter", "displayName": "Noop", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 o [...] diff --git a/components/camel-smb/src/main/docs/smb-component.adoc b/components/camel-smb/src/main/docs/smb-component.adoc index 6b351270799..2255f2e7a1f 100644 --- a/components/camel-smb/src/main/docs/smb-component.adoc +++ b/components/camel-smb/src/main/docs/smb-component.adoc @@ -68,7 +68,7 @@ private void process(Exchange exchange) throws IOException { } public void configure() { - fromF("smb:%s/%s?username=%s&password=%s&path=/", service.address(), service.shareName(), service.userName(), service.password()) + fromF("smb:%s/%s?username=%s&password=%s", service.address(), service.shareName(), service.userName(), service.password()) .process(this::process) .to("mock:result"); } @@ -90,7 +90,7 @@ private void process(Exchange exchange) throws IOException { } public void configure() { - fromF("smb:%s/%s?username=%s&password=%s&path=/", service.address(), service.shareName(), service.userName(), service.password()) + fromF("smb:%s/%s?username=%s&password=%s", service.address(), service.shareName(), service.userName(), service.password()) .process(this::process) .to("mock:result"); } diff --git a/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbComponent.java b/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbComponent.java index fc66765a8a9..0b88cdcb2d5 100644 --- a/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbComponent.java +++ b/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbComponent.java @@ -25,10 +25,14 @@ import org.apache.camel.component.file.GenericFileComponent; import org.apache.camel.component.file.GenericFileEndpoint; import org.apache.camel.spi.annotations.Component; import org.apache.camel.util.StringHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @Component("smb") public class SmbComponent extends GenericFileComponent<FileIdBothDirectoryInformation> { + private static final Logger LOG = LoggerFactory.getLogger(SmbComponent.class); + public static final String SMB_FILE_INPUT_STREAM = "CamelSmbFileInputStream"; public SmbComponent() { @@ -49,8 +53,22 @@ public class SmbComponent extends GenericFileComponent<FileIdBothDirectoryInform // must pass on baseUri to the configuration (see above) SmbConfiguration config = new SmbConfiguration(new URI(baseUri)); - SmbEndpoint answer = new SmbEndpoint(uri, this, config); - return answer; + // backwards compatible when path was query parameter + String path = getAndRemoveParameter(parameters, "path", String.class); + if (path != null) { + config.setPath(path); + LOG.warn( + "The path option should be specified in the context-path. Instead of using ?path=/mypath then specify this in the context-path in uri: " + + uri); + } + + if (config.getShareName() == null) { + throw new IllegalArgumentException("ShareName must be configured"); + } + + SmbEndpoint endpoint = new SmbEndpoint(uri, this, config); + setProperties(endpoint, parameters); + return endpoint; } @Override diff --git a/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbConfiguration.java b/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbConfiguration.java index 3821a1cc35a..db15a12105d 100644 --- a/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbConfiguration.java +++ b/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbConfiguration.java @@ -25,6 +25,7 @@ import org.apache.camel.spi.UriParam; import org.apache.camel.spi.UriParams; import org.apache.camel.spi.UriPath; import org.apache.camel.util.FileUtil; +import org.apache.camel.util.StringHelper; @UriParams public class SmbConfiguration extends GenericFileConfiguration { @@ -40,7 +41,7 @@ public class SmbConfiguration extends GenericFileConfiguration { @UriPath(description = "The name of the share directory") @Metadata(required = true) private String shareName; - @UriParam(label = "common", description = "The base directory within the share") + @UriPath(description = "The base directory within the share") private String path; @UriParam(label = "security", description = "The username required to access the share", secret = true) private String username; @@ -99,7 +100,13 @@ public class SmbConfiguration extends GenericFileConfiguration { if (uri.getPort() > 0) { setPort(uri.getPort()); } - setShareName(FileUtil.stripLeadingSeparator(uri.getPath())); + String path = FileUtil.stripLeadingSeparator(uri.getPath()); + String share = StringHelper.before(path, "/", path); + setShareName(share); + String dir = StringHelper.after(path, "/"); + if (dir != null) { + setPath(dir); + } } public String getProtocol() { diff --git a/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbEndpoint.java b/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbEndpoint.java index e32226bdbe8..aa645b24f49 100644 --- a/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbEndpoint.java +++ b/components/camel-smb/src/main/java/org/apache/camel/component/smb/SmbEndpoint.java @@ -47,7 +47,7 @@ import org.slf4j.LoggerFactory; /** * Read and write files to Server Message Block (SMB) file shares. */ -@UriEndpoint(firstVersion = "4.3.0", scheme = "smb", title = "SMB", syntax = "smb:hostname:port/shareName", +@UriEndpoint(firstVersion = "4.3.0", scheme = "smb", title = "SMB", syntax = "smb:hostname:port/shareName/path", headersClass = SmbConstants.class, category = { Category.FILE }) @Metadata(excludeProperties = "appendChars,readLockIdempotentReleaseAsync,readLockIdempotentReleaseAsyncPoolSize," + "readLockIdempotentReleaseDelay,readLockIdempotentReleaseExecutorService," diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbFileSortByExpressionIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbFileSortByExpressionIT.java index 9906deb638e..30e50d15e3f 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbFileSortByExpressionIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbFileSortByExpressionIT.java @@ -24,7 +24,7 @@ public class FromSmbFileSortByExpressionIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/sortby&sortBy=file:ext&initialDelay=3000", + "smb:%s/%s/sortby?username=%s&password=%s&sortBy=file:ext&initialDelay=3000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMessagesPerPollIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMessagesPerPollIT.java index f31b0f3b53e..7af798ea21e 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMessagesPerPollIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMessagesPerPollIT.java @@ -24,7 +24,7 @@ public class FromSmbMessagesPerPollIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/&maxMessagesPerPoll=20", + "smb:%s/%s?username=%s&password=%s&maxMessagesPerPoll=20", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveFileAbsoluteFolderRecursiveIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveFileAbsoluteFolderRecursiveIT.java index 93922267403..cb99080c0b8 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveFileAbsoluteFolderRecursiveIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveFileAbsoluteFolderRecursiveIT.java @@ -30,7 +30,7 @@ public class FromSmbMoveFileAbsoluteFolderRecursiveIT extends SmbServerTestSuppo protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/moverecurse&recursive=true" + + "smb:%s/%s/moverecurse?username=%s&password=%s&recursive=true" + "&move=/.done/${file:name}.old&initialDelay=2500&delay=5000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveFileToSubdirIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveFileToSubdirIT.java index b0f22152a37..0971d6a53a7 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveFileToSubdirIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveFileToSubdirIT.java @@ -35,7 +35,7 @@ public class FromSmbMoveFileToSubdirIT extends SmbServerTestSupport { // create intermediate dirs, and rename file protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/movefiletosubdir&move=greet/${file:name}.old", + "smb:%s/%s/movefiletosubdir?username=%s&password=%s&move=greet/${file:name}.old", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveWithExistingIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveWithExistingIT.java index 213e731d3b5..fa8ed8e1dc5 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveWithExistingIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbMoveWithExistingIT.java @@ -35,7 +35,7 @@ public class FromSmbMoveWithExistingIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/moveexist&move=${file:name}.old", + "smb:%s/%s/moveexist?username=%s&password=%s&move=${file:name}.old", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbNoFilesIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbNoFilesIT.java index 45f3687042a..6b616cf71aa 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbNoFilesIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbNoFilesIT.java @@ -29,7 +29,7 @@ public class FromSmbNoFilesIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/empty&delete=true", + "smb:%s/%s/empty?username=%s&password=%s&delete=true", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbNoopIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbNoopIT.java index 0caee249fff..aa7fb6c8b45 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbNoopIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbNoopIT.java @@ -32,7 +32,7 @@ public class FromSmbNoopIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/noop&noop=true", + "smb:%s/%s/noop?username=%s&password=%s&noop=true", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveDeleteIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveDeleteIT.java index 2be62480551..3ef72993f73 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveDeleteIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveDeleteIT.java @@ -37,7 +37,7 @@ public class FromSmbPreMoveDeleteIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/premove&preMove=work&delete=true", + "smb:%s/%s/premove?username=%s&password=%s&preMove=work&delete=true", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveFileExpressionIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveFileExpressionIT.java index 7482662e7a1..dd3f71e5717 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveFileExpressionIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveFileExpressionIT.java @@ -33,7 +33,7 @@ public class FromSmbPreMoveFileExpressionIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/premoveexpr&delay=5000&preMove=../inprogress/${file:name.noext}.bak", + "smb:%s/%s/premoveexpr?username=%s&password=%s&delay=5000&preMove=../inprogress/${file:name.noext}.bak", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveIT.java index a4f3a1f478e..919de4af8c5 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbPreMoveIT.java @@ -35,7 +35,7 @@ public class FromSmbPreMoveIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/premove&preMove=work", + "smb:%s/%s/premove?username=%s&password=%s&preMove=work", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileFilterDirectoryIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileFilterDirectoryIT.java index d3297da809b..8be9d19873f 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileFilterDirectoryIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileFilterDirectoryIT.java @@ -30,7 +30,7 @@ public class FromSmbRemoteFileFilterDirectoryIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/myfilterdir&recursive=true&filter=#myFilter&initialDelay=3000", + "smb:%s/%s/myfilterdir?username=%s&password=%s&recursive=true&filter=#myFilter&initialDelay=3000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileFilterIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileFilterIT.java index ecdf31e52c4..62b402308e5 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileFilterIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileFilterIT.java @@ -30,7 +30,7 @@ public class FromSmbRemoteFileFilterIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/myfilter&searchPattern=*&filter=#myFilter&initialDelay=3000", + "smb:%s/%s/myfilter?username=%s&password=%s&searchPattern=*&filter=#myFilter&initialDelay=3000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileSorterIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileSorterIT.java index 38c2c6e9cf6..be1504bcd0f 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileSorterIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRemoteFileSorterIT.java @@ -31,7 +31,7 @@ public class FromSmbRemoteFileSorterIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/sorter&sorter=#mySorter&initialDelay=3000", + "smb:%s/%s/sorter?username=%s&password=%s&sorter=#mySorter&initialDelay=3000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRenameReadLockIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRenameReadLockIT.java index 3d96744e9a4..1db27b5e0bd 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRenameReadLockIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbRenameReadLockIT.java @@ -39,13 +39,13 @@ public class FromSmbRenameReadLockIT extends SmbServerTestSupport { protected String getSmbPollingUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/renamerl&delete=true&delay=1000&initialDelay=1500&readLock=rename", + "smb:%s/%s/renamerl?username=%s&password=%s&delete=true&delay=1000&initialDelay=1500&readLock=rename", service.address(), service.shareName(), service.userName(), service.password()); } protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/renamerl", + "smb:%s/%s/renamerl?username=%s&password=%s", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbToAsciiFileIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbToAsciiFileIT.java index 75178a54d4e..719b28ed1d1 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbToAsciiFileIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/FromSmbToAsciiFileIT.java @@ -37,7 +37,7 @@ public class FromSmbToAsciiFileIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/toasciifile&fileExist=Override", + "smb:%s/%s/toasciifile?username=%s&password=%s&fileExist=Override", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/PollDynamicFileNameTest.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/PollDynamicFileNameTest.java index 2fd7f496e74..3c467ca2cd0 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/PollDynamicFileNameTest.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/PollDynamicFileNameTest.java @@ -28,7 +28,7 @@ public class PollDynamicFileNameTest extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/noop&noop=true", + "smb:%s/%s/noop?username=%s&password=%s&noop=true", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbChangedReadLockIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbChangedReadLockIT.java index 5e74bef086a..0a5d340305d 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbChangedReadLockIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbChangedReadLockIT.java @@ -48,7 +48,7 @@ public class SmbChangedReadLockIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/changed&searchPattern=*&readLock=changed&readLockCheckInterval=1000&delete=true", + "smb:%s/%s/changed?username=%s&password=%s&searchPattern=*&readLock=changed&readLockCheckInterval=1000&delete=true", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbChangedRootDirReadLockIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbChangedRootDirReadLockIT.java index 2e14b804585..48038a91a9c 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbChangedRootDirReadLockIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbChangedRootDirReadLockIT.java @@ -49,7 +49,7 @@ public class SmbChangedRootDirReadLockIT extends SmbServerTestSupport { // all the files are processed protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/&readLock=changed&searchPattern=*.dat&readLockCheckInterval=1000&delete=true", + "smb:%s/%s?username=%s&password=%s&readLock=changed&searchPattern=*.dat&readLockCheckInterval=1000&delete=true", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbComponentConnectionIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbComponentConnectionIT.java index 129a7df42b1..b61217a0b5d 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbComponentConnectionIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbComponentConnectionIT.java @@ -114,7 +114,7 @@ public class SmbComponentConnectionIT extends CamelTestSupport { .build(); context.getRegistry().bind("smbConfig", config); - fromF("smb:%s/%s?username=%s&password=%s&path=/&smbConfig=#smbConfig", service.address(), service.shareName(), + fromF("smb:%s/%s?username=%s&password=%s&smbConfig=#smbConfig", service.address(), service.shareName(), service.userName(), service.password()) .to("seda:intermediate"); @@ -123,18 +123,18 @@ public class SmbComponentConnectionIT extends CamelTestSupport { .to("mock:result"); from("seda:send") - .toF("smb:%s/%s?username=%s&password=%s&path=/", service.address(), service.shareName(), + .toF("smb:%s/%s?username=%s&password=%s", service.address(), service.shareName(), service.userName(), service.password()); - fromF("smb:%s/%s?username=%s&password=%s&searchPattern=*_override.doc&path=/", service.address(), + fromF("smb:%s/%s?username=%s&password=%s&searchPattern=*_override.doc", service.address(), service.shareName(), service.userName(), service.password()) .to("mock:received_override"); - fromF("smb:%s/%s?username=%s&password=%s&searchPattern=*_ignore.doc&path=/", service.address(), + fromF("smb:%s/%s?username=%s&password=%s&searchPattern=*_ignore.doc", service.address(), service.shareName(), service.userName(), service.password()) .to("mock:received_ignore"); - fromF("smb:%s/%s?username=%s&password=%s&searchPattern=*_send.doc&path=/", service.address(), + fromF("smb:%s/%s?username=%s&password=%s&searchPattern=*_send.doc", service.address(), service.shareName(), service.userName(), service.password()) .to("mock:received_send"); diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbComponentIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbComponentIT.java index c2d4b34c8da..457c2380c88 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbComponentIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbComponentIT.java @@ -75,14 +75,14 @@ public class SmbComponentIT extends CamelTestSupport { .build(); context.getRegistry().bind("smbConfig", config); - fromF("smb:%s/%s?username=%s&password=%s&path=/&smbConfig=#smbConfig", service.address(), service.shareName(), + fromF("smb:%s/%s?username=%s&password=%s&smbConfig=#smbConfig", service.address(), service.shareName(), service.userName(), service.password()) .process(this::process) .to("mock:result"); fromF("direct:smbSendFile") - .to("smb:%s/%s?username=%s&password=%s&path=/&smbConfig=#smbConfig") - .to("smb:%s/%s?username=%s&password=%s&path=/") + .to("smb:%s/%s?username=%s&password=%s&smbConfig=#smbConfig") + .to("smb:%s/%s?username=%s&password=%s") .to("mock:result"); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerAutoCreateIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerAutoCreateIT.java index f34d4f66607..2045ae2881f 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerAutoCreateIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerAutoCreateIT.java @@ -24,7 +24,7 @@ public class SmbConsumerAutoCreateIT extends SmbServerTestSupport { private String getSbmUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/createme&delete=true&initialDelay=3000", + "smb:%s/%s/createme?username=%s&password=%s&delete=true&initialDelay=3000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerDefaultIdempotentIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerDefaultIdempotentIT.java index 491394d6a17..8c23b811059 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerDefaultIdempotentIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerDefaultIdempotentIT.java @@ -24,7 +24,7 @@ public class SmbConsumerDefaultIdempotentIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/defidemp&idempotent=true&delete=true&delay=1000", + "smb:%s/%s/defidemp?username=%s&password=%s&idempotent=true&delete=true&delay=1000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerDirectoriesNotMatchedIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerDirectoriesNotMatchedIT.java index e37cc154e16..48c0d021ecc 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerDirectoriesNotMatchedIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerDirectoriesNotMatchedIT.java @@ -24,7 +24,7 @@ public class SmbConsumerDirectoriesNotMatchedIT extends SmbServerTestSupport { private String getSbmUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/dirnotmatched&recursive=true&delete=true&initialDelay=3000&include=^.*txt$", + "smb:%s/%s/dirnotmatched?username=%s&password=%s&recursive=true&delete=true&initialDelay=3000&include=^.*txt$", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerExcludeExtIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerExcludeExtIT.java index aaa27acb9a9..f7c263f4e34 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerExcludeExtIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerExcludeExtIT.java @@ -24,7 +24,7 @@ public class SmbConsumerExcludeExtIT extends SmbServerTestSupport { private String getSbmUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/excludeext&excludeExt=xml&initialDelay=3000", + "smb:%s/%s/excludeext?username=%s&password=%s&excludeExt=xml&initialDelay=3000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerExcludeNameIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerExcludeNameIT.java index 31a64e380b9..d6981afeec8 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerExcludeNameIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerExcludeNameIT.java @@ -24,7 +24,7 @@ public class SmbConsumerExcludeNameIT extends SmbServerTestSupport { private String getSbmUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/dirnotmatched&recursive=true&delete=true&include=report.*&exclude=.*xml&initialDelay=3000", + "smb:%s/%s/dirnotmatched?username=%s&password=%s&recursive=true&delete=true&include=report.*&exclude=.*xml&initialDelay=3000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIdempotentKeyChangedIssueIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIdempotentKeyChangedIssueIT.java index a3440841373..b407ff97175 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIdempotentKeyChangedIssueIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIdempotentKeyChangedIssueIT.java @@ -33,7 +33,7 @@ public class SmbConsumerIdempotentKeyChangedIssueIT extends SmbServerTestSupport protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/idempotentkey&readLock=changed&idempotent=true" + "smb:%s/%s/idempotentkey?username=%s&password=%s&readLock=changed&idempotent=true" + "&idempotentKey=${file:onlyname}-${file:size}", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIdempotentMemoryRefIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIdempotentMemoryRefIT.java index 4ecec34bb1f..534360868bb 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIdempotentMemoryRefIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIdempotentMemoryRefIT.java @@ -32,7 +32,7 @@ public class SmbConsumerIdempotentMemoryRefIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/idem&idempotent=true" + "smb:%s/%s/idem?username=%s&password=%s&idempotent=true" + "&idempotentRepository=#myConsumerIdemRepo&idempotentKey=${file:onlyname}&delete=true", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIncludeExtIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIncludeExtIT.java index f073f5494c8..f2302b07d16 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIncludeExtIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerIncludeExtIT.java @@ -24,7 +24,7 @@ public class SmbConsumerIncludeExtIT extends SmbServerTestSupport { private String getSbmUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/includeext&includeExt=txt,dat&initialDelay=3000", + "smb:%s/%s/includeext?username=%s&password=%s&includeExt=txt,dat&initialDelay=3000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerLocalWorkDirectoryIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerLocalWorkDirectoryIT.java index ffc61529d9f..8cfcfb4bf19 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerLocalWorkDirectoryIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerLocalWorkDirectoryIT.java @@ -44,7 +44,7 @@ public class SmbConsumerLocalWorkDirectoryIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/localwork&noop=true&localWorkDirectory=%s", + "smb:%s/%s/localwork?username=%s&password=%s&noop=true&localWorkDirectory=%s", service.address(), service.shareName(), service.userName(), service.password(), testDirectory.toAbsolutePath()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerMaxMessagesPerPollIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerMaxMessagesPerPollIT.java index fd5baff3635..de8f2f7a52f 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerMaxMessagesPerPollIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerMaxMessagesPerPollIT.java @@ -32,7 +32,7 @@ public class SmbConsumerMaxMessagesPerPollIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/poll&delete=true&sortBy=file:name&maxMessagesPerPoll=2&eagerMaxMessagesPerPoll=false", + "smb:%s/%s/poll?username=%s&password=%s&delete=true&sortBy=file:name&maxMessagesPerPoll=2&eagerMaxMessagesPerPoll=false", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerPartialReadIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerPartialReadIT.java index 1cff217feff..7f37f675eb1 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerPartialReadIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerPartialReadIT.java @@ -35,7 +35,7 @@ class SmbConsumerPartialReadIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/partialread&move=done&moveFailed=failed", + "smb:%s/%s/partialread?username=%s&password=%s&move=done&moveFailed=failed", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerProcessStrategyIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerProcessStrategyIT.java index 9f48bb17f8b..99751dfd6e0 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerProcessStrategyIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerProcessStrategyIT.java @@ -38,7 +38,7 @@ public class SmbConsumerProcessStrategyIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/strategy&processStrategy=#myStrategy", + "smb:%s/%s/strategy?username=%s&password=%s&processStrategy=#myStrategy", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerStartingDirectoryMustExistIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerStartingDirectoryMustExistIT.java index 57b20ed82ba..eebf62bc49f 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerStartingDirectoryMustExistIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbConsumerStartingDirectoryMustExistIT.java @@ -30,7 +30,7 @@ public class SmbConsumerStartingDirectoryMustExistIT extends SmbServerTestSuppor private String getSbmUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/doesnotexist&delete=true&initialDelay=3000&autoCreate=false&startingDirectoryMustExist=true", + "smb:%s/%s/doesnotexist?username=%s&password=%s&delete=true&initialDelay=3000&autoCreate=false&startingDirectoryMustExist=true", service.address(), service.shareName(), service.userName(), service.password()); } @@ -46,7 +46,7 @@ public class SmbConsumerStartingDirectoryMustExistIT extends SmbServerTestSuppor context.start(); Assertions.fail(); } catch (GenericFileOperationFailedException e) { - Assertions.assertEquals("Starting directory does not exist: /doesnotexist", e.getMessage()); + Assertions.assertEquals("Starting directory does not exist: doesnotexist", e.getMessage()); } } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbDeleteFileIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbDeleteFileIT.java index cdb5b60dc43..cd568ee19b7 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbDeleteFileIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbDeleteFileIT.java @@ -36,7 +36,7 @@ public class SmbDeleteFileIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/deletedfile&delete=true", + "smb:%s/%s/deletedfile?username=%s&password=%s&delete=true", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbDeleteFileIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbDeleteFilePathBackwardsCompatibleIT.java similarity index 90% copy from components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbDeleteFileIT.java copy to components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbDeleteFilePathBackwardsCompatibleIT.java index cdb5b60dc43..5f8f40c4b89 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbDeleteFileIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbDeleteFilePathBackwardsCompatibleIT.java @@ -27,7 +27,7 @@ import static org.awaitility.Awaitility.await; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -public class SmbDeleteFileIT extends SmbServerTestSupport { +public class SmbDeleteFilePathBackwardsCompatibleIT extends SmbServerTestSupport { @Override public void doPostSetup() throws Exception { @@ -36,7 +36,7 @@ public class SmbDeleteFileIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/deletedfile&delete=true", + "smb:%s/%s?username=%s&password=%s&path=deletedfile2&delete=true", service.address(), service.shareName(), service.userName(), service.password()); } @@ -49,7 +49,7 @@ public class SmbDeleteFileIT extends SmbServerTestSupport { mock.assertIsSatisfied(); await().atMost(3, TimeUnit.SECONDS) - .untilAsserted(() -> assertNull((copyFileContentFromContainer("/data/rw/deletedfile/hello.txt")))); + .untilAsserted(() -> assertNull((copyFileContentFromContainer("/data/rw/deletedfile2/hello.txt")))); } private void prepareSmbServer() throws Exception { @@ -58,7 +58,7 @@ public class SmbDeleteFileIT extends SmbServerTestSupport { // assert file is created await().atMost(3, TimeUnit.SECONDS) .untilAsserted(() -> assertEquals("Hello World this file will be deleted", - new String(copyFileContentFromContainer("/data/rw/deletedfile/hello.txt")))); + new String(copyFileContentFromContainer("/data/rw/deletedfile2/hello.txt")))); } @Override diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbNoDownloadIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbNoDownloadIT.java index 5e22f75ffc6..80c612ae659 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbNoDownloadIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbNoDownloadIT.java @@ -34,7 +34,7 @@ public class SmbNoDownloadIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/nodownload&download=false", + "smb:%s/%s/nodownload?username=%s&password=%s&download=false", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerAllowNullBodyIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerAllowNullBodyIT.java index a44c967e211..c4cbccce01e 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerAllowNullBodyIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerAllowNullBodyIT.java @@ -33,7 +33,7 @@ public class SmbProducerAllowNullBodyIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/nullbody", + "smb:%s/%s/nullbody?username=%s&password=%s", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerBuildDirectoryIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerBuildDirectoryIT.java index 8214ebade74..c78957f5418 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerBuildDirectoryIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerBuildDirectoryIT.java @@ -27,7 +27,7 @@ public class SmbProducerBuildDirectoryIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/buildDir/user/jono", + "smb:%s/%s/buildDir/user/jono?username=%s&password=%s", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerDoneFileNameIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerDoneFileNameIT.java index 20cbf624f47..81e720d13d5 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerDoneFileNameIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerDoneFileNameIT.java @@ -31,15 +31,15 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class SmbProducerDoneFileNameIT extends SmbServerTestSupport { - protected String getSmbUrl() { + protected String getSmbUrl(String path) { return String.format( - "smb:%s/%s?username=%s&password=%s", - service.address(), service.shareName(), service.userName(), service.password()); + "smb:%s/%s/%s?username=%s&password=%s", + service.address(), service.shareName(), path, service.userName(), service.password()); } @Test public void testProducerConstantDoneFileName() { - template.sendBodyAndHeader(getSmbUrl() + "&path=/constdone&doneFileName=done", "Hello World", Exchange.FILE_NAME, + template.sendBodyAndHeader(getSmbUrl("constdone") + "&doneFileName=done", "Hello World", Exchange.FILE_NAME, "hello.txt"); await().atMost(3, TimeUnit.SECONDS) @@ -53,7 +53,7 @@ public class SmbProducerDoneFileNameIT extends SmbServerTestSupport { @Test public void testProducerPrefixDoneFileName() { - template.sendBodyAndHeader(getSmbUrl() + "&path=/prefixdone&doneFileName=done-${file:name}", "Hello World", + template.sendBodyAndHeader(getSmbUrl("prefixdone") + "&doneFileName=done-${file:name}", "Hello World", Exchange.FILE_NAME, "hello.txt"); @@ -68,7 +68,7 @@ public class SmbProducerDoneFileNameIT extends SmbServerTestSupport { @Test public void testProducerExtDoneFileName() { - template.sendBodyAndHeader(getSmbUrl() + "&path=/extdone&doneFileName=${file:name}.done", "Hello World", + template.sendBodyAndHeader(getSmbUrl("extdone") + "&doneFileName=${file:name}.done", "Hello World", Exchange.FILE_NAME, "hello.txt"); @@ -83,7 +83,7 @@ public class SmbProducerDoneFileNameIT extends SmbServerTestSupport { @Test public void testProducerReplaceExtDoneFileName() { - template.sendBodyAndHeader(getSmbUrl() + "&path=/replextdone&doneFileName=${file:name.noext}.done", "Hello World", + template.sendBodyAndHeader(getSmbUrl("replextdone") + "&doneFileName=${file:name.noext}.done", "Hello World", Exchange.FILE_NAME, "hello.txt"); @@ -98,7 +98,7 @@ public class SmbProducerDoneFileNameIT extends SmbServerTestSupport { @Test public void testProducerInvalidDoneFileName() { - String uri = getSmbUrl() + "&path=/invaliddone&doneFileName=${file:parent}/foo"; + String uri = getSmbUrl("invaliddone") + "&doneFileName=${file:parent}/foo"; Exception ex = assertThrows(CamelExecutionException.class, () -> template.sendBodyAndHeader(uri, "Hello World", Exchange.FILE_NAME, "hello.txt")); @@ -111,7 +111,7 @@ public class SmbProducerDoneFileNameIT extends SmbServerTestSupport { @Test public void testProducerEmptyDoneFileName() { - String uri = getSmbUrl() + "&path=/emptydone&doneFileName="; + String uri = getSmbUrl("emptydone") + "&doneFileName="; Exception ex = assertThrows(CamelExecutionException.class, () -> template.sendBodyAndHeader(uri, "Hello World", Exchange.FILE_NAME, "hello.txt")); diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistAppendIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistAppendIT.java index 045ab5516d3..b427539ca30 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistAppendIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistAppendIT.java @@ -29,11 +29,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; public class SmbProducerFileExistAppendIT extends SmbServerTestSupport { - // private static final boolean ON_WINDOWS = System.getProperty("os.name").startsWith("Windows"); - protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/exist&delay=2000&noop=true&fileExist=Append", + "smb:%s/%s/exist?username=%s&password=%s&delay=2000&noop=true&fileExist=Append", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistAppendNoFileBeforeIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistAppendNoFileBeforeIT.java index 063f8a208e7..bcbbf2091fe 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistAppendNoFileBeforeIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistAppendNoFileBeforeIT.java @@ -30,7 +30,7 @@ public class SmbProducerFileExistAppendNoFileBeforeIT extends SmbServerTestSuppo protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/appnotexist&delay=2000&noop=true&fileExist=Append", + "smb:%s/%s/appnotexist?username=%s&password=%s&delay=2000&noop=true&fileExist=Append", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistFailIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistFailIT.java index 007a49afd5e..20110ff68ab 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistFailIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistFailIT.java @@ -35,7 +35,7 @@ public class SmbProducerFileExistFailIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/existfail&delay=2000&noop=true&fileExist=Fail", + "smb:%s/%s/existfail?username=%s&password=%s&delay=2000&noop=true&fileExist=Fail", service.address(), service.shareName(), service.userName(), service.password()); } @@ -59,7 +59,7 @@ public class SmbProducerFileExistFailIT extends SmbServerTestSupport { GenericFileOperationFailedException cause = assertIsInstanceOf(GenericFileOperationFailedException.class, ex.getCause()); - assertEquals("File already exist: /existfail/hello.txt. Cannot write new file.", cause.getMessage()); + assertEquals("File already exist: existfail/hello.txt. Cannot write new file.", cause.getMessage()); MockEndpoint.assertIsSatisfied(context); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistIgnoreIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistIgnoreIT.java index a2a1704b9d7..c57b72680d9 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistIgnoreIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistIgnoreIT.java @@ -30,7 +30,7 @@ public class SmbProducerFileExistIgnoreIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/existignore&delay=2000&noop=true&fileExist=Ignore", + "smb:%s/%s/existignore?username=%s&password=%s&delay=2000&noop=true&fileExist=Ignore", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideIT.java index f6fca372133..06678d9eaa7 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideIT.java @@ -30,7 +30,7 @@ public class SmbProducerFileExistOverrideIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/existoverride&delay=2000&noop=true&fileExist=Override", + "smb:%s/%s/existoverride?username=%s&password=%s&delay=2000&noop=true&fileExist=Override", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideNoFileBeforeIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideNoFileBeforeIT.java index 73595b0c4b8..3ac9e510a9a 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideNoFileBeforeIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideNoFileBeforeIT.java @@ -30,7 +30,7 @@ public class SmbProducerFileExistOverrideNoFileBeforeIT extends SmbServerTestSup protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/notexistoverride&delay=2000&noop=true&fileExist=Override", + "smb:%s/%s/notexistoverride?username=%s&password=%s&delay=2000&noop=true&fileExist=Override", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideNotEagerDeleteTargetFileTwoUploadIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideNotEagerDeleteTargetFileTwoUploadIT.java index d91414789c3..eacd063d840 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideNotEagerDeleteTargetFileTwoUploadIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideNotEagerDeleteTargetFileTwoUploadIT.java @@ -28,7 +28,7 @@ public class SmbProducerFileExistOverrideNotEagerDeleteTargetFileTwoUploadIT ext protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/existOverrideTwoNotEagerDel&fileExist=Override&eagerDeleteTargetFile=false", + "smb:%s/%s/existOverrideTwoNotEagerDel?username=%s&password=%s&fileExist=Override&eagerDeleteTargetFile=false", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideTwoUploadIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideTwoUploadIT.java index abc7ee3b966..8e0644232c6 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideTwoUploadIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileExistOverrideTwoUploadIT.java @@ -28,7 +28,7 @@ public class SmbProducerFileExistOverrideTwoUploadIT extends SmbServerTestSuppor protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/existoverridetwo&delay=2000&noop=true&fileExist=Override", + "smb:%s/%s/existoverridetwo?username=%s&password=%s&delay=2000&noop=true&fileExist=Override", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileWithCharsetIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileWithCharsetIT.java index a9021324e00..5e1558fa078 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileWithCharsetIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileWithCharsetIT.java @@ -34,7 +34,7 @@ public class SmbProducerFileWithCharsetIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/charset&charset=iso-8859-1", + "smb:%s/%s/charset?username=%s&password=%s&charset=iso-8859-1", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileWithPathIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileWithPathIT.java index 43593892a88..4c810fdaa1b 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileWithPathIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerFileWithPathIT.java @@ -28,7 +28,7 @@ public class SmbProducerFileWithPathIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/uploadWithPath", + "smb:%s/%s/uploadWithPath?username=%s&password=%s", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerToDMoveExistingIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerToDMoveExistingIT.java index 68876163be4..917c5caabb2 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerToDMoveExistingIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerToDMoveExistingIT.java @@ -29,7 +29,7 @@ public class SmbProducerToDMoveExistingIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=${header.myDir}&fileExist=Move&moveExisting=old-${file:onlyname}", + "smb:%s/%s/${header.myDir}?username=%s&password=%s&fileExist=Move&moveExisting=old-${file:onlyname}", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerToMoveExistingIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerToMoveExistingIT.java index 615e81c1791..f9de4e63fb6 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerToMoveExistingIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbProducerToMoveExistingIT.java @@ -29,7 +29,7 @@ public class SmbProducerToMoveExistingIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/toMoveExisting&fileExist=Move&moveExisting=old-${file:onlyname}", + "smb:%s/%s/toMoveExisting?username=%s&password=%s&fileExist=Move&moveExisting=old-${file:onlyname}", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbRecursiveMaxDepthIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbRecursiveMaxDepthIT.java index c08b662f863..a1fc8d40f67 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbRecursiveMaxDepthIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbRecursiveMaxDepthIT.java @@ -30,7 +30,7 @@ public class SmbRecursiveMaxDepthIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/uploadmax&recursive=true&maxdepth=3&initialDelay=3000", + "smb:%s/%s/uploadmax?username=%s&password=%s&recursive=true&maxdepth=3&initialDelay=3000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbRecursiveMinDepthIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbRecursiveMinDepthIT.java index e0f1abfc221..49df306874d 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbRecursiveMinDepthIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbRecursiveMinDepthIT.java @@ -30,7 +30,7 @@ public class SmbRecursiveMinDepthIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/uploadmin&recursive=true&mindepth=3&initialDelay=3000", + "smb:%s/%s/uploadmin?username=%s&password=%s&recursive=true&mindepth=3&initialDelay=3000", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadFalseIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadFalseIT.java index 7686e3c080a..bc80e80ad5f 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadFalseIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadFalseIT.java @@ -32,7 +32,7 @@ public class SmbStreamDownloadFalseIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/uploadstream2&streamDownload=false", + "smb:%s/%s/uploadstream2?username=%s&password=%s&streamDownload=false", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadIT.java index 809d5d19986..1bdae848715 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadIT.java @@ -36,7 +36,7 @@ public class SmbStreamDownloadIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/uploadstream&streamDownload=true", + "smb:%s/%s/uploadstream?username=%s&password=%s&streamDownload=true", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadStreamCacheIT.java b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadStreamCacheIT.java index d437167cbde..8a67b91402e 100644 --- a/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadStreamCacheIT.java +++ b/components/camel-smb/src/test/java/org/apache/camel/component/smb/SmbStreamDownloadStreamCacheIT.java @@ -31,7 +31,7 @@ public class SmbStreamDownloadStreamCacheIT extends SmbServerTestSupport { protected String getSmbUrl() { return String.format( - "smb:%s/%s?username=%s&password=%s&path=/uploadstream3&streamDownload=true", + "smb:%s/%s/uploadstream3?username=%s&password=%s&streamDownload=true", service.address(), service.shareName(), service.userName(), service.password()); } diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_12.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_12.adoc index 77e6a52dd44..4e95f2f6194 100644 --- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_12.adoc +++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_12.adoc @@ -132,3 +132,23 @@ They are replaced with a new option `threadOffloadExecutorService` as a general Similarly, there is now only a single `camel-main` configuration option for the fault tolerance `ExecutorService` named `camel.faulttolerance.threadOffloadExecutorService`. `faultToleranceConfiguration` option `circuitBreaker` is replaced by `typedGuard` and it's `camel-main` configuration option is `camel.main.faulttolerance.typedGuard`. + +=== camel-smb + +The `path` option is now configured in the context-path instead of query parameter. +This makes the endpoint more similar to other file based components. + +Before: +[source,text] +---- +smb://mysmbserver/myshare/?path=mypath +---- + +After: + +[source,text] +---- +smb://mysmbserver/myshare/mypath +---- + +TIP: The `path` can still be specified in the URI as backwards compatible. diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java index 1a50ec1fea3..29d22bbfbe1 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java @@ -13360,7 +13360,7 @@ public class StaticEndpointBuilders { * Since: 4.3 * Maven coordinates: org.apache.camel:camel-smb * - * Syntax: <code>smb:hostname:port/shareName</code> + * Syntax: <code>smb:hostname:port/shareName/path</code> * * Path parameter: hostname (required) * The share hostname or IP address @@ -13372,7 +13372,10 @@ public class StaticEndpointBuilders { * Path parameter: shareName (required) * The name of the share directory * - * @param path hostname:port/shareName + * Path parameter: path + * The base directory within the share + * + * @param path hostname:port/shareName/path * @return the dsl builder */ public static SmbEndpointBuilderFactory.SmbEndpointBuilder smb(String path) { @@ -13386,7 +13389,7 @@ public class StaticEndpointBuilders { * Since: 4.3 * Maven coordinates: org.apache.camel:camel-smb * - * Syntax: <code>smb:hostname:port/shareName</code> + * Syntax: <code>smb:hostname:port/shareName/path</code> * * Path parameter: hostname (required) * The share hostname or IP address @@ -13398,9 +13401,12 @@ public class StaticEndpointBuilders { * Path parameter: shareName (required) * The name of the share directory * + * Path parameter: path + * The base directory within the share + * * @param componentName to use a custom component name for the endpoint * instead of the default name - * @param path hostname:port/shareName + * @param path hostname:port/shareName/path * @return the dsl builder */ public static SmbEndpointBuilderFactory.SmbEndpointBuilder smb(String componentName, String path) { diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SmbEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SmbEndpointBuilderFactory.java index 04d92079573..b8fe481a1a0 100644 --- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SmbEndpointBuilderFactory.java +++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SmbEndpointBuilderFactory.java @@ -154,20 +154,6 @@ public interface SmbEndpointBuilderFactory { doSetProperty("fileName", fileName); return this; } - /** - * The base directory within the share. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: common - * - * @param path the value to set - * @return the dsl builder - */ - default SmbEndpointConsumerBuilder path(String path) { - doSetProperty("path", path); - return this; - } /** * If true, the file will be deleted after it is processed successfully. * @@ -2626,20 +2612,6 @@ public interface SmbEndpointBuilderFactory { doSetProperty("fileName", fileName); return this; } - /** - * The base directory within the share. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: common - * - * @param path the value to set - * @return the dsl builder - */ - default SmbEndpointProducerBuilder path(String path) { - doSetProperty("path", path); - return this; - } /** * If provided, then Camel will write a checksum file when the original * file has been written. The checksum file will contain the checksum @@ -3416,20 +3388,6 @@ public interface SmbEndpointBuilderFactory { doSetProperty("fileName", fileName); return this; } - /** - * The base directory within the share. - * - * The option is a: <code>java.lang.String</code> type. - * - * Group: common - * - * @param path the value to set - * @return the dsl builder - */ - default SmbEndpointBuilder path(String path) { - doSetProperty("path", path); - return this; - } /** * The user domain. * @@ -3640,7 +3598,7 @@ public interface SmbEndpointBuilderFactory { * Since: 4.3 * Maven coordinates: org.apache.camel:camel-smb * - * Syntax: <code>smb:hostname:port/shareName</code> + * Syntax: <code>smb:hostname:port/shareName/path</code> * * Path parameter: hostname (required) * The share hostname or IP address @@ -3652,7 +3610,10 @@ public interface SmbEndpointBuilderFactory { * Path parameter: shareName (required) * The name of the share directory * - * @param path hostname:port/shareName + * Path parameter: path + * The base directory within the share + * + * @param path hostname:port/shareName/path * @return the dsl builder */ default SmbEndpointBuilder smb(String path) { @@ -3666,7 +3627,7 @@ public interface SmbEndpointBuilderFactory { * Since: 4.3 * Maven coordinates: org.apache.camel:camel-smb * - * Syntax: <code>smb:hostname:port/shareName</code> + * Syntax: <code>smb:hostname:port/shareName/path</code> * * Path parameter: hostname (required) * The share hostname or IP address @@ -3678,9 +3639,12 @@ public interface SmbEndpointBuilderFactory { * Path parameter: shareName (required) * The name of the share directory * + * Path parameter: path + * The base directory within the share + * * @param componentName to use a custom component name for the endpoint * instead of the default name - * @param path hostname:port/shareName + * @param path hostname:port/shareName/path * @return the dsl builder */ default SmbEndpointBuilder smb(String componentName, String path) {