From 07c6bc79180d59dc2233381faf14f2d260e3ef05 Mon Sep 17 00:00:00 2001 From: Igor Ostaptchenko Date: Tue, 28 Mar 2017 01:52:21 -0400 Subject: [PATCH] Add rawMime feature --- .../xd/mail/MailSourceOptionsMetadata.java | 18 +++++++++++++++++- modules/source/mail/config/mail.xml | 11 +++++++++-- src/docs/asciidoc/Sources.asciidoc | 1 + 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/extensions/spring-xd-extension-mail/src/main/java/org/springframework/xd/mail/MailSourceOptionsMetadata.java b/extensions/spring-xd-extension-mail/src/main/java/org/springframework/xd/mail/MailSourceOptionsMetadata.java index e11a9f152..3d3d343b1 100644 --- a/extensions/spring-xd-extension-mail/src/main/java/org/springframework/xd/mail/MailSourceOptionsMetadata.java +++ b/extensions/spring-xd-extension-mail/src/main/java/org/springframework/xd/mail/MailSourceOptionsMetadata.java @@ -63,6 +63,8 @@ public class MailSourceOptionsMetadata implements ProfileNamesProvider { private String propertiesFile = null; + private boolean useRawMime = false; + private static final String IMAPS_PROPERTIES = "mail.imap.socketFactory.class=javax.net.ssl.SSLSocketFactory," + "mail.imap.socketFactory.fallback=false," + "mail.store.protocol=imaps"; @@ -133,6 +135,10 @@ public boolean isUsePolling() { return usePolling; } + public boolean isUseRawMime() { + return useRawMime; + } + @ModuleOption("comma separated JavaMail property values") public void setProperties(String properties) { this.properties = properties; @@ -157,7 +163,12 @@ public String getDefaultProperties() { @Override public String[] profilesToActivate() { - return (usePolling) ? new String[] {"use-polling"} : new String[] {"use-idle"}; + String [] profilesToActivate = + { + (useRawMime) ? "raw-mime":"body-as-string", + (usePolling) ? "use-polling":"use-idle" + }; + return profilesToActivate; } @ModuleOption("the polling interval used for looking up messages (s)") @@ -178,6 +189,11 @@ public void setUsePolling(boolean usePolling) { this.usePolling = usePolling; } + @ModuleOption("whether to pass MimeMessage as is or body of the message converted to string") + public void setUseRawMime(boolean useRawMime) { + this.useRawMime = useRawMime; + } + @AssertTrue(message = "usePolling=false is only supported with imap(s)") private boolean isUsePollingValid() { if (!usePolling) { diff --git a/modules/source/mail/config/mail.xml b/modules/source/mail/config/mail.xml index 8ba19c2af..375ae21a8 100644 --- a/modules/source/mail/config/mail.xml +++ b/modules/source/mail/config/mail.xml @@ -9,10 +9,17 @@ + + + - + + + + +