You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mime4j-dev@james.apache.org by ol...@apache.org on 2011/06/20 16:49:11 UTC
svn commit: r1137643 - in /james/mime4j/trunk:
benchmark/src/main/java/org/apache/james/mime4j/
dom/src/main/java/org/apache/james/mime4j/dom/
dom/src/main/java/org/apache/james/mime4j/message/
dom/src/test/java/org/apache/james/mime4j/dom/ examples/sr...
Author: olegk
Date: Mon Jun 20 14:49:10 2011
New Revision: 1137643
URL: http://svn.apache.org/viewvc?rev=1137643&view=rev
Log:
Eliminated MessageBuilderImpl to match changes made on the writer side of the DOM API
Removed:
james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageBuilderImpl.java
Modified:
james/mime4j/trunk/benchmark/src/main/java/org/apache/james/mime4j/LongMultipartReadBench.java
james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java
james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageServiceFactoryImpl.java
james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MimeBuilder.java
james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MimeWriter.java
james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/ExampleMessagesRoundtripTest.java
james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/HeaderTest.java
james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageCompleteMailTest.java
james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageHeadlessParserTest.java
james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageParserTest.java
james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageTest.java
james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageWriteToTest.java
james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MimeBuilderCopyTest.java
james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MultipartFormTest.java
james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/dom/MultipartMessage.java
james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/dom/TextPlainMessage.java
james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/transform/TransformMessage.java
james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/tree/MessageTree.java
Modified: james/mime4j/trunk/benchmark/src/main/java/org/apache/james/mime4j/LongMultipartReadBench.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/benchmark/src/main/java/org/apache/james/mime4j/LongMultipartReadBench.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/benchmark/src/main/java/org/apache/james/mime4j/LongMultipartReadBench.java (original)
+++ james/mime4j/trunk/benchmark/src/main/java/org/apache/james/mime4j/LongMultipartReadBench.java Mon Jun 20 14:49:10 2011
@@ -26,6 +26,7 @@ import java.io.InputStream;
import org.apache.james.mime4j.codec.CodecUtil;
import org.apache.james.mime4j.dom.Header;
+import org.apache.james.mime4j.dom.MessageBuilder;
import org.apache.james.mime4j.message.MimeBuilder;
import org.apache.james.mime4j.message.SimpleContentHandler;
import org.apache.james.mime4j.parser.AbstractContentHandler;
@@ -170,9 +171,10 @@ public class LongMultipartReadBench {
private static final class MessageTest implements Test {
public void run(byte[] content, int repetitions) throws Exception {
DefaultStorageProvider.setInstance(new MemoryStorageProvider());
+ MessageBuilder builder = new MimeBuilder();
for (int i = 0; i < repetitions; i++) {
- MimeBuilder.DEFAULT.parse(new ByteArrayInputStream(content));
+ builder.parseMessage(new ByteArrayInputStream(content));
}
}
}
Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java (original)
+++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/dom/MessageBuilder.java Mon Jun 20 14:49:10 2011
@@ -33,6 +33,6 @@ public interface MessageBuilder {
Message newMessage(Message source);
- Message parse(InputStream source) throws MimeException, IOException;
+ Message parseMessage(InputStream source) throws MimeException, IOException;
}
\ No newline at end of file
Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageServiceFactoryImpl.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageServiceFactoryImpl.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageServiceFactoryImpl.java (original)
+++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageServiceFactoryImpl.java Mon Jun 20 14:49:10 2011
@@ -40,7 +40,7 @@ public class MessageServiceFactoryImpl e
@Override
public MessageBuilder newMessageBuilder() {
- MessageBuilderImpl m = new MessageBuilderImpl();
+ MimeBuilder m = new MimeBuilder();
if (bodyFactory != null) m.setBodyFactory(bodyFactory);
if (mimeEntityConfig != null) m.setMimeEntityConfig(mimeEntityConfig);
if (mutableBodyDescriptorFactory != null) m.setMutableBodyDescriptorFactory(mutableBodyDescriptorFactory);
Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MimeBuilder.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MimeBuilder.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MimeBuilder.java (original)
+++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MimeBuilder.java Mon Jun 20 14:49:10 2011
@@ -30,6 +30,7 @@ import org.apache.james.mime4j.dom.Dispo
import org.apache.james.mime4j.dom.Entity;
import org.apache.james.mime4j.dom.Header;
import org.apache.james.mime4j.dom.Message;
+import org.apache.james.mime4j.dom.MessageBuilder;
import org.apache.james.mime4j.dom.Multipart;
import org.apache.james.mime4j.dom.SingleBody;
import org.apache.james.mime4j.dom.field.ParsedField;
@@ -45,14 +46,49 @@ import org.apache.james.mime4j.stream.Mu
/**
* Utility class for copying message and parsing message elements.
*/
-public class MimeBuilder {
+public class MimeBuilder implements MessageBuilder {
- public static final MimeBuilder DEFAULT = new MimeBuilder();
+ private FieldParser<? extends ParsedField> fieldParser = null;
+ private BodyFactory bodyFactory = null;
+ private MimeEntityConfig config = null;
+ private MutableBodyDescriptorFactory bodyDescFactory = null;
+ private boolean contentDecoding = true;
+ private boolean flatMode = false;
+ private DecodeMonitor monitor = null;
- protected MimeBuilder() {
+ public MimeBuilder() {
super();
}
+ public void setFieldParser(final FieldParser<? extends ParsedField> fieldParser) {
+ this.fieldParser = fieldParser;
+ }
+
+ public void setBodyFactory(final BodyFactory bodyFactory) {
+ this.bodyFactory = bodyFactory;
+ }
+
+ public void setMimeEntityConfig(final MimeEntityConfig config) {
+ this.config = config;
+ }
+
+ public void setMutableBodyDescriptorFactory(
+ final MutableBodyDescriptorFactory bodyDescFactory) {
+ this.bodyDescFactory = bodyDescFactory;
+ }
+
+ public void setDecodeMonitor(final DecodeMonitor monitor) {
+ this.monitor = monitor;
+ }
+
+ public void setContentDecoding(boolean contentDecoding) {
+ this.contentDecoding = contentDecoding;
+ }
+
+ public void setFlatMode(boolean flatMode) {
+ this.flatMode = flatMode;
+ }
+
/**
* Creates a new <code>Header</code> from the specified
* <code>Header</code>. The <code>Header</code> instance is initialized
@@ -203,10 +239,7 @@ public class MimeBuilder {
* @throws IOException on I/O errors.
* @throws MimeIOException on MIME protocol violations.
*/
- public Header parse(
- final InputStream is,
- final FieldParser<? extends ParsedField> fieldParser,
- final DecodeMonitor monitor) throws IOException, MimeIOException {
+ public Header parseHeader(final InputStream is) throws IOException, MimeIOException {
final HeaderImpl header = new HeaderImpl();
final MimeStreamParser parser = new MimeStreamParser();
parser.setContentHandler(new AbstractContentHandler() {
@@ -233,33 +266,15 @@ public class MimeBuilder {
return header;
}
- /**
- * Parses the specified MIME message stream into a <code>Message</code>
- * instance using given {@link MimeEntityConfig} and {@link StorageProvider}.
- *
- * @param is
- * the stream to parse.
- * @param config
- * {@link MimeEntityConfig} to use.
- * @param bodyFactory
- * {@link BodyFactory} to use for storing text and binary
- * message bodies.
- * @param bodyDescFactory
- * {@link MutableBodyDescriptorFactory} to use for creating body descriptors.
- * @throws IOException
- * on I/O errors.
- * @throws MimeIOException
- * on MIME protocol violations.
- */
- public Message parse(
- final InputStream is,
- final MimeEntityConfig config,
- final DecodeMonitor monitor,
- final FieldParser<? extends ParsedField> fieldParser,
- final BodyFactory bodyFactory,
- final MutableBodyDescriptorFactory bodyDescFactory,
- final boolean contentDecoding,
- final boolean flatMode) throws IOException, MimeIOException {
+ public Message newMessage() {
+ return new MessageImpl();
+ }
+
+ public Message newMessage(final Message source) {
+ return copy(source);
+ }
+
+ public Message parseMessage(final InputStream is) throws IOException, MimeIOException {
try {
MessageImpl message = new MessageImpl();
MimeEntityConfig cfg = config != null ? config : new MimeEntityConfig();
@@ -286,80 +301,4 @@ public class MimeBuilder {
}
}
- /**
- * Parses the specified MIME message stream into a <code>Message</code>
- * instance using given {@link MimeEntityConfig} and {@link StorageProvider}.
- *
- * @param is
- * the stream to parse.
- * @param config
- * {@link MimeEntityConfig} to use.
- * @param storageProvider
- * {@link StorageProvider} to use for storing text and binary
- * message bodies.
- * @param bodyDescFactory
- * {@link MutableBodyDescriptorFactory} to use for creating body descriptors.
- * @throws IOException
- * on I/O errors.
- * @throws MimeIOException
- * on MIME protocol violations.
- */
- public Message parse(
- final InputStream is,
- final MimeEntityConfig config,
- final DecodeMonitor monitor,
- final FieldParser<? extends ParsedField> fieldParser,
- final BodyFactory bodyFactory,
- final MutableBodyDescriptorFactory bodyDescFactory) throws IOException, MimeIOException {
- return parse(is, config, monitor, fieldParser, bodyFactory, bodyDescFactory, true, false);
- }
-
- public Message parse(
- final InputStream is,
- final MimeEntityConfig config,
- final FieldParser<? extends ParsedField> fieldParser,
- final BodyFactory bodyFactory,
- final MutableBodyDescriptorFactory bodyDescFactory) throws IOException, MimeIOException {
- return parse(is, config, null, fieldParser, bodyFactory, bodyDescFactory);
- }
-
- public Message parse(
- final InputStream is,
- final MimeEntityConfig config,
- final FieldParser<? extends ParsedField> fieldParser,
- final BodyFactory bodyFactory) throws IOException, MimeIOException {
- return parse(is, config, null, fieldParser, bodyFactory, null);
- }
-
- /**
- * Parses the specified MIME message stream into a <code>Message</code>
- * instance.
- *
- * @param is
- * the stream to parse.
- * @throws IOException
- * on I/O errors.
- * @throws MimeIOException
- * on MIME protocol violations.
- */
- public Message parse(InputStream is) throws IOException, MimeIOException {
- return parse(is, null, null, null);
- }
-
- /**
- * Parses the specified MIME message stream into a <code>Message</code>
- * instance using given {@link MimeEntityConfig}.
- *
- * @param is
- * the stream to parse.
- * @throws IOException
- * on I/O errors.
- * @throws MimeIOException
- * on MIME protocol violations.
- */
- public Message parse(InputStream is, MimeEntityConfig config) throws IOException,
- MimeIOException {
- return parse(is, config, null, null);
- }
-
}
Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MimeWriter.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MimeWriter.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MimeWriter.java (original)
+++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MimeWriter.java Mon Jun 20 14:49:10 2011
@@ -41,12 +41,6 @@ import org.apache.james.mime4j.util.Mime
/**
* Writes a message (or a part of a message) to an output stream.
- * <p>
- * This class cannot be instantiated; instead the static instance
- * {@link #DEFAULT} implements the default strategy for writing a message.
- * <p>
- * This class may be subclassed to implement custom strategies for writing
- * messages.
*/
public class MimeWriter implements MessageFormatter {
@@ -54,14 +48,9 @@ public class MimeWriter implements Messa
private static final byte[] DASHES = { '-', '-' };
/**
- * The default message writer.
- */
- public static final MimeWriter DEFAULT = new MimeWriter();
-
- /**
* Protected constructor prevents direct instantiation.
*/
- protected MimeWriter() {
+ public MimeWriter() {
}
/**
Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/ExampleMessagesRoundtripTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/ExampleMessagesRoundtripTest.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/ExampleMessagesRoundtripTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/ExampleMessagesRoundtripTest.java Mon Jun 20 14:49:10 2011
@@ -62,9 +62,12 @@ public class ExampleMessagesRoundtripTes
config.setMalformedHeaderStartsBody(true);
}
config.setMaxLineLen(-1);
- Message inputMessage = MimeBuilder.DEFAULT.parse(url.openStream(), config);
+ MimeBuilder builder = new MimeBuilder();
+ MimeWriter writer = new MimeWriter();
+ builder.setMimeEntityConfig(config);
+ Message inputMessage = builder.parseMessage(url.openStream());
ByteArrayOutputStream out = new ByteArrayOutputStream();
- MimeWriter.DEFAULT.writeMessage(inputMessage, out);
+ writer.writeMessage(inputMessage, out);
String s = url.toString();
URL msgout = new URL(s.substring(0, s.lastIndexOf('.')) + ".out");
@@ -74,7 +77,7 @@ public class ExampleMessagesRoundtripTes
assertEquals("Wrong Expected result", new String(expectedstream.toByteArray()), new String(out.toByteArray()));
} catch (FileNotFoundException e) {
FileOutputStream fos = new FileOutputStream(msgout.getPath()+".expected");
- MimeWriter.DEFAULT.writeMessage(inputMessage, fos);
+ writer.writeMessage(inputMessage, fos);
fos.close();
fail("Expected file created");
}
Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/HeaderTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/HeaderTest.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/HeaderTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/HeaderTest.java Mon Jun 20 14:49:10 2011
@@ -63,7 +63,8 @@ public class HeaderTest extends TestCase
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
- MimeWriter.DEFAULT.writeHeader(header, outstream);
+ MimeWriter writer = new MimeWriter();
+ writer.writeHeader(header, outstream);
byte[] b = outstream.toByteArray();
ByteArrayBuffer buf = new ByteArrayBuffer(b.length);
buf.append(b, 0, b.length);
Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageCompleteMailTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageCompleteMailTest.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageCompleteMailTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageCompleteMailTest.java Mon Jun 20 14:49:10 2011
@@ -55,7 +55,8 @@ public class MessageCompleteMailTest ext
private Message createMessage(byte[] octets) throws Exception {
ByteArrayInputStream in = new ByteArrayInputStream(octets);
- Message message = MimeBuilder.DEFAULT.parse(in);
+ MimeBuilder builder = new MimeBuilder();
+ Message message = builder.parseMessage(in);
return message;
}
}
Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageHeadlessParserTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageHeadlessParserTest.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageHeadlessParserTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageHeadlessParserTest.java Mon Jun 20 14:49:10 2011
@@ -42,10 +42,12 @@ public class MessageHeadlessParserTest e
+ "\r\n"
+ "Instead this should be better parsed as a text/plain body\r\n";
- MimeEntityConfig mimeEntityConfig = new MimeEntityConfig();
- mimeEntityConfig.setMalformedHeaderStartsBody(true);
- Message message = MimeBuilder.DEFAULT.parse(new ByteArrayInputStream(headlessContent
- .getBytes("UTF-8")), mimeEntityConfig);
+ MimeEntityConfig config = new MimeEntityConfig();
+ config.setMalformedHeaderStartsBody(true);
+ MimeBuilder builder = new MimeBuilder();
+ builder.setMimeEntityConfig(config);
+ Message message = builder.parseMessage(
+ new ByteArrayInputStream(headlessContent.getBytes("UTF-8")));
assertEquals("text/plain", message.getMimeType());
assertEquals(1, message.getHeader().getFields().size());
BufferedReader reader = new BufferedReader(((TextBody) message.getBody()).getReader());
@@ -60,10 +62,12 @@ public class MessageHeadlessParserTest e
+ "\r\n"
+ "Instead this should be better parsed as a text/plain body\r\n";
- MimeEntityConfig mimeEntityConfig = new MimeEntityConfig();
- mimeEntityConfig.setMalformedHeaderStartsBody(true);
- Message message = MimeBuilder.DEFAULT.parse(new ByteArrayInputStream(headlessContent
- .getBytes("UTF-8")), mimeEntityConfig);
+ MimeEntityConfig config = new MimeEntityConfig();
+ config.setMalformedHeaderStartsBody(true);
+ MimeBuilder builder = new MimeBuilder();
+ builder.setMimeEntityConfig(config);
+ Message message = builder.parseMessage(
+ new ByteArrayInputStream(headlessContent.getBytes("UTF-8")));
assertEquals("text/plain", message.getMimeType());
assertEquals(0, message.getHeader().getFields().size());
BufferedReader reader = new BufferedReader(((TextBody) message.getBody()).getReader());
@@ -87,10 +91,13 @@ public class MessageHeadlessParserTest e
+ "Content-Type: image/jpeg\r\n" + "\r\n"
+ "all kind of stuff\r\n" + "--foo--\r\n";
- MimeEntityConfig mimeEntityConfig = new MimeEntityConfig();
- mimeEntityConfig.setHeadlessParsing(contentType);
- Message message = MimeBuilder.DEFAULT.parse(new ByteArrayInputStream(headlessContent
- .getBytes("UTF-8")), mimeEntityConfig);
+ MimeEntityConfig config = new MimeEntityConfig();
+ config.setHeadlessParsing(contentType);
+ MimeBuilder builder = new MimeBuilder();
+ builder.setMimeEntityConfig(config);
+
+ Message message = builder.parseMessage(
+ new ByteArrayInputStream(headlessContent.getBytes("UTF-8")));
assertEquals("multipart/form-data", message.getMimeType());
assertEquals(1, message.getHeader().getFields().size());
ContentTypeField contentTypeField = ((ContentTypeField) message
Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageParserTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageParserTest.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageParserTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageParserTest.java Mon Jun 20 14:49:10 2011
@@ -108,7 +108,9 @@ public class MessageParserTest extends T
config.setMalformedHeaderStartsBody(true);
}
config.setMaxLineLen(-1);
- Message m = MimeBuilder.DEFAULT.parse(url.openStream(), config);
+ MimeBuilder builder = new MimeBuilder();
+ builder.setMimeEntityConfig(config);
+ Message m = builder.parseMessage(url.openStream());
String s = url.toString();
String prefix = s.substring(0, s.lastIndexOf('.'));
Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageTest.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageTest.java Mon Jun 20 14:49:10 2011
@@ -134,10 +134,13 @@ public class MessageTest extends TestCas
public void testWriteTo() throws Exception {
byte[] inputByte = getRawMessageAsByteArray();
- Message m = MimeBuilder.DEFAULT.parse(new ByteArrayInputStream(inputByte));
+ MimeBuilder builder = new MimeBuilder();
+ MimeWriter writer = new MimeWriter();
+
+ Message m = builder.parseMessage(new ByteArrayInputStream(inputByte));
ByteArrayOutputStream out = new ByteArrayOutputStream();
- MimeWriter.DEFAULT.writeMessage(m, out);
+ writer.writeMessage(m, out);
InputStream output = new ByteArrayInputStream(out.toByteArray());
@@ -156,14 +159,17 @@ public class MessageTest extends TestCas
byte[] inputByte = getRawMessageAsByteArray();
- Message m = MimeBuilder.DEFAULT.parse(new ByteArrayInputStream(inputByte));
+ MimeBuilder builder = new MimeBuilder();
+ MimeWriter writer = new MimeWriter();
+
+ Message m = builder.parseMessage(new ByteArrayInputStream(inputByte));
m.getHeader().addField(DefaultFieldParser.parse(testheader));
assertEquals("header added", m.getHeader().getField(headerName)
.getBody(), headerValue);
ByteArrayOutputStream out = new ByteArrayOutputStream();
- MimeWriter.DEFAULT.writeMessage(m, out);
+ writer.writeMessage(m, out);
List<?> lines = IOUtils.readLines((new BufferedReader(
new InputStreamReader(new ByteArrayInputStream(out
.toByteArray())))));
Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageWriteToTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageWriteToTest.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageWriteToTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MessageWriteToTest.java Mon Jun 20 14:49:10 2011
@@ -44,7 +44,8 @@ public class MessageWriteToTest extends
Message message = createMessage(ExampleMail.RFC822_SIMPLE_BYTES);
assertFalse("Not multipart", message.isMultipart());
ByteArrayOutputStream out = new ByteArrayOutputStream();
- MimeWriter.DEFAULT.writeMessage(message, out);
+ MimeWriter writer = new MimeWriter();
+ writer.writeMessage(message, out);
assertEquals(out.toByteArray(), ExampleMail.RFC822_SIMPLE_BYTES);
}
@@ -62,7 +63,8 @@ public class MessageWriteToTest extends
Message message = createMessage(ExampleMail.MULTIPART_WITH_BINARY_ATTACHMENTS_BYTES);
assertTrue("Is multipart", message.isMultipart());
ByteArrayOutputStream out = new ByteArrayOutputStream();
- MimeWriter.DEFAULT.writeMessage(message, out);
+ MimeWriter writer = new MimeWriter();
+ writer.writeMessage(message, out);
assertEquals(ExampleMail.MULTIPART_WITH_BINARY_ATTACHMENTS_BYTES, out.toByteArray());
}
@@ -70,7 +72,8 @@ public class MessageWriteToTest extends
Message message = createMessage(ExampleMail.MULTIPART_WITH_BINARY_ATTACHMENTS_NOPREAMBLE_BYTES);
assertTrue("Is multipart", message.isMultipart());
ByteArrayOutputStream out = new ByteArrayOutputStream();
- MimeWriter.DEFAULT.writeMessage(message, out);
+ MimeWriter writer = new MimeWriter();
+ writer.writeMessage(message, out);
assertEquals(ExampleMail.MULTIPART_WITH_BINARY_ATTACHMENTS_NOPREAMBLE_BYTES, out.toByteArray());
}
@@ -78,13 +81,15 @@ public class MessageWriteToTest extends
Message message = createMessage(ExampleMail.MULTIPART_WITH_BINARY_ATTACHMENTS_PREAMBLE_EPILOGUE_BYTES);
assertTrue("Is multipart", message.isMultipart());
ByteArrayOutputStream out = new ByteArrayOutputStream();
- MimeWriter.DEFAULT.writeMessage(message, out);
+ MimeWriter writer = new MimeWriter();
+ writer.writeMessage(message, out);
assertEquals(ExampleMail.MULTIPART_WITH_BINARY_ATTACHMENTS_PREAMBLE_EPILOGUE_BYTES, out.toByteArray());
}
private Message createMessage(byte[] octets) throws Exception {
ByteArrayInputStream in = new ByteArrayInputStream(octets);
- Message message = MimeBuilder.DEFAULT.parse(in);
+ MimeBuilder builder = new MimeBuilder();
+ Message message = builder.parseMessage(in);
return message;
}
}
Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MimeBuilderCopyTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MimeBuilderCopyTest.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MimeBuilderCopyTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MimeBuilderCopyTest.java Mon Jun 20 14:49:10 2011
@@ -42,7 +42,8 @@ public class MimeBuilderCopyTest extends
public void testCopyEmptyMessage() throws Exception {
MessageImpl original = new MessageImpl();
- Message copy = MimeBuilder.DEFAULT.copy(original);
+ MimeBuilder builder = new MimeBuilder();
+ Message copy = builder.copy(original);
assertNull(copy.getHeader());
assertNull(copy.getBody());
@@ -59,7 +60,8 @@ public class MimeBuilderCopyTest extends
original.setBody(body);
original.setParent(parent);
- Message copy = MimeBuilder.DEFAULT.copy(original);
+ MimeBuilder builder = new MimeBuilder();
+ Message copy = builder.copy(original);
assertNotNull(copy.getHeader());
assertNotSame(header, copy.getHeader());
@@ -75,7 +77,8 @@ public class MimeBuilderCopyTest extends
public void testCopyEmptyBodyPart() throws Exception {
BodyPart original = new BodyPart();
- BodyPart copy = MimeBuilder.DEFAULT.copy(original);
+ MimeBuilder builder = new MimeBuilder();
+ BodyPart copy = builder.copy(original);
assertNull(copy.getHeader());
assertNull(copy.getBody());
@@ -92,7 +95,8 @@ public class MimeBuilderCopyTest extends
original.setBody(body);
original.setParent(parent);
- BodyPart copy = MimeBuilder.DEFAULT.copy(original);
+ MimeBuilder builder = new MimeBuilder();
+ BodyPart copy = builder.copy(original);
assertNotNull(copy.getHeader());
assertNotSame(header, copy.getHeader());
@@ -108,7 +112,8 @@ public class MimeBuilderCopyTest extends
public void testCopyEmptyMultipart() throws Exception {
Multipart original = new MultipartImpl("mixed");
- Multipart copy = MimeBuilder.DEFAULT.copy(original);
+ MimeBuilder builder = new MimeBuilder();
+ Multipart copy = builder.copy(original);
assertSame(original.getPreamble(), copy.getPreamble());
assertSame(original.getEpilogue(), copy.getEpilogue());
@@ -127,7 +132,8 @@ public class MimeBuilderCopyTest extends
original.setParent(parent);
original.addBodyPart(bodyPart);
- Multipart copy = MimeBuilder.DEFAULT.copy(original);
+ MimeBuilder builder = new MimeBuilder();
+ Multipart copy = builder.copy(original);
assertSame(original.getPreamble(), copy.getPreamble());
assertSame(original.getEpilogue(), copy.getEpilogue());
@@ -154,7 +160,8 @@ public class MimeBuilderCopyTest extends
original.setHeader(new HeaderImpl());
original.setBody(multipart);
- Message copy = MimeBuilder.DEFAULT.copy(original);
+ MimeBuilder builder = new MimeBuilder();
+ Message copy = builder.copy(original);
Multipart multipartCopy = (Multipart) copy.getBody();
List<Entity> bodyParts = multipartCopy.getBodyParts();
@@ -180,7 +187,8 @@ public class MimeBuilderCopyTest extends
original.addField(f2);
original.addField(f3);
- Header copy = MimeBuilder.DEFAULT.copy(original);
+ MimeBuilder builder = new MimeBuilder();
+ Header copy = builder.copy(original);
// copy must have same fields as original
assertEquals(Arrays.asList(f1, f2, f3), copy.getFields());
Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MultipartFormTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MultipartFormTest.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MultipartFormTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/dom/MultipartFormTest.java Mon Jun 20 14:49:10 2011
@@ -67,7 +67,8 @@ public class MultipartFormTest extends T
multipart.addBodyPart(p3);
ByteArrayOutputStream out = new ByteArrayOutputStream();
- MimeWriter.DEFAULT.writeMultipart(multipart, out);
+ MimeWriter writer = new MimeWriter();
+ writer.writeMultipart(multipart, out);
out.close();
String expected = "--foo\r\n" +
Modified: james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/dom/MultipartMessage.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/dom/MultipartMessage.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/dom/MultipartMessage.java (original)
+++ james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/dom/MultipartMessage.java Mon Jun 20 14:49:10 2011
@@ -30,6 +30,7 @@ import java.util.Date;
import javax.imageio.ImageIO;
import org.apache.james.mime4j.dom.BinaryBody;
+import org.apache.james.mime4j.dom.MessageFormatter;
import org.apache.james.mime4j.dom.Multipart;
import org.apache.james.mime4j.dom.TextBody;
import org.apache.james.mime4j.field.address.AddressBuilder;
@@ -89,7 +90,8 @@ public class MultipartMessage {
// 4) print message to standard output
- MimeWriter.DEFAULT.writeMessage(message, System.out);
+ MessageFormatter writer = new MimeWriter();
+ writer.writeMessage(message, System.out);
// 5) message is no longer needed and should be disposed of
Modified: james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/dom/TextPlainMessage.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/dom/TextPlainMessage.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/dom/TextPlainMessage.java (original)
+++ james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/dom/TextPlainMessage.java Mon Jun 20 14:49:10 2011
@@ -22,6 +22,7 @@ package org.apache.james.mime4j.samples.
import java.io.IOException;
import java.util.Date;
+import org.apache.james.mime4j.dom.MessageFormatter;
import org.apache.james.mime4j.dom.TextBody;
import org.apache.james.mime4j.field.address.AddressBuilder;
import org.apache.james.mime4j.field.address.ParseException;
@@ -63,7 +64,8 @@ public class TextPlainMessage {
// 4) print message to standard output
- MimeWriter.DEFAULT.writeMessage(message, System.out);
+ MessageFormatter writer = new MimeWriter();
+ writer.writeMessage(message, System.out);
// 5) message is no longer needed and should be disposed of
Modified: james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/transform/TransformMessage.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/transform/TransformMessage.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/transform/TransformMessage.java (original)
+++ james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/transform/TransformMessage.java Mon Jun 20 14:49:10 2011
@@ -27,6 +27,8 @@ import java.util.Random;
import org.apache.james.mime4j.dom.Body;
import org.apache.james.mime4j.dom.Entity;
import org.apache.james.mime4j.dom.Message;
+import org.apache.james.mime4j.dom.MessageBuilder;
+import org.apache.james.mime4j.dom.MessageFormatter;
import org.apache.james.mime4j.dom.Multipart;
import org.apache.james.mime4j.dom.TextBody;
import org.apache.james.mime4j.dom.field.ParseException;
@@ -64,9 +66,11 @@ public class TransformMessage {
// Create a new message by transforming the template.
Message transformed = transform(template);
+ MessageFormatter writer = new MimeWriter();
+
// Print transformed message.
System.out.println("\n\nTransformed message:\n--------------------\n");
- MimeWriter.DEFAULT.writeMessage(transformed, System.out);
+ writer.writeMessage(transformed, System.out);
// Messages should be disposed of when they are no longer needed.
// Disposing of a message also disposes of all child elements (e.g. body
@@ -76,7 +80,7 @@ public class TransformMessage {
// Print original message to illustrate that it was not affected by the
// transformation.
System.out.println("\n\nOriginal template:\n------------------\n");
- MimeWriter.DEFAULT.writeMessage(template, System.out);
+ writer.writeMessage(template, System.out);
// Original message is no longer needed.
template.dispose();
@@ -92,7 +96,8 @@ public class TransformMessage {
private static Message transform(Message original) throws IOException, ParseException {
// Create a copy of the template. The copy can be modified without
// affecting the original.
- Message message = MimeBuilder.DEFAULT.copy(original);
+ MessageBuilder builder = new MimeBuilder();
+ Message message = builder.newMessage(original);
// In this example we know we have a multipart message. Use
// Message#isMultipart() if uncertain.
Modified: james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/tree/MessageTree.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/tree/MessageTree.java?rev=1137643&r1=1137642&r2=1137643&view=diff
==============================================================================
--- james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/tree/MessageTree.java (original)
+++ james/mime4j/trunk/examples/src/main/java/org/apache/james/mime4j/samples/tree/MessageTree.java Mon Jun 20 14:49:10 2011
@@ -40,11 +40,13 @@ import javax.swing.event.TreeSelectionLi
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeSelectionModel;
+import org.apache.james.mime4j.MimeException;
import org.apache.james.mime4j.dom.BinaryBody;
import org.apache.james.mime4j.dom.Body;
import org.apache.james.mime4j.dom.Entity;
import org.apache.james.mime4j.dom.Header;
import org.apache.james.mime4j.dom.Message;
+import org.apache.james.mime4j.dom.MessageBuilder;
import org.apache.james.mime4j.dom.Multipart;
import org.apache.james.mime4j.dom.TextBody;
import org.apache.james.mime4j.dom.address.Mailbox;
@@ -364,8 +366,8 @@ public class MessageTree extends JPanel
public static void main(String[] args) {
try {
-
- final Message message = MimeBuilder.DEFAULT.parse(new FileInputStream(args[0]));
+ final MessageBuilder builder = new MimeBuilder();
+ final Message message = builder.parseMessage(new FileInputStream(args[0]));
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
@@ -381,6 +383,8 @@ public class MessageTree extends JPanel
System.err.println("The file '" + args[0] + "' could not be found.");
} catch (IOException e) {
System.err.println("The file '" + args[0] + "' could not be read.");
+ } catch (MimeException e) {
+ System.err.println("The file '" + args[0] + "' is invalid.");
}
}