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 2010/02/03 20:37:58 UTC

svn commit: r906202 - in /james/mime4j/trunk/core/src: main/java/org/apache/james/mime4j/message/ main/java/org/apache/james/mime4j/parser/ main/java/org/apache/james/mime4j/stream/ test/java/org/apache/james/mime4j/parser/ test/java/org/apache/james/m...

Author: olegk
Date: Wed Feb  3 19:37:57 2010
New Revision: 906202

URL: http://svn.apache.org/viewvc?rev=906202&view=rev
Log:
MIME4J-129, MIME4J-157: The patch eliminates a direct dependency on MaximalBodyDescriptor in all parser classes and replaces it with the MutableBodyDescriptorFactory interface

Added:
    james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorFactory.java   (with props)
    james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MutableBodyDescriptorFactory.java   (with props)
Modified:
    james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/message/MessageBuilder.java
    james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/message/MessageImpl.java
    james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MimeStreamParser.java
    james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MimeTokenStream.java
    james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/BasicMimeTokenStream.java
    james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MimeEntityConfig.java
    james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorTest.java
    james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/stream/StrictMimeTokenStreamTest.java

Modified: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/message/MessageBuilder.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/message/MessageBuilder.java?rev=906202&r1=906201&r2=906202&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/message/MessageBuilder.java (original)
+++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/message/MessageBuilder.java Wed Feb  3 19:37:57 2010
@@ -48,7 +48,7 @@
 
     private final Entity entity;
     private final BodyFactory bodyFactory;
-    private Stack<Object> stack = new Stack<Object>();
+    private final Stack<Object> stack;
     private final DecodeMonitor monitor;
     
     public MessageBuilder(Entity entity) {
@@ -62,6 +62,7 @@
     public MessageBuilder(Entity entity, StorageProvider storageProvider, DecodeMonitor monitor) {
         this.entity = entity;
         this.bodyFactory = new BodyFactory(storageProvider);
+        this.stack = new Stack<Object>();
         this.monitor = monitor != null ? monitor : LoggingMonitor.MONITOR;
     }
     

Modified: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/message/MessageImpl.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/message/MessageImpl.java?rev=906202&r1=906201&r2=906202&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/message/MessageImpl.java (original)
+++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/message/MessageImpl.java Wed Feb  3 19:37:57 2010
@@ -54,6 +54,7 @@
 import org.apache.james.mime4j.storage.DefaultStorageProvider;
 import org.apache.james.mime4j.storage.StorageProvider;
 import org.apache.james.mime4j.stream.MimeEntityConfig;
+import org.apache.james.mime4j.stream.MutableBodyDescriptorFactory;
 import org.apache.james.mime4j.util.MimeUtil;
 
 /**
@@ -145,16 +146,21 @@
      * @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 MessageImpl(InputStream is, MimeEntityConfig config,
-            StorageProvider storageProvider, DecodeMonitor monitor) throws IOException,
-            MimeIOException {
+    public MessageImpl(
+            final InputStream is, 
+            final MimeEntityConfig config,
+            final StorageProvider storageProvider, 
+            final DecodeMonitor monitor,
+            final MutableBodyDescriptorFactory bodyDescFactory) throws IOException, MimeIOException {
         try {
-            MimeStreamParser parser = new MimeStreamParser(config, monitor);
+            MimeStreamParser parser = new MimeStreamParser(config, monitor, bodyDescFactory);
             parser.setContentDecoding(true);
             this.monitor = monitor != null ? monitor : LoggingMonitor.MONITOR;
             parser.setContentHandler(new MessageBuilder(this, storageProvider, this.monitor));
@@ -164,9 +170,19 @@
         }
     }
 
-    public MessageImpl(InputStream is, MimeEntityConfig config,
-            StorageProvider storageProvider) throws IOException, MimeIOException {
-        this(is, config, storageProvider, LoggingMonitor.MONITOR);
+    public MessageImpl(
+            final InputStream is, 
+            final MimeEntityConfig config,
+            final StorageProvider storageProvider,
+            final MutableBodyDescriptorFactory bodyDescFactory) throws IOException, MimeIOException {
+        this(is, config, storageProvider, LoggingMonitor.MONITOR, bodyDescFactory);
+    }
+
+    public MessageImpl(
+            final InputStream is, 
+            final MimeEntityConfig config,
+            final StorageProvider storageProvider) throws IOException, MimeIOException {
+        this(is, config, storageProvider, LoggingMonitor.MONITOR, null);
     }
 
     /**

Added: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorFactory.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorFactory.java?rev=906202&view=auto
==============================================================================
--- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorFactory.java (added)
+++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorFactory.java Wed Feb  3 19:37:57 2010
@@ -0,0 +1,31 @@
+/****************************************************************
+ * 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.mime4j.parser;
+
+import org.apache.james.mime4j.stream.MutableBodyDescriptor;
+import org.apache.james.mime4j.stream.MutableBodyDescriptorFactory;
+
+public class MaximalBodyDescriptorFactory implements MutableBodyDescriptorFactory {
+
+    public MutableBodyDescriptor newInstance() {
+        return new MaximalBodyDescriptor(null);
+    }
+    
+} 

Propchange: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MimeStreamParser.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MimeStreamParser.java?rev=906202&r1=906201&r2=906202&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MimeStreamParser.java (original)
+++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MimeStreamParser.java Wed Feb  3 19:37:57 2010
@@ -29,6 +29,7 @@
 import org.apache.james.mime4j.stream.BodyDescriptor;
 import org.apache.james.mime4j.stream.ContentHandler;
 import org.apache.james.mime4j.stream.MimeEntityConfig;
+import org.apache.james.mime4j.stream.MutableBodyDescriptorFactory;
 
 /**
  * <p>
@@ -59,24 +60,32 @@
         this.contentDecoding = false;
     }
 
-    public MimeStreamParser(final MimeEntityConfig config, DecodeMonitor monitor, boolean clone) {
-        this(new MimeTokenStream(clone ? config.clone() : config, monitor));
+    public MimeStreamParser(
+            final MimeEntityConfig config, 
+            boolean clone,
+            final DecodeMonitor monitor, 
+            final MutableBodyDescriptorFactory bodyDescFactory) {
+        this(new MimeTokenStream(clone ? config.clone() : config, monitor, bodyDescFactory));
     }
 
     public MimeStreamParser(final MimeEntityConfig config, boolean clone) {
-        this(new MimeTokenStream(clone ? config.clone() : config, null));
+        this(new MimeTokenStream(clone ? config.clone() : config, null, null));
     }
 
-    public MimeStreamParser(final MimeEntityConfig config, DecodeMonitor monitor) {
-        this(config != null ? config : new MimeEntityConfig(), monitor, config != null);
+    public MimeStreamParser(
+            final MimeEntityConfig config, 
+            final DecodeMonitor monitor,
+            final MutableBodyDescriptorFactory bodyDescFactory) {
+        this(config != null ? config : new MimeEntityConfig(), config != null, 
+                monitor, bodyDescFactory);
     }
 
     public MimeStreamParser(final MimeEntityConfig config) {
-        this(config, null);
+        this(config, null, null);
     }
 
     public MimeStreamParser() {
-        this(new MimeEntityConfig(), false);
+        this(new MimeEntityConfig(), false, null, null);
     }
     
     /**

Modified: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MimeTokenStream.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MimeTokenStream.java?rev=906202&r1=906201&r2=906202&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MimeTokenStream.java (original)
+++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/parser/MimeTokenStream.java Wed Feb  3 19:37:57 2010
@@ -23,10 +23,8 @@
 
 import org.apache.james.mime4j.codec.DecodeMonitor;
 import org.apache.james.mime4j.stream.BasicMimeTokenStream;
-import org.apache.james.mime4j.stream.BodyDescriptor;
-import org.apache.james.mime4j.stream.DefaultBodyDescriptor;
 import org.apache.james.mime4j.stream.MimeEntityConfig;
-import org.apache.james.mime4j.stream.MutableBodyDescriptor;
+import org.apache.james.mime4j.stream.MutableBodyDescriptorFactory;
 
 /**
  * <p>
@@ -67,60 +65,26 @@
  * one instance per thread.</p>
  */
 public class MimeTokenStream extends BasicMimeTokenStream {
-    
-    /**
-     * Creates a stream that creates a more detailed body descriptor.
-     * @return <code>MimeTokenStream</code>, not null
-     */
-    public static final MimeTokenStream createMaximalDescriptorStream() {
-        MimeEntityConfig config = new MimeEntityConfig();
-        config.setMaximalBodyDescriptor(true);
-        return new MimeTokenStream(config);
-    }
-    
-    /**
-     * Creates a stream that strictly validates the input.
-     * @return <code>MimeTokenStream</code> which throws a 
-     * <code>MimeException</code> whenever possible issues 
-     * are dedicated in the input
-     */
-    public static final MimeTokenStream createStrictValidationStream() {
-        MimeEntityConfig config = new MimeEntityConfig();
-        config.setStrictParsing(true);
-        return new MimeTokenStream(config);
-    }
-    
-    /**
-     * Constructs a standard (lax) stream.
-     * Optional validation events will be logged only.
-     * Use {@link #createStrictValidationStream()} to create
-     * a stream that strictly validates the input.
-     */
+
     public MimeTokenStream() {
-        this(new MimeEntityConfig());
+        super(new MimeEntityConfig());
     }
-    
+
     public MimeTokenStream(final MimeEntityConfig config) {
-        this(config, null);
+        super(config, null, null);
     }
-    
-    public MimeTokenStream(final MimeEntityConfig config, DecodeMonitor monitor) {
-        super(config, monitor);
+        
+    public MimeTokenStream(
+            final MimeEntityConfig config, 
+            final MutableBodyDescriptorFactory bodyDescFactory) {
+        super(config, null, bodyDescFactory);
     }
 
-    /**
-     * Creates a new instance of {@link BodyDescriptor}. Subclasses may override
-     * this in order to create body descriptors, that provide more specific
-     * information.
-     */
-    protected MutableBodyDescriptor newBodyDescriptor() {
-        final MutableBodyDescriptor result;
-        if (getConfig().isMaximalBodyDescriptor()) {
-            result = new MaximalBodyDescriptor(null);
-        } else {
-            result = new DefaultBodyDescriptor(null);
-        }
-        return result;
+    public MimeTokenStream(
+            final MimeEntityConfig config, 
+            final DecodeMonitor monitor,
+            final MutableBodyDescriptorFactory bodyDescFactory) {
+        super(config, monitor, bodyDescFactory);
     }
-
+    
 }

Modified: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/BasicMimeTokenStream.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/BasicMimeTokenStream.java?rev=906202&r1=906201&r2=906202&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/BasicMimeTokenStream.java (original)
+++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/BasicMimeTokenStream.java Wed Feb  3 19:37:57 2010
@@ -75,13 +75,14 @@
 public class BasicMimeTokenStream implements EntityStates, RecursionMode {
     
     private final MimeEntityConfig config;
+    private final DecodeMonitor monitor;
+    private final MutableBodyDescriptorFactory bodyDescFactory;
     private final LinkedList<EntityStateMachine> entities = new LinkedList<EntityStateMachine>();
     
     private int state = T_END_OF_STREAM;
     private EntityStateMachine currentStateMachine;
     private int recursionMode = M_RECURSE;
 	private MimeEntity rootentity;
-    private final DecodeMonitor monitor;
     
     /**
      * Constructs a standard (lax) stream.
@@ -94,16 +95,26 @@
     }
 
     public BasicMimeTokenStream(final MimeEntityConfig config) {
-        this(config, null);
+        this(config, null, null);
     }
         
-    public BasicMimeTokenStream(final MimeEntityConfig config, DecodeMonitor monitor) {
+    public BasicMimeTokenStream(
+            final MimeEntityConfig config, 
+            final MutableBodyDescriptorFactory bodyDescFactory) {
+        this(config, null, bodyDescFactory);
+    }
+
+    public BasicMimeTokenStream(
+            final MimeEntityConfig config, 
+            final DecodeMonitor monitor,
+            final MutableBodyDescriptorFactory bodyDescFactory) {
         super();
         this.config = config;
-        this.monitor = monitor != null ? monitor : (config.isStrictParsing() ? DecodeMonitor.STRICT : DecodeMonitor.SILENT);
+        this.monitor = monitor != null ? monitor : 
+            (config.isStrictParsing() ? DecodeMonitor.STRICT : DecodeMonitor.SILENT);
+        this.bodyDescFactory = bodyDescFactory;
     }
 
-
     /** Instructs the {@code MimeTokenStream} to parse the given streams contents.
      * If the {@code MimeTokenStream} has already been in use, resets the streams
      * internal state.
@@ -138,9 +149,20 @@
         doParse(stream, newBodyDescriptor, start);
     }
 
+    /**
+     * Creates a new instance of {@link BodyDescriptor}. Subclasses may override
+     * this in order to create body descriptors, that provide more specific
+     * information.
+     */
     protected MutableBodyDescriptor newBodyDescriptor() {
-		return new DefaultBodyDescriptor(null);
-	}
+        final MutableBodyDescriptor result;
+        if (bodyDescFactory != null) {
+            result = bodyDescFactory.newInstance();
+        } else {
+            result = new DefaultBodyDescriptor(null);
+        }
+        return result;
+    }
 
 	public void doParse(InputStream stream,
             MutableBodyDescriptor newBodyDescriptor, int start) {

Modified: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MimeEntityConfig.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MimeEntityConfig.java?rev=906202&r1=906201&r2=906202&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MimeEntityConfig.java (original)
+++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MimeEntityConfig.java Wed Feb  3 19:37:57 2010
@@ -20,16 +20,12 @@
 package org.apache.james.mime4j.stream;
 
 import org.apache.james.mime4j.MimeException;
-import org.apache.james.mime4j.parser.MaximalBodyDescriptor;
-import org.apache.james.mime4j.parser.MimeStreamParser;
-import org.apache.james.mime4j.parser.MimeTokenStream;
 
 /**
  * MIME entity configuration
  */
 public final class MimeEntityConfig implements Cloneable {
 
-    private boolean maximalBodyDescriptor;
     private boolean strictParsing;
     private int maxLineLen;
     private int maxHeaderCount;
@@ -40,7 +36,6 @@
     private boolean malformedHeaderStartsBody;
     
 	public MimeEntityConfig() {
-        this.maximalBodyDescriptor = false;
         this.strictParsing = false;
         this.maxLineLen = 1000;
         this.maxHeaderCount = 1000;
@@ -75,36 +70,6 @@
 	}
 
     /**
-     * Returns <code>true</code> if the maximum body descriptor should be
-     * used, <code>false</code> for the default body descriptor.
-     *
-     * @see #setMaximalBodyDescriptor(boolean)
-     *
-     * @return value of maximum body descriptor.
-     */
-    public boolean isMaximalBodyDescriptor() {
-        return this.maximalBodyDescriptor;
-    }
-
-    /**
-     * Specified whether the parser should use an instance of
-     * {@link MaximalBodyDescriptor} instead of {@link DefaultBodyDescriptor} to
-     * encapsulate the values of MIME-specific header fields.
-     * <p>
-     * The body descriptor can be retrieved by calling
-     * {@link MimeTokenStream#getBodyDescriptor()}.
-     * <p>
-     * Default value: <code>false</code>
-     *
-     * @param maximalBodyDescriptor <code>true</code> to use an instance of
-     *            {@link MaximalBodyDescriptor}, <code>false</code> for an
-     *            instance of {@link DefaultBodyDescriptor}.
-     */
-    public void setMaximalBodyDescriptor(boolean maximalBodyDescriptor) {
-        this.maximalBodyDescriptor = maximalBodyDescriptor;
-    }
-    
-    /**
      * Returns the value of the strict parsing mode
      * @see #setStrictParsing(boolean)
      * 
@@ -290,8 +255,7 @@
     
     @Override
     public String toString() {
-        return "[max body descriptor: " + maximalBodyDescriptor
-                + ", strict parsing: " + strictParsing + ", max line length: "
+        return "[strict parsing: " + strictParsing + ", max line length: "
                 + maxLineLen + ", max header count: " + maxHeaderCount
                 + ", max content length: " + maxContentLen
                 + ", count line numbers: " + countLineNumbers + "]";

Added: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MutableBodyDescriptorFactory.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MutableBodyDescriptorFactory.java?rev=906202&view=auto
==============================================================================
--- james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MutableBodyDescriptorFactory.java (added)
+++ james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MutableBodyDescriptorFactory.java Wed Feb  3 19:37:57 2010
@@ -0,0 +1,29 @@
+/****************************************************************
+ * 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.mime4j.stream;
+
+/**
+ * {@link MutableBodyDescriptor} factory.
+ */
+public interface MutableBodyDescriptorFactory {
+
+    MutableBodyDescriptor newInstance();
+
+}

Propchange: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MutableBodyDescriptorFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MutableBodyDescriptorFactory.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: james/mime4j/trunk/core/src/main/java/org/apache/james/mime4j/stream/MutableBodyDescriptorFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorTest.java?rev=906202&r1=906201&r2=906202&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorTest.java (original)
+++ james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/parser/MaximalBodyDescriptorTest.java Wed Feb  3 19:37:57 2010
@@ -27,6 +27,7 @@
 import org.apache.james.mime4j.parser.MimeTokenStream;
 import org.apache.james.mime4j.stream.BaseTestForBodyDescriptors;
 import org.apache.james.mime4j.stream.BodyDescriptor;
+import org.apache.james.mime4j.stream.MimeEntityConfig;
 import org.apache.james.mime4j.stream.MutableBodyDescriptor;
 
 public class MaximalBodyDescriptorTest extends BaseTestForBodyDescriptors {
@@ -36,7 +37,9 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-        parser = MimeTokenStream.createMaximalDescriptorStream();
+        MimeEntityConfig config = new MimeEntityConfig();
+        config.setStrictParsing(true);
+        parser = new MimeTokenStream(config, new MaximalBodyDescriptorFactory());
     }
 
     @Override

Modified: james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/stream/StrictMimeTokenStreamTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/stream/StrictMimeTokenStreamTest.java?rev=906202&r1=906201&r2=906202&view=diff
==============================================================================
--- james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/stream/StrictMimeTokenStreamTest.java (original)
+++ james/mime4j/trunk/core/src/test/java/org/apache/james/mime4j/stream/StrictMimeTokenStreamTest.java Wed Feb  3 19:37:57 2010
@@ -34,8 +34,9 @@
     
     public void testUnexpectedEndOfHeaders() throws Exception {
         
-        MimeTokenStream parser = MimeTokenStream.createStrictValidationStream();
-        
+        MimeEntityConfig config = new MimeEntityConfig();
+        config.setStrictParsing(true);
+        MimeTokenStream parser = new MimeTokenStream(config);
         parser.parse(new ByteArrayInputStream(HEADER_ONLY.getBytes()));
         
         assertEquals("Headers start", MimeTokenStream.T_START_HEADER, parser.next());
@@ -50,7 +51,9 @@
     
     public void testCorrectEndOfHeaders() throws Exception {
         
-        MimeTokenStream parser = MimeTokenStream.createStrictValidationStream();
+        MimeEntityConfig config = new MimeEntityConfig();
+        config.setStrictParsing(true);
+        MimeTokenStream parser = new MimeTokenStream();
         
         parser.parse(new ByteArrayInputStream(CORRECT_HEADERS.getBytes()));