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/05 18:11:36 UTC

svn commit: r907006 - in /james/mime4j/trunk/dom: ./ src/main/java/org/apache/james/mime4j/message/ src/main/java/org/apache/james/mime4j/storage/ src/test/java/org/apache/james/mime4j/field/

Author: olegk
Date: Fri Feb  5 17:11:35 2010
New Revision: 907006

URL: http://svn.apache.org/viewvc?rev=907006&view=rev
Log:
MIME4J-158: Eliminated all dependencies on Commons-Logging in DOM module with the sole exception of LoggingMonitor

Modified:
    james/mime4j/trunk/dom/pom.xml
    james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BodyFactory.java
    james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageBuilder.java
    james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/storage/DefaultStorageProvider.java
    james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/ContentDispositionFieldTest.java
    james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/ContentTypeFieldTest.java

Modified: james/mime4j/trunk/dom/pom.xml
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/pom.xml?rev=907006&r1=907005&r2=907006&view=diff
==============================================================================
--- james/mime4j/trunk/dom/pom.xml (original)
+++ james/mime4j/trunk/dom/pom.xml Fri Feb  5 17:11:35 2010
@@ -78,11 +78,6 @@
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <type>jar</type>

Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BodyFactory.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BodyFactory.java?rev=907006&r1=907005&r2=907006&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BodyFactory.java (original)
+++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/BodyFactory.java Fri Feb  5 17:11:35 2010
@@ -23,8 +23,7 @@
 import java.io.InputStream;
 import java.nio.charset.Charset;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.james.mime4j.codec.DecodeMonitor;
 import org.apache.james.mime4j.dom.BinaryBody;
 import org.apache.james.mime4j.dom.Disposable;
 import org.apache.james.mime4j.dom.SingleBody;
@@ -40,18 +39,17 @@
  */
 public class BodyFactory {
 
-    private static Log log = LogFactory.getLog(BodyFactory.class);
-
     private static final Charset FALLBACK_CHARSET = CharsetUtil.DEFAULT_CHARSET;
 
-    private StorageProvider storageProvider;
+    private final StorageProvider storageProvider;
+    private final DecodeMonitor monitor;
 
     /**
      * Creates a new <code>BodyFactory</code> instance that uses the default
      * storage provider for creating message bodies from input streams.
      */
     public BodyFactory() {
-        this.storageProvider = DefaultStorageProvider.getInstance();
+        this(null, null);
     }
 
     /**
@@ -62,11 +60,13 @@
      *            a storage provider or <code>null</code> to use the default
      *            one.
      */
-    public BodyFactory(StorageProvider storageProvider) {
-        if (storageProvider == null)
-            storageProvider = DefaultStorageProvider.getInstance();
-
-        this.storageProvider = storageProvider;
+    public BodyFactory(
+            final StorageProvider storageProvider,
+            final DecodeMonitor monitor) {
+        this.storageProvider = 
+            storageProvider != null ? storageProvider : DefaultStorageProvider.getInstance();
+        this.monitor = 
+            monitor != null ? monitor : DecodeMonitor.SILENT;
     }
 
     /**
@@ -169,7 +169,7 @@
             throw new IllegalArgumentException();
 
         Storage storage = storageProvider.store(is);
-        Charset charset = toJavaCharset(mimeCharset, false);
+        Charset charset = toJavaCharset(mimeCharset, false, monitor);
         return new StorageTextBody(new MultiReferenceStorage(storage), charset);
     }
 
@@ -233,7 +233,7 @@
         if (mimeCharset == null)
             throw new IllegalArgumentException();
 
-        Charset charset = toJavaCharset(mimeCharset, false);
+        Charset charset = toJavaCharset(mimeCharset, false, monitor);
         return new StorageTextBody(new MultiReferenceStorage(storage), charset);
     }
 
@@ -278,33 +278,42 @@
         if (mimeCharset == null)
             throw new IllegalArgumentException();
 
-        Charset charset = toJavaCharset(mimeCharset, true);
+        Charset charset = toJavaCharset(mimeCharset, true, monitor);
         return new StringTextBody(text, charset);
     }
 
-    private static Charset toJavaCharset(String mimeCharset, boolean forEncoding) {
+    private static Charset toJavaCharset(
+            final String mimeCharset, 
+            boolean forEncoding,
+            final DecodeMonitor monitor) {
         String charset = CharsetUtil.toJavaCharset(mimeCharset);
         if (charset == null) {
-            if (log.isWarnEnabled())
-                log.warn("MIME charset '" + mimeCharset + "' has no "
-                        + "corresponding Java charset. Using "
+            if (monitor.isListening()) {
+                monitor.warn(
+                        "MIME charset '" + mimeCharset + "' has no "
+                        + "corresponding Java charset", "Using "
                         + FALLBACK_CHARSET + " instead.");
+            }
             return FALLBACK_CHARSET;
         }
 
         if (forEncoding && !CharsetUtil.isEncodingSupported(charset)) {
-            if (log.isWarnEnabled())
-                log.warn("MIME charset '" + mimeCharset
-                        + "' does not support encoding. Using "
+            if (monitor.isListening()) {
+                monitor.warn(
+                        "MIME charset '" + mimeCharset
+                        + "' does not support encoding", "Using "
                         + FALLBACK_CHARSET + " instead.");
+            }
             return FALLBACK_CHARSET;
         }
 
         if (!forEncoding && !CharsetUtil.isDecodingSupported(charset)) {
-            if (log.isWarnEnabled())
-                log.warn("MIME charset '" + mimeCharset
-                        + "' does not support decoding. Using "
+            if (monitor.isListening()) {
+                monitor.warn(
+                        "MIME charset '" + mimeCharset
+                        + "' does not support decoding", "Using "
                         + FALLBACK_CHARSET + " instead.");
+            }
             return FALLBACK_CHARSET;
         }
 

Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageBuilder.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageBuilder.java?rev=907006&r1=907005&r2=907006&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageBuilder.java (original)
+++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/message/MessageBuilder.java Fri Feb  5 17:11:35 2010
@@ -59,11 +59,14 @@
         this(entity, storageProvider, LoggingMonitor.MONITOR);
     }
     
-    public MessageBuilder(Entity entity, StorageProvider storageProvider, DecodeMonitor monitor) {
+    public MessageBuilder(
+            final Entity entity, 
+            final StorageProvider storageProvider, 
+            final DecodeMonitor monitor) {
         this.entity = entity;
-        this.bodyFactory = new BodyFactory(storageProvider);
         this.stack = new Stack<Object>();
         this.monitor = monitor != null ? monitor : LoggingMonitor.MONITOR;
+        this.bodyFactory = new BodyFactory(storageProvider, this.monitor);
     }
     
     private void expect(Class<?> c) {

Modified: james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/storage/DefaultStorageProvider.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/storage/DefaultStorageProvider.java?rev=907006&r1=907005&r2=907006&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/storage/DefaultStorageProvider.java (original)
+++ james/mime4j/trunk/dom/src/main/java/org/apache/james/mime4j/storage/DefaultStorageProvider.java Fri Feb  5 17:11:35 2010
@@ -19,9 +19,6 @@
 
 package org.apache.james.mime4j.storage;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 /**
  * Allows for a default {@link StorageProvider} instance to be configured on an
  * application level.
@@ -41,8 +38,6 @@
     public static final String DEFAULT_STORAGE_PROVIDER_PROPERTY =
         "org.apache.james.mime4j.defaultStorageProvider";
 
-    private static Log log = LogFactory.getLog(DefaultStorageProvider.class);
-
     private static volatile StorageProvider instance = null;
 
     static {
@@ -82,10 +77,7 @@
                 instance = (StorageProvider) Class.forName(clazz).newInstance();
             }
         } catch (Exception e) {
-            log.warn("Unable to create or instantiate StorageProvider class '"
-                    + clazz + "'. Using default instead.", e);
         }
-
         if (instance == null) {
             StorageProvider backend = new TempFileStorageProvider();
             instance = new ThresholdStorageProvider(backend, 1024);

Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/ContentDispositionFieldTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/ContentDispositionFieldTest.java?rev=907006&r1=907005&r2=907006&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/ContentDispositionFieldTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/ContentDispositionFieldTest.java Fri Feb  5 17:11:35 2010
@@ -25,16 +25,9 @@
 
 import org.apache.james.mime4j.dom.field.ContentDispositionField;
 import org.apache.james.mime4j.field.DefaultFieldParser;
-import org.apache.log4j.BasicConfigurator;
 
 public class ContentDispositionFieldTest extends TestCase {
 
-    @Override
-    public void setUp() {
-        BasicConfigurator.resetConfiguration();
-        BasicConfigurator.configure();
-    }
-
     public void testDispositionTypeWithSemiColonNoParams() throws Exception {
         ContentDispositionField f = null;
 

Modified: james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/ContentTypeFieldTest.java
URL: http://svn.apache.org/viewvc/james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/ContentTypeFieldTest.java?rev=907006&r1=907005&r2=907006&view=diff
==============================================================================
--- james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/ContentTypeFieldTest.java (original)
+++ james/mime4j/trunk/dom/src/test/java/org/apache/james/mime4j/field/ContentTypeFieldTest.java Fri Feb  5 17:11:35 2010
@@ -22,18 +22,11 @@
 import org.apache.james.mime4j.dom.field.ContentTypeField;
 import org.apache.james.mime4j.field.ContentTypeFieldImpl;
 import org.apache.james.mime4j.field.DefaultFieldParser;
-import org.apache.log4j.BasicConfigurator;
 
 import junit.framework.TestCase;
 
 public class ContentTypeFieldTest extends TestCase {
 
-    @Override
-    public void setUp() {
-        BasicConfigurator.resetConfiguration();
-        BasicConfigurator.configure();
-    }
-    
     public void testMimeTypeWithSemiColonNoParams() throws Exception  {
         ContentTypeField f = null;