This is an automated email from the ASF dual-hosted git repository. nfilotto pushed a commit to branch CAMEL-17792/doc-message-headers in repository https://gitbox.apache.org/repos/asf/camel.git
commit 1434604ccb606de97843e8f87dacf69fac1d58b1 Author: Nicolas Filotto <[email protected]> AuthorDate: Thu Mar 31 11:36:10 2022 +0200 CAMEL-17792: Add doc about the message headers of camel-mail --- .../org/apache/camel/component/mail/imap.json | 13 +++++++++++ .../org/apache/camel/component/mail/imaps.json | 13 +++++++++++ .../org/apache/camel/component/mail/pop3.json | 13 +++++++++++ .../org/apache/camel/component/mail/pop3s.json | 13 +++++++++++ .../org/apache/camel/component/mail/smtp.json | 13 +++++++++++ .../org/apache/camel/component/mail/smtps.json | 13 +++++++++++ .../camel-mail/src/main/docs/mail-component.adoc | 6 +++-- .../apache/camel/component/mail/MailBinding.java | 10 ++++---- .../apache/camel/component/mail/MailConstants.java | 27 ++++++++++++++++++++++ .../apache/camel/component/mail/MailConsumer.java | 6 ++--- .../apache/camel/component/mail/MailEndpoint.java | 2 +- .../camel/component/mail/MailComponentTest.java | 10 ++++---- .../component/mail/MailCustomContentTypeTest.java | 7 +++--- .../camel/component/mail/MailReplyToTest.java | 6 ++--- .../apache/camel/component/mail/MailRouteTest.java | 4 ++-- .../SslContextParametersMailRouteTest.java | 5 ++-- 16 files changed, 135 insertions(+), 26 deletions(-) diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json index 38c7795..26c09db 100644 --- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json +++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imap.json @@ -68,6 +68,19 @@ "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }, "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." } }, + "headers": { + "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" }, + "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" }, + "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" }, + "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" }, + "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" }, + "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" }, + "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" }, + "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." }, + "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." }, + "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." }, + "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." } + }, "properties": { "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" }, "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" }, diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json index 2d87595..753159a 100644 --- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json +++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/imaps.json @@ -68,6 +68,19 @@ "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }, "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." } }, + "headers": { + "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" }, + "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" }, + "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" }, + "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" }, + "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" }, + "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" }, + "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" }, + "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." }, + "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." }, + "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." }, + "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." } + }, "properties": { "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" }, "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" }, diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json index 62e9439..5b1478a 100644 --- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json +++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3.json @@ -68,6 +68,19 @@ "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }, "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." } }, + "headers": { + "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" }, + "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" }, + "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" }, + "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" }, + "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" }, + "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" }, + "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" }, + "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." }, + "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." }, + "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." }, + "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." } + }, "properties": { "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" }, "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" }, diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json index c5616ae..3e17ef2 100644 --- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json +++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/pop3s.json @@ -68,6 +68,19 @@ "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }, "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." } }, + "headers": { + "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" }, + "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" }, + "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" }, + "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" }, + "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" }, + "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" }, + "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" }, + "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." }, + "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." }, + "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." }, + "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." } + }, "properties": { "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" }, "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" }, diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json index 81cf60f..b32937f 100644 --- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json +++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtp.json @@ -68,6 +68,19 @@ "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }, "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." } }, + "headers": { + "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" }, + "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" }, + "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" }, + "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" }, + "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" }, + "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" }, + "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" }, + "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." }, + "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." }, + "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." }, + "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." } + }, "properties": { "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" }, "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" }, diff --git a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json index a2ee5d0..7e8d508 100644 --- a/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json +++ b/components/camel-mail/src/generated/resources/org/apache/camel/component/mail/smtps.json @@ -68,6 +68,19 @@ "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }, "username": { "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The username for login. See also setAuthenticator(MailAuthenticator)." } }, + "headers": { + "Subject": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Subject" }, + "From": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "From" }, + "To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To" }, + "Cc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Cc" }, + "Bcc": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bcc" }, + "Reply-To": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Reply to" }, + "contentType": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The content type" }, + "copyTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be copied to a mail folder with the given name." }, + "moveTo": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "After processing a mail message, it can be moved to a mail folder with the given name." }, + "delete": { "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Deletes the messages after they have been processed." }, + "CamelMailMessageId": { "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message ID." } + }, "properties": { "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The mail server host name" }, "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mail.MailConfiguration", "configurationField": "configuration", "description": "The port number of the mail server" }, diff --git a/components/camel-mail/src/main/docs/mail-component.adoc b/components/camel-mail/src/main/docs/mail-component.adoc index 2c6162b..a51c75a 100644 --- a/components/camel-mail/src/main/docs/mail-component.adoc +++ b/components/camel-mail/src/main/docs/mail-component.adoc @@ -84,7 +84,9 @@ include::partial$component-endpoint-options.adoc[] // endpoint options: START // endpoint options: END - +// component headers: START +include::partial$component-endpoint-headers.adoc[] +// component headers: END === Sample endpoints @@ -210,7 +212,7 @@ below demonstrates this: The same applies for other MimeMessage headers such as recipients, so you can use a header property as `To`: -When using the MailProducer the send the mail to +When using the MailProducer to send the mail to server, you should be able to get the message id of the http://java.sun.com/javaee/5/docs/api/javax/mail/internet/MimeMessage.html[MimeMessage] with the key `CamelMailMessageId` from the Camel message header. diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java index 936dd05..94290d7 100644 --- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java +++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailBinding.java @@ -104,7 +104,7 @@ public class MailBinding { // set the replyTo if it was passed in as an option in the uri. Note: if it is in both the URI // and headers the headers win. - String replyTo = exchange.getIn().getHeader("Reply-To", String.class); + String replyTo = exchange.getIn().getHeader(MailConstants.MAIL_REPLY_TO, String.class); if (replyTo == null) { replyTo = endpoint.getConfiguration().getReplyTo(); } @@ -153,8 +153,8 @@ public class MailBinding { protected String determineContentType(MailConfiguration configuration, Exchange exchange) { // see if we got any content type set String contentType = configuration.getContentType(); - if (exchange.getIn().getHeader("contentType") != null) { - contentType = exchange.getIn().getHeader("contentType", String.class); + if (exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE) != null) { + contentType = exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE, String.class); } else if (exchange.getIn().getHeader(Exchange.CONTENT_TYPE) != null) { contentType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, String.class); } @@ -180,8 +180,8 @@ public class MailBinding { // see if we got any content type set String contentType = configuration.getContentType(); - if (exchange.getIn().getHeader("contentType") != null) { - contentType = exchange.getIn().getHeader("contentType", String.class); + if (exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE) != null) { + contentType = exchange.getIn().getHeader(MailConstants.MAIL_CONTENT_TYPE, String.class); } else if (exchange.getIn().getHeader(Exchange.CONTENT_TYPE) != null) { contentType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, String.class); } diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java index 7bc2cdb..4a3e7d9 100644 --- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java +++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConstants.java @@ -16,11 +16,38 @@ */ package org.apache.camel.component.mail; +import org.apache.camel.spi.Metadata; + public final class MailConstants { + @Metadata(description = "Subject", javaType = "String") + public static final String MAIL_SUBJECT = "Subject"; + @Metadata(description = "From", javaType = "String") + public static final String MAIL_FROM = "From"; + @Metadata(description = "To", javaType = "String") + public static final String MAIL_TO = "To"; + @Metadata(description = "Cc", javaType = "String") + public static final String MAIL_CC = "Cc"; + @Metadata(description = "Bcc", javaType = "String") + public static final String MAIL_BCC = "Bcc"; + @Metadata(description = "Reply to", javaType = "String") + public static final String MAIL_REPLY_TO = "Reply-To"; + @Metadata(description = "The content type", javaType = "String") + public static final String MAIL_CONTENT_TYPE = "contentType"; + @Metadata(label = "consumer", + description = "After processing a mail message, it can be copied to a mail folder with the given name.", + javaType = "String") + public static final String MAIL_COPY_TO = "copyTo"; + @Metadata(label = "consumer", + description = "After processing a mail message, it can be moved to a mail folder with the given name.", + javaType = "String") + public static final String MAIL_MOVE_TO = "moveTo"; + @Metadata(label = "consumer", description = "Deletes the messages after they have been processed.", javaType = "boolean") + public static final String MAIL_DELETE = "delete"; public static final String MAIL_ALTERNATIVE_BODY = "CamelMailAlternativeBody"; public static final String MAIL_DEFAULT_FOLDER = "INBOX"; public static final String MAIL_DEFAULT_FROM = "camel@localhost"; + @Metadata(description = "The message ID.", javaType = "String") public static final String MAIL_MESSAGE_ID = "CamelMailMessageId"; public static final int MAIL_DEFAULT_CONNECTION_TIMEOUT = 30000; diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java index 1289f42..3c41fdb 100644 --- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java +++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConsumer.java @@ -493,9 +493,9 @@ public class MailConsumer extends ScheduledBatchPollingConsumer { org.apache.camel.Message in = exchange.getIn(); MailConfiguration config = getEndpoint().getConfiguration(); // header values override configuration values - String copyTo = in.getHeader("copyTo", config.getCopyTo(), String.class); - String moveTo = in.getHeader("moveTo", config.getMoveTo(), String.class); - boolean delete = in.getHeader("delete", config.isDelete(), boolean.class); + String copyTo = in.getHeader(MailConstants.MAIL_COPY_TO, config.getCopyTo(), String.class); + String moveTo = in.getHeader(MailConstants.MAIL_MOVE_TO, config.getMoveTo(), String.class); + boolean delete = in.getHeader(MailConstants.MAIL_DELETE, config.isDelete(), boolean.class); copyOrMoveMessageIfRequired(config, mail, copyTo, false); diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java index b2e1847..2396fc6 100644 --- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java +++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java @@ -37,7 +37,7 @@ import org.apache.camel.support.ScheduledPollEndpoint; */ @UriEndpoint(firstVersion = "1.0.0", scheme = "imap,imaps,pop3,pop3s,smtp,smtps", title = "IMAP,IMAPS,POP3,POP3S,SMTP,SMTPS", syntax = "imap:host:port", alternativeSyntax = "imap:username:password@host:port", - category = { Category.MAIL }) + category = { Category.MAIL }, headersClass = MailConstants.class) public class MailEndpoint extends ScheduledPollEndpoint implements HeaderFilterStrategyAware { @UriParam(defaultValue = "" + MailConsumer.DEFAULT_CONSUMER_DELAY, javaType = "java.time.Duration", diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java index 3b7aaf2..2e2d833 100644 --- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java +++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java @@ -90,7 +90,7 @@ public class MailComponentTest extends CamelTestSupport { assertFalse(config.isDelete()); assertFalse(config.isIgnoreUriScheme()); assertEquals(-1, config.getFetchSize(), "fetchSize"); - assertEquals("text/plain", config.getContentType(), "contentType"); + assertEquals("text/plain", config.getContentType(), MailConstants.MAIL_CONTENT_TYPE); assertEquals(true, config.isUnseen(), "unseen"); assertFalse(config.isDebugMode()); assertEquals(MailConstants.MAIL_DEFAULT_CONNECTION_TIMEOUT, config.getConnectionTimeout()); @@ -114,7 +114,7 @@ public class MailComponentTest extends CamelTestSupport { assertFalse(config.isDelete()); assertFalse(config.isIgnoreUriScheme()); assertEquals(-1, config.getFetchSize(), "fetchSize"); - assertEquals("text/plain", config.getContentType(), "contentType"); + assertEquals("text/plain", config.getContentType(), MailConstants.MAIL_CONTENT_TYPE); assertEquals(true, config.isUnseen(), "unseen"); assertFalse(config.isDebugMode()); assertEquals(MailConstants.MAIL_DEFAULT_CONNECTION_TIMEOUT, config.getConnectionTimeout()); @@ -152,7 +152,7 @@ public class MailComponentTest extends CamelTestSupport { assertFalse(config.isDelete()); assertFalse(config.isIgnoreUriScheme()); assertEquals(-1, config.getFetchSize(), "fetchSize"); - assertEquals("text/plain", config.getContentType(), "contentType"); + assertEquals("text/plain", config.getContentType(), MailConstants.MAIL_CONTENT_TYPE); assertEquals(true, config.isUnseen(), "unseen"); assertFalse(config.isDebugMode()); } @@ -173,7 +173,7 @@ public class MailComponentTest extends CamelTestSupport { assertFalse(config.isDelete()); assertFalse(config.isIgnoreUriScheme()); assertEquals(-1, config.getFetchSize(), "fetchSize"); - assertEquals("text/plain", config.getContentType(), "contentType"); + assertEquals("text/plain", config.getContentType(), MailConstants.MAIL_CONTENT_TYPE); assertEquals(true, config.isUnseen(), "unseen"); assertFalse(config.isDebugMode()); } @@ -197,7 +197,7 @@ public class MailComponentTest extends CamelTestSupport { assertFalse(config.isIgnoreUriScheme()); assertEquals(-1, config.getFetchSize(), "fetchSize"); assertFalse(config.isUnseen(), "unseen"); - assertEquals("text/html", config.getContentType(), "contentType"); + assertEquals("text/html", config.getContentType(), MailConstants.MAIL_CONTENT_TYPE); assertFalse(config.isDebugMode()); } diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java index 364a352..b424527 100644 --- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java +++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailCustomContentTypeTest.java @@ -64,7 +64,7 @@ public class MailCustomContentTypeTest extends CamelTestSupport { public void testNullBody() throws Exception { Mailbox.clearAll(); - template.sendBodyAndHeader("direct:b", null, "contentType", "text/plain; charset=iso-8859-1"); + template.sendBodyAndHeader("direct:b", null, MailConstants.MAIL_CONTENT_TYPE, "text/plain; charset=iso-8859-1"); Mailbox box = Mailbox.get("claus@localhost"); Message msg = box.get(0); @@ -76,7 +76,8 @@ public class MailCustomContentTypeTest extends CamelTestSupport { public void testSendPlainMailContentTypeInHeader() throws Exception { Mailbox.clearAll(); - template.sendBodyAndHeader("direct:b", "Hello World", "contentType", "text/plain; charset=iso-8859-1"); + template.sendBodyAndHeader("direct:b", "Hello World", MailConstants.MAIL_CONTENT_TYPE, + "text/plain; charset=iso-8859-1"); Mailbox box = Mailbox.get("claus@localhost"); Message msg = box.get(0); @@ -101,7 +102,7 @@ public class MailCustomContentTypeTest extends CamelTestSupport { Mailbox.clearAll(); // Camel will fixup the Content-Type if you do not have a space after the semi colon - template.sendBodyAndHeader("direct:b", "Hello World", "contentType", "text/plain;charset=iso-8859-1"); + template.sendBodyAndHeader("direct:b", "Hello World", MailConstants.MAIL_CONTENT_TYPE, "text/plain;charset=iso-8859-1"); Mailbox box = Mailbox.get("claus@localhost"); Message msg = box.get(0); diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java index dedae19..8bd9b90 100644 --- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java +++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailReplyToTest.java @@ -39,10 +39,10 @@ public class MailReplyToTest extends CamelTestSupport { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMessageCount(1); - mock.expectedHeaderReceived("Reply-To", "noReply1@localhost,noReply2@localhost"); + mock.expectedHeaderReceived(MailConstants.MAIL_REPLY_TO, "noReply1@localhost,noReply2@localhost"); mock.expectedBodiesReceived(body); - template.sendBodyAndHeader("direct:a", body, "Reply-To", "noReply1@localhost,noReply2@localhost"); + template.sendBodyAndHeader("direct:a", body, MailConstants.MAIL_REPLY_TO, "noReply1@localhost,noReply2@localhost"); mock.assertIsSatisfied(); @@ -61,7 +61,7 @@ public class MailReplyToTest extends CamelTestSupport { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedMessageCount(1); - mock.expectedHeaderReceived("Reply-To", "noReply1@localhost, noReply2@localhost"); + mock.expectedHeaderReceived(MailConstants.MAIL_REPLY_TO, "noReply1@localhost, noReply2@localhost"); mock.expectedBodiesReceived(body); template.sendBody("direct:b", body); diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java index 3bcca89..6aa44c3 100644 --- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java +++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailRouteTest.java @@ -49,7 +49,7 @@ public class MailRouteTest extends CamelTestSupport { resultEndpoint.expectedBodiesReceived("hello world!"); Map<String, Object> headers = new HashMap<>(); - headers.put("reply-to", "route-test-reply@localhost"); + headers.put(MailConstants.MAIL_REPLY_TO, "route-test-reply@localhost"); template.sendBodyAndHeaders("smtp://route-test-james@localhost", "hello world!", headers); // lets test the first sent worked @@ -60,7 +60,7 @@ public class MailRouteTest extends CamelTestSupport { // Validate that the headers were preserved. Exchange exchange = resultEndpoint.getReceivedExchanges().get(0); - String replyTo = (String) exchange.getIn().getHeader("reply-to"); + String replyTo = (String) exchange.getIn().getHeader(MailConstants.MAIL_REPLY_TO); assertEquals("route-test-reply@localhost", replyTo); assertMailboxReceivedMessages("route-test-copy@localhost"); diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java index 5d3b4ff..6c50da6 100644 --- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java +++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/security/SslContextParametersMailRouteTest.java @@ -24,6 +24,7 @@ import javax.net.ssl.SSLHandshakeException; import org.apache.camel.BindToRegistry; import org.apache.camel.CamelExecutionException; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.mail.MailConstants; import org.apache.camel.component.mail.MailTestHelper; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.support.jsse.SSLContextParameters; @@ -71,7 +72,7 @@ public class SslContextParametersMailRouteTest extends CamelTestSupport { Map<String, Object> headers = new HashMap<>(); headers.put("To", email); headers.put("From", email); - headers.put("Reply-to", email); + headers.put(MailConstants.MAIL_REPLY_TO, email); headers.put("Subject", "SSL/TLS Test"); template.sendBodyAndHeaders("direct:in", "Test Email Body", headers); @@ -95,7 +96,7 @@ public class SslContextParametersMailRouteTest extends CamelTestSupport { Map<String, Object> headers = new HashMap<>(); headers.put("To", email); headers.put("From", email); - headers.put("Reply-to", email); + headers.put(MailConstants.MAIL_REPLY_TO, email); headers.put("Subject", "SSL/TLS Test"); try {
