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