You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/08/07 06:58:28 UTC
[camel] branch master updated: CAMEL-13712: camel-mail should use
hostname and port from custom MailSession if its been configured.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 1633722 CAMEL-13712: camel-mail should use hostname and port from custom MailSession if its been configured.
1633722 is described below
commit 1633722c072360420d31a67e42937ebdcc3a9260
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Aug 7 08:58:07 2019 +0200
CAMEL-13712: camel-mail should use hostname and port from custom MailSession if its been configured.
---
.../camel-mail/src/main/docs/mail-component.adoc | 2 +-
.../camel/component/mail/MailConfiguration.java | 10 +++++-
.../endpoint/dsl/MailEndpointBuilderFactory.java | 36 +++++++++++-----------
.../springboot/MailComponentConfiguration.java | 6 ++--
4 files changed, 31 insertions(+), 23 deletions(-)
diff --git a/components/camel-mail/src/main/docs/mail-component.adoc b/components/camel-mail/src/main/docs/mail-component.adoc
index 1fe6255..946d9ff 100644
--- a/components/camel-mail/src/main/docs/mail-component.adoc
+++ b/components/camel-mail/src/main/docs/mail-component.adoc
@@ -176,7 +176,7 @@ with the following path and query parameters:
| *headerFilterStrategy* (advanced) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter headers. | | HeaderFilterStrategy
| *ignoreUnsupportedCharset* (advanced) | Option to let Camel ignore unsupported charset in the local JVM when sending mails. If the charset is unsupported then charset=XXX (where XXX represents the unsupported charset) is removed from the content-type and it relies on the platform default instead. | false | boolean
| *ignoreUriScheme* (advanced) | Option to let Camel ignore unsupported charset in the local JVM when sending mails. If the charset is unsupported then charset=XXX (where XXX represents the unsupported charset) is removed from the content-type and it relies on the platform default instead. | false | boolean
-| *session* (advanced) | Specifies the mail session that camel should use for all mail interactions. Useful in scenarios where mail sessions are created and managed by some other resource, such as a JavaEE container. If this is not specified, Camel automatically creates the mail session for you. | | Session
+| *session* (advanced) | Specifies the mail session that camel should use for all mail interactions. Useful in scenarios where mail sessions are created and managed by some other resource, such as a JavaEE container. When using a custom mail session, then the hostname and port from the mail session will be used (if configured on the session). | | Session
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
| *useInlineAttachments* (advanced) | Whether to use disposition inline or attachment. | false | boolean
| *idempotentRepository* (filter) | A pluggable repository org.apache.camel.spi.IdempotentRepository which allows to cluster consuming from the same mailbox, and let the repository coordinate whether a mail message is valid for the consumer to process. By default no repository is in use. | | IdempotentRepository
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
index d1abdd8..abb8dc7 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
@@ -201,6 +201,14 @@ public class MailConfiguration implements Cloneable {
}
if (session != null) {
answer.setSession(session);
+ String host = session.getProperty("mail.smtp.host");
+ if (host != null && !host.isEmpty()) {
+ answer.setHost(host);
+ }
+ String port = session.getProperty("mail.smtp.port");
+ if (port != null && !port.isEmpty()) {
+ answer.setPort(Integer.parseInt(port));
+ }
} else {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
try {
@@ -394,7 +402,7 @@ public class MailConfiguration implements Cloneable {
/**
* Specifies the mail session that camel should use for all mail interactions. Useful in scenarios where
* mail sessions are created and managed by some other resource, such as a JavaEE container.
- * If this is not specified, Camel automatically creates the mail session for you.
+ * When using a custom mail session, then the hostname and port from the mail session will be used (if configured on the session).
*/
public void setSession(Session session) {
this.session = session;
diff --git a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/MailEndpointBuilderFactory.java b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/MailEndpointBuilderFactory.java
index af2507c..c376b9c 100644
--- a/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/MailEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/MailEndpointBuilderFactory.java
@@ -1442,9 +1442,9 @@ public interface MailEndpointBuilderFactory {
/**
* Specifies the mail session that camel should use for all mail
* interactions. Useful in scenarios where mail sessions are created and
- * managed by some other resource, such as a JavaEE container. If this
- * is not specified, Camel automatically creates the mail session for
- * you.
+ * managed by some other resource, such as a JavaEE container. When
+ * using a custom mail session, then the hostname and port from the mail
+ * session will be used (if configured on the session).
*
* The option is a: <code>javax.mail.Session</code> type.
*
@@ -1457,9 +1457,9 @@ public interface MailEndpointBuilderFactory {
/**
* Specifies the mail session that camel should use for all mail
* interactions. Useful in scenarios where mail sessions are created and
- * managed by some other resource, such as a JavaEE container. If this
- * is not specified, Camel automatically creates the mail session for
- * you.
+ * managed by some other resource, such as a JavaEE container. When
+ * using a custom mail session, then the hostname and port from the mail
+ * session will be used (if configured on the session).
*
* The option will be converted to a <code>javax.mail.Session</code>
* type.
@@ -2035,9 +2035,9 @@ public interface MailEndpointBuilderFactory {
/**
* Specifies the mail session that camel should use for all mail
* interactions. Useful in scenarios where mail sessions are created and
- * managed by some other resource, such as a JavaEE container. If this
- * is not specified, Camel automatically creates the mail session for
- * you.
+ * managed by some other resource, such as a JavaEE container. When
+ * using a custom mail session, then the hostname and port from the mail
+ * session will be used (if configured on the session).
*
* The option is a: <code>javax.mail.Session</code> type.
*
@@ -2050,9 +2050,9 @@ public interface MailEndpointBuilderFactory {
/**
* Specifies the mail session that camel should use for all mail
* interactions. Useful in scenarios where mail sessions are created and
- * managed by some other resource, such as a JavaEE container. If this
- * is not specified, Camel automatically creates the mail session for
- * you.
+ * managed by some other resource, such as a JavaEE container. When
+ * using a custom mail session, then the hostname and port from the mail
+ * session will be used (if configured on the session).
*
* The option will be converted to a <code>javax.mail.Session</code>
* type.
@@ -2488,9 +2488,9 @@ public interface MailEndpointBuilderFactory {
/**
* Specifies the mail session that camel should use for all mail
* interactions. Useful in scenarios where mail sessions are created and
- * managed by some other resource, such as a JavaEE container. If this
- * is not specified, Camel automatically creates the mail session for
- * you.
+ * managed by some other resource, such as a JavaEE container. When
+ * using a custom mail session, then the hostname and port from the mail
+ * session will be used (if configured on the session).
*
* The option is a: <code>javax.mail.Session</code> type.
*
@@ -2503,9 +2503,9 @@ public interface MailEndpointBuilderFactory {
/**
* Specifies the mail session that camel should use for all mail
* interactions. Useful in scenarios where mail sessions are created and
- * managed by some other resource, such as a JavaEE container. If this
- * is not specified, Camel automatically creates the mail session for
- * you.
+ * managed by some other resource, such as a JavaEE container. When
+ * using a custom mail session, then the hostname and port from the mail
+ * session will be used (if configured on the session).
*
* The option will be converted to a <code>javax.mail.Session</code>
* type.
diff --git a/platforms/spring-boot/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
index 5e975b8..7478acb 100644
--- a/platforms/spring-boot/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConfiguration.java
@@ -166,9 +166,9 @@ public class MailComponentConfiguration
/**
* Specifies the mail session that camel should use for all mail
* interactions. Useful in scenarios where mail sessions are created and
- * managed by some other resource, such as a JavaEE container. If this
- * is not specified, Camel automatically creates the mail session for
- * you.
+ * managed by some other resource, such as a JavaEE container. When
+ * using a custom mail session, then the hostname and port from the mail
+ * session will be used (if configured on the session).
*/
private Session session;
/**