Author: norman
Date: Mon Nov 1 17:17:46 2010
New Revision: 1029753
URL: http://svn.apache.org/viewvc?rev=1029753&view=rev
Log:
Remove some duplicated code by reusing classes
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/core/MailHeaders.java
james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageUtil.java
james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/core/MailHeaders.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/core/MailHeaders.java?rev=1029753&r1=1029752&r2=1029753&view=diff
==============================================================================
---
james/server/trunk/core-library/src/main/java/org/apache/james/core/MailHeaders.java
(original)
+++
james/server/trunk/core-library/src/main/java/org/apache/james/core/MailHeaders.java
Mon Nov 1 17:17:46 2010
@@ -27,9 +27,7 @@ import javax.mail.internet.InternetHeade
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
-import java.io.PrintStream;
import java.io.Serializable;
-import java.util.Enumeration;
import org.apache.mailet.base.RFC2822Headers;
@@ -70,19 +68,8 @@ public class MailHeaders extends Interne
*
* @param out the OutputStream to which to write the headers
*/
- public void writeTo(OutputStream out) {
- PrintStream pout;
- if (out instanceof PrintStream) {
- pout = (PrintStream)out;
- } else {
- pout = new PrintStream(out);
- }
- for (Enumeration e = super.getAllHeaderLines(); e.hasMoreElements(); )
{
- pout.print((String) e.nextElement());
- pout.print("\r\n");
- }
- // Print trailing CRLF
- pout.print("\r\n");
+ public void writeTo(OutputStream out) throws MessagingException{
+ MimeMessageUtil.writeHeadersTo(getAllHeaderLines(), out);
}
/**
@@ -90,7 +77,7 @@ public class MailHeaders extends Interne
*
* @return the byte array containing the headers
*/
- public byte[] toByteArray() {
+ public byte[] toByteArray() throws MessagingException{
ByteArrayOutputStream headersBytes = new ByteArrayOutputStream();
writeTo(headersBytes);
return headersBytes.toByteArray();
@@ -135,11 +122,6 @@ public class MailHeaders extends Interne
super.setHeader(arg0, arg1);
}
- protected Object clone() throws CloneNotSupportedException {
- // TODO Auto-generated method stub
- return super.clone();
- }
-
/**
* Check if all REQUIRED headers fields as specified in RFC 822
* are present.
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageUtil.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageUtil.java?rev=1029753&r1=1029752&r2=1029753&view=diff
==============================================================================
---
james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageUtil.java
(original)
+++
james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageUtil.java
Mon Nov 1 17:17:46 2010
@@ -20,23 +20,17 @@
package org.apache.james.core;
-import org.apache.commons.io.IOUtils;
-import org.apache.james.util.InternetPrintWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Enumeration;
import javax.activation.UnsupportedDataTypeException;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
-import java.io.BufferedWriter;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.Enumeration;
+import org.apache.commons.io.IOUtils;
/**
* Utility class to provide optimized write methods for the various MimeMessage
@@ -202,14 +196,13 @@ public class MimeMessageUtil {
* @param headerOs the OutputStream to which the headers get written
* @throws MessagingException
*/
+ @SuppressWarnings("unchecked")
public static void writeHeadersTo(Enumeration headers, OutputStream
headerOs) throws MessagingException {
- PrintWriter hos = new InternetPrintWriter(new BufferedWriter(new
OutputStreamWriter(headerOs), 512), true);
- while (headers.hasMoreElements()) {
- hos.println((String)headers.nextElement());
- }
- // Print header/data separator
- hos.println();
- hos.flush();
+ try {
+ IOUtils.copy(new InternetHeadersInputStream(headers), headerOs);
+ } catch (IOException e) {
+ throw new MessagingException("Unable to write headers to stream",
e);
+ }
}
/**
@@ -220,10 +213,9 @@ public class MimeMessageUtil {
* @return stream the InputStream which holds the headers
* @throws MessagingException
*/
+ @SuppressWarnings("unchecked")
public static InputStream getHeadersInputStream(MimeMessage message,
String[] ignoreList) throws MessagingException {
- ByteArrayOutputStream bo = new ByteArrayOutputStream();
- writeHeadersTo(message,bo,ignoreList);
- return new ByteArrayInputStream(bo.toByteArray());
+ return new
InternetHeadersInputStream(message.getNonMatchingHeaderLines(ignoreList));
}
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java?rev=1029753&r1=1029752&r2=1029753&view=diff
==============================================================================
---
james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java
(original)
+++
james/server/trunk/core-library/src/main/java/org/apache/james/core/MimeMessageWrapper.java
Mon Nov 1 17:17:46 2010
@@ -21,11 +21,13 @@
package org.apache.james.core;
-import org.apache.commons.io.IOUtils;
-import org.apache.james.lifecycle.Disposable;
-import org.apache.james.lifecycle.LifecycleUtil;
-import org.apache.james.util.InternetPrintWriter;
-import org.apache.james.util.stream.CombinedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.LineNumberReader;
+import java.io.OutputStream;
+import java.util.Enumeration;
import javax.activation.DataHandler;
import javax.mail.MessagingException;
@@ -34,16 +36,10 @@ import javax.mail.internet.InternetHeade
import javax.mail.internet.MimeMessage;
import javax.mail.util.SharedByteArrayInputStream;
-import java.io.BufferedWriter;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.Enumeration;
+import org.apache.commons.io.IOUtils;
+import org.apache.james.lifecycle.Disposable;
+import org.apache.james.lifecycle.LifecycleUtil;
+import org.apache.james.util.stream.CombinedInputStream;
/**
* This object wraps a MimeMessage, only loading the underlying MimeMessage
@@ -265,13 +261,7 @@ public class MimeMessageWrapper
InputStream in = source.getInputStream();
try {
InternetHeaders headers = new InternetHeaders(in);
- PrintWriter pos = new InternetPrintWriter(new
BufferedWriter(new OutputStreamWriter(headerOs), 512), true);
- for (Enumeration e =
headers.getNonMatchingHeaderLines(ignoreList); e.hasMoreElements(); ) {
- String header = (String)e.nextElement();
- pos.println(header);
- }
- pos.println();
- pos.flush();
+ IOUtils.copy(new InternetHeadersInputStream(headers),
headerOs);
IOUtils.copy(in, bodyOs);
} finally {
IOUtils.closeQuietly(in);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]