You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/06/19 09:53:48 UTC

[2/8] james-project git commit: JAMES-2429 Helper for iterating multipart content

JAMES-2429 Helper for iterating multipart content


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c04fd750
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c04fd750
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c04fd750

Branch: refs/heads/master
Commit: c04fd750442c942570133a183b5a50875392d700
Parents: 380721c
Author: benwa <bt...@linagora.com>
Authored: Thu Jun 14 11:25:33 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jun 19 16:52:40 2018 +0700

----------------------------------------------------------------------
 javax-mail-extension/pom.xml                    |  4 +++
 .../org/apache/james/javax/MultipartUtil.java   | 38 ++++++++++++++++++++
 .../transport/mailets/StripAttachment.java      | 11 ++----
 .../mailets/remote/delivery/Converter7Bit.java  | 10 +++---
 4 files changed, 50 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/c04fd750/javax-mail-extension/pom.xml
----------------------------------------------------------------------
diff --git a/javax-mail-extension/pom.xml b/javax-mail-extension/pom.xml
index fa9c00e..97cd119 100644
--- a/javax-mail-extension/pom.xml
+++ b/javax-mail-extension/pom.xml
@@ -36,5 +36,9 @@
             <groupId>com.sun.mail</groupId>
             <artifactId>javax.mail</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/james-project/blob/c04fd750/javax-mail-extension/src/main/java/org/apache/james/javax/MultipartUtil.java
----------------------------------------------------------------------
diff --git a/javax-mail-extension/src/main/java/org/apache/james/javax/MultipartUtil.java b/javax-mail-extension/src/main/java/org/apache/james/javax/MultipartUtil.java
new file mode 100644
index 0000000..b92e1e3
--- /dev/null
+++ b/javax-mail-extension/src/main/java/org/apache/james/javax/MultipartUtil.java
@@ -0,0 +1,38 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.javax;
+
+import java.util.List;
+
+import javax.mail.BodyPart;
+import javax.mail.MessagingException;
+import javax.mail.Multipart;
+
+import com.google.common.collect.ImmutableList;
+
+public class MultipartUtil {
+    public static List<BodyPart> retrieveBodyParts(Multipart multipart) throws MessagingException {
+        ImmutableList.Builder<BodyPart> builder = ImmutableList.builder();
+        for (int i = 0; i < multipart.getCount(); i++) {
+            builder.add(multipart.getBodyPart(i));
+        }
+        return builder.build();
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/c04fd750/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
index 891c448..2a82413 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
@@ -45,6 +45,7 @@ import javax.mail.internet.MimeUtility;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
+import org.apache.james.javax.MultipartUtil;
 import org.apache.james.mime4j.codec.DecodeMonitor;
 import org.apache.james.mime4j.codec.DecoderUtil;
 import org.apache.mailet.Mail;
@@ -271,7 +272,7 @@ public class StripAttachment extends GenericMailet {
             Multipart multipart = (Multipart) part.getContent();
             boolean atLeastOneRemoved = false;
             boolean subpartHasBeenChanged = false;
-            List<BodyPart> bodyParts = retrieveBodyParts(multipart);
+            List<BodyPart> bodyParts = MultipartUtil.retrieveBodyParts(multipart);
             for (BodyPart bodyPart: bodyParts) {
                 if (isMultipart(bodyPart)) {
                     if (processMultipartPartMessage(bodyPart, mail)) {
@@ -301,14 +302,6 @@ public class StripAttachment extends GenericMailet {
         }
     }
 
-    private List<BodyPart> retrieveBodyParts(Multipart multipart) throws MessagingException {
-        ImmutableList.Builder<BodyPart> builder = ImmutableList.builder();
-        for (int i = 0; i < multipart.getCount(); i++) {
-            builder.add(multipart.getBodyPart(i));
-        }
-        return builder.build();
-    }
-
     private boolean shouldBeRemoved(BodyPart bodyPart, Mail mail) throws MessagingException, Exception {
         String fileName = getFilename(bodyPart);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/c04fd750/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Converter7Bit.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Converter7Bit.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Converter7Bit.java
index 63b17f6..2eb44f4 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Converter7Bit.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Converter7Bit.java
@@ -20,11 +20,14 @@
 package org.apache.james.transport.mailets.remote.delivery;
 
 import java.io.IOException;
+import java.util.List;
 
+import javax.mail.BodyPart;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMultipart;
 import javax.mail.internet.MimePart;
 
+import org.apache.james.javax.MultipartUtil;
 import org.apache.mailet.MailetContext;
 
 public class Converter7Bit {
@@ -37,10 +40,9 @@ public class Converter7Bit {
 
     public MimePart convertTo7Bit(MimePart part) throws MessagingException, IOException {
         if (part.isMimeType("multipart/*")) {
-            MimeMultipart parts = (MimeMultipart) part.getContent();
-            int count = parts.getCount();
-            for (int i = 0; i < count; i++) {
-                convertTo7Bit((MimePart) parts.getBodyPart(i));
+            List<BodyPart> bodyParts = MultipartUtil.retrieveBodyParts((MimeMultipart) part.getContent());
+            for (BodyPart bodyPart : bodyParts) {
+                convertTo7Bit((MimePart) bodyPart);
             }
         } else if ("8bit".equals(part.getEncoding())) {
             // The content may already be in encoded the form (likely with mail


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org