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

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

commit 30899993d495b4fd79e750ef739939d010128769
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Jan 2 15:42:52 2024 +0100

    CAMEL-20289: camel-core - FluentProducerTemplate - Add withVariable and 
withProperty. Also fixed typo.
---
 .../maven/MavenVersionManagerManualTest.java       |  2 +-
 .../camel/catalog/components/file-watch.json       |  2 +-
 .../org/apache/camel/catalog/components/ftp.json   |  2 +-
 .../org/apache/camel/catalog/components/ftps.json  |  2 +-
 .../org/apache/camel/catalog/components/sftp.json  |  2 +-
 .../camel/component/file/azure/FilesConsumer.java  |  2 +-
 .../camel/component/file/watch/file-watch.json     |  2 +-
 .../component/file/watch/FileWatchEndpoint.java    |  2 +-
 .../apache/camel/component/file/FileConsumer.java  |  2 +-
 .../camel/component/file/GenericFileConsumer.java  |  2 +-
 .../GenericFileProcessStrategySupport.java         |  2 +-
 .../apache/camel/component/file/remote/ftp.json    |  2 +-
 .../apache/camel/component/file/remote/ftps.json   |  2 +-
 .../apache/camel/component/file/remote/sftp.json   |  2 +-
 .../camel/component/file/remote/FtpConsumer.java   |  2 +-
 .../file/remote/RemoteFileConfiguration.java       |  4 +-
 .../camel/component/file/remote/SftpConsumer.java  |  2 +-
 .../camel/component/jms/JmsMessageHelper.java      |  4 +-
 .../server/core/integ5/DSAnnotationProcessor.java  |  2 +-
 .../server/core/integ5/DSAnnotationProcessor.java  |  2 +-
 .../camel/component/minio/MinioConsumer.java       |  2 +-
 .../camel/component/sjms/jms/JmsMessageHelper.java |  2 +-
 .../spring/batch/SpringBatchEndpointTest.java      |  2 +-
 .../camel/spring/processor/convertVariable.xml     | 28 -------
 .../apache/camel/test/junit5/CamelTestSupport.java |  2 +-
 .../component/whatsapp/model/UploadMedia.java      |  2 +-
 .../main/java/org/apache/camel/PropertyInject.java |  2 +-
 .../java/org/apache/camel/spi/ManagementAgent.java |  2 +-
 .../impl/engine/DefaultResourceResolvers.java      |  2 +-
 .../camel/catalog/impl/AbstractCamelCatalog.java   |  2 +-
 .../java/org/apache/camel/builder/AdviceWith.java  |  2 +-
 .../camel/processor/RemoveVariableProcessor.java   |  2 +-
 .../camel/processor/SetVariableProcessor.java      |  2 +-
 .../processor/aggregate/AggregateController.java   |  4 +-
 ...leConsumerFileExpressionThrowExceptionTest.java |  2 +-
 .../processor/converter/ConvertVariableTest.java   | 89 +++++++++-------------
 .../org/apache/camel/support/DefaultComponent.java |  2 +-
 .../org/apache/camel/support/ExchangeHelper.java   |  2 +-
 .../camel/support/builder/ExpressionBuilder.java   |  4 +-
 .../processor/ConvertVariableProcessor.java        |  2 +-
 .../ROOT/pages/using-propertyplaceholder.adoc      |  4 +-
 .../dsl/jbang/core/common/CommandLineHelper.java   |  2 +-
 .../camel/dsl/yaml/ConvertVariableTest.groovy      | 14 +---
 ...ndNoTransactionErrorHandlerConfiguredRoute.java |  2 +-
 .../itest/tx/JmsToHttpWithOnExceptionRoute.java    |  2 +-
 .../camel/maven/EipDocumentationEnricherMojo.java  |  2 +-
 46 files changed, 88 insertions(+), 139 deletions(-)

diff --git 
a/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerManualTest.java
 
b/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerManualTest.java
index 93a82165ebc..5cc9e1c2e9d 100644
--- 
a/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerManualTest.java
+++ 
b/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerManualTest.java
@@ -145,7 +145,7 @@ public class MavenVersionManagerManualTest {
         String current = manager.getLoadedVersion();
         assertNull(current);
 
-        // version 2.99 does not exists and cannot be loaded
+        // version 2.99 does not exist and cannot be loaded
         boolean loaded = manager.loadVersion("2.99");
         assertFalse(loaded);
     }
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/file-watch.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/file-watch.json
index 89d5eb47bea..bbb4a426370 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/file-watch.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/file-watch.json
@@ -46,7 +46,7 @@
   "properties": {
     "path": { "index": 0, "kind": "path", "displayName": "Path", "group": 
"consumer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Path of directory to consume events 
from." },
     "antInclude": { "index": 1, "kind": "parameter", "displayName": "Ant 
Include", "group": "consumer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "**", "description": "ANT style pattern 
to match files. The file is matched against path relative to endpoint path. 
Pattern must be also relative (not starting with slash)" },
-    "autoCreate": { "index": 2, "kind": "parameter", "displayName": "Auto 
Create", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Auto create directory if 
does not exists." },
+    "autoCreate": { "index": 2, "kind": "parameter", "displayName": "Auto 
Create", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Auto create directory if 
does not exist." },
     "events": { "index": 3, "kind": "parameter", "displayName": "Events", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "CREATE,MODIFY,DELETE", "description": "Comma 
separated list of events to watch. Possible values: CREATE,MODIFY,DELETE" },
     "recursive": { "index": 4, "kind": "parameter", "displayName": 
"Recursive", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Watch recursive in 
current and child directories (including newly created directories)." },
     "useFileHashing": { "index": 5, "kind": "parameter", "displayName": "Use 
File Hashing", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Enables or disables file 
hashing to detect duplicate events. If you disable this, you can get some 
events multiple times on some platforms and JDKs. Check 
java.nio.file.WatchService limitations for your target [...]
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/ftp.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/ftp.json
index 0785da794f0..d43d29a086d 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/ftp.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/ftp.json
@@ -71,7 +71,7 @@
     "exceptionHandler": { "index": 25, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
     "exchangePattern": { "index": 26, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
     "handleDirectoryParserAbsoluteResult": { "index": 27, "kind": "parameter", 
"displayName": "Handle Directory Parser Absolute Result", "group": "consumer 
(advanced)", "label": "consumer,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": "Allows you to s [...]
-    "ignoreFileNotFoundOrPermissionError": { "index": 28, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to ig [...]
+    "ignoreFileNotFoundOrPermissionError": { "index": 28, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to ig [...]
     "inProgressRepository": { "index": 29, "kind": "parameter", "displayName": 
"In Progress Repository", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": 
false, "secret": false, "description": "A pluggable in-progress repository 
org.apache.camel.spi.IdempotentRepository. The in-progress repository is used 
to account the current in progress files bei [...]
     "localWorkDirectory": { "index": 30, "kind": "parameter", "displayName": 
"Local Work Directory", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "When consuming, a local work directory can be used to store the 
remote file content directly in local files, to avoid loading the content into 
memory. This is beneficial, if you consume  [...]
     "onCompletionExceptionHandler": { "index": 31, "kind": "parameter", 
"displayName": "On Completion Exception Handler", "group": "consumer 
(advanced)", "label": "consumer,advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.spi.ExceptionHandler", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use a custom 
org.apache.camel.spi.ExceptionHandler to handle any thrown exceptions that 
happens during the file on completion process where t [...]
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/ftps.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/ftps.json
index da791d32c42..8b420525c3c 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/ftps.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/ftps.json
@@ -72,7 +72,7 @@
     "exceptionHandler": { "index": 25, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
     "exchangePattern": { "index": 26, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
     "handleDirectoryParserAbsoluteResult": { "index": 27, "kind": "parameter", 
"displayName": "Handle Directory Parser Absolute Result", "group": "consumer 
(advanced)", "label": "consumer,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": "Allows you to  [...]
-    "ignoreFileNotFoundOrPermissionError": { "index": 28, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to i [...]
+    "ignoreFileNotFoundOrPermissionError": { "index": 28, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to i [...]
     "inProgressRepository": { "index": 29, "kind": "parameter", "displayName": 
"In Progress Repository", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": 
false, "secret": false, "description": "A pluggable in-progress repository 
org.apache.camel.spi.IdempotentRepository. The in-progress repository is used 
to account the current in progress files bei [...]
     "localWorkDirectory": { "index": 30, "kind": "parameter", "displayName": 
"Local Work Directory", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "When consuming, a local work directory can be used to store the 
remote file content directly in local files, to avoid loading the content into 
memory. This is beneficial, if you consume  [...]
     "onCompletionExceptionHandler": { "index": 31, "kind": "parameter", 
"displayName": "On Completion Exception Handler", "group": "consumer 
(advanced)", "label": "consumer,advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.spi.ExceptionHandler", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use a custom 
org.apache.camel.spi.ExceptionHandler to handle any thrown exceptions that 
happens during the file on completion process where t [...]
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/sftp.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/sftp.json
index b5ac8cf9cc4..3deaca51c44 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/sftp.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/sftp.json
@@ -66,7 +66,7 @@
     "download": { "index": 21, "kind": "parameter", "displayName": "Download", 
"group": "consumer (advanced)", "label": "consumer,advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the FTP consumer should download the file. If this option is set to 
false, then the message body will be null, but the consumer will still trigger 
a Camel Exchange that has details abou [...]
     "exceptionHandler": { "index": 22, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
     "exchangePattern": { "index": 23, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
-    "ignoreFileNotFoundOrPermissionError": { "index": 24, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to i [...]
+    "ignoreFileNotFoundOrPermissionError": { "index": 24, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to i [...]
     "inProgressRepository": { "index": 25, "kind": "parameter", "displayName": 
"In Progress Repository", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": 
false, "secret": false, "description": "A pluggable in-progress repository 
org.apache.camel.spi.IdempotentRepository. The in-progress repository is used 
to account the current in progress files bei [...]
     "localWorkDirectory": { "index": 26, "kind": "parameter", "displayName": 
"Local Work Directory", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "When consuming, a local work directory can be used to store the 
remote file content directly in local files, to avoid loading the content into 
memory. This is beneficial, if you consume  [...]
     "onCompletionExceptionHandler": { "index": 27, "kind": "parameter", 
"displayName": "On Completion Exception Handler", "group": "consumer 
(advanced)", "label": "consumer,advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.spi.ExceptionHandler", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use a custom 
org.apache.camel.spi.ExceptionHandler to handle any thrown exceptions that 
happens during the file on completion process where t [...]
diff --git 
a/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesConsumer.java
 
b/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesConsumer.java
index d40d1305f3f..d329a0452dd 100644
--- 
a/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesConsumer.java
+++ 
b/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesConsumer.java
@@ -182,7 +182,7 @@ public class FilesConsumer extends 
RemoteFileConsumer<ShareFileItem> {
         } catch (GenericFileOperationFailedException e) {
             if (ignoreCannotRetrieveFile(null, null, e)) {
                 LOG.debug(
-                        "Cannot list files in directory {} due directory does 
not exists or file permission error.",
+                        "Cannot list files in directory {} due directory does 
not exist or file permission error.",
                         dir);
                 return null;
             } else {
diff --git 
a/components/camel-file-watch/src/generated/resources/org/apache/camel/component/file/watch/file-watch.json
 
b/components/camel-file-watch/src/generated/resources/org/apache/camel/component/file/watch/file-watch.json
index 89d5eb47bea..bbb4a426370 100644
--- 
a/components/camel-file-watch/src/generated/resources/org/apache/camel/component/file/watch/file-watch.json
+++ 
b/components/camel-file-watch/src/generated/resources/org/apache/camel/component/file/watch/file-watch.json
@@ -46,7 +46,7 @@
   "properties": {
     "path": { "index": 0, "kind": "path", "displayName": "Path", "group": 
"consumer", "label": "", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": 
false, "secret": false, "description": "Path of directory to consume events 
from." },
     "antInclude": { "index": 1, "kind": "parameter", "displayName": "Ant 
Include", "group": "consumer", "label": "", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": "**", "description": "ANT style pattern 
to match files. The file is matched against path relative to endpoint path. 
Pattern must be also relative (not starting with slash)" },
-    "autoCreate": { "index": 2, "kind": "parameter", "displayName": "Auto 
Create", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Auto create directory if 
does not exists." },
+    "autoCreate": { "index": 2, "kind": "parameter", "displayName": "Auto 
Create", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Auto create directory if 
does not exist." },
     "events": { "index": 3, "kind": "parameter", "displayName": "Events", 
"group": "consumer", "label": "", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "CREATE,MODIFY,DELETE", "description": "Comma 
separated list of events to watch. Possible values: CREATE,MODIFY,DELETE" },
     "recursive": { "index": 4, "kind": "parameter", "displayName": 
"Recursive", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Watch recursive in 
current and child directories (including newly created directories)." },
     "useFileHashing": { "index": 5, "kind": "parameter", "displayName": "Use 
File Hashing", "group": "consumer", "label": "", "required": false, "type": 
"boolean", "javaType": "boolean", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": true, "description": "Enables or disables file 
hashing to detect duplicate events. If you disable this, you can get some 
events multiple times on some platforms and JDKs. Check 
java.nio.file.WatchService limitations for your target [...]
diff --git 
a/components/camel-file-watch/src/main/java/org/apache/camel/component/file/watch/FileWatchEndpoint.java
 
b/components/camel-file-watch/src/main/java/org/apache/camel/component/file/watch/FileWatchEndpoint.java
index 5390c0e95e2..60d0a08a346 100644
--- 
a/components/camel-file-watch/src/main/java/org/apache/camel/component/file/watch/FileWatchEndpoint.java
+++ 
b/components/camel-file-watch/src/main/java/org/apache/camel/component/file/watch/FileWatchEndpoint.java
@@ -41,7 +41,7 @@ public class FileWatchEndpoint extends DefaultEndpoint 
implements MultipleConsum
     @UriParam(description = "Comma separated list of events to watch. Possible 
values: CREATE,MODIFY,DELETE",
               defaultValue = "CREATE,MODIFY,DELETE")
     private String events = "CREATE,MODIFY,DELETE";
-    @UriParam(description = "Auto create directory if does not exists.", 
defaultValue = "true")
+    @UriParam(description = "Auto create directory if does not exist.", 
defaultValue = "true")
     private boolean autoCreate = true;
     @UriParam(description = "Watch recursive in current and child directories 
(including newly created directories).",
               defaultValue = "true")
diff --git 
a/components/camel-file/src/main/java/org/apache/camel/component/file/FileConsumer.java
 
b/components/camel-file/src/main/java/org/apache/camel/component/file/FileConsumer.java
index 8090f71550d..1e871a0b5b2 100644
--- 
a/components/camel-file/src/main/java/org/apache/camel/component/file/FileConsumer.java
+++ 
b/components/camel-file/src/main/java/org/apache/camel/component/file/FileConsumer.java
@@ -160,7 +160,7 @@ public class FileConsumer extends GenericFileConsumer<File> 
implements ResumeAwa
 
         File directory = new File(fileName);
         if (!directory.exists() || !directory.isDirectory()) {
-            LOG.debug("Cannot poll as directory does not exists or its not a 
directory: {}", directory);
+            LOG.debug("Cannot poll as directory does not exist or its not a 
directory: {}", directory);
             if (getEndpoint().isDirectoryMustExist()) {
                 throw new GenericFileOperationFailedException("Directory does 
not exist: " + directory);
             }
diff --git 
a/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java
 
b/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java
index 1684de25ed5..7fae79851b1 100644
--- 
a/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java
+++ 
b/components/camel-file/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java
@@ -445,7 +445,7 @@ public abstract class GenericFileConsumer<T> extends 
ScheduledBatchPollingConsum
 
                 if (!retrieved) {
                     if (ignoreCannotRetrieveFile(name, exchange, cause)) {
-                        LOG.trace("Cannot retrieve file {} maybe it does not 
exists. Ignoring.", name);
+                        LOG.trace("Cannot retrieve file {} maybe it does not 
exist. Ignoring.", name);
                         // remove file from the in progress list as we could 
not
                         // retrieve it, but should ignore
                         
endpoint.getInProgressRepository().remove(absoluteFileName);
diff --git 
a/components/camel-file/src/main/java/org/apache/camel/component/file/strategy/GenericFileProcessStrategySupport.java
 
b/components/camel-file/src/main/java/org/apache/camel/component/file/strategy/GenericFileProcessStrategySupport.java
index cafdd64956d..d5cf22e8cb3 100644
--- 
a/components/camel-file/src/main/java/org/apache/camel/component/file/strategy/GenericFileProcessStrategySupport.java
+++ 
b/components/camel-file/src/main/java/org/apache/camel/component/file/strategy/GenericFileProcessStrategySupport.java
@@ -131,7 +131,7 @@ public abstract class GenericFileProcessStrategySupport<T> 
extends ServiceSuppor
         try {
             operations.deleteFile(to.getAbsoluteFilePath());
         } catch (GenericFileOperationFailedException e) {
-            // ignore the file does not exists
+            // ignore the file does not exist
         }
 
         // make parent folder if missing
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 0785da794f0..d43d29a086d 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
@@ -71,7 +71,7 @@
     "exceptionHandler": { "index": 25, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
     "exchangePattern": { "index": 26, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
     "handleDirectoryParserAbsoluteResult": { "index": 27, "kind": "parameter", 
"displayName": "Handle Directory Parser Absolute Result", "group": "consumer 
(advanced)", "label": "consumer,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": "Allows you to s [...]
-    "ignoreFileNotFoundOrPermissionError": { "index": 28, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to ig [...]
+    "ignoreFileNotFoundOrPermissionError": { "index": 28, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to ig [...]
     "inProgressRepository": { "index": 29, "kind": "parameter", "displayName": 
"In Progress Repository", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": 
false, "secret": false, "description": "A pluggable in-progress repository 
org.apache.camel.spi.IdempotentRepository. The in-progress repository is used 
to account the current in progress files bei [...]
     "localWorkDirectory": { "index": 30, "kind": "parameter", "displayName": 
"Local Work Directory", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "When consuming, a local work directory can be used to store the 
remote file content directly in local files, to avoid loading the content into 
memory. This is beneficial, if you consume  [...]
     "onCompletionExceptionHandler": { "index": 31, "kind": "parameter", 
"displayName": "On Completion Exception Handler", "group": "consumer 
(advanced)", "label": "consumer,advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.spi.ExceptionHandler", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use a custom 
org.apache.camel.spi.ExceptionHandler to handle any thrown exceptions that 
happens during the file on completion process where t [...]
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 da791d32c42..8b420525c3c 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
@@ -72,7 +72,7 @@
     "exceptionHandler": { "index": 25, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
     "exchangePattern": { "index": 26, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
     "handleDirectoryParserAbsoluteResult": { "index": 27, "kind": "parameter", 
"displayName": "Handle Directory Parser Absolute Result", "group": "consumer 
(advanced)", "label": "consumer,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": "Allows you to  [...]
-    "ignoreFileNotFoundOrPermissionError": { "index": 28, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to i [...]
+    "ignoreFileNotFoundOrPermissionError": { "index": 28, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to i [...]
     "inProgressRepository": { "index": 29, "kind": "parameter", "displayName": 
"In Progress Repository", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": 
false, "secret": false, "description": "A pluggable in-progress repository 
org.apache.camel.spi.IdempotentRepository. The in-progress repository is used 
to account the current in progress files bei [...]
     "localWorkDirectory": { "index": 30, "kind": "parameter", "displayName": 
"Local Work Directory", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "When consuming, a local work directory can be used to store the 
remote file content directly in local files, to avoid loading the content into 
memory. This is beneficial, if you consume  [...]
     "onCompletionExceptionHandler": { "index": 31, "kind": "parameter", 
"displayName": "On Completion Exception Handler", "group": "consumer 
(advanced)", "label": "consumer,advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.spi.ExceptionHandler", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use a custom 
org.apache.camel.spi.ExceptionHandler to handle any thrown exceptions that 
happens during the file on completion process where t [...]
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 b5ac8cf9cc4..3deaca51c44 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
@@ -66,7 +66,7 @@
     "download": { "index": 21, "kind": "parameter", "displayName": "Download", 
"group": "consumer (advanced)", "label": "consumer,advanced", "required": 
false, "type": "boolean", "javaType": "boolean", "deprecated": false, 
"autowired": false, "secret": false, "defaultValue": false, "description": 
"Whether the FTP consumer should download the file. If this option is set to 
false, then the message body will be null, but the consumer will still trigger 
a Camel Exchange that has details abou [...]
     "exceptionHandler": { "index": 22, "kind": "parameter", "displayName": 
"Exception Handler", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
let the consumer use a custom ExceptionHandler. Notice if the option 
bridgeErrorHandler is enabled then this option is not in use. By de [...]
     "exchangePattern": { "index": 23, "kind": "parameter", "displayName": 
"Exchange Pattern", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], 
"deprecated": false, "autowired": false, "secret": false, "description": "Sets 
the exchange pattern when the consumer creates an exchange." },
-    "ignoreFileNotFoundOrPermissionError": { "index": 24, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to i [...]
+    "ignoreFileNotFoundOrPermissionError": { "index": 24, "kind": "parameter", 
"displayName": "Ignore File Not Found Or Permission Error", "group": "consumer 
(advanced)", "label": "consumer,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": "Whether to i [...]
     "inProgressRepository": { "index": 25, "kind": "parameter", "displayName": 
"In Progress Repository", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "object", "javaType": 
"org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": 
false, "secret": false, "description": "A pluggable in-progress repository 
org.apache.camel.spi.IdempotentRepository. The in-progress repository is used 
to account the current in progress files bei [...]
     "localWorkDirectory": { "index": 26, "kind": "parameter", "displayName": 
"Local Work Directory", "group": "consumer (advanced)", "label": 
"consumer,advanced", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "When consuming, a local work directory can be used to store the 
remote file content directly in local files, to avoid loading the content into 
memory. This is beneficial, if you consume  [...]
     "onCompletionExceptionHandler": { "index": 27, "kind": "parameter", 
"displayName": "On Completion Exception Handler", "group": "consumer 
(advanced)", "label": "consumer,advanced", "required": false, "type": "object", 
"javaType": "org.apache.camel.spi.ExceptionHandler", "deprecated": false, 
"autowired": false, "secret": false, "description": "To use a custom 
org.apache.camel.spi.ExceptionHandler to handle any thrown exceptions that 
happens during the file on completion process where t [...]
diff --git 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
index f40526aa4bf..cde23eff2ac 100644
--- 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
+++ 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
@@ -248,7 +248,7 @@ public class FtpConsumer extends 
RemoteFileConsumer<FTPFile> {
             }
         } catch (GenericFileOperationFailedException e) {
             if (ignoreCannotRetrieveFile(null, null, e)) {
-                LOG.debug("Cannot list files in directory {} due directory 
does not exists or file permission error.", dir);
+                LOG.debug("Cannot list files in directory {} due directory 
does not exist or file permission error.", dir);
             } else {
                 throw e;
             }
diff --git 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java
 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java
index f650f5daa4f..299ce271df3 100644
--- 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java
+++ 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConfiguration.java
@@ -105,7 +105,7 @@ public abstract class RemoteFileConfiguration extends 
GenericFileConfiguration {
     private boolean useList = true;
     @UriParam(label = "consumer,advanced", description = "Whether to ignore 
when (trying to list files in "
                                                          + "directories or 
when downloading a file), which does not exist or due to permission error. <p/> 
"
-                                                         + "By default when a 
directory or file does not exists or insufficient permission, then an exception 
"
+                                                         + "By default when a 
directory or file does not exist or insufficient permission, then an exception "
                                                          + "is thrown. Setting 
this option to <tt>true</tt> allows to ignore that instead.")
     private boolean ignoreFileNotFoundOrPermissionError;
     @UriParam(label = "producer,advanced", defaultValue = "true", description 
= "Whether to send a noop command "
@@ -395,7 +395,7 @@ public abstract class RemoteFileConfiguration extends 
GenericFileConfiguration {
      * Whether to ignore when (trying to list files in directories or when 
downloading a file), which does not exist or
      * due to permission error.
      * <p/>
-     * By default when a directory or file does not exists or insufficient 
permission, then an exception is thrown.
+     * By default when a directory or file does not exist or insufficient 
permission, then an exception is thrown.
      * Setting this option to <tt>true</tt> allows to ignore that instead.
      */
     public void setIgnoreFileNotFoundOrPermissionError(boolean 
ignoreFileNotFoundOrPermissionError) {
diff --git 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
index 67b438fcd00..ab71bdc56ca 100644
--- 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
+++ 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
@@ -203,7 +203,7 @@ public class SftpConsumer extends 
RemoteFileConsumer<SftpRemoteFile> {
             }
         } catch (GenericFileOperationFailedException e) {
             if (ignoreCannotRetrieveFile(null, null, e)) {
-                LOG.debug("Cannot list files in directory {} due directory 
does not exists or file permission error.", dir);
+                LOG.debug("Cannot list files in directory {} due directory 
does not exist or file permission error.", dir);
             } else {
                 throw e;
             }
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java
index 3f10d4767dd..0557ec55ab6 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsMessageHelper.java
@@ -110,7 +110,7 @@ public final class JmsMessageHelper {
      *
      * @param  jmsMessage   the JMS message
      * @param  name         name of the property to get
-     * @return              the property value, or <tt>null</tt> if does not 
exists
+     * @return              the property value, or <tt>null</tt> if does not 
exist
      * @throws JMSException can be thrown
      */
     public static Object getProperty(Message jmsMessage, String name) throws 
JMSException {
@@ -126,7 +126,7 @@ public final class JmsMessageHelper {
      *
      * @param  jmsMessage the JMS message
      * @param  name       name of the property to get
-     * @return            the property value, or <tt>null</tt> if does not 
exists or failure to get the value
+     * @return            the property value, or <tt>null</tt> if does not 
exist or failure to get the value
      */
     public static Long getSafeLongProperty(Message jmsMessage, String name) {
         try {
diff --git 
a/components/camel-ldap/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
 
b/components/camel-ldap/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
index d9cbcd0a89c..fb226a2c62e 100644
--- 
a/components/camel-ldap/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
+++ 
b/components/camel-ldap/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
@@ -162,7 +162,7 @@ public final class DSAnnotationProcessor {
                 try {
                     isLoaded = schemaManager.load(schemaName);
                 } catch (LdapUnwillingToPerformException lutpe) {
-                    // Cannot load the schema, it does not exists
+                    // Cannot load the schema, it does not exist
                     LOG.error(lutpe.getMessage());
                     continue;
                 }
diff --git 
a/components/camel-ldif/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
 
b/components/camel-ldif/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
index d9cbcd0a89c..fb226a2c62e 100644
--- 
a/components/camel-ldif/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
+++ 
b/components/camel-ldif/src/test/java/org/apache/directory/server/core/integ5/DSAnnotationProcessor.java
@@ -162,7 +162,7 @@ public final class DSAnnotationProcessor {
                 try {
                     isLoaded = schemaManager.load(schemaName);
                 } catch (LdapUnwillingToPerformException lutpe) {
-                    // Cannot load the schema, it does not exists
+                    // Cannot load the schema, it does not exist
                     LOG.error(lutpe.getMessage());
                     continue;
                 }
diff --git 
a/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioConsumer.java
 
b/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioConsumer.java
index deaf5e4eda8..d52d75a055f 100644
--- 
a/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioConsumer.java
+++ 
b/components/camel-minio/src/main/java/org/apache/camel/component/minio/MinioConsumer.java
@@ -91,7 +91,7 @@ public class MinioConsumer extends 
ScheduledBatchPollingConsumer {
                         LOG.trace("Destination Bucket created");
                     } else {
                         throw new IllegalArgumentException(
-                                "Destination Bucket does not exists, set 
autoCreateBucket option for bucket auto creation");
+                                "Destination Bucket does not exist, set 
autoCreateBucket option for bucket auto creation");
                     }
                 }
             } else {
diff --git 
a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java
 
b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java
index 342a6e3d9d2..1d67dad7c23 100644
--- 
a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java
+++ 
b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/jms/JmsMessageHelper.java
@@ -105,7 +105,7 @@ public final class JmsMessageHelper {
      *
      * @param  jmsMessage   the JMS message
      * @param  name         name of the property to get
-     * @return              the property value, or <tt>null</tt> if does not 
exists
+     * @return              the property value, or <tt>null</tt> if does not 
exist
      * @throws JMSException can be thrown
      */
     public static Object getProperty(Message jmsMessage, String name) throws 
JMSException {
diff --git 
a/components/camel-spring-batch/src/test/java/org/apache/camel/component/spring/batch/SpringBatchEndpointTest.java
 
b/components/camel-spring-batch/src/test/java/org/apache/camel/component/spring/batch/SpringBatchEndpointTest.java
index 0d61747856a..7ffed647595 100644
--- 
a/components/camel-spring-batch/src/test/java/org/apache/camel/component/spring/batch/SpringBatchEndpointTest.java
+++ 
b/components/camel-spring-batch/src/test/java/org/apache/camel/component/spring/batch/SpringBatchEndpointTest.java
@@ -123,7 +123,7 @@ public class SpringBatchEndpointTest extends 
CamelTestSupport {
         mockEndpoint.expectedMessageCount(0);
         errorEndpoint.expectedMessageCount(1);
 
-        //dynamic job should fail as header is present but the job does not 
exists
+        //dynamic job should fail as header is present but the job does not 
exist
         
header(SpringBatchConstants.JOB_NAME).append("thisJobDoesNotExsistAtAll" + 
Date.from(Instant.now()));
         sendBody("direct:dyanmic?block=false", "Start the job, please.");
 
diff --git 
a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/convertVariable.xml
 
b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/convertVariable.xml
index 57c958bec68..d1728df8088 100644
--- 
a/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/convertVariable.xml
+++ 
b/components/camel-spring-xml/src/test/resources/org/apache/camel/spring/processor/convertVariable.xml
@@ -30,70 +30,42 @@
 
         <route>
             <from uri="direct:start"/>
-            <setVariable name="foo">
-                <header>foo</header>
-            </setVariable>
-            <removeHeader name="foo"/>
             <convertVariableTo name="foo" type="java.lang.Integer"/>
             <to uri="mock:result"/>
         </route>
 
         <route>
             <from uri="direct:optional"/>
-            <setVariable name="foo">
-                <header>foo</header>
-            </setVariable>
-            <removeHeader name="foo"/>
             <convertVariableTo name="foo" type="java.lang.Integer" 
mandatory="false"/>
             <to uri="mock:result"/>
         </route>
 
         <route>
             <from uri="direct:invalid"/>
-            <setVariable name="foo">
-                <header>foo</header>
-            </setVariable>
-            <removeHeader name="foo"/>
             <convertVariableTo name="foo" type="java.util.Date"/>
             <to uri="mock:result"/>
         </route>
 
         <route>
             <from uri="direct:charset"/>
-            <setVariable name="foo">
-                <header>foo</header>
-            </setVariable>
-            <removeHeader name="foo"/>
             <convertVariableTo name="foo" type="java.lang.byte[]" 
charset="iso-8859-1"/>
             <to uri="mock:result"/>
         </route>
 
         <route>
             <from uri="direct:charset2"/>
-            <setVariable name="foo">
-                <header>foo</header>
-            </setVariable>
-            <removeHeader name="foo"/>
             <convertVariableTo name="foo" type="java.lang.byte[]" 
charset="utf-16"/>
             <to uri="mock:result"/>
         </route>
         
         <route>
             <from uri="direct:charset3"/>
-            <setVariable name="foo">
-                <header>foo</header>
-            </setVariable>
-            <removeHeader name="foo"/>
             <convertVariableTo name="foo" type="java.lang.String" 
charset="utf-16"/>
             <to uri="mock:result"/>
         </route>
 
         <route>
             <from uri="direct:bar"/>
-            <setVariable name="foo">
-                <header>foo</header>
-            </setVariable>
-            <removeHeader name="foo"/>
             <convertVariableTo name="foo" toName="bar" 
type="java.lang.Integer"/>
             <to uri="mock:result"/>
         </route>
diff --git 
a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java
 
b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java
index 4c8ab045c1c..53bc6fe693a 100644
--- 
a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java
+++ 
b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java
@@ -861,7 +861,7 @@ public abstract class CamelTestSupport
      * @param  create                  whether or not to allow the endpoint to 
be created if it doesn't exist
      * @return                         the mock endpoint or an {@link 
NoSuchEndpointException} is thrown if it could not
      *                                 be resolved
-     * @throws NoSuchEndpointException is the mock endpoint does not exists
+     * @throws NoSuchEndpointException is the mock endpoint does not exist
      */
     protected MockEndpoint getMockEndpoint(String uri, boolean create) throws 
NoSuchEndpointException {
         // look for existing mock endpoints that have the same queue name, and
diff --git 
a/components/camel-whatsapp/src/main/java/org/apache/camel/component/whatsapp/model/UploadMedia.java
 
b/components/camel-whatsapp/src/main/java/org/apache/camel/component/whatsapp/model/UploadMedia.java
index ff3f4985280..35972ef447e 100644
--- 
a/components/camel-whatsapp/src/main/java/org/apache/camel/component/whatsapp/model/UploadMedia.java
+++ 
b/components/camel-whatsapp/src/main/java/org/apache/camel/component/whatsapp/model/UploadMedia.java
@@ -34,7 +34,7 @@ public class UploadMedia {
         this.contentType = Objects.requireNonNull(contentType);
 
         if (!file.exists()) {
-            throw new RuntimeCamelException("The file provided does not 
exists");
+            throw new RuntimeCamelException("The file provided does not 
exist");
         }
     }
 
diff --git a/core/camel-api/src/main/java/org/apache/camel/PropertyInject.java 
b/core/camel-api/src/main/java/org/apache/camel/PropertyInject.java
index e7e1341bf36..387a42fcdf4 100644
--- a/core/camel-api/src/main/java/org/apache/camel/PropertyInject.java
+++ b/core/camel-api/src/main/java/org/apache/camel/PropertyInject.java
@@ -37,7 +37,7 @@ public @interface PropertyInject {
     String value();
 
     /**
-     * Default value to use if the property does not exists or has no value
+     * Default value to use if the property does not exist or has no value
      */
     String defaultValue() default "";
 
diff --git 
a/core/camel-api/src/main/java/org/apache/camel/spi/ManagementAgent.java 
b/core/camel-api/src/main/java/org/apache/camel/spi/ManagementAgent.java
index dba8ccd9057..4e1ee22dd01 100644
--- a/core/camel-api/src/main/java/org/apache/camel/spi/ManagementAgent.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/ManagementAgent.java
@@ -72,7 +72,7 @@ public interface ManagementAgent extends Service {
      *
      * @param  name  the mbean name
      * @param  mbean the client interface, such as from the {@link 
org.apache.camel.api.management.mbean} package.
-     * @return       the client or <tt>null</tt> if mbean does not exists
+     * @return       the client or <tt>null</tt> if mbean does not exist
      */
     <T> T newProxyClient(ObjectName name, Class<T> mbean);
 
diff --git 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultResourceResolvers.java
 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultResourceResolvers.java
index d789261bc85..4caca72c06a 100644
--- 
a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultResourceResolvers.java
+++ 
b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultResourceResolvers.java
@@ -73,7 +73,7 @@ public final class DefaultResourceResolvers {
                 @Override
                 public InputStream getInputStream() throws IOException {
                     if (!exists()) {
-                        throw new FileNotFoundException(path + " does not 
exists");
+                        throw new FileNotFoundException(path + " does not 
exist");
                     }
                     if (path.isDirectory()) {
                         throw new FileNotFoundException(path + " is a 
directory");
diff --git 
a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
 
b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
index 5f4584431a7..93ed919158a 100644
--- 
a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
+++ 
b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
@@ -379,7 +379,7 @@ public abstract class AbstractCamelCatalog {
             }
         }
 
-        // now check if all required values are there, and that a default 
value does not exists
+        // now check if all required values are there, and that a default 
value does not exist
         for (BaseOptionModel row : rows.values()) {
             if (row.isRequired()) {
                 String name = row.getName();
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/AdviceWith.java 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/AdviceWith.java
index 4b210df3f82..a0407c3fa20 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/AdviceWith.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/AdviceWith.java
@@ -314,7 +314,7 @@ public final class AdviceWith {
                     }
                 }
                 if (rd == null) {
-                    throw new IllegalArgumentException("Cannot advice route as 
route with id: " + routeId + " does not exists");
+                    throw new IllegalArgumentException("Cannot advice route as 
route with id: " + routeId + " does not exist");
                 }
             } else {
                 // grab first route
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveVariableProcessor.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveVariableProcessor.java
index bcc150ebfbd..51be33783c7 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveVariableProcessor.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/RemoveVariableProcessor.java
@@ -66,7 +66,7 @@ public class RemoveVariableProcessor extends 
AsyncProcessorSupport
                     repo.removeVariable(key);
                 } else {
                     exchange.setException(
-                            new IllegalArgumentException("VariableRepository 
with id: " + id + " does not exists"));
+                            new IllegalArgumentException("VariableRepository 
with id: " + id + " does not exist"));
                 }
             } else {
                 exchange.removeVariable(key);
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariableProcessor.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariableProcessor.java
index f0690902e27..85acea646bf 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariableProcessor.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/SetVariableProcessor.java
@@ -79,7 +79,7 @@ public class SetVariableProcessor extends 
AsyncProcessorSupport implements Trace
                     repo.setVariable(key, newVariable);
                 } else {
                     exchange.setException(
-                            new IllegalArgumentException("VariableRepository 
with id: " + id + " does not exists"));
+                            new IllegalArgumentException("VariableRepository 
with id: " + id + " does not exist"));
                 }
             } else {
                 exchange.setVariable(key, newVariable);
diff --git 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
index 6254f90f12e..3616b674f78 100644
--- 
a/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
+++ 
b/core/camel-core-processor/src/main/java/org/apache/camel/processor/aggregate/AggregateController.java
@@ -40,7 +40,7 @@ public interface AggregateController {
      * To force completing a specific group by its key.
      *
      * @param  key the key
-     * @return     <tt>1</tt> if the group was forced completed, <tt>0</tt> if 
the group does not exists
+     * @return     <tt>1</tt> if the group was forced completed, <tt>0</tt> if 
the group does not exist
      */
     int forceCompletionOfGroup(String key);
 
@@ -55,7 +55,7 @@ public interface AggregateController {
      * To force discarding a specific group by its key.
      *
      * @param  key the key
-     * @return     <tt>1</tt> if the group was forced discarded, <tt>0</tt> if 
the group does not exists
+     * @return     <tt>1</tt> if the group was forced discarded, <tt>0</tt> if 
the group does not exist
      */
     int forceDiscardingOfGroup(String key);
 
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileExpressionThrowExceptionTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileExpressionThrowExceptionTest.java
index c3374abca64..e75c22b0cd4 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileExpressionThrowExceptionTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerFileExpressionThrowExceptionTest.java
@@ -61,7 +61,7 @@ public class FileConsumerFileExpressionThrowExceptionTest 
extends ContextTestSup
                 from(fileUri("bean"
                              + 
"?pollStrategy=#myPoll&initialDelay=0&delay=10&fileName=${bean:counter?method=next}.txt&delete=true"))
                         .to("mock:result");
-                // specify a method name that does not exists
+                // specify a method name that does not exist
             }
         });
 
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertVariableTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertVariableTest.java
index 0f9724ed120..112a74282d7 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertVariableTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertVariableTest.java
@@ -22,10 +22,9 @@ import java.util.Date;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
+import org.apache.camel.FluentProducerTemplate;
 import org.apache.camel.NoSuchVariableException;
 import org.apache.camel.NoTypeConversionAvailableException;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.builder.ExchangeBuilder;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
@@ -38,6 +37,8 @@ import static org.junit.jupiter.api.Assertions.fail;
 
 public class ConvertVariableTest extends ContextTestSupport {
 
+    private FluentProducerTemplate fluent;
+
     @Test
     public void testConvertBodyTo() {
         try {
@@ -57,17 +58,16 @@ public class ConvertVariableTest extends ContextTestSupport 
{
     public void testConvertBodyCharset() throws Exception {
         context.addRoutes(new RouteBuilder() {
             public void configure() {
-                from("direct:foo").setVariable("foo", 
header("foo")).removeHeader("foo")
+                from("direct:foo")
                         .convertVariableTo("foo", byte[].class, 
"iso-8859-1").to("mock:foo");
             }
         });
 
         getMockEndpoint("mock:foo").expectedMessageCount(1);
-        // do not propagate charset to avoid side effects with double 
conversion
-        // etc
+        // do not propagate charset to avoid side effects with double 
conversion etc
         
getMockEndpoint("mock:foo").message(0).exchangeProperty(Exchange.CHARSET_NAME).isNull();
 
-        template.sendBodyAndHeader("direct:foo", null, "foo", "Hello World");
+        fluent.to("direct:foo").withVariable("foo", "Hello World").send();
 
         assertMockEndpointsSatisfied();
     }
@@ -76,7 +76,7 @@ public class ConvertVariableTest extends ContextTestSupport {
     public void testConvertBodyCharsetWithExistingCharsetName() throws 
Exception {
         context.addRoutes(new RouteBuilder() {
             public void configure() {
-                from("direct:foo").setVariable("foo", 
header("foo")).removeHeader("foo")
+                from("direct:foo")
                         .convertVariableTo("foo", byte[].class, 
"iso-8859-1").to("mock:foo");
             }
         });
@@ -86,10 +86,9 @@ public class ConvertVariableTest extends ContextTestSupport {
         // etc
         
getMockEndpoint("mock:foo").message(0).exchangeProperty(Exchange.CHARSET_NAME).isEqualTo("UTF-8");
 
-        Exchange srcExchange = 
ExchangeBuilder.anExchange(context).withProperty(Exchange.CHARSET_NAME, "UTF-8")
-                .withHeader("foo", "Hello World").build();
-
-        template.send("direct:foo", srcExchange);
+        fluent.to("direct:foo").withVariable("foo", "Hello World")
+                .withExchangeProperty(Exchange.CHARSET_NAME, "UTF-8")
+                .send();
 
         assertMockEndpointsSatisfied();
     }
@@ -99,7 +98,7 @@ public class ConvertVariableTest extends ContextTestSupport {
         MockEndpoint result = getMockEndpoint("mock:result");
         result.expectedVariableReceived("foo", 11);
 
-        template.sendBodyAndHeader("direct:start", null, "foo", 11);
+        fluent.to("direct:start").withVariable("foo", 11).send();
 
         assertMockEndpointsSatisfied();
     }
@@ -112,7 +111,7 @@ public class ConvertVariableTest extends ContextTestSupport 
{
         result.message(0).variable("foo").isInstanceOf(String.class);
         result.message(0).variable("bar").isInstanceOf(Integer.class);
 
-        template.sendBodyAndHeader("direct:bar", null, "foo", "11");
+        fluent.to("direct:bar").withVariable("foo", "11").send();
 
         assertMockEndpointsSatisfied();
     }
@@ -120,18 +119,15 @@ public class ConvertVariableTest extends 
ContextTestSupport {
     @Test
     public void testConvertToIntegerNotMandatory() throws Exception {
         // mandatory should fail
-        try {
-            template.sendBodyAndHeader("direct:start", null, "foo", 
Double.NaN);
-            fail();
-        } catch (Exception e) {
-            assertIsInstanceOf(NoTypeConversionAvailableException.class, 
e.getCause());
-        }
+        Exchange out = fluent.to("direct:start").withVariable("foo", 
Double.NaN).send();
+        assertTrue(out.isFailed());
+        assertIsInstanceOf(NoTypeConversionAvailableException.class, 
out.getException());
 
         // optional should cause null body
         getMockEndpoint("mock:result").expectedMessageCount(1);
         getMockEndpoint("mock:result").message(0).body().isNull();
 
-        template.sendBodyAndHeader("direct:optional", null, "foo", Double.NaN);
+        fluent.to("direct:optional").withVariable("foo", Double.NaN).send();
 
         assertMockEndpointsSatisfied();
     }
@@ -141,13 +137,10 @@ public class ConvertVariableTest extends 
ContextTestSupport {
         MockEndpoint result = getMockEndpoint("mock:result");
         result.expectedMessageCount(0);
 
-        try {
-            template.sendBodyAndHeader("direct:start", null, "foo", null);
-            fail("Should have thrown an exception");
-        } catch (Exception e) {
-            NoSuchVariableException nv = 
assertIsInstanceOf(NoSuchVariableException.class, e.getCause());
-            assertEquals("foo", nv.getVariableName());
-        }
+        Exchange out = fluent.to("direct:start").withVariable("foo", 
null).send();
+        assertTrue(out.isFailed());
+        NoSuchVariableException nv = 
assertIsInstanceOf(NoSuchVariableException.class, out.getException());
+        assertEquals("foo", nv.getVariableName());
 
         assertMockEndpointsSatisfied();
     }
@@ -156,13 +149,9 @@ public class ConvertVariableTest extends 
ContextTestSupport {
     public void testConvertFailed() throws Exception {
         getMockEndpoint("mock:result").expectedMessageCount(0);
 
-        try {
-            template.sendBodyAndHeader("direct:invalid", null, "foo", "11");
-            fail("Should have thrown an exception");
-        } catch (RuntimeCamelException e) {
-            boolean b = e.getCause() instanceof 
NoTypeConversionAvailableException;
-            assertTrue(b);
-        }
+        Exchange out = fluent.to("direct:invalid").withVariable("foo", 
"11").send();
+        assertTrue(out.isFailed());
+        assertIsInstanceOf(NoTypeConversionAvailableException.class, 
out.getException());
 
         assertMockEndpointsSatisfied();
     }
@@ -174,7 +163,7 @@ public class ConvertVariableTest extends ContextTestSupport 
{
         MockEndpoint result = getMockEndpoint("mock:result");
         result.expectedVariableReceived("foo", body);
 
-        template.sendBodyAndHeader("direct:charset", null, "foo", "Hello 
World");
+        fluent.to("direct:charset").withVariable("foo", "Hello World").send();
 
         assertMockEndpointsSatisfied();
     }
@@ -186,7 +175,7 @@ public class ConvertVariableTest extends ContextTestSupport 
{
         MockEndpoint result = getMockEndpoint("mock:result");
         result.expectedVariableReceived("foo", body);
 
-        template.sendBodyAndHeader("direct:charset3", null, "foo", new 
ByteArrayInputStream(body.getBytes("utf-16")));
+        fluent.to("direct:charset3").withVariable("foo", new 
ByteArrayInputStream(body.getBytes("utf-16"))).send();
 
         assertMockEndpointsSatisfied();
     }
@@ -199,7 +188,7 @@ public class ConvertVariableTest extends ContextTestSupport 
{
         result.expectedVariableReceived("foo", body);
         result.expectedMessageCount(1);
 
-        template.sendBodyAndHeader("direct:charset2", null, "foo", "Hello 
World");
+        fluent.to("direct:charset2").withVariable("foo", "Hello World").send();
 
         // should NOT be okay as we expected utf-8 but got it in utf-16
         result.assertIsNotSatisfied();
@@ -215,7 +204,7 @@ public class ConvertVariableTest extends ContextTestSupport 
{
         result.expectedVariableReceived("foo", body);
         result.expectedMessageCount(1);
 
-        template.sendBodyAndHeader("direct:charset3", null, "foo", new 
ByteArrayInputStream(body.getBytes("utf-8")));
+        fluent.to("direct:charset3").withVariable("foo", new 
ByteArrayInputStream(body.getBytes("utf-8"))).send();
 
         // should NOT be okay as we expected utf-8 but got it in utf-16
         result.assertIsNotSatisfied();
@@ -225,21 +214,15 @@ public class ConvertVariableTest extends 
ContextTestSupport {
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from("direct:start").setVariable("foo", 
header("foo")).removeHeader("foo")
-                        .convertVariableTo("foo", 
Integer.class).to("mock:result");
-                from("direct:optional").setVariable("foo", 
header("foo")).removeHeader("foo")
-                        .convertVariableTo("foo", Integer.class, 
false).to("mock:result");
-                from("direct:invalid").setVariable("foo", 
header("foo")).removeHeader("foo")
-                        .convertVariableTo("foo", 
Date.class).to("mock:result");
-                from("direct:charset").setVariable("foo", 
header("foo")).removeHeader("foo")
-                        .convertVariableTo("foo", byte[].class, 
"iso-8859-1").to("mock:result");
-                from("direct:charset2").setVariable("foo", 
header("foo")).removeHeader("foo")
-                        .convertVariableTo("foo", byte[].class, 
"utf-16").to("mock:result");
-                from("direct:charset3").setVariable("foo", 
header("foo")).removeHeader("foo")
-                        .convertVariableTo("foo", String.class, 
"utf-16").to("mock:result");
-                from("direct:bar").setVariable("foo", 
header("foo")).removeHeader("foo")
-                        .convertVariableTo("foo", "bar", 
Integer.class).to("mock:result");
-
+                fluent = context.createFluentProducerTemplate();
+
+                from("direct:start").convertVariableTo("foo", 
Integer.class).to("mock:result");
+                from("direct:optional").convertVariableTo("foo", 
Integer.class, false).to("mock:result");
+                from("direct:invalid").convertVariableTo("foo", 
Date.class).to("mock:result");
+                from("direct:charset").convertVariableTo("foo", byte[].class, 
"iso-8859-1").to("mock:result");
+                from("direct:charset2").convertVariableTo("foo", byte[].class, 
"utf-16").to("mock:result");
+                from("direct:charset3").convertVariableTo("foo", String.class, 
"utf-16").to("mock:result");
+                from("direct:bar").convertVariableTo("foo", "bar", 
Integer.class).to("mock:result");
             }
         };
     }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java
index 2599063264f..dd9ad5e8d19 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java
@@ -482,7 +482,7 @@ public abstract class DefaultComponent extends 
ServiceSupport implements Compone
      * @param  parameters the parameters
      * @param  key        the key
      * @param  type       the requested type to convert the value from the 
parameter
-     * @return            the converted value parameter, <tt>null</tt> if 
parameter does not exists.
+     * @return            the converted value parameter, <tt>null</tt> if 
parameter does not exist.
      * @see               #resolveAndRemoveReferenceParameter(Map, String, 
Class)
      */
     public <T> T getAndRemoveParameter(Map<String, Object> parameters, String 
key, Class<T> type) {
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/ExchangeHelper.java 
b/core/camel-support/src/main/java/org/apache/camel/support/ExchangeHelper.java
index 5ea365e297d..81eb2e51647 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/ExchangeHelper.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/ExchangeHelper.java
@@ -1092,7 +1092,7 @@ public final class ExchangeHelper {
                 repo.setVariable(name, value);
             } else {
                 exchange.setException(
-                        new IllegalArgumentException("VariableRepository with 
id: " + id + " does not exists"));
+                        new IllegalArgumentException("VariableRepository with 
id: " + id + " does not exist"));
             }
         } else {
             exchange.setVariable(name, value);
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
index aac8847f5d1..12271bde384 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
@@ -212,7 +212,7 @@ public class ExpressionBuilder {
                         key = StringHelper.after(key, ":");
                         return repo.getVariable(key);
                     } else {
-                        throw new IllegalArgumentException("VariableRepository 
with id: " + id + " does not exists");
+                        throw new IllegalArgumentException("VariableRepository 
with id: " + id + " does not exist");
                     }
                 } else {
                     return exchange.getVariable(key);
@@ -289,7 +289,7 @@ public class ExpressionBuilder {
                         }
                         return value;
                     } else {
-                        throw new IllegalArgumentException("VariableRepository 
with id: " + id + " does not exists");
+                        throw new IllegalArgumentException("VariableRepository 
with id: " + id + " does not exist");
                     }
                 } else {
                     return exchange.getVariable(key, type);
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertVariableProcessor.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertVariableProcessor.java
index 9287902a0d7..de3dae523a8 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertVariableProcessor.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/processor/ConvertVariableProcessor.java
@@ -115,7 +115,7 @@ public class ConvertVariableProcessor extends ServiceSupport
             key = StringHelper.after(key, ":");
             repo = factory.getVariableRepository(id);
             if (repo == null) {
-                throw new IllegalArgumentException("VariableRepository with 
id: " + id + " does not exists");
+                throw new IllegalArgumentException("VariableRepository with 
id: " + id + " does not exist");
             }
             value = repo.getVariable(key);
         } else {
diff --git a/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc 
b/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
index baae2a53925..4f20e952d98 100644
--- a/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
+++ b/docs/user-manual/modules/ROOT/pages/using-propertyplaceholder.adoc
@@ -59,7 +59,7 @@ which is defined with the `?` (question mark) as prefix in 
the key name, as show
 {{?myBufferSize}}
 ----
 
-If a value for the key exists then the value is used, however if the key does 
not exists,
+If a value for the key exists then the value is used, however if the key does 
not exist,
 then Camel understands this, such as when used in 
xref:endpoint.adoc[Endpoints]:
 
 [source,text]
@@ -633,7 +633,7 @@ Then these values can be used in your Camel routes such as:
 </camelContext>
 ----
 
-You can also provide a default value in case a key does not exists:
+You can also provide a default value in case a key does not exist:
 
 [source,xml]
 ----
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CommandLineHelper.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CommandLineHelper.java
index 9ebcb1dfc23..518af842471 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CommandLineHelper.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CommandLineHelper.java
@@ -81,7 +81,7 @@ public final class CommandLineHelper {
                 throw new RuntimeException(ex);
             }
         } else {
-            printer.println(USER_CONFIG + " does not exists");
+            printer.println(USER_CONFIG + " does not exist");
         }
     }
 
diff --git 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ConvertVariableTest.groovy
 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ConvertVariableTest.groovy
index 637c0aa1886..d127b8bd52e 100644
--- 
a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ConvertVariableTest.groovy
+++ 
b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/ConvertVariableTest.groovy
@@ -18,7 +18,6 @@ package org.apache.camel.dsl.yaml
 
 import org.apache.camel.component.mock.MockEndpoint
 import org.apache.camel.dsl.yaml.support.YamlTestSupport
-import org.apache.camel.model.ConvertHeaderDefinition
 import org.apache.camel.model.ConvertVariableDefinition
 import org.junit.jupiter.api.Assertions
 
@@ -30,9 +29,6 @@ class ConvertVariableTest extends YamlTestSupport {
                 - from:
                     uri: "direct:start"
                     steps:    
-                      - setVariable:
-                          name: foo
-                          constant: "Hello World"
                       - convertVariableTo:
                           name: foo  
                           type: "java.lang.String"
@@ -47,12 +43,13 @@ class ConvertVariableTest extends YamlTestSupport {
             context.start()
 
             withTemplate {
+                withVariable("foo", "Hello World")
                 to('direct:start').send()
             }
         then:
             context.routeDefinitions.size() == 1
 
-            with(context.routeDefinitions[0].outputs[1], 
ConvertVariableDefinition) {
+            with(context.routeDefinitions[0].outputs[0], 
ConvertVariableDefinition) {
                 name == 'foo'
                 type == 'java.lang.String'
                 charset == 'UTF8'
@@ -67,9 +64,6 @@ class ConvertVariableTest extends YamlTestSupport {
                 - from:
                     uri: "direct:start"
                     steps:
-                      - setVariable:
-                          name: foo
-                          constant: "Hello World"
                       - convertVariableTo:
                           name: foo
                           toName: bar
@@ -85,12 +79,12 @@ class ConvertVariableTest extends YamlTestSupport {
         context.start()
 
         withTemplate {
-            to('direct:start').withHeader("foo", 'test'.bytes).send()
+            to('direct:start').withVariable("foo", 'test'.bytes).send()
         }
         then:
         context.routeDefinitions.size() == 1
 
-        with(context.routeDefinitions[0].outputs[1], 
ConvertVariableDefinition) {
+        with(context.routeDefinitions[0].outputs[0], 
ConvertVariableDefinition) {
             name == 'foo'
             toName == 'bar'
             type == 'java.lang.String'
diff --git 
a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute.java
 
b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute.java
index e34b9b6d30f..3ff925f8acc 100644
--- 
a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute.java
+++ 
b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute.java
@@ -73,7 +73,7 @@ public class 
JmsToHttpWithOnExceptionAndNoTransactionErrorHandlerConfiguredRoute
             if ("unknown".equals(user)) {
                 // no page for a unknown user
                 exchange.getMessage().setHeader(Exchange.HTTP_RESPONSE_CODE, 
404);
-                exchange.getMessage().setBody("Page does not exists");
+                exchange.getMessage().setBody("Page does not exist");
                 return;
             } else if ("guest".equals(user)) {
                 // not okay for guest user
diff --git 
a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionRoute.java
 
b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionRoute.java
index 951c406af4c..91a5eede018 100644
--- 
a/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionRoute.java
+++ 
b/tests/camel-itest/src/test/java/org/apache/camel/itest/tx/JmsToHttpWithOnExceptionRoute.java
@@ -91,7 +91,7 @@ public class JmsToHttpWithOnExceptionRoute extends 
RouteBuilder {
             if ("unknown".equals(user)) {
                 // no page for a unknown user
                 exchange.getMessage().setHeader(Exchange.HTTP_RESPONSE_CODE, 
404);
-                exchange.getMessage().setBody("Page does not exists");
+                exchange.getMessage().setBody("Page does not exist");
                 return;
             } else if ("guest".equals(user)) {
                 // not okay for guest user
diff --git 
a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/EipDocumentationEnricherMojo.java
 
b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/EipDocumentationEnricherMojo.java
index b33141a5ecb..f4facfe32f0 100644
--- 
a/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/EipDocumentationEnricherMojo.java
+++ 
b/tooling/maven/camel-eip-documentation-enricher-maven-plugin/src/main/java/org/apache/camel/maven/EipDocumentationEnricherMojo.java
@@ -131,7 +131,7 @@ public class EipDocumentationEnricherMojo extends 
AbstractMojo {
             throw new MojoExecutionException("pathToModelDir parameter must 
not be null");
         }
 
-        // skip if input file does not exists
+        // skip if input file does not exist
         if (inputCamelSchemaFile == null || !inputCamelSchemaFile.exists()) {
             getLog().info("Input Camel schema file: " + inputCamelSchemaFile + 
" does not exist. Skip EIP document enrichment");
             return;


Reply via email to