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]

Reply via email to