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 2015/03/14 08:16:02 UTC

[7/8] camel git commit: Component documentation

Component documentation


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0aafc256
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0aafc256
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0aafc256

Branch: refs/heads/camel-2.15.x
Commit: 0aafc256b4344da9b4c833ebfff1b52d88dd6d5c
Parents: cfe8fb5
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Mar 14 07:49:08 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Mar 14 08:17:30 2015 +0100

----------------------------------------------------------------------
 .../camel/component/mail/MailConfiguration.java | 111 ++++++++++++++++---
 .../camel/component/mail/MailEndpoint.java      |   6 +-
 2 files changed, 102 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/0aafc256/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
----------------------------------------------------------------------
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 d9cc01f..526e32c 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
@@ -41,9 +41,10 @@ import org.apache.camel.util.jsse.SSLContextParameters;
 @UriParams
 public class MailConfiguration implements Cloneable {
 
-    private JavaMailSender javaMailSender;
+    private Session session;
     private Properties javaMailProperties;
     private Properties additionalJavaMailProperties;
+
     // protocol is implied by component name so it should not be in UriPath
     private String protocol;
     @UriPath @Metadata(required = "true")
@@ -54,27 +55,28 @@ public class MailConfiguration implements Cloneable {
     private String username;
     @UriParam
     private String password;
-    @UriParam
+    @UriParam @Metadata(label = "producer")
     private String subject;
-    private Session session;
+    @UriParam @Metadata(label = "producer")
+    private JavaMailSender javaMailSender;
     @UriParam(defaultValue = "true")
     private boolean mapMailMessage = true;
-    @UriParam(defaultValue = MailConstants.MAIL_DEFAULT_FROM)
+    @UriParam(defaultValue = MailConstants.MAIL_DEFAULT_FROM) @Metadata(label = "producer")
     private String from = MailConstants.MAIL_DEFAULT_FROM;
-    @UriParam(defaultValue = MailConstants.MAIL_DEFAULT_FOLDER)
+    @UriParam(defaultValue = MailConstants.MAIL_DEFAULT_FOLDER) @Metadata(label = "consumer")
     private String folderName = MailConstants.MAIL_DEFAULT_FOLDER;
-    @UriParam
+    @UriParam @Metadata(label = "consumer")
     private boolean delete;
-    @UriParam
+    @UriParam @Metadata(label = "consumer")
     private String copyTo;
-    @UriParam(defaultValue = "true")
+    @UriParam(defaultValue = "true") @Metadata(label = "consumer")
     private boolean unseen = true;
     @UriParam
     private boolean ignoreUriScheme;
     private Map<Message.RecipientType, String> recipients = new HashMap<Message.RecipientType, String>();
-    @UriParam
+    @UriParam @Metadata(label = "producer")
     private String replyTo;
-    @UriParam(defaultValue = "-1")
+    @UriParam(defaultValue = "-1") @Metadata(label = "consumer")
     private int fetchSize = -1;
     @UriParam
     private boolean debugMode;
@@ -90,11 +92,11 @@ public class MailConfiguration implements Cloneable {
     private boolean useInlineAttachments;
     @UriParam
     private boolean ignoreUnsupportedCharset;
-    @UriParam
+    @UriParam @Metadata(label = "consumer")
     private boolean disconnect;
-    @UriParam(defaultValue = "true")
+    @UriParam(defaultValue = "true") @Metadata(label = "consumer")
     private boolean closeFolder = true;
-    @UriParam(defaultValue = "true")
+    @UriParam(defaultValue = "true") @Metadata(label = "consumer")
     private boolean peek = true;
     @UriParam
     private SSLContextParameters sslContextParameters;
@@ -267,6 +269,9 @@ public class MailConfiguration implements Cloneable {
         return javaMailSender;
     }
 
+    /**
+     * To use a custom {@link org.apache.camel.component.mail.JavaMailSender} for sending emails.
+     */
     public void setJavaMailSender(JavaMailSender javaMailSender) {
         this.javaMailSender = javaMailSender;
     }
@@ -275,6 +280,9 @@ public class MailConfiguration implements Cloneable {
         return host;
     }
 
+    /**
+     * The mail server host name
+     */
     public void setHost(String host) {
         this.host = host;
     }
@@ -311,6 +319,9 @@ public class MailConfiguration implements Cloneable {
         return password;
     }
 
+    /**
+     * The password for login
+     */
     public void setPassword(String password) {
         this.password = password;
     }
@@ -319,6 +330,9 @@ public class MailConfiguration implements Cloneable {
         return subject;
     }
 
+    /**
+     * The Subject of the message being sent. Note: Setting the subject in the header takes precedence over this option.
+     */
     public void setSubject(String subject) {
         this.subject = subject;
     }
@@ -327,6 +341,9 @@ public class MailConfiguration implements Cloneable {
         return port;
     }
 
+    /**
+     * The port number of the mail server
+     */
     public void setPort(int port) {
         this.port = port;
     }
@@ -335,6 +352,9 @@ public class MailConfiguration implements Cloneable {
         return protocol;
     }
 
+    /**
+     * The protocol for communicating with the mail server
+     */
     public void setProtocol(String protocol) {
         this.protocol = protocol;
     }
@@ -351,6 +371,9 @@ public class MailConfiguration implements Cloneable {
         return username;
     }
 
+    /**
+     * The username for login
+     */
     public void setUsername(String username) {
         this.username = username;
         if (getRecipients().size() == 0) {
@@ -368,6 +391,9 @@ public class MailConfiguration implements Cloneable {
         return from;
     }
 
+    /**
+     * The from email address
+     */
     public void setFrom(String from) {
         this.from = from;
     }
@@ -376,6 +402,11 @@ public class MailConfiguration implements Cloneable {
         return delete;
     }
 
+    /**
+     * Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message.
+     * If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a
+     * header with the key delete to determine if the mail should be deleted or not.
+     */
     public void setDelete(boolean delete) {
         this.delete = delete;
     }
@@ -392,6 +423,9 @@ public class MailConfiguration implements Cloneable {
         return folderName;
     }
 
+    /**
+     * The folder to poll.
+     */
     public void setFolderName(String folderName) {
         this.folderName = folderName;
     }
@@ -400,6 +434,10 @@ public class MailConfiguration implements Cloneable {
         return ignoreUriScheme;
     }
 
+    /**
+     * 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.
+     */
     public void setIgnoreUriScheme(boolean ignoreUriScheme) {
         this.ignoreUriScheme = ignoreUriScheme;
     }
@@ -408,6 +446,9 @@ public class MailConfiguration implements Cloneable {
         return unseen;
     }
 
+    /**
+     * Whether to limit by unseen mails only.
+     */
     public void setUnseen(boolean unseen) {
         this.unseen = unseen;
     }
@@ -441,6 +482,9 @@ public class MailConfiguration implements Cloneable {
         return replyTo;
     }
 
+    /**
+     * The Reply-To recipients (the receivers of the response mail). Separate multiple email addresses with a comma.
+     */
     public void setReplyTo(String replyTo) {
         this.replyTo = replyTo;
     }
@@ -449,6 +493,11 @@ public class MailConfiguration implements Cloneable {
         return fetchSize;
     }
 
+    /**
+     * Sets the maximum number of messages to consume during a poll. This can be used to avoid overloading a mail server,
+     * if a mailbox folder contains a lot of messages. Default value of -1 means no fetch size and all messages will be consumed.
+     * Setting the value to 0 is a special corner case, where Camel will not consume any messages at all.
+     */
     public void setFetchSize(int fetchSize) {
         this.fetchSize = fetchSize;
     }
@@ -457,6 +506,9 @@ public class MailConfiguration implements Cloneable {
         return debugMode;
     }
 
+    /**
+     * Enable debug mode on the underlying mail framework. The SUN Mail framework logs the debug messages to System.out by default.
+     */
     public void setDebugMode(boolean debugMode) {
         this.debugMode = debugMode;
     }
@@ -465,6 +517,9 @@ public class MailConfiguration implements Cloneable {
         return connectionTimeout;
     }
 
+    /**
+     * The connection timeout in milliseconds.
+     */
     public void setConnectionTimeout(int connectionTimeout) {
         this.connectionTimeout = connectionTimeout;
     }
@@ -481,6 +536,9 @@ public class MailConfiguration implements Cloneable {
         return contentType;
     }
 
+    /**
+     * The mail message content type. Use text/html for HTML mails.
+     */
     public void setContentType(String contentType) {
         this.contentType = contentType;
     }
@@ -489,6 +547,11 @@ public class MailConfiguration implements Cloneable {
         return alternativeBodyHeader;
     }
 
+    /**
+     * Specifies the key to an IN message header that contains an alternative email body.
+     * For example, if you send emails in text/html format and want to provide an alternative mail body for
+     * non-HTML email clients, set the alternative mail body with this key as a header.
+     */
     public void setAlternativeBodyHeader(String alternativeBodyHeader) {
         this.alternativeBodyHeader = alternativeBodyHeader;
     }
@@ -505,6 +568,11 @@ public class MailConfiguration implements Cloneable {
         return ignoreUnsupportedCharset;
     }
 
+    /**
+     * 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.
+     */
     public void setIgnoreUnsupportedCharset(boolean ignoreUnsupportedCharset) {
         this.ignoreUnsupportedCharset = ignoreUnsupportedCharset;
     }
@@ -513,6 +581,9 @@ public class MailConfiguration implements Cloneable {
         return disconnect;
     }
 
+    /**
+     * Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll.
+     */
     public void setDisconnect(boolean disconnect) {
         this.disconnect = disconnect;
     }
@@ -521,6 +592,10 @@ public class MailConfiguration implements Cloneable {
         return closeFolder;
     }
 
+    /**
+     * Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well,
+     * then the consumer keep the folder open between polls.
+     */
     public void setCloseFolder(boolean closeFolder) {
         this.closeFolder = closeFolder;
     }
@@ -537,6 +612,11 @@ public class MailConfiguration implements Cloneable {
         return copyTo;
     }
 
+    /**
+     * After processing a mail message, it can be copied to a mail folder with the given name.
+     * You can override this configuration value, with a header with the key copyTo, allowing you to copy messages
+     * to folder names configured at runtime.
+     */
     public void setCopyTo(String copyTo) {
         this.copyTo = copyTo;
     }
@@ -545,6 +625,11 @@ public class MailConfiguration implements Cloneable {
         return peek;
     }
 
+    /**
+     * Will mark the javax.mail.Message as peeked before processing the mail message.
+     * This applies to IMAPMessage messages types only. By using peek the mail will not be eager marked as SEEN on
+     * the mail server, which allows us to rollback the mail message if there is an error processing in Camel.
+     */
     public void setPeek(boolean peek) {
         this.peek = peek;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/0aafc256/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
----------------------------------------------------------------------
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 f2e0080..a7a89cd 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
@@ -20,7 +20,6 @@ import javax.mail.Message;
 import javax.mail.search.SearchTerm;
 
 import com.sun.mail.imap.SortTerm;
-
 import org.apache.camel.Consumer;
 import org.apache.camel.Exchange;
 import org.apache.camel.ExchangePattern;
@@ -37,10 +36,13 @@ import org.apache.camel.spi.UriParam;
  */
 @UriEndpoint(scheme = "imap,imaps,pop3,pop3s,smtp,smtps", syntax = "imap:host:port", consumerClass = MailConsumer.class, label = "mail")
 public class MailEndpoint extends ScheduledPollEndpoint {
-    private MailBinding binding;
     @UriParam
     private MailConfiguration configuration;
+    @UriParam
+    private MailBinding binding;
+    @UriParam
     private HeaderFilterStrategy headerFilterStrategy = new MailHeaderFilterStrategy();
+    @UriParam
     private ContentTypeResolver contentTypeResolver;
     @UriParam
     private int maxMessagesPerPoll;