You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2017/08/24 03:46:26 UTC

[01/38] james-project git commit: JAMES-2128 Respect maven sorting order conventions

Repository: james-project
Updated Branches:
  refs/heads/master c01150221 -> 5accc88a1


JAMES-2128 Respect maven sorting order conventions


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/262da4da
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/262da4da
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/262da4da

Branch: refs/heads/master
Commit: 262da4dac4a504eb6aa409a2be0af2035fa76fd4
Parents: c011502
Author: benwa <bt...@linagora.com>
Authored: Wed Aug 23 17:07:21 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Wed Aug 23 17:07:21 2017 +0700

----------------------------------------------------------------------
 server/container/guice/cassandra-guice/pom.xml  |   4 +
 .../modules/server/ESMetricReporterModule.java  | 113 ------------------
 .../container/guice/es-metric-reporter/pom.xml  |  66 +++++++++++
 .../modules/server/ESMetricReporterModule.java  | 115 +++++++++++++++++++
 server/container/guice/jpa-guice/pom.xml        |   4 +
 .../org/apache/james/JPAJamesServerMain.java    |   4 +-
 server/container/guice/jpa-smtp/pom.xml         |   4 +
 .../org/apache/james/JPAJamesServerMain.java    |   4 +-
 server/container/guice/pom.xml                  |   6 +
 9 files changed, 205 insertions(+), 115 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/262da4da/server/container/guice/cassandra-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/pom.xml b/server/container/guice/cassandra-guice/pom.xml
index 88289f7..19426d7 100644
--- a/server/container/guice/cassandra-guice/pom.xml
+++ b/server/container/guice/cassandra-guice/pom.xml
@@ -116,6 +116,10 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-guice-es-resporter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>james-server-guice-imap</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/262da4da/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java
deleted file mode 100644
index b6906bc..0000000
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************
- * 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.modules.server;
-
-import java.io.FileNotFoundException;
-import java.util.List;
-
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.commons.lang.NotImplementedException;
-import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.metrics.es.ESMetricReporter;
-import org.apache.james.metrics.es.ESReporterConfiguration;
-import org.apache.james.modules.mailbox.ElasticSearchMailboxModule;
-import org.apache.james.utils.ConfigurationPerformer;
-import org.apache.james.utils.PropertiesProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.AbstractModule;
-import com.google.inject.Inject;
-import com.google.inject.Provides;
-import com.google.inject.Singleton;
-import com.google.inject.multibindings.Multibinder;
-
-public class ESMetricReporterModule extends AbstractModule {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(ESMetricReporterModule.class);
-    public static final boolean DEFAULT_DISABLE = false;
-    public static final int DEFAULT_ES_HTTP_PORT = 9200;
-
-    @Override
-    protected void configure() {
-        Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(ESMetricReporterStarter.class);
-    }
-
-    @Provides
-    public ESReporterConfiguration provideConfiguration(PropertiesProvider propertiesProvider) throws ConfigurationException {
-        try {
-            PropertiesConfiguration propertiesReader = propertiesProvider.getConfiguration(ElasticSearchMailboxModule.ELASTICSEARCH_CONFIGURATION_NAME);
-
-            if (isMetricEnable(propertiesReader)) {
-                return ESReporterConfiguration.builder()
-                    .enabled()
-                    .onHost(locateHost(propertiesReader),
-                        propertiesReader.getInt("elasticsearch.http.port", DEFAULT_ES_HTTP_PORT))
-                    .onIndex(propertiesReader.getString("elasticsearch.metrics.reports.index", null))
-                    .periodInSecond(propertiesReader.getLong("elasticsearch.metrics.reports.period", null))
-                    .build();
-            }
-        } catch (FileNotFoundException e) {
-            LOGGER.info("Can not locate " + ElasticSearchMailboxModule.ELASTICSEARCH_CONFIGURATION_NAME + " configuration");
-        }
-        return ESReporterConfiguration.builder()
-            .disabled()
-            .build();
-    }
-
-    private String locateHost(PropertiesConfiguration propertiesReader) {
-        return propertiesReader.getString("elasticsearch.http.host",
-            propertiesReader.getString(ElasticSearchMailboxModule.ELASTICSEARCH_MASTER_HOST));
-    }
-
-    private boolean isMetricEnable(PropertiesConfiguration propertiesReader) {
-        return propertiesReader.getBoolean("elasticsearch.metrics.reports.enabled", DEFAULT_DISABLE);
-    }
-
-    @Singleton
-    public static class ESMetricReporterStarter implements ConfigurationPerformer, Configurable {
-
-        private final ESMetricReporter esMetricReporter;
-
-        @Inject
-        public ESMetricReporterStarter(ESMetricReporter esMetricReporter) {
-            this.esMetricReporter = esMetricReporter;
-        }
-
-        @Override
-        public void initModule() {
-            esMetricReporter.start();
-        }
-
-        @Override
-        public List<Class<? extends Configurable>> forClasses() {
-            return ImmutableList.of(ESMetricReporterStarter.class);
-        }
-
-        @Override
-        public void configure(HierarchicalConfiguration config) throws ConfigurationException {
-            throw new NotImplementedException();
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/262da4da/server/container/guice/es-metric-reporter/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/es-metric-reporter/pom.xml b/server/container/guice/es-metric-reporter/pom.xml
new file mode 100644
index 0000000..171f012
--- /dev/null
+++ b/server/container/guice/es-metric-reporter/pom.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>james-server-guice</artifactId>
+        <groupId>org.apache.james</groupId>
+        <version>3.1.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>james-server-guice-es-resporter</artifactId>
+    <packaging>jar</packaging>
+
+    <name>Apache James :: Server :: Guice :: ES metric reporter</name>
+    <description>Guice module allowing to push metrics into ElasticSearch using HTTP</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-lifecycle-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-guice-common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>metrics-es-reporter</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.inject.extensions</groupId>
+            <artifactId>guice-multibindings</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-configuration</groupId>
+            <artifactId>commons-configuration</artifactId>
+        </dependency>
+    </dependencies>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/262da4da/server/container/guice/es-metric-reporter/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/es-metric-reporter/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java b/server/container/guice/es-metric-reporter/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java
new file mode 100644
index 0000000..43cf53e
--- /dev/null
+++ b/server/container/guice/es-metric-reporter/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java
@@ -0,0 +1,115 @@
+/****************************************************************
+ * 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.modules.server;
+
+import java.io.FileNotFoundException;
+import java.util.List;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.commons.configuration.PropertiesConfiguration;
+import org.apache.commons.lang.NotImplementedException;
+import org.apache.james.lifecycle.api.Configurable;
+import org.apache.james.metrics.es.ESMetricReporter;
+import org.apache.james.metrics.es.ESReporterConfiguration;
+import org.apache.james.utils.ConfigurationPerformer;
+import org.apache.james.utils.PropertiesProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.ImmutableList;
+import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Provides;
+import com.google.inject.Singleton;
+import com.google.inject.multibindings.Multibinder;
+
+public class ESMetricReporterModule extends AbstractModule {
+    private static final String ELASTICSEARCH_CONFIGURATION_NAME = "elasticsearch";
+    private static final String ELASTICSEARCH_MASTER_HOST = "elasticsearch.masterHost";
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(ESMetricReporterModule.class);
+
+    public static final boolean DEFAULT_DISABLE = false;
+    public static final int DEFAULT_ES_HTTP_PORT = 9200;
+
+    @Override
+    protected void configure() {
+        Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(ESMetricReporterStarter.class);
+    }
+
+    @Provides
+    public ESReporterConfiguration provideConfiguration(PropertiesProvider propertiesProvider) throws ConfigurationException {
+        try {
+            PropertiesConfiguration propertiesReader = propertiesProvider.getConfiguration(ELASTICSEARCH_CONFIGURATION_NAME);
+
+            if (isMetricEnable(propertiesReader)) {
+                return ESReporterConfiguration.builder()
+                    .enabled()
+                    .onHost(locateHost(propertiesReader),
+                        propertiesReader.getInt("elasticsearch.http.port", DEFAULT_ES_HTTP_PORT))
+                    .onIndex(propertiesReader.getString("elasticsearch.metrics.reports.index", null))
+                    .periodInSecond(propertiesReader.getLong("elasticsearch.metrics.reports.period", null))
+                    .build();
+            }
+        } catch (FileNotFoundException e) {
+            LOGGER.info("Can not locate " + ELASTICSEARCH_CONFIGURATION_NAME + " configuration");
+        }
+        return ESReporterConfiguration.builder()
+            .disabled()
+            .build();
+    }
+
+    private String locateHost(PropertiesConfiguration propertiesReader) {
+        return propertiesReader.getString("elasticsearch.http.host",
+            propertiesReader.getString(ELASTICSEARCH_MASTER_HOST));
+    }
+
+    private boolean isMetricEnable(PropertiesConfiguration propertiesReader) {
+        return propertiesReader.getBoolean("elasticsearch.metrics.reports.enabled", DEFAULT_DISABLE);
+    }
+
+    @Singleton
+    public static class ESMetricReporterStarter implements ConfigurationPerformer, Configurable {
+
+        private final ESMetricReporter esMetricReporter;
+
+        @Inject
+        public ESMetricReporterStarter(ESMetricReporter esMetricReporter) {
+            this.esMetricReporter = esMetricReporter;
+        }
+
+        @Override
+        public void initModule() {
+            esMetricReporter.start();
+        }
+
+        @Override
+        public List<Class<? extends Configurable>> forClasses() {
+            return ImmutableList.of(ESMetricReporterStarter.class);
+        }
+
+        @Override
+        public void configure(HierarchicalConfiguration config) throws ConfigurationException {
+            throw new NotImplementedException();
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/262da4da/server/container/guice/jpa-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/pom.xml b/server/container/guice/jpa-guice/pom.xml
index e4ca4bb..86e7b74 100644
--- a/server/container/guice/jpa-guice/pom.xml
+++ b/server/container/guice/jpa-guice/pom.xml
@@ -74,6 +74,10 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-guice-es-resporter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>james-server-guice-imap</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/262da4da/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java b/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
index 096559c..e47868c 100644
--- a/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
+++ b/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
@@ -33,6 +33,7 @@ import org.apache.james.modules.protocols.SMTPServerModule;
 import org.apache.james.modules.server.ActiveMQQueueModule;
 import org.apache.james.modules.server.DataRoutesModules;
 import org.apache.james.modules.server.DefaultProcessorsConfigurationProviderModule;
+import org.apache.james.modules.server.ESMetricReporterModule;
 import org.apache.james.modules.server.JMXServerModule;
 import org.apache.james.modules.server.MailboxRoutesModule;
 import org.apache.james.modules.server.NoJwtModule;
@@ -63,7 +64,8 @@ public class JPAJamesServerMain {
         new RawPostDequeueDecoratorModule(),
         new MailboxModule(),
         new NoJwtModule(),
-        new DefaultProcessorsConfigurationProviderModule());
+        new DefaultProcessorsConfigurationProviderModule(),
+        new ESMetricReporterModule());
 
     public static void main(String[] args) throws Exception {
         GuiceJamesServer server = new GuiceJamesServer()

http://git-wip-us.apache.org/repos/asf/james-project/blob/262da4da/server/container/guice/jpa-smtp/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-smtp/pom.xml b/server/container/guice/jpa-smtp/pom.xml
index d203b1d..90cf467 100644
--- a/server/container/guice/jpa-smtp/pom.xml
+++ b/server/container/guice/jpa-smtp/pom.xml
@@ -71,6 +71,10 @@
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-guice-es-resporter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>james-server-guice-smtp</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/262da4da/server/container/guice/jpa-smtp/src/main/java/org/apache/james/JPAJamesServerMain.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-smtp/src/main/java/org/apache/james/JPAJamesServerMain.java b/server/container/guice/jpa-smtp/src/main/java/org/apache/james/JPAJamesServerMain.java
index 87e602a..ea2fc04 100644
--- a/server/container/guice/jpa-smtp/src/main/java/org/apache/james/JPAJamesServerMain.java
+++ b/server/container/guice/jpa-smtp/src/main/java/org/apache/james/JPAJamesServerMain.java
@@ -27,6 +27,7 @@ import org.apache.james.modules.protocols.SMTPServerModule;
 import org.apache.james.modules.server.ActiveMQQueueModule;
 import org.apache.james.modules.server.DataRoutesModules;
 import org.apache.james.modules.server.DefaultProcessorsConfigurationProviderModule;
+import org.apache.james.modules.server.ESMetricReporterModule;
 import org.apache.james.modules.server.NoJwtModule;
 import org.apache.james.modules.server.RawPostDequeueDecoratorModule;
 import org.apache.james.modules.server.WebAdminServerModule;
@@ -49,7 +50,8 @@ public class JPAJamesServerMain {
         new JPADataModule(),
         (binder) -> binder.bind(EntityManagerFactory.class).toProvider(OpenJPAPersistence::getEntityManagerFactory),
         new ActiveMQQueueModule(),
-        new RawPostDequeueDecoratorModule());
+        new RawPostDequeueDecoratorModule(),
+        new ESMetricReporterModule());
 
     public static void main(String[] args) throws Exception {
         GuiceJamesServer server = new GuiceJamesServer()

http://git-wip-us.apache.org/repos/asf/james-project/blob/262da4da/server/container/guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/pom.xml b/server/container/guice/pom.xml
index ea7abfe..9000fb5 100644
--- a/server/container/guice/pom.xml
+++ b/server/container/guice/pom.xml
@@ -41,6 +41,11 @@
             </dependency>
             <dependency>
                 <groupId>${project.groupId}</groupId>
+                <artifactId>james-server-guice-es-resporter</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
                 <artifactId>james-server-guice-imap</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -129,6 +134,7 @@
         <module>cassandra-guice</module>
         <module>cassandra-ldap-guice</module>
         <module>custom-mailets</module>
+        <module>es-metric-reporter</module>
         <module>mailbox</module>
         <module>mailet</module>
         <module>memory-guice</module>


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[35/38] james-project git commit: JAMES-2114 Removing some commented logs

Posted by bt...@apache.org.
JAMES-2114 Removing some commented logs


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d56d0b16
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d56d0b16
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d56d0b16

Branch: refs/heads/master
Commit: d56d0b16e2314c2c89a0f42980a97a80767d1ed8
Parents: dc2a42e
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 15 14:41:35 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:44 2017 +0700

----------------------------------------------------------------------
 .../org/apache/james/rrt/lib/RecipientRewriteTableUtil.java   | 7 -------
 1 file changed, 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d56d0b16/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
index 91e5830..c3859e0 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/RecipientRewriteTableUtil.java
@@ -64,13 +64,6 @@ public class RecipientRewriteTableUtil {
         if (msgPos < identifierLength + 1)
             throw new PatternSyntaxException("Regex should be formatted as regex:<regular-expression>:<parameterized-string>", targetString, 0);
 
-        // log("regex: targetString = " + targetString);
-        // log("regex: msgPos = " + msgPos);
-        // log("regex: compile " + targetString.substring("regex:".length(),
-        // msgPos));
-        // log("regex: address = " + address.toString());
-        // log("regex: replace = " + targetString.substring(msgPos + 1));
-
         Pattern pattern = Pattern.compile(targetString.substring(identifierLength, msgPos));
         Matcher match = pattern.matcher(address.toString());
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[25/38] james-project git commit: JAMES-2114 Deprecate LogEnabled API

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java b/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
index 7c29393..56effd9 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
@@ -42,6 +42,8 @@ import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.util.sql.JDBCUtil;
 import org.apache.james.util.sql.SqlResources;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Class responsible to implement the Virtual User Table in database with JDBC
@@ -51,6 +53,7 @@ import org.apache.james.util.sql.SqlResources;
  */
 @Deprecated
 public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JDBCRecipientRewriteTable.class);
 
     private DataSource dataSource = null;
 
@@ -74,7 +77,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
      */
     private final JDBCUtil theJDBCUtil = new JDBCUtil() {
         protected void delegatedLog(String logString) {
-            getLogger().debug("JDBCRecipientRewriteTable: " + logString);
+            LOGGER.debug("JDBCRecipientRewriteTable: " + logString);
         }
     };
 
@@ -82,8 +85,8 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
     public void init() throws Exception {
 
         StringBuffer logBuffer;
-        if (getLogger().isDebugEnabled()) {
-            getLogger().debug(this.getClass().getName() + ".initialize()");
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug(this.getClass().getName() + ".initialize()");
         }
 
         // Test the connection to the database, by getting the DatabaseMetaData.
@@ -98,13 +101,13 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
             try {
                 sqlFile = fileSystem.getResource(sqlFileName);
             } catch (Exception e) {
-                getLogger().error(e.getMessage(), e);
+                LOGGER.error(e.getMessage(), e);
                 throw e;
             }
 
-            if (getLogger().isDebugEnabled()) {
+            if (LOGGER.isDebugEnabled()) {
                 logBuffer = new StringBuffer(128).append("Reading SQL resources from file: ").append(sqlFileName).append(", section ").append(this.getClass().getName()).append(".");
-                getLogger().debug(logBuffer.toString());
+                LOGGER.debug(logBuffer.toString());
             }
 
             // Build the statement parameters
@@ -128,9 +131,9 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
                 createStatement = conn.prepareStatement(sqlQueries.getSqlString("createTable", true));
                 createStatement.execute();
 
-                if (getLogger().isInfoEnabled()) {
+                if (LOGGER.isInfoEnabled()) {
                     logBuffer = new StringBuffer(64).append("JdbcVirtalUserTable: Created table '").append(tableName).append("'.");
-                    getLogger().info(logBuffer.toString());
+                    LOGGER.info(logBuffer.toString());
                 }
             }
 
@@ -185,9 +188,9 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
             tableName = urlParams.get(1);
         }
 
-        if (getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             String logBuffer = "Parsed URL: table = '" + tableName + "'";
-            getLogger().debug(logBuffer);
+            LOGGER.debug(logBuffer);
         }
 
         sqlFileName = conf.getString("sqlFile");
@@ -234,7 +237,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
             }
 
         } catch (SQLException sqle) {
-            getLogger().error("Error accessing database", sqle);
+            LOGGER.error("Error accessing database", sqle);
             throw new RecipientRewriteTableException("Error accessing database", sqle);
         } finally {
             theJDBCUtil.closeJDBCStatement(mappingStmt);
@@ -266,7 +269,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
                 theJDBCUtil.closeJDBCResultSet(mappingRS);
             }
         } catch (SQLException sqle) {
-            getLogger().error("Error accessing database", sqle);
+            LOGGER.error("Error accessing database", sqle);
             throw new RecipientRewriteTableException("Error accessing database", sqle);
         } finally {
             theJDBCUtil.closeJDBCStatement(mappingStmt);
@@ -302,7 +305,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
             }
 
         } catch (SQLException sqle) {
-            getLogger().error("Error accessing database", sqle);
+            LOGGER.error("Error accessing database", sqle);
             throw new RecipientRewriteTableException("Error accessing database", sqle);
         } finally {
             theJDBCUtil.closeJDBCStatement(mappingStmt);
@@ -362,7 +365,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
             }
 
         } catch (SQLException sqle) {
-            getLogger().error("Error accessing database", sqle);
+            LOGGER.error("Error accessing database", sqle);
             throw new RecipientRewriteTableException("Error accessing database", sqle);
         } finally {
             theJDBCUtil.closeJDBCStatement(mappingStmt);
@@ -403,7 +406,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
             }
 
         } catch (SQLException sqle) {
-            getLogger().error("Error accessing database", sqle);
+            LOGGER.error("Error accessing database", sqle);
         } finally {
             theJDBCUtil.closeJDBCStatement(mappingStmt);
             theJDBCUtil.closeJDBCConnection(conn);
@@ -444,7 +447,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
             }
 
         } catch (SQLException sqle) {
-            getLogger().error("Error accessing database", sqle);
+            LOGGER.error("Error accessing database", sqle);
         } finally {
             theJDBCUtil.closeJDBCStatement(mappingStmt);
             theJDBCUtil.closeJDBCConnection(conn);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java b/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
index d0dfc9d..88ede9e 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
@@ -45,6 +45,8 @@ import org.apache.james.user.api.model.User;
 import org.apache.james.user.lib.AbstractJamesUsersRepository;
 import org.apache.james.util.sql.JDBCUtil;
 import org.apache.james.util.sql.SqlResources;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * An abstract base class for creating UserRepository implementations which use
@@ -92,6 +94,7 @@ import org.apache.james.util.sql.SqlResources;
  */
 @Deprecated
 public abstract class AbstractJdbcUsersRepository extends AbstractJamesUsersRepository {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractJdbcUsersRepository.class);
 
     protected Map<String, String> m_sqlParameters;
 
@@ -245,14 +248,14 @@ public abstract class AbstractJdbcUsersRepository extends AbstractJamesUsersRepo
     @PostConstruct
     public void init() throws Exception {
         StringBuffer logBuffer;
-        if (getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             logBuffer = new StringBuffer(128).append(this.getClass().getName()).append(".initialize()");
-            getLogger().debug(logBuffer.toString());
+            LOGGER.debug(logBuffer.toString());
         }
 
         theJDBCUtil = new JDBCUtil() {
             protected void delegatedLog(String logString) {
-                AbstractJdbcUsersRepository.this.getLogger().warn("AbstractJdbcUsersRepository: " + logString);
+                AbstractJdbcUsersRepository.this.LOGGER.warn("AbstractJdbcUsersRepository: " + logString);
             }
         };
 
@@ -266,13 +269,13 @@ public abstract class AbstractJdbcUsersRepository extends AbstractJamesUsersRepo
             try {
                 sqlFile = fileSystem.getResource(m_sqlFileName);
             } catch (Exception e) {
-                getLogger().error(e.getMessage(), e);
+                LOGGER.error(e.getMessage(), e);
                 throw e;
             }
 
-            if (getLogger().isDebugEnabled()) {
+            if (LOGGER.isDebugEnabled()) {
                 logBuffer = new StringBuffer(256).append("Reading SQL resources from: ").append(m_sqlFileName).append(", section ").append(this.getClass().getName()).append(".");
-                getLogger().debug(logBuffer.toString());
+                LOGGER.debug(logBuffer.toString());
             }
 
             SqlResources sqlStatements = new SqlResources();
@@ -324,10 +327,10 @@ public abstract class AbstractJdbcUsersRepository extends AbstractJamesUsersRepo
                 }
 
                 logBuffer = new StringBuffer(128).append(this.getClass().getName()).append(": Created table \'").append(tableName).append("\'.");
-                getLogger().info(logBuffer.toString());
+                LOGGER.info(logBuffer.toString());
             } else {
-                if (getLogger().isDebugEnabled()) {
-                    getLogger().debug("Using table: " + tableName);
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("Using table: " + tableName);
                 }
             }
 
@@ -360,9 +363,9 @@ public abstract class AbstractJdbcUsersRepository extends AbstractJamesUsersRepo
      */
     protected void doConfigure(HierarchicalConfiguration configuration) throws ConfigurationException {
         StringBuffer logBuffer;
-        if (getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             logBuffer = new StringBuffer(64).append(this.getClass().getName()).append(".configure()");
-            getLogger().debug(logBuffer.toString());
+            LOGGER.debug(logBuffer.toString());
         }
 
         // Parse the DestinationURL for the name of the datasource,
@@ -400,9 +403,9 @@ public abstract class AbstractJdbcUsersRepository extends AbstractJamesUsersRepo
             throw new ConfigurationException("Malformed destinationURL - " + "Must be of the format \"db://<data-source>[/<table>[/<key>]]\".");
         }
 
-        if (getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             logBuffer = new StringBuffer(128).append("Parsed URL: table = '").append(m_sqlParameters.get("table")).append("', key = '").append(m_sqlParameters.get("key")).append("'");
-            getLogger().debug(logBuffer.toString());
+            LOGGER.debug(logBuffer.toString());
         }
 
         // Get the SQL file location

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCMailRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCMailRepositoryTest.java b/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCMailRepositoryTest.java
index 8a5ef6c..766df10 100644
--- a/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCMailRepositoryTest.java
+++ b/server/data/data-jdbc/src/test/java/org/apache/james/mailrepository/jdbc/JDBCMailRepositoryTest.java
@@ -27,7 +27,6 @@ import org.apache.derby.jdbc.EmbeddedDriver;
 import org.apache.james.filesystem.api.mock.MockFileSystem;
 import org.apache.james.mailrepository.AbstractMailRepositoryTest;
 import org.apache.james.mailrepository.api.MailRepository;
-import org.slf4j.LoggerFactory;
 
 public class JDBCMailRepositoryTest extends AbstractMailRepositoryTest {
 
@@ -49,7 +48,6 @@ public class JDBCMailRepositoryTest extends AbstractMailRepositoryTest {
         defaultConfiguration.addProperty("[@type]", "MAIL");
         mr.setFileSystem(fs);
         mr.setDatasource(datasource);
-        mr.setLog(LoggerFactory.getLogger("MockLog"));
         mr.configure(defaultConfiguration);
         mr.init();
         return mr;

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java b/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java
index 184c6a5..a2caeed 100644
--- a/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java
+++ b/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTableTest.java
@@ -25,7 +25,6 @@ import org.apache.james.filesystem.api.mock.MockFileSystem;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
-import org.slf4j.LoggerFactory;
 
 /**
  * Test the JDBC Virtual User Table implementation.
@@ -39,7 +38,6 @@ public class JDBCRecipientRewriteTableTest extends AbstractRecipientRewriteTable
     @Override
     protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
         JDBCRecipientRewriteTable localVirtualUserTable = new JDBCRecipientRewriteTable();
-        localVirtualUserTable.setLog(LoggerFactory.getLogger("MockLog"));
         localVirtualUserTable.setDataSource(getDataSource());
         localVirtualUserTable.setFileSystem(new MockFileSystem());
         DefaultConfigurationBuilder defaultConfiguration = new DefaultConfigurationBuilder();

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java b/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java
index c47a7a6..284b79d 100644
--- a/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java
+++ b/server/data/data-jdbc/src/test/java/org/apache/james/rrt/jdbc/JDBCStepdefs.java
@@ -26,7 +26,6 @@ import org.apache.derby.jdbc.EmbeddedDriver;
 import org.apache.james.filesystem.api.mock.MockFileSystem;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.RewriteTablesStepdefs;
-import org.slf4j.LoggerFactory;
 
 import cucumber.api.java.Before;
 
@@ -46,7 +45,6 @@ public class JDBCStepdefs {
     @SuppressWarnings("deprecation")
     protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
         JDBCRecipientRewriteTable localVirtualUserTable = new JDBCRecipientRewriteTable();
-        localVirtualUserTable.setLog(LoggerFactory.getLogger("MockLog"));
         localVirtualUserTable.setDataSource(getDataSource());
         localVirtualUserTable.setFileSystem(new MockFileSystem());
         DefaultConfigurationBuilder defaultConfiguration = new DefaultConfigurationBuilder();

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/DefaultUsersJdbcRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/DefaultUsersJdbcRepositoryTest.java b/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/DefaultUsersJdbcRepositoryTest.java
index 0dd74a2..90935d5 100644
--- a/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/DefaultUsersJdbcRepositoryTest.java
+++ b/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/DefaultUsersJdbcRepositoryTest.java
@@ -30,7 +30,6 @@ import org.apache.james.filesystem.api.mock.MockFileSystem;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.user.lib.AbstractUsersRepository;
-import org.slf4j.LoggerFactory;
 
 /**
  * Test basic behaviors of UsersFileRepository
@@ -62,7 +61,6 @@ public class DefaultUsersJdbcRepositoryTest extends AbstractUsersJdbcRepositoryT
         DefaultConfigurationBuilder configuration = new DefaultConfigurationBuilder();
         configuration.addProperty("[@destinationURL]", "db://maildb/" + tableString);
         configuration.addProperty("sqlFile", "file://conf/sqlResources.xml");
-        res.setLog(LoggerFactory.getLogger("MockLog"));
         res.configure(configuration);
         res.init();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/JamesUsersJdbcRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/JamesUsersJdbcRepositoryTest.java b/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/JamesUsersJdbcRepositoryTest.java
index 0af1eac..1e69cb8 100644
--- a/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/JamesUsersJdbcRepositoryTest.java
+++ b/server/data/data-jdbc/src/test/java/org/apache/james/user/jdbc/JamesUsersJdbcRepositoryTest.java
@@ -30,7 +30,6 @@ import org.apache.james.filesystem.api.mock.MockFileSystem;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.user.lib.AbstractUsersRepository;
-import org.slf4j.LoggerFactory;
 
 /**
  * Test basic behaviors of UsersFileRepository
@@ -60,7 +59,6 @@ public class JamesUsersJdbcRepositoryTest extends AbstractUsersJdbcRepositoryTes
         DefaultConfigurationBuilder configuration = new DefaultConfigurationBuilder();
         configuration.addProperty("[@destinationURL]", "db://maildb/" + tableString);
         configuration.addProperty("sqlFile", "file://conf/sqlResources.xml");
-        res.setLog(LoggerFactory.getLogger("MockLog"));
         res.configure(configuration);
         res.init();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java b/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
index 8d102eb..6188139 100644
--- a/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
+++ b/server/data/data-jpa/src/main/java/org/apache/james/domainlist/jpa/JPADomainList.java
@@ -35,6 +35,8 @@ import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.domainlist.jpa.model.JPADomain;
 import org.apache.james.domainlist.lib.AbstractDomainList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -44,6 +46,7 @@ import com.google.common.collect.ImmutableList;
  * database schema can be reused.
  */
 public class JPADomainList extends AbstractDomainList {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JPADomainList.class);
 
     /**
      * The entity manager to access the database.
@@ -83,7 +86,7 @@ public class JPADomainList extends AbstractDomainList {
             domains = entityManager.createNamedQuery("listDomainNames").getResultList();
             transaction.commit();
         } catch (PersistenceException e) {
-            getLogger().error("Failed to list domains", e);
+            LOGGER.error("Failed to list domains", e);
             rollback(transaction);
             throw new DomainListException("Unable to retrieve domains", e);
         } finally {
@@ -103,7 +106,7 @@ public class JPADomainList extends AbstractDomainList {
             transaction.commit();
             return result;
         } catch (PersistenceException e) {
-            getLogger().error("Failed to find domain", e);
+            LOGGER.error("Failed to find domain", e);
             rollback(transaction);
             throw new DomainListException("Unable to retrieve domains", e);
         } finally {
@@ -126,7 +129,7 @@ public class JPADomainList extends AbstractDomainList {
             entityManager.persist(jpaDomain);
             transaction.commit();
         } catch (PersistenceException e) {
-            getLogger().error("Failed to save domain", e);
+            LOGGER.error("Failed to save domain", e);
             rollback(transaction);
             throw new DomainListException("Unable to add domain " + domain, e);
         } finally {
@@ -148,7 +151,7 @@ public class JPADomainList extends AbstractDomainList {
             entityManager.createNamedQuery("deleteDomainByName").setParameter("name", lowerCasedDomain).executeUpdate();
             transaction.commit();
         } catch (PersistenceException e) {
-            getLogger().error("Failed to remove domain", e);
+            LOGGER.error("Failed to remove domain", e);
             rollback(transaction);
             throw new DomainListException("Unable to remove domain " + domain, e);
         } finally {
@@ -168,7 +171,7 @@ public class JPADomainList extends AbstractDomainList {
                 .setParameter("name", domain)
                 .getSingleResult() != null;
         } catch (NoResultException e) {
-            getLogger().debug("No domain found", e);
+            LOGGER.debug("No domain found", e);
             return false;
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java b/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
index 9ed56e0..b19760e 100644
--- a/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
+++ b/server/data/data-jpa/src/main/java/org/apache/james/rrt/jpa/JPARecipientRewriteTable.java
@@ -34,12 +34,15 @@ import org.apache.james.rrt.jpa.model.JPARecipientRewrite;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Class responsible to implement the Virtual User Table in database with JPA
  * access.
  */
 public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JPARecipientRewriteTable.class);
 
     /**
      * The entity manager to access the database.
@@ -98,7 +101,7 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
                 return virtualUsers.get(0).getTargetAddress();
             }
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to find mapping for  user=" + user + " and domain=" + domain, e);
+            LOGGER.debug("Failed to find mapping for  user=" + user + " and domain=" + domain, e);
             if (transaction.isActive()) {
                 transaction.rollback();
             }
@@ -125,7 +128,7 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
                 return MappingsImpl.fromRawString(virtualUsers.get(0).getTargetAddress());
             }
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to get user domain mappings", e);
+            LOGGER.debug("Failed to get user domain mappings", e);
             if (transaction.isActive()) {
                 transaction.rollback();
             }
@@ -156,7 +159,7 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
             if (mapping.size() > 0)
                 return mapping;
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to get all mappings", e);
+            LOGGER.debug("Failed to get all mappings", e);
             if (transaction.isActive()) {
                 transaction.rollback();
             }
@@ -204,7 +207,7 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
                 return true;
             }
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to update mapping", e);
+            LOGGER.debug("Failed to update mapping", e);
             if (transaction.isActive()) {
                 transaction.rollback();
             }
@@ -232,7 +235,7 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
             transaction.commit();
 
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to remove mapping", e);
+            LOGGER.debug("Failed to remove mapping", e);
             if (transaction.isActive()) {
                 transaction.rollback();
             }
@@ -260,7 +263,7 @@ public class JPARecipientRewriteTable extends AbstractRecipientRewriteTable {
             entityManager.persist(jpaRecipientRewrite);
             transaction.commit();
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to save virtual user", e);
+            LOGGER.debug("Failed to save virtual user", e);
             if (transaction.isActive()) {
                 transaction.rollback();
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java
index 26f7c17..64d18c0 100644
--- a/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java
+++ b/server/data/data-jpa/src/main/java/org/apache/james/user/jpa/JPAUsersRepository.java
@@ -37,6 +37,8 @@ import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.user.api.model.User;
 import org.apache.james.user.jpa.model.JPAUser;
 import org.apache.james.user.lib.AbstractUsersRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -44,6 +46,7 @@ import com.google.common.collect.ImmutableList;
  * JPA based UserRepository
  */
 public class JPAUsersRepository extends AbstractUsersRepository {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JPAUsersRepository.class);
 
     private EntityManagerFactory entityManagerFactory;
 
@@ -84,7 +87,7 @@ public class JPAUsersRepository extends AbstractUsersRepository {
         } catch (NoResultException e) {
             return null;
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to find user", e);
+            LOGGER.debug("Failed to find user", e);
             throw new UsersRepositoryException("Unable to search user", e);
         } finally {
             entityManager.close();
@@ -124,11 +127,11 @@ public class JPAUsersRepository extends AbstractUsersRepository {
                 entityManager.merge(user);
                 transaction.commit();
             } else {
-                getLogger().debug("User not found");
+                LOGGER.debug("User not found");
                 throw new UsersRepositoryException("User " + user.getUserName() + " not found");
             }
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to update user", e);
+            LOGGER.debug("Failed to update user", e);
             if (transaction.isActive()) {
                 transaction.rollback();
             }
@@ -158,7 +161,7 @@ public class JPAUsersRepository extends AbstractUsersRepository {
                 transaction.commit();
             }
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to remove user", e);
+            LOGGER.debug("Failed to remove user", e);
             if (transaction.isActive()) {
                 transaction.rollback();
             }
@@ -184,7 +187,7 @@ public class JPAUsersRepository extends AbstractUsersRepository {
                 .setParameter("name", name.toLowerCase(Locale.US))
                 .getSingleResult() > 0;
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to find user", e);
+            LOGGER.debug("Failed to find user", e);
             throw new UsersRepositoryException("Failed to find user" + name, e);
         } finally {
             entityManager.close();
@@ -223,7 +226,7 @@ public class JPAUsersRepository extends AbstractUsersRepository {
         try {
             return ((Long) entityManager.createNamedQuery("countUsers").getSingleResult()).intValue();
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to find user", e);
+            LOGGER.debug("Failed to find user", e);
             throw new UsersRepositoryException("Failed to count users", e);
         } finally {
             entityManager.close();
@@ -245,7 +248,7 @@ public class JPAUsersRepository extends AbstractUsersRepository {
             return ImmutableList.copyOf(entityManager.createNamedQuery("listUserNames").getResultList()).iterator();
 
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to find user", e);
+            LOGGER.debug("Failed to find user", e);
             throw new UsersRepositoryException("Failed to list users", e);
         } finally {
             entityManager.close();
@@ -287,7 +290,7 @@ public class JPAUsersRepository extends AbstractUsersRepository {
             entityManager.persist(user);
             transaction.commit();
         } catch (PersistenceException e) {
-            getLogger().debug("Failed to save user", e);
+            LOGGER.debug("Failed to save user", e);
             if (transaction.isActive()) {
                 transaction.rollback();
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java b/server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
index 3fd7e3d..04e8c61 100644
--- a/server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
+++ b/server/data/data-jpa/src/test/java/org/apache/james/domainlist/jpa/JPADomainListTest.java
@@ -22,7 +22,6 @@ import org.apache.james.backends.jpa.JpaTestCluster;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.jpa.model.JPADomain;
 import org.apache.james.domainlist.lib.AbstractDomainListTest;
-import org.slf4j.LoggerFactory;
 
 /**
  * Test the JPA implementation of the DomainList.
@@ -35,7 +34,6 @@ public class JPADomainListTest extends AbstractDomainListTest {
     protected DomainList createDomainList() {
         JPADomainList jpaDomainList = new JPADomainList(getDNSServer("localhost"),
             JPA_TEST_CLUSTER.getEntityManagerFactory());
-        jpaDomainList.setLog(LoggerFactory.getLogger("JPADomainListMockLog"));
         jpaDomainList.setAutoDetect(false);
         jpaDomainList.setAutoDetectIP(false);
         

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java b/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java
index 1a32d5f..e82f506 100644
--- a/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java
+++ b/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPARecipientRewriteTableTest.java
@@ -24,7 +24,6 @@ import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.jpa.model.JPARecipientRewrite;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
-import org.slf4j.LoggerFactory;
 
 /**
  * Test the JPA Virtual User Table implementation.
@@ -36,7 +35,6 @@ public class JPARecipientRewriteTableTest extends AbstractRecipientRewriteTableT
     @Override
     protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
         JPARecipientRewriteTable localVirtualUserTable = new JPARecipientRewriteTable();
-        localVirtualUserTable.setLog(LoggerFactory.getLogger("MockLog"));
         localVirtualUserTable.setEntityManagerFactory(JPA_TEST_CLUSTER.getEntityManagerFactory());
         DefaultConfigurationBuilder defaultConfiguration = new DefaultConfigurationBuilder();
         localVirtualUserTable.configure(defaultConfiguration);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java b/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java
index 214c367..93a320c 100644
--- a/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java
+++ b/server/data/data-jpa/src/test/java/org/apache/james/rrt/jpa/JPAStepdefs.java
@@ -23,7 +23,6 @@ import org.apache.james.backends.jpa.JpaTestCluster;
 import org.apache.james.rrt.jpa.model.JPARecipientRewrite;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.RewriteTablesStepdefs;
-import org.slf4j.LoggerFactory;
 
 import cucumber.api.java.After;
 import cucumber.api.java.Before;
@@ -50,7 +49,6 @@ public class JPAStepdefs {
 
     private AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
         JPARecipientRewriteTable localVirtualUserTable = new JPARecipientRewriteTable();
-        localVirtualUserTable.setLog(LoggerFactory.getLogger("MockLog"));
         localVirtualUserTable.setEntityManagerFactory(JPA_TEST_CLUSTER.getEntityManagerFactory());
         DefaultConfigurationBuilder defaultConfiguration = new DefaultConfigurationBuilder();
         localVirtualUserTable.configure(defaultConfiguration);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jpa/src/test/java/org/apache/james/user/jpa/JpaUsersRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jpa/src/test/java/org/apache/james/user/jpa/JpaUsersRepositoryTest.java b/server/data/data-jpa/src/test/java/org/apache/james/user/jpa/JpaUsersRepositoryTest.java
index 0ba2aee..63012b3 100644
--- a/server/data/data-jpa/src/test/java/org/apache/james/user/jpa/JpaUsersRepositoryTest.java
+++ b/server/data/data-jpa/src/test/java/org/apache/james/user/jpa/JpaUsersRepositoryTest.java
@@ -24,7 +24,6 @@ import org.apache.james.user.jpa.model.JPAUser;
 import org.apache.james.user.lib.AbstractUsersRepository;
 import org.apache.james.user.lib.AbstractUsersRepositoryTest;
 import org.junit.After;
-import org.slf4j.LoggerFactory;
 
 public class JpaUsersRepositoryTest extends AbstractUsersRepositoryTest {
 
@@ -39,7 +38,6 @@ public class JpaUsersRepositoryTest extends AbstractUsersRepositoryTest {
     @Override
     protected AbstractUsersRepository getUsersRepository() throws Exception {
         JPAUsersRepository repos = new JPAUsersRepository();
-        repos.setLog(LoggerFactory.getLogger("JPA"));
         repos.setEntityManagerFactory(JPA_TEST_CLUSTER.getEntityManagerFactory());
         repos.configure(new DefaultConfigurationBuilder());
         return repos;

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-ldap-integration-testing/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-ldap-integration-testing/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java b/server/data/data-ldap-integration-testing/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java
index cfc810d..01e21d1 100644
--- a/server/data/data-ldap-integration-testing/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java
+++ b/server/data/data-ldap-integration-testing/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java
@@ -60,7 +60,6 @@ public class ReadOnlyUsersLDAPRepositoryTest {
     private void startUsersRepository(HierarchicalConfiguration ldapRepositoryConfiguration) throws ConfigurationException, Exception {
         ldapRepository = new ReadOnlyUsersLDAPRepository();
         ldapRepository.configure(ldapRepositoryConfiguration);
-        ldapRepository.setLog(LOGGER);
         ldapRepository.init();
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
index 8991c41..25ab0b5 100644
--- a/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
+++ b/server/data/data-ldap/src/main/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepository.java
@@ -43,7 +43,6 @@ import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.commons.lang.StringUtils;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.user.api.model.User;
@@ -53,6 +52,7 @@ import org.apache.james.util.retry.api.RetrySchedule;
 import org.apache.james.util.retry.naming.ldap.RetryingLdapContext;
 import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Optional;
@@ -235,7 +235,8 @@ import com.google.common.base.Optional;
  * @see ReadOnlyLDAPGroupRestriction
  *
  */
-public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurable, LogEnabled {
+public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ReadOnlyUsersLDAPRepository.class);
 
     // The name of the factory class which creates the initial context
     // for the LDAP service provider
@@ -336,8 +337,6 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
     // retries.
     private int maxRetries = 0;
 
-    private Logger log;
-
     /**
      * Creates a new instance of ReadOnlyUsersLDAPRepository.
      *
@@ -415,8 +414,8 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
      */
     @PostConstruct
     public void init() throws Exception {
-        if (log.isDebugEnabled()) {
-            log.debug(this.getClass().getName() + ".init()" + '\n' + "LDAP host: " + ldapHost + '\n' + "User baseDN: " + userBase + '\n' + "userIdAttribute: " + userIdAttribute + '\n' + "Group restriction: " + restriction + '\n' + "UseConnectionPool: " + useConnectionPool + '\n' + "connectionTimeout: " + connectionTimeout + '\n' + "readTimeout: " + readTimeout + '\n' + "retrySchedule: " + schedule + '\n' + "maxRetries: " + maxRetries + '\n');
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug(this.getClass().getName() + ".init()" + '\n' + "LDAP host: " + ldapHost + '\n' + "User baseDN: " + userBase + '\n' + "userIdAttribute: " + userIdAttribute + '\n' + "Group restriction: " + restriction + '\n' + "UseConnectionPool: " + useConnectionPool + '\n' + "connectionTimeout: " + connectionTimeout + '\n' + "readTimeout: " + readTimeout + '\n' + "retrySchedule: " + schedule + '\n' + "maxRetries: " + maxRetries + '\n');
         }
         // Setup the initial LDAP context
         updateLdapContext();
@@ -447,7 +446,7 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
      *             Propagated from underlying LDAP communication API.
      */
     protected LdapContext computeLdapContext() throws NamingException {
-        return new RetryingLdapContext(schedule, maxRetries, log) {
+        return new RetryingLdapContext(schedule, maxRetries) {
 
             @Override
             public Context newDelegate() throws NamingException {
@@ -656,7 +655,7 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
         try {
             return getValidUsers().size();
         } catch (NamingException e) {
-            log.error("Unable to retrieve user count from ldap", e);
+            LOGGER.error("Unable to retrieve user count from ldap", e);
             throw new UsersRepositoryException("Unable to retrieve user count from ldap", e);
 
         }
@@ -684,7 +683,7 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
         try {
           return searchAndBuildUser(name);
         } catch (NamingException e) {
-            log.error("Unable to retrieve user from ldap", e);
+            LOGGER.error("Unable to retrieve user from ldap", e);
             throw new UsersRepositoryException("Unable to retrieve user from ldap", e);
 
         }
@@ -705,7 +704,7 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
             }
 
         } catch (NamingException e) {
-            log.error("Unable to retrieve user from ldap", e);
+            LOGGER.error("Unable to retrieve user from ldap", e);
             throw new UsersRepositoryException("Unable to retrieve user from ldap", e);
 
         }
@@ -755,7 +754,7 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
      * @see UsersRepository#removeUser(java.lang.String)
      */
     public void removeUser(String name) throws UsersRepositoryException {
-        log.warn("This user-repository is read-only. Modifications are not permitted.");
+        LOGGER.warn("This user-repository is read-only. Modifications are not permitted.");
         throw new UsersRepositoryException(
                 "This user-repository is read-only. Modifications are not permitted.");
 
@@ -773,7 +772,7 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
      * @see UsersRepository#addUser(java.lang.String, java.lang.String)
      */
     public void addUser(String username, String password) throws UsersRepositoryException {
-        log.error("This user-repository is read-only. Modifications are not permitted.");
+        LOGGER.error("This user-repository is read-only. Modifications are not permitted.");
         throw new UsersRepositoryException(
                 "This user-repository is read-only. Modifications are not permitted.");
     }
@@ -781,19 +780,12 @@ public class ReadOnlyUsersLDAPRepository implements UsersRepository, Configurabl
     /**
      */
     public void updateUser(User user) throws UsersRepositoryException {
-        log.error("This user-repository is read-only. Modifications are not permitted.");
+        LOGGER.error("This user-repository is read-only. Modifications are not permitted.");
         throw new UsersRepositoryException(
                 "This user-repository is read-only. Modifications are not permitted.");
     }
 
     /**
-     * @see org.apache.james.lifecycle.api.LogEnabled#setLog(org.slf4j.Logger)
-     */
-    public void setLog(Logger log) {
-        this.log = log;
-    }
-
-    /**
      * VirtualHosting not supported
      */
     public boolean supportVirtualHosting() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java b/server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java
index 1457122..517b9b2 100644
--- a/server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java
+++ b/server/data/data-ldap/src/test/java/org/apache/james/user/ldap/ReadOnlyUsersLDAPRepositoryTest.java
@@ -28,20 +28,15 @@ import org.apache.commons.configuration.plist.PropertyListConfiguration;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class ReadOnlyUsersLDAPRepositoryTest {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(ReadOnlyUsersLDAPRepositoryTest.class);
-
     @Rule
     public ExpectedException expectedException = ExpectedException.none();
 
     @Test
     public void supportVirtualHostingShouldReturnFalseByDefault() throws Exception {
         ReadOnlyUsersLDAPRepository usersLDAPRepository = new ReadOnlyUsersLDAPRepository();
-        usersLDAPRepository.setLog(LOGGER);
         usersLDAPRepository.configure(ldapRepositoryConfiguration());
 
         assertThat(usersLDAPRepository.supportVirtualHosting()).isFalse();
@@ -53,7 +48,6 @@ public class ReadOnlyUsersLDAPRepositoryTest {
         configuration.addProperty(ReadOnlyUsersLDAPRepository.SUPPORTS_VIRTUAL_HOSTING, "true");
 
         ReadOnlyUsersLDAPRepository usersLDAPRepository = new ReadOnlyUsersLDAPRepository();
-        usersLDAPRepository.setLog(LOGGER);
         usersLDAPRepository.configure(configuration);
 
         assertThat(usersLDAPRepository.supportVirtualHosting()).isTrue();
@@ -65,7 +59,6 @@ public class ReadOnlyUsersLDAPRepositoryTest {
         configuration.addProperty(ReadOnlyUsersLDAPRepository.SUPPORTS_VIRTUAL_HOSTING, "false");
 
         ReadOnlyUsersLDAPRepository usersLDAPRepository = new ReadOnlyUsersLDAPRepository();
-        usersLDAPRepository.setLog(LOGGER);
         usersLDAPRepository.configure(configuration);
 
         assertThat(usersLDAPRepository.supportVirtualHosting()).isFalse();
@@ -77,7 +70,6 @@ public class ReadOnlyUsersLDAPRepositoryTest {
         configuration.addProperty(ReadOnlyUsersLDAPRepository.SUPPORTS_VIRTUAL_HOSTING, "bad");
 
         ReadOnlyUsersLDAPRepository usersLDAPRepository = new ReadOnlyUsersLDAPRepository();
-        usersLDAPRepository.setLog(LOGGER);
 
         expectedException.expect(ConversionException.class);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
index 35fdfdb..4582006 100644
--- a/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
+++ b/server/data/data-library/src/main/java/org/apache/james/domainlist/lib/AbstractDomainList.java
@@ -32,7 +32,6 @@ import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -46,7 +45,7 @@ import com.google.common.collect.ImmutableList;
  * All implementations of the DomainList interface should extends this abstract
  * class
  */
-public abstract class AbstractDomainList implements DomainList, LogEnabled, Configurable {
+public abstract class AbstractDomainList implements DomainList, Configurable {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(AbstractDomainList.class);
 
@@ -61,7 +60,6 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf
     private final EnvDetector envDetector;
     private boolean autoDetect = true;
     private boolean autoDetectIP = true;
-    private Logger logger;
     private String defaultDomain;
 
     public AbstractDomainList(DNSService dns, EnvDetector envDetector) {
@@ -73,14 +71,6 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf
         this(dns, new EnvDetector());
     }
 
-    public void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
-    protected Logger getLogger() {
-        return logger;
-    }
-
     @Override
     public void configure(HierarchicalConfiguration config) throws ConfigurationException {
         setAutoDetect(config.getBoolean(CONFIGURE_AUTODETECT, true));
@@ -170,9 +160,9 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf
         mutableDomains.addAll(detectedDomains);
         mutableDomains.addAll(detectIps(mutableDomains));
 
-        if (getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             for (String domain : mutableDomains) {
-                getLogger().debug("Handling mail for: " + domain);
+                LOGGER.debug("Handling mail for: " + domain);
             }
         }
 
@@ -181,7 +171,7 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf
 
     private List<String> detectIps(ArrayList<String> mutableDomains) {
         if (autoDetectIP) {
-            return getDomainsIP(mutableDomains, dns, getLogger());
+            return getDomainsIP(mutableDomains, dns, LOGGER);
         }
         return ImmutableList.of();
     }
@@ -195,7 +185,7 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf
                 hostName = "localhost";
             }
 
-            getLogger().info("Local host is: " + hostName);
+            LOGGER.info("Local host is: " + hostName);
             if (hostName != null && !hostName.equals("localhost")) {
                 return ImmutableList.of(hostName.toLowerCase(Locale.US));
             }
@@ -240,7 +230,7 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf
      *            set to <code>false</code> for disable
      */
     public synchronized void setAutoDetect(boolean autoDetect) {
-        getLogger().info("Set autodetect to: " + autoDetect);
+        LOGGER.info("Set autodetect to: " + autoDetect);
         this.autoDetect = autoDetect;
     }
 
@@ -252,7 +242,7 @@ public abstract class AbstractDomainList implements DomainList, LogEnabled, Conf
      *            set to <code>false</code> for disable
      */
     public synchronized void setAutoDetectIP(boolean autoDetectIP) {
-        getLogger().info("Set autodetectIP to: " + autoDetectIP);
+        LOGGER.info("Set autodetectIP to: " + autoDetectIP);
         this.autoDetectIP = autoDetectIP;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-library/src/main/java/org/apache/james/mailrepository/lib/AbstractMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/mailrepository/lib/AbstractMailRepository.java b/server/data/data-library/src/main/java/org/apache/james/mailrepository/lib/AbstractMailRepository.java
index ac4a1ba..427979b 100644
--- a/server/data/data-library/src/main/java/org/apache/james/mailrepository/lib/AbstractMailRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/mailrepository/lib/AbstractMailRepository.java
@@ -27,17 +27,18 @@ import javax.mail.MessagingException;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.repository.api.Initializable;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This class represent an AbstractMailRepository. All MailRepositories should
  * extend this class.
  */
-public abstract class AbstractMailRepository implements MailRepository, LogEnabled, Configurable, Initializable {
+public abstract class AbstractMailRepository implements MailRepository, Configurable, Initializable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractMailRepository.class);
 
     /**
      * Whether 'deep debugging' is turned on.
@@ -50,16 +51,6 @@ public abstract class AbstractMailRepository implements MailRepository, LogEnabl
      */
     private final Lock lock = new Lock();
 
-    private Logger logger;
-
-    public void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
-    protected Logger getLogger() {
-        return logger;
-    }
-
     public void configure(HierarchicalConfiguration configuration) throws ConfigurationException {
         doConfigure(configuration);
     }
@@ -98,10 +89,10 @@ public abstract class AbstractMailRepository implements MailRepository, LogEnabl
             }
             internalStore(mc);
         } catch (MessagingException e) {
-            getLogger().error("Exception caught while storing mail " + key, e);
+            LOGGER.error("Exception caught while storing mail " + key, e);
             throw e;
         } catch (Exception e) {
-            getLogger().error("Exception caught while storing mail " + key, e);
+            LOGGER.error("Exception caught while storing mail " + key, e);
             throw new MessagingException("Exception caught while storing mail " + key, e);
         } finally {
             if (!wasLocked) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java b/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
index 2472fed..038982f 100644
--- a/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/repository/file/AbstractFileRepository.java
@@ -38,14 +38,15 @@ import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.commons.io.FileUtils;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.repository.api.Repository;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This an abstract class implementing functionality for creating a file-store.
  */
-public abstract class AbstractFileRepository implements Repository, Configurable, LogEnabled {
+public abstract class AbstractFileRepository implements Repository, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractFileRepository.class);
 
     protected static final boolean DEBUG = false;
 
@@ -63,8 +64,6 @@ public abstract class AbstractFileRepository implements Repository, Configurable
 
     private FileSystem fileSystem;
 
-    private Logger logger;
-
     private String destination;
 
     public void configure(HierarchicalConfiguration configuration) throws ConfigurationException {
@@ -76,20 +75,11 @@ public abstract class AbstractFileRepository implements Repository, Configurable
         this.fileSystem = fileSystem;
     }
 
-    public void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
-    protected Logger getLogger() {
-        return logger;
-    }
-
     protected abstract String getExtensionDecorator();
 
     @PostConstruct
     public void init() throws Exception {
-
-        getLogger().info("Init " + getClass().getName() + " Store");
+        LOGGER.info("Init " + getClass().getName() + " Store");
         setDestination(destination);
 
         File directory;
@@ -108,7 +98,7 @@ public abstract class AbstractFileRepository implements Repository, Configurable
 
         FileUtils.forceMkdir(directory);
 
-        getLogger().info(getClass().getName() + " opened in " + m_baseDirectory);
+        LOGGER.info(getClass().getName() + " opened in " + m_baseDirectory);
 
         // We will look for all numbered repository files in this
         // directory and rename them to non-numbered repositories,
@@ -131,9 +121,9 @@ public abstract class AbstractFileRepository implements Repository, Configurable
             File newFile = new File(directory, newFilename);
 
             if (origFile.renameTo(newFile)) {
-                getLogger().info("Renamed {} to {}", origFile, newFile);
+                LOGGER.info("Renamed {} to {}", origFile, newFile);
             } else {
-                getLogger().info("Unable to rename {} to {}", origFile, newFile);
+                LOGGER.info("Unable to rename {} to {}", origFile, newFile);
             }
         }
 
@@ -185,7 +175,6 @@ public abstract class AbstractFileRepository implements Repository, Configurable
         }
 
         child.setFileSystem(fileSystem);
-        child.setLog(logger);
 
         try {
             child.setDestination(m_baseDirectory.getAbsolutePath() + File.pathSeparatorChar + childName + File.pathSeparator);
@@ -200,7 +189,7 @@ public abstract class AbstractFileRepository implements Repository, Configurable
         }
 
         if (DEBUG) {
-            getLogger().debug("Child repository of " + m_name + " created in " + m_baseDirectory + File.pathSeparatorChar + childName + File.pathSeparator);
+            LOGGER.debug("Child repository of " + m_name + " created in " + m_baseDirectory + File.pathSeparatorChar + childName + File.pathSeparator);
         }
 
         return child;
@@ -280,7 +269,7 @@ public abstract class AbstractFileRepository implements Repository, Configurable
         try {
             final File file = getFile(key);
             if (DEBUG)
-                getLogger().debug("checking key " + key);
+                LOGGER.debug("checking key " + key);
             return file.exists();
         } catch (Exception e) {
             throw new RuntimeException("Exception caught while searching " + "an object: " + e);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentObjectRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentObjectRepository.java b/server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentObjectRepository.java
index 8397ac6..00e692e 100644
--- a/server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentObjectRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentObjectRepository.java
@@ -25,12 +25,15 @@ import java.io.ObjectOutputStream;
 import java.io.OutputStream;
 
 import org.apache.james.repository.api.ObjectRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This is a simple implementation of persistent object store using object
  * serialization on the file system.
  */
 public class FilePersistentObjectRepository extends AbstractFileRepository implements ObjectRepository {
+    private static final Logger LOGGER = LoggerFactory.getLogger(FilePersistentObjectRepository.class);
 
     /**
      * @see
@@ -55,7 +58,7 @@ public class FilePersistentObjectRepository extends AbstractFileRepository imple
 
                 final Object object = stream.readObject();
                 if (DEBUG) {
-                    getLogger().debug("returning object " + object + " for key " + key);
+                    LOGGER.debug("returning object " + object + " for key " + key);
                 }
                 return object;
             } finally {
@@ -84,7 +87,7 @@ public class FilePersistentObjectRepository extends AbstractFileRepository imple
                 final Object object = stream.readObject();
 
                 if (DEBUG) {
-                    getLogger().debug("returning object " + object + " for key " + key);
+                    LOGGER.debug("returning object " + object + " for key " + key);
                 }
                 return object;
             } finally {
@@ -107,7 +110,7 @@ public class FilePersistentObjectRepository extends AbstractFileRepository imple
             final ObjectOutputStream stream = new ObjectOutputStream(outputStream);
             stream.writeObject(value);
             if (DEBUG)
-                getLogger().debug("storing object " + value + " for key " + key);
+                LOGGER.debug("storing object " + value + " for key " + key);
         } catch (Exception e) {
             throw new RuntimeException("Exception caught while storing an object: " + e);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentStreamRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentStreamRepository.java b/server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentStreamRepository.java
index 5c5329d..5c304f5 100644
--- a/server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentStreamRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/repository/file/FilePersistentStreamRepository.java
@@ -20,19 +20,22 @@
 
 package org.apache.james.repository.file;
 
-import org.apache.james.repository.api.StreamRepository;
-
 import java.io.BufferedOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import org.apache.james.repository.api.StreamRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * Implementation of a StreamRepository to a File.<br>
  * TODO: -retieve(String key) should return a FilterInputStream to allow
  * mark and reset methods. (working not like BufferedInputStream!!!)
  */
 public class FilePersistentStreamRepository extends AbstractFileRepository implements StreamRepository {
+    private static final Logger LOGGER = LoggerFactory.getLogger(FilePersistentStreamRepository.class);
 
     @Override
     protected String getExtensionDecorator() {
@@ -46,7 +49,7 @@ public class FilePersistentStreamRepository extends AbstractFileRepository imple
             return getInputStream(key);
         } catch (IOException ioe) {
             final String message = "Exception caught while retrieving a stream ";
-            getLogger().warn(message, ioe);
+            LOGGER.warn(message, ioe);
             throw new RuntimeException(message + ": " + ioe);
         }
     }
@@ -59,7 +62,7 @@ public class FilePersistentStreamRepository extends AbstractFileRepository imple
             return new BufferedOutputStream(outputStream);
         } catch (IOException ioe) {
             final String message = "Exception caught while storing a stream ";
-            getLogger().warn(message, ioe);
+            LOGGER.warn(message, ioe);
             throw new RuntimeException(message + ": " + ioe);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
index 2b8fafa..0680e6a 100644
--- a/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
+++ b/server/data/data-library/src/main/java/org/apache/james/rrt/lib/AbstractRecipientRewriteTable.java
@@ -31,26 +31,26 @@ import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.Mapping.Type;
 import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 
 /**
  * 
  */
-public abstract class AbstractRecipientRewriteTable implements RecipientRewriteTable, LogEnabled, Configurable {
+public abstract class AbstractRecipientRewriteTable implements RecipientRewriteTable, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractRecipientRewriteTable.class);
+
     // The maximum mappings which will process before throwing exception
     private int mappingLimit = 10;
 
     private boolean recursive = true;
 
-    private Logger logger;
-
     private DomainList domainList;
 
     @Inject
@@ -71,10 +71,6 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
         doConfigure(config);
     }
 
-    public void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
     /**
      * Override to handle config
      * 
@@ -132,7 +128,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
                         try {
                             target = RecipientRewriteTableUtil.regexMap(new MailAddress(user, domain), target);
                         } catch (PatternSyntaxException | ParseException e) {
-                            getLogger().error("Exception during regexMap processing: ", e);
+                            LOGGER.error("Exception during regexMap processing: ", e);
                         }
                     } else if (target.startsWith(RecipientRewriteTable.ALIASDOMAIN_PREFIX)) {
                         target = user + "@" + target.substring(RecipientRewriteTable.ALIASDOMAIN_PREFIX.length());
@@ -142,7 +138,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
                         continue;
 
                     String buf = "Valid virtual user mapping " + user + "@" + domain + " to " + target;
-                    getLogger().debug(buf);
+                    LOGGER.debug(buf);
 
                     if (recursive) {
 
@@ -198,7 +194,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
         }
 
         checkMapping(user, domain, regex);
-        getLogger().info("Add regex mapping => " + regex + " for user: " + user + " domain: " + domain);
+        LOGGER.info("Add regex mapping => " + regex + " for user: " + user + " domain: " + domain);
         addMappingInternal(user, domain, RecipientRewriteTable.REGEX_PREFIX + regex);
 
     }
@@ -208,7 +204,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      *      java.lang.String, java.lang.String)
      */
     public void removeRegexMapping(String user, String domain, String regex) throws RecipientRewriteTableException {
-        getLogger().info("Remove regex mapping => " + regex + " for user: " + user + " domain: " + domain);
+        LOGGER.info("Remove regex mapping => " + regex + " for user: " + user + " domain: " + domain);
         removeMappingInternal(user, domain, RecipientRewriteTable.REGEX_PREFIX + regex);
     }
 
@@ -230,7 +226,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
             throw new RecipientRewriteTableException("Invalid emailAddress: " + address, e);
         }
         checkMapping(user, domain, address);
-        getLogger().info("Add address mapping => " + address + " for user: " + user + " domain: " + domain);
+        LOGGER.info("Add address mapping => " + address + " for user: " + user + " domain: " + domain);
         addMappingInternal(user, domain, address);
 
     }
@@ -247,7 +243,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
                 throw new RecipientRewriteTableException("Unable to retrieve default domain", e);
             }
         }
-        getLogger().info("Remove address mapping => " + address + " for user: " + user + " domain: " + domain);
+        LOGGER.info("Remove address mapping => " + address + " for user: " + user + " domain: " + domain);
         removeMappingInternal(user, domain, address);
     }
 
@@ -257,7 +253,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      */
     public void addErrorMapping(String user, String domain, String error) throws RecipientRewriteTableException {
         checkMapping(user, domain, error);
-        getLogger().info("Add error mapping => " + error + " for user: " + user + " domain: " + domain);
+        LOGGER.info("Add error mapping => " + error + " for user: " + user + " domain: " + domain);
         addMappingInternal(user, domain, RecipientRewriteTable.ERROR_PREFIX + error);
 
     }
@@ -267,7 +263,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      *      java.lang.String, java.lang.String)
      */
     public void removeErrorMapping(String user, String domain, String error) throws RecipientRewriteTableException {
-        getLogger().info("Remove error mapping => " + error + " for user: " + user + " domain: " + domain);
+        LOGGER.info("Remove error mapping => " + error + " for user: " + user + " domain: " + domain);
         removeMappingInternal(user, domain, RecipientRewriteTable.ERROR_PREFIX + error);
     }
 
@@ -325,7 +321,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
         if (mappings != null) {
             count = mappings.size();
         }
-        getLogger().debug("Retrieve all mappings. Mapping count: " + count);
+        LOGGER.debug("Retrieve all mappings. Mapping count: " + count);
         return mappings;
     }
 
@@ -342,7 +338,7 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      *      java.lang.String)
      */
     public void addAliasDomainMapping(String aliasDomain, String realDomain) throws RecipientRewriteTableException {
-        getLogger().info("Add domain mapping: " + aliasDomain + " => " + realDomain);
+        LOGGER.info("Add domain mapping: " + aliasDomain + " => " + realDomain);
         addMappingInternal(null, aliasDomain, RecipientRewriteTable.ALIASDOMAIN_PREFIX + realDomain);
     }
 
@@ -351,14 +347,10 @@ public abstract class AbstractRecipientRewriteTable implements RecipientRewriteT
      *      java.lang.String)
      */
     public void removeAliasDomainMapping(String aliasDomain, String realDomain) throws RecipientRewriteTableException {
-        getLogger().info("Remove domain mapping: " + aliasDomain + " => " + realDomain);
+        LOGGER.info("Remove domain mapping: " + aliasDomain + " => " + realDomain);
         removeMappingInternal(null, aliasDomain, RecipientRewriteTable.ALIASDOMAIN_PREFIX + realDomain);
     }
 
-    protected Logger getLogger() {
-        return logger;
-    }
-
     /**
      * Add new mapping
      * 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java
index 697bdc7..89ca24c 100644
--- a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractJamesUsersRepository.java
@@ -36,6 +36,8 @@ import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.user.api.model.JamesUser;
 import org.apache.james.user.api.model.User;
 import org.apache.james.user.lib.model.DefaultJamesUser;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A partial implementation of a Repository to store users.
@@ -48,6 +50,7 @@ import org.apache.james.user.lib.model.DefaultJamesUser;
  */
 @Deprecated
 public abstract class AbstractJamesUsersRepository extends AbstractUsersRepository implements JamesUsersRepository, RecipientRewriteTable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractJamesUsersRepository.class);
 
     /**
      * Ignore case in usernames
@@ -142,7 +145,7 @@ public abstract class AbstractJamesUsersRepository extends AbstractUsersReposito
                         mappingsBuilder.add(forward);
                     } else {
                         String errorBuffer = "Forwarding was enabled for " + username + " but no forwarding address was set for this account.";
-                        getLogger().error(errorBuffer);
+                        LOGGER.error(errorBuffer);
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
index bd9a9d2..edd2585 100644
--- a/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
+++ b/server/data/data-library/src/main/java/org/apache/james/user/lib/AbstractUsersRepository.java
@@ -26,34 +26,20 @@ import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.user.api.AlreadyExistInUsersRepositoryException;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.mailet.MailAddress;
-import org.slf4j.Logger;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Optional;
 
-public abstract class AbstractUsersRepository implements UsersRepository, LogEnabled, Configurable {
+public abstract class AbstractUsersRepository implements UsersRepository, Configurable {
 
     private DomainList domainList;
     private boolean virtualHosting;
-    private Logger logger;
     private Optional<String> administratorId;
 
-    protected Logger getLogger() {
-        return logger;
-    }
-
-    /**
-     * @see org.apache.james.lifecycle.api.LogEnabled#setLog(org.slf4j.Logger)
-     */
-    public void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
     /**
      * @see
      * org.apache.james.lifecycle.api.Configurable#configure(org.apache.commons.configuration.HierarchicalConfiguration)

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java b/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
index 555d75b..bdeaef9 100644
--- a/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
+++ b/server/data/data-library/src/test/java/org/apache/james/domainlist/lib/AbstractDomainListPrivateMethodsTest.java
@@ -34,15 +34,11 @@ import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.DomainListException;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
 public class AbstractDomainListPrivateMethodsTest {
-
-    public static final Logger LOGGER = LoggerFactory.getLogger(AbstractDomainListPrivateMethodsTest.class);
     private MyDomainList domainList;
     private DNSService dnsService;
     private EnvDetector envDetector;
@@ -52,7 +48,6 @@ public class AbstractDomainListPrivateMethodsTest {
         dnsService = mock(DNSService.class);
         envDetector = mock(EnvDetector.class);
         domainList = new MyDomainList(dnsService, envDetector);
-        domainList.setLog(LOGGER);
     }
 
     private static class MyDomainList extends AbstractDomainList {
@@ -188,7 +183,6 @@ public class AbstractDomainListPrivateMethodsTest {
 
         when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, true)).thenReturn(true);
         when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, true)).thenReturn(false);
-        domainList.setLog(LOGGER);
         domainList.configure(configuration);
 
         String detected = "detected.tld";
@@ -203,7 +197,6 @@ public class AbstractDomainListPrivateMethodsTest {
 
         when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, true)).thenReturn(true);
         when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, true)).thenReturn(true);
-        domainList.setLog(LOGGER);
         domainList.configure(configuration);
 
         String detected = "detected.tld";
@@ -222,7 +215,6 @@ public class AbstractDomainListPrivateMethodsTest {
 
         when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, true)).thenReturn(true);
         when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, true)).thenReturn(true);
-        domainList.setLog(LOGGER);
         domainList.configure(configuration);
 
         String added = "added.tld";

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java b/server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java
index 6b0e056..f6f06f9 100644
--- a/server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java
+++ b/server/data/data-memory/src/test/java/org/apache/james/domainlist/memory/MemoryDomainListTest.java
@@ -21,14 +21,12 @@ package org.apache.james.domainlist.memory;
 
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.lib.AbstractDomainListTest;
-import org.slf4j.LoggerFactory;
 
 public class MemoryDomainListTest extends AbstractDomainListTest {
 
     @Override
     protected DomainList createDomainList() {
         MemoryDomainList testee = new MemoryDomainList(getDNSServer("localhost"));
-        testee.setLog(LoggerFactory.getLogger(getClass()));
         testee.setAutoDetect(false);
         testee.setAutoDetectIP(false);
         return testee;

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
index 80032d9..210e56f 100644
--- a/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
+++ b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryRecipientRewriteTableTest.java
@@ -23,14 +23,12 @@ import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
-import org.slf4j.LoggerFactory;
 
 public class InMemoryRecipientRewriteTableTest extends AbstractRecipientRewriteTableTest {
 
     @Override
     protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
         AbstractRecipientRewriteTable rrt = new MemoryRecipientRewriteTable();
-        rrt.setLog(LoggerFactory.getLogger("MockLog"));
         rrt.configure(new DefaultConfigurationBuilder());
         return rrt;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryStepdefs.java
----------------------------------------------------------------------
diff --git a/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryStepdefs.java b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryStepdefs.java
index 118d3fd..03be5ba 100644
--- a/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryStepdefs.java
+++ b/server/data/data-memory/src/test/java/org/apache/james/rrt/memory/InMemoryStepdefs.java
@@ -22,7 +22,6 @@ package org.apache.james.rrt.memory;
 import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.RewriteTablesStepdefs;
-import org.slf4j.LoggerFactory;
 
 import cucumber.api.java.Before;
 
@@ -41,7 +40,6 @@ public class InMemoryStepdefs {
 
     private AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
         MemoryRecipientRewriteTable rrt = new MemoryRecipientRewriteTable();
-        rrt.setLog(LoggerFactory.getLogger("MockLog"));
         rrt.configure(new DefaultConfigurationBuilder());
         return rrt;
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[32/38] james-project git commit: JAMES-2114 Deprecate the mailet Logging APIs

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java
index d2ab11b..a8cf514 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ContentReplacer.java
@@ -30,19 +30,19 @@ import javax.mail.internet.ParseException;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
-import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Strings;
 
 public class ContentReplacer {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ContentReplacer.class);
 
     private final boolean debug;
-    private final GenericMailet logOwner;
 
-    public ContentReplacer(boolean debug, GenericMailet logOwner) {
+    public ContentReplacer(boolean debug) {
         this.debug = debug;
-        this.logOwner = logOwner;
     }
 
     public String applyPatterns(List<ReplacingPattern> patterns, String text) {
@@ -70,7 +70,7 @@ public class ContentReplacer {
 
     private String replaceFirst(ReplacingPattern replacingPattern, Matcher matcher) {
         if (debug) {
-            logOwner.log("Subject rule match: " + replacingPattern.getMatcher());
+            LOGGER.debug("Subject rule match: " + replacingPattern.getMatcher());
         }
         return matcher.replaceFirst(replacingPattern.getSubstitution());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
index 25434ef..029615e 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
@@ -39,6 +39,8 @@ import org.apache.http.message.BasicNameValuePair;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Serialise the email and pass it to an HTTP call
@@ -56,6 +58,7 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class HeadersToHTTP extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(HeadersToHTTP.class);
 
     /**
      * The name of the header to be added.
@@ -90,7 +93,7 @@ public class HeadersToHTTP extends GenericMailet {
         }
 
         // record the result
-        log("I will attempt to deliver serialised messages to "
+        LOGGER.debug("I will attempt to deliver serialised messages to "
                 + targetUrl
                 + ". "
                 + ( ((parameterKey==null) || (parameterKey.length()<1)) ? "I will not add any fields to the post. " : "I will prepend: "	+ parameterKey + "=" + parameterValue + ". ")
@@ -106,19 +109,19 @@ public class HeadersToHTTP extends GenericMailet {
      */
     public void service(Mail mail) {
         try {
-            log(mail.getName() + "HeadersToHTTP: Starting");
+            LOGGER.debug(mail.getName() + "HeadersToHTTP: Starting");
             MimeMessage message = mail.getMessage();
             HashSet<NameValuePair> pairs = getNameValuePairs(message);
-            log(mail.getName() + "HeadersToHTTP: " + pairs.size() + " named value pairs found");
+            LOGGER.debug(mail.getName() + "HeadersToHTTP: " + pairs.size() + " named value pairs found");
             String result = httpPost(pairs);
             if (passThrough) {
                 addHeader(mail, true, result);
             } else {
                 mail.setState(Mail.GHOST);
             }
-        } catch (MessagingException | IOException me) {
-            log(me.getMessage());
-            addHeader(mail, false, me.getMessage());
+        } catch (MessagingException | IOException e) {
+            LOGGER.error("Exception", e);
+            addHeader(mail, false, e.getMessage());
         }
     }
 
@@ -131,7 +134,7 @@ public class HeadersToHTTP extends GenericMailet {
             }
             message.saveChanges();
         } catch (MessagingException e) {
-            log(e.getMessage());
+            LOGGER.error("Exception", e);
         }
     }
 
@@ -144,7 +147,7 @@ public class HeadersToHTTP extends GenericMailet {
             HttpUriRequest request = RequestBuilder.post(url).addParameters(pairs.toArray(new NameValuePair[0])).build();
             clientResponse = client.execute(request);
             String result = clientResponse.getStatusLine().getStatusCode() + ": " + clientResponse.getStatusLine();
-            log("HeadersToHTTP: " + result);
+            LOGGER.debug("HeadersToHTTP: " + result);
             return result;
         } finally {
             IOUtils.closeQuietly(clientResponse);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
index cfe5517..9d6eb84 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/LogMessage.java
@@ -32,6 +32,8 @@ import javax.mail.internet.MimeMessage;
 import org.apache.commons.io.IOUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.io.ByteStreams;
 
@@ -43,17 +45,27 @@ import com.google.common.io.ByteStreams;
  * @version This is $Revision: 1.8.4.2 $
  */
 public class LogMessage extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(LogMessage.class);
 
     /**
      * Whether this mailet should allow mails to be processed by additional mailets
      * or mark it as finished.
      */
+    private final Logger logger;
     private boolean passThrough = true;
     private boolean headers = true;
     private boolean body = true;
     private int bodyMax = 0;
     private String comment = null;
 
+    public LogMessage(Logger logger) {
+        this.logger = logger;
+    }
+
+    public LogMessage() {
+        this(LOGGER);
+    }
+
     @Override
     public void init() {
         try {
@@ -63,7 +75,7 @@ public class LogMessage extends GenericMailet {
             bodyMax = (getInitParameter("maxBody") == null) ? 0 : Integer.parseInt(getInitParameter("maxBody"));
             comment = getInitParameter("comment");
         } catch (Exception e) {
-            log("Caught exception while initializing LogMessage", e);
+            logger.error("Caught exception while initializing LogMessage", e);
         }
     }
 
@@ -74,14 +86,14 @@ public class LogMessage extends GenericMailet {
 
     @Override
     public void service(Mail mail) {
-        log("Logging mail " + mail.getName());
+        logger.info("Logging mail " + mail.getName());
         logComment();
         try {
             MimeMessage message = mail.getMessage();
             logHeaders(message);
             logBody(message);
         } catch (MessagingException | IOException e) {
-            log("Error logging message.", e);
+            logger.error("Error logging message.", e);
         }
         if (!passThrough) {
             mail.setState(Mail.GHOST);
@@ -90,16 +102,16 @@ public class LogMessage extends GenericMailet {
 
     private void logComment() {
         if (comment != null) {
-            log(comment);
+            logger.info(comment);
         }
     }
 
     @SuppressWarnings("unchecked")
     private void logHeaders(MimeMessage message) throws MessagingException {
         if (headers) {
-            log("\n");
+            logger.info("\n");
             for (String header : Collections.list((Enumeration<String>) message.getAllHeaderLines())) {
-                log(header + "\n");
+                logger.info(header + "\n");
             }
         }
     }
@@ -107,7 +119,7 @@ public class LogMessage extends GenericMailet {
     private void logBody(MimeMessage message) throws MessagingException, IOException {
         if (body) {
             InputStream inputStream = ByteStreams.limit(message.getRawInputStream(), lengthToLog(message));
-            log(IOUtils.toString(inputStream));
+            logger.info(IOUtils.toString(inputStream));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
index 8ce278b..0d71f52 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
@@ -30,6 +30,8 @@ import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableMap;
@@ -48,6 +50,7 @@ import com.google.common.collect.ImmutableMap.Builder;
  * </code></pre>
  */
 public class MailAttributesToMimeHeaders extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailAttributesToMimeHeaders.class);
 
     private static final String CONFIGURATION_ERROR_MESSAGE = "Invalid config. Please use \"attributeName; headerName\"";
     private Map<String, String> mappings;
@@ -83,7 +86,7 @@ public class MailAttributesToMimeHeaders extends GenericMailet {
             }
             message.saveChanges();
         } catch (MessagingException e) {
-            log(e.getMessage());
+            LOGGER.error("Encountered exception", e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java
index 78fcf02..20db4cc 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/MimeDecodingMailet.java
@@ -30,6 +30,8 @@ import org.apache.commons.io.IOUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Strings;
@@ -47,6 +49,7 @@ import com.google.common.collect.ImmutableMap;
  * Then all this map attribute values will be replaced by their content.
  */
 public class MimeDecodingMailet extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MimeDecodingMailet.class);
 
     public static final String ATTRIBUTE_PARAMETER_NAME = "attribute";
 
@@ -81,7 +84,7 @@ public class MimeDecodingMailet extends GenericMailet {
     private Map<String, byte[]> getAttributeContent(Mail mail) throws MailetException {
         Serializable attributeContent = mail.getAttribute(attribute);
         if (! (attributeContent instanceof Map)) {
-            log("Invalid attribute found into attribute "
+            LOGGER.debug("Invalid attribute found into attribute "
                     + attribute + "class Map expected but "
                     + attributeContent.getClass() + " found.");
             return ImmutableMap.of();
@@ -94,10 +97,10 @@ public class MimeDecodingMailet extends GenericMailet {
             MimeBodyPart mimeBodyPart = new MimeBodyPart(new ByteArrayInputStream((byte[]) rawMime));
             return Optional.fromNullable(IOUtils.toByteArray(mimeBodyPart.getInputStream()));
         } catch (IOException e) {
-            log("Error while extracting content from mime part", e);
+            LOGGER.error("Error while extracting content from mime part", e);
             return Optional.absent();
         } catch (ClassCastException e) {
-            log("Invalid map attribute types.", e);
+            LOGGER.error("Invalid map attribute types.", e);
             return Optional.absent();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java
index e26827c..4f8f2fd 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/OnlyText.java
@@ -20,6 +20,7 @@
 package org.apache.james.transport.mailets;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.util.HashMap;
 
 import javax.mail.Message;
@@ -32,6 +33,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Keep only the text part of a message.
@@ -43,6 +46,8 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class OnlyText extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(OnlyText.class);
+
     private static final String PARAMETER_NAME_NOTEXT_PROCESSOR = "NoTextProcessor";
 
     private String optionsNotextProcessor = null;
@@ -67,8 +72,8 @@ public class OnlyText extends GenericMailet {
             Object content = null;
             try {
                 content = mp.getBodyPart(i).getContent();
-            } catch (java.io.UnsupportedEncodingException e) {
-                log("Caught error [" + e.getMessage() + "] in a text/plain part, skipping...");
+            } catch (UnsupportedEncodingException e) {
+                LOGGER.error("Caught error in a text/plain part, skipping...", e);
             }
             if (content != null) {
                 if (mp.getBodyPart(i).isMimeType("text/plain")) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
index ef11c4d..853395d 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RecoverAttachment.java
@@ -19,16 +19,6 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.mailet.Experimental;
-import org.apache.mailet.base.GenericMailet;
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailetException;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
-
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -36,6 +26,18 @@ import java.io.InputStream;
 import java.util.Iterator;
 import java.util.Map;
 
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeMultipart;
+
+import org.apache.mailet.Experimental;
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailetException;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * <p>
  * This mailet takes an attachment stored in an attribute and attach it back to
@@ -58,6 +60,7 @@ import java.util.Map;
  */
 @Experimental
 public class RecoverAttachment extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(RecoverAttachment.class);
 
     public static final String ATTRIBUTE_PARAMETER_NAME = "attribute";
 
@@ -76,7 +79,7 @@ public class RecoverAttachment extends GenericMailet {
                     + " is a mandatory parameter");
         }
 
-        log("RecoverAttachment is initialised with attribute [" + attributeName
+        LOGGER.debug("RecoverAttachment is initialised with attribute [" + attributeName
                 + "]");
     }
 
@@ -128,9 +131,9 @@ public class RecoverAttachment extends GenericMailet {
                 }
                 message.saveChanges();
             } catch (MessagingException e) {
-                log("MessagingException in recoverAttachment", e);
+                LOGGER.error("MessagingException in recoverAttachment", e);
             } catch (IOException e) {
-                log("IOException in recoverAttachment", e);
+                LOGGER.error("IOException in recoverAttachment", e);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
index 99cc574..43edd76 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
@@ -29,6 +29,8 @@ import javax.mail.internet.MimeMessage;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableList;
@@ -46,6 +48,7 @@ import com.google.common.collect.ImmutableList;
  * 
  */
 public class RemoveMimeHeader extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(RemoveMimeHeader.class);
     
     private List<String> headers;
 
@@ -72,7 +75,7 @@ public class RemoveMimeHeader extends GenericMailet {
             }
             message.saveChanges();
         } catch (MessagingException e) {
-            log("Unable to remove headers: " + e.getMessage());
+            LOGGER.error("Unable to remove headers: ", e);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java
index 6da5c79..cdfe963 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ReplaceContent.java
@@ -164,6 +164,6 @@ public class ReplaceContent extends GenericMailet {
 
     @Override
     public void service(Mail mail) throws MailetException {
-        new ContentReplacer(debug, this).replaceMailContentAndSubject(mail, replaceConfig, charset);
+        new ContentReplacer(debug).replaceMailContentAndSubject(mail, replaceConfig, charset);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
index 337f490..11b8151 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
@@ -39,6 +39,8 @@ import org.apache.http.message.BasicNameValuePair;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Serialise the email and pass it to an HTTP call
@@ -56,6 +58,7 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class SerialiseToHTTP extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SerialiseToHTTP.class);
 
     /**
      * The name of the header to be added.
@@ -96,7 +99,7 @@ public class SerialiseToHTTP extends GenericMailet {
         }
 
         // record the result
-        log("I will attempt to deliver serialised messages to "
+        LOGGER.debug("I will attempt to deliver serialised messages to "
                 + targetUrl
                 + " as "
                 + messageKeyName
@@ -125,7 +128,7 @@ public class SerialiseToHTTP extends GenericMailet {
                 mail.setState(Mail.GHOST);
             }
         } catch (MessagingException | IOException me) {
-            log(me.getMessage());
+            LOGGER.error("Messaging exception", me);
             addHeader(mail, false, me.getMessage());
         }
     }
@@ -138,8 +141,8 @@ public class SerialiseToHTTP extends GenericMailet {
                 message.setHeader("X-toHTTPFailure", errorMessage);
             }
             message.saveChanges();
-        } catch (MessagingException e) {
-            log(e.getMessage());
+        } catch (MessagingException me) {
+            LOGGER.error("Messaging exception", me);
         }
     }
 
@@ -156,7 +159,7 @@ public class SerialiseToHTTP extends GenericMailet {
 
         if( data.length>1 && data[1]!=null ) {
             requestBuilder.addParameter(data[1].getName(),data[1].getValue());
-            log( data[1].getName() + "::" + data[1].getValue() );
+            LOGGER.debug( data[1].getName() + "::" + data[1].getValue() );
         }
 
         CloseableHttpClient client = HttpClientBuilder.create().build();
@@ -165,15 +168,15 @@ public class SerialiseToHTTP extends GenericMailet {
             clientResponse = client.execute(requestBuilder.build());
 
             if (clientResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
-                log("POST failed: " + clientResponse.getStatusLine());
+                LOGGER.debug("POST failed: " + clientResponse.getStatusLine());
                 return clientResponse.getStatusLine().toString();
             }
             return null;
         } catch (ClientProtocolException e) {
-            log("Fatal protocol violation: " + e.getMessage());
+            LOGGER.error("Fatal protocol violation: ", e);
             return "Fatal protocol violation: " + e.getMessage();
         } catch (IOException e) {
-            log("Fatal transport error: " + e.getMessage());
+            LOGGER.debug("Fatal transport error: ", e);
             return "Fatal transport error: " + e.getMessage();
         } finally {
             IOUtils.closeQuietly(clientResponse);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
index 46c77fe..70c7c19 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SetMimeHeader.java
@@ -22,14 +22,15 @@
 package org.apache.james.transport.mailets;
 
 import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage ;
+import javax.mail.internet.MimeMessage;
 
-import org.apache.mailet.base.GenericMailet ;
+import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Strings;
 
-import org.apache.mailet.Mail ;
-
 /**
  * <p>Adds a specified header and value to the message.</p>
  *
@@ -45,6 +46,7 @@ import org.apache.mailet.Mail ;
  * @version 1.0.0, 2002-09-11
  */
 public class SetMimeHeader extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SetMimeHeader.class);
 
     private String headerName;
     private String headerValue;
@@ -67,7 +69,7 @@ public class SetMimeHeader extends GenericMailet {
             message.addHeader(headerName, headerValue);
             message.saveChanges();
         } catch (javax.mail.MessagingException me) {
-            log(me.getMessage());
+            LOGGER.error("Encountered exception", me);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
index dd20ed4..b481680 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/StripAttachment.java
@@ -49,6 +49,8 @@ import org.apache.james.mime4j.codec.DecoderUtil;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Optional;
@@ -81,6 +83,7 @@ import com.google.common.collect.ImmutableList;
  * </p>
  */
 public class StripAttachment extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(StripAttachment.class);
 
     private static final String MULTIPART_MIME_TYPE = "multipart/*";
     public static final String PATTERN_PARAMETER_NAME = "pattern";
@@ -193,7 +196,7 @@ public class StripAttachment extends GenericMailet {
           logMessage.append(attributeName);
           logMessage.append("]");
       }
-      log(logMessage.toString());
+      LOGGER.debug(logMessage.toString());
     }
     
     /**
@@ -289,7 +292,7 @@ public class StripAttachment extends GenericMailet {
             }
             return atLeastOneRemoved || subpartHasBeenChanged;
         } catch (Exception e) {
-            log("Failing while analysing part for attachments (StripAttachment mailet).", e);
+            LOGGER.error("Failing while analysing part for attachments (StripAttachment mailet).", e);
             return false;
         }
     }
@@ -383,7 +386,7 @@ public class StripAttachment extends GenericMailet {
     private String renameWithConfigurationPattern(String fileName) {
         if (filenameReplacingPatterns != null) {
             boolean debug = false;
-            return new ContentReplacer(debug, this).applyPatterns(filenameReplacingPatterns, fileName);
+            return new ContentReplacer(debug).applyPatterns(filenameReplacingPatterns, fileName);
         }
         return fileName;
     }
@@ -409,7 +412,7 @@ public class StripAttachment extends GenericMailet {
         boolean result = isMatchingPattern(name, regExPattern).or(false) 
                 || !isMatchingPattern(name, notRegExPattern).or(true);
 
-        log("attachment " + name + " " + ((result) ? "matches" : "does not match"));
+        LOGGER.debug("attachment " + name + " " + ((result) ? "matches" : "does not match"));
         return result;
     }
 
@@ -438,12 +441,12 @@ public class StripAttachment extends GenericMailet {
         try {
             File outputFile = outputFile(part, fileName);
 
-            log("saving content of " + outputFile.getName() + "...");
+            LOGGER.debug("saving content of " + outputFile.getName() + "...");
             IOUtils.copy(part.getInputStream(), new FileOutputStream(outputFile));
 
             return Optional.of(outputFile.getName());
         } catch (Exception e) {
-            log("Error while saving contents of", e);
+            LOGGER.error("Error while saving contents of", e);
             return Optional.absent();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java
index 5a54925..1c6b3fa 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ToProcessor.java
@@ -26,6 +26,8 @@ import javax.mail.MessagingException;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 
@@ -43,6 +45,7 @@ import com.google.common.base.Optional;
  *
  */
 public class ToProcessor extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ToProcessor.class);
 
     private boolean debug;
     private String processor;
@@ -70,7 +73,7 @@ public class ToProcessor extends GenericMailet {
     @Override
     public void service(Mail mail) throws MessagingException {
         if (debug) {
-            log(String.format("Sending mail %s to %s", mail, processor));
+            LOGGER.debug(String.format("Sending mail %s to %s", mail, processor));
         }
         mail.setState(processor);
         if (noticeText.isPresent()) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
index ea45cb2..543959e 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/UseHeaderRecipients.java
@@ -38,6 +38,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Splitter;
 import com.google.common.base.Throwables;
@@ -68,6 +70,7 @@ import com.google.common.collect.ImmutableList;
  */
 @Experimental
 public class UseHeaderRecipients extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(UseHeaderRecipients.class);
 
     /**
      * Controls certain log messages
@@ -96,8 +99,8 @@ public class UseHeaderRecipients extends GenericMailet {
         mail.setRecipients(headersAddresses(message));
 
         if (isDebug) {
-            log("All recipients = " + mail.getRecipients());
-            log("Reprocessing mail using recipients in message headers");
+            LOGGER.debug("All recipients = " + mail.getRecipients());
+            LOGGER.debug("Reprocessing mail using recipients in message headers");
         }
 
         // Return email to the "root" process.
@@ -137,7 +140,7 @@ public class UseHeaderRecipients extends GenericMailet {
      */
     private Collection<MailAddress> getHeaderMailAddresses(MimeMessage message, String name) throws MessagingException {
         if (isDebug) {
-            log("Checking " + name + " headers");
+            LOGGER.debug("Checking " + name + " headers");
         }
         String[] headers = message.getHeader(name);
         ImmutableList.Builder<MailAddress> addresses = ImmutableList.builder();
@@ -160,7 +163,7 @@ public class UseHeaderRecipients extends GenericMailet {
         ImmutableList.Builder<MailAddress> result = ImmutableList.builder();
         for (String headerPart : headerParts) {
             if (isDebug) {
-                log("Address = " + headerPart);
+                LOGGER.debug("Address = " + headerPart);
             }
             result.addAll(readMailAddresses(headerPart));
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java
index 0088215..b9900c4 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/Counter.java
@@ -21,8 +21,10 @@
 
 package org.apache.james.transport.mailets.debug;
 
-import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A simple in memory counter.  Designed to count messages sent to this recipient
@@ -30,6 +32,7 @@ import org.apache.mailet.Mail;
  *
  */
 public class Counter extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(Counter.class);
 
     /**
      * The number of mails processed by this mailet
@@ -43,7 +46,7 @@ public class Counter extends GenericMailet {
      */
     public void service(Mail mail) {
         counter++;
-        log(counter + "");
+        LOGGER.info(Integer.toString(counter));
         mail.setState(Mail.GHOST);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java
index 8b2b9fd..f3c4a95 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/debug/DumpSystemErr.java
@@ -21,18 +21,22 @@
 
 package org.apache.james.transport.mailets.debug;
 
-import org.apache.mailet.base.GenericMailet;
-import org.apache.mailet.Mail;
+import java.io.IOException;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
-import java.io.IOException;
+
+import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Debugging purpose Mailet.  Sends the message to System.err
  *
  */
 public class DumpSystemErr extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DumpSystemErr.class);
 
     /**
      * Writes the message to System.err .
@@ -46,7 +50,7 @@ public class DumpSystemErr extends GenericMailet {
             MimeMessage message = mail.getMessage();
             message.writeTo(System.err);
         } catch (IOException ioe) {
-            log("error printing message", ioe);
+            LOGGER.error("error printing message", ioe);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/matchers/AbstractQuotaMatcher.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/AbstractQuotaMatcher.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/AbstractQuotaMatcher.java
index 7b7de31..d5b2601 100755
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/AbstractQuotaMatcher.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/AbstractQuotaMatcher.java
@@ -30,6 +30,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <P>Abstract matcher checking whether a recipient has exceeded a maximum allowed quota.</P>
@@ -41,7 +43,8 @@ import org.apache.mailet.base.GenericMatcher;
  * @since 2.2.0
  */
 @Experimental
-abstract public class AbstractQuotaMatcher extends GenericMatcher { 
+abstract public class AbstractQuotaMatcher extends GenericMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractQuotaMatcher.class);
 
     /**
      * Standard matcher entrypoint.
@@ -76,10 +79,10 @@ abstract public class AbstractQuotaMatcher extends GenericMatcher {
     protected boolean isOverQuota(MailAddress address, Mail mail) {
         try {
             boolean over = getQuota(address, mail) < getUsed(address, mail);
-            if (over) log(address + " is over quota.");
+            if (over) LOGGER.info(address + " is over quota.");
             return over;
         } catch (Throwable e) {
-            log("Exception checking quota for: " + address, e);
+            LOGGER.error("Exception checking quota for: " + address, e);
             return false;
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
index b1f0f90..5195543 100755
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/AttachmentFileNameIs.java
@@ -39,6 +39,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -57,6 +59,7 @@ import org.apache.mailet.base.GenericMatcher;
  */
 @Experimental
 public class AttachmentFileNameIs extends GenericMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AttachmentFileNameIs.class);
     
     /** Unzip request parameter. */
     protected static final String UNZIP_REQUEST_PARAMETER = "-z";
@@ -105,12 +108,12 @@ public class AttachmentFileNameIs extends GenericMatcher {
             // check possible parameters at the beginning of the condition
             if (theMasks.size() == 0 && fileName.equalsIgnoreCase(UNZIP_REQUEST_PARAMETER)) {
                 unzipIsRequested = true;
-                log("zip file analysis requested");
+                LOGGER.info("zip file analysis requested");
                 continue;
             }
             if (theMasks.size() == 0 && fileName.equalsIgnoreCase(DEBUG_REQUEST_PARAMETER)) {
                 isDebug = true;
-                log("debug requested");
+                LOGGER.info("debug requested");
                 continue;
             }
             Mask mask = new Mask(); 
@@ -145,7 +148,7 @@ public class AttachmentFileNameIs extends GenericMatcher {
             
         } catch (Exception e) {
             if (isDebug) {
-                log("Malformed message", e);
+                LOGGER.debug("Malformed message", e);
             }
             throw new MessagingException("Malformed message", e);
         }
@@ -198,7 +201,7 @@ public class AttachmentFileNameIs extends GenericMatcher {
                 // check the file name
                 if (matchFound(fileName)) {
                     if (isDebug) {
-                        log("matched " + fileName);
+                        LOGGER.debug("matched " + fileName);
                     }
                     return true;
                 }
@@ -254,7 +257,7 @@ public class AttachmentFileNameIs extends GenericMatcher {
                 String fileName = zipEntry.getName();
                 if (matchFound(fileName)) {
                     if (isDebug) {
-                        log("matched " + part.getFileName() + "(" + fileName + ")");
+                        LOGGER.debug("matched " + part.getFileName() + "(" + fileName + ")");
                     }
                     return true;
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java
index 353ddf5..5b7e757 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/HasHabeasWarrantMark.java
@@ -21,14 +21,17 @@
 
 package org.apache.james.transport.matchers;
 
-import org.apache.mailet.Experimental;
-import org.apache.mailet.base.GenericMatcher;
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailAddress;
+import java.util.Collection;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
-import java.util.Collection;
+
+import org.apache.mailet.Experimental;
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
+import org.apache.mailet.base.GenericMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>This matcher tests for the Hebeas Warrant Mark.
@@ -70,6 +73,8 @@ import java.util.Collection;
 @Experimental
 public class HasHabeasWarrantMark extends GenericMatcher
 {
+    private static final Logger LOGGER = LoggerFactory.getLogger(HasHabeasWarrantMark.class);
+
     public static final String[][] warrantMark =
     {
         { "X-Habeas-SWE-1", "winter into spring" }, 
@@ -102,7 +107,7 @@ public class HasHabeasWarrantMark extends GenericMatcher
 
                 if (!(requiredValue.equals(headerValue))) return null;
             } catch (Exception e) {
-                log(e.toString());
+                LOGGER.info(e.toString());
                 return null;            //if we get an exception, don't validate the mark
             }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java
index 98fbf39..073aad3 100755
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderHostIs.java
@@ -27,6 +27,8 @@ import java.util.Locale;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
@@ -46,6 +48,7 @@ import com.google.common.collect.ImmutableSet;
  * @version 1.0.0, 2002-09-10
  */
 public class SenderHostIs extends GenericMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SenderHostIs.class);
 
     private Collection<String> senderHosts;
     
@@ -77,7 +80,7 @@ public class SenderHostIs extends GenericMatcher {
                 return mail.getRecipients();
             }
         } catch (Exception e) {
-            log(e.getMessage());
+            LOGGER.info(e.getMessage());
         }
 
         return null;    //No match.

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java
index 0144623..479bfd4 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ContentReplacerTest.java
@@ -30,7 +30,6 @@ import java.util.regex.Pattern;
 import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Mail;
-import org.apache.mailet.base.GenericMailet;
 import org.junit.Test;
 
 import com.google.common.base.Charsets;
@@ -41,8 +40,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternsShouldModifyWhenMatching() {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         ImmutableList<ReplacingPattern> patterns = ImmutableList.of(new ReplacingPattern(Pattern.compile("test"), false, "TEST"),
             new ReplacingPattern(Pattern.compile("a"), true, "e"),
@@ -54,8 +52,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternsShouldNotRepeatWhenNotAskedFor() {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         ImmutableList<ReplacingPattern> patterns = ImmutableList.of(new ReplacingPattern(Pattern.compile("test"), false, "TEST"));
         String value = testee.applyPatterns(patterns, "test test");
@@ -65,8 +62,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternsShouldRepeatWhenAskedFor() {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         ImmutableList<ReplacingPattern> patterns = ImmutableList.of(new ReplacingPattern(Pattern.compile("test"), true, "TEST"));
         String value = testee.applyPatterns(patterns, "test test");
@@ -76,8 +72,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternShouldModifyWhenMatchingBody() throws Exception {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         Mail mail = mock(Mail.class);
         MimeMessage mimeMessage = mock(MimeMessage.class);
@@ -101,8 +96,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternShouldModifyWhenMatchingSubject() throws Exception {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         Mail mail = mock(Mail.class);
         MimeMessage mimeMessage = mock(MimeMessage.class);
@@ -126,8 +120,7 @@ public class ContentReplacerTest {
 
     @Test
     public void applyPatternShouldKeepPreviousCharsetWhenNoneSet() throws Exception {
-        GenericMailet mailet = mock(GenericMailet.class);
-        ContentReplacer testee = new ContentReplacer(false, mailet);
+        ContentReplacer testee = new ContentReplacer(false);
 
         Mail mail = mock(Mail.class);
         MimeMessage mimeMessage = mock(MimeMessage.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
index 487bce7..f3e1c3a 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/LogMessageTest.java
@@ -20,8 +20,8 @@
 package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Matchers.eq;
 import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -64,7 +64,7 @@ public class LogMessageTest {
         mailContext = FakeMailContext.builder()
                 .logger(logger)
                 .build();
-        mailet = new LogMessage();
+        mailet = new LogMessage(logger);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/container/util/src/main/java/org/apache/james/util/bayesian/JDBCBayesianAnalyzer.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/bayesian/JDBCBayesianAnalyzer.java b/server/container/util/src/main/java/org/apache/james/util/bayesian/JDBCBayesianAnalyzer.java
index 34530b5..003a5a2 100644
--- a/server/container/util/src/main/java/org/apache/james/util/bayesian/JDBCBayesianAnalyzer.java
+++ b/server/container/util/src/main/java/org/apache/james/util/bayesian/JDBCBayesianAnalyzer.java
@@ -45,7 +45,7 @@ import org.slf4j.LoggerFactory;
  * @since 2.3.0
  */
 
-abstract public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
+public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(JDBCBayesianAnalyzer.class);
 
@@ -53,22 +53,9 @@ abstract public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
     public final static String DATABASE_LOCK = "database lock";
 
     /**
-     * An abstract method which child classes override to handle logging of
-     * errors in their particular environments.
-     * 
-     * @param errorString
-     *            the error message generated
-     */
-    abstract protected void delegatedLog(String errorString);
-
-    /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            JDBCBayesianAnalyzer.this.delegatedLog(logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /** Contains all of the sql strings for this component. */
     private final SqlResources sqlQueries = new SqlResources();
@@ -174,7 +161,7 @@ abstract public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
                 }
             }
             // Verbose.
-            delegatedLog("Ham tokens count: " + ham.size());
+            LOGGER.debug("Ham tokens count: " + ham.size());
 
             rs.close();
             pstmt.close();
@@ -194,7 +181,7 @@ abstract public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
             }
 
             // Verbose.
-            delegatedLog("Spam tokens count: " + spam.size());
+            LOGGER.error("Spam tokens count: " + spam.size());
 
             rs.close();
             pstmt.close();
@@ -417,7 +404,7 @@ abstract public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
 
             StringBuffer logBuffer;
             logBuffer = new StringBuffer(64).append("Created table '").append(tableName).append("' using sqlResources string '").append(createSqlStringName).append("'.");
-            delegatedLog(logBuffer.toString());
+            LOGGER.error(logBuffer.toString());
 
         } finally {
             theJDBCUtil.closeJDBCStatement(createStatement);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java b/server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java
index 43c29a4..02f5e53 100644
--- a/server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java
+++ b/server/container/util/src/main/java/org/apache/james/util/sql/JDBCUtil.java
@@ -26,25 +26,17 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Locale;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * <p>
  * Helper class for managing common JDBC tasks.
  * </p>
- * 
- * <p>
- * This class is abstract to allow implementations to take advantage of
- * different logging capabilities/interfaces in different parts of the code.
- * </p>
+ *
  */
-abstract public class JDBCUtil {
-    /**
-     * An abstract method which child classes override to handle logging of
-     * errors in their particular environments.
-     * 
-     * @param errorString
-     *            the error message generated
-     */
-    abstract protected void delegatedLog(String errorString);
+public class JDBCUtil {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JDBCUtil.class);
 
     /**
      * Checks database metadata to see if a table exists. Try UPPER, lower, and
@@ -142,7 +134,7 @@ abstract public class JDBCUtil {
             }
         } catch (SQLException sqle) {
             // Log exception and continue
-            subclassLogWrapper("Unexpected exception while closing database connection.");
+            LOGGER.error("Unexpected exception while closing database connection.", sqle);
         }
     }
 
@@ -159,7 +151,7 @@ abstract public class JDBCUtil {
             }
         } catch (SQLException sqle) {
             // Log exception and continue
-            subclassLogWrapper("Unexpected exception while closing database statement.");
+            LOGGER.error("Unexpected exception while closing database statement.", sqle);
         }
     }
 
@@ -176,24 +168,7 @@ abstract public class JDBCUtil {
             }
         } catch (SQLException sqle) {
             // Log exception and continue
-            subclassLogWrapper("Unexpected exception while closing database result set.");
-        }
-    }
-
-    /**
-     * Wraps the delegated call to the subclass logging method with a Throwable
-     * wrapper. All throwables generated by the subclass logging method are
-     * caught and ignored.
-     * 
-     * @param logString
-     *            the raw string to be passed to the logging method implemented
-     *            by the subclass
-     */
-    private void subclassLogWrapper(String logString) {
-        try {
-            delegatedLog(logString);
-        } catch (Throwable t) {
-            // Throwables generated by the logging system are ignored
+            LOGGER.error("Unexpected exception while closing database result set.", sqle);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
index 07f6e8a..00c5d2a 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
@@ -270,11 +270,7 @@ public class JDBCMailRepository extends AbstractMailRepository {
             throw new ConfigurationException(message, e);
         }
 
-        theJDBCUtil = new JDBCUtil() {
-            protected void delegatedLog(String logString) {
-                JDBCMailRepository.this.LOGGER.warn("JDBCMailRepository: " + logString);
-            }
-        };
+        theJDBCUtil = new JDBCUtil();
 
         // Test the connection to the database, by getting the DatabaseMetaData.
         Connection conn = datasource.getConnection();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java
index 01c2a32..53373da 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/MimeMessageJDBCSource.java
@@ -19,10 +19,6 @@
 
 package org.apache.james.mailrepository.jdbc;
 
-import org.apache.james.core.MimeMessageSource;
-import org.apache.james.repository.api.StreamRepository;
-import org.apache.james.util.sql.JDBCUtil;
-
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -33,6 +29,10 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
+import org.apache.james.core.MimeMessageSource;
+import org.apache.james.repository.api.StreamRepository;
+import org.apache.james.util.sql.JDBCUtil;
+
 /**
  * This class points to a specific message in a repository. This will return an
  * InputStream to the JDBC field/record, possibly sequenced with the file
@@ -65,12 +65,7 @@ public class MimeMessageJDBCSource extends MimeMessageSource {
     /**
      * The JDBCUtil helper class
      */
-    private static final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            // No logging available at this point in the code.
-            // Therefore this is a noop method.
-        }
-    };
+    private static final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * Construct a MimeMessageSource based on a JDBC repository, a key, and a

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java b/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
index 56effd9..3c27de2 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/rrt/jdbc/JDBCRecipientRewriteTable.java
@@ -75,11 +75,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            LOGGER.debug("JDBCRecipientRewriteTable: " + logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     @PostConstruct
     public void init() throws Exception {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java b/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
index 88ede9e..42c4032 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/user/jdbc/AbstractJdbcUsersRepository.java
@@ -253,11 +253,7 @@ public abstract class AbstractJdbcUsersRepository extends AbstractJamesUsersRepo
             LOGGER.debug(logBuffer.toString());
         }
 
-        theJDBCUtil = new JDBCUtil() {
-            protected void delegatedLog(String logString) {
-                AbstractJdbcUsersRepository.this.LOGGER.warn("AbstractJdbcUsersRepository: " + logString);
-            }
-        };
+        theJDBCUtil = new JDBCUtil();
 
         // Test the connection to the database, by getting the DatabaseMetaData.
         Connection conn = openConnection();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java b/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
index 147a952..214f154 100644
--- a/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
+++ b/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/netmatcher/NetMatcher.java
@@ -30,6 +30,8 @@ import java.util.TreeSet;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.library.inetnetwork.InetNetworkBuilder;
 import org.apache.james.dnsservice.library.inetnetwork.model.InetNetwork;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Splitter;
 
@@ -40,6 +42,8 @@ import com.google.common.base.Splitter;
  * address or domain name is within a set of subnets.
  */
 public class NetMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(NetMatcher.class);
+
     public static final String NETS_SEPARATOR = ", ";
 
     /**
@@ -98,7 +102,7 @@ public class NetMatcher {
         try {
             ip = dnsServer.getByName(hostIP);
         } catch (UnknownHostException uhe) {
-            log("Cannot resolve address for " + hostIP + ": " + uhe.getMessage());
+            LOGGER.info("Cannot resolve address for " + hostIP + ": " + uhe.getMessage());
             return false;
         }
 
@@ -133,15 +137,6 @@ public class NetMatcher {
     }
 
     /**
-     * Can be overwritten for logging
-     *
-     * @param s
-     *            the String to log
-     */
-    protected void log(String s) {
-    }
-
-    /**
      * Init the class with the given networks.
      * 
      * @param nets
@@ -168,7 +163,7 @@ public class NetMatcher {
                 InetNetwork inet = inetNetwork.getFromString(net);
                 networks.add(inet);
             } catch (UnknownHostException uhe) {
-                log("Cannot resolve address: " + uhe.getMessage());
+                LOGGER.info("Cannot resolve address: " + uhe.getMessage());
             }
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
index 7f292e4..c0fa112 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
@@ -242,14 +242,14 @@ public class JamesMailetContext implements MailetContext, Configurable {
                 try {
                     return isLocalEmail(new MailAddress(name.toLowerCase(Locale.US), domains.getDefaultDomain()));
                 } catch (DomainListException e) {
-                    log("Unable to access DomainList", e);
+                    LOGGER.error("Unable to access DomainList", e);
                     return false;
                 }
             } else {
                 return isLocalEmail(new MailAddress(name.toLowerCase(Locale.US)));
             }
         } catch (ParseException e) {
-            log("Error checking isLocalUser for user " + name);
+            LOGGER.info("Error checking isLocalUser for user " + name, e);
             return false;
         }
     }
@@ -263,7 +263,7 @@ public class JamesMailetContext implements MailetContext, Configurable {
             try {
                 return localusers.contains(localusers.getUser(mailAddress));
             } catch (UsersRepositoryException e) {
-                log("Unable to access UsersRepository", e);
+                LOGGER.error("Unable to access UsersRepository", e);
             }
         }
         return false;

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTable.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTable.java
index b89cc39..5ce3f5f 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTable.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/AbstractRecipientRewriteTable.java
@@ -41,6 +41,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Provides an abstraction of common functionality needed for implementing a
@@ -52,6 +54,7 @@ import org.apache.mailet.base.GenericMailet;
 @Deprecated
 @Experimental
 public abstract class AbstractRecipientRewriteTable extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractRecipientRewriteTable.class);
     static private final String MARKER = "org.apache.james.transport.mailets.AbstractRecipientRewriteTable.mapped";
     private DNSService dns;
     private DomainList domainList;
@@ -110,14 +113,11 @@ public abstract class AbstractRecipientRewriteTable extends GenericMailet {
                     while (tokenizer.hasMoreTokens()) {
                         String targetAddress = tokenizer.nextToken().trim();
 
-                        // log("Attempting to map from " + source + " to " +
-                        // targetAddress);
-
                         if (targetAddress.startsWith("regex:")) {
                             try {
                                 targetAddress = RecipientRewriteTableUtil.regexMap(source, targetAddress);
                             } catch (PatternSyntaxException e) {
-                                log("Exception during regexMap processing: ", e);
+                                LOGGER.error("Exception during regexMap processing: ", e);
                             }
                             if (targetAddress == null)
                                 continue;
@@ -139,15 +139,15 @@ public abstract class AbstractRecipientRewriteTable extends GenericMailet {
                             }
 
                             String buf = "Translating virtual user " + source + " to " + target;
-                            log(buf);
+                            LOGGER.info(buf);
 
                         } catch (ParseException pe) {
                             // Don't map this address... there's an invalid
                             // address mapping here
                             String exceptionBuffer = "There is an invalid map from " + source + " to " + targetAddress;
-                            log(exceptionBuffer);
+                            LOGGER.error(exceptionBuffer);
                         } catch (DomainListException e) {
-                            log("Unable to access DomainList", e);
+                            LOGGER.error("Unable to access DomainList", e);
                         }
                     }
                 }
@@ -237,7 +237,7 @@ public abstract class AbstractRecipientRewriteTable extends GenericMailet {
             @SuppressWarnings("unused")
             Integer code = Integer.valueOf(error.substring("error:".length(), msgPos));
         } catch (NumberFormatException e) {
-            log("Cannot send DSN.  Exception parsing DSN code from: " + error, e);
+            LOGGER.error("Cannot send DSN.  Exception parsing DSN code from: " + error, e);
             return;
         }
         @SuppressWarnings("unused")
@@ -246,7 +246,7 @@ public abstract class AbstractRecipientRewriteTable extends GenericMailet {
         try {
             getMailetContext().bounce(mail, error);
         } catch (MessagingException me) {
-            log("Cannot send DSN.  Exception during DSN processing: ", me);
+            LOGGER.error("Cannot send DSN.  Exception during DSN processing: ", me);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
index 6f3d28d..4028e7b 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysis.java
@@ -40,6 +40,8 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.RFC2822Headers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -125,23 +127,17 @@ import org.apache.mailet.base.RFC2822Headers;
  */
 @Experimental
 public class BayesianAnalysis extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(BayesianAnalysis.class);
+
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            log("BayesianAnalysis: " + logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * The JDBCBayesianAnalyzer class that does all the work.
      */
-    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer() {
-        protected void delegatedLog(String logString) {
-            log("BayesianAnalysis: " + logString);
-        }
-    };
+    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer();
 
     private DataSource datasource;
 
@@ -240,16 +236,16 @@ public class BayesianAnalysis extends GenericMailet {
         ignoreLocalSender = Boolean.valueOf(getInitParameter("ignoreLocalSender"));
 
         if (ignoreLocalSender) {
-            log("Will ignore messages coming from local senders");
+            LOGGER.debug("Will ignore messages coming from local senders");
         } else {
-            log("Will analyze messages coming from local senders");
+            LOGGER.debug("Will analyze messages coming from local senders");
         }
 
         String maxSizeParam = getInitParameter("maxSize");
         if (maxSizeParam != null) {
             setMaxSize(Integer.parseInt(maxSizeParam));
         }
-        log("maxSize: " + getMaxSize());
+        LOGGER.debug("maxSize: " + getMaxSize());
 
         String tag = getInitParameter("tagSubject");
         if (tag != null && tag.equals("false")) {
@@ -330,7 +326,7 @@ public class BayesianAnalysis extends GenericMailet {
                 senderString = mail.getSender().toString();
             }
             if (probability > 0.1) {
-                log(headerName + ": " + probabilityString + "; From: " + senderString + "; Recipient(s): " + getAddressesString(mail.getRecipients()));
+                LOGGER.debug(headerName + ": " + probabilityString + "; From: " + senderString + "; Recipient(s): " + getAddressesString(mail.getRecipients()));
 
                 // Check if we should tag the subject
                 if (tagSubject) {
@@ -341,7 +337,7 @@ public class BayesianAnalysis extends GenericMailet {
             saveChanges(message);
 
         } catch (Exception e) {
-            log("Exception: " + e.getMessage(), e);
+            LOGGER.error("Exception: " + e.getMessage(), e);
             throw new MessagingException("Exception thrown", e);
         }
     }
@@ -357,7 +353,7 @@ public class BayesianAnalysis extends GenericMailet {
                 analyzer.tokenCountsClear();
             }
 
-            log("BayesianAnalysis Corpus loaded");
+            LOGGER.error("BayesianAnalysis Corpus loaded");
 
             touchLastCorpusLoadTime();
 
@@ -397,7 +393,7 @@ public class BayesianAnalysis extends GenericMailet {
                 message.setSubject(toAppend + " " + subject, "iso-8859-1");
             }
         } catch (MessagingException ex) {
-            log("Ignored error while modifying subject", ex);
+            LOGGER.error("Ignored error while modifying subject", ex);
         }
     }
 
@@ -425,19 +421,19 @@ public class BayesianAnalysis extends GenericMailet {
          * Thread entry point.
          */
         public void run() {
-            analysis.log("CorpusLoader thread started: will wake up every " + CORPUS_RELOAD_INTERVAL + " ms");
+            LOGGER.info("CorpusLoader thread started: will wake up every " + CORPUS_RELOAD_INTERVAL + " ms");
 
             try {
                 Thread.sleep(CORPUS_RELOAD_INTERVAL);
 
                 while (true) {
                     if (analysis.getLastCorpusLoadTime() < JDBCBayesianAnalyzer.getLastDatabaseUpdateTime()) {
-                        analysis.log("Reloading Corpus ...");
+                        LOGGER.info("Reloading Corpus ...");
                         try {
                             analysis.loadData(analysis.datasource.getConnection());
-                            analysis.log("Corpus reloaded");
+                            LOGGER.info("Corpus reloaded");
                         } catch (java.sql.SQLException se) {
-                            analysis.log("SQLException: ", se);
+                            LOGGER.error("SQLException: ", se);
                         }
 
                     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
index 9bcbf3a..8ec5ccf 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/BayesianAnalysisFeeder.java
@@ -32,11 +32,14 @@ import javax.mail.internet.MimeMessage;
 import javax.sql.DataSource;
 
 import org.apache.james.filesystem.api.FileSystem;
+import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
 import org.apache.james.util.bayesian.JDBCBayesianAnalyzer;
 import org.apache.james.util.sql.JDBCUtil;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -129,23 +132,17 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class BayesianAnalysisFeeder extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ManageSieveMailet.class);
+
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            log("BayesianAnalysisFeeder: " + logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * The JDBCBayesianAnalyzer class that does all the work.
      */
-    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer() {
-        protected void delegatedLog(String logString) {
-            log("BayesianAnalysisFeeder: " + logString);
-        }
-    };
+    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer();
 
     private DataSource datasource;
 
@@ -220,7 +217,7 @@ public class BayesianAnalysisFeeder extends GenericMailet {
         if (maxSizeParam != null) {
             setMaxSize(Integer.parseInt(maxSizeParam));
         }
-        log("maxSize: " + getMaxSize());
+        LOGGER.debug("maxSize: " + getMaxSize());
 
         initDb();
 
@@ -261,7 +258,7 @@ public class BayesianAnalysisFeeder extends GenericMailet {
             String messageId = message.getMessageID();
 
             if (message.getSize() > getMaxSize()) {
-                log(messageId + " Feeding HAM/SPAM ignored because message size > " + getMaxSize() + ": " + message.getSize());
+                LOGGER.debug(messageId + " Feeding HAM/SPAM ignored because message size > " + getMaxSize() + ": " + message.getSize());
                 return;
             }
 
@@ -286,14 +283,14 @@ public class BayesianAnalysisFeeder extends GenericMailet {
                 analyzer.clear();
 
                 if ("ham".equalsIgnoreCase(feedType)) {
-                    log(messageId + " Feeding HAM");
+                    LOGGER.debug(messageId + " Feeding HAM");
                     // Process the stream as ham (not spam).
                     analyzer.addHam(br);
 
                     // Update storage statistics.
                     analyzer.updateHamTokens(conn);
                 } else {
-                    log(messageId + " Feeding SPAM");
+                    LOGGER.debug(messageId + " Feeding SPAM");
                     // Process the stream as spam.
                     analyzer.addSpam(br);
 
@@ -305,18 +302,18 @@ public class BayesianAnalysisFeeder extends GenericMailet {
                 if (conn != null && dbUpdated && !conn.getAutoCommit()) {
                     conn.commit();
                     dbUpdated = false;
-                    log(messageId + " Training ended successfully");
+                    LOGGER.debug(messageId + " Training ended successfully");
                     JDBCBayesianAnalyzer.touchLastDatabaseUpdateTime();
                 }
 
             }
 
         } catch (java.sql.SQLException se) {
-            log("SQLException: " + se.getMessage());
+            LOGGER.error("SQLException: ", se);
         } catch (java.io.IOException ioe) {
-            log("IOException: " + ioe.getMessage());
+            LOGGER.error("IOException: ", ioe);
         } catch (javax.mail.MessagingException me) {
-            log("MessagingException: " + me.getMessage());
+            LOGGER.error("MessagingException: ", me);
         } finally {
             // Rollback our changes if necessary.
             try {
@@ -325,7 +322,7 @@ public class BayesianAnalysisFeeder extends GenericMailet {
                     dbUpdated = false;
                 }
             } catch (Exception e) {
-                log("Ignored error while rolling back", e);
+                LOGGER.error("Ignored error while rolling back", e);
             }
             theJDBCUtil.closeJDBCConnection(conn);
         }
@@ -340,7 +337,7 @@ public class BayesianAnalysisFeeder extends GenericMailet {
             try {
                 message.removeHeader(header.getName());
             } catch (MessagingException me) {
-                log("Ignored error while removing header", me);
+                LOGGER.error("Ignored error while removing header", me);
             }
         }
         message.saveChanges();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
index d3565b9..d431613 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
@@ -42,6 +42,8 @@ import org.apache.james.transport.util.TosUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -121,6 +123,7 @@ import com.google.common.collect.ImmutableList;
  * @since 2.2.0
  */
 public class Bounce extends GenericMailet implements RedirectNotify {
+    private static final Logger LOGGER = LoggerFactory.getLogger(Bounce.class);
 
     private static final String[] CONFIGURABLE_PARAMETERS = new String[] {
             "debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "notice", "sender", "sendingAddress", "prefix", "attachError" };
@@ -156,7 +159,7 @@ public class Bounce extends GenericMailet implements RedirectNotify {
     @Override
     public void init() throws MessagingException {
         if (getInitParameters().isDebug()) {
-            log("Initializing");
+            LOGGER.debug("Initializing");
         }
 
         // check that all init parameters have been declared in
@@ -165,7 +168,7 @@ public class Bounce extends GenericMailet implements RedirectNotify {
 
         if (getInitParameters().isStatic()) {
             if (getInitParameters().isDebug()) {
-                log(getInitParameters().asString());
+                LOGGER.debug(getInitParameters().asString());
             }
         }
     }
@@ -238,7 +241,7 @@ public class Bounce extends GenericMailet implements RedirectNotify {
             passThrough(originalMail);
         } else {
             if (getInitParameters().isDebug()) {
-                log("Processing a bounce request for a message with a reverse path.  The bounce will be sent to " + originalMail.getSender().toString());
+                LOGGER.debug("Processing a bounce request for a message with a reverse path.  The bounce will be sent to " + originalMail.getSender().toString());
             }
             ProcessRedirectNotify.from(this).process(originalMail);
         }
@@ -246,7 +249,7 @@ public class Bounce extends GenericMailet implements RedirectNotify {
 
     private void passThrough(Mail originalMail) throws MessagingException {
         if (getInitParameters().isDebug()) {
-            log("Processing a bounce request for a message with an empty reverse-path.  No bounce will be sent.");
+            LOGGER.debug("Processing a bounce request for a message with an empty reverse-path.  No bounce will be sent.");
         }
         if (!getInitParameters().getPassThrough()) {
             originalMail.setState(Mail.GHOST);


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[10/38] james-project git commit: JAMES-2114 MDC logging context for IMAP

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/server/protocols/protocols-imap4/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-imap4/pom.xml b/server/protocols/protocols-imap4/pom.xml
index c38e647..68ca0cf 100644
--- a/server/protocols/protocols-imap4/pom.xml
+++ b/server/protocols/protocols-imap4/pom.xml
@@ -43,6 +43,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.james</groupId>
+            <artifactId>james-server-util-java8</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
             <artifactId>metrics-api</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java
new file mode 100644
index 0000000..35ccf32
--- /dev/null
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPMDCContext.java
@@ -0,0 +1,78 @@
+/****************************************************************
+ * 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.imapserver.netty;
+
+import java.io.Closeable;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.Optional;
+
+import org.apache.james.imap.api.process.SelectedMailbox;
+import org.apache.james.protocols.imap.IMAPSession;
+import org.apache.james.util.MDCBuilder;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.ChannelLocal;
+
+public class IMAPMDCContext {
+    public static Closeable from(ChannelHandlerContext ctx, ChannelLocal<Object> attributes) {
+        return MDCBuilder.create()
+            .addContext(from(attributes.get(ctx.getChannel())))
+            .addContext(MDCBuilder.PROTOCOL, "IMAP")
+            .addContext(MDCBuilder.IP, retrieveIp(ctx))
+            .addContext(MDCBuilder.HOST, retrieveHost(ctx))
+            .build();
+    }
+
+    private static String retrieveIp(ChannelHandlerContext ctx) {
+        SocketAddress remoteAddress = ctx.getChannel().getRemoteAddress();
+        if (remoteAddress instanceof InetSocketAddress) {
+            InetSocketAddress address = (InetSocketAddress) remoteAddress;
+            return address.getAddress().getHostAddress();
+        }
+        return remoteAddress.toString();
+    }
+
+    private static String retrieveHost(ChannelHandlerContext ctx) {
+        SocketAddress remoteAddress = ctx.getChannel().getRemoteAddress();
+        if (remoteAddress instanceof InetSocketAddress) {
+            InetSocketAddress address = (InetSocketAddress) remoteAddress;
+            return address.getHostName();
+        }
+        return remoteAddress.toString();
+    }
+
+    private static MDCBuilder from(Object o) {
+        return Optional.ofNullable(o)
+            .filter(object -> object instanceof IMAPSession)
+            .map(object -> (IMAPSession) object)
+            .map(imapSession -> MDCBuilder.create()
+                .addContext(MDCBuilder.SESSION_ID, imapSession.getSessionID())
+                .addContext(MDCBuilder.USER, imapSession.getUser())
+                .addContext(from(Optional.ofNullable(imapSession.getSelected()))))
+            .orElse(MDCBuilder.create());
+    }
+
+    private static MDCBuilder from(Optional<SelectedMailbox> selectedMailbox) {
+        return selectedMailbox
+            .map(value -> MDCBuilder.create()
+                .addContext("selectedMailbox", value.getPath().asString()))
+            .orElse(MDCBuilder.create());
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
index 48b522e..14d1a20 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.imapserver.netty;
 
+import java.io.Closeable;
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.util.function.Supplier;
@@ -34,8 +35,6 @@ import org.apache.james.imap.encode.ImapResponseComposer;
 import org.apache.james.imap.encode.base.ImapResponseComposerImpl;
 import org.apache.james.imap.main.ResponseEncoder;
 import org.apache.james.metrics.api.Metric;
-import org.apache.james.protocols.api.logger.ContextualLogger;
-import org.apache.james.protocols.imap.IMAPSession;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelFutureListener;
@@ -95,28 +94,16 @@ public class ImapChannelUpstreamHandler extends SimpleChannelUpstreamHandler imp
     }
 
     private Logger getLogger(final ChannelHandlerContext ctx) {
-        return new ContextualLogger(
-                getUserSupplier(ctx),
-                String.valueOf(ctx.getChannel().getId()),
-                logger);
-    }
-
-    private Supplier<String> getUserSupplier(final ChannelHandlerContext ctx) {
-        return () -> {
-            Object o = attributes.get(ctx.getChannel());
-            if (o instanceof IMAPSession) {
-                IMAPSession session = (IMAPSession) o;
-                return session.getUser();
-            }
-            return null;
-        };
+        return logger;
     }
 
     @Override
     public void channelBound(final ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
-        ImapSession imapsession = new NettyImapSession(ctx.getChannel(), toLogSupplier(ctx), context, enabledCipherSuites, compress, plainAuthDisallowed);
-        attributes.set(ctx.getChannel(), imapsession);
-        super.channelBound(ctx, e);
+        try (Closeable closeable = IMAPMDCContext.from(ctx, attributes)) {
+            ImapSession imapsession = new NettyImapSession(ctx.getChannel(), () -> getLogger(ctx), context, enabledCipherSuites, compress, plainAuthDisallowed);
+            attributes.set(ctx.getChannel(), imapsession);
+            super.channelBound(ctx, e);
+        }
     }
 
     private Supplier<Logger> toLogSupplier(final ChannelHandlerContext ctx) {
@@ -125,119 +112,120 @@ public class ImapChannelUpstreamHandler extends SimpleChannelUpstreamHandler imp
 
     @Override
     public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
-        
-        InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
-        getLogger(ctx).info("Connection closed for " + address.getAddress().getHostAddress());
-
-        // remove the stored attribute for the channel to free up resources
-        // See JAMES-1195
-        ImapSession imapSession = (ImapSession) attributes.remove(ctx.getChannel());
-        if (imapSession != null)
-            imapSession.logout();
-        imapConnectionsMetric.decrement();
-
-        super.channelClosed(ctx, e);
-    }
-
-    @Override
-    public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
-        
-        InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
-        getLogger(ctx).info("Connection established from " + address.getAddress().getHostAddress());
-        imapConnectionsMetric.increment();
-
-        ImapResponseComposer response = new ImapResponseComposerImpl(new ChannelImapResponseWriter(ctx.getChannel()));
-        ctx.setAttachment(response);
+        try (Closeable closeable = IMAPMDCContext.from(ctx, attributes)) {
+            InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
+            getLogger(ctx).info("Connection closed for " + address.getAddress().getHostAddress());
 
-        // write hello to client
-        response.untagged().message("OK").message(hello).end();
-        super.channelConnected(ctx, e);
+            // remove the stored attribute for the channel to free up resources
+            // See JAMES-1195
+            ImapSession imapSession = (ImapSession) attributes.remove(ctx.getChannel());
+            if (imapSession != null)
+                imapSession.logout();
+            imapConnectionsMetric.decrement();
 
+            super.channelClosed(ctx, e);
+        }
     }
 
     @Override
-    public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
-        
-        getLogger(ctx).warn("Error while processing imap request", e.getCause());
-
-        if (e.getCause() instanceof TooLongFrameException) {
-
-            // Max line length exceeded
-            // See RFC 2683 section 3.2.1
-            //
-            // "For its part, a server should allow for a command line of at
-            // least
-            // 8000 octets. This provides plenty of leeway for accepting
-            // reasonable
-            // length commands from clients. The server should send a BAD
-            // response
-            // to a command that does not end within the server's maximum
-            // accepted
-            // command length."
-            //
-            // See also JAMES-1190
-            ImapResponseComposer composer = (ImapResponseComposer) ctx.getAttachment();
-            composer.untaggedResponse(ImapConstants.BAD + " failed. Maximum command line length exceeded");
-            
-        } else {
-
-            // logout on error not sure if that is the best way to handle it
-            final ImapSession imapSession = (ImapSession) attributes.get(ctx.getChannel());
-            if (imapSession != null)
-                imapSession.logout();
+    public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
+        try (Closeable closeable = IMAPMDCContext.from(ctx, attributes)) {
+            InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
+            getLogger(ctx).info("Connection established from " + address.getAddress().getHostAddress());
+            imapConnectionsMetric.increment();
 
-            // Make sure we close the channel after all the buffers were flushed out
-            Channel channel = ctx.getChannel();
-            if (channel.isConnected()) {
-                channel.write(ChannelBuffers.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE);
-            }
+            ImapResponseComposer response = new ImapResponseComposerImpl(new ChannelImapResponseWriter(ctx.getChannel()));
+            ctx.setAttachment(response);
 
+            // write hello to client
+            response.untagged().message("OK").message(hello).end();
+            super.channelConnected(ctx, e);
         }
-
     }
 
     @Override
-    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
-
-        imapCommandsMetric.increment();
-        ImapSession session = (ImapSession) attributes.get(ctx.getChannel());
-        ImapResponseComposer response = (ImapResponseComposer) ctx.getAttachment();
-        ImapMessage message = (ImapMessage) e.getMessage();
-        ChannelPipeline cp = ctx.getPipeline();
+    public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
+        try (Closeable closeable = IMAPMDCContext.from(ctx, attributes)) {
+            getLogger(ctx).warn("Error while processing imap request", e.getCause());
+
+            if (e.getCause() instanceof TooLongFrameException) {
+
+                // Max line length exceeded
+                // See RFC 2683 section 3.2.1
+                //
+                // "For its part, a server should allow for a command line of at
+                // least
+                // 8000 octets. This provides plenty of leeway for accepting
+                // reasonable
+                // length commands from clients. The server should send a BAD
+                // response
+                // to a command that does not end within the server's maximum
+                // accepted
+                // command length."
+                //
+                // See also JAMES-1190
+                ImapResponseComposer composer = (ImapResponseComposer) ctx.getAttachment();
+                composer.untaggedResponse(ImapConstants.BAD + " failed. Maximum command line length exceeded");
 
-        try {
-            if (cp.get(NettyConstants.EXECUTION_HANDLER) != null) {
-                cp.addBefore(NettyConstants.EXECUTION_HANDLER, NettyConstants.HEARTBEAT_HANDLER, heartbeatHandler);
             } else {
-                cp.addBefore(NettyConstants.CORE_HANDLER, NettyConstants.HEARTBEAT_HANDLER, heartbeatHandler);
 
-            }
-            final ResponseEncoder responseEncoder = new ResponseEncoder(encoder, response, session);
-            processor.process(message, responseEncoder, session);
+                // logout on error not sure if that is the best way to handle it
+                final ImapSession imapSession = (ImapSession) attributes.get(ctx.getChannel());
+                if (imapSession != null)
+                    imapSession.logout();
 
-            if (session.getState() == ImapSessionState.LOGOUT) {
                 // Make sure we close the channel after all the buffers were flushed out
                 Channel channel = ctx.getChannel();
                 if (channel.isConnected()) {
                     channel.write(ChannelBuffers.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE);
                 }
-            }
-            final IOException failure = responseEncoder.getFailure();
 
-            if (failure != null) {
-                final Logger logger = session.getLog();
-                logger.info(failure.getMessage());
-                if (logger.isDebugEnabled()) {
-                    logger.debug("Failed to write " + message, failure);
-                }
-                throw failure;
             }
-        } finally {
-            ctx.getPipeline().remove(NettyConstants.HEARTBEAT_HANDLER);
         }
+    }
 
-        super.messageReceived(ctx, e);
+    @Override
+    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
+        try (Closeable closeable = IMAPMDCContext.from(ctx, attributes)) {
+            imapCommandsMetric.increment();
+            ImapSession session = (ImapSession) attributes.get(ctx.getChannel());
+            ImapResponseComposer response = (ImapResponseComposer) ctx.getAttachment();
+            ImapMessage message = (ImapMessage) e.getMessage();
+            ChannelPipeline cp = ctx.getPipeline();
+
+            try {
+                if (cp.get(NettyConstants.EXECUTION_HANDLER) != null) {
+                    cp.addBefore(NettyConstants.EXECUTION_HANDLER, NettyConstants.HEARTBEAT_HANDLER, heartbeatHandler);
+                } else {
+                    cp.addBefore(NettyConstants.CORE_HANDLER, NettyConstants.HEARTBEAT_HANDLER, heartbeatHandler);
+
+                }
+                final ResponseEncoder responseEncoder = new ResponseEncoder(encoder, response, session);
+                processor.process(message, responseEncoder, session);
+
+                if (session.getState() == ImapSessionState.LOGOUT) {
+                    // Make sure we close the channel after all the buffers were flushed out
+                    Channel channel = ctx.getChannel();
+                    if (channel.isConnected()) {
+                        channel.write(ChannelBuffers.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE);
+                    }
+                }
+                final IOException failure = responseEncoder.getFailure();
+
+                if (failure != null) {
+                    final Logger logger = session.getLog();
+                    logger.info(failure.getMessage());
+                    if (logger.isDebugEnabled()) {
+                        logger.debug("Failed to write " + message, failure);
+                    }
+                    throw failure;
+                }
+            } finally {
+                ctx.getPipeline().remove(NettyConstants.HEARTBEAT_HANDLER);
+            }
 
+            super.messageReceived(ctx, e);
+        }
     }
 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[17/38] james-project git commit: JAMES-2114 Remove usage of contextual logger

Posted by bt...@apache.org.
JAMES-2114 Remove usage of contextual logger


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b305e557
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b305e557
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b305e557

Branch: refs/heads/master
Commit: b305e55740b2f0328cb7379c814666315f5e24c0
Parents: b7bcfd9
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 16:59:25 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:43 2017 +0700

----------------------------------------------------------------------
 .../protocols/api/ProtocolSessionImpl.java      |   3 +-
 .../protocols/api/logger/ContextualLogger.java  | 349 -------------------
 2 files changed, 1 insertion(+), 351 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b305e557/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
index 9a5f8d8..930a137 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
@@ -25,7 +25,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.james.protocols.api.handler.LineHandler;
-import org.apache.james.protocols.api.logger.ContextualLogger;
 import org.slf4j.Logger;
 
 /**
@@ -46,7 +45,7 @@ public class ProtocolSessionImpl implements ProtocolSession {
     
     public ProtocolSessionImpl(Logger logger, ProtocolTransport transport, ProtocolConfiguration config) {
         this.transport = transport;
-        this.pLog = new ContextualLogger(this, logger);
+        this.pLog = logger;
         this.connectionState = new HashMap<>();
         this.sessionState = new HashMap<>();
         this.config = config;

http://git-wip-us.apache.org/repos/asf/james-project/blob/b305e557/protocols/api/src/main/java/org/apache/james/protocols/api/logger/ContextualLogger.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/logger/ContextualLogger.java b/protocols/api/src/main/java/org/apache/james/protocols/api/logger/ContextualLogger.java
deleted file mode 100644
index 367c386..0000000
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/logger/ContextualLogger.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/****************************************************************
- * 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.protocols.api.logger;
-
-import java.util.function.Supplier;
-import org.apache.james.protocols.api.ProtocolSession;
-import org.slf4j.Logger;
-import org.slf4j.Marker;
-
-/**
- * {@link Logger} which adds context informations to the logged message.
- *
- */
-public class ContextualLogger implements org.slf4j.Logger {
-
-    private final Supplier<String> userSupplier;
-    private final String sessionId;
-    private final Logger logger;
-
-    public ContextualLogger(final ProtocolSession session, Logger logger) {
-        this(session::getUser, session.getSessionID(), logger);
-    }
-
-    public ContextualLogger(Supplier<String> userSupplier, String sessionId, Logger logger) {
-        this.userSupplier = userSupplier;
-        this.sessionId = sessionId;
-        this.logger = logger;
-    }
-
-    private String getText(String str) {
-        String user = userSupplier.get();
-        StringBuilder sb = new StringBuilder();
-        sb.append("Id='").append(sessionId);
-        sb.append("' User='");
-        if (user != null) {
-            sb.append(user);
-        }
-        sb.append("' ").append(str);
-        return sb.toString();
-    }
-
-    public void debug(String arg0) {
-        logger.debug(getText(arg0));
-    }
-
-    public void debug(String arg0, Throwable arg1) {
-        logger.debug(getText(arg0), arg1);
-    }
-
-    public void error(String arg0) {
-        logger.error(getText(arg0));
-    }
-
-    public void error(String arg0, Throwable arg1) {
-        logger.error(getText(arg0), arg1);
-    }
-
-    public void info(String arg0) {
-        logger.info(getText(arg0));
-    }
-
-    public void info(String arg0, Throwable arg1) {
-        logger.info(getText(arg0), arg1);
-    }
-
-    public boolean isDebugEnabled() {
-        return logger.isDebugEnabled();
-    }
-
-    public boolean isErrorEnabled() {
-        return logger.isErrorEnabled();
-    }
-
-    public boolean isInfoEnabled() {
-        return logger.isInfoEnabled();
-    }
-
-    public boolean isTraceEnabled() {
-        return logger.isTraceEnabled();
-    }
-
-    public boolean isWarnEnabled() {
-        return logger.isWarnEnabled();
-    }
-
-    public void trace(String arg0) {
-        logger.trace(getText(arg0));
-    }
-
-    public void trace(String arg0, Throwable arg1) {
-        logger.trace(getText(arg0), arg1);
-    }
-
-    public void warn(String arg0) {
-        logger.warn(getText(arg0));
-    }
-
-    public void warn(String arg0, Throwable arg1) {
-        logger.warn(getText(arg0), arg1);
-    }
-
-    @Override
-    public String getName() {
-        return logger.getName();
-    }
-
-    @Override
-    public void trace(String format, Object arg) {
-        logger.trace(getText(format), arg);
-    }
-
-    @Override
-    public void trace(String format, Object arg1, Object arg2) {
-        logger.trace(getText(format), arg1, arg2);
-    }
-
-    @Override
-    public void trace(String format, Object[] argArray) {
-        logger.trace(getText(format), argArray);
-    }
-
-    @Override
-    public boolean isTraceEnabled(Marker marker) {
-        return logger.isTraceEnabled(marker);
-    }
-
-    @Override
-    public void trace(Marker marker, String msg) {
-        logger.trace(marker, getText(msg));
-    }
-
-    @Override
-    public void trace(Marker marker, String format, Object arg) {
-        logger.trace(marker, getText(format), arg);
-    }
-
-    @Override
-    public void trace(Marker marker, String format, Object arg1, Object arg2) {
-        logger.trace(marker, getText(format), arg1, arg2);
-    }
-
-    @Override
-    public void trace(Marker marker, String format, Object[] argArray) {
-        logger.trace(marker, getText(format), argArray);
-    }
-
-    @Override
-    public void trace(Marker marker, String msg, Throwable t) {
-        logger.trace(marker, getText(msg), t);
-
-    }
-
-    @Override
-    public void debug(String format, Object arg) {
-        logger.debug(getText(format), arg);
-    }
-
-    @Override
-    public void debug(String format, Object arg1, Object arg2) {
-        logger.debug(getText(format), arg1, arg2);
-    }
-
-    @Override
-    public void debug(String format, Object[] argArray) {
-        logger.debug(getText(format), argArray);
-    }
-
-    @Override
-    public boolean isDebugEnabled(Marker marker) {
-        return logger.isTraceEnabled(marker);
-    }
-
-    @Override
-    public void debug(Marker marker, String msg) {
-        logger.debug(marker, getText(msg));
-    }
-
-    @Override
-    public void debug(Marker marker, String format, Object arg) {
-        logger.debug(marker, getText(format), arg);
-    }
-
-    @Override
-    public void debug(Marker marker, String format, Object arg1, Object arg2) {
-        logger.debug(marker, getText(format), arg1, arg2);
-    }
-
-    @Override
-    public void debug(Marker marker, String format, Object[] argArray) {
-        logger.debug(marker, getText(format), argArray);
-    }
-
-    @Override
-    public void debug(Marker marker, String msg, Throwable t) {
-        logger.debug(marker, getText(msg), t);
-    }
-
-    @Override
-    public void info(String format, Object arg) {
-        logger.info(getText(format), arg);
-    }
-
-    @Override
-    public void info(String format, Object arg1, Object arg2) {
-        logger.info(getText(format), arg1, arg2);
-    }
-
-    @Override
-    public void info(String format, Object[] argArray) {
-        logger.info(getText(format), argArray);
-    }
-
-    @Override
-    public boolean isInfoEnabled(Marker marker) {
-        return logger.isInfoEnabled(marker);
-    }
-
-    @Override
-    public void info(Marker marker, String msg) {
-        logger.info(marker, getText(msg));
-    }
-
-    @Override
-    public void info(Marker marker, String format, Object arg) {
-        logger.info(marker, getText(format), arg);
-    }
-
-    @Override
-    public void info(Marker marker, String format, Object arg1, Object arg2) {
-        logger.info(marker, getText(format), arg1, arg2);
-    }
-
-    @Override
-    public void info(Marker marker, String format, Object[] argArray) {
-        logger.info(marker, getText(format), argArray);
-    }
-
-    @Override
-    public void info(Marker marker, String msg, Throwable t) {
-        logger.info(marker, getText(msg), t);
-    }
-
-    @Override
-    public void warn(String format, Object arg) {
-        logger.warn(getText(format), arg);
-    }
-
-    @Override
-    public void warn(String format, Object[] argArray) {
-        logger.warn(getText(format), argArray);
-    }
-
-    @Override
-    public void warn(String format, Object arg1, Object arg2) {
-        logger.warn(getText(format), arg1, arg2);
-    }
-
-    @Override
-    public boolean isWarnEnabled(Marker marker) {
-        return logger.isWarnEnabled(marker);
-    }
-
-    @Override
-    public void warn(Marker marker, String msg) {
-        logger.warn(marker, getText(msg));
-    }
-
-    @Override
-    public void warn(Marker marker, String format, Object arg) {
-        logger.warn(marker, getText(format), arg);
-    }
-
-    @Override
-    public void warn(Marker marker, String format, Object arg1, Object arg2) {
-        logger.warn(marker, getText(format), arg1, arg2);
-    }
-
-    @Override
-    public void warn(Marker marker, String format, Object[] argArray) {
-        logger.warn(marker, getText(format), argArray);
-    }
-
-    @Override
-    public void warn(Marker marker, String msg, Throwable t) {
-        logger.warn(marker, getText(msg), t);
-    }
-
-    @Override
-    public void error(String format, Object arg) {
-        logger.error(getText(format), arg);
-    }
-
-    @Override
-    public void error(String format, Object arg1, Object arg2) {
-        logger.error(getText(format), arg1, arg2);
-    }
-
-    @Override
-    public void error(String format, Object[] argArray) {
-        logger.error(getText(format), argArray);
-    }
-
-    @Override
-    public boolean isErrorEnabled(Marker marker) {
-        return logger.isErrorEnabled(marker);
-    }
-
-    @Override
-    public void error(Marker marker, String msg) {
-        logger.error(marker, getText(msg));
-    }
-
-    @Override
-    public void error(Marker marker, String format, Object arg) {
-        logger.error(marker, getText(format), arg);
-    }
-
-    @Override
-    public void error(Marker marker, String format, Object arg1, Object arg2) {
-        logger.error(marker, getText(format), arg1, arg2);
-    }
-
-    @Override
-    public void error(Marker marker, String format, Object[] argArray) {
-        logger.error(marker, getText(format), argArray);
-    }
-
-    @Override
-    public void error(Marker marker, String msg, Throwable t) {
-        logger.error(marker, getText(msg), t);
-    }
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[31/38] james-project git commit: JAMES-2114 Deprecate the mailet Logging APIs

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
index b40a542..eb41fcf 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java
@@ -35,6 +35,7 @@ import javax.mail.internet.MimeMessage;
 import org.apache.commons.lang.time.FastDateFormat;
 import org.apache.james.core.MailImpl;
 import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
 import org.apache.james.transport.mailets.redirect.InitParameters;
 import org.apache.james.transport.mailets.redirect.MailModifier;
 import org.apache.james.transport.mailets.redirect.NotifyMailetInitParameters;
@@ -57,6 +58,8 @@ import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.RFC2822Headers;
 import org.apache.mailet.base.StringUtils;
 import org.apache.mailet.base.mail.MimeMultipartReport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -102,6 +105,7 @@ import com.google.common.collect.ImmutableList;
  */
 
 public class DSNBounce extends GenericMailet implements RedirectNotify {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ManageSieveMailet.class);
 
     private static final String[] CONFIGURABLE_PARAMETERS = new String[]{ "debug", "passThrough", "messageString", "attachment", "sender", "prefix" };
     private static final List<MailAddress> RECIPIENT_MAIL_ADDRESSES = ImmutableList.of(SpecialAddress.REVERSE_PATH);
@@ -129,7 +133,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
     @Override
     public void init() throws MessagingException {
         if (getInitParameters().isDebug()) {
-            log("Initializing");
+            LOGGER.debug("Initializing");
         }
 
         // check that all init parameters have been declared in
@@ -138,7 +142,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
 
         if (getInitParameters().isStatic()) {
             if (getInitParameters().isDebug()) {
-                log(getInitParameters().asString());
+                LOGGER.debug(getInitParameters().asString());
             }
         }
         messageString = getInitParameter("messageString",
@@ -246,7 +250,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
             newMail.setRecipients(getSenderAsList(originalMail));
        
             if (getInitParameters().isDebug()) {
-                log("New mail - sender: " + newMail.getSender() + ", recipients: " + StringUtils.arrayToString(newMail.getRecipients().toArray()) + ", name: " + newMail.getName() + ", remoteHost: " + newMail.getRemoteHost() + ", remoteAddr: " + newMail.getRemoteAddr() + ", state: " + newMail.getState()
+                LOGGER.debug("New mail - sender: " + newMail.getSender() + ", recipients: " + StringUtils.arrayToString(newMail.getRecipients().toArray()) + ", name: " + newMail.getName() + ", remoteHost: " + newMail.getRemoteHost() + ", remoteAddr: " + newMail.getRemoteAddr() + ", state: " + newMail.getState()
                         + ", lastUpdated: " + newMail.getLastUpdated() + ", errorMessage: " + newMail.getErrorMessage());
             }
        
@@ -278,7 +282,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
     private boolean hasSender(Mail originalMail) {
         if (originalMail.getSender() == null) {
             if (getInitParameters().isDebug()) {
-                log("Processing a bounce request for a message with an empty reverse-path.  No bounce will be sent.");
+                LOGGER.info("Processing a bounce request for a message with an empty reverse-path.  No bounce will be sent.");
             }
             return false;
         }
@@ -312,7 +316,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
     private List<MailAddress> getSenderAsList(Mail originalMail) {
         MailAddress reversePath = originalMail.getSender();
         if (getInitParameters().isDebug()) {
-            log("Processing a bounce request for a message with a reverse path.  The bounce will be sent to " + reversePath);
+            LOGGER.debug("Processing a bounce request for a message with a reverse path.  The bounce will be sent to " + reversePath);
         }
 
         return ImmutableList.of(reversePath);
@@ -398,7 +402,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify {
             buffer.append("Reporting-MTA: dns; " + dns.getHostName(dns.getLocalHost()))
                 .append(LINE_BREAK);
         } catch (Exception e) {
-            log("WARNING: sending DSN without required Reporting-MTA Address");
+            LOGGER.error("Sending DSN without required Reporting-MTA Address", e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
index 018ef9e..a07b112 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
@@ -41,6 +41,8 @@ import org.apache.james.transport.util.TosUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Strings;
@@ -91,6 +93,7 @@ import com.google.common.collect.ImmutableList;
  * </p>
  */
 public class Forward extends GenericMailet implements RedirectNotify {
+    private static final Logger LOGGER = LoggerFactory.getLogger(Forward.class);
 
     private static final String[] CONFIGURABLE_PARAMETERS = new String[] {
             "debug", "passThrough", "fakeDomainCheck", "forwardto", "forwardTo" };
@@ -127,7 +130,7 @@ public class Forward extends GenericMailet implements RedirectNotify {
     @Override
     public void init() throws MessagingException {
         if (getInitParameters().isDebug()) {
-            log("Initializing");
+            LOGGER.debug("Initializing");
         }
 
         // check that all init parameters have been declared in
@@ -136,7 +139,7 @@ public class Forward extends GenericMailet implements RedirectNotify {
 
         if (getInitParameters().isStatic()) {
             if (getInitParameters().isDebug()) {
-                log(getInitParameters().asString());
+                LOGGER.debug(getInitParameters().asString());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/FromRepository.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/FromRepository.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/FromRepository.java
index 57592e1..f6cd581 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/FromRepository.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/FromRepository.java
@@ -29,9 +29,12 @@ import javax.mail.MessagingException;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mailrepository.api.MailRepositoryStore;
+import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Re-spools Mail found in the specified Repository.
@@ -46,6 +49,7 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class FromRepository extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ManageSieveMailet.class);
 
     /** The repository from where this mailet spools mail. */
     private MailRepository repository;
@@ -102,17 +106,7 @@ public class FromRepository extends GenericMailet {
             try {
                 Mail mail = repository.retrieve(key);
                 if (mail != null && mail.getRecipients() != null) {
-                    log((new StringBuffer(160).append("Spooling mail ").append(mail.getName()).append(" from ").append(repositoryPath)).toString());
-
-                    /*
-                     * log("Return-Path: " +
-                     * mail.getMessage().getHeader(RFC2822Headers.RETURN_PATH,
-                     * ", ")); log("Sender: " + mail.getSender()); log("To: " +
-                     * mail.getMessage().getHeader(RFC2822Headers.TO, ", "));
-                     * log("Recipients: "); for (Iterator i =
-                     * mail.getRecipients().iterator(); i.hasNext(); ) {
-                     * log("    " + ((MailAddress)i.next()).toString()); };
-                     */
+                    LOGGER.debug((new StringBuffer(160).append("Spooling mail ").append(mail.getName()).append(" from ").append(repositoryPath)).toString());
 
                     mail.setAttribute("FromRepository", Boolean.TRUE);
                     mail.setState(processor);
@@ -122,7 +116,7 @@ public class FromRepository extends GenericMailet {
                     LifecycleUtil.dispose(mail);
                 }
             } catch (MessagingException e) {
-                log((new StringBuffer(160).append("Unable to re-spool mail ").append(key).append(" from ").append(repositoryPath)).toString(), e);
+                LOGGER.error((new StringBuffer(160).append("Unable to re-spool mail ").append(key).append(" from ").append(repositoryPath)).toString(), e);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCAlias.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCAlias.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCAlias.java
index df89bd5..6b71b97 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCAlias.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCAlias.java
@@ -38,6 +38,8 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Rewrites recipient addresses based on a database table. The connection is
@@ -55,6 +57,7 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class JDBCAlias extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JDBCAlias.class);
 
     protected DataSource datasource;
     protected String query = null;
@@ -65,11 +68,7 @@ public class JDBCAlias extends GenericMailet {
     }
 
     // The JDBCUtil helper class
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            log("JDBCAlias: " + logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * Initialize the mailet
@@ -149,7 +148,7 @@ public class JDBCAlias extends GenericMailet {
                         // Don't alias this address... there's an invalid
                         // address mapping here
                         String exceptionBuffer = "There is an invalid alias from " + recipient + " to " + mappingRS.getString(1);
-                        log(exceptionBuffer);
+                        LOGGER.error(exceptionBuffer, pe);
                     }
                 } finally {
                     ResultSet localRS = mappingRS;

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCRecipientRewriteTable.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCRecipientRewriteTable.java
index c9e77cc..a06266f 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCRecipientRewriteTable.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/JDBCRecipientRewriteTable.java
@@ -121,11 +121,7 @@ public class JDBCRecipientRewriteTable extends AbstractRecipientRewriteTable {
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            log("JDBCRecipientRewriteTable: " + logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     @Inject
     public void setDataSourceSelector(DataSource datasource) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
index f10cf9e..3522a56 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
@@ -44,6 +44,8 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetConfig;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -121,6 +123,7 @@ import com.google.common.collect.ImmutableList;
  * </p>
  */
 public class NotifyPostmaster extends GenericMailet implements RedirectNotify {
+    private static final Logger LOGGER = LoggerFactory.getLogger(NotifyPostmaster.class);
 
     private static final String[] CONFIGURABLE_PARAMETERS = new String[]{
             "debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "notice", "sender", "sendingAddress", "prefix", "attachError", "to" };
@@ -163,7 +166,7 @@ public class NotifyPostmaster extends GenericMailet implements RedirectNotify {
     @Override
     public void init() throws MessagingException {
         if (getInitParameters().isDebug()) {
-            log("Initializing");
+            LOGGER.debug("Initializing");
         }
 
         // check that all init parameters have been declared in
@@ -172,7 +175,7 @@ public class NotifyPostmaster extends GenericMailet implements RedirectNotify {
 
         if (getInitParameters().isStatic()) {
             if (getInitParameters().isDebug()) {
-                log(getInitParameters().asString());
+                LOGGER.debug(getInitParameters().asString());
             }
         }
     }
@@ -201,7 +204,7 @@ public class NotifyPostmaster extends GenericMailet implements RedirectNotify {
             if (specialAddress.isPresent()) {
                 return ImmutableList.of(specialAddress.get().toInternetAddress());
             }
-            log("\"to\" parameter ignored, set to postmaster");
+            LOGGER.info("\"to\" parameter ignored, set to postmaster");
         }
         return ImmutableList.of(getMailetContext().getPostmaster().toInternetAddress());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
index 74b12c3..85cec94 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
@@ -44,6 +44,8 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetConfig;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -120,6 +122,7 @@ import com.google.common.collect.ImmutableList;
  * </p>
  */
 public class NotifySender extends GenericMailet implements RedirectNotify {
+    private static final Logger LOGGER = LoggerFactory.getLogger(NotifySender.class);
 
     private static final String[] CONFIGURABLE_PARAMETERS = new String[]{
             "debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "notice", "sender", "sendingAddress", "prefix", "attachError", "to" };
@@ -163,7 +166,7 @@ public class NotifySender extends GenericMailet implements RedirectNotify {
     @Override
     public void init() throws MessagingException {
         if (getInitParameters().isDebug()) {
-            log("Initializing");
+            LOGGER.debug("Initializing");
         }
 
         // check that all init parameters have been declared in
@@ -172,7 +175,7 @@ public class NotifySender extends GenericMailet implements RedirectNotify {
 
         if (getInitParameters().isStatic()) {
             if (getInitParameters().isDebug()) {
-                log(getInitParameters().asString());
+                LOGGER.debug(getInitParameters().asString());
             }
         }
     }
@@ -201,7 +204,7 @@ public class NotifySender extends GenericMailet implements RedirectNotify {
             if (specialAddress.isPresent()) {
                 return ImmutableList.of(specialAddress.get().toInternetAddress());
             }
-            log("\"to\" parameter ignored, set to sender");
+            LOGGER.info("\"to\" parameter ignored, set to sender");
         }
         return ImmutableList.of(SpecialAddress.SENDER.toInternetAddress());
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
index 1fe511a..c47b744 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
@@ -35,7 +35,8 @@ import org.apache.james.rrt.lib.Mappings;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
-import org.apache.mailet.MailetContext.LogLevel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Function;
@@ -46,6 +47,8 @@ import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 
 public class RecipientRewriteTableProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(RecipientRewriteTableProcessor.class);
+
     private final org.apache.james.rrt.api.RecipientRewriteTable virtualTableStore;
     private final DomainList domainList;
     private final MailetContext mailetContext;
@@ -117,7 +120,7 @@ public class RecipientRewriteTableProcessor {
             }
             return origin(recipient);
         } catch (ErrorMappingException | RecipientRewriteTableException | MessagingException e) {
-            mailetContext.log(LogLevel.INFO, "Error while process mail.", e);
+            LOGGER.info("Error while process mail.", e);
             return error(recipient);
         }
     }
@@ -181,9 +184,9 @@ public class RecipientRewriteTableProcessor {
         if (!remoteAddress.isEmpty()) {
             try {
                 mailetContext.sendMail(sender, remoteAddress, message);
-                mailetContext.log(LogLevel.INFO, "Mail for " + recipient + " forwarded to " + remoteAddress);
+                LOGGER.info("Mail for " + recipient + " forwarded to " + remoteAddress);
             } catch (MessagingException ex) {
-                mailetContext.log(LogLevel.WARN, "Error forwarding mail to " + remoteAddress);
+                LOGGER.warn("Error forwarding mail to " + remoteAddress);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
index e2c769e..1167408 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
@@ -26,6 +26,7 @@ import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
 
 import org.apache.james.dnsservice.api.DNSService;
+import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
 import org.apache.james.transport.mailets.redirect.AddressExtractor;
 import org.apache.james.transport.mailets.redirect.InitParameters;
 import org.apache.james.transport.mailets.redirect.ProcessRedirectNotify;
@@ -43,6 +44,8 @@ import org.apache.james.transport.util.TosUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
@@ -300,6 +303,7 @@ import com.google.common.collect.ImmutableList;
  */
 
 public class Redirect extends GenericMailet implements RedirectNotify {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ManageSieveMailet.class);
 
     private static final String[] CONFIGURABLE_PARAMETERS = new String[] {
             "static", "debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "recipients", "to", "replyTo", "replyto", "reversePath", "sender", "subject", "prefix", "attachError", "isReply" };
@@ -335,7 +339,7 @@ public class Redirect extends GenericMailet implements RedirectNotify {
     @Override
     public void init() throws MessagingException {
         if (getInitParameters().isDebug()) {
-            log("Initializing");
+            LOGGER.debug("Initializing");
         }
 
         // check that all init parameters have been declared in
@@ -344,7 +348,7 @@ public class Redirect extends GenericMailet implements RedirectNotify {
 
         if (getInitParameters().isStatic()) {
             if (getInitParameters().isDebug()) {
-                log(getInitParameters().asString());
+                LOGGER.debug(getInitParameters().asString());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
index 76736cf..1d74732 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
@@ -44,6 +44,8 @@ import org.apache.james.transport.mailets.remoteDelivery.RemoteDeliverySocketFac
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.HashMultimap;
 
@@ -118,6 +120,7 @@ import com.google.common.collect.HashMultimap;
  * </ul>
  */
 public class RemoteDelivery extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(RemoteDelivery.class);
 
     public enum THREAD_STATE {
         START_THREADS,
@@ -158,7 +161,7 @@ public class RemoteDelivery extends GenericMailet {
             if (configuration.isBindUsed())
                 RemoteDeliverySocketFactory.setBindAdress(configuration.getBindAddress());
         } catch (UnknownHostException e) {
-            log("Invalid bind setting (" + configuration.getBindAddress() + "): " + e.toString());
+            LOGGER.error("Invalid bind setting (" + configuration.getBindAddress() + "): ", e);
         }
         if (startThreads == THREAD_STATE.START_THREADS) {
             initDeliveryThreads();
@@ -187,7 +190,7 @@ public class RemoteDelivery extends GenericMailet {
     @Override
     public void service(Mail mail) throws MessagingException {
         if (configuration.isDebug()) {
-            log("Remotely delivering mail " + mail.getName());
+            LOGGER.debug("Remotely delivering mail " + mail.getName());
         }
         if (configuration.isUsePriority()) {
             mail.setAttribute(MailPrioritySupport.MAIL_PRIORITY, MailPrioritySupport.HIGH_PRIORITY);
@@ -199,19 +202,19 @@ public class RemoteDelivery extends GenericMailet {
                 serviceWithGateway(mail);
             }
         } else {
-            log("Mail " + mail.getName() + " from " + mail.getSender() + " has no recipients and can not be remotely delivered");
+            LOGGER.debug("Mail " + mail.getName() + " from " + mail.getSender() + " has no recipients and can not be remotely delivered");
         }
         mail.setState(Mail.GHOST);
     }
 
     private void serviceWithGateway(Mail mail) {
         if (configuration.isDebug()) {
-            log("Sending mail to " + mail.getRecipients() + " via " + configuration.getGatewayServer());
+            LOGGER.debug("Sending mail to " + mail.getRecipients() + " via " + configuration.getGatewayServer());
         }
         try {
             queue.enQueue(mail);
         } catch (MailQueueException e) {
-            log("Unable to queue mail " + mail.getName() + " for recipients + " + mail.getRecipients().toString(), e);
+            LOGGER.error("Unable to queue mail " + mail.getName() + " for recipients + " + mail.getRecipients(), e);
         }
     }
 
@@ -225,14 +228,14 @@ public class RemoteDelivery extends GenericMailet {
 
     private void serviceSingleServer(Mail mail, String originalName, Map.Entry<String, Collection<MailAddress>> entry) {
         if (configuration.isDebug()) {
-            log("Sending mail to " + entry.getValue() + " on host " + entry.getKey());
+            LOGGER.debug("Sending mail to " + entry.getValue() + " on host " + entry.getKey());
         }
         mail.setRecipients(entry.getValue());
         mail.setName(originalName + NAME_JUNCTION + entry.getKey());
         try {
             queue.enQueue(mail);
         } catch (MailQueueException e) {
-            log("Unable to queue mail " + mail.getName() + " for recipients + " + mail.getRecipients().toString(), e);
+            LOGGER.error("Unable to queue mail " + mail.getName() + " for recipients + " + mail.getRecipients(), e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
index 0f78641..891bd16 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
@@ -42,6 +42,8 @@ import org.apache.james.transport.util.TosUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
@@ -295,6 +297,7 @@ import com.google.common.collect.ImmutableList;
  */
 
 public class Resend extends GenericMailet implements RedirectNotify {
+    private static final Logger LOGGER = LoggerFactory.getLogger(Resend.class);
 
     private static final String[] CONFIGURABLE_PARAMETERS = new String[] {
             "debug", "passThrough", "fakeDomainCheck", "inline", "attachment", "message", "recipients", "to", "replyTo", "replyto", "reversePath", "sender", "subject", "prefix", "attachError", "isReply" };
@@ -328,7 +331,7 @@ public class Resend extends GenericMailet implements RedirectNotify {
     @Override
     public void init() throws MessagingException {
         if (getInitParameters().isDebug()) {
-            log("Initializing");
+            LOGGER.debug("Initializing");
         }
 
         // check that all init parameters have been declared in
@@ -337,7 +340,7 @@ public class Resend extends GenericMailet implements RedirectNotify {
 
         if (getInitParameters().isStatic()) {
             if (getInitParameters().isDebug()) {
-                log(getInitParameters().asString());
+                LOGGER.debug(getInitParameters().asString());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SPF.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SPF.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SPF.java
index 5f8a4ac..6bd7519 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SPF.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SPF.java
@@ -25,10 +25,12 @@ import javax.mail.internet.MimeMessage;
 import org.apache.james.jspf.core.Logger;
 import org.apache.james.jspf.executor.SPFResult;
 import org.apache.james.jspf.impl.DefaultSPF;
+import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
 import org.apache.mailet.Experimental;
-import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.LoggerFactory;
 
 /**
  * Check the ip, sender, helo against SPF. Add the following attributes to the
@@ -52,6 +54,8 @@ import org.apache.mailet.MailAddress;
  */
 @Experimental
 public class SPF extends GenericMailet {
+    private static final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(ManageSieveMailet.class);
+
     private boolean addHeader = false;
     private org.apache.james.jspf.impl.SPF spf;
     public final static String EXPLANATION_ATTRIBUTE = "org.apache.james.transport.mailets.spf.explanation";
@@ -86,7 +90,7 @@ public class SPF extends GenericMailet {
             mail.setAttribute(EXPLANATION_ATTRIBUTE, result.getExplanation());
             mail.setAttribute(RESULT_ATTRIBUTE, result.getResult());
 
-            log("ip:" + remoteAddr + " from:" + sender + " helo:" + helo + " = " + result.getResult());
+            LOGGER.debug("ip:" + remoteAddr + " from:" + sender + " helo:" + helo + " = " + result.getResult());
             if (addHeader) {
                 try {
                     MimeMessage msg = mail.getMessage();
@@ -114,30 +118,30 @@ public class SPF extends GenericMailet {
 
         public void debug(String arg0) {
             if (debug) {
-                log(arg0);
+                LOGGER.debug(arg0);
             }
         }
 
         public void debug(String arg0, Throwable arg1) {
             if (debug) {
-                log(arg0, arg1);
+                LOGGER.debug(arg0, arg1);
             }
         }
 
         public void error(String arg0) {
-            log(arg0);
+            LOGGER.error(arg0);
         }
 
         public void error(String arg0, Throwable arg1) {
-            log(arg0, arg1);
+            LOGGER.error(arg0, arg1);
         }
 
         public void fatalError(String arg0) {
-            log(arg0);
+            LOGGER.error(arg0);
         }
 
         public void fatalError(String arg0, Throwable arg1) {
-            log(arg0, arg1);
+            LOGGER.error(arg0, arg1);
         }
 
         public Logger getChildLogger(String childName) {
@@ -145,39 +149,39 @@ public class SPF extends GenericMailet {
         }
 
         public void info(String arg0) {
-            log(arg0);
+            LOGGER.info(arg0);
         }
 
         public void info(String arg0, Throwable arg1) {
-            log(arg0, arg1);
+            LOGGER.info(arg0, arg1);
         }
 
         public boolean isDebugEnabled() {
-            return debug;
+            return LOGGER.isDebugEnabled();
         }
 
         public boolean isErrorEnabled() {
-            return true;
+            return LOGGER.isErrorEnabled();
         }
 
         public boolean isFatalErrorEnabled() {
-            return true;
+            return LOGGER.isErrorEnabled();
         }
 
         public boolean isInfoEnabled() {
-            return true;
+            return LOGGER.isInfoEnabled();
         }
 
         public boolean isWarnEnabled() {
-            return true;
+            return LOGGER.isWarnEnabled();
         }
 
         public void warn(String arg0) {
-            log(arg0);
+            LOGGER.warn(arg0);
         }
 
         public void warn(String arg0, Throwable arg1) {
-            log(arg0, arg1);
+            LOGGER.warn(arg0, arg1);
         }
 
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SpamAssassin.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SpamAssassin.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SpamAssassin.java
index 3e2061b..970bcf1 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SpamAssassin.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SpamAssassin.java
@@ -19,13 +19,16 @@
 
 package org.apache.james.transport.mailets;
 
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
 import org.apache.james.util.scanner.SpamAssassinInvoker;
 import org.apache.mailet.Experimental;
-import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.Mail;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Sends the message through daemonized SpamAssassin (spamd), visit <a
@@ -53,9 +56,9 @@ import javax.mail.internet.MimeMessage;
  */
 @Experimental
 public class SpamAssassin extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ManageSieveMailet.class);
 
     String spamdHost;
-
     int spamdPort;
 
     /**
@@ -98,7 +101,7 @@ public class SpamAssassin extends GenericMailet {
 
             message.saveChanges();
         } catch (MessagingException e) {
-            log(e.getMessage());
+            LOGGER.error("Encountered exception", e);
         }
 
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRepository.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRepository.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRepository.java
index 46152fd..4424721 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRepository.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRepository.java
@@ -26,6 +26,8 @@ import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mailrepository.api.MailRepositoryStore;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Stores incoming Mail in the specified Repository.<br>
@@ -33,6 +35,7 @@ import org.apache.mailet.base.GenericMailet;
  * the pipe and may be processed by additional mailets. If false will be destroyed.
  */
 public class ToRepository extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ToRepository.class);
 
     private MailRepository repository;
 
@@ -73,7 +76,7 @@ public class ToRepository extends GenericMailet {
     @Override
     public void service(Mail mail) throws javax.mail.MessagingException {
         String logBuffer = "Storing mail " + mail.getName() + " in " + repositoryPath;
-        log(logBuffer);
+        LOGGER.info(logBuffer);
         repository.store(mail);
         if (!passThrough) {
             mail.setState(Mail.GHOST);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
index 41e0749..56f4e77 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
@@ -30,6 +30,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Receives a Mail from the Queue and takes care to deliver the message
@@ -49,6 +51,7 @@ import org.apache.mailet.base.GenericMailet;
  */
 @Experimental
 public class ToSenderFolder extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ToSenderFolder.class);
 
     private final UsersRepository usersRepository;
     private final MailboxManager mailboxManager;
@@ -83,7 +86,7 @@ public class ToSenderFolder extends GenericMailet {
 
         mailboxAppender.append(mail.getMessage(), username, folder);
 
-        log("Local delivery with ToSenderFolder mailet for mail " + mail.getName() + " with sender " + sender.toString() + " in folder " + folder);
+        LOGGER.error("Local delivery with ToSenderFolder mailet for mail " + mail.getName() + " with sender " + sender.toString() + " in folder " + folder);
     }
 
     private String retrieveUser(MailAddress sender) throws MessagingException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
index 2a16dfa..cc48148 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/WhiteListManager.java
@@ -46,6 +46,7 @@ import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 import javax.sql.DataSource;
 
+import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.model.JamesUser;
 import org.apache.james.util.sql.JDBCUtil;
@@ -56,6 +57,8 @@ import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.DateFormats;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.RFC2822Headers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -122,6 +125,7 @@ import org.apache.mailet.base.RFC2822Headers;
 @Experimental
 @SuppressWarnings("deprecation")
 public class WhiteListManager extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ManageSieveMailet.class);
 
     private boolean automaticInsert;
     private String displayFlag;
@@ -145,11 +149,7 @@ public class WhiteListManager extends GenericMailet {
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            log("WhiteListManager: " + logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * Contains all of the sql strings for this component.
@@ -184,7 +184,7 @@ public class WhiteListManager extends GenericMailet {
      */
     public void init() throws MessagingException {
         automaticInsert = Boolean.valueOf(getInitParameter("automaticInsert"));
-        log("automaticInsert: " + automaticInsert);
+        LOGGER.debug("automaticInsert: " + automaticInsert);
 
         displayFlag = getInitParameter("displayFlag");
         insertFlag = getInitParameter("insertFlag");
@@ -193,7 +193,7 @@ public class WhiteListManager extends GenericMailet {
         String whitelistManagerAddressString = getInitParameter("whitelistManagerAddress");
         if (whitelistManagerAddressString != null) {
             whitelistManagerAddressString = whitelistManagerAddressString.trim();
-            log("whitelistManagerAddress: " + whitelistManagerAddressString);
+            LOGGER.debug("whitelistManagerAddress: " + whitelistManagerAddressString);
             try {
                 whitelistManagerAddress = new MailAddress(whitelistManagerAddressString);
             } catch (javax.mail.internet.ParseException pe) {
@@ -202,29 +202,29 @@ public class WhiteListManager extends GenericMailet {
 
             if (displayFlag != null) {
                 displayFlag = displayFlag.trim();
-                log("displayFlag: " + displayFlag);
+                LOGGER.debug("displayFlag: " + displayFlag);
             } else {
-                log("displayFlag is null");
+                LOGGER.debug("displayFlag is null");
             }
             if (insertFlag != null) {
                 insertFlag = insertFlag.trim();
-                log("insertFlag: " + insertFlag);
+                LOGGER.debug("insertFlag: " + insertFlag);
             } else {
-                log("insertFlag is null");
+                LOGGER.debug("insertFlag is null");
             }
             if (removeFlag != null) {
                 removeFlag = removeFlag.trim();
-                log("removeFlag: " + removeFlag);
+                LOGGER.debug("removeFlag: " + removeFlag);
             } else {
-                log("removeFlag is null");
+                LOGGER.debug("removeFlag is null");
             }
         } else {
-            log("whitelistManagerAddress is null; will ignore commands");
+            LOGGER.debug("whitelistManagerAddress is null; will ignore commands");
         }
 
         String repositoryPath = getInitParameter("repositoryPath");
         if (repositoryPath != null) {
-            log("repositoryPath: " + repositoryPath);
+            LOGGER.debug("repositoryPath: " + repositoryPath);
         } else {
             throw new MessagingException("repositoryPath is null");
         }
@@ -360,7 +360,7 @@ public class WhiteListManager extends GenericMailet {
                 }
             }
         } catch (SQLException sqle) {
-            log("Error accessing database", sqle);
+            LOGGER.error("Error accessing database", sqle);
             throw new MessagingException("Exception thrown", sqle);
         } finally {
             theJDBCUtil.closeJDBCStatement(selectStmt);
@@ -372,7 +372,7 @@ public class WhiteListManager extends GenericMailet {
                     dbUpdated = false;
                 }
             } catch (Exception e) {
-                log("Ignored exception upon rollback", e);
+                LOGGER.error("Ignored exception upon rollback", e);
             }
             theJDBCUtil.closeJDBCConnection(conn);
         }
@@ -507,7 +507,7 @@ public class WhiteListManager extends GenericMailet {
                 }
 
                 if (dbUpdated) {
-                    log("Insertion request issued by " + senderMailAddress);
+                    LOGGER.debug("Insertion request issued by " + senderMailAddress);
                 }
                 // Commit our changes if necessary.
                 if (conn != null && dbUpdated && !conn.getAutoCommit()) {
@@ -541,7 +541,7 @@ public class WhiteListManager extends GenericMailet {
                     dbUpdated = false;
                 }
             } catch (Exception e) {
-                log("Ignored exception upon rollback", e);
+                LOGGER.error("Ignored exception upon rollback", e);
             }
             theJDBCUtil.closeJDBCConnection(conn);
         }
@@ -628,7 +628,7 @@ public class WhiteListManager extends GenericMailet {
                 }
 
                 if (dbUpdated) {
-                    log("Removal request issued by " + senderMailAddress);
+                    LOGGER.debug("Removal request issued by " + senderMailAddress);
                 }
                 // Commit our changes if necessary.
                 if (conn != null && dbUpdated && !conn.getAutoCommit()) {
@@ -662,7 +662,7 @@ public class WhiteListManager extends GenericMailet {
                     dbUpdated = false;
                 }
             } catch (Exception e) {
-                log("Ignored exception upon rollback", e);
+                LOGGER.error("Ignored exception upon rollback", e);
             }
             theJDBCUtil.closeJDBCConnection(conn);
         }
@@ -719,7 +719,7 @@ public class WhiteListManager extends GenericMailet {
             // Send it off...
             getMailetContext().sendMail(notifier, recipients, reply);
         } catch (Exception e) {
-            log("Exception found sending reply", e);
+            LOGGER.error("Exception found sending reply", e);
         }
     }
 
@@ -806,7 +806,7 @@ public class WhiteListManager extends GenericMailet {
 
             StringBuffer logBuffer;
             logBuffer = new StringBuffer(64).append("Created table '").append(tableName).append("' using sqlResources string '").append(createSqlStringName).append("'.");
-            log(logBuffer.toString());
+            LOGGER.info(logBuffer.toString());
 
         } finally {
             theJDBCUtil.closeJDBCStatement(createStatement);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
index 8befe47..dbebaeb 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
@@ -52,6 +52,8 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
 import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Lists;
 
@@ -62,6 +64,8 @@ import com.google.common.collect.Lists;
  * </p>
  */
 public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionContext {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SieveMailAdapter.class);
+
     /**
      * The Mail being adapted.
      */
@@ -170,7 +174,7 @@ public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionC
     {
         final List<Action> actions = getActions();
         for (final Action action: actions) {
-            getMailetContext().log(MailetContext.LogLevel.INFO, "Executing action: " + action.toString());
+            LOGGER.info("Executing action: " + action.toString());
             try
             {
                 dispatcher.execute(action, getMail(), this);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
index 116bf46..927d330 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailet.java
@@ -41,9 +41,9 @@ import org.apache.james.transport.mailets.managesieve.transcode.MessageToCoreToM
 import org.apache.james.user.api.UsersRepository;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
-import org.apache.mailet.MailetContext;
-import org.apache.mailet.MailetContext.LogLevel;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Lists;
@@ -90,6 +90,7 @@ import com.google.common.collect.Lists;
  */
 @Experimental
 public class ManageSieveMailet extends GenericMailet implements MessageToCoreToMessage.HelpProvider {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ManageSieveMailet.class);
 
     // Injected
     private SieveRepository sieveRepository = null;
@@ -123,11 +124,11 @@ public class ManageSieveMailet extends GenericMailet implements MessageToCoreToM
     public void service(Mail mail) throws MessagingException {
         // Sanity checks
         if (mail.getSender() == null) {
-            getMailetContext().log(MailetContext.LogLevel.ERROR, "Sender is null");
+            LOGGER.error("Sender is null");
             return;
         }
         if (!getMailetContext().isLocalServer(mail.getSender().getDomain().toLowerCase(Locale.US))) {
-            getMailetContext().log(LogLevel.ERROR, "Sender not local");
+            LOGGER.error("Sender not local");
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
index 1f0e0b8..b6a956b 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailMessageAlteringUtils.java
@@ -31,12 +31,14 @@ import org.apache.james.core.MimeMessageUtil;
 import org.apache.james.transport.mailets.utils.MimeMessageUtils;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.RFC2822Headers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 
 public class MailMessageAlteringUtils {
-
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailMessageAlteringUtils.class);
     private static final char LINE_BREAK = '\n';
 
     public static Builder from(RedirectNotify mailet) {
@@ -87,9 +89,6 @@ public class MailMessageAlteringUtils {
 
     /**
      * Builds the message of the newMail in case it has to be altered.
-     *
-     * @param originalMail the original Mail object
-     * @param newMail      the Mail object to build
      */
     private void alterNewMessage() throws MessagingException {
 
@@ -114,7 +113,7 @@ public class MailMessageAlteringUtils {
             multipart.addBodyPart(contentPartRoot);
 
             if (mailet.getInitParameters().isDebug()) {
-                mailet.log("attachmentType:" + mailet.getInitParameters().getAttachmentType());
+                LOGGER.debug("attachmentType:" + mailet.getInitParameters().getAttachmentType());
             }
             if (!mailet.getInitParameters().getAttachmentType().equals(TypeCode.NONE)) {
                 multipart.addBodyPart(getAttachmentPart(originalMessage, head));
@@ -193,7 +192,7 @@ public class MailMessageAlteringUtils {
         }
 
         if (mailet.getInitParameters().isDebug()) {
-            mailet.log("inline:" + mailet.getInitParameters().getInLineType());
+            LOGGER.debug("inline:" + mailet.getInitParameters().getInLineType());
         }
         switch (mailet.getInitParameters().getInLineType()) {
             case ALL:

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
index 9a9d228..ff7c6d9 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java
@@ -34,11 +34,14 @@ import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.DateFormats;
 import org.apache.mailet.base.RFC2822Headers;
 import org.apache.mailet.base.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 public class MailModifier {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailModifier.class);
 
     private static final String LOCAHOST = "127.0.0.1";
 
@@ -108,7 +111,7 @@ public class MailModifier {
         if (!recipients.isEmpty()) {
             mail.setRecipients(recipients);
             if (mailet.getInitParameters().isDebug()) {
-                mailet.log("recipients set to: " + StringUtils.arrayToString(recipients.toArray()));
+                LOGGER.debug("recipients set to: " + StringUtils.arrayToString(recipients.toArray()));
             }
         }
     }
@@ -118,7 +121,7 @@ public class MailModifier {
             InternetAddress[] internetAddresses = MailAddressUtils.toInternetAddressArray(mailAddresses);
             mail.getMessage().setRecipients(Message.RecipientType.TO, internetAddresses);
             if (mailet.getInitParameters().isDebug()) {
-                mailet.log("apparentlyTo set to: " + internetAddresses);
+                LOGGER.debug("apparentlyTo set to: " + internetAddresses);
             }
         }
     }
@@ -141,12 +144,12 @@ public class MailModifier {
             if (replyTo.equals(SpecialAddress.NULL)) {
                 mail.getMessage().setReplyTo(null);
                 if (mailet.getInitParameters().isDebug()) {
-                    mailet.log("replyTo set to: null");
+                    LOGGER.debug("replyTo set to: null");
                 }
             } else {
                 mail.getMessage().setReplyTo(new InternetAddress[] { replyTo.toInternetAddress() });
                 if (mailet.getInitParameters().isDebug()) {
-                    mailet.log("replyTo set to: " + replyTo);
+                    LOGGER.debug("replyTo set to: " + replyTo);
                 }
             }
         }
@@ -163,12 +166,12 @@ public class MailModifier {
             if (reversePath.equals(SpecialAddress.NULL)) {
                 mail.setSender(null);
                 if (mailet.getInitParameters().isDebug()) {
-                    mailet.log("reversePath set to: null");
+                    LOGGER.debug("reversePath set to: null");
                 }
             } else {
                 mail.setSender(reversePath);
                 if (mailet.getInitParameters().isDebug()) {
-                    mailet.log("reversePath set to: " + reversePath);
+                    LOGGER.debug("reversePath set to: " + reversePath);
                 }
             }
         }
@@ -184,7 +187,7 @@ public class MailModifier {
             if (messageId != null) {
                 mail.getMessage().setHeader(RFC2822Headers.IN_REPLY_TO, messageId);
                 if (mailet.getInitParameters().isDebug()) {
-                    mailet.log("IN_REPLY_TO set to: " + messageId);
+                    LOGGER.debug("IN_REPLY_TO set to: " + messageId);
                 }
             }
         }
@@ -195,7 +198,7 @@ public class MailModifier {
             mail.getMessage().setFrom(sender.get().toInternetAddress());
 
             if (mailet.getInitParameters().isDebug()) {
-                mailet.log("sender set to: " + sender);
+                LOGGER.debug("sender set to: " + sender);
             }
         }
     }
@@ -211,7 +214,7 @@ public class MailModifier {
         if (messageId != null) {
             mail.getMessage().setHeader(RFC2822Headers.MESSAGE_ID, messageId);
             if (mailet.getInitParameters().isDebug()) {
-                mailet.log("MESSAGE_ID restored to: " + messageId);
+                LOGGER.debug("MESSAGE_ID restored to: " + messageId);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
index cd7d5e3..44ab401 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
@@ -25,8 +25,11 @@ import javax.mail.internet.MimeMessage;
 import org.apache.james.core.MailImpl;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ProcessRedirectNotify {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ProcessRedirectNotify.class);
 
     public static ProcessRedirectNotify from(RedirectNotify mailet) {
         return new ProcessRedirectNotify(mailet);
@@ -55,7 +58,7 @@ public class ProcessRedirectNotify {
             mailModifier.setRemoteHost();
 
             if (mailet.getInitParameters().isDebug()) {
-                mailet.log("New mail - sender: " + newMail.getSender() + ", recipients: " + StringUtils.arrayToString(newMail.getRecipients().toArray()) + ", name: " + newMail.getName() + ", remoteHost: " + newMail.getRemoteHost() + ", remoteAddr: " + newMail.getRemoteAddr() + ", state: " + newMail.getState()
+                LOGGER.debug("New mail - sender: " + newMail.getSender() + ", recipients: " + StringUtils.arrayToString(newMail.getRecipients().toArray()) + ", name: " + newMail.getName() + ", remoteHost: " + newMail.getRemoteHost() + ", remoteAddr: " + newMail.getRemoteAddr() + ", state: " + newMail.getState()
                         + ", lastUpdated: " + newMail.getLastUpdated() + ", errorMessage: " + newMail.getErrorMessage());
             }
 
@@ -111,7 +114,7 @@ public class ProcessRedirectNotify {
 
     private void createAlterMessage(Mail originalMail, MailImpl newMail) throws MessagingException {
         if (isDebug) {
-            mailet.log("Alter message");
+            LOGGER.debug("Alter message");
         }
         newMail.setMessage(new MimeMessage(Session.getDefaultInstance(System.getProperties(), null)));
 
@@ -129,7 +132,7 @@ public class ProcessRedirectNotify {
             newMail.setMessage(new CopiedMimeMessage(originalMail.getMessage()));
         }
         if (isDebug) {
-            mailet.log("Message resent unaltered.");
+            LOGGER.debug("Message resent unaltered.");
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
index b5fb65a..4323567 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java
@@ -145,7 +145,9 @@ public interface RedirectNotify extends Mailet, MailetConfig {
 
     DNSService getDNSService();
 
+    @Deprecated
     void log(String message);
+    @Deprecated
     void log(String message, Throwable t);
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractNetworkMatcher.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractNetworkMatcher.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractNetworkMatcher.java
index 083dd77..c58017e 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractNetworkMatcher.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractNetworkMatcher.java
@@ -24,6 +24,8 @@ import javax.mail.MessagingException;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.library.netmatcher.NetMatcher;
 import org.apache.mailet.base.GenericMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -44,6 +46,7 @@ import org.apache.mailet.base.GenericMatcher;
  * @see org.apache.james.dnsservice.library.netmatcher.NetMatcher
  */
 public abstract class AbstractNetworkMatcher extends GenericMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractNetworkMatcher.class);
 
     private NetMatcher authorizedNetworks;
 
@@ -52,12 +55,8 @@ public abstract class AbstractNetworkMatcher extends GenericMatcher {
     @Override
     public void init() throws MessagingException {
         if (getCondition() != null) {
-            authorizedNetworks = new NetMatcher(getCondition(), dnsServer) {
-                protected void log(String s) {
-                    AbstractNetworkMatcher.this.log(s);
-                }
-            };
-            log("Authorized addresses: " + authorizedNetworks.toString());
+            authorizedNetworks = new NetMatcher(getCondition(), dnsServer);
+            LOGGER.info("Authorized addresses: " + authorizedNetworks);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java
index f429b15..78f0bb7 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractSQLWhitelistMatcher.java
@@ -44,6 +44,8 @@ import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * No documentation is available for this deprecated, experimental matcher.
@@ -51,6 +53,7 @@ import org.apache.mailet.base.GenericMatcher;
 @SuppressWarnings("deprecation")
 @Experimental
 public abstract class AbstractSQLWhitelistMatcher extends GenericMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractSQLWhitelistMatcher.class);
 
     /**
      * The user repository for this mail server. Contains all the users with
@@ -92,11 +95,7 @@ public abstract class AbstractSQLWhitelistMatcher extends GenericMatcher {
     /**
      * The JDBCUtil helper class
      */
-    protected final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            log(getMatcherName() + ": " + logString);
-        }
-    };
+    protected final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * Contains all of the sql strings for this component.
@@ -118,7 +117,7 @@ public abstract class AbstractSQLWhitelistMatcher extends GenericMatcher {
             repositoryPath = st.nextToken().trim();
         }
         if (repositoryPath != null) {
-            log("repositoryPath: " + repositoryPath);
+            LOGGER.info("repositoryPath: " + repositoryPath);
         } else {
             throw new MessagingException("repositoryPath is null");
         }
@@ -264,7 +263,7 @@ public abstract class AbstractSQLWhitelistMatcher extends GenericMatcher {
 
             StringBuffer logBuffer;
             logBuffer = new StringBuffer(64).append("Created table '").append(tableName).append("' using sqlResources string '").append(createSqlStringName).append("'.");
-            log(logBuffer.toString());
+            LOGGER.info(logBuffer.toString());
 
         } finally {
             theJDBCUtil.closeJDBCStatement(createStatement);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsInWhiteList.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsInWhiteList.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsInWhiteList.java
index 35e8c66..ec6d087 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsInWhiteList.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsInWhiteList.java
@@ -30,6 +30,8 @@ import javax.mail.MessagingException;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -59,6 +61,7 @@ import org.apache.mailet.MailAddress;
  */
 @Experimental
 public class IsInWhiteList extends AbstractSQLWhitelistMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(IsInWhiteList.class);
 
     private String selectByPK;
 
@@ -167,7 +170,7 @@ public class IsInWhiteList extends AbstractSQLWhitelistMatcher {
                 jdbcUtil.closeJDBCStatement(selectStmt);
             }
         } catch (SQLException sqle) {
-            log("Error accessing database", sqle);
+            LOGGER.error("Error accessing database", sqle);
             throw new MessagingException("Exception thrown", sqle);
         } finally {
             theJDBCUtil.closeJDBCConnection(conn);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java
index ef64e21..8542f85 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/NetworkIsInWhitelist.java
@@ -34,6 +34,8 @@ import org.apache.james.dnsservice.library.netmatcher.NetMatcher;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -49,6 +51,7 @@ import org.apache.mailet.MailAddress;
  */
 @Experimental
 public class NetworkIsInWhitelist extends AbstractSQLWhitelistMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(NetworkIsInWhitelist.class);
 
     private DNSService dns;
     private String selectNetworks;
@@ -130,7 +133,7 @@ public class NetworkIsInWhitelist extends AbstractSQLWhitelistMatcher {
             }
             return matched;
         } catch (SQLException sqle) {
-            log("Error accessing database", sqle);
+            LOGGER.error("Error accessing database", sqle);
             throw new MessagingException("Exception thrown", sqle);
         } finally {
             theJDBCUtil.closeJDBCConnection(conn);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/SenderInFakeDomain.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/SenderInFakeDomain.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/SenderInFakeDomain.java
index ad9e78e..3279118 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/SenderInFakeDomain.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/SenderInFakeDomain.java
@@ -19,11 +19,13 @@
 
 package org.apache.james.transport.matchers;
 
+import java.util.Collection;
+
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
-
-import java.util.Collection;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Does a DNS lookup (MX and A/CNAME records) on the sender's domain. If there
@@ -31,6 +33,7 @@ import java.util.Collection;
  */
 @Experimental
 public class SenderInFakeDomain extends AbstractNetworkMatcher {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SenderInFakeDomain.class);
 
     public Collection<MailAddress> match(Mail mail) {
         if (mail.getSender() == null) {
@@ -43,7 +46,7 @@ public class SenderInFakeDomain extends AbstractNetworkMatcher {
         if (servers.size() == 0) {
             // No records...could not deliver to this domain, so matches
             // criteria.
-            log("No MX, A, or CNAME record found for domain: " + domain);
+            LOGGER.info("No MX, A, or CNAME record found for domain: " + domain);
             return mail.getRecipients();
         } else if (matchNetwork(servers.iterator().next())) {
             /*
@@ -62,8 +65,8 @@ public class SenderInFakeDomain extends AbstractNetworkMatcher {
              * 203.119.4.6/32          # .PH TLD (.ph)
              *
              */
-            log("Banned IP found for domain: " + domain);
-            log(" --> :" + servers.iterator().next());
+            LOGGER.info("Banned IP found for domain: " + domain);
+            LOGGER.info(" --> :" + servers.iterator().next());
             return mail.getRecipients();
         } else {
             // Some servers were found... the domain is not fake.

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java
index 223162a..dc86e09 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java
@@ -34,6 +34,8 @@ import org.apache.james.transport.mailets.redirect.SpecialAddressKind;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.RFC2822Headers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
@@ -41,6 +43,7 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 
 public class SpecialAddressesUtils {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SpecialAddressesUtils.class);
 
     public static SpecialAddressesUtils from(RedirectNotify mailet) {
         return new SpecialAddressesUtils(mailet);
@@ -115,7 +118,7 @@ public class SpecialAddressesUtils {
             }
             return getReplyTos(replyToArray);
         } catch (MessagingException ae) {
-            mailet.log("Unable to parse the \"REPLY_TO\" header in the original message; ignoring.");
+            LOGGER.warn("Unable to parse the \"REPLY_TO\" header in the original message; ignoring.");
             return ImmutableSet.of();
         }
     }
@@ -134,7 +137,7 @@ public class SpecialAddressesUtils {
             try {
                 builder.add(new MailAddress(replyTo));
             } catch (ParseException pe) {
-                mailet.log("Unable to parse a \"REPLY_TO\" header address in the original message: " + replyTo + "; ignoring.");
+                LOGGER.warn("Unable to parse a \"REPLY_TO\" header address in the original message: " + replyTo + "; ignoring.");
             }
         }
         return builder.build();
@@ -187,7 +190,7 @@ public class SpecialAddressesUtils {
                     InternetAddress[] fromArray = (InternetAddress[]) mail.getMessage().getFrom();
                     return allOrSender(mail, fromArray);
                 } catch (MessagingException me) {
-                    mailet.log("Unable to parse the \"FROM\" header in the original message; ignoring.");
+                    LOGGER.warn("Unable to parse the \"FROM\" header in the original message; ignoring.");
                     return ImmutableSet.of();
                 }
             case REPLY_TO:
@@ -195,7 +198,7 @@ public class SpecialAddressesUtils {
                     InternetAddress[] replyToArray = (InternetAddress[]) mail.getMessage().getReplyTo();
                     return allOrSender(mail, replyToArray);
                 } catch (MessagingException me) {
-                    mailet.log("Unable to parse the \"REPLY_TO\" header in the original message; ignoring.");
+                    LOGGER.warn("Unable to parse the \"REPLY_TO\" header in the original message; ignoring.");
                     return ImmutableSet.of();
                 }
             case TO:
@@ -231,13 +234,13 @@ public class SpecialAddressesUtils {
                         InternetAddress[] originalToInternetAddresses = InternetAddress.parse(toHeader, false);
                         return MailAddressUtils.from(originalToInternetAddresses);
                     } catch (MessagingException ae) {
-                        mailet.log("Unable to parse a \"TO\" header address in the original message: " + toHeader + "; ignoring.");
+                        LOGGER.warn("Unable to parse a \"TO\" header address in the original message: " + toHeader + "; ignoring.");
                     }
                 }
             }
             return ImmutableList.of();
         } catch (MessagingException ae) {
-            mailet.log("Unable to parse the \"TO\" header  in the original message; ignoring.");
+            LOGGER.warn("Unable to parse the \"TO\" header  in the original message; ignoring.");
             return ImmutableList.of();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/HelloWorldMailet.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/HelloWorldMailet.java b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/HelloWorldMailet.java
index caff256..00d27e6 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/HelloWorldMailet.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/HelloWorldMailet.java
@@ -23,13 +23,14 @@ import javax.mail.MessagingException;
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.MailetConfig;
-import org.apache.mailet.MailetContext;
-import org.apache.mailet.MailetContext.LogLevel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Simply logs a message.
  */
 public class HelloWorldMailet implements Mailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(HelloWorldMailet.class);
 
     private MailetConfig config;
 
@@ -54,8 +55,7 @@ public class HelloWorldMailet implements Mailet {
 
     @Override
     public void service(Mail mail) throws MessagingException {
-        MailetContext context = config.getMailetContext();
-        context.log(LogLevel.INFO, "Hello, World!");
-        context.log(LogLevel.INFO, "You have mail from " + mail.getSender().getLocalPart());
+        LOGGER.info("Hello, World!");
+        LOGGER.info( "You have mail from " + mail.getSender().getLocalPart());
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
index a8e4e6f..266e3b2 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/samples/mailets/InstrumentationMailet.java
@@ -33,14 +33,21 @@ import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMessage.RecipientType;
 import javax.mail.internet.NewsAddress;
 
-import org.apache.mailet.*;
-import org.apache.mailet.MailetContext.LogLevel;
+import org.apache.james.transport.mailets.managesieve.ManageSieveMailet;
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
+import org.apache.mailet.Mailet;
+import org.apache.mailet.MailetConfig;
+import org.apache.mailet.MailetContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Mailet just prints out the details of a message. Sometimes Useful for
  * debugging.
  */
 public class InstrumentationMailet implements Mailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ManageSieveMailet.class);
 
     private MailetConfig config;
 
@@ -65,47 +72,46 @@ public class InstrumentationMailet implements Mailet {
 
     @Override
     public void service(Mail mail) throws MessagingException {
-        MailetContext context = config.getMailetContext();
-        context.log(LogLevel.INFO, "######## MAIL STARTS");
-        context.log(LogLevel.INFO, "");
+        LOGGER.info("######## MAIL STARTS");
+        LOGGER.info("");
 
         MimeMessage message = mail.getMessage();
 
-        context.log(LogLevel.INFO, "Mail named: " + mail.getName());
+        LOGGER.info("Mail named: " + mail.getName());
 
         for (Iterator<String> it = mail.getAttributeNames(); it.hasNext();) {
             String attributeName = it.next();
-            context.log(LogLevel.INFO, "Attribute " + attributeName);
+            LOGGER.info("Attribute " + attributeName);
         }
-        context.log(LogLevel.INFO, "Message size: " + mail.getMessageSize());
-        context.log(LogLevel.INFO, "Last updated: " + mail.getLastUpdated());
-        context.log(LogLevel.INFO, "Remote Address: " + mail.getRemoteAddr());
-        context.log(LogLevel.INFO, "Remote Host: " + mail.getRemoteHost());
-        context.log(LogLevel.INFO, "State: " + mail.getState());
-        context.log(LogLevel.INFO, "Sender host: " + mail.getSender().getDomain());
-        context.log(LogLevel.INFO, "Sender user: " + mail.getSender().getLocalPart());
+        LOGGER.info("Message size: " + mail.getMessageSize());
+        LOGGER.info("Last updated: " + mail.getLastUpdated());
+        LOGGER.info("Remote Address: " + mail.getRemoteAddr());
+        LOGGER.info("Remote Host: " + mail.getRemoteHost());
+        LOGGER.info("State: " + mail.getState());
+        LOGGER.info("Sender host: " + mail.getSender().getDomain());
+        LOGGER.info("Sender user: " + mail.getSender().getLocalPart());
         Collection<MailAddress> recipients = mail.getRecipients();
         for (MailAddress address : recipients) {
-            context.log(LogLevel.INFO, "Recipient: " + address.getLocalPart() + "@" + address.getDomain());
+            LOGGER.info("Recipient: " + address.getLocalPart() + "@" + address.getDomain());
         }
 
-        context.log(LogLevel.INFO, "Subject: " + message.getSubject());
-        context.log(LogLevel.INFO, "MessageID: " + message.getMessageID());
-        context.log(LogLevel.INFO, "Received: " + message.getReceivedDate());
-        context.log(LogLevel.INFO, "Sent: " + message.getSentDate());
+        LOGGER.info("Subject: " + message.getSubject());
+        LOGGER.info("MessageID: " + message.getMessageID());
+        LOGGER.info("Received: " + message.getReceivedDate());
+        LOGGER.info("Sent: " + message.getSentDate());
 
         @SuppressWarnings("unchecked")
         Enumeration<String> allHeadersLines = message.getAllHeaderLines();
         while (allHeadersLines.hasMoreElements()) {
             String header = (String) allHeadersLines.nextElement();
-            context.log(LogLevel.INFO, "Header Line:= " + header);
+            LOGGER.info("Header Line:= " + header);
         }
 
         @SuppressWarnings("unchecked")
         Enumeration<Header> allHeadersEnumeration = message.getAllHeaders();
         while (allHeadersEnumeration.hasMoreElements()) {
             Header header = (Header) allHeadersEnumeration.nextElement();
-            context.log(LogLevel.INFO, "Header: " + header.getName() + "=" + header.getValue());
+            LOGGER.info("Header: " + header.getName() + "=" + header.getValue());
         }
 
         Address[] to = message.getRecipients(RecipientType.TO);
@@ -118,27 +124,27 @@ public class InstrumentationMailet implements Mailet {
         Flags flags = message.getFlags();
         Flag[] systemFlags = flags.getSystemFlags();
         for (Flag systemFlag : systemFlags) {
-            context.log(LogLevel.INFO, "System Flag:" + systemFlag);
+            LOGGER.info("System Flag:" + systemFlag);
         }
         String[] userFlags = flags.getUserFlags();
         for (String userFlag : userFlags) {
-            context.log(LogLevel.INFO, "User flag: " + userFlag);
+            LOGGER.info("User flag: " + userFlag);
         }
 
         String mimeType = message.getContentType();
-        context.log(LogLevel.INFO, "Mime type: " + mimeType);
+        LOGGER.info("Mime type: " + mimeType);
         if ("text/plain".equals(mimeType)) {
             try {
                 Object content = message.getContent();
-                context.log(LogLevel.INFO, "Content: " + content);
+                LOGGER.info("Content: " + content);
             } catch (IOException e) {
                 e.printStackTrace();
             }
 
         }
 
-        context.log(LogLevel.INFO, "");
-        context.log(LogLevel.INFO, "######## MAIL ENDS");
+        LOGGER.info("");
+        LOGGER.info("######## MAIL ENDS");
     }
 
     private void printAddresses(Address[] addresses, String prefix) {
@@ -146,10 +152,10 @@ public class InstrumentationMailet implements Mailet {
         for (Address address1 : addresses) {
             if (address1 instanceof InternetAddress) {
                 InternetAddress address = (InternetAddress) address1;
-                context.log(LogLevel.INFO, prefix + address.getPersonal() + "@" + address.getAddress());
+                LOGGER.info(prefix + address.getPersonal() + "@" + address.getAddress());
             } else if (address1 instanceof NewsAddress) {
                 NewsAddress address = (NewsAddress) address1;
-                context.log(LogLevel.INFO, prefix + address.getNewsgroup() + "@" + address.getHost());
+                LOGGER.info(prefix + address.getNewsgroup() + "@" + address.getHost());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecordingMailContext.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecordingMailContext.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecordingMailContext.java
index 9b55dd1..1fb078c 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecordingMailContext.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecordingMailContext.java
@@ -34,12 +34,14 @@ import org.apache.mailet.MailetContext;
 import org.apache.mailet.TemporaryLookupException;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @since 15.12.12 12:02
  */
 @SuppressWarnings("deprecation")
 public class RecordingMailContext implements MailetContext {
+    private static final Logger LOGGER = LoggerFactory.getLogger(RecordingMailContext.class);
 
     private final List<SendMailEvent> sendmails = new LinkedList<>();
     private final FakeMailContext context;
@@ -168,12 +170,12 @@ public class RecordingMailContext implements MailetContext {
 
     @Override
     public void log(String message) {
-        context.log(message);
+        LOGGER.info(message);
     }
 
     @Override
     public void log(String message, Throwable t) {
-        context.log(message, t);
+        LOGGER.error(message, t);
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[20/38] james-project git commit: JAMES-2114 Remove LOGGER from PROTOCOL Session API

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
index 882bc21..5c41c2b 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
@@ -57,11 +57,14 @@ import org.apache.james.protocols.smtp.hook.MessageHook;
 import org.apache.james.smtpserver.model.MailetMailAddressAdapter;
 import org.apache.james.smtpserver.model.ProtocolMailAddressAdapter;
 import org.apache.mailet.Mail;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Handles the calling of JamesMessageHooks
  */
 public class DataLineJamesMessageHookHandler implements DataLineFilter, ExtensibleHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DataLineJamesMessageHookHandler.class);
 
     private List<JamesMessageHook> messageHandlers;
 
@@ -126,7 +129,7 @@ public class DataLineJamesMessageHookHandler implements DataLineFilter, Extensib
 
                 } catch (MessagingException e) {
                     // TODO probably return a temporary problem
-                    session.getLogger().info("Unexpected error handling DATA stream", e);
+                    LOGGER.info("Unexpected error handling DATA stream", e);
                     return new SMTPResponse(SMTPRetCode.LOCAL_ERROR, "Unexpected error handling DATA stream.");
                 } finally {
                     LifecycleUtil.dispose(mimeMessageCopyOnWriteProxy);
@@ -147,12 +150,12 @@ public class DataLineJamesMessageHookHandler implements DataLineFilter, Extensib
         } catch (IOException e) {
             LifecycleUtil.dispose(mmiss);
             SMTPResponse response = new SMTPResponse(SMTPRetCode.LOCAL_ERROR, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) + " Error processing message: " + e.getMessage());
-            session.getLogger().error("Unknown error occurred while processing DATA.", e);
+            LOGGER.error("Unknown error occurred while processing DATA.", e);
             return response;
         } catch (AddressException e) {
             LifecycleUtil.dispose(mmiss);
             SMTPResponse response = new SMTPResponse(SMTPRetCode.LOCAL_ERROR, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) + " Error processing message: " + e.getMessage());
-            session.getLogger().error("Invalid email address while processing DATA.", e);
+            LOGGER.error("Invalid email address while processing DATA.", e);
             return response;
         }
         return null;
@@ -165,7 +168,7 @@ public class DataLineJamesMessageHookHandler implements DataLineFilter, Extensib
                 OutputStream out;
                 out = mmiss.getWritableOutputStream();
                 for (MessageHook rawHandler : mHandlers) {
-                    session.getLogger().debug("executing james message handler " + rawHandler);
+                    LOGGER.debug("executing james message handler " + rawHandler);
                     long start = System.currentTimeMillis();
 
                     HookResult hRes = rawHandler.onMessage(session, new MailToMailEnvelopeWrapper(mail, out));
@@ -173,7 +176,7 @@ public class DataLineJamesMessageHookHandler implements DataLineFilter, Extensib
 
                     if (rHooks != null) {
                         for (HookResultHook rHook : rHooks) {
-                            session.getLogger().debug("executing hook " + rHook);
+                            LOGGER.debug("executing hook " + rHook);
                             hRes = rHook.onHookResult(session, hRes, executionTime, rawHandler);
                         }
                     }
@@ -188,13 +191,13 @@ public class DataLineJamesMessageHookHandler implements DataLineFilter, Extensib
                 }
 
                 for (JamesMessageHook messageHandler : messageHandlers) {
-                    session.getLogger().debug("executing james message handler " + messageHandler);
+                    LOGGER.debug("executing james message handler " + messageHandler);
                     long start = System.currentTimeMillis();
                     HookResult hRes = messageHandler.onMessage(session, mail);
                     long executionTime = System.currentTimeMillis() - start;
                     if (rHooks != null) {
                         for (HookResultHook rHook : rHooks) {
-                            session.getLogger().debug("executing hook " + rHook);
+                            LOGGER.debug("executing hook " + rHook);
                             hRes = rHook.onHookResult(session, hRes, executionTime, messageHandler);
                         }
                     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
index fb19c67..670586a 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
@@ -32,7 +32,7 @@ public class ExtendedSMTPSession extends org.apache.james.protocols.smtp.SMTPSes
     private final SMTPConfiguration smtpConfiguration;
 
     public ExtendedSMTPSession(SMTPConfiguration smtpConfiguration, Logger logger, ProtocolTransport transport) {
-        super(logger, transport, smtpConfiguration);
+        super(transport, smtpConfiguration);
         this.smtpConfiguration = smtpConfiguration;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
index 30515ae..212e1bd 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
@@ -28,11 +28,14 @@ import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.core.DataCmdHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * handles DATA command
  */
 public class JamesDataCmdHandler extends DataCmdHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JamesDataCmdHandler.class);
 
     @Inject
     public JamesDataCmdHandler(MetricFactory metricFactory) {
@@ -51,7 +54,7 @@ public class JamesDataCmdHandler extends DataCmdHandler {
             MimeMessageInputStreamSource mmiss = new MimeMessageInputStreamSource(MailImpl.getId());
             session.setAttachment(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE, mmiss, State.Transaction);
         } catch (Exception e) {
-            session.getLogger().warn("Error creating mimemessagesource for incoming data", e);
+            LOGGER.warn("Error creating mimemessagesource for incoming data", e);
             return new SMTPResponse(SMTPRetCode.LOCAL_ERROR, "Unexpected error preparing to receive DATA.");
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
index 10cf762..2cf9d52 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SendMailHandler.java
@@ -34,11 +34,14 @@ import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Queue the message
  */
 public class SendMailHandler implements JamesMessageHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SendMailHandler.class);
 
     private MailQueue queue;
     private MailQueueFactory queueFactory;
@@ -64,7 +67,7 @@ public class SendMailHandler implements JamesMessageHook {
      */
     public HookResult onMessage(SMTPSession session, Mail mail) {
        
-        session.getLogger().debug("sending mail");
+        LOGGER.debug("sending mail");
 
         try {
             queue.enQueue(mail);
@@ -73,12 +76,12 @@ public class SendMailHandler implements JamesMessageHook {
             if (theRecipients != null) {
                 recipientString = theRecipients.toString();
             }
-            if (session.getLogger().isInfoEnabled()) {
+            if (LOGGER.isInfoEnabled()) {
                 String infoBuffer = "Successfully spooled mail " + mail.getName() + " from " + mail.getSender() + " on " + session.getRemoteAddress().getAddress().toString() + " for " + recipientString;
-                session.getLogger().info(infoBuffer.toString());
+                LOGGER.info(infoBuffer.toString());
             }
         } catch (MessagingException me) {
-            session.getLogger().error("Unknown error occurred while processing DATA.", me);
+            LOGGER.error("Unknown error occurred while processing DATA.", me);
             return new HookResult(HookReturnCode.DENYSOFT, DSNStatus.getStatus(DSNStatus.TRANSIENT, DSNStatus.UNDEFINED_STATUS) + " Error processing message.");
         }
         

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
index 3740532..9268568 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/SetMimeHeaderHandler.java
@@ -28,11 +28,14 @@ import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.mailet.Mail;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Adds the header to the message
  */
 public class SetMimeHeaderHandler implements JamesMessageHook, ProtocolHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SetMimeHeaderHandler.class);
 
     /**
      * The header name and value that needs to be added
@@ -77,7 +80,7 @@ public class SetMimeHeaderHandler implements JamesMessageHook, ProtocolHandler {
             }
 
         } catch (javax.mail.MessagingException me) {
-            session.getLogger().error(me.getMessage());
+            LOGGER.error(me.getMessage());
         }
 
         return new HookResult(HookReturnCode.DECLINED);

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/TLDLookup.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/TLDLookup.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/TLDLookup.java
index f780975..53b976b 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/TLDLookup.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/TLDLookup.java
@@ -94,10 +94,10 @@ public class TLDLookup {
                     set.add(multiPartTLD);
                 }
             } catch (Exception ex) {
-                debugOut(ex);
+                LOGGER.error("Caught exception", ex);
             }
         }
-        debugOut("initTwoPartTLDs size=" + set.size());
+        LOGGER.debug("initTwoPartTLDs size=" + set.size());
         return set;
     }
 
@@ -111,14 +111,14 @@ public class TLDLookup {
         for (String multiPartTLD : multiPartTLDs) {
             try {
                 if (multiPartTLD.matches("^" + tld3 + "$")) {
-                    debugOut("adding \"" + multiPartTLD + "\"");
+                    LOGGER.debug("adding \"" + multiPartTLD + "\"");
                     set.add(multiPartTLD);
                 }
             } catch (Exception ex) {
-                debugOut(ex);
+                LOGGER.error("Caught exception", ex);
             }
         }
-        debugOut("initThreePartTLDs size=" + set.size());
+        LOGGER.debug("initThreePartTLDs size=" + set.size());
         return set;
     }
 
@@ -164,25 +164,7 @@ public class TLDLookup {
                 "org.ws", "gov.ws", "edu.ws", "ac.yu", "co.yu", "edu.yu", "org.yu", "com.ye", "net.ye", "org.ye", "gov.ye", "edu.ye", "mil.ye", "ac.za", "alt.za", "bourse.za", "city.za", "co.za", "edu.za", "gov.za", "law.za", "mil.za", "net.za", "ngo.za", "nom.za", "org.za", "school.za", "tm.za",
                 "web.za", "co.zw", "ac.zw", "org.zw", "gov.zw", "eu.org", "au.com", "br.com", "cn.com", "de.com", "de.net", "eu.com", "gb.com", "gb.net", "hu.com", "no.com", "qc.com", "ru.com", "sa.com", "se.com", "uk.com", "uk.net", "us.com", "uy.com", "za.com", "dk.org", "tel.no", "fax.nr",
                 "mob.nr", "mobil.nr", "mobile.nr", "tel.nr", "tlf.nr", "e164.arpa" };
-        debugOut("array size=" + tmp.length);
+        LOGGER.debug("array size=" + tmp.length);
         return tmp;
     }
-
-    /**
-     * Debugging output
-     */
-    private static void debugOut(String msg) {
-        if (testing) {
-            LOGGER.debug(msg);
-        }
-    }
-
-    /**
-     * Debugging output
-     */
-    private static void debugOut(Throwable th) {
-        if (testing) {
-            LOGGER.debug("Error caught", th);
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
index deed7a3..f96496a 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/UsersRepositoryAuthHook.java
@@ -28,11 +28,14 @@ import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This Auth hook can be used to authenticate against the james user repository
  */
 public class UsersRepositoryAuthHook implements AuthHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(UsersRepositoryAuthHook.class);
 
     private UsersRepository users;
 
@@ -68,7 +71,7 @@ public class UsersRepositoryAuthHook implements AuthHook {
                 return new HookResult(HookReturnCode.OK, "Authentication Successful");
             }
         } catch (UsersRepositoryException e) {
-            session.getLogger().info("Unable to access UsersRepository", e);
+            LOGGER.info("Unable to access UsersRepository", e);
         }
         return new HookResult(HookReturnCode.DECLINED);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
index f213c05..996b281 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
@@ -56,6 +56,7 @@ import org.slf4j.LoggerFactory;
  * GreylistHandler which can be used to activate Greylisting
  */
 public class JDBCGreylistHandler extends AbstractGreylistHandler implements ProtocolHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JDBCGreylistHandler.class);
 
     /** This log is the fall back shared by all instances */
     private static final Logger FALLBACK_LOG = LoggerFactory.getLogger(JDBCGreylistHandler.class);
@@ -386,7 +387,7 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
         if ((wNetworks == null) || (!wNetworks.matchInetNetwork(session.getRemoteAddress().getAddress().getHostAddress()))) {
             return super.doRcpt(session, sender, rcpt);
         } else {
-            session.getLogger().info("IpAddress " + session.getRemoteAddress().getAddress().getHostAddress() + " is whitelisted. Skip greylisting.");
+            LOGGER.info("IpAddress " + session.getRemoteAddress().getAddress().getHostAddress() + " is whitelisted. Skip greylisting.");
         }
         return new HookResult(HookReturnCode.DECLINED);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
index b7f1788..523f8b6 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SPFHandler.java
@@ -44,6 +44,8 @@ import org.slf4j.LoggerFactory;
 
 public class SPFHandler implements JamesMessageHook, MailHook, RcptHook, ProtocolHandler {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(SPFHandler.class);
+
     /** This log is the fall back shared by all instances */
     private static final Logger FALLBACK_LOG = LoggerFactory.getLogger(SPFHandler.class);
 
@@ -112,7 +114,7 @@ public class SPFHandler implements JamesMessageHook, MailHook, RcptHook, Protoco
 
         // We have no Sender or HELO/EHLO yet return false
         if (sender == null || heloEhlo == null) {
-            session.getLogger().info("No Sender or HELO/EHLO present");
+            LOGGER.info("No Sender or HELO/EHLO present");
         } else {
 
             String ip = session.getRemoteAddress().getAddress().getHostAddress();
@@ -126,7 +128,7 @@ public class SPFHandler implements JamesMessageHook, MailHook, RcptHook, Protoco
             // Store the header
             session.setAttachment(SPF_HEADER, result.getHeaderText(), State.Transaction);
 
-            session.getLogger().info("Result for " + ip + " - " + sender + " - " + heloEhlo + " = " + spfResult);
+            LOGGER.info("Result for " + ip + " - " + sender + " - " + heloEhlo + " = " + spfResult);
 
             // Check if we should block!
             if ((spfResult.equals(SPFErrorConstants.FAIL_CONV)) || (spfResult.equals(SPFErrorConstants.SOFTFAIL_CONV) && blockSoftFail) || (spfResult.equals(SPFErrorConstants.PERM_ERROR_CONV) && blockPermError)) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java
index 8211843..a49db81 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/SpamAssassinHandler.java
@@ -33,6 +33,8 @@ import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.smtpserver.JamesMessageHook;
 import org.apache.james.util.scanner.SpamAssassinInvoker;
 import org.apache.mailet.Mail;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -64,6 +66,7 @@ import org.apache.mailet.Mail;
  * </p>
  */
 public class SpamAssassinHandler implements JamesMessageHook, ProtocolHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SpamAssassinHandler.class);
 
     /** The port spamd is listen on */
     private int spamdPort = 783;
@@ -130,7 +133,7 @@ public class SpamAssassinHandler implements JamesMessageHook, ProtocolHandler {
                     // message
                     if (spamdRejectionHits <= hits) {
                         String buffer = "Rejected message from " + session.getAttachment(SMTPSession.SENDER, State.Transaction).toString() + " from host " + session.getRemoteAddress().getHostName() + " (" + session.getRemoteAddress().getAddress().getHostAddress() + ") This message reach the spam hits treshold. Required rejection hits: " + spamdRejectionHits + " hits: " + hits;
-                        session.getLogger().info(buffer);
+                        LOGGER.info(buffer);
 
                         // Message reject .. abort it!
                         return new HookResult(HookReturnCode.DENY, DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_OTHER) + " This message reach the spam hits treshold. Please contact the Postmaster if the email is not SPAM. Message rejected");
@@ -140,7 +143,7 @@ public class SpamAssassinHandler implements JamesMessageHook, ProtocolHandler {
                 }
             }
         } catch (MessagingException e) {
-            session.getLogger().error(e.getMessage());
+            LOGGER.error(e.getMessage());
         }
         return new HookResult(HookReturnCode.DECLINED);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
index df5782b..259cbac 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIRBLHandler.java
@@ -53,13 +53,7 @@ import org.slf4j.LoggerFactory;
 public class URIRBLHandler implements JamesMessageHook, ProtocolHandler {
 
     /** This log is the fall back shared by all instances */
-    private static final Logger FALLBACK_LOG = LoggerFactory.getLogger(URIRBLHandler.class);
-
-    /**
-     * Non context specific log should only be used when no context specific log
-     * is available
-     */
-    private final Logger serviceLog = FALLBACK_LOG;
+    private static final Logger LOGGER = LoggerFactory.getLogger(URIRBLHandler.class);
 
     private final static String LISTED_DOMAIN = "LISTED_DOMAIN";
 
@@ -157,10 +151,10 @@ public class URIRBLHandler implements JamesMessageHook, ProtocolHandler {
      */
     private HashSet<String> scanMailForDomains(MimePart part, SMTPSession session) throws MessagingException, IOException {
         HashSet<String> domains = new HashSet<>();
-        session.getLogger().debug("mime type is: \"" + part.getContentType() + "\"");
+        LOGGER.debug("mime type is: \"" + part.getContentType() + "\"");
 
         if (part.isMimeType("text/plain") || part.isMimeType("text/html")) {
-            session.getLogger().debug("scanning: \"" + part.getContent().toString() + "\"");
+            LOGGER.debug("scanning: \"" + part.getContent().toString() + "\"");
             HashSet<String> newDom = URIScanner.scanContentForDomains(domains, part.getContent().toString());
 
             // Check if new domains are found and add the domains
@@ -170,10 +164,10 @@ public class URIRBLHandler implements JamesMessageHook, ProtocolHandler {
         } else if (part.isMimeType("multipart/*")) {
             MimeMultipart multipart = (MimeMultipart) part.getContent();
             int count = multipart.getCount();
-            session.getLogger().debug("multipart count is: " + count);
+            LOGGER.debug("multipart count is: " + count);
 
             for (int index = 0; index < count; index++) {
-                session.getLogger().debug("recursing index: " + index);
+                LOGGER.debug("recursing index: " + index);
                 MimeBodyPart mimeBodyPart = (MimeBodyPart) multipart.getBodyPart(index);
                 HashSet<String> newDomains = scanMailForDomains(mimeBodyPart, session);
 
@@ -206,8 +200,8 @@ public class URIRBLHandler implements JamesMessageHook, ProtocolHandler {
                         String uRblServer = uRbl.next();
                         String address = target + "." + uRblServer;
 
-                        if (session.getLogger().isDebugEnabled()) {
-                            session.getLogger().debug("Lookup " + address);
+                        if (LOGGER.isDebugEnabled()) {
+                            LOGGER.debug("Lookup " + address);
                         }
 
                         dnsService.getByName(address);
@@ -224,7 +218,7 @@ public class URIRBLHandler implements JamesMessageHook, ProtocolHandler {
                 }
             }
         } catch (MessagingException | IOException e) {
-            session.getLogger().error(e.getMessage());
+            LOGGER.error(e.getMessage());
         }
         return false;
     }
@@ -235,8 +229,8 @@ public class URIRBLHandler implements JamesMessageHook, ProtocolHandler {
         Collection<String> serverCollection = new ArrayList<>();
         for (String rblServerName : servers) {
             serverCollection.add(rblServerName);
-            if (serviceLog.isInfoEnabled()) {
-                serviceLog.info("Adding uriRBL server: " + rblServerName);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Adding uriRBL server: " + rblServerName);
             }
         }
         if (serverCollection != null && serverCollection.size() > 0) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java
index 04c450e..16d49e8 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/URIScanner.java
@@ -29,8 +29,11 @@ import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 import org.apache.james.smtpserver.TLDLookup;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class URIScanner {
+    private static final Logger LOGGER = LoggerFactory.getLogger(URIScanner.class);
 
     // These regular expressions "inspired" by Spamassassin
     static private final String reserved = ";/?:@&=+$,[]\\#|";
@@ -248,9 +251,9 @@ public class URIScanner {
         mat = emailAddrPattern.matcher(content);
         while (mat.find()) {
             String found = mat.group();
-            debugOut("******** mailfound=\"" + found + "\"");
+            LOGGER.debug("******** mailfound=\"" + found + "\"");
             found = "mailto://" + found;
-            debugOut("*******6 mailfoundfound=\"" + found + "\" after cleanup 6");
+            LOGGER.debug("*******6 mailfoundfound=\"" + found + "\" after cleanup 6");
 
             String host = hostFromUriStr(found);
             if (null != host) {
@@ -275,14 +278,14 @@ public class URIScanner {
      *         could be found
      */
     static protected String hostFromUriStr(String uriStr) {
-        debugOut("hostFromUriStr(\"" + uriStr + "\")");
+        LOGGER.debug("hostFromUriStr(\"" + uriStr + "\")");
         String host = null;
         URI uri;
         try {
             uri = new URI(uriStr);
             host = uri.getHost();
         } catch (URISyntaxException e) {
-            debugOut(e.getMessage());
+            LOGGER.error("Caught exception", e);
         }
         return host;
     }
@@ -301,7 +304,7 @@ public class URIScanner {
      * @return the registrar domain portion of the supplied host string
      */
     static protected String domainFromHost(String host) {
-        debugOut("domainFromHost(\"" + host + "\")");
+        LOGGER.debug("domainFromHost(\"" + host + "\")");
         String domain = null;
         Matcher mat;
 
@@ -310,7 +313,7 @@ public class URIScanner {
         if (mat.find()) {
             // reverse the octets now
             domain = mat.group(5) + "." + mat.group(4) + "." + mat.group(3) + "." + mat.group(2);
-            debugOut("domain=\"" + domain + "\"");
+            LOGGER.debug("domain=\"" + domain + "\"");
             return domain;
         }
 
@@ -320,7 +323,7 @@ public class URIScanner {
             String tld = mat.group(2);
             if (TLDLookup.isThreePartTLD(tld)) {
                 domain = mat.group(1);
-                debugOut("domain=\"" + domain + ", tld=\"" + tld + "\"");
+                LOGGER.debug("domain=\"" + domain + ", tld=\"" + tld + "\"");
                 return domain;
             }
         }
@@ -331,7 +334,7 @@ public class URIScanner {
             String tld = mat.group(2);
             if (TLDLookup.isTwoPartTLD(tld)) {
                 domain = mat.group(1);
-                debugOut("domain=\"" + domain + ", tld=\"" + tld + "\"");
+                LOGGER.debug("domain=\"" + domain + ", tld=\"" + tld + "\"");
                 return domain;
             }
         }
@@ -341,24 +344,13 @@ public class URIScanner {
         if (mat.find()) {
             String tld = mat.group(2);
             domain = mat.group(1);
-            debugOut("domain=\"" + domain + ", tld=\"" + tld + "\"");
+            LOGGER.debug("domain=\"" + domain + ", tld=\"" + tld + "\"");
             return domain;
         }
         return domain;
     }
 
     /**
-     * Debugging output
-     */
-    private static void debugOut(String msg) {
-        /* controls testing/debug output */
-        boolean testing = false;
-        if (testing) {
-            System.out.println(msg);
-        }
-    }
-
-    /**
      * A utility function that "escapes" special characters in a string.
      * 
      * @param str

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptHandler.java
index 782a550..7d4362f 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptHandler.java
@@ -34,11 +34,14 @@ import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Handler which reject invalid recipients
  */
 public class ValidRcptHandler extends AbstractValidRcptHandler implements ProtocolHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ValidRcptHandler.class);
 
     private UsersRepository users;
 
@@ -105,7 +108,7 @@ public class ValidRcptHandler extends AbstractValidRcptHandler implements Protoc
             } else {
 
                 if (useVut) {
-                    session.getLogger().debug("Unknown user " + username + " check if its an alias");
+                    LOGGER.debug("Unknown user " + username + " check if its an alias");
 
                     try {
                         Mappings targetString = vut.getMappings(recipient.getLocalPart(), recipient.getDomain());
@@ -116,7 +119,7 @@ public class ValidRcptHandler extends AbstractValidRcptHandler implements Protoc
                     } catch (ErrorMappingException e) {
                         return false;
                     } catch (RecipientRewriteTableException e) {
-                        session.getLogger().info("Unable to access RecipientRewriteTable", e);
+                        LOGGER.info("Unable to access RecipientRewriteTable", e);
                         return false;
                     }
                 }
@@ -124,7 +127,7 @@ public class ValidRcptHandler extends AbstractValidRcptHandler implements Protoc
                 return false;
             }
         } catch (UsersRepositoryException e) {
-            session.getLogger().info("Unable to access UsersRepository", e);
+            LOGGER.info("Unable to access UsersRepository", e);
             return false;
 
         }
@@ -140,7 +143,7 @@ public class ValidRcptHandler extends AbstractValidRcptHandler implements Protoc
         try {
             return domains.containsDomain(domain);
         } catch (DomainListException e) {
-            session.getLogger().error("Unable to get domains", e);
+            LOGGER.error("Unable to get domains", e);
             return false;
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
index 62e35b3..3f2da70 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
@@ -103,11 +103,7 @@ public class ValidRcptMX implements RcptHook, ProtocolHandler {
      * @param dnsServer The DNSServer
      */
     public void setBannedNetworks(Collection<String> networks, DNSService dnsServer) {
-        bNetwork = new NetMatcher(networks, dnsServer) {
-            protected void log(String s) {
-                serviceLog.debug(s);
-            }
-        };
+        bNetwork = new NetMatcher(networks, dnsServer);
     }
 
     public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
index 64ae9b6..7628039 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
@@ -30,7 +30,6 @@ import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.channel.ChannelStateEvent;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
 import org.jboss.netty.channel.MessageEvent;
-import org.slf4j.Logger;
 
 /**
  * {@link ChannelUpstreamHandler} which is used by the SMTPServer
@@ -40,12 +39,12 @@ public class SMTPChannelUpstreamHandler extends BasicChannelUpstreamHandler {
 
     private final SmtpMetrics smtpMetrics;
 
-    public SMTPChannelUpstreamHandler(Protocol protocol, Logger logger, Encryption encryption, SmtpMetrics smtpMetrics) {
+    public SMTPChannelUpstreamHandler(Protocol protocol, Encryption encryption, SmtpMetrics smtpMetrics) {
         super(protocol, encryption);
         this.smtpMetrics = smtpMetrics;
     }
 
-    public SMTPChannelUpstreamHandler(Protocol protocol, Logger logger, SmtpMetrics smtpMetrics) {
+    public SMTPChannelUpstreamHandler(Protocol protocol, SmtpMetrics smtpMetrics) {
         super(protocol);
         this.smtpMetrics = smtpMetrics;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
index 46e74de..e8d48c2 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
@@ -111,7 +111,7 @@ public class SMTPServer extends AbstractProtocolAsyncServer implements SMTPServe
             }
             authorizedNetworks = new NetMatcher(networks, dns);
         }
-        SMTPProtocol transport = new SMTPProtocol(getProtocolHandlerChain(), theConfigData, getLogger()) {
+        SMTPProtocol transport = new SMTPProtocol(getProtocolHandlerChain(), theConfigData) {
 
             @Override
             public ProtocolSession newSession(ProtocolTransport transport) {
@@ -119,7 +119,7 @@ public class SMTPServer extends AbstractProtocolAsyncServer implements SMTPServe
             }
             
         };
-        coreHandler = new SMTPChannelUpstreamHandler(transport, getLogger(), getEncryption(), smtpMetrics);
+        coreHandler = new SMTPChannelUpstreamHandler(transport, getEncryption(), smtpMetrics);
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[15/38] james-project git commit: JAMES-2114 Remove LOGGER from mailboxSession API

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
index 11d13f8..4db10ce 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMailboxSession.java
@@ -28,7 +28,6 @@ import java.util.Map;
 
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.model.MailboxConstants;
-import org.slf4j.Logger;
 
 /**
  * Describes a mailbox session.
@@ -42,8 +41,6 @@ public class SimpleMailboxSession implements MailboxSession, MailboxSession.User
     private final String personalSpace;
     
     private final long sessionId;
-    
-    private final Logger log;
 
     private final String userName;
     
@@ -61,14 +58,13 @@ public class SimpleMailboxSession implements MailboxSession, MailboxSession.User
 
     
     public SimpleMailboxSession(long sessionId, String userName, String password,
-            final Logger log, List<Locale> localePreferences, char pathSeparator, SessionType type) {
-        this(sessionId, userName, password, log, localePreferences, new ArrayList<>(), null, pathSeparator, type);
+                                List<Locale> localePreferences, char pathSeparator, SessionType type) {
+        this(sessionId, userName, password, localePreferences, new ArrayList<>(), null, pathSeparator, type);
     }
 
     public SimpleMailboxSession(long sessionId, String userName, String password,
-            final Logger log, List<Locale> localePreferences, List<String> sharedSpaces, String otherUsersSpace, char pathSeparator, SessionType type) {
+                                List<Locale> localePreferences, List<String> sharedSpaces, String otherUsersSpace, char pathSeparator, SessionType type) {
         this.sessionId = sessionId;
-        this.log = log;
         this.userName = userName;
         this.password = password;
         this.otherUsersSpace = otherUsersSpace;
@@ -84,13 +80,7 @@ public class SimpleMailboxSession implements MailboxSession, MailboxSession.User
         this.attributes = new HashMap<>();
         this.pathSeparator = pathSeparator;
     }
-    
-    /**
-     * @see org.apache.james.mailbox.MailboxSession#getLog()
-     */
-    public Logger getLog() {
-        return log;
-    }
+
 
     /**
      * @see org.apache.james.mailbox.MailboxSession#close()

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index 4220bcb..c51bd2b 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -82,6 +82,7 @@ import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
 import org.apache.james.mailbox.store.transaction.Mapper;
 import org.apache.james.mailbox.store.transaction.TransactionalMapper;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Optional;
@@ -97,6 +98,7 @@ import com.google.common.collect.Iterables;
  *
  */
 public class StoreMailboxManager implements MailboxManager {
+    private static final Logger LOGGER = LoggerFactory.getLogger(StoreMailboxManager.class);
 
     public static final char SQL_WILDCARD_CHAR = '%';
 
@@ -383,19 +385,19 @@ public class StoreMailboxManager implements MailboxManager {
     }
 
     @Override
-    public MailboxSession createSystemSession(String userName, Logger log) {
-        return createSession(userName, null, log, SessionType.System);
+    public MailboxSession createSystemSession(String userName) {
+        return createSession(userName, null, SessionType.System);
     }
 
     /**
      * Create Session
      *
      * @param userName
-     * @param log
      * @return session
      */
-    protected MailboxSession createSession(String userName, String password, Logger log, SessionType type) {
-        return new SimpleMailboxSession(randomId(), userName, password, log, new ArrayList<>(), getDelimiter(), type);
+
+    protected MailboxSession createSession(String userName, String password, SessionType type) {
+        return new SimpleMailboxSession(randomId(), userName, password, new ArrayList<>(), getDelimiter(), type);
     }
 
     /**
@@ -419,28 +421,28 @@ public class StoreMailboxManager implements MailboxManager {
      * @param passwd the password
      * @return success true if login success false otherwise
      */
-    private boolean login(String userid, String passwd) throws MailboxException {
+    private boolean isValidLogin(String userid, String passwd) throws MailboxException {
         return authenticator.isAuthentic(userid, passwd);
     }
 
     @Override
-    public MailboxSession login(String userid, String passwd, Logger log) throws BadCredentialsException, MailboxException {
-        if (login(userid, passwd)) {
-            return createSession(userid, passwd, log, SessionType.User);
+    public MailboxSession login(String userid, String passwd) throws BadCredentialsException, MailboxException {
+        if (isValidLogin(userid, passwd)) {
+            return createSession(userid, passwd, SessionType.User);
         } else {
             throw new BadCredentialsException();
         }
     }
 
     @Override
-    public MailboxSession loginAsOtherUser(String adminUserid, String passwd, String otherUserId, Logger log) throws MailboxException {
-        if (! login(adminUserid, passwd)) {
+    public MailboxSession loginAsOtherUser(String adminUserid, String passwd, String otherUserId) throws MailboxException {
+        if (! isValidLogin(adminUserid, passwd)) {
             throw new BadCredentialsException();
         }
         Authorizator.AuthorizationState authorizationState = authorizator.canLoginAsOtherUser(adminUserid, otherUserId);
         switch (authorizationState) {
             case ALLOWED:
-                return createSystemSession(otherUserId, log);
+                return createSystemSession(otherUserId);
             case NOT_ADMIN:
                 throw new NotAdminException();
             case UNKNOWN_USER:
@@ -493,11 +495,11 @@ public class StoreMailboxManager implements MailboxManager {
         Mailbox mailboxRow = mapper.findMailboxByPath(mailboxPath);
 
         if (mailboxRow == null) {
-            session.getLog().info("Mailbox '" + mailboxPath + "' not found.");
+            LOGGER.info("Mailbox '" + mailboxPath + "' not found.");
             throw new MailboxNotFoundException(mailboxPath);
 
         } else {
-            session.getLog().debug("Loaded mailbox " + mailboxPath);
+            LOGGER.debug("Loaded mailbox " + mailboxPath);
 
             return createMessageManager(mailboxRow, session);
         }
@@ -510,16 +512,16 @@ public class StoreMailboxManager implements MailboxManager {
         Mailbox mailboxRow = mapper.findMailboxById(mailboxId);
 
         if (mailboxRow == null) {
-            session.getLog().info("Mailbox '" + mailboxId.serialize() + "' not found.");
+            LOGGER.info("Mailbox '" + mailboxId.serialize() + "' not found.");
             throw new MailboxNotFoundException(mailboxId.serialize());
         }
         
         if (! belongsToCurrentUser(mailboxRow, session)) {
-            session.getLog().info("Mailbox '" + mailboxId.serialize() + "' does not belong to user '" + session.getUser() + "' but to '" + mailboxRow.getUser());
+            LOGGER.info("Mailbox '" + mailboxId.serialize() + "' does not belong to user '" + session.getUser() + "' but to '" + mailboxRow.getUser());
             throw new MailboxNotFoundException(mailboxId.serialize());
         }
 
-        session.getLog().debug("Loaded mailbox " + mailboxId.serialize());
+        LOGGER.debug("Loaded mailbox " + mailboxId.serialize());
 
         return createMessageManager(mailboxRow, session);
     }
@@ -531,10 +533,10 @@ public class StoreMailboxManager implements MailboxManager {
     @Override
     public Optional<MailboxId> createMailbox(MailboxPath mailboxPath, final MailboxSession mailboxSession)
             throws MailboxException {
-        mailboxSession.getLog().debug("createMailbox " + mailboxPath);
+        LOGGER.debug("createMailbox " + mailboxPath);
         final int length = mailboxPath.getName().length();
         if (length == 0) {
-            mailboxSession.getLog().warn("Ignoring mailbox with empty name");
+            LOGGER.warn("Ignoring mailbox with empty name");
         } else {
             if (mailboxPath.getName().charAt(length - 1) == getDelimiter())
                 mailboxPath.setName(mailboxPath.getName().substring(0, length - 1));
@@ -574,7 +576,7 @@ public class StoreMailboxManager implements MailboxManager {
 
     @Override
     public void deleteMailbox(final MailboxPath mailboxPath, final MailboxSession session) throws MailboxException {
-        session.getLog().info("deleteMailbox " + mailboxPath);
+        LOGGER.info("deleteMailbox " + mailboxPath);
         final MailboxMapper mapper = mailboxSessionMapperFactory.getMailboxMapper(session);
 
         Mailbox mailbox = mapper.execute((Mapper.Transaction<Mailbox>) () -> {
@@ -596,7 +598,7 @@ public class StoreMailboxManager implements MailboxManager {
 
     @Override
     public void renameMailbox(final MailboxPath from, final MailboxPath to, final MailboxSession session) throws MailboxException {
-        final Logger log = session.getLog();
+        final Logger log = LOGGER;
         if (log.isDebugEnabled())
             log.debug("renameMailbox " + from + " to " + to);
         if (mailboxExists(to, session)) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
index 94b8449..4643fc1 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
@@ -54,6 +54,8 @@ import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 import org.apache.james.mailbox.store.quota.QuotaChecker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Function;
 import com.google.common.base.Optional;
@@ -66,6 +68,7 @@ import com.google.common.collect.Sets;
 import com.google.common.collect.Sets.SetView;
 
 public class StoreMessageIdManager implements MessageIdManager {
+    private static final Logger LOGGER = LoggerFactory.getLogger(StoreMessageIdManager.class);
     private final MailboxSessionMapperFactory mailboxSessionMapperFactory;
     private final MailboxEventDispatcher dispatcher;
     private final MessageId.Factory messageIdFactory;
@@ -259,7 +262,7 @@ public class StoreMessageIdManager implements MessageIdManager {
                 Mailbox currentMailbox = mailboxMapper.findMailboxById(mailboxId);
                 return belongsToCurrentUser(currentMailbox, mailboxSession);
             } catch (MailboxException e) {
-                mailboxSession.getLog().error(String.format("Can not retrieve mailboxPath associated with %s", mailboxId.serialize()), e);
+                LOGGER.error(String.format("Can not retrieve mailboxPath associated with %s", mailboxId.serialize()), e);
                 return false;
             }
         };

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SynchronousEventDelivery.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SynchronousEventDelivery.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SynchronousEventDelivery.java
index 45b9a65..aca62f9 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SynchronousEventDelivery.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SynchronousEventDelivery.java
@@ -20,17 +20,19 @@
 package org.apache.james.mailbox.store.event;
 
 import org.apache.james.mailbox.MailboxListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class SynchronousEventDelivery implements EventDelivery {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(SynchronousEventDelivery.class);
+
     @Override
     public void deliver(MailboxListener mailboxListener, MailboxListener.Event event) {
         try {
             mailboxListener.event(event);
         } catch(Throwable throwable) {
-            event.getSession()
-                .getLog()
-                .error("Error while processing listener "
+            LOGGER.error("Error while processing listener "
                         + mailboxListener.getClass().getCanonicalName()
                         + " for "
                         + event.getClass().getCanonicalName(),

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/distributed/BroadcastDelegatingMailboxListener.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/distributed/BroadcastDelegatingMailboxListener.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/distributed/BroadcastDelegatingMailboxListener.java
index 57c3a9c..c7c2dcb 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/distributed/BroadcastDelegatingMailboxListener.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/distributed/BroadcastDelegatingMailboxListener.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.mailbox.store.event.distributed;
 
+import java.util.Collection;
+
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -33,8 +35,6 @@ import org.apache.james.mailbox.store.publisher.Topic;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Collection;
-
 public class BroadcastDelegatingMailboxListener implements DistributedDelegatingMailboxListener {
 
     private final static Logger LOGGER = LoggerFactory.getLogger(BroadcastDelegatingMailboxListener.class);
@@ -102,7 +102,7 @@ public class BroadcastDelegatingMailboxListener implements DistributedDelegating
         try {
             publisher.publish(globalTopic, eventSerializer.serializeEvent(event));
         } catch (Throwable t) {
-            event.getSession().getLog().error("Error while sending event to publisher", t);
+            LOGGER.error("Error while sending event to publisher", t);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/distributed/RegisteredDelegatingMailboxListener.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/distributed/RegisteredDelegatingMailboxListener.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/distributed/RegisteredDelegatingMailboxListener.java
index b657bb6..a16434f 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/distributed/RegisteredDelegatingMailboxListener.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/distributed/RegisteredDelegatingMailboxListener.java
@@ -19,6 +19,9 @@
 
 package org.apache.james.mailbox.store.event.distributed;
 
+import java.util.Collection;
+import java.util.Set;
+
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -33,9 +36,6 @@ import org.apache.james.mailbox.store.publisher.Topic;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Collection;
-import java.util.Set;
-
 public class RegisteredDelegatingMailboxListener implements DistributedDelegatingMailboxListener {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(RegisteredDelegatingMailboxListener.class);
@@ -109,9 +109,7 @@ public class RegisteredDelegatingMailboxListener implements DistributedDelegatin
             deliverToMailboxPathRegisteredListeners(event);
             sendToRemoteJames(event);
         } catch (Throwable t) {
-            event.getSession()
-                .getLog()
-                .error("Error while delegating event " + event.getClass().getCanonicalName(), t);
+            LOGGER.error("Error while delegating event " + event.getClass().getCanonicalName(), t);
         }
     }
 
@@ -160,16 +158,14 @@ public class RegisteredDelegatingMailboxListener implements DistributedDelegatin
         try {
             serializedEvent = eventSerializer.serializeEvent(event);
         } catch (Exception e) {
-            event.getSession()
-                .getLog()
-                .error("Unable to serialize " + event.getClass().getCanonicalName(), e);
+            LOGGER.error("Unable to serialize " + event.getClass().getCanonicalName(), e);
             return;
         }
         for (Topic topic : topics) {
             try {
                 publisher.publish(topic, serializedEvent);
             } catch (Throwable t) {
-                event.getSession().getLog().error("Unable to send serialized event to topic " + topic);
+                LOGGER.error("Unable to send serialized event to topic " + topic);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/MailboxSessionDataTransferObject.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/MailboxSessionDataTransferObject.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/MailboxSessionDataTransferObject.java
index ec65a5d..5b4acaa 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/MailboxSessionDataTransferObject.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/json/event/dto/MailboxSessionDataTransferObject.java
@@ -69,7 +69,6 @@ public class MailboxSessionDataTransferObject {
         return new SimpleMailboxSession(sessionId,
             username,
             "",
-            LOG,
             retrieveLocales(),
             sharedSpaces,
             otherUserSpace,

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
index c54b9d6..ca5657d 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
@@ -20,16 +20,20 @@ package org.apache.james.mailbox.store.quota;
 
 import java.util.List;
 
+import javax.inject.Inject;
+
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.QuotaRoot;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
-
-import javax.inject.Inject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ListeningCurrentQuotaUpdater implements MailboxListener, QuotaUpdater {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(ListeningCurrentQuotaUpdater.class);
+
     private final StoreCurrentQuotaManager currentQuotaManager;
     private final QuotaRootResolver quotaRootResolver;
 
@@ -59,7 +63,7 @@ public class ListeningCurrentQuotaUpdater implements MailboxListener, QuotaUpdat
                 handleExpungedEvent((Expunged) event, quotaRoot);
             }
         } catch(MailboxException e) {
-            event.getSession().getLog().error("Error while updating quotas", e);
+            LOGGER.error("Error while updating quotas", e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
index 9ebee95..f4c9947 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
@@ -37,6 +37,8 @@ import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.store.mail.MessageMapper.FetchType;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Preconditions;
 
@@ -51,6 +53,8 @@ import com.google.common.base.Preconditions;
  */
 public class LazyMessageSearchIndex extends ListeningMessageSearchIndex {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(LazyMessageSearchIndex.class);
+
     private final ListeningMessageSearchIndex index;
     private final ConcurrentHashMap<MailboxId, Object> indexed = new ConcurrentHashMap<>();
     
@@ -110,7 +114,7 @@ public class LazyMessageSearchIndex extends ListeningMessageSearchIndex {
                     try {
                         add(session, mailbox, message);
                     } catch (MailboxException e) {
-                        session.getLog().error("Unable to index message " + message.getUid() + " in mailbox " + mailbox.getName(), e);
+                        LOGGER.error("Unable to index message " + message.getUid() + " in mailbox " + mailbox.getName(), e);
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
index bd4521c..13155e7 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java
@@ -31,6 +31,8 @@ import org.apache.james.mailbox.store.mail.MessageMapper.FetchType;
 import org.apache.james.mailbox.store.mail.MessageMapperFactory;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 
@@ -41,6 +43,7 @@ import com.google.common.base.Optional;
  *
  */
 public abstract class ListeningMessageSearchIndex implements MessageSearchIndex, MailboxListener {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ListeningMessageSearchIndex.class);
 
     public static final int UNLIMITED = -1;
     private final MessageMapperFactory factory;
@@ -89,7 +92,7 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
                     try {
                         delete(session, expunged.getMailbox(), expunged.getUids());
                     } catch (MailboxException e) {
-                        session.getLog().error("Unable to deleted messages " + expunged.getUids() + " from index for mailbox " + expunged.getMailbox(), e);
+                        LOGGER.error("Unable to deleted messages " + expunged.getUids() + " from index for mailbox " + expunged.getMailbox(), e);
                     }
                 } else if (event instanceof EventFactory.FlagsUpdatedImpl) {
                     EventFactory.FlagsUpdatedImpl flagsUpdated = (EventFactory.FlagsUpdatedImpl) event;
@@ -98,14 +101,14 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
                     try {
                         update(session, mailbox, flagsUpdated.getUpdatedFlags());
                     } catch (MailboxException e) {
-                        session.getLog().error("Unable to update flags in index for mailbox " + mailbox, e);
+                        LOGGER.error("Unable to update flags in index for mailbox " + mailbox, e);
                     }
                 }
             } else if (event instanceof EventFactory.MailboxDeletionImpl) {
                 deleteAll(session, ((EventFactory.MailboxDeletionImpl) event).getMailbox());
             }
         } catch (MailboxException e) {
-            session.getLog().error("Unable to update index", e);
+            LOGGER.error("Unable to update index", e);
         }
     }
 
@@ -119,7 +122,7 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
                     .findInMailbox(mailbox, MessageRange.one(next), FetchType.Full, UNLIMITED)
                     .next());
             } catch (Exception e) {
-                session.getLog().error(String.format("Could not retrieve message %d in mailbox %s",
+                LOGGER.error(String.format("Could not retrieve message %d in mailbox %s",
                     next, mailbox.getMailboxId().serialize()), e);
                 return Optional.absent();
             }
@@ -130,7 +133,7 @@ public abstract class ListeningMessageSearchIndex implements MessageSearchIndex,
         try {
             add(session, mailbox, message);
         } catch (MailboxException e) {
-            session.getLog().error("Unable to index message " + message.getUid() + " for mailbox " + mailbox, e);
+            LOGGER.error("Unable to index message " + message.getUid() + " for mailbox " + mailbox, e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
index b2fdd22..5625a31 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/MessageSearches.java
@@ -70,6 +70,8 @@ import org.apache.james.mime4j.message.HeaderImpl;
 import org.apache.james.mime4j.stream.MimeConfig;
 import org.apache.james.mime4j.util.MimeUtil;
 import org.apache.james.mime4j.utils.search.MessageMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
@@ -81,6 +83,8 @@ import com.google.common.collect.Lists;
  */
 public class MessageSearches implements Iterable<SimpleMessageSearchIndex.SearchResult> {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(MessageSearches.class);
+
     private static final MimeConfig MIME_ENTITY_CONFIG = MimeConfig.custom()
         .setMaxContentLen(-1)
         .setMaxHeaderCount(-1)
@@ -115,9 +119,7 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
                     builder.add(m);
                 }
             } catch (MailboxException e) {
-                if (session != null && session.getLog() != null) {
-                    session.getLog().error("Unable to search message " + m.getUid(), e);
-                }
+                LOGGER.error("Unable to search message " + m.getUid(), e);
             }
         }
         List<MailboxMessage> sortedResults = FluentIterable.from(builder.build())
@@ -223,14 +225,13 @@ public class MessageSearches implements Iterable<SimpleMessageSearchIndex.Search
     }
 
     private boolean isInMessage(String value, InputStream input, boolean header) throws IOException, MimeException {
-        MessageMatcher.MessageMatcherBuilder builder = MessageMatcher.builder()
+        return MessageMatcher.builder()
             .searchContents(Lists.<CharSequence>newArrayList(value))
             .caseInsensitive(true)
-            .includeHeaders(header);
-        if (session != null && session.getLog() != null) {
-            builder.logger(session.getLog());
-        }
-        return builder.build().messageMatches(input);
+            .includeHeaders(header)
+            .logger(LOGGER)
+            .build()
+            .messageMatches(input);
     }
 
     private boolean messageContains(String value, MailboxMessage message) throws IOException, MimeException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/test/java/org/apache/james/mailbox/store/GroupFolderResolverTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/GroupFolderResolverTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/GroupFolderResolverTest.java
index 836bf4a..be87636 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/GroupFolderResolverTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/GroupFolderResolverTest.java
@@ -40,7 +40,7 @@ public class GroupFolderResolverTest {
     
     @Test
     public void isGroupFolderShouldReturnFalseWhenMailboxNamespaceIsNull() {
-        SimpleMailboxSession mailboxSession = new SimpleMailboxSession(1, "username", "password", log, localePreferences, sharedSpaces, null, pathSeparator, SessionType.User);
+        SimpleMailboxSession mailboxSession = new SimpleMailboxSession(1, "username", "password", localePreferences, sharedSpaces, null, pathSeparator, SessionType.User);
         GroupFolderResolver testee =  new GroupFolderResolver(mailboxSession);
         
         SimpleMailbox mailbox = new SimpleMailbox(new MailboxPath(null, "user", "name"), UID_VALIDITY);
@@ -49,7 +49,7 @@ public class GroupFolderResolverTest {
     
     @Test
     public void isGroupFolderShouldReturnFalseWhenMailboxNamespaceEqualsToUserNamespace() {
-        SimpleMailboxSession mailboxSession = new SimpleMailboxSession(1, "username", "password", log, localePreferences, sharedSpaces, null, pathSeparator, SessionType.User);
+        SimpleMailboxSession mailboxSession = new SimpleMailboxSession(1, "username", "password", localePreferences, sharedSpaces, null, pathSeparator, SessionType.User);
         GroupFolderResolver testee =  new GroupFolderResolver(mailboxSession);
         
         SimpleMailbox mailbox = new SimpleMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, "user", "name"), UID_VALIDITY);
@@ -59,7 +59,7 @@ public class GroupFolderResolverTest {
     @Test
     public void isGroupFolderShouldReturnFalseWhenMailboxNamespaceEqualsToOtherUsersNamespace() {
         String otherUsersSpace = "other";
-        SimpleMailboxSession mailboxSession = new SimpleMailboxSession(1, "username", "password", log, localePreferences, sharedSpaces, otherUsersSpace, pathSeparator, SessionType.User);
+        SimpleMailboxSession mailboxSession = new SimpleMailboxSession(1, "username", "password", localePreferences, sharedSpaces, otherUsersSpace, pathSeparator, SessionType.User);
         GroupFolderResolver testee =  new GroupFolderResolver(mailboxSession);
         
         SimpleMailbox mailbox = new SimpleMailbox(new MailboxPath("other", "user", "name"), UID_VALIDITY);
@@ -69,7 +69,7 @@ public class GroupFolderResolverTest {
     @Test
     public void isGroupFolderShouldReturnTrueWhenMailboxNamespaceDoesntEqualToOtherUsersNamespace() {
         String otherUsersSpace = "other";
-        SimpleMailboxSession mailboxSession = new SimpleMailboxSession(1, "username", "password", log, localePreferences, sharedSpaces, otherUsersSpace, pathSeparator, SessionType.User);
+        SimpleMailboxSession mailboxSession = new SimpleMailboxSession(1, "username", "password", localePreferences, sharedSpaces, otherUsersSpace, pathSeparator, SessionType.User);
         GroupFolderResolver testee =  new GroupFolderResolver(mailboxSession);
         
         SimpleMailbox mailbox = new SimpleMailbox(new MailboxPath("namespace", "user", "name"), UID_VALIDITY);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
index c55d7cc..e0db1ec 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
@@ -44,8 +44,6 @@ import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class StoreMailboxManagerTest {
 
@@ -54,7 +52,6 @@ public class StoreMailboxManagerTest {
     private static final String ADMIN = "admin";
     private static final String ADMIN_PASSWORD = "adminsecret";
     private static final MailboxId MAILBOX_ID = TestId.of(123);
-    private static final Logger LOGGER = LoggerFactory.getLogger(StoreMailboxManagerTest.class); 
     private static final int UID_VALIDITY = 42;
     public static final String UNKNOWN_USER = "otheruser";
     public static final String BAD_PASSWORD = "badpassword";
@@ -183,49 +180,49 @@ public class StoreMailboxManagerTest {
 
     @Test
     public void loginShouldCreateSessionWhenGoodPassword() throws Exception {
-        MailboxSession expected = storeMailboxManager.login(CURRENT_USER, CURRENT_USER_PASSWORD, LOGGER);
+        MailboxSession expected = storeMailboxManager.login(CURRENT_USER, CURRENT_USER_PASSWORD);
 
         assertThat(expected.getUser().getUserName()).isEqualTo(CURRENT_USER);
     }
 
     @Test(expected = BadCredentialsException.class)
     public void loginShouldThrowWhenBadPassword() throws Exception {
-        storeMailboxManager.login(CURRENT_USER, BAD_PASSWORD, LOGGER);
+        storeMailboxManager.login(CURRENT_USER, BAD_PASSWORD);
     }
 
     @Test(expected = BadCredentialsException.class)
     public void loginAsOtherUserShouldNotCreateUserSessionWhenAdminWithBadPassword() throws Exception {
-        storeMailboxManager.loginAsOtherUser(ADMIN, BAD_PASSWORD, CURRENT_USER, LOGGER);
+        storeMailboxManager.loginAsOtherUser(ADMIN, BAD_PASSWORD, CURRENT_USER);
     }
 
     @Test(expected = NotAdminException.class)
     public void loginAsOtherUserShouldNotCreateUserSessionWhenNotAdmin() throws Exception {
-        storeMailboxManager.loginAsOtherUser(CURRENT_USER, CURRENT_USER_PASSWORD, UNKNOWN_USER, LOGGER);
+        storeMailboxManager.loginAsOtherUser(CURRENT_USER, CURRENT_USER_PASSWORD, UNKNOWN_USER);
     }
 
     @Test(expected = BadCredentialsException.class)
     public void loginAsOtherUserShouldThrowBadCredentialWhenBadPasswordAndNotAdminUser() throws Exception {
-        storeMailboxManager.loginAsOtherUser(CURRENT_USER, BAD_PASSWORD, CURRENT_USER, LOGGER);
+        storeMailboxManager.loginAsOtherUser(CURRENT_USER, BAD_PASSWORD, CURRENT_USER);
     }
 
     @Test(expected = BadCredentialsException.class)
     public void loginAsOtherUserShouldThrowBadCredentialWhenBadPasswordNotAdminUserAndUnknownUser() throws Exception {
-        storeMailboxManager.loginAsOtherUser(CURRENT_USER, BAD_PASSWORD, UNKNOWN_USER, LOGGER);
+        storeMailboxManager.loginAsOtherUser(CURRENT_USER, BAD_PASSWORD, UNKNOWN_USER);
     }
 
     @Test(expected = BadCredentialsException.class)
     public void loginAsOtherUserShouldThrowBadCredentialsWhenBadPasswordAndUserDoesNotExists() throws Exception {
-        storeMailboxManager.loginAsOtherUser(ADMIN, BAD_PASSWORD, UNKNOWN_USER, LOGGER);
+        storeMailboxManager.loginAsOtherUser(ADMIN, BAD_PASSWORD, UNKNOWN_USER);
     }
 
     @Test(expected = UserDoesNotExistException.class)
     public void loginAsOtherUserShouldNotCreateUserSessionWhenDelegatedUserDoesNotExist() throws Exception {
-        storeMailboxManager.loginAsOtherUser(ADMIN, ADMIN_PASSWORD, UNKNOWN_USER, LOGGER);
+        storeMailboxManager.loginAsOtherUser(ADMIN, ADMIN_PASSWORD, UNKNOWN_USER);
     }
 
     @Test
     public void loginAsOtherUserShouldCreateUserSessionWhenAdminWithGoodPassword() throws Exception {
-        MailboxSession expected = storeMailboxManager.loginAsOtherUser(ADMIN, ADMIN_PASSWORD, CURRENT_USER, LOGGER);
+        MailboxSession expected = storeMailboxManager.loginAsOtherUser(ADMIN, ADMIN_PASSWORD, CURRENT_USER);
 
         assertThat(expected.getUser().getUserName()).isEqualTo(CURRENT_USER);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
index 8c45ae0..5dbfe9a 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
@@ -47,8 +47,6 @@ import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.junit.Assume;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -58,7 +56,6 @@ public abstract class AbstractMessageSearchIndexTest {
     protected static final String OTHERUSER = "otheruser";
     protected static final String USERNAME = "benwa";
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractMessageSearchIndexTest.class);
     public static final long LIMIT = 100L;
     public static final boolean RECENT = true;
     public static final boolean NOT_RECENT = false;
@@ -92,8 +89,8 @@ public abstract class AbstractMessageSearchIndexTest {
     public void setUp() throws Exception {
         initializeMailboxManager();
 
-        session = storeMailboxManager.createSystemSession(USERNAME, LOGGER);
-        otherSession = storeMailboxManager.createSystemSession(OTHERUSER, LOGGER);
+        session = storeMailboxManager.createSystemSession(USERNAME);
+        otherSession = storeMailboxManager.createSystemSession(OTHERUSER);
 
         MailboxPath inboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, USERNAME, INBOX);
         MailboxPath otherInboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, OTHERUSER, INBOX);
@@ -330,7 +327,7 @@ public abstract class AbstractMessageSearchIndexTest {
     @Test
     public void searchShouldReturnEmptyWhenUserDontMatch() throws MailboxException {
         Assume.assumeTrue(storeMailboxManager.getSupportedSearchCapabilities().contains(MailboxManager.SearchCapabilities.MultimailboxSearch));
-        MailboxSession otherUserSession = storeMailboxManager.createSystemSession("otherUser", LOGGER);
+        MailboxSession otherUserSession = storeMailboxManager.createSystemSession("otherUser");
         SearchQuery searchQuery = new SearchQuery();
         assertThat(messageSearchIndex.search(otherUserSession, mailbox, searchQuery))
             .isEmpty();

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/tool/src/main/java/org/apache/james/mailbox/copier/MailboxCopierImpl.java
----------------------------------------------------------------------
diff --git a/mailbox/tool/src/main/java/org/apache/james/mailbox/copier/MailboxCopierImpl.java b/mailbox/tool/src/main/java/org/apache/james/mailbox/copier/MailboxCopierImpl.java
index 9c09cc9..1f1f238 100644
--- a/mailbox/tool/src/main/java/org/apache/james/mailbox/copier/MailboxCopierImpl.java
+++ b/mailbox/tool/src/main/java/org/apache/james/mailbox/copier/MailboxCopierImpl.java
@@ -45,6 +45,7 @@ import org.slf4j.LoggerFactory;
  * 
  */
 public class MailboxCopierImpl implements MailboxCopier {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxCopierImpl.class.getName());
 
     private final static FetchGroup GROUP = new FetchGroup() {
 
@@ -59,11 +60,6 @@ public class MailboxCopierImpl implements MailboxCopier {
         }
         
     };
-    
-    /**
-     * The logger.
-     */
-    private Logger log = LoggerFactory.getLogger(MailboxCopierImpl.class.getName());
 
     /**
      * @see org.apache.james.mailbox.copier.MailboxCopier#copyMailboxes(org.apache.james.mailbox.MailboxManager, org.apache.james.mailbox.MailboxManager)
@@ -77,14 +73,14 @@ public class MailboxCopierImpl implements MailboxCopier {
 
         List<MailboxPath> mailboxPathList = null;
 
-        srcMailboxSession = srcMailboxManager.createSystemSession("manager", log);
+        srcMailboxSession = srcMailboxManager.createSystemSession("manager");
         srcMailboxManager.startProcessingRequest(srcMailboxSession);
         mailboxPathList = srcMailboxManager.list(srcMailboxSession);
         srcMailboxManager.endProcessingRequest(srcMailboxSession);
 
-        log.info("Found " + mailboxPathList.size() + " mailboxes in source mailbox manager.");
+        LOGGER.info("Found " + mailboxPathList.size() + " mailboxes in source mailbox manager.");
         for (int i=0; i < mailboxPathList.size(); i++) {
-            log.info("Mailbox#" + i + " path=" + mailboxPathList.get(i));
+            LOGGER.info("Mailbox#" + i + " path=" + mailboxPathList.get(i));
         }
 
         MailboxPath mailboxPath = null;
@@ -95,19 +91,19 @@ public class MailboxCopierImpl implements MailboxCopier {
             
             if ((mailboxPath.getName() != null) && (mailboxPath.getName().trim().length() > 0)) {
                 
-                log.info("Ready to copy source mailbox path=" + mailboxPath.toString());
+                LOGGER.info("Ready to copy source mailbox path=" + mailboxPath.toString());
 
-                srcMailboxSession = srcMailboxManager.createSystemSession(mailboxPath.getUser(), log);
-                dstMailboxSession = dstMailboxManager.createSystemSession(mailboxPath.getUser(), log);
+                srcMailboxSession = srcMailboxManager.createSystemSession(mailboxPath.getUser());
+                dstMailboxSession = dstMailboxManager.createSystemSession(mailboxPath.getUser());
 
                 dstMailboxManager.startProcessingRequest(dstMailboxSession);
                 try {
                     dstMailboxManager.createMailbox(mailboxPath, dstMailboxSession);
-                    log.info("Destination mailbox " + i + "/" + mailboxPathList.size() 
+                    LOGGER.info("Destination mailbox " + i + "/" + mailboxPathList.size()
                             + " created with path=" + mailboxPath.toString()
                             + " after " + (Calendar.getInstance().getTimeInMillis() - start.getTimeInMillis()) + " ms.");
                 } catch (MailboxExistsException e) {
-                    log.error("Mailbox " + i + " with path=" + mailboxPath.toString() + " already exists.", e);
+                    LOGGER.error("Mailbox " + i + " with path=" + mailboxPath.toString() + " already exists.", e);
                 }
                 dstMailboxManager.endProcessingRequest(dstMailboxSession);
 
@@ -129,7 +125,7 @@ public class MailboxCopierImpl implements MailboxCopier {
                     dstMailboxManager.startProcessingRequest(dstMailboxSession);
                     dstMessageManager.appendMessage(content.getInputStream(), messageResult.getInternalDate(), dstMailboxSession, messageResult.getFlags().contains(Flag.RECENT), messageResult.getFlags());
                     dstMailboxManager.endProcessingRequest(dstMailboxSession);
-                    log.info("MailboxMessage #" + j + " appended in destination mailbox with path=" + mailboxPath.toString());
+                    LOGGER.info("MailboxMessage #" + j + " appended in destination mailbox with path=" + mailboxPath.toString());
                     j++;
 
                 }
@@ -139,7 +135,7 @@ public class MailboxCopierImpl implements MailboxCopier {
             
             else {
                 
-                log.info("Destination mailbox " + i + "/" + mailboxPathList.size() 
+                LOGGER.info("Destination mailbox " + i + "/" + mailboxPathList.size()
                         + " with path=" + mailboxPath.toString()
                         + " has a null or empty name");
 
@@ -147,17 +143,7 @@ public class MailboxCopierImpl implements MailboxCopier {
 
         }
 
-        log.info("Mailboxes copied in " + (Calendar.getInstance().getTimeInMillis() - start.getTimeInMillis()) + " ms.");
+        LOGGER.info("Mailboxes copied in " + (Calendar.getInstance().getTimeInMillis() - start.getTimeInMillis()) + " ms.");
 
     }
-    
-    /**
-     * Set the logger.
-     * 
-     * @param log
-     */
-    public void setLog(Logger log) {
-        this.log = log;
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
----------------------------------------------------------------------
diff --git a/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java b/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
index bc7200d..48e7367 100644
--- a/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
+++ b/mailbox/tool/src/main/java/org/apache/james/mailbox/indexer/ReIndexerImpl.java
@@ -77,13 +77,13 @@ public class ReIndexerImpl implements ReIndexer {
     }
 
     public void reIndex(MailboxPath path) throws MailboxException {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(path.getUser(), LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(path.getUser());
         reIndex(path, mailboxSession);
     }
 
 
     public void reIndex() throws MailboxException {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession("re-indexing", LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession("re-indexing");
         LOGGER.info("Starting a full reindex");
         List<MailboxPath> mailboxPaths = mailboxManager.list(mailboxSession);
         GlobalRegistration globalRegistration = new GlobalRegistration();

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java b/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
index e36f2e5..0a0aa30 100644
--- a/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
+++ b/mailbox/tool/src/test/java/org/apache/james/mailbox/copier/MailboxCopierTest.java
@@ -43,7 +43,6 @@ import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
 import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.LoggerFactory;
 
 /**
  * Test class for the {@link MailboxCopierImpl} implementation.
@@ -81,10 +80,8 @@ public class MailboxCopierTest {
      */
     @Before
     public void setup() throws BadCredentialsException, MailboxException {
-        
         mailboxCopier = new MailboxCopierImpl();
-        mailboxCopier.setLog(LoggerFactory.getLogger(MailboxCopierTest.class.getName()));
-        
+
         srcMemMailboxManager = newInMemoryMailboxManager();
         dstMemMailboxManager = newInMemoryMailboxManager();
         
@@ -132,7 +129,7 @@ public class MailboxCopierTest {
      */
     private void assertMailboxManagerSize(MailboxManager mailboxManager, int multiplicationFactor) throws BadCredentialsException, MailboxException {
         
-        MailboxSession mailboxSession = mailboxManager.createSystemSession("manager", LoggerFactory.getLogger("src-mailbox-copier"));        
+        MailboxSession mailboxSession = mailboxManager.createSystemSession("manager");
         mailboxManager.startProcessingRequest(mailboxSession);
 
         List<MailboxPath> mailboxPathList = mailboxManager.list(mailboxSession);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/tool/src/test/java/org/apache/james/mailbox/indexer/ReIndexerImplTest.java
----------------------------------------------------------------------
diff --git a/mailbox/tool/src/test/java/org/apache/james/mailbox/indexer/ReIndexerImplTest.java b/mailbox/tool/src/test/java/org/apache/james/mailbox/indexer/ReIndexerImplTest.java
index 330e5cc..a74abe3 100644
--- a/mailbox/tool/src/test/java/org/apache/james/mailbox/indexer/ReIndexerImplTest.java
+++ b/mailbox/tool/src/test/java/org/apache/james/mailbox/indexer/ReIndexerImplTest.java
@@ -45,7 +45,6 @@ import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex;
 import org.assertj.core.util.Lists;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
 
 import com.google.common.collect.ImmutableList;
 
@@ -70,7 +69,7 @@ public class ReIndexerImplTest {
     @Test
     public void test() throws Exception {
         final MockMailboxSession mockMailboxSession = new MockMailboxSession("re-indexing");
-        when(mailboxManager.createSystemSession(any(String.class), any(Logger.class)))
+        when(mailboxManager.createSystemSession(any(String.class)))
             .thenReturn(mockMailboxSession);
         final MessageMapper messageMapper = mock(MessageMapper.class);
         final MailboxMapper mailboxMapper = mock(MailboxMapper.class);
@@ -87,7 +86,7 @@ public class ReIndexerImplTest {
 
         reIndexer.reIndex(INBOX);
 
-        verify(mailboxManager).createSystemSession(any(String.class), any(Logger.class));
+        verify(mailboxManager).createSystemSession(any(String.class));
         verify(mailboxSessionMapperFactory).getMailboxMapper(mockMailboxSession);
         verify(mailboxSessionMapperFactory).getMessageMapper(mockMailboxSession);
         verify(mailboxMapper).findMailboxByPath(INBOX);
@@ -102,7 +101,7 @@ public class ReIndexerImplTest {
     @Test
     public void mailboxPathUserShouldBeUsedWhenReIndexing() throws Exception {
         MockMailboxSession systemMailboxSession = new MockMailboxSession("re-indexing");
-        when(mailboxManager.createSystemSession(eq("re-indexing"), any(Logger.class)))
+        when(mailboxManager.createSystemSession("re-indexing"))
             .thenReturn(systemMailboxSession);
         MailboxMapper mailboxMapper = mock(MailboxMapper.class);
         when(mailboxSessionMapperFactory.getMailboxMapper(systemMailboxSession))
@@ -111,7 +110,7 @@ public class ReIndexerImplTest {
         String user1 = "user1@james.org";
         MailboxPath user1MailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, user1, "Inbox");
         MockMailboxSession user1MailboxSession = new MockMailboxSession(user1);
-        when(mailboxManager.createSystemSession(eq(user1), any(Logger.class)))
+        when(mailboxManager.createSystemSession(user1))
             .thenReturn(user1MailboxSession);
         MailboxMapper user1MailboxMapper = mock(MailboxMapper.class);
         when(mailboxSessionMapperFactory.getMailboxMapper(user1MailboxSession))

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/MailboxCreationDelegate.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/MailboxCreationDelegate.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/MailboxCreationDelegate.java
index 7eca35a..75fdf4e 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/MailboxCreationDelegate.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/imapmailbox/MailboxCreationDelegate.java
@@ -22,13 +22,9 @@ package org.apache.james.mpt.imapmailbox;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.model.MailboxPath;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class MailboxCreationDelegate {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxCreationDelegate.class);
-
     private final MailboxManager mailboxManager;
 
     public MailboxCreationDelegate(MailboxManager mailboxManager) {
@@ -36,7 +32,7 @@ public class MailboxCreationDelegate {
     }
 
     public void createMailbox(MailboxPath mailboxPath) throws Exception{
-        MailboxSession mailboxSession = mailboxManager.createSystemSession("system", LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession("system");
         mailboxManager.startProcessingRequest(mailboxSession);
         mailboxManager.createMailbox(mailboxPath, mailboxSession);
         mailboxManager.logout(mailboxSession, true);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java
index a6558b0..67cf8fe 100644
--- a/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java
+++ b/mpt/impl/imap-mailbox/hbase/src/test/java/org/apache/james/mpt/imapmailbox/hbase/host/HBaseHostSystem.java
@@ -51,7 +51,6 @@ import org.apache.james.mpt.api.ImapFeatures;
 import org.apache.james.mpt.api.ImapFeatures.Feature;
 import org.apache.james.mpt.host.JamesImapHostSystem;
 import org.apache.james.mpt.imapmailbox.MailboxCreationDelegate;
-import org.slf4j.LoggerFactory;
 
 public class HBaseHostSystem extends JamesImapHostSystem {
 
@@ -123,7 +122,7 @@ public class HBaseHostSystem extends JamesImapHostSystem {
     @Override
     protected void resetData() throws Exception {
         resetUserMetaData();
-        MailboxSession session = mailboxManager.createSystemSession("test", LoggerFactory.getLogger("TestLog"));
+        MailboxSession session = mailboxManager.createSystemSession("test");
         mailboxManager.startProcessingRequest(session);
         mailboxManager.deleteEverything(session);
         mailboxManager.endProcessingRequest(session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java b/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java
index 30251af..f46d0e8 100644
--- a/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java
+++ b/mpt/impl/imap-mailbox/jcr/src/test/java/org/apache/james/mpt/imapmailbox/jcr/host/JCRHostSystem.java
@@ -51,7 +51,6 @@ import org.apache.james.mpt.api.ImapFeatures;
 import org.apache.james.mpt.api.ImapFeatures.Feature;
 import org.apache.james.mpt.host.JamesImapHostSystem;
 import org.apache.james.mpt.imapmailbox.MailboxCreationDelegate;
-import org.slf4j.LoggerFactory;
 import org.xml.sax.InputSource;
 
 public class JCRHostSystem extends JamesImapHostSystem {
@@ -104,7 +103,7 @@ public class JCRHostSystem extends JamesImapHostSystem {
                             new DefaultQuotaRootResolver(mf),
                             new DefaultMetricFactory());
             resetUserMetaData();
-            MailboxSession session = mailboxManager.createSystemSession("test", LoggerFactory.getLogger("TestLog"));
+            MailboxSession session = mailboxManager.createSystemSession("test");
             mailboxManager.startProcessingRequest(session);
             //mailboxManager.deleteEverything(session);
             mailboxManager.endProcessingRequest(session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
index 2ba9c0c..31b8571 100644
--- a/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
+++ b/mpt/impl/imap-mailbox/jpa/src/test/java/org/apache/james/mpt/imapmailbox/jpa/host/JPAHostSystem.java
@@ -57,7 +57,6 @@ import org.apache.james.mpt.api.ImapFeatures;
 import org.apache.james.mpt.api.ImapFeatures.Feature;
 import org.apache.james.mpt.host.JamesImapHostSystem;
 import org.apache.james.mpt.imapmailbox.MailboxCreationDelegate;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -124,7 +123,7 @@ public class JPAHostSystem extends JamesImapHostSystem {
 
     public void resetData() throws Exception {
         resetUserMetaData();
-        MailboxSession session = mailboxManager.createSystemSession("test", LoggerFactory.getLogger("TestLog"));
+        MailboxSession session = mailboxManager.createSystemSession("test");
         mailboxManager.startProcessingRequest(session);
         mailboxManager.deleteEverything(session);
         mailboxManager.endProcessingRequest(session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
index 6bd7221..27f3ab0 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
+++ b/mpt/impl/imap-mailbox/lucenesearch/src/test/java/org/apache/james/mpt/imapmailbox/lucenesearch/host/LuceneSearchHostSystem.java
@@ -61,7 +61,6 @@ import org.apache.james.mpt.api.ImapFeatures.Feature;
 import org.apache.james.mpt.host.JamesImapHostSystem;
 import org.apache.james.mpt.imapmailbox.MailboxCreationDelegate;
 import org.apache.lucene.store.FSDirectory;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.io.Files;
@@ -86,7 +85,7 @@ public class LuceneSearchHostSystem extends JamesImapHostSystem {
         tempFile.deleteOnExit();
 
         resetUserMetaData();
-        MailboxSession session = mailboxManager.createSystemSession("test", LoggerFactory.getLogger("TestLog"));
+        MailboxSession session = mailboxManager.createSystemSession("test");
         mailboxManager.startProcessingRequest(session);
         mailboxManager.deleteEverything(session);
         mailboxManager.endProcessingRequest(session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java
index 2103b10..062104f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java
@@ -27,6 +27,8 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.ImapRequestLineReader;
 import org.apache.james.imap.decode.MessagingImapCommandParser;
 import org.apache.james.protocols.imap.DecodingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -35,6 +37,8 @@ import org.apache.james.protocols.imap.DecodingException;
  */
 public abstract class AbstractImapCommandParser implements MessagingImapCommandParser {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractImapCommandParser.class);
+
     private final ImapCommand command;
 
     private StatusResponseFactory statusResponseFactory;

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
index 8f7fbd0..6ffb83f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
@@ -63,8 +63,7 @@ public abstract class AbstractAuthProcessor<M extends ImapRequest> extends Abstr
                 final MailboxManager mailboxManager = getMailboxManager();
                 try {
                     final MailboxSession mailboxSession = mailboxManager.login(authenticationAttempt.getAuthenticationId(),
-                        authenticationAttempt.getPassword(),
-                        session.getLog());
+                        authenticationAttempt.getPassword());
                     session.authenticated();
                     session.setAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY, mailboxSession);
                     provisionInbox(session, mailboxManager, mailboxSession);
@@ -94,8 +93,7 @@ public abstract class AbstractAuthProcessor<M extends ImapRequest> extends Abstr
                 try {
                     final MailboxSession mailboxSession = mailboxManager.loginAsOtherUser(authenticationAttempt.getAuthenticationId(),
                         authenticationAttempt.getPassword(),
-                        authenticationAttempt.getDelegateUserName().get(),
-                        session.getLog());
+                        authenticationAttempt.getDelegateUserName().get());
                     session.authenticated();
                     session.setAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY, mailboxSession);
                     provisionInbox(session, mailboxManager, mailboxSession);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
index 06ca1ab..b1d2170 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
@@ -54,11 +54,16 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.SearchQuery;
 import org.apache.james.metrics.api.MetricFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 abstract class AbstractSelectionProcessor<M extends AbstractMailboxSelectionRequest> extends AbstractMailboxProcessor<M> implements PermitEnableCapabilityProcessor {
 
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractSelectionProcessor.class);
+
     final StatusResponseFactory statusResponseFactory;
 
     private final boolean openReadOnly;
@@ -363,8 +368,8 @@ abstract class AbstractSelectionProcessor<M extends AbstractMailboxSelectionRequ
             int msn = selected.msn(unseenUid);
 
             if (msn == SelectedMailbox.NO_SUCH_MESSAGE) {
-                if (session.getLog().isDebugEnabled()) {
-                    session.getLog().debug("No message found with uid " + unseenUid + " in mailbox " + selected.getPath().getFullName(session.getPathDelimiter()));
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("No message found with uid " + unseenUid + " in mailbox " + selected.getPath().getFullName(session.getPathDelimiter()));
                 }
                 return false;
             } 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
index b744b85..3c702f0 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
@@ -76,7 +76,6 @@ import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
 import org.junit.Test;
-import org.slf4j.Logger;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -163,7 +162,7 @@ public class MailboxEventAnalyserTest {
         }
         
         
-        public MailboxSession login(String userid, String passwd, Logger log) throws MailboxException {
+        public MailboxSession login(String userid, String passwd) throws MailboxException {
             throw new UnsupportedOperationException("Not implemented");
 
         }
@@ -343,7 +342,7 @@ public class MailboxEventAnalyserTest {
             throw new UnsupportedOperationException("Not implemented");
         }
         
-        public MailboxSession createSystemSession(String userName, Logger log) throws MailboxException {
+        public MailboxSession createSystemSession(String userName) throws MailboxException {
             throw new UnsupportedOperationException("Not implemented");
         }
         
@@ -421,7 +420,7 @@ public class MailboxEventAnalyserTest {
         }
 
         @Override
-        public MailboxSession loginAsOtherUser(String adminUserId, String passwd, String realUserId, Logger log) throws BadCredentialsException, MailboxException {
+        public MailboxSession loginAsOtherUser(String adminUserId, String passwd, String realUserId) throws BadCredentialsException, MailboxException {
             throw new UnsupportedOperationException("Not implemented");
         }
     };
@@ -447,10 +446,6 @@ public class MailboxEventAnalyserTest {
             return null;
         }
 
-        public Logger getLog() {
-            return null;
-        }
-
         public String getOtherUsersSpace() {
             return null;
         }
@@ -531,11 +526,7 @@ public class MailboxEventAnalyserTest {
         public SelectedMailbox getSelected() {
             return null;
         }
-        
-        public Logger getLog() {
-            return null;
-        }
-        
+
         public Object getAttribute(String key) {
             if (key.equals(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)) {
                 return mSession;

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
----------------------------------------------------------------------
diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
index 445fa46..73982a7 100644
--- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
+++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
@@ -45,14 +45,11 @@ import org.apache.james.mailbox.store.mail.MailboxMapperFactory;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.probe.MailboxProbe;
 import org.apache.james.utils.GuiceProbe;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 
 public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxProbeImpl.class);
     private final MailboxManager mailboxManager;
     private final MailboxMapperFactory mailboxMapperFactory;
     private final SubscriptionManager subscriptionManager;
@@ -69,7 +66,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
     public void createMailbox(String namespace, String user, String name) {
         MailboxSession mailboxSession = null;
         try {
-            mailboxSession = mailboxManager.createSystemSession(user, LOGGER);
+            mailboxSession = mailboxManager.createSystemSession(user);
             mailboxManager.startProcessingRequest(mailboxSession);
             mailboxManager.createMailbox(new MailboxPath(namespace, user, name), mailboxSession);
         } catch (MailboxException e) {
@@ -84,7 +81,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
     public Mailbox getMailbox(String namespace, String user, String name) {
         MailboxSession mailboxSession = null;
         try {
-            mailboxSession = mailboxManager.createSystemSession(user, LOGGER);
+            mailboxSession = mailboxManager.createSystemSession(user);
             MailboxMapper mailboxMapper = mailboxMapperFactory.getMailboxMapper(mailboxSession);
             return mailboxMapper.findMailboxByPath(new MailboxPath(namespace, user, name));
         } catch (MailboxException e) {
@@ -109,7 +106,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
     public Collection<String> listUserMailboxes(String user) {
         MailboxSession mailboxSession = null;
         try {
-            mailboxSession = mailboxManager.createSystemSession(user, LOGGER);
+            mailboxSession = mailboxManager.createSystemSession(user);
             mailboxManager.startProcessingRequest(mailboxSession);
             return searchUserMailboxes(user, mailboxSession)
                     .stream()
@@ -136,7 +133,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
     public void deleteMailbox(String namespace, String user, String name) {
         MailboxSession mailboxSession = null;
         try {
-            mailboxSession = mailboxManager.createSystemSession(user, LOGGER);
+            mailboxSession = mailboxManager.createSystemSession(user);
             mailboxManager.startProcessingRequest(mailboxSession);
             mailboxManager.deleteMailbox(new MailboxPath(namespace, user, name), mailboxSession);
         } catch (MailboxException e) {
@@ -148,7 +145,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
 
     @Override
     public void importEmlFileToMailbox(String namespace, String user, String name, String emlPath) throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(user, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(user);
         mailboxManager.startProcessingRequest(mailboxSession);
 
         MessageManager messageManager = mailboxManager.getMailbox(new MailboxPath(namespace, user, name), mailboxSession);
@@ -163,7 +160,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
     public ComposedMessageId appendMessage(String username, MailboxPath mailboxPath, InputStream message, Date internalDate, boolean isRecent, Flags flags) 
             throws MailboxException {
         
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(username, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
         MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, mailboxSession);
         return messageManager.appendMessage(message, internalDate, mailboxSession, isRecent, flags);
     }
@@ -190,7 +187,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
 
     @Override
     public Collection<String> listSubscriptions(String user) throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(user, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(user);
         return subscriptionManager.subscriptions(mailboxSession);
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/container/guice/protocols/jmap/src/main/java/org/apache/james/utils/JmapGuiceProbe.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/utils/JmapGuiceProbe.java b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/utils/JmapGuiceProbe.java
index 627d1c6..854d590 100644
--- a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/utils/JmapGuiceProbe.java
+++ b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/utils/JmapGuiceProbe.java
@@ -35,13 +35,9 @@ import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MessageId;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class JmapGuiceProbe implements GuiceProbe {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(JmapGuiceProbe.class);
-
     private final VacationRepository vacationRepository;
     private final JMAPServer jmapServer;
     private final MessageIdManager messageIdManager;
@@ -60,7 +56,7 @@ public class JmapGuiceProbe implements GuiceProbe {
     }
 
     public void addMailboxListener(MailboxListener listener) throws MailboxException {
-        mailboxManager.addGlobalListener(listener, mailboxManager.createSystemSession("jmap", LOGGER));
+        mailboxManager.addGlobalListener(listener, mailboxManager.createSystemSession("jmap"));
     }
 
     public void modifyVacation(AccountId accountId, VacationPatch vacationPatch) {
@@ -72,7 +68,7 @@ public class JmapGuiceProbe implements GuiceProbe {
     }
 
     public void setInMailboxes(MessageId messageId, String username, MailboxId... mailboxIds) throws MailboxException {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(username, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
         messageIdManager.setInMailboxes(messageId, Arrays.asList(mailboxIds), mailboxSession);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
index 515f5b0..517326a 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
@@ -79,7 +79,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
                      .addContext(MDCBuilder.ACTION, "deleteMailboxes")
                      .addContext("concernedUser", username)
                      .build()) {
-            session = mailboxManager.createSystemSession(username, log);
+            session = mailboxManager.createSystemSession(username);
             mailboxManager.startProcessingRequest(session);
             List<MailboxMetaData> mList = retrieveAllUserMailboxes(username, session);
             for (MailboxMetaData aMList : mList) {
@@ -120,7 +120,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
                      .addContext(MDCBuilder.ACTION, "listMailboxes")
                      .addContext("concernedUser", username)
                      .build()) {
-            session = mailboxManager.createSystemSession(username, log);
+            session = mailboxManager.createSystemSession(username);
             mailboxManager.startProcessingRequest(session);
             List<MailboxMetaData> mList = retrieveAllUserMailboxes(username, session);
             boxes = mList.stream()
@@ -148,7 +148,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
                      .addContext(MDCBuilder.ACTION, "createMailbox")
                      .addContext("mailboxPath", mailboxPath.asString())
                      .build()) {
-            session = mailboxManager.createSystemSession(user, log);
+            session = mailboxManager.createSystemSession(user);
             mailboxManager.startProcessingRequest(session);
             mailboxManager.createMailbox(mailboxPath, session);
         } catch (Exception e) {
@@ -169,7 +169,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
                      .addContext(MDCBuilder.ACTION, "deleteMailbox")
                      .addContext("mailboxPath", mailboxPath.asString())
                      .build()) {
-            session = mailboxManager.createSystemSession(user, log);
+            session = mailboxManager.createSystemSession(user);
             mailboxManager.startProcessingRequest(session);
             mailboxManager.deleteMailbox(mailboxPath, session);
         } catch (Exception e) {
@@ -193,7 +193,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
                      .addContext("mailboxPath", mailboxPath.asString())
                      .addContext("emlPath", emlPath)
                      .build()) {
-            session = mailboxManager.createSystemSession(user, log);
+            session = mailboxManager.createSystemSession(user);
             mailboxManager.startProcessingRequest(session);
             MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, session);
             InputStream emlFileAsStream = new FileInputStream(emlPath);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
----------------------------------------------------------------------
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java b/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
index 2e71bdc..4236b61 100644
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
+++ b/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
@@ -147,7 +147,7 @@ public class James23Importer implements LogEnabled {
             String userName30 = convert23UserTo30(userName23);
 
 
-            MailboxSession mailboxSession = mailboxManager.createSystemSession(userName30, log);
+            MailboxSession mailboxSession = mailboxManager.createSystemSession(userName30);
             MailboxPath mailboxPath = MailboxPath.inbox(mailboxSession);
 
             mailboxManager.startProcessingRequest(mailboxSession);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
index a458b39..a9e7fc9 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
@@ -68,7 +68,7 @@ public class LocalDelivery extends GenericMailet {
     public void init() throws MessagingException {
         mailDispatcher = MailDispatcher.builder()
             .mailStore(SimpleMailStore.builder()
-                .mailboxAppender(new MailboxAppender(mailboxManager, getMailetContext().getLogger()))
+                .mailboxAppender(new MailboxAppender(mailboxManager))
                 .usersRepository(usersRepository)
                 .folder(MailboxConstants.INBOX)
                 .metric(metricFactory.generate(LOCAL_DELIVERED_MAILS_METRIC_NAME))

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
index aa5be0d..3394aa4 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
@@ -77,7 +77,7 @@ public class ToRecipientFolder extends GenericMailet {
     public void init() throws MessagingException {
         mailDispatcher = MailDispatcher.builder()
             .mailStore(SimpleMailStore.builder()
-                .mailboxAppender(new MailboxAppender(mailboxManager, getMailetContext().getLogger()))
+                .mailboxAppender(new MailboxAppender(mailboxManager))
                 .usersRepository(usersRepository)
                 .folder(getInitParameter(FOLDER_PARAMETER, MailboxConstants.INBOX))
                 .metric(metricFactory.generate(LOCAL_DELIVERED_MAILS_METRIC_NAME))

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
index 7ac3721..41e0749 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToSenderFolder.java
@@ -98,7 +98,7 @@ public class ToSenderFolder extends GenericMailet {
     public void init() throws MessagingException {
         folder = getInitParameter("folder", "Sent");
         consume = getInitParameter("consume", false);
-        mailboxAppender = new MailboxAppender(mailboxManager, getMailetContext().getLogger());
+        mailboxAppender = new MailboxAppender(mailboxManager);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
index c8dacb9..47dc518 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailboxAppender.java
@@ -32,7 +32,6 @@ import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.exception.BadCredentialsException;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxPath;
-import org.slf4j.Logger;
 
 import com.google.common.base.Strings;
 
@@ -41,11 +40,9 @@ public class MailboxAppender {
     private static final Flags FLAGS = null;
 
     private final MailboxManager mailboxManager;
-    private final Logger logger;
 
-    public MailboxAppender(MailboxManager mailboxManager, Logger logger) {
+    public MailboxAppender(MailboxManager mailboxManager) {
         this.mailboxManager = mailboxManager;
-        this.logger = logger;
     }
 
     public void append(MimeMessage mail, String user, String folder) throws MessagingException {
@@ -93,7 +90,7 @@ public class MailboxAppender {
 
     public MailboxSession createMailboxSession(String user) throws MessagingException {
         try {
-            return mailboxManager.createSystemSession(user, logger);
+            return mailboxManager.createSystemSession(user);
         } catch (BadCredentialsException e) {
             throw new MessagingException("Unable to authenticate to mailbox", e);
         } catch (MailboxException e) {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[09/38] james-project git commit: JAMES-2114 MDC logging context for MANAGE-SIEVE

Posted by bt...@apache.org.
JAMES-2114 MDC logging context for MANAGE-SIEVE


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f998640a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f998640a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f998640a

Branch: refs/heads/master
Commit: f998640aec61cf08c38753e8879947d14329603c
Parents: 56974b9
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 11:35:44 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:42 2017 +0700

----------------------------------------------------------------------
 server/protocols/protocols-managesieve/pom.xml  |  4 +
 .../ManageSieveChannelUpstreamHandler.java      | 88 +++++++++-----------
 .../netty/ManageSieveMDCContext.java            | 67 +++++++++++++++
 3 files changed, 110 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f998640a/server/protocols/protocols-managesieve/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-managesieve/pom.xml b/server/protocols/protocols-managesieve/pom.xml
index 81863e6..5bbcbb6 100644
--- a/server/protocols/protocols-managesieve/pom.xml
+++ b/server/protocols/protocols-managesieve/pom.xml
@@ -22,6 +22,10 @@
             <artifactId>james-server-filesystem-api</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>james-server-util-java8</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.james.protocols</groupId>
             <artifactId>protocols-managesieve</artifactId>
         </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/f998640a/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveChannelUpstreamHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveChannelUpstreamHandler.java b/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveChannelUpstreamHandler.java
index 11b182f..8f63517 100644
--- a/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveChannelUpstreamHandler.java
+++ b/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveChannelUpstreamHandler.java
@@ -19,8 +19,8 @@
 
 package org.apache.james.managesieveserver.netty;
 
+import java.io.Closeable;
 import java.net.InetSocketAddress;
-import java.util.function.Supplier;
 
 import javax.net.ssl.SSLContext;
 
@@ -28,7 +28,6 @@ import org.apache.james.managesieve.api.Session;
 import org.apache.james.managesieve.api.SessionTerminatedException;
 import org.apache.james.managesieve.transcode.ManageSieveProcessor;
 import org.apache.james.managesieve.util.SettableSession;
-import org.apache.james.protocols.api.logger.ContextualLogger;
 import org.jboss.netty.buffer.ChannelBuffers;
 import org.jboss.netty.channel.Channel;
 import org.jboss.netty.channel.ChannelFutureListener;
@@ -65,28 +64,32 @@ public class ManageSieveChannelUpstreamHandler extends SimpleChannelUpstreamHand
 
     @Override
     public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
-        String request = (String) e.getMessage();
-        Session manageSieveSession = attributes.get(ctx.getChannel());
-        String responseString = manageSieveProcessor.handleRequest(manageSieveSession, request);
-        ((ChannelManageSieveResponseWriter)ctx.getAttachment()).write(responseString);
-        if (manageSieveSession.getState() == Session.State.SSL_NEGOCIATION) {
-            turnSSLon(ctx.getChannel());
-            manageSieveSession.setSslEnabled(true);
-            manageSieveSession.setState(Session.State.UNAUTHENTICATED);
+        try (Closeable closeable = ManageSieveMDCContext.from(ctx, attributes)) {
+            String request = (String) e.getMessage();
+            Session manageSieveSession = attributes.get(ctx.getChannel());
+            String responseString = manageSieveProcessor.handleRequest(manageSieveSession, request);
+            ((ChannelManageSieveResponseWriter) ctx.getAttachment()).write(responseString);
+            if (manageSieveSession.getState() == Session.State.SSL_NEGOCIATION) {
+                turnSSLon(ctx.getChannel());
+                manageSieveSession.setSslEnabled(true);
+                manageSieveSession.setState(Session.State.UNAUTHENTICATED);
+            }
         }
     }
 
     @Override
     public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
-        getLogger(ctx).warn("Error while processing ManageSieve request", e.getCause());
-
-        if (e.getCause() instanceof TooLongFrameException) {
-            // Max line length exceeded
-            // See also JAMES-1190
-            ((ChannelManageSieveResponseWriter)ctx.getAttachment()).write("NO Maximum command line length exceeded");
-        } else if (e.getCause() instanceof SessionTerminatedException) {
-            ((ChannelManageSieveResponseWriter)ctx.getAttachment()).write("OK channel is closing");
-            logout(ctx);
+        try (Closeable closeable = ManageSieveMDCContext.from(ctx, attributes)) {
+            logger.warn("Error while processing ManageSieve request", e.getCause());
+
+            if (e.getCause() instanceof TooLongFrameException) {
+                // Max line length exceeded
+                // See also JAMES-1190
+                ((ChannelManageSieveResponseWriter) ctx.getAttachment()).write("NO Maximum command line length exceeded");
+            } else if (e.getCause() instanceof SessionTerminatedException) {
+                ((ChannelManageSieveResponseWriter) ctx.getAttachment()).write("OK channel is closing");
+                logout(ctx);
+            }
         }
     }
 
@@ -102,42 +105,29 @@ public class ManageSieveChannelUpstreamHandler extends SimpleChannelUpstreamHand
 
     @Override
     public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
-        InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
-        getLogger(ctx).info("Connection established from " + address.getAddress().getHostAddress());
+        try (Closeable closeable = ManageSieveMDCContext.from(ctx, attributes)) {
+            InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
+            logger.info("Connection established from " + address.getAddress().getHostAddress());
 
-        Session session = new SettableSession();
-        if (sslServer) {
-            session.setSslEnabled(true);
+            Session session = new SettableSession();
+            if (sslServer) {
+                session.setSslEnabled(true);
+            }
+            attributes.set(ctx.getChannel(), session);
+            ctx.setAttachment(new ChannelManageSieveResponseWriter(ctx.getChannel()));
+            super.channelBound(ctx, e);
+            ((ChannelManageSieveResponseWriter) ctx.getAttachment()).write(manageSieveProcessor.getAdvertisedCapabilities());
         }
-        attributes.set(ctx.getChannel(), session);
-        ctx.setAttachment(new ChannelManageSieveResponseWriter(ctx.getChannel()));
-        super.channelBound(ctx, e);
-        ((ChannelManageSieveResponseWriter)ctx.getAttachment()).write(manageSieveProcessor.getAdvertisedCapabilities());
     }
 
     @Override
     public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
-        InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
-        getLogger(ctx).info("Connection closed for " + address.getAddress().getHostAddress());
-
-        attributes.remove(ctx.getChannel());
-        super.channelClosed(ctx, e);
-    }
-
-    private Logger getLogger(final ChannelHandlerContext ctx) {
-        return new ContextualLogger(getUserSupplier(ctx),
-            Integer.toString(ctx.getChannel().getId()),
-            logger);
-    }
-
-    private Supplier<String> getUserSupplier(final ChannelHandlerContext ctx) {
-        return () -> {
-            Session session = attributes.get(ctx.getChannel());
-            if (session != null) {
-                return session.getUser();
-            }
-            return null;
-        };
+        try (Closeable closeable = ManageSieveMDCContext.from(ctx, attributes)) {
+            InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
+            logger.info("Connection closed for " + address.getAddress().getHostAddress());
+            attributes.remove(ctx.getChannel());
+            super.channelClosed(ctx, e);
+        }
     }
 
     private void turnSSLon(Channel channel) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f998640a/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveMDCContext.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveMDCContext.java b/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveMDCContext.java
new file mode 100644
index 0000000..d069f7a
--- /dev/null
+++ b/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveMDCContext.java
@@ -0,0 +1,67 @@
+/****************************************************************
+ * 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.managesieveserver.netty;
+
+import java.io.Closeable;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.Optional;
+
+import org.apache.james.managesieve.api.Session;
+import org.apache.james.util.MDCBuilder;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.ChannelLocal;
+
+public class ManageSieveMDCContext {
+    public static Closeable from(ChannelHandlerContext ctx, ChannelLocal<Session> attributes) {
+        return MDCBuilder.create()
+            .addContext(from(attributes.get(ctx.getChannel())))
+            .addContext(MDCBuilder.PROTOCOL, "MANAGE-SIEVE")
+            .addContext(MDCBuilder.IP, retrieveIp(ctx))
+            .addContext(MDCBuilder.HOST, retrieveHost(ctx))
+            .addContext(MDCBuilder.SESSION_ID, ctx.getChannel().getId())
+            .build();
+    }
+
+    private static String retrieveIp(ChannelHandlerContext ctx) {
+        SocketAddress remoteAddress = ctx.getChannel().getRemoteAddress();
+        if (remoteAddress instanceof InetSocketAddress) {
+            InetSocketAddress address = (InetSocketAddress) remoteAddress;
+            return address.getAddress().getHostAddress();
+        }
+        return remoteAddress.toString();
+    }
+
+    private static String retrieveHost(ChannelHandlerContext ctx) {
+        SocketAddress remoteAddress = ctx.getChannel().getRemoteAddress();
+        if (remoteAddress instanceof InetSocketAddress) {
+            InetSocketAddress address = (InetSocketAddress) remoteAddress;
+            return address.getHostName();
+        }
+        return remoteAddress.toString();
+    }
+
+    private static MDCBuilder from(Session session) {
+        return Optional.ofNullable(session)
+            .map(s -> MDCBuilder.create()
+                .addContext(MDCBuilder.USER, s.getUser()))
+            .orElse(MDCBuilder.create());
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[38/38] james-project git commit: JAMES-2114 Correct a typo in POM

Posted by bt...@apache.org.
JAMES-2114 Correct a typo in POM


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/5accc88a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5accc88a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5accc88a

Branch: refs/heads/master
Commit: 5accc88a1e63dfb3cbd0fa0f5b8525dbe58383e9
Parents: 0fb81ac
Author: benwa <bt...@linagora.com>
Authored: Thu Aug 24 10:36:17 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:36:17 2017 +0700

----------------------------------------------------------------------
 protocols/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/5accc88a/protocols/pom.xml
----------------------------------------------------------------------
diff --git a/protocols/pom.xml b/protocols/pom.xml
index 0d6fc46..b5558b0 100644
--- a/protocols/pom.xml
+++ b/protocols/pom.xml
@@ -71,7 +71,7 @@
             <dependency>
                 <groupId>org.apache.james</groupId>
                 <artifactId>james-server-util-java8</artifactId>
-                <version>3.1.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.james.protocols</groupId>


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[14/38] james-project git commit: JAMES-2114 Remove LOGGER from mailboxSession API

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
index 6b00796..d7991ed 100755
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
@@ -119,7 +119,7 @@ abstract public class AbstractStorageQuota extends AbstractQuotaMatcher {
             catch (UsersRepositoryException e) {
                 throw new MessagingException("Unable to access UsersRepository", e);
             }
-            session = manager.createSystemSession(username, getMailetContext().getLogger());
+            session = manager.createSystemSession(username);
             manager.startProcessingRequest(session);
 
             // get all mailboxes for the user to calculate the size

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsOverQuota.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsOverQuota.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsOverQuota.java
index d63b015..b977e22 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsOverQuota.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsOverQuota.java
@@ -38,8 +38,6 @@ import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMatcher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * This matcher will check if the incoming email will make recipients exceed their quotas.
@@ -57,7 +55,6 @@ import org.slf4j.LoggerFactory;
  */
 public class IsOverQuota extends GenericMatcher {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(IsOverQuota.class);
     private static final int SINGLE_EMAIL = 1;
 
     private final QuotaRootResolver quotaRootResolver;
@@ -79,7 +76,7 @@ public class IsOverQuota extends GenericMatcher {
             List<MailAddress> result = new ArrayList<>();
             for (MailAddress mailAddress : mail.getRecipients()) {
                 String userName = usersRepository.getUser(mailAddress);
-                MailboxSession mailboxSession = mailboxManager.createSystemSession(userName, LOGGER);
+                MailboxSession mailboxSession = mailboxManager.createSystemSession(userName);
                 MailboxPath mailboxPath = MailboxPath.inbox(mailboxSession);
                 QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(mailboxPath);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
index 808ac9c..644be9f 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/LocalDeliveryTest.java
@@ -77,7 +77,7 @@ public class LocalDeliveryTest {
         MailboxSession session = mock(MailboxSession.class);
         when(session.getPathDelimiter()).thenReturn('.');
         try {
-            when(mailboxManager.createSystemSession(any(String.class), any(Logger.class))).thenReturn(session);
+            when(mailboxManager.createSystemSession(any(String.class))).thenReturn(session);
         } catch (MailboxException e) {
             throw Throwables.propagate(e);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java
index c83ddc5..d85e826 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailboxAppenderTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.transport.mailets.delivery;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
@@ -40,11 +39,8 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class MailboxAppenderTest {
-    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxAppenderTest.class);
 
     public static final String USER = "user";
     public static final String FOLDER = "folder";
@@ -70,9 +66,9 @@ public class MailboxAppenderTest {
         integrationResources = new InMemoryIntegrationResources();
         integrationResources.init();
         mailboxManager = new ManagerTestResources(integrationResources).getMailboxManager();
-        testee = new MailboxAppender(mailboxManager, mock(Logger.class));
+        testee = new MailboxAppender(mailboxManager);
 
-        session = mailboxManager.createSystemSession("TEST", LOGGER);
+        session = mailboxManager.createSystemSession("TEST");
     }
 
     @After

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
index aed6d04..7b8f15e 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/ToRecipientFolderTest.java
@@ -89,7 +89,7 @@ public class ToRecipientFolderTest {
         MailboxSession session = mock(MailboxSession.class);
         when(session.getPathDelimiter()).thenReturn('.');
         try {
-            when(mailboxManager.createSystemSession(any(String.class), any(Logger.class))).thenReturn(session);
+            when(mailboxManager.createSystemSession(any(String.class))).thenReturn(session);
         } catch (MailboxException e) {
             throw Throwables.propagate(e);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java
index eeb8ccd..5acf65f 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/matchers/IsOverQuotaTest.java
@@ -48,12 +48,8 @@ import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMatcherConfig;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class IsOverQuotaTest {
-
-    public static final Logger LOGGER = LoggerFactory.getLogger(IsOverQuotaTest.class);
     private IsOverQuota testee;
     private InMemoryPerUserMaxQuotaManager maxQuotaManager;
     private DefaultQuotaRootResolver quotaRootResolver;
@@ -148,7 +144,7 @@ public class IsOverQuotaTest {
     @Test
     public void matchShouldNotIncludeRecipientNotOverQuota() throws Exception {
         String username = MailAddressFixture.ANY_AT_JAMES.getLocalPart();
-        QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(MailboxPath.inbox(mailboxManager.createSystemSession(username, LOGGER)));
+        QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(MailboxPath.inbox(mailboxManager.createSystemSession(username)));
         maxQuotaManager.setMaxStorage(quotaRoot, 100);
 
         FakeMail fakeMail=FakeMail.builder()
@@ -166,7 +162,7 @@ public class IsOverQuotaTest {
         when(usersRepository.getUser(MailAddressFixture.ANY_AT_JAMES)).thenReturn(MailAddressFixture.ANY_AT_JAMES.asString());
         when(usersRepository.getUser(MailAddressFixture.OTHER_AT_JAMES)).thenReturn(MailAddressFixture.OTHER_AT_JAMES.asString());
         String username = MailAddressFixture.ANY_AT_JAMES.asString();
-        QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(MailboxPath.inbox(mailboxManager.createSystemSession(username, LOGGER)));
+        QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(MailboxPath.inbox(mailboxManager.createSystemSession(username)));
         maxQuotaManager.setMaxStorage(quotaRoot, 100);
 
         FakeMail fakeMail=FakeMail.builder()

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/main/java/org/apache/james/jmap/AccessTokenAuthenticationStrategy.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/AccessTokenAuthenticationStrategy.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/AccessTokenAuthenticationStrategy.java
index 57d903a..17598ca 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/AccessTokenAuthenticationStrategy.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/AccessTokenAuthenticationStrategy.java
@@ -63,7 +63,7 @@ public class AccessTokenAuthenticationStrategy implements AuthenticationStrategy
 
         if (username.isPresent()) {
             try {
-                return mailboxManager.createSystemSession(username.get(), LOG);
+                return mailboxManager.createSystemSession(username.get());
             } catch (MailboxException e) {
                 throw new MailboxSessionCreationException(e);
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
index e405604..f9ef530 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilter.java
@@ -81,7 +81,7 @@ public class DefaultMailboxesProvisioningFilter implements Filter {
     }
 
     private void createDefaultMailboxes(User user) throws MailboxException {
-        MailboxSession session = mailboxManager.createSystemSession(user.getUserName(), LOGGER);
+        MailboxSession session = mailboxManager.createSystemSession(user.getUserName());
         DefaultMailboxes.DEFAULT_MAILBOXES.stream()
             .map(toMailboxPath(session))
             .filter(mailboxPath -> mailboxDoesntExist(mailboxPath, session))

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/main/java/org/apache/james/jmap/JWTAuthenticationStrategy.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/JWTAuthenticationStrategy.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/JWTAuthenticationStrategy.java
index 2e155df..4611ca6 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/JWTAuthenticationStrategy.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/JWTAuthenticationStrategy.java
@@ -30,14 +30,11 @@ import org.apache.james.jwt.JwtTokenVerifier;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 
 public class JWTAuthenticationStrategy implements AuthenticationStrategy {
 
-    private static final Logger LOG = LoggerFactory.getLogger(JWTAuthenticationStrategy.class);
     @VisibleForTesting static final String AUTHORIZATION_HEADER_PREFIX = "Bearer ";
     private final JwtTokenVerifier tokenManager;
     private final MailboxManager mailboxManager;
@@ -61,7 +58,7 @@ public class JWTAuthenticationStrategy implements AuthenticationStrategy {
         Stream<MailboxSession> mailboxSessionStream = userLoginStream
                 .map(l -> {
                     try {
-                        return mailboxManager.createSystemSession(l, LOG);
+                        return mailboxManager.createSystemSession(l);
                     } catch (MailboxException e) {
                         throw new MailboxSessionCreationException(e);
                     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/main/java/org/apache/james/jmap/QueryParameterAccessTokenAuthenticationStrategy.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/QueryParameterAccessTokenAuthenticationStrategy.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/QueryParameterAccessTokenAuthenticationStrategy.java
index 6101834..ef2ddca 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/QueryParameterAccessTokenAuthenticationStrategy.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/QueryParameterAccessTokenAuthenticationStrategy.java
@@ -32,14 +32,10 @@ import org.apache.james.jmap.utils.DownloadPath;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 
 public class QueryParameterAccessTokenAuthenticationStrategy implements AuthenticationStrategy {
-
-    private static final Logger LOG = LoggerFactory.getLogger(QueryParameterAccessTokenAuthenticationStrategy.class);
     private static final String AUTHENTICATION_PARAMETER = "access_token";
 
     private final SimpleTokenManager tokenManager;
@@ -64,7 +60,7 @@ public class QueryParameterAccessTokenAuthenticationStrategy implements Authenti
 
     private MailboxSession createSystemSession(String username) {
         try {
-            return mailboxManager.createSystemSession(username, LOG);
+            return mailboxManager.createSystemSession(username);
         } catch (MailboxException e) {
             throw new MailboxSessionCreationException(e);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
index ab42ce3..b8e9853 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/send/PostDequeueDecorator.java
@@ -77,7 +77,7 @@ public class PostDequeueDecorator extends MailQueueItemDecorator {
             String username = (String) getMail().getAttribute(MailMetadata.MAIL_METADATA_USERNAME_ATTRIBUTE);
             if (getMail().getAttribute(IS_DELIVERED) == null) {
                 try {
-                    MailboxSession mailboxSession = mailboxManager.createSystemSession(username, LOG);
+                    MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
                     moveFromOutboxToSent(messageId, mailboxSession);
                     getMail().setAttribute(IS_DELIVERED, IS_DELIVERED);
                 } catch (MailShouldBeInOutboxException e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/test/java/org/apache/james/jmap/AccessTokenAuthenticationStrategyTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/AccessTokenAuthenticationStrategyTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/AccessTokenAuthenticationStrategyTest.java
index b1c71b6..4ddf582 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/AccessTokenAuthenticationStrategyTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/AccessTokenAuthenticationStrategyTest.java
@@ -20,7 +20,6 @@ package org.apache.james.jmap;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -41,7 +40,6 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
 
 public class AccessTokenAuthenticationStrategyTest {
 
@@ -84,7 +82,7 @@ public class AccessTokenAuthenticationStrategyTest {
         String username = "123456789";
         MailboxSession fakeMailboxSession = mock(MailboxSession.class);
 
-        when(mockedMailboxManager.createSystemSession(eq(username), any(Logger.class)))
+        when(mockedMailboxManager.createSystemSession(eq(username)))
                 .thenReturn(fakeMailboxSession);
 
         UUID authHeader = UUID.randomUUID();
@@ -101,7 +99,7 @@ public class AccessTokenAuthenticationStrategyTest {
     @Test
     public void createMailboxSessionShouldThrowWhenMailboxExceptionHasOccurred() throws Exception {
         String username = "username";
-        when(mockedMailboxManager.createSystemSession(eq(username), any(Logger.class)))
+        when(mockedMailboxManager.createSystemSession(eq(username)))
                 .thenThrow(new MailboxException());
 
         UUID authHeader = UUID.randomUUID();
@@ -122,7 +120,7 @@ public class AccessTokenAuthenticationStrategyTest {
         String username = "123456789";
         MailboxSession fakeMailboxSession = mock(MailboxSession.class);
 
-        when(mockedMailboxManager.createSystemSession(eq(username), any(Logger.class)))
+        when(mockedMailboxManager.createSystemSession(eq(username)))
                 .thenReturn(fakeMailboxSession);
 
         UUID authHeader = UUID.randomUUID();

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
index fdcdf96..5a572de 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/DefaultMailboxesProvisioningFilterThreadTest.java
@@ -45,7 +45,6 @@ import org.apache.james.mailbox.model.MultimailboxesSearchQuery;
 import org.apache.james.mailbox.model.TestId;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.junit.Test;
-import org.slf4j.Logger;
 
 import com.google.common.base.Optional;
 import com.google.testing.threadtester.AnnotatedTestRunner;
@@ -179,12 +178,12 @@ public class DefaultMailboxesProvisioningFilterThreadTest {
         }
 
         @Override
-        public MailboxSession createSystemSession(String userName, Logger log) throws BadCredentialsException, MailboxException {
+        public MailboxSession createSystemSession(String userName) throws BadCredentialsException, MailboxException {
             return mailboxSession;
         }
 
         @Override
-        public MailboxSession login(String userid, String passwd, Logger log) throws BadCredentialsException, MailboxException {
+        public MailboxSession login(String userid, String passwd) throws BadCredentialsException, MailboxException {
             return null;
         }
 
@@ -269,7 +268,7 @@ public class DefaultMailboxesProvisioningFilterThreadTest {
         }
 
         @Override
-        public MailboxSession loginAsOtherUser(String adminUserId, String passwd, String realUserId, Logger log) throws BadCredentialsException, MailboxException {
+        public MailboxSession loginAsOtherUser(String adminUserId, String passwd, String realUserId) throws BadCredentialsException, MailboxException {
             return null;
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/test/java/org/apache/james/jmap/JWTAuthenticationStrategyTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/JWTAuthenticationStrategyTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/JWTAuthenticationStrategyTest.java
index 530fac4..88b4239 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/JWTAuthenticationStrategyTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/JWTAuthenticationStrategyTest.java
@@ -20,7 +20,6 @@ package org.apache.james.jmap;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -38,7 +37,6 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
 
 
 public class JWTAuthenticationStrategyTest {
@@ -78,7 +76,7 @@ public class JWTAuthenticationStrategyTest {
 
         when(stubTokenVerifier.verify(validAuthHeader)).thenReturn(false);
         when(stubTokenVerifier.extractLogin(validAuthHeader)).thenReturn(username);
-        when(mockedMailboxManager.createSystemSession(eq(username), any(Logger.class)))
+        when(mockedMailboxManager.createSystemSession(eq(username)))
                 .thenReturn(fakeMailboxSession);
         when(mockAuthenticationExtractor.authHeaders(request))
             .thenReturn(Stream.of(fakeAuthHeaderWithPrefix));
@@ -105,7 +103,7 @@ public class JWTAuthenticationStrategyTest {
 
         when(stubTokenVerifier.verify(validAuthHeader)).thenReturn(true);
         when(stubTokenVerifier.extractLogin(validAuthHeader)).thenReturn(username);
-        when(mockedMailboxManager.createSystemSession(eq(username), any(Logger.class)))
+        when(mockedMailboxManager.createSystemSession(eq(username)))
                 .thenThrow(new MailboxException());
         when(mockAuthenticationExtractor.authHeaders(request))
             .thenReturn(Stream.of(fakeAuthHeaderWithPrefix));
@@ -123,7 +121,7 @@ public class JWTAuthenticationStrategyTest {
 
         when(stubTokenVerifier.verify(validAuthHeader)).thenReturn(true);
         when(stubTokenVerifier.extractLogin(validAuthHeader)).thenReturn(username);
-        when(mockedMailboxManager.createSystemSession(eq(username), any(Logger.class)))
+        when(mockedMailboxManager.createSystemSession(eq(username)))
                 .thenReturn(fakeMailboxSession);
         when(mockAuthenticationExtractor.authHeaders(request))
             .thenReturn(Stream.of(fakeAuthHeaderWithPrefix));

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/test/java/org/apache/james/jmap/QueryParameterAccessTokenAuthenticationStrategyTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/QueryParameterAccessTokenAuthenticationStrategyTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/QueryParameterAccessTokenAuthenticationStrategyTest.java
index a04d75d..58ada90 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/QueryParameterAccessTokenAuthenticationStrategyTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/QueryParameterAccessTokenAuthenticationStrategyTest.java
@@ -19,8 +19,6 @@
 package org.apache.james.jmap;
 
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -34,7 +32,6 @@ import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
 
 public class QueryParameterAccessTokenAuthenticationStrategyTest {
 
@@ -77,7 +74,7 @@ public class QueryParameterAccessTokenAuthenticationStrategyTest {
 
     @Test
     public void createMailboxSessionShouldThrowWhenMailboxExceptionHasOccurred() throws Exception {
-        when(mockedMailboxManager.createSystemSession(eq(USERNAME), any(Logger.class)))
+        when(mockedMailboxManager.createSystemSession(USERNAME))
                 .thenThrow(new MailboxException());
 
         when(request.getParameter("access_token"))

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
index d69825a..7c5d380 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
@@ -51,14 +51,11 @@ import org.apache.james.metrics.logger.DefaultMetricFactory;
 import org.assertj.core.groups.Tuple;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public class GetMailboxesMethodTest {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(GetMailboxesMethodTest.class);
     private static final String USERNAME = "username@domain.tld";
     private static final String USERNAME2 = "username2@domain.tld";
 
@@ -83,7 +80,7 @@ public class GetMailboxesMethodTest {
         GetMailboxesRequest getMailboxesRequest = GetMailboxesRequest.builder()
                 .build();
 
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         
         List<JmapResponse> getMailboxesResponse = getMailboxesMethod.process(getMailboxesRequest, clientId, mailboxSession).collect(Collectors.toList());
         
@@ -123,7 +120,7 @@ public class GetMailboxesMethodTest {
     @Test
     public void getMailboxesShouldReturnMailboxesWhenAvailable() throws Exception {
         MailboxPath mailboxPath = new MailboxPath("#private", USERNAME, "name");
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(mailboxPath, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, mailboxSession);
         messageManager.appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), mailboxSession, false, new Flags());
@@ -148,8 +145,8 @@ public class GetMailboxesMethodTest {
     public void getMailboxesShouldReturnOnlyMailboxesOfCurrentUserWhenAvailable() throws Exception {
         MailboxPath mailboxPathToReturn = new MailboxPath("#private", USERNAME, "mailboxToReturn");
         MailboxPath mailboxPathtoSkip = new MailboxPath("#private", USERNAME2, "mailboxToSkip");
-        MailboxSession userSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
-        MailboxSession user2Session = mailboxManager.createSystemSession(USERNAME2, LOGGER);
+        MailboxSession userSession = mailboxManager.createSystemSession(USERNAME);
+        MailboxSession user2Session = mailboxManager.createSystemSession(USERNAME2);
         mailboxManager.createMailbox(mailboxPathToReturn, userSession);
         mailboxManager.createMailbox(mailboxPathtoSkip, user2Session);
 
@@ -170,7 +167,7 @@ public class GetMailboxesMethodTest {
 
     @Test
     public void getMailboxesShouldReturnInboxWithSortOrder10() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         MailboxPath mailboxPath = new MailboxPath("#private", USERNAME, "INBOX");
         mailboxManager.createMailbox(mailboxPath, mailboxSession);
 
@@ -191,7 +188,7 @@ public class GetMailboxesMethodTest {
 
     @Test
     public void getMailboxesShouldReturnSortOrder1000OnUnknownFolder() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         MailboxPath mailboxPath = new MailboxPath("#private", USERNAME, "unknown");
         mailboxManager.createMailbox(mailboxPath, mailboxSession);
 
@@ -212,7 +209,7 @@ public class GetMailboxesMethodTest {
 
     @Test
     public void getMailboxesShouldReturnInboxWithSortOrder10OnDifferenceCase() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         MailboxPath mailboxPath = new MailboxPath("#private", USERNAME, "InBoX");
         mailboxManager.createMailbox(mailboxPath, mailboxSession);
 
@@ -233,7 +230,7 @@ public class GetMailboxesMethodTest {
 
     @Test
     public void getMailboxesShouldReturnMailboxesWithSortOrder() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(new MailboxPath("#private", USERNAME, "INBOX"), mailboxSession);
         mailboxManager.createMailbox(new MailboxPath("#private", USERNAME, "ARCHIVE"), mailboxSession);
         mailboxManager.createMailbox(new MailboxPath("#private", USERNAME, "DRAFTS"), mailboxSession);
@@ -269,7 +266,7 @@ public class GetMailboxesMethodTest {
     @Test
     public void getMailboxesShouldReturnEmptyMailboxByDefault() throws MailboxException {
         MailboxPath mailboxPath = new MailboxPath("#private", USERNAME, "name");
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(mailboxPath, mailboxSession);
 
         GetMailboxesRequest getMailboxesRequest = GetMailboxesRequest.builder()
@@ -290,7 +287,7 @@ public class GetMailboxesMethodTest {
     @Test
     public void getMailboxesShouldReturnCorrectTotalMessagesCount() throws MailboxException {
         MailboxPath mailboxPath = new MailboxPath("#private", USERNAME, "name");
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(mailboxPath, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, mailboxSession);
         messageManager.appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), mailboxSession, false, new Flags());
@@ -314,7 +311,7 @@ public class GetMailboxesMethodTest {
     @Test
     public void getMailboxesShouldReturnCorrectUnreadMessagesCount() throws MailboxException {
         MailboxPath mailboxPath = new MailboxPath("#private", USERNAME, "name");
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(mailboxPath, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, mailboxSession);
         Flags defaultUnseenFlag = new Flags();
@@ -340,7 +337,7 @@ public class GetMailboxesMethodTest {
 
     @Test
     public void getMailboxesShouldReturnMailboxesWithRoles() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(new MailboxPath("#private", USERNAME, "INBOX"), mailboxSession);
         mailboxManager.createMailbox(new MailboxPath("#private", USERNAME, "ARCHIVE"), mailboxSession);
         mailboxManager.createMailbox(new MailboxPath("#private", USERNAME, "DRAFTS"), mailboxSession);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxFactoryTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxFactoryTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxFactoryTest.java
index 131c947..e363522 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxFactoryTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxFactoryTest.java
@@ -23,7 +23,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.util.Optional;
 
 import org.apache.james.jmap.model.mailbox.Mailbox;
-import org.apache.james.jmap.utils.MailboxUtilsTest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.inmemory.InMemoryId;
@@ -33,13 +32,10 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.store.SimpleMailboxMetaData;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public class MailboxFactoryTest {
-    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxUtilsTest.class);
     public static final char DELIMITER = '.';
 
     private MailboxManager mailboxManager;
@@ -52,7 +48,7 @@ public class MailboxFactoryTest {
         InMemoryIntegrationResources inMemoryIntegrationResources = new InMemoryIntegrationResources();
         mailboxManager = inMemoryIntegrationResources.createMailboxManager(inMemoryIntegrationResources.createGroupMembershipResolver());
         user = "user@domain.org";
-        mailboxSession = mailboxManager.login(user, "pass", LOGGER);
+        mailboxSession = mailboxManager.login(user, "pass");
         sut = new MailboxFactory(mailboxManager);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
index eb3c234..53f14d7 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/send/PostDequeueDecoratorTest.java
@@ -58,13 +58,10 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.base.test.FakeMail;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public class PostDequeueDecoratorTest {
-    private static final Logger LOGGER = LoggerFactory.getLogger(PostDequeueDecoratorTest.class);
     private static final String OUTBOX = DefaultMailboxes.OUTBOX;
     private static final String SENT = DefaultMailboxes.SENT;
     private static final String USERNAME = "username@domain.tld";
@@ -103,7 +100,7 @@ public class PostDequeueDecoratorTest {
     
     @Test
     public void doneShouldNotThrowWhenMessageIsNotInOutbox() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(SENT_MAILBOX_PATH, mailboxSession);
@@ -116,7 +113,7 @@ public class PostDequeueDecoratorTest {
     
     @Test(expected=MailboxRoleNotFoundException.class)
     public void doneShouldThrowWhenSentDoesNotExist() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         ComposedMessageId messageId = messageManager.appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), new Date(), mailboxSession, false, new Flags());
@@ -128,7 +125,7 @@ public class PostDequeueDecoratorTest {
     
     @Test
     public void doneShouldCopyMailFromOutboxToSentWhenSuccess() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
@@ -145,7 +142,7 @@ public class PostDequeueDecoratorTest {
     
     @Test
     public void doneShouldDeleteMailFromOutboxWhenSuccess() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
@@ -162,7 +159,7 @@ public class PostDequeueDecoratorTest {
     
     @Test
     public void doneShouldNotMoveMailFromOutboxToSentWhenSuccessIsFalse() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
@@ -179,7 +176,7 @@ public class PostDequeueDecoratorTest {
     
     @Test
     public void doneShouldNotMoveMailFromOutboxToSentWhenNoMetadataProvided() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
@@ -194,7 +191,7 @@ public class PostDequeueDecoratorTest {
     
     @Test
     public void doneShouldNotMoveMailFromOutboxToSentWhenUsernameNotProvided() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
@@ -210,7 +207,7 @@ public class PostDequeueDecoratorTest {
     
     @Test
     public void doneShouldNotMoveMailFromOutboxToSentWhenMessageIdNotProvided() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
@@ -226,7 +223,7 @@ public class PostDequeueDecoratorTest {
     
     @Test
     public void doneShouldNotMoveMailFromOutboxToSentWhenInvalidMessageIdProvided() throws Exception {
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession);
         MessageManager messageManager = mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
@@ -247,7 +244,7 @@ public class PostDequeueDecoratorTest {
         testee = new PostDequeueDecorator(mockedMailQueueItem, mailboxManager, new InMemoryMessageId.Factory(),
                 messageIdManager, new SystemMailboxesProviderImpl(mailboxManager));
 
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         MailboxId sentMailboxId = mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession).get();
         MessageManager messageManager = mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
@@ -275,7 +272,7 @@ public class PostDequeueDecoratorTest {
         testee = new PostDequeueDecorator(mockedMailQueueItem, mailboxManager, new InMemoryMessageId.Factory(),
                 messageIdManager, new SystemMailboxesProviderImpl(mailboxManager));
 
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USERNAME);
         mailboxManager.createMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);
         mailboxManager.createMailbox(SENT_MAILBOX_PATH, mailboxSession).get();
         MessageManager messageManager = mailboxManager.getMailbox(OUTBOX_MAILBOX_PATH, mailboxSession);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/MailboxUtilsTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/MailboxUtilsTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/MailboxUtilsTest.java
index 5ea1428..8de3308 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/MailboxUtilsTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/utils/MailboxUtilsTest.java
@@ -28,13 +28,9 @@ import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class MailboxUtilsTest {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxUtilsTest.class);
-
     private MailboxManager mailboxManager;
     private MailboxSession mailboxSession;
     private String user;
@@ -45,7 +41,7 @@ public class MailboxUtilsTest {
         InMemoryIntegrationResources inMemoryIntegrationResources = new InMemoryIntegrationResources();
         mailboxManager = inMemoryIntegrationResources.createMailboxManager(inMemoryIntegrationResources.createGroupMembershipResolver());
         user = "user@domain.org";
-        mailboxSession = mailboxManager.login(user, "pass", LOGGER);
+        mailboxSession = mailboxManager.login(user, "pass");
         sut = new MailboxUtils(mailboxManager);
     }
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
index 68d29bc..dfa9a8a 100644
--- a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
+++ b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
@@ -75,7 +75,7 @@ public class MailboxDeliverToRecipientHandler implements DeliverToRecipientHook
                 username = recipient.getLocalPart();
             }
 
-            MailboxSession mailboxSession = mailboxManager.createSystemSession(username, session.getLogger());
+            MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
             MailboxPath inbox = MailboxPath.inbox(mailboxSession);
 
             mailboxManager.startProcessingRequest(mailboxSession);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java b/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java
index 03eed97..139d6f3 100644
--- a/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java
+++ b/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java
@@ -65,7 +65,7 @@ public class PassCmdHandler extends AbstractPassCmdHandler  {
     protected Mailbox auth(POP3Session session, String username, String password) throws Exception {
         MailboxSession mSession = null;
         try {
-            mSession = manager.login(session.getUser(), password, session.getLogger());
+            mSession = manager.login(session.getUser(), password);
             manager.startProcessingRequest(mSession);
             MailboxPath inbox = MailboxPath.inbox(mSession);
             

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java b/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
index a91e1ab..118e86b 100644
--- a/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
+++ b/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
@@ -216,7 +216,7 @@ public class POP3ServerTest {
 
         pop3Client.disconnect();
         MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, "foo", "INBOX");
-        MailboxSession session = mailboxManager.login("foo", "bar", LoggerFactory.getLogger("Test"));
+        MailboxSession session = mailboxManager.login("foo", "bar");
         if (!mailboxManager.mailboxExists(mailboxPath, session)) {
             mailboxManager.createMailbox(mailboxPath, session);
         }
@@ -301,7 +301,7 @@ public class POP3ServerTest {
         usersRepository.addUser("foo2", "bar2");
 
         MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, "foo2", "INBOX");
-        MailboxSession session = mailboxManager.login("foo2", "bar2", LoggerFactory.getLogger("Test"));
+        MailboxSession session = mailboxManager.login("foo2", "bar2");
 
         if (!mailboxManager.mailboxExists(mailboxPath, session)) {
             mailboxManager.createMailbox(mailboxPath, session);
@@ -390,7 +390,7 @@ public class POP3ServerTest {
         usersRepository.addUser("foo2", "bar2");
 
         MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, "foo2", "INBOX");
-        MailboxSession session = mailboxManager.login("foo2", "bar2", LoggerFactory.getLogger("Test"));
+        MailboxSession session = mailboxManager.login("foo2", "bar2");
 
         if (!mailboxManager.mailboxExists(mailboxPath, session)) {
             mailboxManager.createMailbox(mailboxPath, session);
@@ -440,7 +440,7 @@ public class POP3ServerTest {
         usersRepository.addUser("foo2", "bar2");
 
         MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, "foo2", "INBOX");
-        MailboxSession session = mailboxManager.login("foo2", "bar2", LoggerFactory.getLogger("Test"));
+        MailboxSession session = mailboxManager.login("foo2", "bar2");
 
         if (!mailboxManager.mailboxExists(mailboxPath, session)) {
             mailboxManager.createMailbox(mailboxPath, session);
@@ -646,7 +646,7 @@ public class POP3ServerTest {
         pop3Client.connect(bindedAddress.getAddress().getHostAddress(), bindedAddress.getPort());
 
         usersRepository.addUser("foo6", "bar6");
-        MailboxSession session = mailboxManager.login("foo6", "bar6", LoggerFactory.getLogger("Test"));
+        MailboxSession session = mailboxManager.login("foo6", "bar6");
 
         MailboxPath mailboxPath = MailboxPath.inbox(session);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java
index 469bdfb..9e8f6fa 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/UserMailboxesService.java
@@ -62,7 +62,7 @@ public class UserMailboxesService {
 
     public void createMailbox(String username, MailboxName mailboxName) throws MailboxException, UsersRepositoryException {
         usernamePreconditions(username);
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USER_NAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USER_NAME);
         try {
             mailboxManager.createMailbox(
                 convertToMailboxPath(username, mailboxName.asString(), mailboxSession),
@@ -74,7 +74,7 @@ public class UserMailboxesService {
 
     public void deleteMailboxes(String username) throws MailboxException, UsersRepositoryException {
         usernamePreconditions(username);
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USER_NAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USER_NAME);
         listUserMailboxes(username, mailboxSession)
             .map(MailboxMetaData::getPath)
             .forEach(Throwing.consumer(mailboxPath -> deleteMailbox(mailboxSession, mailboxPath)));
@@ -82,7 +82,7 @@ public class UserMailboxesService {
 
     public List<MailboxResponse> listMailboxes(String username) throws MailboxException, UsersRepositoryException {
         usernamePreconditions(username);
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USER_NAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USER_NAME);
         return listUserMailboxes(username, mailboxSession)
             .map(mailboxMetaData -> new MailboxResponse(mailboxMetaData.getPath().getName()))
             .collect(Guavate.toImmutableList());
@@ -90,7 +90,7 @@ public class UserMailboxesService {
 
     public boolean testMailboxExists(String username, MailboxName mailboxName) throws MailboxException, UsersRepositoryException {
         usernamePreconditions(username);
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USER_NAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USER_NAME);
         return mailboxManager.mailboxExists(
             convertToMailboxPath(username, mailboxName.asString(), mailboxSession),
             mailboxSession);
@@ -98,7 +98,7 @@ public class UserMailboxesService {
 
     public void deleteMailbox(String username, MailboxName mailboxName) throws MailboxException, UsersRepositoryException, MailboxHaveChildrenException {
         usernamePreconditions(username);
-        MailboxSession mailboxSession = mailboxManager.createSystemSession(USER_NAME, LOGGER);
+        MailboxSession mailboxSession = mailboxManager.createSystemSession(USER_NAME);
         MailboxPath mailboxPath = convertToMailboxPath(username, mailboxName.asString(), mailboxSession);
         listChildren(mailboxPath, mailboxSession)
             .forEach(Throwing.consumer(path -> deleteMailbox(mailboxSession, path)));

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
index d19542f..503abfe 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
@@ -525,7 +525,7 @@ public class UserMailboxesRoutesTest {
         @Before
         public void setUp() throws Exception {
             mailboxManager = mock(MailboxManager.class);
-            when(mailboxManager.createSystemSession(any(), any())).thenReturn(mock(MailboxSession.class));
+            when(mailboxManager.createSystemSession(any())).thenReturn(mock(MailboxSession.class));
 
             createServer(mailboxManager);
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[18/38] james-project git commit: JAMES-2114 Remove LOGGER from IMAP Session API

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
index 44aecce..3936d71 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
@@ -58,10 +58,13 @@ import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.mailbox.model.MessageResultIterator;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public class StoreProcessor extends AbstractMailboxProcessor<StoreRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(StoreProcessor.class);
 
     /**
      * The {@link ImapCommand} which should be used for the response if some CONDSTORE option is used
@@ -213,12 +216,12 @@ public class StoreProcessor extends AbstractMailboxProcessor<StoreRequest> {
                 }
             }
         } catch (MessageRangeException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("Store failed for mailbox " + session.getSelected().getPath() + " because of an invalid sequence-set " + ImmutableList.copyOf(idSet), e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Store failed for mailbox " + session.getSelected().getPath() + " because of an invalid sequence-set " + ImmutableList.copyOf(idSet), e);
             }
             taggedBad(imapCommand, tag, responder, HumanReadableText.INVALID_MESSAGESET);
         } catch (MailboxException e) {
-            session.getLog().error("Store failed for mailbox " + session.getSelected().getPath() + " and sequence-set " + ImmutableList.copyOf(idSet), e);
+            LOGGER.error("Store failed for mailbox " + session.getSelected().getPath() + " and sequence-set " + ImmutableList.copyOf(idSet), e);
             no(imapCommand, tag, responder, HumanReadableText.SAVE_FAILED);
         }
     }
@@ -292,8 +295,8 @@ public class StoreProcessor extends AbstractMailboxProcessor<StoreRequest> {
                 final int msn = selected.msn(uid);
 
                 if (msn == SelectedMailbox.NO_SUCH_MESSAGE) {
-                    if(session.getLog().isDebugEnabled()) {
-                        session.getLog().debug("No message found with uid " + uid + " in the uid<->msn mapping for mailbox " + selected.getPath().getFullName(mailboxSession.getPathDelimiter()) +" , this may be because it was deleted by a concurrent session. So skip it..");
+                    if(LOGGER.isDebugEnabled()) {
+                        LOGGER.debug("No message found with uid " + uid + " in the uid<->msn mapping for mailbox " + selected.getPath().getFullName(mailboxSession.getPathDelimiter()) +" , this may be because it was deleted by a concurrent session. So skip it..");
                         
                     }
                     // skip this as it was not found in the mapping

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
index 732a584..36b63ce 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
@@ -34,8 +34,11 @@ import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.exception.SubscriptionException;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class SubscribeProcessor extends AbstractSubscriptionProcessor<SubscribeRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SubscribeProcessor.class);
 
     public SubscribeProcessor(ImapProcessor next, MailboxManager mailboxManager, SubscriptionManager subscriptionManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -59,8 +62,8 @@ public class SubscribeProcessor extends AbstractSubscriptionProcessor<SubscribeR
             okComplete(command, tag, responder);
 
         } catch (SubscriptionException e) {
-            if (session.getLog().isInfoEnabled()) {
-                session.getLog().info("Subscribe failed for mailbox " + mailboxName, e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Subscribe failed for mailbox " + mailboxName, e);
             }
             unsolicitedResponses(session, responder, false);
             no(command, tag, responder, HumanReadableText.GENERIC_SUBSCRIPTION_FAILURE);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
index 2054368..f42f13d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
@@ -30,11 +30,14 @@ import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Processes system messages unrelated to IMAP.
  */
 public class SystemMessageProcessor extends AbstractChainedProcessor<SystemMessage> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SystemMessageProcessor.class);
 
     private final MailboxManager mailboxManager;
 
@@ -51,11 +54,11 @@ public class SystemMessageProcessor extends AbstractChainedProcessor<SystemMessa
                 forceLogout(session);
                 break;
             default:
-                session.getLog().info("Unknown system message " + message);
+                LOGGER.info("Unknown system message " + message);
                 break;
             }
         } catch (MailboxException e) {
-            session.getLog().error("Cannot force logout", e);
+            LOGGER.error("Cannot force logout", e);
         }
     }
 
@@ -70,8 +73,8 @@ public class SystemMessageProcessor extends AbstractChainedProcessor<SystemMessa
     private void forceLogout(ImapSession imapSession) throws MailboxException {
         final MailboxSession session = ImapSessionUtils.getMailboxSession(imapSession);
         if (session == null) {
-            if (imapSession.getLog().isTraceEnabled()) {
-                imapSession.getLog().trace("No mailbox session so no force logout needed");
+            if (LOGGER.isTraceEnabled()) {
+                LOGGER.trace("No mailbox session so no force logout needed");
             }
         } else {
             session.close();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
index b40bc6d..675947a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
@@ -34,8 +34,11 @@ import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.exception.SubscriptionException;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class UnsubscribeProcessor extends AbstractSubscriptionProcessor<UnsubscribeRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(UnsubscribeProcessor.class);
 
     public UnsubscribeProcessor(ImapProcessor next, MailboxManager mailboxManager, SubscriptionManager subscriptionManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -59,8 +62,8 @@ public class UnsubscribeProcessor extends AbstractSubscriptionProcessor<Unsubscr
             okComplete(command, tag, responder);
 
         } catch (SubscriptionException e) {
-            if (session.getLog().isInfoEnabled()) {
-                session.getLog().info("Unsubscribe failed for mailbox " + mailboxName, e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Unsubscribe failed for mailbox " + mailboxName, e);
             }
             unsolicitedResponses(session, responder, false);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
index fdd95cc..18b0d7f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
@@ -42,6 +42,8 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SearchQuery;
 import org.apache.james.mailbox.model.UpdatedFlags;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -50,6 +52,7 @@ import com.google.common.collect.ImmutableList;
  * Default implementation of {@link SelectedMailbox}
  */
 public class SelectedMailboxImpl implements SelectedMailbox, MailboxListener{
+    private static final Logger LOGGER = LoggerFactory.getLogger(SelectedMailboxImpl.class);
 
     private final Set<MessageUid> recentUids = new TreeSet<>();
 
@@ -121,7 +124,7 @@ public class SelectedMailboxImpl implements SelectedMailbox, MailboxListener{
         try {
             mailboxManager.removeListener(path, this, mailboxSession);
         } catch (MailboxException e) {
-            session.getLog().error("Unable to remove listener " + this + " from mailbox while closing it", e);
+            LOGGER.error("Unable to remove listener " + this + " from mailbox while closing it", e);
         }
         
         uidMsnConverter.clear();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/base/UnknownRequestProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/UnknownRequestProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/UnknownRequestProcessor.java
index b2e42c5..75f99dd 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/UnknownRequestProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/UnknownRequestProcessor.java
@@ -29,8 +29,10 @@ import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapSession;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class UnknownRequestProcessor implements ImapProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(UnknownRequestProcessor.class);
 
     private final StatusResponseFactory factory;
 
@@ -39,10 +41,9 @@ public class UnknownRequestProcessor implements ImapProcessor {
         this.factory = factory;
     }
 
-    public ImapResponseMessage process(ImapMessage message, ImapSession session) {
-        Logger logger = session.getLog();
-        if (logger != null && logger.isDebugEnabled()) {
-            logger.debug("Unknown message: " + message);
+    public ImapResponseMessage process(ImapMessage message) {
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("Unknown message: " + message);
         }
         final ImapResponseMessage result;
         if (message instanceof ImapRequest) {
@@ -57,7 +58,7 @@ public class UnknownRequestProcessor implements ImapProcessor {
     }
 
     public void process(ImapMessage message, Responder responder, ImapSession session) {
-        final ImapResponseMessage response = process(message, session);
+        final ImapResponseMessage response = process(message);
         responder.respond(response);
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
index 333691f..0fea83b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/EnvelopeBuilder.java
@@ -42,14 +42,10 @@ import org.apache.james.mime4j.dom.address.Mailbox;
 import org.apache.james.mime4j.dom.address.MailboxList;
 import org.apache.james.mime4j.field.address.LenientAddressParser;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public final class EnvelopeBuilder {
-    private final Logger logger;
-
-    public EnvelopeBuilder(Logger logger) {
-        super();
-        this.logger = logger;
-    }
+    private static final Logger LOGGER = LoggerFactory.getLogger(EnvelopeBuilder.class);
 
     public FetchResponse.Envelope buildEnvelope(Headers headers) throws MailboxException {
         final String date = headerValue(headers, ImapConstants.RFC822_DATE);
@@ -145,7 +141,7 @@ public final class EnvelopeBuilder {
                         addresses.add(mailboxAddress);
 
                     } else {
-                        logger.warn("Unknown address type {}", address.getClass());
+                        LOGGER.warn("Unknown address type {}", address.getClass());
                     }
                 }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
index 5c3ed47..7ff90c3 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
@@ -52,10 +52,13 @@ import org.apache.james.mailbox.model.MessageResult.MimePath;
 import org.apache.james.mailbox.model.MessageResultIterator;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public class FetchProcessor extends AbstractMailboxProcessor<FetchRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(FetchProcessor.class);
 
     public FetchProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -130,12 +133,12 @@ public class FetchProcessor extends AbstractMailboxProcessor<FetchRequest> {
             unsolicitedResponses(session, responder, omitExpunged, useUids);
             okComplete(command, tag, responder);
         } catch (MessageRangeException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("Fetch failed for mailbox " + session.getSelected().getPath() + " because of invalid sequence-set " + ImmutableList.copyOf(idSet), e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Fetch failed for mailbox " + session.getSelected().getPath() + " because of invalid sequence-set " + ImmutableList.copyOf(idSet), e);
             }
             taggedBad(command, tag, responder, HumanReadableText.INVALID_MESSAGESET);
         } catch (MailboxException e) {
-            session.getLog().error("Fetch failed for mailbox " + session.getSelected().getPath() + " and sequence-set " + ImmutableList.copyOf(idSet), e);
+            LOGGER.error("Fetch failed for mailbox " + session.getSelected().getPath() + " and sequence-set " + ImmutableList.copyOf(idSet), e);
             no(command, tag, responder, HumanReadableText.SEARCH_FAILED);
         }
     }
@@ -156,7 +159,7 @@ public class FetchProcessor extends AbstractMailboxProcessor<FetchRequest> {
      * @throws MailboxException
      */
     protected void processMessageRanges(ImapSession session, MessageManager mailbox, List<MessageRange> ranges, FetchData fetch, boolean useUids, MailboxSession mailboxSession, Responder responder) throws MailboxException {
-        final FetchResponseBuilder builder = new FetchResponseBuilder(new EnvelopeBuilder(session.getLog()));
+        final FetchResponseBuilder builder = new FetchResponseBuilder(new EnvelopeBuilder());
         FetchGroup resultToFetch = getFetchGroup(fetch);
 
         for (MessageRange range : ranges) {
@@ -175,15 +178,15 @@ public class FetchProcessor extends AbstractMailboxProcessor<FetchRequest> {
                 } catch (MessageRangeException e) {
                     // we can't for whatever reason find the message so
                     // just skip it and log it to debug
-                    if (session.getLog().isDebugEnabled()) {
-                        session.getLog().debug("Unable to find message with uid " + result.getUid(), e);
+                    if (LOGGER.isDebugEnabled()) {
+                        LOGGER.debug("Unable to find message with uid " + result.getUid(), e);
                     }
                 } catch (MailboxException e) {
                     // we can't for whatever reason find parse all requested parts of the message. This may because it was deleted while try to access the parts.
                     // So we just skip it 
                     //
                     // See IMAP-347
-                    session.getLog().error("Unable to fetch message with uid " + result.getUid() + ", so skip it", e);
+                    LOGGER.error("Unable to fetch message with uid " + result.getUid() + ", so skip it", e);
                 }
             }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/decode/main/ImapRequestStreamHandler.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/main/ImapRequestStreamHandler.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/main/ImapRequestStreamHandler.java
index ef30873..cd8ce27 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/decode/main/ImapRequestStreamHandler.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/decode/main/ImapRequestStreamHandler.java
@@ -35,11 +35,13 @@ import org.apache.james.imap.main.AbstractImapRequestHandler;
 import org.apache.james.imap.message.request.SystemMessage;
 import org.apache.james.protocols.imap.DecodingException;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 
  */
 public final class ImapRequestStreamHandler extends AbstractImapRequestHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ImapRequestStreamHandler.class);
 
     public ImapRequestStreamHandler(ImapDecoder decoder, ImapProcessor processor, ImapEncoder encoder) {
         super(decoder, processor, encoder);
@@ -64,11 +66,10 @@ public final class ImapRequestStreamHandler extends AbstractImapRequestHandler {
         } else {
             ImapRequestLineReader request = new ImapRequestStreamLineReader(input, output);
 
-            final Logger logger = session.getLog();
             try {
                 request.nextChar();
             } catch (DecodingException e) {
-                logger.debug("Unexpected end of line. Cannot handle request: ", e);
+                LOGGER.debug("Unexpected end of line. Cannot handle request: ", e);
                 abandon(output, session);
                 return false;
             }
@@ -84,17 +85,17 @@ public final class ImapRequestStreamHandler extends AbstractImapRequestHandler {
                 } catch (DecodingException e) {
                     // Cannot clean up. No recovery is therefore possible.
                     // Abandon connection.
-                    if (logger.isInfoEnabled()) {
-                        logger.info("Fault during clean up: " + e.getMessage());
+                    if (LOGGER.isInfoEnabled()) {
+                        LOGGER.info("Fault during clean up: " + e.getMessage());
                     }
-                    logger.debug("Abandoning after fault in clean up", e);
+                    LOGGER.debug("Abandoning after fault in clean up", e);
                     abandon(output, session);
                     return false;
                 }
 
                 result = !(ImapSessionState.LOGOUT == session.getState());
             } else {
-                logger.debug("Connection was abandoned after request processing failed.");
+                LOGGER.debug("Connection was abandoned after request processing failed.");
                 result = false;
                 abandon(output, session);
             }
@@ -106,8 +107,8 @@ public final class ImapRequestStreamHandler extends AbstractImapRequestHandler {
         try {
             output.write(MAILBOX_DELETED_SIGNOFF);
         } catch (IOException e) {
-            session.getLog().warn("Failed to write signoff");
-            session.getLog().debug("Failed to write signoff:", e);
+            LOGGER.warn("Failed to write signoff");
+            LOGGER.debug("Failed to write signoff:", e);
         }
     }
 
@@ -116,13 +117,13 @@ public final class ImapRequestStreamHandler extends AbstractImapRequestHandler {
             try {
                 session.logout();
             } catch (Throwable t) {
-                session.getLog().warn("Session logout failed. Resources may not be correctly recycled.");
+                LOGGER.warn("Session logout failed. Resources may not be correctly recycled.");
             }
         }
         try {
             out.write(ABANDON_SIGNOFF);
         } catch (Throwable t) {
-            session.getLog().debug("Failed to write ABANDON_SIGNOFF", t);
+            LOGGER.debug("Failed to write ABANDON_SIGNOFF", t);
         }
         processor.process(SystemMessage.FORCE_LOGOUT, new SilentResponder(), session);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/MockLogger.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/MockLogger.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/MockLogger.java
deleted file mode 100644
index ea9e752..0000000
--- a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/MockLogger.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/****************************************************************
- * 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.imap.decode.parser;
-
-import org.slf4j.Logger;
-import org.slf4j.Marker;
-
-
-final class MockLogger implements Logger {
-
-    public void debug(Marker arg0, String arg1, Object arg2, Object arg3) {
-    }
-
-    public void debug(Marker arg0, String arg1, Object arg2) {
-    }
-
-    public void debug(Marker arg0, String arg1, Object... arg2) {
-    }
-
-    public void debug(Marker arg0, String arg1, Throwable arg2) {
-    }
-
-    public void debug(Marker arg0, String arg1) {
-    }
-
-    public void debug(String arg0, Object arg1, Object arg2) {
-    }
-
-    public void debug(String arg0, Object arg1) {
-    }
-
-    public void debug(String arg0, Object... arg1) {
-    }
-
-    public void debug(String arg0, Throwable arg1) {
-    }
-
-    public void debug(String arg0) {
-    }
-
-    public void error(Marker arg0, String arg1, Object arg2, Object arg3) {
-    }
-
-    public void error(Marker arg0, String arg1, Object arg2) {
-    }
-
-    public void error(Marker arg0, String arg1, Object... arg2) {
-    }
-
-    public void error(Marker arg0, String arg1, Throwable arg2) {
-    }
-
-    public void error(Marker arg0, String arg1) {
-    }
-
-    public void error(String arg0, Object arg1, Object arg2) {
-    }
-
-    public void error(String arg0, Object arg1) {
-    }
-
-    public void error(String arg0, Object... arg1) {
-    }
-
-    public void error(String arg0, Throwable arg1) {
-    }
-
-    public void error(String arg0) {
-    }
-
-    public String getName() {
-        return null;
-    }
-
-    public void info(Marker arg0, String arg1, Object arg2, Object arg3) {
-    }
-
-    public void info(Marker arg0, String arg1, Object arg2) {
-    }
-
-    public void info(Marker arg0, String arg1, Object... arg2) {
-    }
-
-    public void info(Marker arg0, String arg1, Throwable arg2) {
-    }
-
-    public void info(Marker arg0, String arg1) {
-    }
-
-    public void info(String arg0, Object arg1, Object arg2) {
-    }
-
-    public void info(String arg0, Object arg1) {
-    }
-
-    public void info(String arg0, Object... arg1) {
-    }
-
-    public void info(String arg0, Throwable arg1) {
-    }
-
-    public void info(String arg0) {
-    }
-
-    public boolean isDebugEnabled() {
-	return false;
-    }
-
-    public boolean isDebugEnabled(Marker arg0) {
-	return false;
-    }
-
-    public boolean isErrorEnabled() {
-	return false;
-    }
-
-    public boolean isErrorEnabled(Marker arg0) {
-	return false;
-    }
-
-    public boolean isInfoEnabled() {
-	return false;
-    }
-
-    public boolean isInfoEnabled(Marker arg0) {
-	return false;
-    }
-
-    public boolean isTraceEnabled() {
-	return false;
-    }
-
-    public boolean isTraceEnabled(Marker arg0) {
-	return false;
-    }
-
-    public boolean isWarnEnabled() {
-	return false;
-    }
-
-    public boolean isWarnEnabled(Marker arg0) {
-	return false;
-    }
-
-    public void trace(Marker arg0, String arg1, Object arg2, Object arg3) {
-    }
-
-    public void trace(Marker arg0, String arg1, Object arg2) {
-    }
-
-    public void trace(Marker arg0, String arg1, Object... arg2) {
-    }
-
-    public void trace(Marker arg0, String arg1, Throwable arg2) {
-    }
-
-    public void trace(Marker arg0, String arg1) {
-    }
-
-    public void trace(String arg0, Object arg1, Object arg2) {
-    }
-
-    public void trace(String arg0, Object arg1) {
-    }
-
-    public void trace(String arg0, Object... arg1) {
-    }
-
-    public void trace(String arg0, Throwable arg1) {
-    }
-
-    public void trace(String arg0) {
-    }
-
-    public void warn(Marker arg0, String arg1, Object arg2, Object arg3) {
-    }
-
-    public void warn(Marker arg0, String arg1, Object arg2) {
-    }
-
-    public void warn(Marker arg0, String arg1, Object... arg2) {
-    }
-
-    public void warn(Marker arg0, String arg1, Throwable arg2) {
-    }
-
-    public void warn(Marker arg0, String arg1) {
-    }
-
-    public void warn(String arg0, Object arg1, Object arg2) {
-    }
-
-    public void warn(String arg0, Object arg1) {
-    }
-
-    public void warn(String arg0, Object... arg1) {
-    }
-
-    public void warn(String arg0, Throwable arg1) {
-    }
-
-    public void warn(String arg0) {
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserCharsetTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserCharsetTest.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserCharsetTest.java
index 0b808eb..e55e9d6 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserCharsetTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserCharsetTest.java
@@ -25,7 +25,6 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.nio.charset.Charset;
 
-
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapMessage;
 import org.apache.james.imap.api.display.CharsetUtil;
@@ -100,7 +99,6 @@ public class SearchCommandParserCharsetTest {
                     with(same(command)), 
                     with(equal(HumanReadableText.BAD_CHARSET)),
                     with(equal(StatusResponse.ResponseCode.badCharset(CharsetUtil.getAvailableCharsetNames()))));
-            oneOf (session).getLog(); returnValue(new MockLogger());
         }});
         ImapRequestLineReader reader = new ImapRequestStreamLineReader(
                 new ByteArrayInputStream("CHARSET BOGUS ".getBytes("US-ASCII")),

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserQuotedCharsetTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserQuotedCharsetTest.java b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserQuotedCharsetTest.java
index bcb3b20..97e84b2 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserQuotedCharsetTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/decode/parser/SearchCommandParserQuotedCharsetTest.java
@@ -19,7 +19,8 @@
 
 package org.apache.james.imap.decode.parser;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -185,7 +186,6 @@ public class SearchCommandParserQuotedCharsetTest {
                     with(same(command)), 
                     with(equal(HumanReadableText.BAD_CHARSET)),
                     with(equal(StatusResponse.ResponseCode.badCharset(CharsetUtil.getAvailableCharsetNames()))));
-            oneOf(session).getLog(); returnValue(new MockLogger());
         }});
         ImapRequestLineReader reader = new ImapRequestStreamLineReader(
                 new ByteArrayInputStream("CHARSET BOGUS ".getBytes("US-ASCII")),

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/encode/AnnotationResponseEncoderTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/encode/AnnotationResponseEncoderTest.java b/protocols/imap/src/test/java/org/apache/james/imap/encode/AnnotationResponseEncoderTest.java
index 16e3730..66ea607 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/encode/AnnotationResponseEncoderTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/encode/AnnotationResponseEncoderTest.java
@@ -21,10 +21,7 @@ package org.apache.james.imap.encode;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.encode.base.ByteImapResponseWriter;
 import org.apache.james.imap.encode.base.EndImapEncoder;
@@ -34,7 +31,8 @@ import org.apache.james.mailbox.model.MailboxAnnotation;
 import org.apache.james.mailbox.model.MailboxAnnotationKey;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
+
+import com.google.common.collect.ImmutableList;
 
 public class AnnotationResponseEncoderTest {
     private static final MailboxAnnotationKey PRIVATE_KEY = new MailboxAnnotationKey("/private/comment");
@@ -47,16 +45,12 @@ public class AnnotationResponseEncoderTest {
     private ImapResponseComposer composer;
     private AnnotationResponseEncoder encoder;
     private ImapSession imapSession;
-    private Logger log;
 
     @Before
     public void setUp() throws Exception {
         byteImapResponseWriter = new ByteImapResponseWriter();
 
         imapSession = mock(ImapSession.class);
-        log = mock(Logger.class);
-
-        when(imapSession.getLog()).thenReturn(log);
 
         composer = new ImapResponseComposerImpl(byteImapResponseWriter, 1024);
         encoder = new AnnotationResponseEncoder(new EndImapEncoder());
@@ -103,7 +97,6 @@ public class AnnotationResponseEncoderTest {
 
         encoder.encode(response, composer, imapSession);
 
-        verify(log).warn("There is nil data of key {} on store: ", PRIVATE_KEY.asString());
         assertThat(byteImapResponseWriter.getString()).isEqualTo("* METADATA \"INBOX\" ()\r\n");
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/encode/FakeImapSession.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/encode/FakeImapSession.java b/protocols/imap/src/test/java/org/apache/james/imap/encode/FakeImapSession.java
index a95f60e..cbccd1b 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/encode/FakeImapSession.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/encode/FakeImapSession.java
@@ -25,13 +25,9 @@ import org.apache.james.imap.api.ImapSessionState;
 import org.apache.james.imap.api.process.ImapLineHandler;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.api.process.SelectedMailbox;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class FakeImapSession implements ImapSession {
-    
-    private static final Logger LOG = LoggerFactory.getLogger(FakeImapSession.class);
-    
+
     private ImapSessionState state = ImapSessionState.NON_AUTHENTICATED;
 
     private SelectedMailbox selectedMailbox = null;
@@ -88,11 +84,6 @@ public class FakeImapSession implements ImapSession {
             attributesByKey.put(key, value);
         }
     }
-
-    public Logger getLog() {
-        return LOG;
-    }
-
     
     public boolean startTLS() {
         return false;

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java
index 3bd3658..f074209 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/CopyProcessorTest.java
@@ -49,8 +49,6 @@ import org.apache.james.mailbox.store.MailboxMetaData;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
@@ -58,7 +56,6 @@ import com.google.common.collect.Lists;
 public class CopyProcessorTest {
 
     public static final String TAG = "TAG";
-    private static final Logger LOGGER = LoggerFactory.getLogger(CopyProcessorTest.class);
 
     private CopyProcessor testee;
     private ImapProcessor mockNextProcessor;
@@ -197,7 +194,6 @@ public class CopyProcessorTest {
         when(user.getUserName()).thenReturn("username");
         when(mockMailboxSession.getPersonalSpace()).thenReturn("");
         when(mockMailboxSession.getUser()).thenReturn(user);
-        when(mockImapSession.getLog()).thenReturn(LOGGER);
         when(mockMailboxSession.getSessionId()).thenReturn(42L);
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
         when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java
index 8d96a52..4adbf77 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/GetAnnotationProcessorTest.java
@@ -58,7 +58,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 import org.mockito.MockitoAnnotations;
-import org.slf4j.Logger;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -92,7 +91,6 @@ public class GetAnnotationProcessorTest {
 
     private GetAnnotationRequest.Builder annotationRequestBuilder;
     private MailboxPath inbox;
-    private Logger log;
     private ArgumentCaptor<HumanReadableText> humanTextCaptor;
     private ArgumentCaptor<ResponseCode> captorResponsecode;
     private ArgumentCaptor<AnnotationResponse> captorAnnotationResponse;
@@ -104,7 +102,6 @@ public class GetAnnotationProcessorTest {
         mockStatusResponseFactory = mock(StatusResponseFactory.class);
         mockResponder = mock(ImapProcessor.Responder.class);
         mockImapSession = mock(ImapSession.class);
-        log = mock(Logger.class);
 
         mailboxSession = new MockMailboxSession("username");
         inbox = MailboxPath.inbox(mailboxSession);
@@ -119,7 +116,6 @@ public class GetAnnotationProcessorTest {
 
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
         when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mailboxSession);
-        when(mockImapSession.getLog()).thenReturn(log);
     }
 
     @Before

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java
index ca96cc8..cdf5729 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/MoveProcessorTest.java
@@ -52,8 +52,6 @@ import org.apache.james.mailbox.store.MailboxMetaData;
 import org.apache.james.metrics.api.NoopMetricFactory;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
@@ -61,7 +59,6 @@ import com.google.common.collect.Lists;
 public class MoveProcessorTest {
 
     public static final String TAG = "TAG";
-    private static final Logger LOGGER = LoggerFactory.getLogger(MoveProcessorTest.class);
 
     private MoveProcessor testee;
     private ImapProcessor mockNextProcessor;
@@ -217,7 +214,6 @@ public class MoveProcessorTest {
         when(user.getUserName()).thenReturn("username");
         when(mockMailboxSession.getPersonalSpace()).thenReturn("");
         when(mockMailboxSession.getUser()).thenReturn(user);
-        when(mockImapSession.getLog()).thenReturn(LOGGER);
         when(mockMailboxSession.getSessionId()).thenReturn(42L);
         when(mockImapSession.getState()).thenReturn(ImapSessionState.SELECTED);
         when(mockImapSession.getAttribute(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY)).thenReturn(mockMailboxSession);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
index a604d4a..5a63525 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SearchProcessorTest.java
@@ -63,8 +63,6 @@ import org.jmock.integration.junit4.JUnit4Mockery;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 
@@ -125,9 +123,7 @@ public class SearchProcessorTest {
     SelectedMailbox selectedMailbox;
 
     private Mockery mockery = new JUnit4Mockery();
-    
-    private Logger logger = LoggerFactory.getLogger(this.getClass());
-    
+
     @Before
     public void setUp() throws Exception {
         serverResponseFactory = mockery.mock(StatusResponseFactory.class);
@@ -495,7 +491,6 @@ public class SearchProcessorTest {
             allowing(session).setAttribute(SearchProcessor.SEARCH_MODSEQ, null);
             allowing(session).getAttribute(
                     with(equal(ImapSessionUtils.MAILBOX_SESSION_ATTRIBUTE_SESSION_KEY))); will(returnValue((MailboxSession) mailboxSession));
-                    allowing(session).getLog(); will(returnValue(logger));
             oneOf(mailbox).search(
                     with(equal(query)),
                     with(equal(mailboxSession)));will(

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
index 9a11a7c..c79e58e 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/SetAnnotationProcessorTest.java
@@ -57,7 +57,6 @@ import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 import org.mockito.InjectMocks;
 import org.mockito.MockitoAnnotations;
-import org.slf4j.Logger;
 
 import com.google.common.collect.ImmutableList;
 
@@ -78,7 +77,6 @@ public class SetAnnotationProcessorTest {
 
     private List<MailboxAnnotation> MAILBOX_ANNOTATIONS;
     private StatusResponse okResponse;
-    private Logger log;
 
     private MailboxPath inbox; 
 
@@ -92,7 +90,6 @@ public class SetAnnotationProcessorTest {
         mockStatusResponseFactory = mock(StatusResponseFactory.class);
         mockResponder = mock(ImapProcessor.Responder.class);
         mockImapSession = mock(ImapSession.class);
-        log = mock(Logger.class);;
 
         mockMailboxSession = new MockMailboxSession("username");
         inbox = MailboxPath.inbox(mockMailboxSession);
@@ -122,8 +119,6 @@ public class SetAnnotationProcessorTest {
 
     @Test
     public void processShouldResponseNoWithNoSuchMailboxWhenManagerThrowMailboxNotFoundException() throws Exception {
-        when(mockImapSession.getLog()).thenReturn(log);
-
         doThrow(MailboxNotFoundException.class).when(mockMailboxManager).updateAnnotations(eq(inbox),
             eq(mockMailboxSession), eq(MAILBOX_ANNOTATIONS));
 
@@ -137,8 +132,6 @@ public class SetAnnotationProcessorTest {
 
     @Test
     public void processShouldResponseNoWithGenericFailureWhenManagerThrowMailboxException() throws Exception {
-        when(mockImapSession.getLog()).thenReturn(log);
-
         doThrow(MailboxException.class).when(mockMailboxManager).updateAnnotations(eq(inbox), eq(mockMailboxSession), eq(MAILBOX_ANNOTATIONS));
 
         processor.process(request, mockResponder, mockImapSession);
@@ -164,8 +157,6 @@ public class SetAnnotationProcessorTest {
 
     @Test
     public void processShouldResponseNoWhenManagerThrowsAnnotationException() throws Exception {
-        when(mockImapSession.getLog()).thenReturn(log);
-
         doThrow(AnnotationException.class).when(mockMailboxManager).updateAnnotations(eq(inbox), eq(mockMailboxSession), eq(MAILBOX_ANNOTATIONS));
 
         processor.process(request, mockResponder, mockImapSession);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
index 887cf3b..b043428 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
@@ -19,9 +19,13 @@
 package org.apache.james.imapserver.netty;
 
 import static org.jboss.netty.channel.Channels.pipeline;
+
 import java.util.concurrent.TimeUnit;
+
 import javax.net.ssl.SSLEngine;
 
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.imap.api.ImapConfiguration;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.process.ImapProcessor;
@@ -33,13 +37,6 @@ import org.apache.james.protocols.netty.ChannelGroupHandler;
 import org.apache.james.protocols.netty.ChannelHandlerFactory;
 import org.apache.james.protocols.netty.ConnectionLimitUpstreamHandler;
 import org.apache.james.protocols.netty.ConnectionPerIpLimitUpstreamHandler;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.HierarchicalConfiguration;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Splitter;
-import com.google.common.collect.ImmutableSet;
-
 import org.jboss.netty.channel.ChannelPipeline;
 import org.jboss.netty.channel.ChannelPipelineFactory;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
@@ -53,6 +50,10 @@ import org.jboss.netty.util.HashedWheelTimer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Splitter;
+import com.google.common.collect.ImmutableSet;
+
 /**
  * NIO IMAP Server which use Netty.
  */
@@ -208,9 +209,9 @@ public class IMAPServer extends AbstractConfigurableAsyncServer implements ImapC
         ImapChannelUpstreamHandler coreHandler;
         Encryption secure = getEncryption();
         if (secure!= null && secure.isStartTLS()) {
-           coreHandler = new ImapChannelUpstreamHandler(hello, processor, encoder, getLogger(), compress, plainAuthDisallowed, secure.getContext(), getEnabledCipherSuites(), imapMetrics);
+           coreHandler = new ImapChannelUpstreamHandler(hello, processor, encoder, compress, plainAuthDisallowed, secure.getContext(), getEnabledCipherSuites(), imapMetrics);
         } else {
-           coreHandler = new ImapChannelUpstreamHandler(hello, processor, encoder, getLogger(), compress, plainAuthDisallowed, imapMetrics);
+           coreHandler = new ImapChannelUpstreamHandler(hello, processor, encoder, compress, plainAuthDisallowed, imapMetrics);
         }
         return coreHandler;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
index 14d1a20..5f21580 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapChannelUpstreamHandler.java
@@ -21,7 +21,6 @@ package org.apache.james.imapserver.netty;
 import java.io.Closeable;
 import java.io.IOException;
 import java.net.InetSocketAddress;
-import java.util.function.Supplier;
 
 import javax.net.ssl.SSLContext;
 
@@ -46,13 +45,13 @@ import org.jboss.netty.channel.MessageEvent;
 import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
 import org.jboss.netty.handler.codec.frame.TooLongFrameException;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * {@link SimpleChannelUpstreamHandler} which handles IMAP
  */
 public class ImapChannelUpstreamHandler extends SimpleChannelUpstreamHandler implements NettyConstants{
-
-    private final Logger logger;
+    private static final Logger LOGGER = LoggerFactory.getLogger(ImapChannelUpstreamHandler.class);
 
     private final String hello;
 
@@ -73,15 +72,14 @@ public class ImapChannelUpstreamHandler extends SimpleChannelUpstreamHandler imp
     private final Metric imapConnectionsMetric;
     private final Metric imapCommandsMetric;
     
-    public ImapChannelUpstreamHandler(String hello, ImapProcessor processor, ImapEncoder encoder, Logger logger, boolean compress,
+    public ImapChannelUpstreamHandler(String hello, ImapProcessor processor, ImapEncoder encoder, boolean compress,
                                       boolean plainAuthDisallowed, ImapMetrics imapMetrics) {
-        this(hello, processor, encoder, logger, compress, plainAuthDisallowed, null, null, imapMetrics);
+        this(hello, processor, encoder, compress, plainAuthDisallowed, null, null, imapMetrics);
     }
 
-    public ImapChannelUpstreamHandler(String hello, ImapProcessor processor, ImapEncoder encoder, Logger logger, boolean compress,
+    public ImapChannelUpstreamHandler(String hello, ImapProcessor processor, ImapEncoder encoder, boolean compress,
                                       boolean plainAuthDisallowed, SSLContext context, String[] enabledCipherSuites,
                                       ImapMetrics imapMetrics) {
-        this.logger = logger;
         this.hello = hello;
         this.processor = processor;
         this.encoder = encoder;
@@ -93,28 +91,20 @@ public class ImapChannelUpstreamHandler extends SimpleChannelUpstreamHandler imp
         this.imapCommandsMetric = imapMetrics.getCommandsMetric();
     }
 
-    private Logger getLogger(final ChannelHandlerContext ctx) {
-        return logger;
-    }
-
     @Override
     public void channelBound(final ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
         try (Closeable closeable = IMAPMDCContext.from(ctx, attributes)) {
-            ImapSession imapsession = new NettyImapSession(ctx.getChannel(), () -> getLogger(ctx), context, enabledCipherSuites, compress, plainAuthDisallowed);
+            ImapSession imapsession = new NettyImapSession(ctx.getChannel(), context, enabledCipherSuites, compress, plainAuthDisallowed);
             attributes.set(ctx.getChannel(), imapsession);
             super.channelBound(ctx, e);
         }
     }
 
-    private Supplier<Logger> toLogSupplier(final ChannelHandlerContext ctx) {
-        return () -> getLogger(ctx);
-    }
-
     @Override
     public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
         try (Closeable closeable = IMAPMDCContext.from(ctx, attributes)) {
             InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
-            getLogger(ctx).info("Connection closed for " + address.getAddress().getHostAddress());
+            LOGGER.info("Connection closed for " + address.getAddress().getHostAddress());
 
             // remove the stored attribute for the channel to free up resources
             // See JAMES-1195
@@ -131,7 +121,7 @@ public class ImapChannelUpstreamHandler extends SimpleChannelUpstreamHandler imp
     public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
         try (Closeable closeable = IMAPMDCContext.from(ctx, attributes)) {
             InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
-            getLogger(ctx).info("Connection established from " + address.getAddress().getHostAddress());
+            LOGGER.info("Connection established from " + address.getAddress().getHostAddress());
             imapConnectionsMetric.increment();
 
             ImapResponseComposer response = new ImapResponseComposerImpl(new ChannelImapResponseWriter(ctx.getChannel()));
@@ -146,7 +136,7 @@ public class ImapChannelUpstreamHandler extends SimpleChannelUpstreamHandler imp
     @Override
     public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
         try (Closeable closeable = IMAPMDCContext.from(ctx, attributes)) {
-            getLogger(ctx).warn("Error while processing imap request", e.getCause());
+            LOGGER.warn("Error while processing imap request", e.getCause());
 
             if (e.getCause() instanceof TooLongFrameException) {
 
@@ -213,10 +203,9 @@ public class ImapChannelUpstreamHandler extends SimpleChannelUpstreamHandler imp
                 final IOException failure = responseEncoder.getFailure();
 
                 if (failure != null) {
-                    final Logger logger = session.getLog();
-                    logger.info(failure.getMessage());
-                    if (logger.isDebugEnabled()) {
-                        logger.debug("Failed to write " + message, failure);
+                    LOGGER.info(failure.getMessage());
+                    if (LOGGER.isDebugEnabled()) {
+                        LOGGER.debug("Failed to write " + message, failure);
                     }
                     throw failure;
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapIdleStateHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapIdleStateHandler.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapIdleStateHandler.java
index fd27f8d..f0d2b4a 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapIdleStateHandler.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/ImapIdleStateHandler.java
@@ -25,12 +25,15 @@ import org.jboss.netty.channel.ChannelHandlerContext;
 import org.jboss.netty.handler.timeout.IdleState;
 import org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler;
 import org.jboss.netty.handler.timeout.IdleStateEvent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * {@link IdleStateAwareChannelHandler} which will call {@link ImapSession#logout()} if the
  * connected client did not receive or send any traffic in a given timeframe.
  */
 public class ImapIdleStateHandler extends IdleStateAwareChannelHandler implements NettyConstants {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ImapIdleStateHandler.class);
 
     @Override
     public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
@@ -40,7 +43,7 @@ public class ImapIdleStateHandler extends IdleStateAwareChannelHandler implement
             ImapSession session = (ImapSession) attributes.get(ctx.getChannel());
             InetSocketAddress address = (InetSocketAddress) ctx.getChannel().getRemoteAddress();
 
-            session.getLog().info("Logout client {} ({}) because it idled for too long...",
+            LOGGER.info("Logout client {} ({}) because it idled for too long...",
                 address.getHostName(),
                 address.getAddress().getHostAddress());
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java
index 6c47b0a..d6c46e6 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/NettyImapSession.java
@@ -20,7 +20,6 @@ package org.apache.james.imapserver.netty;
 
 import java.util.HashMap;
 import java.util.Map;
-import java.util.function.Supplier;
 
 import javax.net.ssl.SSLContext;
 
@@ -33,24 +32,20 @@ import org.jboss.netty.handler.codec.compression.ZlibDecoder;
 import org.jboss.netty.handler.codec.compression.ZlibEncoder;
 import org.jboss.netty.handler.codec.compression.ZlibWrapper;
 import org.jboss.netty.handler.ssl.SslHandler;
-import org.slf4j.Logger;
 
 public class NettyImapSession implements ImapSession, NettyConstants {
-
     private ImapSessionState state = ImapSessionState.NON_AUTHENTICATED;
     private SelectedMailbox selectedMailbox;
     private final Map<String, Object> attributesByKey = new HashMap<>();
     private final SSLContext sslContext;
     private final String[] enabledCipherSuites;
     private final boolean compress;
-    private final Supplier<Logger> log;
     private final Channel channel;
     private int handlerCount;
     private final boolean plainAuthDisallowed;
 
-    public NettyImapSession(Channel channel, Supplier<Logger> log, SSLContext sslContext, String[] enabledCipherSuites, boolean compress, boolean plainAuthDisallowed) {
+    public NettyImapSession(Channel channel, SSLContext sslContext, String[] enabledCipherSuites, boolean compress, boolean plainAuthDisallowed) {
         this.channel = channel;
-        this.log = log;
         this.sslContext = sslContext;
         this.enabledCipherSuites = enabledCipherSuites;
         this.compress = compress;
@@ -224,13 +219,6 @@ public class NettyImapSession implements ImapSession, NettyConstants {
     }
 
     /**
-     * @see org.apache.james.imap.api.process.ImapSession#getLog()
-     */
-    public Logger getLog() {
-        return log.get();
-    }
-
-    /**
      * @see org.apache.james.imap.api.process.ImapSession#isPlainAuthDisallowed()
      */
     public boolean isPlainAuthDisallowed() {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[34/38] james-project git commit: JAMES-2114 Remove some tests targeting the logging system

Posted by bt...@apache.org.
JAMES-2114 Remove some tests targeting the logging system

It breaks our testing policy concerning logs. Such tests should just ensure we do not fail


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/0fb81ac2
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/0fb81ac2
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/0fb81ac2

Branch: refs/heads/master
Commit: 0fb81ac2178ec2971df583f4b70cb64dcf5d6069
Parents: d56d0b1
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 15 15:04:09 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:44 2017 +0700

----------------------------------------------------------------------
 .../mailets/AmqpForwardAttributeTest.java       | 15 ++++--------
 .../transport/mailets/ToProcessorTest.java      | 24 --------------------
 2 files changed, 4 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/0fb81ac2/mailet/standard/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java
index dac1fab..0af1e67 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttributeTest.java
@@ -20,7 +20,6 @@
 package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
@@ -184,33 +183,27 @@ public class AmqpForwardAttributeTest {
     }
 
     @Test
-    public void serviceShouldLogWhenTimeoutException() throws Exception {
+    public void serviceShouldNotFailWhenTimeoutException() throws Exception {
         mailet.init(mailetConfig);
         Mail mail = mock(Mail.class);
         when(mail.getAttribute(MAIL_ATTRIBUTE)).thenReturn(ATTRIBUTE_CONTENT);
         ConnectionFactory connectionFactory = mock(ConnectionFactory.class);
-        TimeoutException expectedLoggedException = new TimeoutException();
-        when(connectionFactory.newConnection()).thenThrow(expectedLoggedException);
+        when(connectionFactory.newConnection()).thenThrow(new TimeoutException());
         mailet.setConnectionFactory(connectionFactory);
 
         mailet.service(mail);
-
-        verify(logger).error(any(String.class), eq(expectedLoggedException));
     }
 
     @Test
-    public void serviceShouldLogWhenIOException() throws Exception {
+    public void serviceShouldNotFailWhenIOException() throws Exception {
         mailet.init(mailetConfig);
         Mail mail = mock(Mail.class);
         when(mail.getAttribute(MAIL_ATTRIBUTE)).thenReturn(ATTRIBUTE_CONTENT);
         ConnectionFactory connectionFactory = mock(ConnectionFactory.class);
-        IOException expectedLoggedException = new IOException();
-        when(connectionFactory.newConnection()).thenThrow(expectedLoggedException);
+        when(connectionFactory.newConnection()).thenThrow(new IOException());
         mailet.setConnectionFactory(connectionFactory);
 
         mailet.service(mail);
-
-        verify(logger).error(any(String.class), eq(expectedLoggedException));
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/0fb81ac2/mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java
index 35175a5..233d909 100644
--- a/mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java
+++ b/mailet/standard/src/test/java/org/apache/james/transport/mailets/ToProcessorTest.java
@@ -21,9 +21,7 @@
 package org.apache.james.transport.mailets;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
 
 import javax.mail.MessagingException;
 
@@ -31,7 +29,6 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.MailetException;
-import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailContext;
 import org.apache.mailet.base.test.FakeMailetConfig;
@@ -133,25 +130,4 @@ public class ToProcessorTest {
 
         assertThat(mail.getErrorMessage()).isEqualTo(initialErrorMessage + "\r\n" + notice);
     }
-
-    @Test
-    public void serviceShouldLogWhenDebug() throws MessagingException {
-        FakeMailetConfig mailetConfig = FakeMailetConfig.builder()
-                .mailetName("Test")
-                .mailetContext(mailContext)
-                .setProperty("processor", "error")
-                .setProperty("notice", "error in message")
-                .setProperty("debug", "true")
-                .build();
-        mailet.init(mailetConfig);
-
-        String initialErrorMessage = "first";
-        Mail mail = FakeMail.builder()
-            .recipients(MailAddressFixture.ANY_AT_JAMES, MailAddressFixture.OTHER_AT_JAMES)
-            .errorMessage(initialErrorMessage)
-            .build();
-        mailet.service(mail);
-
-        verify(logger).info(anyString());
-    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[37/38] james-project git commit: JAMES-2114 Remove unused class implementations

Posted by bt...@apache.org.
JAMES-2114 Remove unused class implementations


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/dc2a42e4
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/dc2a42e4
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/dc2a42e4

Branch: refs/heads/master
Commit: dc2a42e459775ce2030eac70a990b405c6ab0461
Parents: 88bc153
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 15 14:53:17 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:44 2017 +0700

----------------------------------------------------------------------
 .../org/apache/james/mpt/log/SilentLog.java     | 272 ----------------
 .../apache/james/mpt/log/VerboseConsoleLog.java | 324 -------------------
 2 files changed, 596 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/dc2a42e4/mpt/core/src/main/java/org/apache/james/mpt/log/SilentLog.java
----------------------------------------------------------------------
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/log/SilentLog.java b/mpt/core/src/main/java/org/apache/james/mpt/log/SilentLog.java
deleted file mode 100644
index fe973c2..0000000
--- a/mpt/core/src/main/java/org/apache/james/mpt/log/SilentLog.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/****************************************************************
- * 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.mpt.log;
-
-import org.slf4j.Logger;
-import org.slf4j.Marker;
-
-final class SilentLog implements Logger {
-    public void debug(Object arg0) {
-    }
-
-    public void debug(Object arg0, Throwable arg1) {
-    }
-
-    public void error(Object arg0) {
-    }
-
-    public void error(Object arg0, Throwable arg1) {
-    }
-
-    public void fatalError(Object arg0) {
-    }
-
-    public void fatalError(Object arg0, Throwable arg1) {
-    }
-
-    public void info(Object arg0) {
-    }
-
-    public void info(Object arg0, Throwable arg1) {
-    }
-
-    public boolean isDebugEnabled() {
-        return false;
-    }
-
-    public boolean isErrorEnabled() {
-        return false;
-    }
-
-    public boolean isFatalErrorEnabled() {
-        return false;
-    }
-
-    public boolean isInfoEnabled() {
-        return false;
-    }
-
-    public boolean isWarnEnabled() {
-        return false;
-    }
-
-    public void warn(Object arg0) {
-
-    }
-
-    public void warn(Object arg0, Throwable arg1) {
-
-    }
-
-    public void fatal(Object arg0) {
-    }
-
-    public void fatal(Object arg0, Throwable arg1) {
-    }
-
-    public boolean isFatalEnabled() {
-        return false;
-    }
-
-    public boolean isTraceEnabled() {
-        return false;
-    }
-
-    public void trace(Object arg0) {
-    }
-
-    public void trace(Object arg0, Throwable arg1) {
-    }
-
-    public String getName() {
-	return "SilentLog";
-    }
-
-    public void trace(String msg) {
-    }
-
-    public void trace(String format, Object arg) {
-    }
-
-    public void trace(String format, Object arg1, Object arg2) {
-    }
-
-    public void trace(String format, Object... argArray) {
-    }
-
-    public void trace(String msg, Throwable t) {
-    }
-
-    public boolean isTraceEnabled(Marker marker) {
-	return false;
-    }
-
-    public void trace(Marker marker, String msg) {
-    }
-
-    public void trace(Marker marker, String format, Object arg) {
-    }
-
-    public void trace(Marker marker, String format, Object arg1, Object arg2) {
-    }
-
-    public void trace(Marker marker, String format, Object... argArray) {
-    }
-
-    public void trace(Marker marker, String msg, Throwable t) {
-    }
-
-    public void debug(String msg) {
-    }
-
-    public void debug(String format, Object arg) {
-    }
-
-    public void debug(String format, Object arg1, Object arg2) {
-    }
-
-    public void debug(String format, Object... argArray) {
-    }
-
-    public void debug(String msg, Throwable t) {
-    }
-
-    public boolean isDebugEnabled(Marker marker) {
-	return false;
-    }
-
-    public void debug(Marker marker, String msg) {
-    }
-
-    public void debug(Marker marker, String format, Object arg) {
-    }
-
-    public void debug(Marker marker, String format, Object arg1, Object arg2) {
-    }
-
-    public void debug(Marker marker, String format, Object... argArray) {
-    }
-
-    public void debug(Marker marker, String msg, Throwable t) {
-    }
-
-    public void info(String msg) {
-    }
-
-    public void info(String format, Object arg) {
-    }
-
-    public void info(String format, Object arg1, Object arg2) {
-    }
-
-    public void info(String format, Object... argArray) {
-    }
-
-    public void info(String msg, Throwable t) {
-    }
-
-    public boolean isInfoEnabled(Marker marker) {
-	return false;
-    }
-
-    public void info(Marker marker, String msg) {
-    }
-
-    public void info(Marker marker, String format, Object arg) {
-    }
-
-    public void info(Marker marker, String format, Object arg1, Object arg2) {
-    }
-
-    public void info(Marker marker, String format, Object... argArray) {
-    }
-
-    public void info(Marker marker, String msg, Throwable t) {
-    }
-
-    public void warn(String msg) {
-    }
-
-    public void warn(String format, Object arg) {
-    }
-
-    public void warn(String format, Object... argArray) {
-    }
-
-    public void warn(String format, Object arg1, Object arg2) {
-    }
-
-    public void warn(String msg, Throwable t) {
-    }
-
-    public boolean isWarnEnabled(Marker marker) {
-	return false;
-    }
-
-    public void warn(Marker marker, String msg) {
-    }
-
-    public void warn(Marker marker, String format, Object arg) {
-    }
-
-    public void warn(Marker marker, String format, Object arg1, Object arg2) {
-    }
-
-    public void warn(Marker marker, String format, Object... argArray) {
-    }
-
-    public void warn(Marker marker, String msg, Throwable t) {
-    }
-
-    public void error(String msg) {
-    }
-
-    public void error(String format, Object arg) {
-    }
-
-    public void error(String format, Object arg1, Object arg2) {
-    }
-
-    public void error(String format, Object... argArray) {
-    }
-
-    public void error(String msg, Throwable t) {
-    }
-
-    public boolean isErrorEnabled(Marker marker) {
-	return false;
-    }
-
-    public void error(Marker marker, String msg) {
-    }
-
-    public void error(Marker marker, String format, Object arg) {
-    }
-
-    public void error(Marker marker, String format, Object arg1, Object arg2) {
-    }
-
-    public void error(Marker marker, String format, Object... argArray) {
-    }
-
-    public void error(Marker marker, String msg, Throwable t) {
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/dc2a42e4/mpt/core/src/main/java/org/apache/james/mpt/log/VerboseConsoleLog.java
----------------------------------------------------------------------
diff --git a/mpt/core/src/main/java/org/apache/james/mpt/log/VerboseConsoleLog.java b/mpt/core/src/main/java/org/apache/james/mpt/log/VerboseConsoleLog.java
deleted file mode 100644
index b93bf76..0000000
--- a/mpt/core/src/main/java/org/apache/james/mpt/log/VerboseConsoleLog.java
+++ /dev/null
@@ -1,324 +0,0 @@
-/****************************************************************
- * 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.mpt.log;
-
-import org.slf4j.Logger;
-import org.slf4j.Marker;
-
-public class VerboseConsoleLog implements Logger {
-
-    public String getName() {
-        return "MockLogger to System out";
-    }
-
-    public boolean isTraceEnabled() {
-        return true;
-    }
-
-    public void trace(String msg) {
-        SysPrint(msg);
-    }
-
-    public void trace(String format, Object arg) {
-        SysPrint(format, arg);
-    }
-
-    public void trace(String format, Object arg1, Object arg2) {
-        SysPrint(format, arg1, arg2);
-    }
-
-    public void trace(String format, Object... argArray) {
-        SysPrint(format, argArray);
-    }
-
-    public void trace(String msg, Throwable t) {
-        SysPrint(msg, t);
-    }
-
-    public boolean isTraceEnabled(Marker marker) {
-        return true;
-    }
-
-    public void trace(Marker marker, String msg) {
-        SysPrint(marker, msg);
-    }
-
-    public void trace(Marker marker, String format, Object arg) {
-        SysPrint(marker, format, arg);
-    }
-
-    public void trace(Marker marker, String format, Object arg1, Object arg2) {
-        SysPrint(marker, format, arg1, arg2);
-    }
-
-    public void trace(Marker marker, String format, Object... argArray) {
-        SysPrint(marker, format, argArray);
-    }
-
-    public void trace(Marker marker, String msg, Throwable t) {
-        SysPrint(marker, msg, t);
-    }
-
-    public boolean isDebugEnabled() {
-        return true;
-    }
-
-    public void debug(String msg) {
-        SysPrint(msg);
-    }
-
-    public void debug(String format, Object arg) {
-        SysPrint(format, arg);
-    }
-
-    public void debug(String format, Object arg1, Object arg2) {
-        SysPrint(format, arg1, arg2);
-    }
-
-    public void debug(String format, Object... argArray) {
-        SysPrint(format, argArray);
-    }
-
-    public void debug(String msg, Throwable t) {
-        SysPrint(msg, t);
-    }
-
-    public boolean isDebugEnabled(Marker marker) {
-        return true;
-    }
-
-    public void debug(Marker marker, String msg) {
-        SysPrint(marker, msg);
-    }
-
-    public void debug(Marker marker, String format, Object arg) {
-        SysPrint(marker, format, arg);
-    }
-
-    public void debug(Marker marker, String format, Object arg1, Object arg2) {
-        SysPrint(marker, format, arg1, arg2);
-    }
-
-    public void debug(Marker marker, String format, Object... argArray) {
-        SysPrint(marker, format, argArray);
-    }
-
-    public void debug(Marker marker, String msg, Throwable t) {
-        SysPrint(marker, msg, t);
-    }
-
-    public boolean isInfoEnabled() {
-        return true;
-    }
-
-    public void info(String msg) {
-        SysPrint(msg);
-    }
-
-    public void info(String format, Object arg) {
-        SysPrint(format, arg);
-    }
-
-    public void info(String format, Object arg1, Object arg2) {
-        SysPrint(format, arg1, arg2);
-    }
-
-    public void info(String format, Object... argArray) {
-        SysPrint(format, argArray);
-    }
-
-    public void info(String msg, Throwable t) {
-        SysPrint(msg, t);
-    }
-
-    public boolean isInfoEnabled(Marker marker) {
-        return true;
-    }
-
-    public void info(Marker marker, String msg) {
-        SysPrint(marker, msg);
-    }
-
-    public void info(Marker marker, String format, Object arg) {
-        SysPrint(marker, format, arg);
-    }
-
-    public void info(Marker marker, String format, Object arg1, Object arg2) {
-        SysPrint(marker, format, arg1, arg2);
-    }
-
-    public void info(Marker marker, String format, Object... argArray) {
-        SysPrint(marker, format, argArray);
-    }
-
-    public void info(Marker marker, String msg, Throwable t) {
-        SysPrint(marker, msg, t);
-    }
-
-    public boolean isWarnEnabled() {
-        return true;
-    }
-
-    public void warn(String msg) {
-        SysPrint(msg);
-    }
-
-    public void warn(String format, Object arg) {
-        SysPrint(format, arg);
-    }
-
-    public void warn(String format, Object... argArray) {
-        SysPrint(format, argArray);
-    }
-
-    public void warn(String format, Object arg1, Object arg2) {
-        SysPrint(format, arg1, arg2);
-    }
-
-    public void warn(String msg, Throwable t) {
-        SysPrint(msg, t);
-    }
-
-    public boolean isWarnEnabled(Marker marker) {
-        return true;
-    }
-
-    public void warn(Marker marker, String msg) {
-    }
-
-    public void warn(Marker marker, String format, Object arg) {
-        SysPrint(marker, format, arg);
-    }
-
-    public void warn(Marker marker, String format, Object arg1, Object arg2) {
-        SysPrint(marker, format, arg1, arg2);
-    }
-
-    public void warn(Marker marker, String format, Object... argArray) {
-        SysPrint(marker, format, argArray);
-    }
-
-    public void warn(Marker marker, String msg, Throwable t) {
-        SysPrint(marker, msg, t);
-    }
-
-    public boolean isErrorEnabled() {
-        return true;
-    }
-
-    public void error(String msg) {
-        SysPrint(msg);
-    }
-
-    public void error(String format, Object arg) {
-        SysPrint(format, arg);
-    }
-
-    public void error(String format, Object arg1, Object arg2) {
-        SysPrint(format, arg1, arg2);
-    }
-
-    public void error(String format, Object... argArray) {
-        SysPrint(format, argArray);
-    }
-
-    public void error(String msg, Throwable t) {
-        SysPrint(msg, t);
-    }
-
-    public boolean isErrorEnabled(Marker marker) {
-        return true;
-    }
-
-    public void error(Marker marker, String msg) {
-        SysPrint(marker, msg);
-    }
-
-    public void error(Marker marker, String format, Object arg) {
-        SysPrint(marker, format, arg);
-    }
-
-    public void error(Marker marker, String format, Object arg1, Object arg2) {
-        SysPrint(marker, format, arg1, arg2);
-    }
-
-    public void error(Marker marker, String format, Object... argArray) {
-        SysPrint(marker, format, argArray);
-    }
-
-    public void error(Marker marker, String msg, Throwable t) {
-        SysPrint(marker, msg, t);
-    }
-
-    private void SysPrint(Marker marker, String msg, Object... obj) {
-        if (obj != null) {
-            Throwable t = null;
-            StringBuffer s = new StringBuffer("[");
-            s.append(marker.toString()).append("] ").append(msg);
-            s.append(" args=[");
-            boolean first = true;
-            for (Object o : obj) {
-                if (o instanceof Throwable) {
-                    t = (Throwable) o;
-                } else {
-                    if (first) {
-                        s.append(o.toString());
-                        first = false;
-                    } else {
-                        s.append(", ").append(o.toString());
-                    }
-                }
-            }
-            System.out.println(s.toString());
-            if (t != null) {
-                t.printStackTrace();
-            }
-        } else {
-            System.out.println(msg);
-        }
-    }
-
-    private void SysPrint(String msg, Object... obj) {
-        if (obj != null) {
-            Throwable t = null;
-            StringBuffer s = new StringBuffer(msg);
-            s.append(" args=[");
-            boolean first = true;
-            for (Object o : obj) {
-                if (o instanceof Throwable) {
-                    t = (Throwable) o;
-                } else {
-                    if (first) {
-                        s.append(o.toString());
-                        first = false;
-                    } else {
-                        s.append(", ").append(o.toString());
-                    }
-                }
-            }
-            System.out.println(s.toString());
-            if (t != null) {
-                t.printStackTrace();
-            }
-        } else {
-            System.out.println(msg);
-        }
-    }
-
-}


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[28/38] james-project git commit: JAMES-2114 Improve a bit JSieve logging

Posted by bt...@apache.org.
JAMES-2114 Improve a bit JSieve logging


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ecccda03
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ecccda03
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ecccda03

Branch: refs/heads/master
Commit: ecccda03cff65acdd20b6ea65a1ca13eb64e2209
Parents: d66efa3
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 15 02:21:58 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:43 2017 +0700

----------------------------------------------------------------------
 .../transport/mailets/jsieve/ActionContext.java |  7 -----
 .../transport/mailets/jsieve/ActionUtils.java   | 10 ++++---
 .../mailets/jsieve/FileIntoAction.java          | 28 +++++++++-----------
 .../mailets/jsieve/RedirectAction.java          |  9 ++++---
 .../transport/mailets/jsieve/RejectAction.java  |  5 +++-
 .../mailets/jsieve/SieveMailAdapter.java        | 18 ++-----------
 .../mailets/jsieve/VacationAction.java          |  5 +++-
 .../transport/mailets/jsieve/VacationReply.java |  6 +++--
 .../mailets/jsieve/delivery/SieveExecutor.java  |  1 -
 9 files changed, 37 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/ecccda03/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java
index 5203279..6800d8e 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionContext.java
@@ -23,7 +23,6 @@ import java.util.Collection;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
-import org.apache.commons.logging.Log;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.joda.time.DateTime;
@@ -47,12 +46,6 @@ public interface ActionContext {
      * @return Recipient receiving the given eMail
      */
     MailAddress getRecipient();
-
-    /**
-     * Gets the log.
-     * @return not null
-     */
-    public Log getLog();
     
     /**
      * Experimental mail delivery. 

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecccda03/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionUtils.java
index 3645e8c..2354ff0 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/ActionUtils.java
@@ -23,13 +23,15 @@ import javax.mail.MessagingException;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Utility methods helpful for actions.
  */
-public class ActionUtils
-{
-    
+public class ActionUtils {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ActionUtils.class);
+
     private final static String ATTRIBUTE_PREFIX = ActionUtils.class.getPackage().getName() + ".";
 
     /**
@@ -71,7 +73,7 @@ public class ActionUtils
             MessagingException ex = new MessagingException(
                     "This message is looping! Message ID: "
                             + aMail.getMessage().getMessageID());
-            context.getLog().warn(ex.getMessage(), ex);
+            LOGGER.warn(ex.getMessage(), ex);
             throw ex;
         }
         aMail.setAttribute(ATTRIBUTE_PREFIX + anAttributeSuffix,

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecccda03/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/FileIntoAction.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/FileIntoAction.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/FileIntoAction.java
index 6a56482..24f08ce 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/FileIntoAction.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/FileIntoAction.java
@@ -20,11 +20,12 @@ package org.apache.james.transport.mailets.jsieve;
 
 import javax.mail.MessagingException;
 
-import org.apache.commons.logging.Log;
 import org.apache.jsieve.mail.Action;
 import org.apache.jsieve.mail.ActionFileInto;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Performs the filing of a mail into a specified destination. 
@@ -32,7 +33,8 @@ import org.apache.mailet.MailAddress;
  * <p>An instance maybe safe accessed concurrently by multiple threads.</p>
  */
 public class FileIntoAction implements MailAction {
-    
+    private static final Logger LOGGER = LoggerFactory.getLogger(FileIntoAction.class);
+
     private static final char HIERARCHY_DELIMITER = '.';
 
     public void execute(Action action, Mail mail, ActionContext context) throws MessagingException {
@@ -67,13 +69,11 @@ public class FileIntoAction implements MailAction {
      * @param context not null
      * @throws MessagingException
      */
-    public void execute(ActionFileInto anAction, Mail aMail, final ActionContext context) throws MessagingException
-    {
+    public void execute(ActionFileInto anAction, Mail aMail, final ActionContext context) throws MessagingException {
         String destinationMailbox = anAction.getDestination();
         MailAddress recipient;
         boolean delivered = false;
-        try
-        {
+        try {
             recipient = ActionUtils.getSoleRecipient(aMail);
             
             if (!(destinationMailbox.length() > 0 
@@ -87,19 +87,15 @@ public class FileIntoAction implements MailAction {
             context.post(url, aMail);
             delivered = true;
         }
-        catch (MessagingException ex)
-        {
-            final Log log = context.getLog();
-            if (log.isDebugEnabled()) {
-                log.debug("Error while storing mail into. "+destinationMailbox, ex);
+        catch (MessagingException ex) {
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Error while storing mail into. "+destinationMailbox, ex);
             }
             throw ex;
         }
-        if (delivered)
-        {
-            final Log log = context.getLog();
-            if (log.isDebugEnabled()) {
-                log.debug("Filed Message ID: "
+        if (delivered) {
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Filed Message ID: "
                     + aMail.getMessage().getMessageID()
                     + " into destination: \""
                     + destinationMailbox + "\"");

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecccda03/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RedirectAction.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RedirectAction.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RedirectAction.java
index 127125c..6d48cc8 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RedirectAction.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RedirectAction.java
@@ -24,11 +24,12 @@ import java.util.Collection;
 import javax.mail.MessagingException;
 import javax.mail.internet.InternetAddress;
 
-import org.apache.commons.logging.Log;
 import org.apache.jsieve.mail.Action;
 import org.apache.jsieve.mail.ActionRedirect;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Performs the redirection of a mail. 
@@ -36,6 +37,7 @@ import org.apache.mailet.MailAddress;
  * <p>An instance maybe safe accessed concurrently by multiple threads.</p>
  */
 public class RedirectAction implements MailAction {
+    private static final Logger LOGGER = LoggerFactory.getLogger(RedirectAction.class.getName());
 
     public void execute(Action action, Mail mail, ActionContext context)
             throws MessagingException {
@@ -61,9 +63,8 @@ public class RedirectAction implements MailAction {
         recipients.add(new MailAddress(new InternetAddress(anAction.getAddress())));
         MailAddress sender = aMail.getSender();
         context.post(sender, recipients, aMail.getMessage());
-        Log log = context.getLog();
-        if (log.isDebugEnabled()) {
-            log.debug("Redirected Message ID: "
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("Redirected Message ID: "
                 + aMail.getMessage().getMessageID() + " to \""
                 + anAction.getAddress() + "\"");
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecccda03/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java
index 94c3666..2cd5dc0 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java
@@ -40,6 +40,8 @@ import org.apache.jsieve.mail.Action;
 import org.apache.jsieve.mail.ActionReject;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Performs the rejection of a mail, with a reply to the sender. 
@@ -47,6 +49,7 @@ import org.apache.mailet.MailAddress;
  * <p>An instance maybe safe accessed concurrently by multiple threads.</p>
  */
 public class RejectAction implements MailAction {
+    private static final Logger LOGGER = LoggerFactory.getLogger(RejectAction.class);
 
     public void execute(Action action, Mail mail, ActionContext context)
             throws MessagingException {
@@ -135,7 +138,7 @@ public class RejectAction implements MailAction {
         }
         else
         {
-            context.getLog().info("Unable to send reject MDN. Could not determine the recipient.");
+            LOGGER.info("Unable to send reject MDN. Could not determine the recipient.");
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecccda03/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
index a8a4fd8..8befe47 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/SieveMailAdapter.java
@@ -33,8 +33,6 @@ import javax.mail.Header;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.james.mime4j.dom.address.AddressList;
 import org.apache.james.mime4j.dom.address.Mailbox;
 import org.apache.james.mime4j.dom.address.MailboxList;
@@ -56,18 +54,14 @@ import org.apache.mailet.MailetContext;
 import org.joda.time.DateTime;
 
 import com.google.common.collect.Lists;
+
 /**
  * <p>
  * Class <code>SieveMailAdapter</code> implements a <code>MailAdapter</code>
  * for use in a Mailet environment.
  * </p>
  */
-public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionContext
-{
-    private static final Log LOG = LogFactory.getLog(SieveMailAdapter.class);
-    
-    private Log log = LOG;
-    
+public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionContext {
     /**
      * The Mail being adapted.
      */
@@ -118,10 +112,6 @@ public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionC
         return recipient;
     }
 
-    public void setLog(Log log) {
-        this.log = log;
-    }
-
     /**
      * Returns the message.
      * 
@@ -434,10 +424,6 @@ public class SieveMailAdapter implements MailAdapter, EnvelopeAccessors, ActionC
         }
     }
 
-    public Log getLog() {
-        return log;
-    }
-    
     public String getServerInfo() {
         return getMailetContext().getServerInfo();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecccda03/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
index f83126c..9453de5 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationAction.java
@@ -30,12 +30,15 @@ import org.apache.jsieve.mail.optional.ActionVacation;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.joda.time.Days;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 
 public class VacationAction implements MailAction {
+    private static final Logger LOGGER = LoggerFactory.getLogger(VacationAction.class);
 
     @Override
     public void execute(Action action, Mail mail, ActionContext context) throws MessagingException {
@@ -77,7 +80,7 @@ public class VacationAction implements MailAction {
         try {
             return new MailAddress(address);
         } catch (AddressException e) {
-            context.getLog().warn("Mail address " + address + " was not well formatted : " + e.getLocalizedMessage());
+            LOGGER.warn("Mail address " + address + " was not well formatted : " + e.getLocalizedMessage());
             return null;
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecccda03/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
index 12cc1f7..028b0e6 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/VacationReply.java
@@ -33,13 +33,15 @@ import javax.mail.util.ByteArrayDataSource;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 
 public class VacationReply {
-
+    private static final Logger LOGGER = LoggerFactory.getLogger(VacationReply.class);
 
     public static class Builder {
 
@@ -134,7 +136,7 @@ public class VacationReply {
             try {
                 return new MailAddress(address);
             } catch (AddressException e) {
-                context.getLog().warn("Mail address " + address + " was not well formatted : " + e.getLocalizedMessage());
+                LOGGER.warn("Mail address " + address + " was not well formatted : " + e.getLocalizedMessage());
                 return null;
             }
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ecccda03/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
index f770218..7834f42 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
@@ -136,7 +136,6 @@ public class SieveExecutor {
             SieveMailAdapter aMailAdapter = new SieveMailAdapter(aMail,
                 mailetContext, actionDispatcher, sievePoster, userSieveInformation.getScriptActivationDate(),
                 userSieveInformation.getScriptInterpretationDate(), recipient);
-            aMailAdapter.setLog(log);
             // This logging operation is potentially costly
             log.debug("Evaluating " + aMailAdapter.toString() + " against \"" + recipient.asPrettyString() + "\"");
             factory.evaluate(aMailAdapter, factory.parse(userSieveInformation.getScriptContent()));


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[07/38] james-project git commit: JAMES-2114 WebAdmin add authentiation info

Posted by bt...@apache.org.
JAMES-2114 WebAdmin add authentiation info


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d0cad4de
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d0cad4de
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d0cad4de

Branch: refs/heads/master
Commit: d0cad4de79f62f55e7165e27041fda3fdf801f3b
Parents: ba02c57
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 22 14:09:33 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:42 2017 +0700

----------------------------------------------------------------------
 .../james/webadmin/authentication/AuthenticationFilter.java       | 1 +
 .../java/org/apache/james/webadmin/authentication/JwtFilter.java  | 3 +++
 .../src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java    | 2 ++
 3 files changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d0cad4de/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/AuthenticationFilter.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/AuthenticationFilter.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/AuthenticationFilter.java
index f73b818..b2a2774 100644
--- a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/AuthenticationFilter.java
+++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/AuthenticationFilter.java
@@ -22,4 +22,5 @@ package org.apache.james.webadmin.authentication;
 import spark.Filter;
 
 public interface AuthenticationFilter extends Filter {
+    String LOGIN = "LOGIN";
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/d0cad4de/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/JwtFilter.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/JwtFilter.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/JwtFilter.java
index 4832d6f..494ee6e 100644
--- a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/JwtFilter.java
+++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/authentication/JwtFilter.java
@@ -52,6 +52,9 @@ public class JwtFilter implements AuthenticationFilter {
             checkHeaderPresent(bearer);
             checkValidSignature(bearer);
             checkIsAdmin(bearer);
+
+            String login = jwtTokenVerifier.extractLogin(bearer.get());
+            request.attribute(LOGIN, login);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/d0cad4de/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java
index 1c12d78..8ac470b 100644
--- a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java
+++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java
@@ -22,6 +22,7 @@ package org.apache.james.webadmin.mdc;
 import java.io.Closeable;
 
 import org.apache.james.util.MDCBuilder;
+import org.apache.james.webadmin.authentication.AuthenticationFilter;
 
 import spark.Filter;
 import spark.Request;
@@ -39,6 +40,7 @@ public class MDCFilter implements Filter {
             .addContext(VERB, request.requestMethod())
             .addContext(MDCBuilder.PROTOCOL, "webadmin")
             .addContext(MDCBuilder.ACTION, request.pathInfo())
+            .addContext(MDCBuilder.USER, request.attribute(AuthenticationFilter.LOGIN))
             .build();
         request.attribute(MDC_CLOSEABLE, mdcCloseable);
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[08/38] james-project git commit: JAMES-2114 MDC contectual logging for WEBADMIN

Posted by bt...@apache.org.
JAMES-2114 MDC contectual logging for WEBADMIN


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ba02c57b
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ba02c57b
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ba02c57b

Branch: refs/heads/master
Commit: ba02c57b9fc0be611657b21a0517f7f7042f820d
Parents: 176d7bf
Author: benwa <bt...@linagora.com>
Authored: Wed Aug 23 16:24:12 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:42 2017 +0700

----------------------------------------------------------------------
 .../apache/james/webadmin/WebAdminServer.java   |  8 ++++
 .../james/webadmin/mdc/MDCCleanupFilter.java    | 44 +++++++++++++++++++
 .../apache/james/webadmin/mdc/MDCFilter.java    | 45 ++++++++++++++++++++
 3 files changed, 97 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/ba02c57b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java
index abce524..cfd60b6 100644
--- a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java
+++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java
@@ -31,6 +31,8 @@ import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.webadmin.authentication.AuthenticationFilter;
 import org.apache.james.webadmin.authentication.NoAuthenticationFilter;
+import org.apache.james.webadmin.mdc.MDCCleanupFilter;
+import org.apache.james.webadmin.mdc.MDCFilter;
 import org.apache.james.webadmin.metric.MetricPostFilter;
 import org.apache.james.webadmin.metric.MetricPreFilter;
 import org.apache.james.webadmin.routes.CORSRoute;
@@ -81,12 +83,18 @@ public class WebAdminServer implements Configurable {
             configureCORS();
             configureMetrics();
             service.before(authenticationFilter);
+            configureMDC();
             routesList.forEach(routes -> routes.define(service));
             service.awaitInitialization();
             LOGGER.info("Web admin server started");
         }
     }
 
+    private void configureMDC() {
+        service.before(new MDCFilter());
+        service.after(new MDCCleanupFilter());
+    }
+
     private void configureMetrics() {
         service.before(new MetricPreFilter(metricFactory));
         service.after(new MetricPostFilter());

http://git-wip-us.apache.org/repos/asf/james-project/blob/ba02c57b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCCleanupFilter.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCCleanupFilter.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCCleanupFilter.java
new file mode 100644
index 0000000..6c8e144
--- /dev/null
+++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCCleanupFilter.java
@@ -0,0 +1,44 @@
+/****************************************************************
+ * 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.webadmin.mdc;
+
+import java.io.Closeable;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import spark.Filter;
+import spark.Request;
+import spark.Response;
+
+public class MDCCleanupFilter implements Filter {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MDCCleanupFilter.class);
+
+    @Override
+    public void handle(Request request, Response response) throws Exception {
+        Object attribute = request.attribute(MDCFilter.MDC_CLOSEABLE);
+        if (attribute instanceof Closeable) {
+            Closeable closeable = (Closeable) attribute;
+            closeable.close();
+        } else {
+            LOGGER.error("Invalid MDC closeable {} of class {}", attribute, attribute.getClass());
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/ba02c57b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java
new file mode 100644
index 0000000..1c12d78
--- /dev/null
+++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/mdc/MDCFilter.java
@@ -0,0 +1,45 @@
+/****************************************************************
+ * 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.webadmin.mdc;
+
+import java.io.Closeable;
+
+import org.apache.james.util.MDCBuilder;
+
+import spark.Filter;
+import spark.Request;
+import spark.Response;
+
+public class MDCFilter implements Filter {
+    public static final String VERB = "verb";
+    public static final String MDC_CLOSEABLE = "MDCCloseable";
+
+    @Override
+    public void handle(Request request, Response response) throws Exception {
+        Closeable mdcCloseable = MDCBuilder.create()
+            .addContext(MDCBuilder.IP, request.ip())
+            .addContext(MDCBuilder.HOST, request.host())
+            .addContext(VERB, request.requestMethod())
+            .addContext(MDCBuilder.PROTOCOL, "webadmin")
+            .addContext(MDCBuilder.ACTION, request.pathInfo())
+            .build();
+        request.attribute(MDC_CLOSEABLE, mdcCloseable);
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[02/38] james-project git commit: JAMES-2128 Adding direct ES logging capability for JPA and JPA-SMTP guice packagings

Posted by bt...@apache.org.
JAMES-2128 Adding direct ES logging capability for JPA and JPA-SMTP guice packagings


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/742c4022
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/742c4022
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/742c4022

Branch: refs/heads/master
Commit: 742c4022d75371807678ba608cac80815847eee1
Parents: 262da4d
Author: benwa <bt...@linagora.com>
Authored: Wed Aug 23 17:24:27 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Wed Aug 23 17:24:27 2017 +0700

----------------------------------------------------------------------
 server/container/guice/cassandra-guice/pom.xml |  7 -------
 server/container/guice/jpa-guice/pom.xml       |  4 ++++
 server/container/guice/jpa-smtp/pom.xml        |  4 ++++
 server/container/guice/pom.xml                 | 11 +++++++++++
 4 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/742c4022/server/container/guice/cassandra-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/pom.xml b/server/container/guice/cassandra-guice/pom.xml
index 19426d7..c72f177 100644
--- a/server/container/guice/cassandra-guice/pom.xml
+++ b/server/container/guice/cassandra-guice/pom.xml
@@ -191,13 +191,6 @@
         <dependency>
             <groupId>com.internetitem</groupId>
             <artifactId>logback-elasticsearch-appender</artifactId>
-            <version>1.5</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>com.fasterxml.jackson.core</groupId>
-                    <artifactId>jackson-core</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
         <dependency>
             <groupId>com.jayway.awaitility</groupId>

http://git-wip-us.apache.org/repos/asf/james-project/blob/742c4022/server/container/guice/jpa-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/pom.xml b/server/container/guice/jpa-guice/pom.xml
index 86e7b74..4230338 100644
--- a/server/container/guice/jpa-guice/pom.xml
+++ b/server/container/guice/jpa-guice/pom.xml
@@ -125,6 +125,10 @@
             <artifactId>logback-classic</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.internetitem</groupId>
+            <artifactId>logback-elasticsearch-appender</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.jayway.awaitility</groupId>
             <artifactId>awaitility</artifactId>
         </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/742c4022/server/container/guice/jpa-smtp/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-smtp/pom.xml b/server/container/guice/jpa-smtp/pom.xml
index 90cf467..1ef98b2 100644
--- a/server/container/guice/jpa-smtp/pom.xml
+++ b/server/container/guice/jpa-smtp/pom.xml
@@ -94,6 +94,10 @@
             <artifactId>logback-classic</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.internetitem</groupId>
+            <artifactId>logback-elasticsearch-appender</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
             <scope>test</scope>

http://git-wip-us.apache.org/repos/asf/james-project/blob/742c4022/server/container/guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/pom.xml b/server/container/guice/pom.xml
index 9000fb5..6638a24 100644
--- a/server/container/guice/pom.xml
+++ b/server/container/guice/pom.xml
@@ -125,6 +125,17 @@
                 <artifactId>james-server-jpa-common-guice</artifactId>
                 <version>${project.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.internetitem</groupId>
+                <artifactId>logback-elasticsearch-appender</artifactId>
+                <version>1.5</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>com.fasterxml.jackson.core</groupId>
+                        <artifactId>jackson-core</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[05/38] james-project git commit: JAMES-2114 Adding more MDC context for SMTP

Posted by bt...@apache.org.
JAMES-2114 Adding more MDC context for SMTP


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/036fa846
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/036fa846
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/036fa846

Branch: refs/heads/master
Commit: 036fa84622ebc6b82b56cdb384d0b7aa173d3688
Parents: 8d4254a
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 15 11:10:56 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:42 2017 +0700

----------------------------------------------------------------------
 .../protocols/smtp/core/AbstractHookableCmdHandler.java | 12 +++++++++++-
 .../james/protocols/smtp/core/DataCmdHandler.java       | 12 +++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/036fa846/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
index a935097..3f52b83 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.protocols.smtp.core;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
@@ -37,6 +39,9 @@ import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookResultHook;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
+import org.apache.james.util.MDCBuilder;
+
+import com.google.common.base.Throwables;
 
 /**
  * Abstract class which Handle hook-aware CommanHandler.
@@ -65,7 +70,10 @@ public abstract class AbstractHookableCmdHandler<Hook extends org.apache.james.p
         String parameters = request.getArgument();
         Response response = doFilterChecks(session, command, parameters);
 
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.ACTION, command)
+                     .build()) {
             if (response == null) {
 
                 response = processHooks(session, command, parameters);
@@ -77,6 +85,8 @@ public abstract class AbstractHookableCmdHandler<Hook extends org.apache.james.p
             } else {
                 return response;
             }
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             timeMetric.stopAndPublish();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/036fa846/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
index 2321750..d20c1d0 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataCmdHandler.java
@@ -18,6 +18,8 @@
  ****************************************************************/
 package org.apache.james.protocols.smtp.core;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -44,6 +46,9 @@ import org.apache.james.protocols.smtp.SMTPResponse;
 import org.apache.james.protocols.smtp.SMTPRetCode;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
+import org.apache.james.util.MDCBuilder;
+
+import com.google.common.base.Throwables;
 
 import com.google.common.collect.ImmutableSet;
 
@@ -139,7 +144,10 @@ public class DataCmdHandler implements CommandHandler<SMTPSession>, ExtensibleHa
     public Response onCommand(SMTPSession session, Request request) {
         TimeMetric timeMetric = metricFactory.timer("SMTP-" + request.getCommand());
         session.stopDetectingCommandInjection();
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.ACTION, request.getCommand())
+                     .build()) {
             String parameters = request.getArgument();
             Response response = doDATAFilter(session, parameters);
 
@@ -148,6 +156,8 @@ public class DataCmdHandler implements CommandHandler<SMTPSession>, ExtensibleHa
             } else {
                 return response;
             }
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             timeMetric.stopAndPublish();
             session.needsCommandInjectionDetection();


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[16/38] james-project git commit: JAMES-2114 Remove LOGGER from mailboxSession API

Posted by bt...@apache.org.
JAMES-2114 Remove LOGGER from mailboxSession API


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1ff0af09
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1ff0af09
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1ff0af09

Branch: refs/heads/master
Commit: 1ff0af09f6ccf52fdb172560a9496002dfccb129
Parents: b305e55
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 17:16:07 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:43 2017 +0700

----------------------------------------------------------------------
 .../apache/james/mailbox/MailboxManager.java    | 15 ++---
 .../apache/james/mailbox/MailboxSession.java    |  9 ---
 .../james/mailbox/MailboxManagerStressTest.java |  5 +-
 .../james/mailbox/MailboxManagerTest.java       | 59 +++++++++---------
 .../mailbox/manager/ManagerTestResources.java   | 21 +++----
 .../james/mailbox/mock/MockMailboxManager.java  |  3 +-
 .../james/mailbox/mock/MockMailboxSession.java  |  5 --
 .../CassandraMessageIdManagerTestSystem.java    |  5 +-
 .../mailbox/jcr/AbstractJCRScalingMapper.java   | 10 ----
 .../james/mailbox/jcr/JCRMailboxManager.java    |  2 +-
 .../james/mailbox/jcr/JCRMessageManager.java    |  2 +-
 .../mailbox/jcr/JCRSubscriptionManager.java     |  6 +-
 .../mailbox/jcr/mail/JCRMailboxMapper.java      | 10 ++--
 .../mailbox/jcr/mail/JCRMessageMapper.java      | 26 ++++----
 .../mailbox/jcr/mail/model/JCRMailbox.java      | 34 +++++------
 .../jcr/mail/model/JCRMailboxMessage.java       | 63 ++++++++++----------
 .../mailbox/jcr/mail/model/JCRProperty.java     | 22 +++----
 .../mailbox/jcr/user/JCRSubscriptionMapper.java |  4 +-
 .../mailbox/jcr/user/model/JCRSubscription.java | 12 ++--
 .../lucene/search/LuceneMessageSearchIndex.java |  5 +-
 .../james/mailbox/maildir/MaildirFolder.java    | 11 ++--
 .../quota/InMemoryCurrentQuotaManager.java      |  6 +-
 .../mailbox/store/SimpleMailboxSession.java     | 18 ++----
 .../mailbox/store/StoreMailboxManager.java      | 44 +++++++-------
 .../mailbox/store/StoreMessageIdManager.java    |  5 +-
 .../store/event/SynchronousEventDelivery.java   |  8 ++-
 .../BroadcastDelegatingMailboxListener.java     |  6 +-
 .../RegisteredDelegatingMailboxListener.java    | 16 ++---
 .../dto/MailboxSessionDataTransferObject.java   |  1 -
 .../quota/ListeningCurrentQuotaUpdater.java     | 10 +++-
 .../store/search/LazyMessageSearchIndex.java    |  6 +-
 .../search/ListeningMessageSearchIndex.java     | 13 ++--
 .../mailbox/store/search/MessageSearches.java   | 19 +++---
 .../mailbox/store/GroupFolderResolverTest.java  |  8 +--
 .../mailbox/store/StoreMailboxManagerTest.java  | 21 +++----
 .../search/AbstractMessageSearchIndexTest.java  |  9 +--
 .../james/mailbox/copier/MailboxCopierImpl.java | 38 ++++--------
 .../james/mailbox/indexer/ReIndexerImpl.java    |  4 +-
 .../james/mailbox/copier/MailboxCopierTest.java |  7 +--
 .../mailbox/indexer/ReIndexerImplTest.java      |  9 ++-
 .../imapmailbox/MailboxCreationDelegate.java    |  6 +-
 .../imapmailbox/hbase/host/HBaseHostSystem.java |  3 +-
 .../mpt/imapmailbox/jcr/host/JCRHostSystem.java |  3 +-
 .../mpt/imapmailbox/jpa/host/JPAHostSystem.java |  3 +-
 .../host/LuceneSearchHostSystem.java            |  3 +-
 .../decode/base/AbstractImapCommandParser.java  |  4 ++
 .../imap/processor/AbstractAuthProcessor.java   |  6 +-
 .../processor/AbstractSelectionProcessor.java   |  9 ++-
 .../base/MailboxEventAnalyserTest.java          | 17 ++----
 .../apache/james/modules/MailboxProbeImpl.java  | 17 +++---
 .../org/apache/james/utils/JmapGuiceProbe.java  |  8 +--
 .../mailbox/MailboxManagerManagement.java       | 10 ++--
 .../container/spring/tool/James23Importer.java  |  2 +-
 .../james/transport/mailets/LocalDelivery.java  |  2 +-
 .../transport/mailets/ToRecipientFolder.java    |  2 +-
 .../james/transport/mailets/ToSenderFolder.java |  2 +-
 .../mailets/delivery/MailboxAppender.java       |  7 +--
 .../matchers/AbstractStorageQuota.java          |  2 +-
 .../james/transport/matchers/IsOverQuota.java   |  5 +-
 .../mailets/delivery/LocalDeliveryTest.java     |  2 +-
 .../mailets/delivery/MailboxAppenderTest.java   |  8 +--
 .../mailets/delivery/ToRecipientFolderTest.java |  2 +-
 .../transport/matchers/IsOverQuotaTest.java     |  8 +--
 .../jmap/AccessTokenAuthenticationStrategy.java |  2 +-
 .../DefaultMailboxesProvisioningFilter.java     |  2 +-
 .../james/jmap/JWTAuthenticationStrategy.java   |  5 +-
 ...ameterAccessTokenAuthenticationStrategy.java |  6 +-
 .../james/jmap/send/PostDequeueDecorator.java   |  2 +-
 .../AccessTokenAuthenticationStrategyTest.java  |  8 +--
 ...ltMailboxesProvisioningFilterThreadTest.java |  7 +--
 .../jmap/JWTAuthenticationStrategyTest.java     |  8 +--
 ...erAccessTokenAuthenticationStrategyTest.java |  5 +-
 .../jmap/methods/GetMailboxesMethodTest.java    | 27 ++++-----
 .../james/jmap/model/MailboxFactoryTest.java    |  6 +-
 .../jmap/send/PostDequeueDecoratorTest.java     | 25 ++++----
 .../james/jmap/utils/MailboxUtilsTest.java      |  6 +-
 .../hook/MailboxDeliverToRecipientHandler.java  |  2 +-
 .../james/pop3server/core/PassCmdHandler.java   |  2 +-
 .../apache/james/pop3server/POP3ServerTest.java | 10 ++--
 .../webadmin/service/UserMailboxesService.java  | 10 ++--
 .../routes/UserMailboxesRoutesTest.java         |  2 +-
 81 files changed, 360 insertions(+), 483 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
index 8e48df4..f93befa 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
@@ -40,7 +40,6 @@ import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.MultimailboxesSearchQuery;
 import org.apache.james.mailbox.model.SimpleMailboxACL;
-import org.slf4j.Logger;
 
 import com.google.common.base.Optional;
 
@@ -260,20 +259,18 @@ public interface MailboxManager extends RequestAware, MailboxListenerSupport {
     /**
      * Creates a new system session.<br>
      * A system session is intended to be used for programmatic access.<br>
-     * Use {@link #login(String, String, Logger)} when accessing this API from a
+     * Use {@link #login(String, String)} when accessing this API from a
      * protocol.
      * 
      * @param userName
      *            the name of the user whose session is being created
-     * @param log
-     *            context sensitive log
      * @return <code>MailboxSession</code>, not null
      * @throws BadCredentialsException
      *             when system access is not allowed for the given user
      * @throws MailboxException
      *             when the creation fails for other reasons
      */
-    MailboxSession createSystemSession(String userName, Logger log) throws BadCredentialsException, MailboxException;
+    MailboxSession createSystemSession(String userName) throws BadCredentialsException, MailboxException;
 
     /**
      * Autenticates the given user against the given password.<br>
@@ -283,8 +280,6 @@ public interface MailboxManager extends RequestAware, MailboxListenerSupport {
      *            user name
      * @param passwd
      *            password supplied
-     * @param log
-     *            context sensitive log
      * @return a <code>MailboxSession</code> when the user is authenticated and
      *         authorized to access
      * @throws BadCredentialsException
@@ -292,7 +287,7 @@ public interface MailboxManager extends RequestAware, MailboxListenerSupport {
      * @throws MailboxException
      *             when the creation fails for other reasons
      */
-    MailboxSession login(String userid, String passwd, Logger log) throws BadCredentialsException, MailboxException;
+    MailboxSession login(String userid, String passwd) throws BadCredentialsException, MailboxException;
 
     /**
      * Autenticates the given administrator against the given password,
@@ -305,8 +300,6 @@ public interface MailboxManager extends RequestAware, MailboxListenerSupport {
      *            password supplied for the admin user
      * @param otherUserId
      *            user name of the real user
-     * @param log
-     *            context sensitive log
      * @return a <code>MailboxSession</code> for the real user
      *         when the admin is authenticated and authorized to access
      * @throws BadCredentialsException
@@ -314,7 +307,7 @@ public interface MailboxManager extends RequestAware, MailboxListenerSupport {
      * @throws MailboxException
      *             when the creation fails for other reasons
      */
-    MailboxSession loginAsOtherUser(String adminUserId, String passwd, String otherUserId, Logger log) throws BadCredentialsException, MailboxException;
+    MailboxSession loginAsOtherUser(String adminUserId, String passwd, String otherUserId) throws BadCredentialsException, MailboxException;
 
     /**
      * <p>

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
index 55fbe88..4ac93a1 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxSession.java
@@ -24,8 +24,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import org.slf4j.Logger;
-
 /**
  * Mailbox session.
  */
@@ -76,13 +74,6 @@ public interface MailboxSession {
     void close();
 
     /**
-     * Gets the logger for this session context.
-     * 
-     * @return not null
-     */
-    Logger getLog();
-
-    /**
      * Gets the user executing this session.
      * 
      * @return not null

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
index 41f9ab2..a1e7f25 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java
@@ -39,7 +39,6 @@ import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableSet;
 
@@ -63,7 +62,7 @@ public abstract class MailboxManagerStressTest {
         final ExecutorService pool = Executors.newFixedThreadPool(APPEND_OPERATIONS / 2);
         final List<MessageUid> uList = new ArrayList<>();
         final String username = "username";
-        MailboxSession session = mailboxManager.createSystemSession(username, LoggerFactory.getLogger("Test"));
+        MailboxSession session = mailboxManager.createSystemSession(username);
         mailboxManager.startProcessingRequest(session);
         final MailboxPath path = new MailboxPath(MailboxConstants.USER_NAMESPACE, username, "INBOX");
         mailboxManager.createMailbox(path, session);
@@ -101,7 +100,7 @@ public abstract class MailboxManagerStressTest {
 
 
                 try {
-                    MailboxSession mailboxSession = mailboxManager.createSystemSession(username, LoggerFactory.getLogger("Test"));
+                    MailboxSession mailboxSession = mailboxManager.createSystemSession(username);
 
                     mailboxManager.startProcessingRequest(mailboxSession);
                     MessageManager m = mailboxManager.getMailbox(path, mailboxSession);

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
index 2f4e808..0ccd355 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
@@ -45,7 +45,6 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -99,14 +98,14 @@ public abstract class MailboxManagerTest {
     
     @Test
     public void createUser1SystemSessionShouldReturnValidSession() throws UnsupportedEncodingException, MailboxException {
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         
         assertThat(session.getUser().getUserName()).isEqualTo(USER_1);
     }
 
     @Test
     public void user1ShouldNotHaveAnInbox() throws UnsupportedEncodingException, MailboxException {
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.startProcessingRequest(session);
         
         MailboxPath inbox = MailboxPath.inbox(session);
@@ -115,7 +114,7 @@ public abstract class MailboxManagerTest {
 
     @Test
     public void createMailboxShouldReturnRightId() throws MailboxException, UnsupportedEncodingException {
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.startProcessingRequest(session);
 
         MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, USER_1, "name.subfolder");
@@ -128,7 +127,7 @@ public abstract class MailboxManagerTest {
 
     @Test
     public void user1ShouldBeAbleToCreateInbox() throws MailboxException, UnsupportedEncodingException {
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.startProcessingRequest(session);
      
         MailboxPath inbox = MailboxPath.inbox(session);
@@ -140,7 +139,7 @@ public abstract class MailboxManagerTest {
     @Test
     public void user1ShouldNotBeAbleToCreateInboxTwice() throws MailboxException, UnsupportedEncodingException {
         expected.expect(MailboxException.class);
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.startProcessingRequest(session);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
@@ -149,7 +148,7 @@ public abstract class MailboxManagerTest {
 
     @Test
     public void user1ShouldNotHaveTestSubmailbox() throws MailboxException, UnsupportedEncodingException {
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.startProcessingRequest(session);
 
         MailboxPath inbox = MailboxPath.inbox(session);
@@ -160,7 +159,7 @@ public abstract class MailboxManagerTest {
     
     @Test
     public void user1ShouldBeAbleToCreateTestSubmailbox() throws MailboxException, UnsupportedEncodingException {
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.startProcessingRequest(session);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
@@ -173,7 +172,7 @@ public abstract class MailboxManagerTest {
     
     @Test
     public void user1ShouldBeAbleToDeleteInbox() throws MailboxException, UnsupportedEncodingException {
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.startProcessingRequest(session);
      
         MailboxPath inbox = MailboxPath.inbox(session);
@@ -189,7 +188,7 @@ public abstract class MailboxManagerTest {
     
     @Test
     public void user1ShouldBeAbleToDeleteSubmailbox() throws MailboxException, UnsupportedEncodingException {
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.startProcessingRequest(session);
      
         MailboxPath inbox = MailboxPath.inbox(session);
@@ -205,7 +204,7 @@ public abstract class MailboxManagerTest {
 
     @Test
     public void closingSessionShouldWork() throws BadCredentialsException, MailboxException, UnsupportedEncodingException {
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.startProcessingRequest(session);
 
         mailboxManager.logout(session, false);
@@ -216,7 +215,7 @@ public abstract class MailboxManagerTest {
 
     @Test
     public void listShouldReturnMailboxes() throws MailboxException, UnsupportedEncodingException {
-        session = mailboxManager.createSystemSession("manager", LoggerFactory.getLogger("testList"));
+        session = mailboxManager.createSystemSession("manager");
         mailboxManager.startProcessingRequest(session);
         
         assertThat(mailboxManager.list(session)).hasSize(MockMailboxManager.EXPECTED_MAILBOXES_COUNT);
@@ -224,7 +223,7 @@ public abstract class MailboxManagerTest {
 
     @Test
     public void user2ShouldBeAbleToCreateRootlessFolder() throws BadCredentialsException, MailboxException {
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath trash = new MailboxPath(MailboxConstants.USER_NAMESPACE, USER_2, "Trash");
         mailboxManager.createMailbox(trash, session);
         
@@ -233,7 +232,7 @@ public abstract class MailboxManagerTest {
     
     @Test
     public void user2ShouldBeAbleToCreateNestedFoldersWithoutTheirParents() throws BadCredentialsException, MailboxException {
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath nestedFolder = new MailboxPath(MailboxConstants.USER_NAMESPACE, USER_2, "INBOX.testfolder");
         mailboxManager.createMailbox(nestedFolder, session);
         
@@ -244,7 +243,7 @@ public abstract class MailboxManagerTest {
     @Test
     public void searchShouldNotReturnResultsFromOtherNamespaces() throws Exception {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Namespace));
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.createMailbox(new MailboxPath("#namespace", USER_1, "Other"), session);
         mailboxManager.createMailbox(MailboxPath.inbox(session), session);
         List<MailboxMetaData> metaDatas = mailboxManager.search(new MailboxQuery(new MailboxPath("#private", USER_1, ""), "*", '.'), session);
@@ -254,7 +253,7 @@ public abstract class MailboxManagerTest {
 
     @Test
     public void searchShouldNotReturnResultsFromOtherUsers() throws Exception {
-        session = mailboxManager.createSystemSession(USER_1, LoggerFactory.getLogger("Mock"));
+        session = mailboxManager.createSystemSession(USER_1);
         mailboxManager.createMailbox(new MailboxPath("#namespace", USER_2, "Other"), session);
         mailboxManager.createMailbox(MailboxPath.inbox(session), session);
         List<MailboxMetaData> metaDatas = mailboxManager.search(new MailboxQuery(new MailboxPath("#private", USER_1, ""), "*", '.'), session);
@@ -265,7 +264,7 @@ public abstract class MailboxManagerTest {
     @Test
     public void updateAnnotationsShouldUpdateStoredAnnotation() throws MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
 
@@ -278,7 +277,7 @@ public abstract class MailboxManagerTest {
     @Test
     public void updateAnnotationsShouldDeleteAnnotationWithNilValue() throws BadCredentialsException, MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
 
@@ -292,7 +291,7 @@ public abstract class MailboxManagerTest {
     public void updateAnnotationsShouldThrowExceptionIfMailboxDoesNotExist() throws MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
         expected.expect(MailboxException.class);
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
 
         mailboxManager.updateAnnotations(inbox, session, ImmutableList.of(PRIVATE_ANNOTATION));
@@ -301,7 +300,7 @@ public abstract class MailboxManagerTest {
     @Test
     public void getAnnotationsShouldReturnEmptyForNonStoredAnnotation() throws BadCredentialsException, MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
 
@@ -311,7 +310,7 @@ public abstract class MailboxManagerTest {
     @Test
     public void getAllAnnotationsShouldRetrieveStoredAnnotations() throws BadCredentialsException, MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
 
@@ -324,7 +323,7 @@ public abstract class MailboxManagerTest {
     public void getAllAnnotationsShouldThrowExceptionIfMailboxDoesNotExist() throws MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
         expected.expect(MailboxException.class);
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
 
         mailboxManager.getAllAnnotations(inbox, session);
@@ -333,7 +332,7 @@ public abstract class MailboxManagerTest {
     @Test
     public void getAnnotationsByKeysShouldRetrieveStoresAnnotationsByKeys() throws BadCredentialsException, MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
 
@@ -347,7 +346,7 @@ public abstract class MailboxManagerTest {
     public void getAnnotationsByKeysShouldThrowExceptionIfMailboxDoesNotExist() throws MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
         expected.expect(MailboxException.class);
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
 
         mailboxManager.getAnnotationsByKeys(inbox, session, ImmutableSet.of(PRIVATE_KEY));
@@ -356,7 +355,7 @@ public abstract class MailboxManagerTest {
     @Test
     public void getAnnotationsByKeysWithOneDepthShouldRetriveAnnotationsWithOneDepth() throws BadCredentialsException, MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
 
@@ -370,7 +369,7 @@ public abstract class MailboxManagerTest {
     public void getAnnotationsByKeysWithAllDepthShouldThrowExceptionWhenMailboxDoesNotExist() throws BadCredentialsException, MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
         expected.expect(MailboxException.class);
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
 
         mailboxManager.getAnnotationsByKeysWithAllDepth(inbox, session, ImmutableSet.of(PRIVATE_KEY));
@@ -379,7 +378,7 @@ public abstract class MailboxManagerTest {
     @Test
     public void getAnnotationsByKeysWithAllDepthShouldRetriveAnnotationsWithAllDepth() throws BadCredentialsException, MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
 
@@ -393,7 +392,7 @@ public abstract class MailboxManagerTest {
     public void updateAnnotationsShouldThrowExceptionIfAnnotationDataIsOverLimitation() throws MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
         expected.expect(AnnotationException.class);
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
 
@@ -403,7 +402,7 @@ public abstract class MailboxManagerTest {
     @Test
     public void shouldUpdateAnnotationWhenRequestCreatesNewAndMailboxIsNotOverLimit() throws MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
 
@@ -419,7 +418,7 @@ public abstract class MailboxManagerTest {
     public void updateAnnotationsShouldThrowExceptionIfRequestCreateNewButMailboxIsOverLimit() throws MailboxException {
         Assume.assumeTrue(mailboxManager.hasCapability(MailboxCapabilities.Annotation));
         expected.expect(MailboxException.class);
-        session = mailboxManager.createSystemSession(USER_2, LoggerFactory.getLogger("Test"));
+        session = mailboxManager.createSystemSession(USER_2);
         MailboxPath inbox = MailboxPath.inbox(session);
         mailboxManager.createMailbox(inbox, session);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java
index 8df6b53..590c5aa 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/ManagerTestResources.java
@@ -19,33 +19,30 @@
 
 package org.apache.james.mailbox.manager;
 
+import java.io.ByteArrayInputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.Calendar;
+
+import javax.mail.Flags;
+
 import org.apache.james.mailbox.FlagsBuilder;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.quota.MaxQuotaManager;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.MessageUid;
-import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.acl.GroupMembershipResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.mock.MockMail;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.quota.MaxQuotaManager;
+import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.mail.Flags;
-import java.io.ByteArrayInputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.Calendar;
 
 /**
  * Provide an initialized Mailbox environment where we can run managers tests
  */
 public class ManagerTestResources {
 
-    private static final Logger LOG = LoggerFactory.getLogger(ManagerTestResources.class);
-
     public static final String USER = "user@domain.org";
     public static final String USER_PASS = "pass";
 
@@ -72,7 +69,7 @@ public class ManagerTestResources {
         quotaRootResolver = integrationResources.createQuotaRootResolver(mailboxManager);
         quotaManager = integrationResources.createQuotaManager(maxQuotaManager, mailboxManager);
         integrationResources.init();
-        session = mailboxManager.login(USER, USER_PASS, LOG);
+        session = mailboxManager.login(USER, USER_PASS);
         inbox = MailboxPath.inbox(session);
         subFolder = new MailboxPath(inbox, "INBOX.SUB");
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxManager.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxManager.java
index 23017e1..c0c4dd1 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxManager.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxManager.java
@@ -29,7 +29,6 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxPath;
-import org.slf4j.LoggerFactory;
 
 /**
  * A mock mailbox manager.
@@ -114,7 +113,7 @@ public class MockMailboxManager {
                 
                 String folderName = "INBOX";
 
-                MailboxSession mailboxSession = getMockMailboxManager().createSystemSession(user, LoggerFactory.getLogger("mailboxmanager-test"));
+                MailboxSession mailboxSession = getMockMailboxManager().createSystemSession(user);
                 mailboxPath = new MailboxPath("#private", user, folderName);
                 createMailbox(mailboxSession, mailboxPath);
                 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
index a622d09..0a01ab5 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/mock/MockMailboxSession.java
@@ -35,7 +35,6 @@ public class MockMailboxSession implements MailboxSession{
     private final User user;
     private boolean close;
     private final Map<Object, Object> attrs = new HashMap<>();
-    private final Logger log = LoggerFactory.getLogger("MockLog");
     private final static Random RANDOM = new Random();
 
     private final long sessionId = RANDOM.nextLong();
@@ -78,10 +77,6 @@ public class MockMailboxSession implements MailboxSession{
         return attrs;
     }
 
-    public Logger getLog() {
-        return log;
-    }
-
     public String getOtherUsersSpace() {
         return null;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
index 2d4c6c1..e7561be 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
@@ -43,8 +43,6 @@ import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
 import org.apache.james.mailbox.store.quota.ListeningCurrentQuotaUpdater;
 import org.apache.james.mailbox.store.quota.StoreCurrentQuotaManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Charsets;
 import com.google.common.base.Throwables;
@@ -52,7 +50,6 @@ import com.google.common.base.Throwables;
 public class CassandraMessageIdManagerTestSystem extends MessageIdManagerTestSystem {
 
     private static final byte[] MESSAGE_CONTENT = "subject: any\n\nbody".getBytes(Charsets.UTF_8);
-    private static final Logger LOGGER = LoggerFactory.getLogger(CassandraMessageIdManagerTestSystem.class);
 
     public static MessageIdManagerTestSystem createTestingData(QuotaManager quotaManager, MailboxEventDispatcher dispatcher) throws Exception {
         CassandraMailboxSessionMapperFactory mapperFactory = CassandraTestSystemFixture.createMapperFactory();
@@ -70,7 +67,7 @@ public class CassandraMessageIdManagerTestSystem extends MessageIdManagerTestSys
         ListeningCurrentQuotaUpdater listeningCurrentQuotaUpdater = new ListeningCurrentQuotaUpdater(
             (StoreCurrentQuotaManager) currentQuotaManager,
             mailboxManager.getQuotaRootResolver());
-        mailboxManager.addGlobalListener(listeningCurrentQuotaUpdater, mailboxManager.createSystemSession("System", LOGGER));
+        mailboxManager.addGlobalListener(listeningCurrentQuotaUpdater, mailboxManager.createSystemSession("System"));
         return new CassandraMessageIdManagerTestSystem(CassandraTestSystemFixture.createMessageIdManager(mapperFactory, quotaManager, mailboxManager.getEventDispatcher()),
             new CassandraMessageId.Factory(),
             mapperFactory,

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/AbstractJCRScalingMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/AbstractJCRScalingMapper.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/AbstractJCRScalingMapper.java
index 1750b81..a0c1521 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/AbstractJCRScalingMapper.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/AbstractJCRScalingMapper.java
@@ -26,7 +26,6 @@ import org.apache.jackrabbit.commons.JcrUtils;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.store.transaction.TransactionalMapper;
-import org.slf4j.Logger;
 
 /**
  * Abstract base class for Mapper's which support scaling. This supports Level 1 Implementations of JCR. So no real transaction management is used. 
@@ -49,15 +48,6 @@ public abstract class AbstractJCRScalingMapper extends TransactionalMapper imple
         this.mSession = mSession;
         this.repository = repository;
     }
-
-    /**
-     * Return the logger
-     * 
-     * @return logger
-     */
-    protected Logger getLogger() {
-        return mSession.getLog();
-    }
     
     /**
      * Return the JCR Session

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxManager.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxManager.java
index e60ba33..c330140 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxManager.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMailboxManager.java
@@ -83,7 +83,7 @@ public class JCRMailboxManager extends StoreMailboxManager implements JCRImapCon
 
     @Override
     protected Mailbox doCreateMailbox(MailboxPath path, MailboxSession session) throws MailboxException {
-        return new org.apache.james.mailbox.jcr.mail.model.JCRMailbox(path, randomUidValidity(), logger);
+        return new org.apache.james.mailbox.jcr.mail.model.JCRMailbox(path, randomUidValidity());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java
index ee76bab..7307087 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRMessageManager.java
@@ -69,7 +69,7 @@ public class JCRMessageManager extends StoreMessageManager {
     protected MailboxMessage createMessage(Date internalDate, int size, int bodyStartOctet, SharedInputStream content, Flags flags, PropertyBuilder propertyBuilder, List<MessageAttachment> attachments) throws MailboxException{
         JCRId mailboxId = (JCRId) getMailboxEntity().getMailboxId();
         return new JCRMailboxMessage(mailboxId, getMessageIdFactory().generate(), internalDate,
-                size, flags, content, bodyStartOctet, propertyBuilder, log);
+                size, flags, content, bodyStartOctet, propertyBuilder);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRSubscriptionManager.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRSubscriptionManager.java
index 7c5827b..bf4960d 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRSubscriptionManager.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/JCRSubscriptionManager.java
@@ -22,15 +22,11 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.jcr.user.model.JCRSubscription;
 import org.apache.james.mailbox.store.StoreSubscriptionManager;
 import org.apache.james.mailbox.store.user.model.Subscription;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * JCR implementation of a SubscriptionManager
  */
 public class JCRSubscriptionManager extends StoreSubscriptionManager implements JCRImapConstants {
-    
-    private final Logger logger = LoggerFactory.getLogger(JCRSubscriptionManager.class);
 
     public JCRSubscriptionManager(JCRMailboxSessionMapperFactory mapperFactory) {
         super(mapperFactory);
@@ -38,6 +34,6 @@ public class JCRSubscriptionManager extends StoreSubscriptionManager implements
 
     @Override
     protected Subscription createSubscription(MailboxSession session, String mailbox) {
-        return new JCRSubscription(session.getUser().getUserName(), mailbox, logger);
+        return new JCRSubscription(session.getUser().getUserName(), mailbox);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
index 0e0be80..901a268 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
@@ -52,7 +52,7 @@ import org.apache.james.mailbox.store.mail.model.Mailbox;
  */
 public class JCRMailboxMapper extends AbstractJCRScalingMapper implements MailboxMapper {
 
-	@SuppressWarnings("deprecation")
+    @SuppressWarnings("deprecation")
     private static final String XPATH_LANGUAGE = Query.XPATH;
 
     public JCRMailboxMapper(MailboxSessionJCRRepository repos, MailboxSession session, int scaling) {
@@ -99,7 +99,7 @@ public class JCRMailboxMapper extends AbstractJCRScalingMapper implements Mailbo
             QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
             NodeIterator it = result.getNodes();
             if (it.hasNext()) {
-                return new JCRMailbox(it.nextNode(), getLogger());
+                return new JCRMailbox(it.nextNode());
             }
             throw new MailboxNotFoundException(path);
         } catch (PathNotFoundException e) {
@@ -113,7 +113,7 @@ public class JCRMailboxMapper extends AbstractJCRScalingMapper implements Mailbo
     public Mailbox findMailboxById(MailboxId id) throws MailboxException, MailboxNotFoundException {
         try {
             Node node = getSession().getNodeByIdentifier(id.serialize());
-            return new JCRMailbox(node, getLogger());
+            return new JCRMailbox(node);
         } catch (PathNotFoundException e) {
             throw new MailboxNotFoundException(id.serialize());
         } catch (RepositoryException e) {
@@ -142,7 +142,7 @@ public class JCRMailboxMapper extends AbstractJCRScalingMapper implements Mailbo
             QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
             NodeIterator it = result.getNodes();
             while (it.hasNext()) {
-                mailboxList.add(new JCRMailbox(it.nextNode(), getLogger()));
+                mailboxList.add(new JCRMailbox(it.nextNode()));
             }
         } catch (PathNotFoundException e) {
             // nothing todo
@@ -242,7 +242,7 @@ public class JCRMailboxMapper extends AbstractJCRScalingMapper implements Mailbo
             QueryResult result = manager.createQuery(queryString, XPATH_LANGUAGE).execute();
             NodeIterator it = result.getNodes();
             while (it.hasNext()) {
-                mList.add(new JCRMailbox(it.nextNode(), getLogger()));
+                mList.add(new JCRMailbox(it.nextNode()));
             }
             return mList;
         } catch (RepositoryException e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java
index e721389..8eac455 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMessageMapper.java
@@ -56,6 +56,8 @@ import org.apache.james.mailbox.store.mail.UidProvider;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.mailbox.store.mail.utils.ApplicableFlagCalculator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * JCR implementation of a {@link MessageMapper}. The implementation store each
@@ -64,6 +66,8 @@ import org.apache.james.mailbox.store.mail.utils.ApplicableFlagCalculator;
  */
 public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapConstants {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(JCRMessageMapper.class);
+
     @SuppressWarnings("deprecation")
     private static final String XPATH_LANGUAGE = Query.XPATH;
 
@@ -349,7 +353,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
 
             NodeIterator iterator = result.getNodes();
             while (iterator.hasNext()) {
-                list.add(new JCRMailboxMessage(iterator.nextNode(), mailboxSession.getLog()).getUid());
+                list.add(new JCRMailboxMessage(iterator.nextNode(), LOGGER).getUid());
             }
             return list;
 
@@ -372,7 +376,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
 
             NodeIterator iterator = result.getNodes();
             if (iterator.hasNext()) {
-                return new JCRMailboxMessage(iterator.nextNode(), mailboxSession.getLog()).getUid();
+                return new JCRMailboxMessage(iterator.nextNode(), LOGGER).getUid();
             } else {
                 return null;
             }
@@ -444,7 +448,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
             // A copy of a message is recent
             // See MAILBOX-85
             node.setProperty(JCRMailboxMessage.RECENT_PROPERTY, true);
-            return new SimpleMessageMetaData(new JCRMailboxMessage(node, mailboxSession.getLog()));
+            return new SimpleMessageMetaData(new JCRMailboxMessage(node, LOGGER));
         } catch (RepositoryException e) {
             throw new MailboxException("Unable to copy message " + original + " in mailbox " + mailbox, e);
         }
@@ -565,7 +569,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
 
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {
-            list.add(new JCRMailboxMessage(iterator.nextNode(), mailboxSession.getLog()));
+            list.add(new JCRMailboxMessage(iterator.nextNode(), LOGGER));
         }
         return list;
     }
@@ -582,7 +586,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
         QueryResult result = query.execute();
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {
-            list.add(new JCRMailboxMessage(iterator.nextNode(), mailboxSession.getLog()));
+            list.add(new JCRMailboxMessage(iterator.nextNode(), LOGGER));
         }
         return list;
     }
@@ -602,7 +606,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
 
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {
-            list.add(new JCRMailboxMessage(iterator.nextNode(), mailboxSession.getLog()));
+            list.add(new JCRMailboxMessage(iterator.nextNode(), LOGGER));
         }
         return list;
     }
@@ -621,7 +625,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
 
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {
-            list.add(new JCRMailboxMessage(iterator.nextNode(), mailboxSession.getLog()));
+            list.add(new JCRMailboxMessage(iterator.nextNode(), LOGGER));
         }
         return list;
     }
@@ -638,7 +642,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
 
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {
-            list.add(new JCRMailboxMessage(iterator.nextNode(), mailboxSession.getLog()));
+            list.add(new JCRMailboxMessage(iterator.nextNode(), LOGGER));
         }
         return list;
     }
@@ -655,7 +659,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
 
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {
-            JCRMailboxMessage member = new JCRMailboxMessage(iterator.nextNode(), mailboxSession.getLog());
+            JCRMailboxMessage member = new JCRMailboxMessage(iterator.nextNode(), LOGGER);
             list.add(member);
         }
         return list;
@@ -673,7 +677,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
 
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {
-            list.add(new JCRMailboxMessage(iterator.nextNode(), mailboxSession.getLog()));
+            list.add(new JCRMailboxMessage(iterator.nextNode(), LOGGER));
         }
         return list;
     }
@@ -689,7 +693,7 @@ public class JCRMessageMapper extends AbstractMessageMapper implements JCRImapCo
 
         NodeIterator iterator = result.getNodes();
         while (iterator.hasNext()) {
-            JCRMailboxMessage member = new JCRMailboxMessage(iterator.nextNode(), mailboxSession.getLog());
+            JCRMailboxMessage member = new JCRMailboxMessage(iterator.nextNode(), LOGGER);
             list.add(member);
         }
         return list;

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailbox.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailbox.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailbox.java
index 7b570d5..21b3ff5 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailbox.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailbox.java
@@ -34,6 +34,7 @@ import org.apache.james.mailbox.model.SimpleMailboxACL;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxUtil;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -41,6 +42,8 @@ import org.slf4j.Logger;
  */
 public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(JCRMailbox.class);
+
     private static final String TAB = " ";
 
     
@@ -53,7 +56,6 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
 
     private String name;
     private long uidValidity;
-    private final Logger logger;
     private Node node;
 
 
@@ -63,21 +65,15 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
     private long highestKnownModSeq;
     
     
-    public JCRMailbox( final MailboxPath path, long uidValidity, Logger logger) {
+    public JCRMailbox(final MailboxPath path, long uidValidity) {
         this.name = path.getName();
         this.namespace = path.getNamespace();
         this.user = path.getUser();
         this.uidValidity = uidValidity;
-        this.logger = logger;
     }
     
-    public JCRMailbox( final Node node, Logger logger) {
+    public JCRMailbox(final Node node) {
         this.node = node;
-        this.logger = logger;
-    }
-    
-    public Logger getLog() {
-        return logger;
     }
 
     @Override
@@ -94,7 +90,7 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
             try {
                 return node.getProperty(NAME_PROPERTY).getString();
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + NAME_PROPERTY, e);
+                LOGGER.error("Unable to access property " + NAME_PROPERTY, e);
             }
         }
         return name;
@@ -109,7 +105,7 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
             try {
                 return node.getProperty(UIDVALIDITY_PROPERTY).getLong();
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + UIDVALIDITY_PROPERTY, e);
+                LOGGER.error("Unable to access property " + UIDVALIDITY_PROPERTY, e);
             }
         }
         return uidValidity;
@@ -127,7 +123,7 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
                 // See https://issues.apache.org/jira/browse/IMAP-162
                 node.getSession().move(node.getPath(), node.getParent().getPath() + NODE_DELIMITER + Text.escapePath(name));
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + NAME_PROPERTY, e);
+                LOGGER.error("Unable to access property " + NAME_PROPERTY, e);
             }
         } else {
             this.name = name;
@@ -211,7 +207,7 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
             try {
                 return JCRId.of(node.getIdentifier());
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + JcrConstants.JCR_UUID, e);
+                LOGGER.error("Unable to access property " + JcrConstants.JCR_UUID, e);
             }
         }
         return null;      
@@ -230,7 +226,7 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
             try {
                 return node.getProperty(NAMESPACE_PROPERTY).getString();
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + NAMESPACE_PROPERTY, e);
+                LOGGER.error("Unable to access property " + NAMESPACE_PROPERTY, e);
             }
         }
         return namespace;
@@ -250,7 +246,7 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
                     return user;
                 }
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + USER_PROPERTY, e);
+                LOGGER.error("Unable to access property " + USER_PROPERTY, e);
             }
         }
         return user;
@@ -265,7 +261,7 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
             try {
                 node.setProperty(NAMESPACE_PROPERTY, namespace);
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + NAMESPACE_PROPERTY, e);
+                LOGGER.error("Unable to access property " + NAMESPACE_PROPERTY, e);
             }
         } else {
             this.namespace = namespace;
@@ -285,7 +281,7 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
                 }
                 node.setProperty(USER_PROPERTY, user);
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + NAME_PROPERTY, e);
+                LOGGER.error("Unable to access property " + NAME_PROPERTY, e);
             }
         } else {
             this.user = user;
@@ -297,7 +293,7 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
             try {
                 return node.getProperty(LASTUID_PROPERTY).getLong();
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + LASTUID_PROPERTY, e);
+                LOGGER.error("Unable to access property " + LASTUID_PROPERTY, e);
             }
         }
         return lastKnownUid;
@@ -308,7 +304,7 @@ public class JCRMailbox implements Mailbox, JCRImapConstants, Persistent{
             try {
                 return node.getProperty(HIGHESTMODSEQ_PROPERTY).getLong();
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + HIGHESTMODSEQ_PROPERTY, e);
+                LOGGER.error("Unable to access property " + HIGHESTMODSEQ_PROPERTY, e);
             }
         }
         return highestKnownModSeq;

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailboxMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailboxMessage.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailboxMessage.java
index 2e7c233..9bc69f3 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailboxMessage.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRMailboxMessage.java
@@ -54,15 +54,17 @@ import org.apache.james.mailbox.store.mail.model.Property;
 import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
 import org.apache.james.mailbox.store.search.comparator.UidComparator;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.github.steveash.guavate.Guavate;
 
 public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Persistent {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(JCRMailboxMessage.class);
+
     private static final Comparator<MailboxMessage> MESSAGE_UID_COMPARATOR = new UidComparator();
     
     private Node node;
-    private final Logger logger;
     private SharedInputStream content;
     private String mediaType;
     private Long textualLineCount;
@@ -108,18 +110,16 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
     public final static String MODSEQ_PROPERTY = "jamesMailbox:modSeq";
 
     public JCRMailboxMessage(Node node, Logger logger) {
-        this.logger= logger;
         this.node = node;
     }
     
     public JCRMailboxMessage(JCRId mailboxUUID, MessageId messageId, Date internalDate, int size, Flags flags, SharedInputStream content,
-                             int bodyStartOctet, PropertyBuilder propertyBuilder, Logger logger) {
+                             int bodyStartOctet, PropertyBuilder propertyBuilder) {
         super();
         this.mailboxUUID = mailboxUUID;
         this.messageId = messageId;
         this.internalDate = internalDate;
         this.size = size;
-        this.logger = logger;
         setFlags(flags);
         this.content = content;
        
@@ -130,7 +130,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
         final List<Property> properties = propertyBuilder.toProperties();
         this.properties = new ArrayList<>(properties.size());
         for (Property property:properties) {
-            this.properties.add(new JCRProperty(property,logger));
+            this.properties.add(new JCRProperty(property));
         }
         
     }
@@ -138,7 +138,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
     /**
      * Create a copy of the given message
      */
-    public JCRMailboxMessage(JCRId mailboxUUID, MessageUid uid, MessageId messageId, long modSeq, JCRMailboxMessage message, Logger logger) throws MailboxException {
+    public JCRMailboxMessage(JCRId mailboxUUID, MessageUid uid, MessageId messageId, long modSeq, JCRMailboxMessage message) throws MailboxException {
         this.mailboxUUID = mailboxUUID;
         this.messageId = messageId;
         this.internalDate = message.getInternalDate();
@@ -146,7 +146,6 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
         setFlags(message.createFlags());
         this.uid = uid;
         this.modSeq = modSeq;
-        this.logger = logger;
         try {
             this.content = new SharedByteArrayInputStream(IOUtils.toByteArray(message.getFullContent()));
         } catch (IOException e) {
@@ -162,7 +161,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
         final List<Property> properties = pBuilder.toProperties();
         this.properties = new ArrayList<>(properties.size());
         for (Property property:properties) {
-            this.properties.add(new JCRProperty(property,  logger));
+            this.properties.add(new JCRProperty(property));
         }
     }
 
@@ -181,7 +180,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
             try {
                 return node.getProperty(SIZE_PROPERTY).getLong();
             } catch (RepositoryException e) {
-                logger.error("Unable to retrieve property " + SIZE_PROPERTY, e);
+                LOGGER.error("Unable to retrieve property " + SIZE_PROPERTY, e);
 
             }
             return 0;
@@ -195,7 +194,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
             try {
                 return node.getNode(JcrConstants.JCR_CONTENT).getProperty(JcrConstants.JCR_MIMETYPE).getString();
             } catch (RepositoryException e) {
-                logger.error("Unable to retrieve node " + JcrConstants.JCR_MIMETYPE, e);
+                LOGGER.error("Unable to retrieve node " + JcrConstants.JCR_MIMETYPE, e);
             }
             return null;
         }
@@ -209,11 +208,11 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                 List<Property> properties = new ArrayList<>();
                 NodeIterator nodeIt = node.getNodes("messageProperty");
                 while (nodeIt.hasNext()) {
-                    properties.add(new JCRProperty(nodeIt.nextNode(), logger));
+                    properties.add(new JCRProperty(nodeIt.nextNode()));
                 }
                 return properties;
             } catch (RepositoryException e) {
-                logger.error("Unable to retrieve nodes messageProperty", e);
+                LOGGER.error("Unable to retrieve nodes messageProperty", e);
             }
         }
         return new ArrayList<>(properties);
@@ -225,7 +224,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
             try {
                 return node.getProperty(SUBTYPE_PROPERTY).getString();
             } catch (RepositoryException e) {
-                logger.error("Unable to retrieve node " + SUBTYPE_PROPERTY, e);
+                LOGGER.error("Unable to retrieve node " + SUBTYPE_PROPERTY, e);
             }
             return null;
         }
@@ -245,7 +244,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                     return node.getProperty(TEXTUAL_LINE_COUNT_PROPERTY).getLong();
                 } 
             } catch (RepositoryException e) {
-                logger.error("Unable to retrieve property " + TEXTUAL_LINE_COUNT_PROPERTY, e);
+                LOGGER.error("Unable to retrieve property " + TEXTUAL_LINE_COUNT_PROPERTY, e);
 
             }
             return null;
@@ -268,7 +267,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
             try {
                 return node.getIdentifier();
             } catch (RepositoryException e) {
-                logger.error("Unable to access UUID", e);
+                LOGGER.error("Unable to access UUID", e);
             }
         }
         return null;
@@ -318,7 +317,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
 
             List<Property> currentProperties = getProperties();
             List<Property> newProperties = currentProperties.stream()
-                .map(prop -> new JCRProperty(prop, logger))
+                .map(JCRProperty::new)
                 .collect(Guavate.toImmutableList());
             // remove old properties, we will add a bunch of new ones
             NodeIterator iterator = node.getNodes("messageProperty");
@@ -343,7 +342,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
             try {
                 return (int)node.getProperty(BODY_START_OCTET_PROPERTY).getLong();
             } catch (RepositoryException e) {
-                logger.error("Unable to retrieve property " + TEXTUAL_LINE_COUNT_PROPERTY, e);
+                LOGGER.error("Unable to retrieve property " + TEXTUAL_LINE_COUNT_PROPERTY, e);
 
             }
             return 0;
@@ -402,7 +401,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                 }
 
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + FLAGGED_PROPERTY,
+                LOGGER.error("Unable to access property " + FLAGGED_PROPERTY,
                                 e);
             }
             return null;
@@ -416,7 +415,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
             try {
                 return JCRId.of(node.getProperty(MAILBOX_UUID_PROPERTY).getString());
             } catch (RepositoryException e) {
-                logger.error("Unable to access property "
+                LOGGER.error("Unable to access property "
                         + MAILBOX_UUID_PROPERTY, e);
             }
         }
@@ -431,7 +430,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                 return MessageUid.of(node.getProperty(UID_PROPERTY).getLong());
 
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + UID_PROPERTY, e);
+                LOGGER.error("Unable to access property " + UID_PROPERTY, e);
             }
             return MessageUid.MIN_VALUE;
         }
@@ -447,7 +446,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                 }
 
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + ANSWERED_PROPERTY,
+                LOGGER.error("Unable to access property " + ANSWERED_PROPERTY,
                         e);
             }
             return false;
@@ -464,7 +463,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                 }
 
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + DELETED_PROPERTY,
+                LOGGER.error("Unable to access property " + DELETED_PROPERTY,
                                 e);
             }
             return false;
@@ -480,7 +479,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                     return node.getProperty(DRAFT_PROPERTY).getBoolean();
                 }
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + DRAFT_PROPERTY, e);
+                LOGGER.error("Unable to access property " + DRAFT_PROPERTY, e);
             }
             return false;
         }
@@ -495,7 +494,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                     return node.getProperty(FLAGGED_PROPERTY).getBoolean();
                 }
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + FLAGGED_PROPERTY,
+                LOGGER.error("Unable to access property " + FLAGGED_PROPERTY,
                                 e);
             }
             return false;
@@ -511,7 +510,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                     return node.getProperty(RECENT_PROPERTY).getBoolean();
                 }
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + RECENT_PROPERTY, e);
+                LOGGER.error("Unable to access property " + RECENT_PROPERTY, e);
             }
             return false;
         }
@@ -525,7 +524,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                 return node.getProperty(SEEN_PROPERTY).getBoolean();
 
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + SEEN_PROPERTY, e);
+                LOGGER.error("Unable to access property " + SEEN_PROPERTY, e);
             }
             return false;
         }
@@ -550,7 +549,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                         flags.contains(Flags.Flag.SEEN));
                 node.setProperty(USERFLAGS_PROPERTY, flags.getUserFlags());
             } catch (RepositoryException e) {
-                logger.error("Unable to set flags", e);
+                LOGGER.error("Unable to set flags", e);
             }
         } else {
             answered = flags.contains(Flags.Flag.ANSWERED);
@@ -574,7 +573,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                 node.setProperty(RECENT_PROPERTY, false);
 
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + RECENT_PROPERTY, e);
+                LOGGER.error("Unable to access property " + RECENT_PROPERTY, e);
             }
         } else {
             recent = false;
@@ -587,7 +586,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
             try {
                 return node.getIdentifier();
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + JcrConstants.JCR_UUID, e);
+                LOGGER.error("Unable to access property " + JcrConstants.JCR_UUID, e);
             }
         }
         return null;      
@@ -648,7 +647,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
                 return node.getProperty(MODSEQ_PROPERTY).getLong();
 
             } catch (RepositoryException e) {
-                logger.error("Unable to access property " + MODSEQ_PROPERTY, e);
+                LOGGER.error("Unable to access property " + MODSEQ_PROPERTY, e);
             }
             return 0;
         }
@@ -661,7 +660,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
             try {
                 node.setProperty(MODSEQ_PROPERTY, modSeq);
             } catch (RepositoryException e) {
-                logger.error("Unable to set mod-sequence", e);
+                LOGGER.error("Unable to set mod-sequence", e);
             }
         } else {
             this.modSeq = modSeq;
@@ -674,7 +673,7 @@ public class JCRMailboxMessage implements MailboxMessage, JCRImapConstants, Pers
             try {
                 node.setProperty(UID_PROPERTY, uid.asLong());
             } catch (RepositoryException e) {
-                logger.error("Unable to set uid", e);
+                LOGGER.error("Unable to set uid", e);
             }
         } else {
             this.uid = uid;

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRProperty.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRProperty.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRProperty.java
index 156af51..2233417 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRProperty.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/JCRProperty.java
@@ -25,6 +25,7 @@ import org.apache.james.mailbox.jcr.JCRImapConstants;
 import org.apache.james.mailbox.jcr.Persistent;
 import org.apache.james.mailbox.store.mail.model.Property;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * JCR implementation of {@link Property}
@@ -32,8 +33,9 @@ import org.slf4j.Logger;
  */
 public class JCRProperty implements JCRImapConstants, Persistent, Property {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(JCRProperty.class);
+
     private Node node;
-    private final Logger logger;
     private String namespace;
     private String localName;
     private String value;
@@ -44,20 +46,18 @@ public class JCRProperty implements JCRImapConstants, Persistent, Property {
     public final static String VALUE_PROPERTY =  "jamesMailbox:propertyValue";
     public final static String ORDER_PROPERTY =  "jamesMailbox:propertyOrder";
 
-    public JCRProperty(Node node, Logger logger) {
+    public JCRProperty(Node node) {
         this.node = node;
-        this.logger = logger;
     }
 
-    public JCRProperty(String namespace, String localName, String value, Logger logger) {
+    public JCRProperty(String namespace, String localName, String value) {
         this.namespace = namespace;
         this.localName = localName;
         this.value = value;
-        this.logger = logger;
     }
 
-    public JCRProperty(Property property, Logger logger) {
-        this(property.getNamespace(), property.getLocalName(), property.getValue(), logger);
+    public JCRProperty(Property property) {
+        this(property.getNamespace(), property.getLocalName(), property.getValue());
     }
     /*
      * (non-Javadoc)
@@ -71,7 +71,7 @@ public class JCRProperty implements JCRImapConstants, Persistent, Property {
             try {
                 return (int)node.getProperty(ORDER_PROPERTY).getLong();
             } catch (RepositoryException e) {
-                logger.error("Unable to access Property " + ORDER_PROPERTY, e);
+                LOGGER.error("Unable to access Property " + ORDER_PROPERTY, e);
             }
             return 0;
         }
@@ -97,7 +97,7 @@ public class JCRProperty implements JCRImapConstants, Persistent, Property {
             try {
                 return node.getProperty(LOCALNAME_PROPERTY).getString();
             } catch (RepositoryException e) {
-                logger.error("Unable to access Property " + LOCALNAME_PROPERTY, e);
+                LOGGER.error("Unable to access Property " + LOCALNAME_PROPERTY, e);
             }
             return null;
         }
@@ -114,7 +114,7 @@ public class JCRProperty implements JCRImapConstants, Persistent, Property {
             try {
                 return node.getProperty(NAMESPACE_PROPERTY).getString();
             } catch (RepositoryException e) {
-                logger.error("Unable to access Property " + NAMESPACE_PROPERTY, e);
+                LOGGER.error("Unable to access Property " + NAMESPACE_PROPERTY, e);
             }
             return null;
         }
@@ -131,7 +131,7 @@ public class JCRProperty implements JCRImapConstants, Persistent, Property {
             try {
                 return node.getProperty(VALUE_PROPERTY).getString();
             } catch (RepositoryException e) {
-                logger.error("Unable to access Property " + VALUE_PROPERTY, e);
+                LOGGER.error("Unable to access Property " + VALUE_PROPERTY, e);
             }
             return null;
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/user/JCRSubscriptionMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/user/JCRSubscriptionMapper.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/user/JCRSubscriptionMapper.java
index f83ac54..8f592f9 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/user/JCRSubscriptionMapper.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/user/JCRSubscriptionMapper.java
@@ -107,7 +107,7 @@ public class JCRSubscriptionMapper extends AbstractJCRScalingMapper implements S
             
             NodeIterator nodeIt = result.getNodes();
             if (nodeIt.hasNext()) {
-                return new JCRSubscription(nodeIt.nextNode(), mailbox, getLogger());
+                return new JCRSubscription(nodeIt.nextNode(), mailbox);
             }
             
         } catch (PathNotFoundException e) {
@@ -140,7 +140,7 @@ public class JCRSubscriptionMapper extends AbstractJCRScalingMapper implements S
                 if (node.hasProperty(JCRSubscription.MAILBOXES_PROPERTY)) {
                     Value[] values = node.getProperty(JCRSubscription.MAILBOXES_PROPERTY).getValues();
                     for (Value value : values) {
-                        subList.add(new JCRSubscription(node, value.getString(), getLogger()));
+                        subList.add(new JCRSubscription(node, value.getString()));
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/user/model/JCRSubscription.java
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/user/model/JCRSubscription.java b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/user/model/JCRSubscription.java
index 18616d8..aa97c07 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/user/model/JCRSubscription.java
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/user/model/JCRSubscription.java
@@ -31,32 +31,32 @@ import org.apache.james.mailbox.jcr.JCRImapConstants;
 import org.apache.james.mailbox.jcr.Persistent;
 import org.apache.james.mailbox.store.user.model.Subscription;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * JCR implementation of a {@link Subscription}.
  */
 public class JCRSubscription implements Subscription, Persistent, JCRImapConstants {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JCRSubscription.class);
+
     private static final String TOSTRING_SEPARATOR = " ";
 
     public final static String USERNAME_PROPERTY = "jamesMailbox:user";
     public final static String MAILBOXES_PROPERTY =  "jamesMailbox:subscriptionMailboxes";
     
     private Node node;
-    private final Logger log;
     private final String mailbox;
     private String username;
 
     
-    public JCRSubscription(Node node, String mailbox, Logger log) {
+    public JCRSubscription(Node node, String mailbox) {
         this.node = node;
-        this.log = log;
         this.mailbox = mailbox;
     }
 
-    public JCRSubscription(String username, String mailbox, Logger log) {
+    public JCRSubscription(String username, String mailbox) {
         this.username = username;
         this.mailbox = mailbox;
-        this.log = log;
     }
 
     /*
@@ -78,7 +78,7 @@ public class JCRSubscription implements Subscription, Persistent, JCRImapConstan
             try {
                 return node.getProperty(USERNAME_PROPERTY).getString();
             } catch (RepositoryException e) {
-                log.error("Unable to access Property " + USERNAME_PROPERTY, e);
+                LOGGER.error("Unable to access Property " + USERNAME_PROPERTY, e);
             }
             return null;
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
----------------------------------------------------------------------
diff --git a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
index 2acaa37..319ad7d 100644
--- a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
+++ b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
@@ -119,6 +119,8 @@ import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.LockObtainFailedException;
 import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.Version;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
@@ -134,6 +136,7 @@ import com.google.common.collect.ImmutableSet;
  * @param 
  */
 public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
+    private static final Logger LOGGER = LoggerFactory.getLogger(LuceneMessageSearchIndex.class);
     private final static Date MAX_DATE;
     private final static Date MIN_DATE;
     
@@ -603,7 +606,7 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex {
                             sentDate =  cal.getTime();
                             
                         } catch (org.apache.james.mime4j.field.datetime.parser.ParseException e) {
-                            session.getLog().debug("Unable to parse Date header for proper indexing", e);
+                            LOGGER.debug("Unable to parse Date header for proper indexing", e);
                             // This should never happen anyway fallback to the already parsed field
                             sentDate = ((DateTimeField) f).getDate();
                         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
index a7fc8f7..dd1ee8e 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirFolder.java
@@ -52,10 +52,13 @@ import org.apache.james.mailbox.model.MailboxACL.MailboxACLEntryKey;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLRights;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SimpleMailboxACL;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 
 public class MaildirFolder {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MaildirFolder.class);
 
     public static final String VALIDITY_FILE = "james-uidvalidity";
     public static final String UIDLIST_FILE = "james-uidlist";
@@ -343,7 +346,7 @@ public class MaildirFolder {
                         int gap = line.indexOf(" ");
                         if (gap == -1) {
                             // there must be some issues in the file if no gap can be found
-                            session.getLog().info("Corrupted entry in uid-file " + uidList + " line " + lineNumber++);
+                            LOGGER.info("Corrupted entry in uid-file " + uidList + " line " + lineNumber++);
                             continue;
                         }
 
@@ -509,7 +512,7 @@ public class MaildirFolder {
                         if (gap == -1) {
                             // there must be some issues in the file if no gap can be found
                             // there must be some issues in the file if no gap can be found
-                            session.getLog().info("Corrupted entry in uid-file " + uidList + " line " + lines.size());
+                            LOGGER.info("Corrupted entry in uid-file " + uidList + " line " + lines.size());
                             continue;
                         }
 
@@ -636,7 +639,7 @@ public class MaildirFolder {
 
                     if (gap == -1) {
                         // there must be some issues in the file if no gap can be found
-                    	session.getLog().info("Corrupted entry in uid-file " + uidList + " line " + lineNumber++);
+                    	LOGGER.info("Corrupted entry in uid-file " + uidList + " line " + lineNumber++);
                         continue;
                     }
                     
@@ -860,7 +863,7 @@ public class MaildirFolder {
                     int gap = line.indexOf(" ");
                     if (gap == -1) {
                         // there must be some issues in the file if no gap can be found
-                        session.getLog().info("Corrupted entry in uid-file " + uidList + " line " + lineNumber++);
+                        LOGGER.info("Corrupted entry in uid-file " + uidList + " line " + lineNumber++);
                         continue;
                     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/1ff0af09/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
index f378d7f..4dbdc20 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
@@ -30,8 +30,6 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.QuotaRoot;
 import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator;
 import org.apache.james.mailbox.store.quota.StoreCurrentQuotaManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Preconditions;
 import com.google.common.cache.CacheBuilder;
@@ -40,8 +38,6 @@ import com.google.common.cache.LoadingCache;
 
 public class InMemoryCurrentQuotaManager implements StoreCurrentQuotaManager {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(InMemoryCurrentQuotaManager.class);
-
     private final LoadingCache<QuotaRoot, Entry> quotaCache;
 
     @Inject
@@ -49,7 +45,7 @@ public class InMemoryCurrentQuotaManager implements StoreCurrentQuotaManager {
         this.quotaCache = CacheBuilder.newBuilder().build(new CacheLoader<QuotaRoot, Entry>() {
             @Override
             public Entry load(QuotaRoot quotaRoot) throws Exception {
-                return new Entry(quotaCalculator.recalculateCurrentQuotas(quotaRoot, mailboxManager.createSystemSession(quotaRoot.getValue(), LOGGER)));
+                return new Entry(quotaCalculator.recalculateCurrentQuotas(quotaRoot, mailboxManager.createSystemSession(quotaRoot.getValue())));
             }
         });
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[19/38] james-project git commit: JAMES-2114 Remove LOGGER from IMAP Session API

Posted by bt...@apache.org.
JAMES-2114 Remove LOGGER from IMAP Session API


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f0170ded
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f0170ded
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f0170ded

Branch: refs/heads/master
Commit: f0170ded7f7fcd8413b6489891cefc8ab48ab18d
Parents: 1ff0af0
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 18:03:52 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:43 2017 +0700

----------------------------------------------------------------------
 .../james/mpt/host/JamesImapHostSystem.java     |   5 +-
 .../james/mpt/session/ImapSessionImpl.java      |  10 +-
 .../james/imap/api/process/ImapSession.java     |  11 -
 .../decode/base/AbstractImapCommandParser.java  |   4 +-
 .../imap/decode/main/DefaultImapDecoder.java    |  24 +-
 .../imap/decode/parser/SearchCommandParser.java |   5 +-
 .../imap/decode/parser/UidCommandParser.java    |   7 +-
 .../imap/encode/AnnotationResponseEncoder.java  |   8 +-
 .../james/imap/encode/FetchResponseEncoder.java |   9 +-
 .../james/imap/encode/base/EndImapEncoder.java  |  11 +-
 .../imap/main/AbstractImapRequestHandler.java   |  11 +-
 .../imap/processor/AbstractAuthProcessor.java   |  31 +--
 .../processor/AbstractMailboxProcessor.java     |  13 +-
 .../AbstractMessageRangeProcessor.java          |   9 +-
 .../processor/AbstractSelectionProcessor.java   |  10 +-
 .../james/imap/processor/AppendProcessor.java   |  11 +-
 .../imap/processor/AuthenticateProcessor.java   |   7 +-
 .../james/imap/processor/CloseProcessor.java    |   5 +-
 .../james/imap/processor/CreateProcessor.java   |  13 +-
 .../imap/processor/DeleteACLProcessor.java      |   5 +-
 .../james/imap/processor/DeleteProcessor.java   |  14 +-
 .../james/imap/processor/EnableProcessor.java   |   7 +-
 .../james/imap/processor/ExpungeProcessor.java  |   9 +-
 .../james/imap/processor/GetACLProcessor.java   |   5 +-
 .../imap/processor/GetAnnotationProcessor.java  |   8 +-
 .../james/imap/processor/IdleProcessor.java     |   7 +-
 .../james/imap/processor/LSubProcessor.java     |   5 +-
 .../james/imap/processor/ListProcessor.java     |   5 +-
 .../imap/processor/ListRightsProcessor.java     |   5 +-
 .../james/imap/processor/LogoutProcessor.java   |   5 +-
 .../james/imap/processor/MyRightsProcessor.java |   5 +-
 .../james/imap/processor/RenameProcessor.java   |  17 +-
 .../james/imap/processor/SearchProcessor.java   |  11 +-
 .../james/imap/processor/SetACLProcessor.java   |   5 +-
 .../imap/processor/SetAnnotationProcessor.java  |   9 +-
 .../james/imap/processor/StatusProcessor.java   |   9 +-
 .../james/imap/processor/StoreProcessor.java    |  13 +-
 .../imap/processor/SubscribeProcessor.java      |   7 +-
 .../imap/processor/SystemMessageProcessor.java  |  11 +-
 .../imap/processor/UnsubscribeProcessor.java    |   7 +-
 .../processor/base/SelectedMailboxImpl.java     |   5 +-
 .../processor/base/UnknownRequestProcessor.java |  11 +-
 .../imap/processor/fetch/EnvelopeBuilder.java   |  10 +-
 .../imap/processor/fetch/FetchProcessor.java    |  17 +-
 .../decode/main/ImapRequestStreamHandler.java   |  21 +-
 .../james/imap/decode/parser/MockLogger.java    | 225 -------------------
 .../parser/SearchCommandParserCharsetTest.java  |   2 -
 .../SearchCommandParserQuotedCharsetTest.java   |   4 +-
 .../encode/AnnotationResponseEncoderTest.java   |  11 +-
 .../james/imap/encode/FakeImapSession.java      |  11 +-
 .../james/imap/processor/CopyProcessorTest.java |   4 -
 .../processor/GetAnnotationProcessorTest.java   |   4 -
 .../james/imap/processor/MoveProcessorTest.java |   4 -
 .../imap/processor/SearchProcessorTest.java     |   7 +-
 .../processor/SetAnnotationProcessorTest.java   |   9 -
 .../james/imapserver/netty/IMAPServer.java      |  19 +-
 .../netty/ImapChannelUpstreamHandler.java       |  35 +--
 .../imapserver/netty/ImapIdleStateHandler.java  |   5 +-
 .../imapserver/netty/NettyImapSession.java      |  14 +-
 59 files changed, 291 insertions(+), 500 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
index b477ddf..bb1539f 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/host/JamesImapHostSystem.java
@@ -42,7 +42,6 @@ import org.apache.james.mpt.helper.ByteBufferInputStream;
 import org.apache.james.mpt.helper.ByteBufferOutputStream;
 import org.apache.james.mpt.session.ImapSessionImpl;
 import org.apache.james.user.memory.MemoryUsersRepository;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 
@@ -116,7 +115,7 @@ public abstract class JamesImapHostSystem implements ImapHostSystem {
             out = new ByteBufferOutputStream(continuation);
             in = new ByteBufferInputStream();
             handler = new ImapRequestStreamHandler(decoder, processor, encoder);
-            session = new ImapSessionImpl(LoggerFactory.getLogger("sessionLog"));
+            session = new ImapSessionImpl();
         }
 
         public String readLine() throws Exception {
@@ -133,7 +132,7 @@ public abstract class JamesImapHostSystem implements ImapHostSystem {
         }
 
         public void restart() throws Exception {
-            session = new ImapSessionImpl(LoggerFactory.getLogger("sessionLog"));
+            session = new ImapSessionImpl();
         }
 
         public void stop() throws Exception {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/session/ImapSessionImpl.java
----------------------------------------------------------------------
diff --git a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/session/ImapSessionImpl.java b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/session/ImapSessionImpl.java
index e726307..5c9d5e2 100644
--- a/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/session/ImapSessionImpl.java
+++ b/mpt/impl/imap-mailbox/core/src/main/java/org/apache/james/mpt/session/ImapSessionImpl.java
@@ -25,7 +25,6 @@ import org.apache.james.imap.api.ImapSessionState;
 import org.apache.james.imap.api.process.ImapLineHandler;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.api.process.SelectedMailbox;
-import org.slf4j.Logger;
 
 public class ImapSessionImpl implements ImapSession {
 
@@ -35,11 +34,8 @@ public class ImapSessionImpl implements ImapSession {
 
     private final Map<String, Object> attributesByKey;
 
-    private final Logger log;
-
-    public ImapSessionImpl(Logger log) {
+    public ImapSessionImpl() {
         this.attributesByKey = new ConcurrentHashMap<>();
-        this.log = log;
     }
 
     public void logout() {
@@ -90,10 +86,6 @@ public class ImapSessionImpl implements ImapSession {
         }
     }
 
-    public Logger getLog() {
-        return log;
-    }
-
     public boolean startTLS() {
         return false;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapSession.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapSession.java b/protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapSession.java
index 66a8bcb..8128285 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapSession.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/process/ImapSession.java
@@ -20,7 +20,6 @@
 package org.apache.james.imap.api.process;
 
 import org.apache.james.imap.api.ImapSessionState;
-import org.slf4j.Logger;
 
 /**
  * Encapsulates all state held for an ongoing Imap session, which commences when
@@ -32,16 +31,6 @@ import org.slf4j.Logger;
 public interface ImapSession {
 
     /**
-     * Gets the context sensitive log for this session. Understanding the
-     * context of a log message is an important comprehension aid when analying
-     * multi-threaded systems. Using this log allows context information to be
-     * associated.
-     * 
-     * @return context sensitive log, not null
-     */
-    Logger getLog();
-
-    /**
      * Logs out the session. Marks the connection for closure;
      */
     void logout();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java
index 062104f..14a8a2d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/base/AbstractImapCommandParser.java
@@ -83,8 +83,8 @@ public abstract class AbstractImapCommandParser implements MessagingImapCommandP
 
                 result = decode(command, request, tag, session);
             } catch (DecodingException e) {
-                if (session.getLog().isDebugEnabled()) {
-                    session.getLog().debug("Cannot parse protocol ", e);
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("Cannot parse protocol ", e);
                 }
                 result = statusResponseFactory.taggedBad(tag, command, e.getKey());
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/decode/main/DefaultImapDecoder.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/main/DefaultImapDecoder.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/main/DefaultImapDecoder.java
index 91bd2ab..a3e753f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/decode/main/DefaultImapDecoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/main/DefaultImapDecoder.java
@@ -29,6 +29,7 @@ import org.apache.james.imap.decode.ImapDecoder;
 import org.apache.james.imap.decode.ImapRequestLineReader;
 import org.apache.james.protocols.imap.DecodingException;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * {@link ImapDecoder} implementation which parse the data via lookup the right
@@ -36,6 +37,7 @@ import org.slf4j.Logger;
  * response will get generated via the {@link StatusResponseFactory}.
  */
 public class DefaultImapDecoder implements ImapDecoder {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DefaultImapDecoder.class);
 
     private final StatusResponseFactory responseFactory;
 
@@ -63,14 +65,12 @@ public class DefaultImapDecoder implements ImapDecoder {
      */
     public ImapMessage decode(ImapRequestLineReader request, ImapSession session) {
         ImapMessage message;
-        final Logger logger = session.getLog();
-
         try {
             final String tag = request.tag();
             message = decodeCommandTagged(request, tag, session);
         } catch (DecodingException e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Cannot parse tag", e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Cannot parse tag", e);
             }
             message = unknownCommand(null, session);
         }
@@ -79,15 +79,15 @@ public class DefaultImapDecoder implements ImapDecoder {
 
     private ImapMessage decodeCommandTagged(ImapRequestLineReader request, String tag, ImapSession session) {
         ImapMessage message;
-        if (session.getLog().isDebugEnabled()) {
-            session.getLog().debug("Got <tag>: " + tag);
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("Got <tag>: " + tag);
         }
         try {
             final String commandName = request.atom();
             message = decodeCommandNamed(request, tag, commandName, session);
         } catch (DecodingException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("Error during initial request parsing", e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Error during initial request parsing", e);
             }
             message = unknownCommand(tag, session);
         }
@@ -120,13 +120,13 @@ public class DefaultImapDecoder implements ImapDecoder {
 
     private ImapMessage decodeCommandNamed(ImapRequestLineReader request, String tag, String commandName, ImapSession session) {
         ImapMessage message;
-        if (session.getLog().isDebugEnabled()) {
-            session.getLog().debug("Got <command>: " + commandName);
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("Got <command>: " + commandName);
         }
         final ImapCommandParser command = imapCommands.getParser(commandName);
         if (command == null) {
-            if (session.getLog().isInfoEnabled()) {
-                session.getLog().info("Missing command implementation for commmand " + commandName);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Missing command implementation for commmand " + commandName);
             }
             message = unknownCommand(tag, session);
         } else {

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java
index 6adc7c2..b0dfbf2 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java
@@ -43,11 +43,14 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.ImapRequestLineReader;
 import org.apache.james.imap.message.request.SearchRequest;
 import org.apache.james.protocols.imap.DecodingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Parse SEARCH commands
  */
 public class SearchCommandParser extends AbstractUidCommandParser {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SearchCommandParser.class);
 
     public SearchCommandParser() {
         super(ImapCommand.selectedStateCommand(ImapConstants.SEARCH_COMMAND_NAME));
@@ -1022,7 +1025,7 @@ public class SearchCommandParser extends AbstractUidCommandParser {
 
             return new SearchRequest(command, new SearchOperation(finalKey, options), useUids, tag);
         } catch (IllegalCharsetNameException | UnsupportedCharsetException e) {
-            session.getLog().debug("Unable to decode request", e);
+            LOGGER.debug("Unable to decode request", e);
             return unsupportedCharset(tag, command);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UidCommandParser.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UidCommandParser.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UidCommandParser.java
index 3c19059..0a27d13 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UidCommandParser.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UidCommandParser.java
@@ -29,11 +29,14 @@ import org.apache.james.imap.decode.ImapCommandParserFactory;
 import org.apache.james.imap.decode.ImapRequestLineReader;
 import org.apache.james.imap.decode.base.AbstractImapCommandParser;
 import org.apache.james.protocols.imap.DecodingException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Parse UID commands
  */
 public class UidCommandParser extends AbstractImapCommandParser implements DelegatingImapCommandParser {
+    private static final Logger LOGGER = LoggerFactory.getLogger(UidCommandParser.class);
 
     private ImapCommandParserFactory parserFactory;
 
@@ -73,8 +76,8 @@ public class UidCommandParser extends AbstractImapCommandParser implements Deleg
         if (helperCommand == null || !(helperCommand instanceof AbstractUidCommandParser)) {
             throw new DecodingException(HumanReadableText.ILLEGAL_ARGUMENTS, "Invalid UID command: '" + commandName + "'");
         }
-        if (session.getLog().isDebugEnabled()) {
-            session.getLog().debug("Got <command>: UID " + commandName);
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("Got <command>: UID " + commandName);
         }
         final AbstractUidCommandParser uidEnabled = (AbstractUidCommandParser) helperCommand;
         return uidEnabled.decode(request, tag, true, session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/encode/AnnotationResponseEncoder.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/AnnotationResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/AnnotationResponseEncoder.java
index d3e14ea..9f7543c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/AnnotationResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/AnnotationResponseEncoder.java
@@ -22,15 +22,19 @@ package org.apache.james.imap.encode;
 import java.io.IOException;
 import java.util.List;
 
-import com.google.common.base.Optional;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.ImapMessage;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.encode.base.AbstractChainedImapEncoder;
 import org.apache.james.imap.message.response.AnnotationResponse;
 import org.apache.james.mailbox.model.MailboxAnnotation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Optional;
 
 public class AnnotationResponseEncoder extends AbstractChainedImapEncoder {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AnnotationResponseEncoder.class);
 
     public AnnotationResponseEncoder(ImapEncoder next) {
         super(next);
@@ -61,7 +65,7 @@ public class AnnotationResponseEncoder extends AbstractChainedImapEncoder {
 
     private void composeAnnotation(ImapResponseComposer composer, ImapSession session, MailboxAnnotation annotation) throws IOException {
         if (annotation.isNil()) {
-            session.getLog().warn("There is nil data of key {} on store: ", annotation.getKey().asString());
+            LOGGER.warn("There is nil data of key {} on store: ", annotation.getKey().asString());
         } else {
             composer.message(annotation.getKey().asString());
             composer.quote(annotation.getValue().or(""));

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/encode/FetchResponseEncoder.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/FetchResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/FetchResponseEncoder.java
index 53e5910..5ad9e1e 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/FetchResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/FetchResponseEncoder.java
@@ -38,8 +38,10 @@ import org.apache.james.imap.message.response.FetchResponse;
 import org.apache.james.imap.message.response.FetchResponse.Structure;
 import org.apache.james.mailbox.MessageUid;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class FetchResponseEncoder extends AbstractChainedImapEncoder {
+    private static final Logger LOGGER = LoggerFactory.getLogger(FetchResponseEncoder.class);
     public static final String ENVELOPE = "ENVELOPE";
 
     /** Disables all optional BODYSTRUCTURE extensions */
@@ -200,10 +202,9 @@ public class FetchResponseEncoder extends AbstractChainedImapEncoder {
             for (String name : names) {
                 final String value = params.get(name);
                 if (value == null) {
-                    final Logger logger = session.getLog();
-                    logger.warn("Disposition parameter name has no value.");
-                    if (logger.isDebugEnabled()) {
-                        logger.debug("Disposition parameter " + name + " has no matching value");
+                    LOGGER.warn("Disposition parameter name has no value.");
+                    if (LOGGER.isDebugEnabled()) {
+                        LOGGER.debug("Disposition parameter " + name + " has no matching value");
                     }
                 } else {
                     composer.quote(name);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/encode/base/EndImapEncoder.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/base/EndImapEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/base/EndImapEncoder.java
index eedc150..f3da6f4 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/base/EndImapEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/base/EndImapEncoder.java
@@ -26,6 +26,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.encode.ImapEncoder;
 import org.apache.james.imap.encode.ImapResponseComposer;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * {@link ImapEncoder} which should get added to the end of the encoder chain.
@@ -33,6 +34,7 @@ import org.slf4j.Logger;
  * {@link ImapMessage}
  */
 public class EndImapEncoder implements ImapEncoder {
+    private static final Logger LOGGER = LoggerFactory.getLogger(EndImapEncoder.class);
 
     /**
      * @see
@@ -40,12 +42,11 @@ public class EndImapEncoder implements ImapEncoder {
      * org.apache.james.imap.api.process.ImapSession)
      */
     public void encode(ImapMessage message, ImapResponseComposer composer, ImapSession session) throws IOException {
-        final Logger logger = session.getLog();
-        if (logger.isWarnEnabled()) {
-            logger.warn("Unknown message " + message);
+        if (LOGGER.isWarnEnabled()) {
+            LOGGER.warn("Unknown message " + message);
         }
-        if (logger.isDebugEnabled()) {
-            logger.debug("Chain end reached for " + message);
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("Chain end reached for " + message);
         }
         composer.untaggedNoResponse("Unknown message in pipeline", null);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java b/protocols/imap/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java
index 82cca35..0b88f53 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java
@@ -24,16 +24,18 @@ import java.io.IOException;
 import org.apache.james.imap.api.ImapMessage;
 import org.apache.james.imap.api.message.response.ImapResponseMessage;
 import org.apache.james.imap.api.process.ImapProcessor;
+import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.api.process.SelectedMailbox;
-import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.decode.ImapDecoder;
 import org.apache.james.imap.decode.ImapRequestLineReader;
 import org.apache.james.imap.encode.ImapEncoder;
 import org.apache.james.imap.encode.ImapResponseComposer;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public abstract class AbstractImapRequestHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractImapRequestHandler.class);
 
     protected static final byte[] ABANDON_SIGNOFF = { '*', ' ', 'B', 'Y', 'E', ' ', 'A', 'b', 'a', 'n', 'd', 'o', 'n', 'e', 'd', '\r', '\n' };
 
@@ -60,10 +62,9 @@ public abstract class AbstractImapRequestHandler {
             result = true;
         } else {
             result = false;
-            final Logger logger = session.getLog();
-            logger.info(failure.getMessage());
-            if (logger.isDebugEnabled()) {
-                logger.debug("Failed to write " + message, failure);
+            LOGGER.info(failure.getMessage());
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Failed to write " + message, failure);
             }
         }
         return result;

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
index 6ffb83f..aae880c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractAuthProcessor.java
@@ -36,11 +36,14 @@ import org.apache.james.mailbox.exception.UserDoesNotExistException;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 
 public abstract class AbstractAuthProcessor<M extends ImapRequest> extends AbstractMailboxProcessor<M>{
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractAuthProcessor.class);
 
     private static final String ATTRIBUTE_NUMBER_OF_FAILURES = "org.apache.james.imap.processor.imap4rev1.NUMBER_OF_FAILURES";
 
@@ -76,7 +79,7 @@ public abstract class AbstractAuthProcessor<M extends ImapRequest> extends Abstr
                 manageFailureCount(session, tag, command, responder, failed);
             }
         } catch (MailboxException e) {
-            session.getLog().error("Error encountered while login", e);
+            LOGGER.error("Error encountered while login", e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }
@@ -106,18 +109,18 @@ public abstract class AbstractAuthProcessor<M extends ImapRequest> extends Abstr
                 manageFailureCount(session, tag, command, responder, failed);
             }
         } catch (UserDoesNotExistException e) {
-            if (session.getLog().isInfoEnabled()) {
-                session.getLog().info("User " + authenticationAttempt.getAuthenticationId() + " does not exist", e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("User " + authenticationAttempt.getAuthenticationId() + " does not exist", e);
             }
             no(command, tag, responder, HumanReadableText.USER_DOES_NOT_EXIST);
         } catch (NotAdminException e) {
-            if (session.getLog().isInfoEnabled()) {
-                session.getLog().info("User " + authenticationAttempt.getDelegateUserName() + " is not an admin", e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("User " + authenticationAttempt.getDelegateUserName() + " is not an admin", e);
             }
             no(command, tag, responder, HumanReadableText.NOT_AN_ADMIN);
         } catch (MailboxException e) {
-            if (session.getLog().isInfoEnabled()) {
-                session.getLog().info("Login failed", e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Login failed", e);
             }
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
@@ -126,16 +129,16 @@ public abstract class AbstractAuthProcessor<M extends ImapRequest> extends Abstr
     private void provisionInbox(ImapSession session, MailboxManager mailboxManager, MailboxSession mailboxSession) throws MailboxException {
         final MailboxPath inboxPath = PathConverter.forSession(session).buildFullPath(MailboxConstants.INBOX);
         if (mailboxManager.mailboxExists(inboxPath, mailboxSession)) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("INBOX exists. No need to create it.");
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("INBOX exists. No need to create it.");
             }
         } else {
             try {
-                session.getLog().debug("INBOX does not exist. Creating it.");
+                LOGGER.debug("INBOX does not exist. Creating it.");
                 mailboxManager.createMailbox(inboxPath, mailboxSession);
             } catch (MailboxExistsException e) {
-                if (session.getLog().isDebugEnabled()) {
-                    session.getLog().debug("Mailbox created by concurrent call. Safe to ignore this exception.");
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("Mailbox created by concurrent call. Safe to ignore this exception.");
                 }
             }
         }
@@ -153,8 +156,8 @@ public abstract class AbstractAuthProcessor<M extends ImapRequest> extends Abstr
             session.setAttribute(ATTRIBUTE_NUMBER_OF_FAILURES, failures);
             no(command, tag, responder, failed);
         } else {
-            if (session.getLog().isInfoEnabled()) {
-                session.getLog().info("Too many authentication failures. Closing connection.");
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Too many authentication failures. Closing connection.");
             }
             bye(responder, HumanReadableText.TOO_MANY_FAILURES);
             session.logout();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
index 3c2fa43..5d1e704 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
@@ -65,10 +65,13 @@ import org.apache.james.mailbox.model.MessageResultIterator;
 import org.apache.james.mailbox.model.SearchQuery;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 
 abstract public class AbstractMailboxProcessor<M extends ImapRequest> extends AbstractChainedProcessor<M> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractMailboxProcessor.class);
 
     public static final String IMAP_PREFIX = "IMAP-";
     private final MailboxManager mailboxManager;
@@ -141,8 +144,8 @@ abstract public class AbstractMailboxProcessor<M extends ImapRequest> extends Ab
     protected void unsolicitedResponses(ImapSession session, ImapProcessor.Responder responder, boolean omitExpunged, boolean useUid) {
         final SelectedMailbox selected = session.getSelected();
         if (selected == null) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("No mailbox selected");
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("No mailbox selected");
             }
         } else {
             unsolicitedResponses(session, responder, selected, omitExpunged, useUid);
@@ -245,8 +248,8 @@ abstract public class AbstractMailboxProcessor<M extends ImapRequest> extends Ab
             final MessageUid uid = mr.getUid();
             int msn = selected.msn(uid);
             if (msn == SelectedMailbox.NO_SUCH_MESSAGE) {
-                if (session.getLog().isDebugEnabled()) {
-                    session.getLog().debug("No message found with uid " + uid + " in the uid<->msn mapping for mailbox " + selected.getPath().getFullName(mailboxSession.getPathDelimiter()) +" , this may be because it was deleted by a concurrent session. So skip it..");
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("No message found with uid " + uid + " in the uid<->msn mapping for mailbox " + selected.getPath().getFullName(mailboxSession.getPathDelimiter()) +" , this may be because it was deleted by a concurrent session. So skip it..");
                 }  
                     
 
@@ -320,7 +323,7 @@ abstract public class AbstractMailboxProcessor<M extends ImapRequest> extends Ab
     }
 
     private void handleResponseException(ImapProcessor.Responder responder, MailboxException e, HumanReadableText message, ImapSession session) {
-        session.getLog().error(message.toString(), e);
+        LOGGER.error(message.toString(), e);
         // TODO: consider whether error message should be passed to the user
         final StatusResponse response = factory.untaggedNo(message);
         responder.respond(response);

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
index 1d3ff26..3f4e09d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMessageRangeProcessor.java
@@ -41,10 +41,13 @@ import org.apache.james.mailbox.exception.MessageRangeException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.metrics.api.MetricFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public abstract class AbstractMessageRangeProcessor<M extends AbstractMessageRangeRequest> extends AbstractMailboxProcessor<M> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractMessageRangeProcessor.class);
 
     public AbstractMessageRangeProcessor(Class<M> acceptableClass, ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -105,12 +108,12 @@ public abstract class AbstractMessageRangeProcessor<M extends AbstractMessageRan
                 okComplete(command, tag, StatusResponse.ResponseCode.copyUid(uidValidity, idSet, resultUids), responder);
             }
         } catch (MessageRangeException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug(getOperationName() + " failed from mailbox " + currentMailbox.getPath() + " to " + targetMailbox + " for invalid sequence-set " + ImmutableList.copyOf(idSet), e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug(getOperationName() + " failed from mailbox " + currentMailbox.getPath() + " to " + targetMailbox + " for invalid sequence-set " + ImmutableList.copyOf(idSet), e);
             }
             taggedBad(command, tag, responder, HumanReadableText.INVALID_MESSAGESET);
         } catch (MailboxException e) {
-            session.getLog().error(getOperationName() + " failed from mailbox " + currentMailbox.getPath() + " to " + targetMailbox + " for sequence-set " + ImmutableList.copyOf(idSet), e);
+            LOGGER.error(getOperationName() + " failed from mailbox " + currentMailbox.getPath() + " to " + targetMailbox + " for sequence-set " + ImmutableList.copyOf(idSet), e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
index b1d2170..b334d43 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
@@ -60,8 +60,6 @@ import org.slf4j.LoggerFactory;
 import com.google.common.collect.ImmutableList;
 
 abstract class AbstractSelectionProcessor<M extends AbstractMailboxSelectionRequest> extends AbstractMailboxProcessor<M> implements PermitEnableCapabilityProcessor {
-
-
     private static final Logger LOGGER = LoggerFactory.getLogger(AbstractSelectionProcessor.class);
 
     final StatusResponseFactory statusResponseFactory;
@@ -94,10 +92,10 @@ abstract class AbstractSelectionProcessor<M extends AbstractMailboxSelectionRequ
            
             
         } catch (MailboxNotFoundException e) {
-            session.getLog().debug("Select failed as mailbox does not exist " + mailboxName, e);
+            LOGGER.debug("Select failed as mailbox does not exist " + mailboxName, e);
             responder.respond(statusResponseFactory.taggedNo(tag, command, HumanReadableText.FAILURE_NO_SUCH_MAILBOX));
         } catch (MailboxException e) {
-            session.getLog().error("Select failed for mailbox " + mailboxName , e);
+            LOGGER.error("Select failed for mailbox " + mailboxName , e);
             no(command, tag, responder, HumanReadableText.SELECT);
         } 
     }
@@ -142,8 +140,8 @@ abstract class AbstractSelectionProcessor<M extends AbstractMailboxSelectionRequ
         while(unseen(responder, firstUnseen, selected, ImapSessionUtils.getMailboxSession(session)) == false) {
             // if we not was able to get find the unseen within 5 retries we should just not send it
             if (retryCount == 5) {
-                if (session.getLog().isInfoEnabled()) {
-                    session.getLog().info("Unable to uid for unseen message " + firstUnseen + " in mailbox " + selected.getPath());
+                if (LOGGER.isInfoEnabled()) {
+                    LOGGER.info("Unable to uid for unseen message " + firstUnseen + " in mailbox " + selected.getPath());
                 }
                 break;
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
index f693296..df3228f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
@@ -48,8 +48,11 @@ import org.apache.james.mailbox.model.ComposedMessageId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AppendProcessor.class);
 
     public AppendProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory statusResponseFactory,
             MetricFactory metricFactory) {
@@ -79,7 +82,7 @@ public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> {
             // consume message on exception
             consume(messageIn);
 
-            session.getLog().debug("Append failed for mailbox " + mailboxPath, e);
+            LOGGER.debug("Append failed for mailbox " + mailboxPath, e);
             
             // Indicates that the mailbox does not exist
             // So TRY CREATE
@@ -89,7 +92,7 @@ public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> {
             // consume message on exception
             consume(messageIn);
             
-            session.getLog().error("Append failed for mailbox " + mailboxPath, e);
+            LOGGER.error("Append failed for mailbox " + mailboxPath, e);
             
             // Some other issue
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
@@ -122,7 +125,7 @@ public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> {
      *            not null
      */
     private void tryCreate(ImapSession session, String tag, ImapCommand command, Responder responder, MailboxNotFoundException e) {
-        session.getLog().debug("Cannot open mailbox: ", e);
+        LOGGER.debug("Cannot open mailbox: ", e);
 
         no(command, tag, responder, HumanReadableText.FAILURE_NO_SUCH_MAILBOX, StatusResponse.ResponseCode.tryCreate());
     }
@@ -150,7 +153,7 @@ public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> {
             // So TRY CREATE
             tryCreate(session, tag, command, responder, e);
         } catch (MailboxException e) {
-            session.getLog().error("Unable to append message to mailbox " + mailboxPath, e);
+            LOGGER.error("Unable to append message to mailbox " + mailboxPath, e);
             // Some other issue
             no(command, tag, responder, HumanReadableText.SAVE_FAILED);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
index b10961c..63efe03 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
@@ -37,6 +37,8 @@ import org.apache.james.imap.message.response.AuthenticateResponse;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -46,6 +48,7 @@ import com.google.common.collect.ImmutableList;
  *
  */
 public class AuthenticateProcessor extends AbstractAuthProcessor<AuthenticateRequest> implements CapabilityImplementingProcessor{
+    private static final Logger LOGGER = LoggerFactory.getLogger(AuthenticateProcessor.class);
     private final static String PLAIN = "PLAIN";
     
     public AuthenticateProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
@@ -84,8 +87,8 @@ public class AuthenticateProcessor extends AbstractAuthProcessor<AuthenticateReq
                 }
             }
         } else {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug  ("Unsupported authentication mechanism '" + authType + "'");
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug  ("Unsupported authentication mechanism '" + authType + "'");
             }
             no(command, tag, responder, HumanReadableText.UNSUPPORTED_AUTHENTICATION_MECHANISM);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
index 1dd8f6a..77f226f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
@@ -36,8 +36,11 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CloseProcessor extends AbstractMailboxProcessor<CloseRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(CloseProcessor.class);
 
     public CloseProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -60,7 +63,7 @@ public class CloseProcessor extends AbstractMailboxProcessor<CloseRequest> {
             }
 
         } catch (MailboxException e) {
-            session.getLog().error("Close failed for mailbox " + session.getSelected().getPath() , e);
+            LOGGER.error("Close failed for mailbox " + session.getSelected().getPath() , e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
index 295b178..ad53f7b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
@@ -36,8 +36,11 @@ import org.apache.james.mailbox.exception.TooLongMailboxNameException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CreateProcessor extends AbstractMailboxProcessor<CreateRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(CreateProcessor.class);
 
     public CreateProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -59,17 +62,17 @@ public class CreateProcessor extends AbstractMailboxProcessor<CreateRequest> {
             unsolicitedResponses(session, responder, false);
             okComplete(command, tag, responder);
         } catch (MailboxExistsException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("Create failed for mailbox " + mailboxPath + " as it already exists", e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Create failed for mailbox " + mailboxPath + " as it already exists", e);
             }
             no(command, tag, responder, HumanReadableText.MAILBOX_EXISTS);
         } catch (TooLongMailboxNameException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("The mailbox name length is over limit: " + mailboxPath.getName(), e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("The mailbox name length is over limit: " + mailboxPath.getName(), e);
             }
             taggedBad(command, tag, responder, HumanReadableText.FAILURE_MAILBOX_NAME);
         } catch (MailboxException e) {
-            session.getLog().error("Create failed for mailbox " + mailboxPath, e);
+            LOGGER.error("Create failed for mailbox " + mailboxPath, e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
index 8fed11c..f3b5ede 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
@@ -45,6 +45,8 @@ import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.SimpleMailboxACL.SimpleMailboxACLEntryKey;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -54,6 +56,7 @@ import com.google.common.collect.ImmutableList;
  * @author Peter Palaga
  */
 public class DeleteACLProcessor extends AbstractMailboxProcessor<DeleteACLRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DeleteACLProcessor.class);
 
     private static final List<String> CAPABILITIES = ImmutableList.of(ImapConstants.SUPPORTS_ACL);
 
@@ -131,7 +134,7 @@ public class DeleteACLProcessor extends AbstractMailboxProcessor<DeleteACLReques
         } catch (MailboxNotFoundException e) {
             no(command, tag, responder, HumanReadableText.MAILBOX_NOT_FOUND);
         } catch (MailboxException e) {
-            session.getLog().error(command.getName() +" failed for mailbox " + mailboxName, e);
+            LOGGER.error(command.getName() +" failed for mailbox " + mailboxName, e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
index 08b0b2f..64faba9 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
@@ -37,9 +37,13 @@ import org.apache.james.mailbox.exception.TooLongMailboxNameException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class DeleteProcessor extends AbstractMailboxProcessor<DeleteRequest> {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(DeleteProcessor.class);
+
     public DeleteProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
         super(DeleteRequest.class, next, mailboxManager, factory, metricFactory);
@@ -64,17 +68,17 @@ public class DeleteProcessor extends AbstractMailboxProcessor<DeleteRequest> {
             unsolicitedResponses(session, responder, false);
             okComplete(command, tag, responder);
         } catch (MailboxNotFoundException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("Delete failed for mailbox " + mailboxPath + " as it not exist", e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Delete failed for mailbox " + mailboxPath + " as it not exist", e);
             }
             no(command, tag, responder, HumanReadableText.FAILURE_NO_SUCH_MAILBOX);
         } catch (TooLongMailboxNameException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("The mailbox name length is over limit: " + mailboxPath.getName(), e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("The mailbox name length is over limit: " + mailboxPath.getName(), e);
             }
             taggedBad(command, tag, responder, HumanReadableText.FAILURE_MAILBOX_NAME);
         } catch (MailboxException e) {
-            session.getLog().error("Delete failed for mailbox " + mailboxPath, e);
+            LOGGER.error("Delete failed for mailbox " + mailboxPath, e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
index 2611d7e..edce42d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
@@ -40,12 +40,15 @@ import org.apache.james.imap.processor.PermitEnableCapabilityProcessor.EnableExc
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 import com.google.common.collect.ImmutableList;
 
 public class EnableProcessor extends AbstractMailboxProcessor<EnableRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(EnableProcessor.class);
 
     private final static List<PermitEnableCapabilityProcessor> capabilities = new ArrayList<>();
     public final static String ENABLED_CAPABILITIES = "ENABLED_CAPABILITIES";
@@ -82,8 +85,8 @@ public class EnableProcessor extends AbstractMailboxProcessor<EnableRequest> imp
             unsolicitedResponses(session, responder, false);
             okComplete(command, tag, responder);
         } catch (EnableException e) {
-            if (session.getLog().isInfoEnabled()) {
-                session.getLog().info("Unable to enable extension", e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Unable to enable extension", e);
             }
             taggedBad(command, tag, responder, HumanReadableText.FAILED);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
index 05d199e..30f7b9b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
@@ -45,10 +45,13 @@ import org.apache.james.mailbox.exception.MessageRangeException;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public class ExpungeProcessor extends AbstractMailboxProcessor<ExpungeRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ExpungeProcessor.class);
 
     private final static List<String> UIDPLUS = ImmutableList.of("UIDPLUS");
 
@@ -96,12 +99,12 @@ public class ExpungeProcessor extends AbstractMailboxProcessor<ExpungeRequest> i
                 }
             }
         } catch (MessageRangeException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("Expunge failed", e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Expunge failed", e);
             }
             taggedBad(command, tag, responder, HumanReadableText.INVALID_MESSAGESET);
         } catch (MailboxException e) {
-            session.getLog().error("Expunge failed for mailbox " + session.getSelected().getPath(), e);
+            LOGGER.error("Expunge failed for mailbox " + session.getSelected().getPath(), e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
index 5adf6cf..f2a0a3b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
@@ -43,6 +43,8 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -51,6 +53,7 @@ import com.google.common.collect.ImmutableList;
  * 
  */
 public class GetACLProcessor extends AbstractMailboxProcessor<GetACLRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(GetACLProcessor.class);
 
     private static final List<String> CAPABILITIES = ImmutableList.of(ImapConstants.SUPPORTS_ACL);
 
@@ -104,7 +107,7 @@ public class GetACLProcessor extends AbstractMailboxProcessor<GetACLRequest> imp
         } catch (MailboxNotFoundException e) {
             no(command, tag, responder, HumanReadableText.MAILBOX_NOT_FOUND);
         } catch (MailboxException e) {
-            session.getLog().error(command.getName() +" failed for mailbox " + mailboxName, e);
+            LOGGER.error(command.getName() +" failed for mailbox " + mailboxName, e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
index e38e08f..05ae7e4 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
@@ -45,6 +45,8 @@ import org.apache.james.mailbox.model.MailboxAnnotationKey;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Predicate;
@@ -53,6 +55,8 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSortedSet;
 
 public class GetAnnotationProcessor extends AbstractMailboxProcessor<GetAnnotationRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(GetAnnotationProcessor.class);
+
     public GetAnnotationProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
         super(GetAnnotationRequest.class, next, mailboxManager, factory, metricFactory);
@@ -67,10 +71,10 @@ public class GetAnnotationProcessor extends AbstractMailboxProcessor<GetAnnotati
         try {
             proceed(message, session, tag, command, responder);
         } catch (MailboxNotFoundException e) {
-            session.getLog().info("The command: {} is failed because not found mailbox {}", command.getName(), message.getMailboxName());
+            LOGGER.info("The command: {} is failed because not found mailbox {}", command.getName(), message.getMailboxName());
             no(command, tag, responder, HumanReadableText.FAILURE_NO_SUCH_MAILBOX, ResponseCode.tryCreate());
         } catch (MailboxException e) {
-            session.getLog().error("GetAnnotation on mailbox " + message.getMailboxName() + " failed for user " + ImapSessionUtils.getUserName(session), e);
+            LOGGER.error("GetAnnotation on mailbox " + message.getMailboxName() + " failed for user " + ImapSessionUtils.getUserName(session), e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
index 2b1c81c..123bc99 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
@@ -48,10 +48,13 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public class IdleProcessor extends AbstractMailboxProcessor<IdleRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(IdleProcessor.class);
 
     private final static List<String> CAPS = ImmutableList.of(SUPPORTS_IDLE);
     public final static int DEFAULT_SCHEDULED_POOL_CORE_SIZE = 5;
@@ -114,7 +117,7 @@ public class IdleProcessor extends AbstractMailboxProcessor<IdleRequest> impleme
                         try {
                             mailboxManager.removeListener(sm.getPath(), idleListener, mailboxSession);
                         } catch (MailboxException e) {
-                                session.getLog().error("Unable to remove idle listener for mailbox {0}", sm.getPath(), e);
+                                LOGGER.error("Unable to remove idle listener for mailbox {0}", sm.getPath(), e);
                         }
                     }
                     session.popLineHandler();
@@ -162,7 +165,7 @@ public class IdleProcessor extends AbstractMailboxProcessor<IdleRequest> impleme
 
 
         } catch (MailboxException e) {
-            session.getLog().error("Enable idle for " + session.getSelected().getPath() + " failed", e);
+            LOGGER.error("Enable idle for " + session.getSelected().getPath() + " failed", e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
index 040c94f..ef3f87e 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
@@ -43,8 +43,11 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MailboxQuery;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(LSubProcessor.class);
 
     public LSubProcessor(ImapProcessor next, MailboxManager mailboxManager, SubscriptionManager subscriptionManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -128,7 +131,7 @@ public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> {
 
             okComplete(command, tag, responder);
         } catch (MailboxException e) {
-            session.getLog().error("LSub failed for reference " + referenceName + " and pattern " + mailboxPattern, e);
+            LOGGER.error("LSub failed for reference " + referenceName + " and pattern " + mailboxPattern, e);
             final HumanReadableText displayTextKey = HumanReadableText.GENERIC_LSUB_FAILURE;
             no(command, tag, responder, displayTextKey);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
index 7f882e6..6f180e5 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
@@ -48,8 +48,11 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MailboxQuery;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ListProcessor extends AbstractMailboxProcessor<ListRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ListProcessor.class);
 
     public ListProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -177,7 +180,7 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> {
 
             okComplete(command, tag, responder);
         } catch (MailboxException e) {
-            session.getLog().error("List failed for mailboxName " + mailboxName + " and user" + user, e);
+            LOGGER.error("List failed for mailboxName " + mailboxName + " and user" + user, e);
             no(command, tag, responder, HumanReadableText.SEARCH_FAILED);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
index c648e1a..da4d75c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
@@ -43,6 +43,8 @@ import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.SimpleMailboxACL.SimpleMailboxACLEntryKey;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -52,6 +54,7 @@ import com.google.common.collect.ImmutableList;
  * @author Peter Palaga
  */
 public class ListRightsProcessor extends AbstractMailboxProcessor<ListRightsRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ListRightsProcessor.class);
 
     private static final List<String> CAPABILITIES = ImmutableList.of(ImapConstants.SUPPORTS_ACL);
 
@@ -120,7 +123,7 @@ public class ListRightsProcessor extends AbstractMailboxProcessor<ListRightsRequ
         } catch (MailboxNotFoundException e) {
             no(command, tag, responder, HumanReadableText.MAILBOX_NOT_FOUND);
         } catch (MailboxException e) {
-            session.getLog().error(command.getName() + " failed for mailbox " + mailboxName, e);
+            LOGGER.error(command.getName() + " failed for mailbox " + mailboxName, e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
index 3e9fc00..4677f66 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
@@ -33,8 +33,11 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class LogoutProcessor extends AbstractMailboxProcessor<LogoutRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(LogoutProcessor.class);
 
     public LogoutProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -49,7 +52,7 @@ public class LogoutProcessor extends AbstractMailboxProcessor<LogoutRequest> {
             bye(responder);
             okComplete(command, tag, responder);
         } catch (MailboxException e) {
-            session.getLog().error("Logout failed for user " + mailboxSession.getUser().getUserName(), e);
+            LOGGER.error("Logout failed for user " + mailboxSession.getUser().getUserName(), e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
index c4dc6c8..92d2430 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
@@ -42,6 +42,8 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * MYRIGHTS Processor.
@@ -49,6 +51,7 @@ import org.apache.james.util.MDCBuilder;
  * @author Peter Palaga
  */
 public class MyRightsProcessor extends AbstractMailboxProcessor<MyRightsRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MyRightsProcessor.class);
 
     private static final List<String> CAPABILITIES = Collections.singletonList(ImapConstants.SUPPORTS_ACL);
 
@@ -100,7 +103,7 @@ public class MyRightsProcessor extends AbstractMailboxProcessor<MyRightsRequest>
         } catch (MailboxNotFoundException e) {
             no(command, tag, responder, HumanReadableText.MAILBOX_NOT_FOUND);
         } catch (MailboxException e) {
-            session.getLog().error(command.getName() + " failed for mailbox " + mailboxName, e);
+            LOGGER.error(command.getName() + " failed for mailbox " + mailboxName, e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
index 42ec3cf..8842883 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
@@ -39,8 +39,11 @@ import org.apache.james.mailbox.exception.TooLongMailboxNameException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class RenameProcessor extends AbstractMailboxProcessor<RenameRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(RenameProcessor.class);
 
     public RenameProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -70,22 +73,22 @@ public class RenameProcessor extends AbstractMailboxProcessor<RenameRequest> {
             okComplete(command, tag, responder);
             unsolicitedResponses(session, responder, false);
         } catch (MailboxExistsException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("Rename from " + existingPath + " to " + newPath + " failed because the target mailbox exists", e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Rename from " + existingPath + " to " + newPath + " failed because the target mailbox exists", e);
             }
             no(command, tag, responder, HumanReadableText.FAILURE_MAILBOX_EXISTS);
         } catch (MailboxNotFoundException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("Rename from " + existingPath + " to " + newPath + " failed because the source mailbox not exists", e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Rename from " + existingPath + " to " + newPath + " failed because the source mailbox not exists", e);
             }
             no(command, tag, responder, HumanReadableText.MAILBOX_NOT_FOUND);
         } catch (TooLongMailboxNameException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("The mailbox name length is over limit: " + newPath.getName(), e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("The mailbox name length is over limit: " + newPath.getName(), e);
             }
             taggedBad(command, tag, responder, HumanReadableText.FAILURE_MAILBOX_NAME);
         } catch (MailboxException e) {
-            session.getLog().error("Rename from " + existingPath + " to " + newPath + " failed", e);
+            LOGGER.error("Rename from " + existingPath + " to " + newPath + " failed", e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
index 8822e4d..259684a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
@@ -64,11 +64,14 @@ import org.apache.james.mailbox.model.SearchQuery.Criterion;
 import org.apache.james.mailbox.model.SearchQuery.DateResolution;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SearchProcessor.class);
 
     protected final static String SEARCH_MODSEQ = "SEARCH_MODSEQ";
     private final static List<String> CAPS = ImmutableList.of("WITHIN", "ESEARCH", "SEARCHRES");
@@ -200,12 +203,12 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp
             unsolicitedResponses(session, responder, omitExpunged, useUids);
             okComplete(command, tag, responder);
         } catch (MessageRangeException e) {
-            if (session.getLog().isDebugEnabled()) {
-                session.getLog().debug("Search failed in mailbox " + session.getSelected().getPath() + " because of an invalid sequence-set ", e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Search failed in mailbox " + session.getSelected().getPath() + " because of an invalid sequence-set ", e);
             }
             taggedBad(command, tag, responder, HumanReadableText.INVALID_MESSAGESET);
         } catch (MailboxException e) {
-            session.getLog().error("Search failed in mailbox " + session.getSelected().getPath(), e);
+            LOGGER.error("Search failed in mailbox " + session.getSelected().getPath(), e);
             no(command, tag, responder, HumanReadableText.SEARCH_FAILED);
             
             if (resultOptions.contains(SearchResultOption.SAVE)) {
@@ -365,7 +368,7 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp
             long modSeq = key.getModSeq();
             return SearchQuery.or(SearchQuery.modSeqEquals(modSeq), SearchQuery.modSeqGreaterThan(modSeq));
         default:
-            session.getLog().warn("Ignoring unknown search key {}", type);
+            LOGGER.warn("Ignoring unknown search key {}", type);
             return SearchQuery.all();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
index 4f63d57..0e136ab 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
@@ -47,6 +47,8 @@ import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.SimpleMailboxACL.SimpleMailboxACLEntryKey;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * SETACL Processor.
@@ -54,6 +56,7 @@ import org.apache.james.util.MDCBuilder;
  * @author Peter Palaga
  */
 public class SetACLProcessor extends AbstractMailboxProcessor<SetACLRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SetACLProcessor.class);
 
     private static final List<String> CAPABILITIES = Collections.singletonList(ImapConstants.SUPPORTS_ACL);
 
@@ -149,7 +152,7 @@ public class SetACLProcessor extends AbstractMailboxProcessor<SetACLRequest> imp
         } catch (MailboxNotFoundException e) {
             no(command, tag, responder, HumanReadableText.MAILBOX_NOT_FOUND);
         } catch (MailboxException e) {
-            session.getLog().error(command.getName() + " failed for mailbox " + mailboxName, e);
+            LOGGER.error(command.getName() + " failed for mailbox " + mailboxName, e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
index adfe274..a2f81dc 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
@@ -40,10 +40,13 @@ import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
 public class SetAnnotationProcessor extends AbstractMailboxProcessor<SetAnnotationRequest> implements CapabilityImplementingProcessor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SetAnnotationProcessor.class);
 
     public SetAnnotationProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -66,13 +69,13 @@ public class SetAnnotationProcessor extends AbstractMailboxProcessor<SetAnnotati
 
             okComplete(command, tag, responder);
         } catch (MailboxNotFoundException e) {
-            session.getLog().info(command.getName() + " failed for mailbox " + mailboxName, e);
+            LOGGER.info(command.getName() + " failed for mailbox " + mailboxName, e);
             no(command, tag, responder, HumanReadableText.FAILURE_NO_SUCH_MAILBOX, StatusResponse.ResponseCode.tryCreate());
         } catch (AnnotationException e) {
-            session.getLog().info(command.getName() + " failed for mailbox " + mailboxName, e);
+            LOGGER.info(command.getName() + " failed for mailbox " + mailboxName, e);
             no(command, tag, responder, new HumanReadableText(HumanReadableText.MAILBOX_ANNOTATION_KEY, e.getMessage()));
         } catch (MailboxException e) {
-            session.getLog().error(command.getName() + " failed for mailbox " + mailboxName, e);
+            LOGGER.error(command.getName() + " failed for mailbox " + mailboxName, e);
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f0170ded/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
index b4bc96b..272cc32 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
@@ -40,8 +40,10 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.util.MDCBuilder;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(StatusProcessor.class);
 
     public StatusProcessor(ImapProcessor next, MailboxManager mailboxManager, StatusResponseFactory factory,
             MetricFactory metricFactory) {
@@ -59,12 +61,11 @@ public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> {
     protected void doProcess(StatusRequest request, ImapSession session, String tag, ImapCommand command, Responder responder) {
         final MailboxPath mailboxPath = PathConverter.forSession(session).buildFullPath(request.getMailboxName());
         final StatusDataItems statusDataItems = request.getStatusDataItems();
-        final Logger logger = session.getLog();
         final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
 
         try {
-            if (logger != null && logger.isDebugEnabled()) {
-                logger.debug("Status called on mailbox named " + mailboxPath);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Status called on mailbox named " + mailboxPath);
             }
 
             final MailboxManager mailboxManager = getMailboxManager();
@@ -94,7 +95,7 @@ public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> {
             okComplete(command, tag, responder);
 
         } catch (MailboxException e) {
-            session.getLog().error("Status failed for mailbox " + mailboxPath, e);
+            LOGGER.error("Status failed for mailbox " + mailboxPath, e);
             no(command, tag, responder, HumanReadableText.SEARCH_FAILED);
         }
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[27/38] james-project git commit: JAMES-2114 Deprecate LogEnabled API

Posted by bt...@apache.org.
JAMES-2114 Deprecate LogEnabled API


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/16b36cbd
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/16b36cbd
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/16b36cbd

Branch: refs/heads/master
Commit: 16b36cbdd4379f1f3254ef8202632cc528535aa2
Parents: 4f14df4
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 15 00:28:31 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:43 2017 +0700

----------------------------------------------------------------------
 .../modules/data/CassandraDomainListModule.java |   5 -
 .../CassandraRecipientRewriteTableModule.java   |   5 -
 .../data/CassandraUsersRepositoryModule.java    |   6 -
 .../james/data/LdapUsersRepositoryModule.java   |   5 -
 .../modules/server/ActiveMQQueueModule.java     |   6 -
 .../james/modules/server/DNSServiceModule.java  |   5 -
 .../server/MailStoreRepositoryModule.java       |   2 -
 .../james/modules/server/JMXServerModule.java   |  23 ----
 .../james/modules/data/JPADomainListModule.java |  18 +--
 .../data/JPARecipientRewriteTableModule.java    |  22 ++--
 .../modules/data/JPAUsersRepositoryModule.java  |  23 ++--
 .../server/CamelMailetContainerModule.java      |   7 -
 .../james/modules/data/MemoryDataModule.java    |   6 -
 .../modules/protocols/IMAPServerModule.java     |   5 -
 .../modules/protocols/LMTPServerModule.java     |   5 -
 .../protocols/ManageSieveServerModule.java      |   5 -
 .../modules/protocols/POP3ServerModule.java     |   5 -
 .../modules/protocols/SMTPServerModule.java     |   5 -
 .../apache/james/lifecycle/api/LogEnabled.java  |   3 +
 .../mailbox/MailboxManagerManagement.java       |  26 ++--
 .../adapter/mailbox/MailboxManagementTest.java  |   5 +-
 .../MailRepositoryStoreBeanFactory.java         |  41 +++---
 .../lifecycle/LogEnabledBeanPostProcessor.java  |   3 +
 .../lifecycle/LogProviderManagementMBean.java   |   2 +
 .../container/spring/tool/James23Importer.java  |  14 +-
 .../util/retry/naming/LoggingRetryHandler.java  |  10 +-
 .../util/retry/naming/RetryingContext.java      | 121 ++++++++---------
 .../naming/directory/RetryingDirContext.java    |  66 ++++------
 .../retry/naming/ldap/RetryingLdapContext.java  |  19 ++-
 .../cassandra/CassandraDomainListTest.java      |   2 -
 .../CassandraRecipientRewriteTableTest.java     |   2 -
 .../james/rrt/cassandra/CassandraStepdefs.java  |   2 -
 .../mailrepository/file/FileMailRepository.java |  19 +--
 .../mailrepository/file/MBoxMailRepository.java | 131 +++++++++----------
 .../james/user/file/UsersFileRepository.java    |  17 +--
 .../james/domainlist/xml/XMLDomainListTest.java |   9 --
 .../mailrepository/FileMailRepositoryTest.java  |   2 -
 .../mailrepository/MBoxMailRepositoryTest.java  |   8 +-
 .../rrt/file/XMLRecipientRewriteTableTest.java  |   5 +-
 .../org/apache/james/rrt/file/XMLStepdefs.java  |   5 +-
 .../user/file/UsersFileRepositoryTest.java      |   2 -
 .../domainlist/hbase/HBaseDomainListTest.java   |   2 -
 .../hbase/HBaseRecipientRewriteTableTest.java   |   2 -
 .../apache/james/rrt/hbase/HBaseStepdefs.java   |   2 -
 .../user/hbase/HBaseUsersRepositoryTest.java    |   2 -
 .../james/user/jcr/JCRUsersRepository.java      |  45 ++++---
 .../james/user/jcr/JcrUserRepositoryTest.java   |   2 -
 .../mailrepository/jdbc/JDBCMailRepository.java |  76 +++++------
 .../rrt/jdbc/JDBCRecipientRewriteTable.java     |  35 ++---
 .../user/jdbc/AbstractJdbcUsersRepository.java  |  29 ++--
 .../jdbc/JDBCMailRepositoryTest.java            |   2 -
 .../rrt/jdbc/JDBCRecipientRewriteTableTest.java |   2 -
 .../org/apache/james/rrt/jdbc/JDBCStepdefs.java |   2 -
 .../jdbc/DefaultUsersJdbcRepositoryTest.java    |   2 -
 .../user/jdbc/JamesUsersJdbcRepositoryTest.java |   2 -
 .../james/domainlist/jpa/JPADomainList.java     |  13 +-
 .../james/rrt/jpa/JPARecipientRewriteTable.java |  15 ++-
 .../james/user/jpa/JPAUsersRepository.java      |  19 +--
 .../james/domainlist/jpa/JPADomainListTest.java |   2 -
 .../rrt/jpa/JPARecipientRewriteTableTest.java   |   2 -
 .../org/apache/james/rrt/jpa/JPAStepdefs.java   |   2 -
 .../james/user/jpa/JpaUsersRepositoryTest.java  |   2 -
 .../ldap/ReadOnlyUsersLDAPRepositoryTest.java   |   1 -
 .../user/ldap/ReadOnlyUsersLDAPRepository.java  |  32 ++---
 .../ldap/ReadOnlyUsersLDAPRepositoryTest.java   |   8 --
 .../domainlist/lib/AbstractDomainList.java      |  24 +---
 .../lib/AbstractMailRepository.java             |  19 +--
 .../repository/file/AbstractFileRepository.java |  29 ++--
 .../file/FilePersistentObjectRepository.java    |   9 +-
 .../file/FilePersistentStreamRepository.java    |  11 +-
 .../rrt/lib/AbstractRecipientRewriteTable.java  |  38 +++---
 .../user/lib/AbstractJamesUsersRepository.java  |   5 +-
 .../james/user/lib/AbstractUsersRepository.java |  16 +--
 .../AbstractDomainListPrivateMethodsTest.java   |   8 --
 .../domainlist/memory/MemoryDomainListTest.java |   2 -
 .../InMemoryRecipientRewriteTableTest.java      |   2 -
 .../james/rrt/memory/InMemoryStepdefs.java      |   2 -
 .../dnsservice/dnsjava/DNSJavaService.java      |  43 +++---
 .../dnsservice/dnsjava/DNSJavaServiceTest.java  |   1 -
 .../library/MXHostAddressIterator.java          |  12 +-
 .../library/MXHostAddressIteratorTest.java      |  18 +--
 .../mailetcontainer/impl/JamesMailSpooler.java  |  45 +++----
 .../impl/JamesMailetContext.java                |  48 +++----
 .../impl/camel/CamelCompositeProcessor.java     |   1 -
 .../impl/camel/CamelMailetProcessor.java        |  11 +-
 .../impl/camel/CamelProcessor.java              |   8 +-
 .../lib/AbstractStateCompositeProcessor.java    |  15 +--
 .../lib/AbstractStateMailetProcessor.java       |  46 +++----
 .../impl/JamesMailetContextTest.java            |   1 -
 .../impl/camel/CamelCompositeProcessorTest.java |   2 -
 .../impl/camel/CamelMailetProcessorTest.java    |   7 -
 .../AbstractStateCompositeProcessorTest.java    |   6 -
 .../james/transport/mailets/RemoteDelivery.java |   6 +-
 ...ddressesArrayToMailAddressListConverter.java |  10 +-
 .../mailets/remoteDelivery/Bouncer.java         |  16 +--
 .../remoteDelivery/DeliveryRunnable.java        |  22 ++--
 .../mailets/remoteDelivery/DnsHelper.java       |   9 +-
 .../mailets/remoteDelivery/MailDelivrer.java    |  46 +++----
 .../remoteDelivery/MailDelivrerToHost.java      |  14 +-
 ...ssesArrayToMailAddressListConverterTest.java |  11 +-
 .../mailets/remoteDelivery/BouncerTest.java     |  30 ++---
 .../remoteDelivery/DeliveryRunnableTest.java    |   2 +-
 .../remoteDelivery/MailDelivrerTest.java        |   5 +-
 .../org/apache/james/fetchmail/FetchMail.java   |  36 +++--
 .../apache/james/fetchmail/FetchScheduler.java  |  27 ++--
 .../apache/james/fetchmail/FolderProcessor.java |  15 ++-
 .../james/fetchmail/MessageProcessor.java       |  36 ++---
 .../james/fetchmail/ParsedConfiguration.java    |  33 +----
 .../james/fetchmail/ProcessorAbstract.java      |  10 --
 .../apache/james/fetchmail/StoreProcessor.java  |  15 ++-
 .../imapserver/netty/IMAPServerFactory.java     |   5 +-
 .../netty/AbstractConfigurableAsyncServer.java  |  57 +++-----
 .../lib/netty/AbstractServerFactory.java        |  17 +--
 .../james/lmtpserver/netty/LMTPServer.java      |   7 +-
 .../lmtpserver/netty/LMTPServerFactory.java     |   4 +-
 .../netty/ManageSieveServerFactory.java         |   4 +-
 .../pop3server/netty/POP3ServerFactory.java     |   4 +-
 .../apache/james/pop3server/POP3ServerTest.java |   7 -
 .../james/smtpserver/ExtendedSMTPSession.java   |   3 +-
 .../fastfail/JDBCGreylistHandler.java           |  24 +---
 .../james/smtpserver/fastfail/ValidRcptMX.java  |  24 +---
 .../james/smtpserver/netty/SMTPServer.java      |  15 ++-
 .../smtpserver/netty/SMTPServerFactory.java     |   4 +-
 .../apache/james/smtpserver/SMTPServerTest.java |   5 -
 .../james/webadmin/routes/DomainRoutesTest.java |   5 -
 .../james/queue/activemq/ActiveMQMailQueue.java |  19 +--
 .../activemq/ActiveMQMailQueueFactory.java      |   4 +-
 .../queue/activemq/ActiveMQMailQueueItem.java   |   8 +-
 .../queue/activemq/ActiveMQMailQueueTest.java   |   2 +-
 .../apache/james/queue/file/FileMailQueue.java  |  13 +-
 .../james/queue/file/FileMailQueueFactory.java  |  12 +-
 .../apache/james/queue/jms/JMSMailQueue.java    |  20 ++-
 .../james/queue/jms/JMSMailQueueFactory.java    |   2 +-
 .../queue/library/AbstractMailQueueFactory.java |  13 +-
 .../queue/jms/AbstractJMSMailQueueTest.java     |   2 +-
 .../library/AbstractMailQueueFactoryTest.java   |  16 +--
 136 files changed, 791 insertions(+), 1250 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
index 6d5abcc..1b3c912 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraDomainListModule.java
@@ -27,8 +27,6 @@ import org.apache.james.domainlist.cassandra.CassandraDomainList;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -40,8 +38,6 @@ import com.google.inject.multibindings.Multibinder;
 
 public class CassandraDomainListModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(DomainList.class);
-    
     @Override
     public void configure() {
         bind(CassandraDomainList.class).in(Scopes.SINGLETON);
@@ -65,7 +61,6 @@ public class CassandraDomainListModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                cassandraDomainList.setLog(LOGGER);
                 cassandraDomainList.configure(configurationProvider.getConfiguration("domainlist"));
             } catch (ConfigurationException e) {
                 Throwables.propagate(e);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
index 8ff4123..4efd0cb 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraRecipientRewriteTableModule.java
@@ -28,8 +28,6 @@ import org.apache.james.rrt.cassandra.CassandraRRTModule;
 import org.apache.james.rrt.cassandra.CassandraRecipientRewriteTable;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -41,8 +39,6 @@ import com.google.inject.multibindings.Multibinder;
 
 public class CassandraRecipientRewriteTableModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(RecipientRewriteTable.class);
-
     @Override
     public void configure() {
         bind(CassandraRecipientRewriteTable.class).in(Scopes.SINGLETON);
@@ -67,7 +63,6 @@ public class CassandraRecipientRewriteTableModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                recipientRewriteTable.setLog(LOGGER);
                 recipientRewriteTable.configure(configurationProvider.getConfiguration("recipientrewritetable"));
             } catch (ConfigurationException e) {
                 Throwables.propagate(e);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
index c61aa82..f5bb2b4 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/data/CassandraUsersRepositoryModule.java
@@ -27,8 +27,6 @@ import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.cassandra.CassandraUsersRepository;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -39,9 +37,6 @@ import com.google.inject.Singleton;
 import com.google.inject.multibindings.Multibinder;
 
 public class CassandraUsersRepositoryModule extends AbstractModule {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(CassandraUsersRepositoryModule.class);
-
     @Override
     public void configure() {
         bind(CassandraUsersRepository.class).in(Scopes.SINGLETON);
@@ -67,7 +62,6 @@ public class CassandraUsersRepositoryModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                usersRepository.setLog(LOGGER);
                 usersRepository.configure(configurationProvider.getConfiguration("usersrepository"));
             } catch (ConfigurationException e) {
                 Throwables.propagate(e);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java b/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
index 8ea2de3..adfa373 100644
--- a/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
+++ b/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/data/LdapUsersRepositoryModule.java
@@ -25,8 +25,6 @@ import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -38,8 +36,6 @@ import com.google.inject.multibindings.Multibinder;
 
 public class LdapUsersRepositoryModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(LdapUsersRepositoryModule.class);
-
     @Override
     public void configure() {
         bind(ReadOnlyUsersLDAPRepository.class).in(Scopes.SINGLETON);
@@ -63,7 +59,6 @@ public class LdapUsersRepositoryModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                usersRepository.setLog(LOGGER);
                 usersRepository.configure(configurationProvider.getConfiguration("usersrepository"));
                 usersRepository.init();
             } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java
index 1fe7018..577db16 100644
--- a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java
+++ b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/ActiveMQQueueModule.java
@@ -26,8 +26,6 @@ import org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter;
 import org.apache.james.queue.activemq.ActiveMQMailQueueFactory;
 import org.apache.james.queue.activemq.EmbeddedActiveMQ;
 import org.apache.james.queue.api.MailQueueFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
@@ -35,9 +33,6 @@ import com.google.inject.Scopes;
 import com.google.inject.Singleton;
 
 public class ActiveMQQueueModule extends AbstractModule {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(ActiveMQQueueModule.class);
-    
     @Override
     protected void configure() {
         bind(PersistenceAdapter.class).to(KahaDBPersistenceAdapter.class);
@@ -55,7 +50,6 @@ public class ActiveMQQueueModule extends AbstractModule {
     @Singleton
     public MailQueueFactory createActiveMailQueueFactory(ActiveMQMailQueueFactory activeMQMailQueueFactory) {
         activeMQMailQueueFactory.setUseJMX(true);
-        activeMQMailQueueFactory.setLog(LOGGER);
         activeMQMailQueueFactory.init();
         return activeMQMailQueueFactory;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DNSServiceModule.java b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
index 15501a9..449a10b 100644
--- a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
+++ b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/DNSServiceModule.java
@@ -25,8 +25,6 @@ import org.apache.james.dnsservice.dnsjava.DNSJavaService;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -38,8 +36,6 @@ import com.google.inject.multibindings.Multibinder;
 
 public class DNSServiceModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(DNSServiceModule.class);
-
     @Override
     protected void configure() {
         bind(DNSJavaService.class).in(Scopes.SINGLETON);
@@ -62,7 +58,6 @@ public class DNSServiceModule extends AbstractModule {
 
         public void initModule() {
             try {
-                dnsService.setLog(LOGGER);
                 dnsService.configure(configurationProvider.getConfiguration("dnsservice"));
                 dnsService.init();
             } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java
index b5d1b35..4ed9cd7 100644
--- a/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java
+++ b/server/container/guice/guice-common/src/main/java/org/apache/james/modules/server/MailStoreRepositoryModule.java
@@ -30,7 +30,6 @@ import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
 import org.apache.james.utils.InMemoryMailRepositoryStore;
 import org.apache.james.utils.MailRepositoryProvider;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -71,7 +70,6 @@ public class MailStoreRepositoryModule extends AbstractModule {
         public MailRepository get() {
             FileMailRepository fileMailRepository = new FileMailRepository();
             fileMailRepository.setFileSystem(fileSystem);
-            fileMailRepository.setLog(LoggerFactory.getLogger(FileMailRepository.class));
             return fileMailRepository;
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServerModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServerModule.java b/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServerModule.java
index 626ef3a..b4ef788 100644
--- a/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServerModule.java
+++ b/server/container/guice/jmx/src/main/java/org/apache/james/modules/server/JMXServerModule.java
@@ -47,7 +47,6 @@ import org.apache.james.user.api.UsersRepositoryManagementMBean;
 import org.apache.james.user.lib.UsersRepositoryManagement;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.GuiceMailboxManagerResolver;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -94,7 +93,6 @@ public class JMXServerModule extends AbstractModule {
         bind(SieveRepositoryManagementMBean.class).to(SieveRepositoryManagement.class);
         Multibinder<ConfigurationPerformer> configurationMultibinder = Multibinder.newSetBinder(binder(), ConfigurationPerformer.class);
         configurationMultibinder.addBinding().to(JMXModuleConfigurationPerformer.class);
-        configurationMultibinder.addBinding().to(MailboxManagementLogSetter.class);
     }
 
     @Singleton
@@ -154,25 +152,4 @@ public class JMXServerModule extends AbstractModule {
         }
     }
 
-    @Singleton
-    public static class MailboxManagementLogSetter implements ConfigurationPerformer {
-
-        private final MailboxManagerManagement mailboxManagerManagement;
-
-        @Inject
-        public MailboxManagementLogSetter(MailboxManagerManagement mailboxManagerManagement) {
-            this.mailboxManagerManagement = mailboxManagerManagement;
-        }
-
-        @Override
-        public void initModule() {
-            mailboxManagerManagement.setLog(LoggerFactory.getLogger(MailboxManagerManagement.class));
-        }
-
-        @Override
-        public List<Class<? extends Configurable>> forClasses() {
-            return ImmutableList.of();
-        }
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPADomainListModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPADomainListModule.java b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPADomainListModule.java
index 4bb0030..7f2be3d 100644
--- a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPADomainListModule.java
+++ b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPADomainListModule.java
@@ -18,13 +18,8 @@
  ****************************************************************/
 package org.apache.james.modules.data;
 
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableList;
-import com.google.inject.AbstractModule;
-import com.google.inject.Inject;
-import com.google.inject.Scopes;
-import com.google.inject.Singleton;
-import com.google.inject.multibindings.Multibinder;
+import java.util.List;
+
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.jpa.JPADomainList;
@@ -34,7 +29,13 @@ import org.apache.james.utils.ConfigurationProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.List;
+import com.google.common.base.Throwables;
+import com.google.common.collect.ImmutableList;
+import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Scopes;
+import com.google.inject.Singleton;
+import com.google.inject.multibindings.Multibinder;
 
 public class JPADomainListModule extends AbstractModule {
 
@@ -62,7 +63,6 @@ public class JPADomainListModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                jpaDomainList.setLog(LOGGER);
                 jpaDomainList.configure(configurationProvider.getConfiguration("domainlist"));
             } catch (ConfigurationException e) {
                 Throwables.propagate(e);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPARecipientRewriteTableModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPARecipientRewriteTableModule.java b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPARecipientRewriteTableModule.java
index a1f55b3..3741b91 100644
--- a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPARecipientRewriteTableModule.java
+++ b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPARecipientRewriteTableModule.java
@@ -18,28 +18,25 @@
  ****************************************************************/
 package org.apache.james.modules.data;
 
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableList;
-import com.google.inject.AbstractModule;
-import com.google.inject.Inject;
-import com.google.inject.Scopes;
-import com.google.inject.Singleton;
-import com.google.inject.multibindings.Multibinder;
+import java.util.List;
+
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.rrt.api.RecipientRewriteTable;
 import org.apache.james.rrt.jpa.JPARecipientRewriteTable;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-import java.util.List;
+import com.google.common.base.Throwables;
+import com.google.common.collect.ImmutableList;
+import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Scopes;
+import com.google.inject.Singleton;
+import com.google.inject.multibindings.Multibinder;
 
 public class JPARecipientRewriteTableModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(RecipientRewriteTable.class);
-
     @Override
     public void configure() {
         bind(JPARecipientRewriteTable.class).in(Scopes.SINGLETON);
@@ -62,7 +59,6 @@ public class JPARecipientRewriteTableModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                recipientRewriteTable.setLog(LOGGER);
                 recipientRewriteTable.configure(configurationProvider.getConfiguration("recipientrewritetable"));
             } catch (ConfigurationException e) {
                 Throwables.propagate(e);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
index ca26073..061acd3 100644
--- a/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
+++ b/server/container/guice/jpa-common-guice/src/main/java/org/apache/james/modules/data/JPAUsersRepositoryModule.java
@@ -18,28 +18,24 @@
  ****************************************************************/
 package org.apache.james.modules.data;
 
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableList;
-import com.google.inject.AbstractModule;
-import com.google.inject.Inject;
-import com.google.inject.Scopes;
-import com.google.inject.Singleton;
-import com.google.inject.multibindings.Multibinder;
+import java.util.List;
+
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.jpa.JPAUsersRepository;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-import java.util.List;
+import com.google.common.base.Throwables;
+import com.google.common.collect.ImmutableList;
+import com.google.inject.AbstractModule;
+import com.google.inject.Inject;
+import com.google.inject.Scopes;
+import com.google.inject.Singleton;
+import com.google.inject.multibindings.Multibinder;
 
 public class JPAUsersRepositoryModule extends AbstractModule {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(JPAUsersRepositoryModule.class);
-
     @Override
     public void configure() {
         bind(JPAUsersRepository.class).in(Scopes.SINGLETON);
@@ -63,7 +59,6 @@ public class JPAUsersRepositoryModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                usersRepository.setLog(LOGGER);
                 usersRepository.configure(configurationProvider.getConfiguration("usersrepository"));
             } catch (ConfigurationException e) {
                 Throwables.propagate(e);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
index 58e57c3..576bef2 100644
--- a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
+++ b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
@@ -63,9 +63,6 @@ import com.google.inject.multibindings.Multibinder;
 
 public class CamelMailetContainerModule extends AbstractModule {
 
-    private static final Logger CAMEL_LOGGER = LoggerFactory.getLogger(CamelCompositeProcessor.class);
-    private static final Logger SPOOLER_LOGGER = LoggerFactory.getLogger(JamesMailSpooler.class);
-    private static final Logger MAILET_LOGGER = LoggerFactory.getLogger(JamesMailetContext.class);
     private static final Logger LOGGER = LoggerFactory.getLogger(CamelMailetContainerModule.class);
 
     @Override
@@ -92,7 +89,6 @@ public class CamelMailetContainerModule extends AbstractModule {
                                                     UsersRepository localusers,
                                                     DomainList domains) {
         JamesMailetContext jamesMailetContext = new JamesMailetContext();
-        jamesMailetContext.setLog(MAILET_LOGGER);
         jamesMailetContext.setDNSService(dns);
         jamesMailetContext.retrieveRootMailQueue(mailQueueFactory);
         jamesMailetContext.setUsersRepository(localusers);
@@ -145,7 +141,6 @@ public class CamelMailetContainerModule extends AbstractModule {
         }
 
         private void configureProcessors(DefaultCamelContext camelContext) throws Exception {
-            camelCompositeProcessor.setLog(CAMEL_LOGGER);
             camelCompositeProcessor.setCamelContext(camelContext);
             camelCompositeProcessor.configure(getProcessorConfiguration());
             camelCompositeProcessor.init();
@@ -163,7 +158,6 @@ public class CamelMailetContainerModule extends AbstractModule {
 
         private void configureJamesSpooler() throws ConfigurationException {
             jamesMailSpooler.setMailProcessor(camelCompositeProcessor);
-            jamesMailSpooler.setLog(SPOOLER_LOGGER);
             jamesMailSpooler.configure(getJamesSpoolerConfiguration());
             jamesMailSpooler.init();
         }
@@ -179,7 +173,6 @@ public class CamelMailetContainerModule extends AbstractModule {
         }
 
         private void configureMailetContext() throws ConfigurationException {
-            mailetContext.setLog(MAILET_LOGGER);
             mailetContext.configure(getMailetContextConfiguration());
             mailetContext.retrieveRootMailQueue(mailQueueFactory);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/data/MemoryDataModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/data/MemoryDataModule.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/data/MemoryDataModule.java
index e7799e5..7f6ad5c 100644
--- a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/data/MemoryDataModule.java
+++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/data/MemoryDataModule.java
@@ -31,8 +31,6 @@ import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.memory.MemoryUsersRepository;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -44,8 +42,6 @@ import com.google.inject.multibindings.Multibinder;
 
 public class MemoryDataModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(MemoryDataModule.class);
-
     @Override
     protected void configure() {
         install(new SieveFileRepositoryModule());
@@ -79,9 +75,7 @@ public class MemoryDataModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                memoryDomainList.setLog(LOGGER);
                 memoryDomainList.configure(configurationProvider.getConfiguration("domainlist"));
-                memoryRecipientRewriteTable.setLog(LOGGER);
                 memoryRecipientRewriteTable.configure(configurationProvider.getConfiguration("recipientrewritetable"));
             } catch (ConfigurationException e) {
                 Throwables.propagate(e);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java b/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
index f2c4d8a..3273779 100644
--- a/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
+++ b/server/container/guice/protocols/imap/src/main/java/org/apache/james/modules/protocols/IMAPServerModule.java
@@ -36,8 +36,6 @@ import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.modules.Names;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -50,8 +48,6 @@ import com.google.inject.name.Named;
 
 public class IMAPServerModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(IMAPServerModule.class);
-
     @Override
     protected void configure() {
         Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(IMAPModuleConfigurationPerformer.class);
@@ -100,7 +96,6 @@ public class IMAPServerModule extends AbstractModule {
         @Override
         public void initModule()  {
             try {
-                imapServerFactory.setLog(LOGGER);
                 imapServerFactory.configure(configurationProvider.getConfiguration("imapserver"));
                 imapServerFactory.init();
             } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java b/server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java
index 22fbb65..c173643 100644
--- a/server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java
+++ b/server/container/guice/protocols/lmtp/src/main/java/org/apache/james/modules/protocols/LMTPServerModule.java
@@ -25,8 +25,6 @@ import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.lmtpserver.netty.LMTPServerFactory;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -37,8 +35,6 @@ import com.google.inject.multibindings.Multibinder;
 
 public class LMTPServerModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(LMTPServerModule.class);
-
     @Override
     protected void configure() {
         Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(LMTPModuleConfigurationPerformer.class);
@@ -59,7 +55,6 @@ public class LMTPServerModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                lmtpServerFactory.setLog(LOGGER);
                 lmtpServerFactory.configure(configurationProvider.getConfiguration("lmtpserver"));
                 lmtpServerFactory.init();
             } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/ManageSieveServerModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/ManageSieveServerModule.java b/server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/ManageSieveServerModule.java
index 45bffdf..789c404 100644
--- a/server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/ManageSieveServerModule.java
+++ b/server/container/guice/protocols/managedsieve/src/main/java/org/apache/james/modules/protocols/ManageSieveServerModule.java
@@ -27,8 +27,6 @@ import org.apache.james.managesieveserver.netty.ManageSieveServerFactory;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
 import org.apache.james.utils.GuiceProbe;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -39,8 +37,6 @@ import com.google.inject.multibindings.Multibinder;
 
 public class ManageSieveServerModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(ManageSieveServerModule.class);
-
     @Override
     protected void configure() {
         bind(CoreCommands.class).to(CoreProcessor.class);
@@ -63,7 +59,6 @@ public class ManageSieveServerModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                manageSieveServerFactory.setLog(LOGGER);
                 manageSieveServerFactory.configure(configurationProvider.getConfiguration("managesieveserver"));
                 manageSieveServerFactory.init();
             } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java b/server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java
index 4efd481..33afc9d 100644
--- a/server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java
+++ b/server/container/guice/protocols/pop/src/main/java/org/apache/james/modules/protocols/POP3ServerModule.java
@@ -25,8 +25,6 @@ import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.pop3server.netty.POP3ServerFactory;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -37,8 +35,6 @@ import com.google.inject.multibindings.Multibinder;
 
 public class POP3ServerModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(POP3ServerModule.class);
-
     @Override
     protected void configure() {
         Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(POP3ModuleConfigurationPerformer.class);
@@ -59,7 +55,6 @@ public class POP3ServerModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                pop3ServerFactory.setLog(LOGGER);
                 pop3ServerFactory.configure(configurationProvider.getConfiguration("pop3server"));
                 pop3ServerFactory.init();
             } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java b/server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java
index bb5f233..5ca76a3 100644
--- a/server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java
+++ b/server/container/guice/protocols/smtp/src/main/java/org/apache/james/modules/protocols/SMTPServerModule.java
@@ -26,8 +26,6 @@ import org.apache.james.smtpserver.SendMailHandler;
 import org.apache.james.smtpserver.netty.SMTPServerFactory;
 import org.apache.james.utils.ConfigurationPerformer;
 import org.apache.james.utils.ConfigurationProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
@@ -38,8 +36,6 @@ import com.google.inject.multibindings.Multibinder;
 
 public class SMTPServerModule extends AbstractModule {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(SMTPServerModule.class);
-
     @Override
     protected void configure() {
         Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(SMTPModuleConfigurationPerformer.class);
@@ -64,7 +60,6 @@ public class SMTPServerModule extends AbstractModule {
         @Override
         public void initModule() {
             try {
-                smtpServerFactory.setLog(LOGGER);
                 smtpServerFactory.configure(configurationProvider.getConfiguration("smtpserver"));
                 smtpServerFactory.init();
                 sendMailHandler.init(null);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/LogEnabled.java
----------------------------------------------------------------------
diff --git a/server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/LogEnabled.java b/server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/LogEnabled.java
index b398b9d..d829441 100644
--- a/server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/LogEnabled.java
+++ b/server/container/lifecycle-api/src/main/java/org/apache/james/lifecycle/api/LogEnabled.java
@@ -25,7 +25,10 @@ import org.slf4j.Logger;
  * Indicates that a services requires general logging. Note that this log should
  * only be used for general service operations. A context sensitive log should
  * be preferred where that is available within the context of a call.
+ *
+ * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
  */
+@Deprecated
 public interface LogEnabled {
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
index 517326a..11caf4b 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
@@ -32,7 +32,6 @@ import javax.mail.Flags;
 import javax.management.NotCompliantMBeanException;
 import javax.management.StandardMBean;
 
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
@@ -43,6 +42,7 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MailboxQuery;
 import org.apache.james.util.MDCBuilder;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Preconditions;
@@ -51,10 +51,10 @@ import com.google.common.base.Throwables;
 /**
  * JMX managmenent for Mailboxes
  */
-public class MailboxManagerManagement extends StandardMBean implements MailboxManagerManagementMBean, LogEnabled {
+public class MailboxManagerManagement extends StandardMBean implements MailboxManagerManagementMBean {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxManagerManagement.class);
 
     private MailboxManager mailboxManager;
-    private Logger log;
     private static final boolean RECENT = true;
 
     @Inject
@@ -87,7 +87,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
             }
             return true;
         } catch (MailboxException e) {
-            log.error("Error while remove mailboxes for user " + username, e);
+            LOGGER.error("Error while remove mailboxes for user " + username, e);
         } catch (IOException e) {
             throw Throwables.propagate(e);
         } finally {
@@ -97,14 +97,6 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
     }
 
     /**
-     * @see org.apache.james.lifecycle.api.LogEnabled#setLog(org.slf4j.Logger)
-     */
-    @Override
-    public void setLog(Logger log) {
-        this.log = log;
-    }
-
-    /**
      * @see
      * org.apache.james.adapter.mailbox.MailboxManagerManagementMBean#listMailboxes
      * (java.lang.String)
@@ -128,7 +120,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
                 .sorted()
                 .collect(Guavate.toImmutableList());
         } catch (MailboxException e) {
-            log.error("Error list mailboxes for user " + username, e);
+            LOGGER.error("Error list mailboxes for user " + username, e);
         } catch (IOException e) {
             throw Throwables.propagate(e);
         } finally {
@@ -152,7 +144,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
             mailboxManager.startProcessingRequest(session);
             mailboxManager.createMailbox(mailboxPath, session);
         } catch (Exception e) {
-            log.error("Unable to create mailbox", e);
+            LOGGER.error("Unable to create mailbox", e);
         } finally {
             closeSession(session);
         }
@@ -173,7 +165,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
             mailboxManager.startProcessingRequest(session);
             mailboxManager.deleteMailbox(mailboxPath, session);
         } catch (Exception e) {
-            log.error("Unable to create mailbox", e);
+            LOGGER.error("Unable to create mailbox", e);
         } finally {
             closeSession(session);
         }
@@ -200,7 +192,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
             messageManager.appendMessage(emlFileAsStream, new Date(),
                     session, RECENT, new Flags());
         } catch (Exception e) {
-            log.error("Unable to create mailbox", e);
+            LOGGER.error("Unable to create mailbox", e);
         } finally {
             closeSession(session);
         }
@@ -212,7 +204,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
             try {
                 mailboxManager.logout(session, true);
             } catch (MailboxException e) {
-                log.error("Can not log session out", e);
+                LOGGER.error("Can not log session out", e);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java b/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
index 30385cd..5a19e55 100644
--- a/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
+++ b/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
@@ -33,9 +33,9 @@ import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageRange;
-import org.apache.james.mailbox.store.JVMMailboxPathLocker;
 import org.apache.james.mailbox.store.FakeAuthenticator;
 import org.apache.james.mailbox.store.FakeAuthorizator;
+import org.apache.james.mailbox.store.JVMMailboxPathLocker;
 import org.apache.james.mailbox.store.StoreMailboxManager;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
@@ -76,8 +76,7 @@ public class MailboxManagementTest {
         mailboxManager.init();
         mailboxManagerManagement = new MailboxManagerManagement();
         mailboxManagerManagement.setMailboxManager(mailboxManager);
-        mailboxManagerManagement.setLog(LOGGER);
-        session = mailboxManager.createSystemSession("TEST", LOGGER);
+        session = mailboxManager.createSystemSession("TEST");
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
----------------------------------------------------------------------
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java b/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
index e809afe..4c93944 100644
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
+++ b/server/container/spring/src/main/java/org/apache/james/container/spring/bean/factory/mailrepositorystore/MailRepositoryStoreBeanFactory.java
@@ -36,13 +36,15 @@ import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mailrepository.api.MailRepositoryStore;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
 
 /**
  * Provides a registry of mail repositories. A mail repository is uniquely
  * identified by its destinationURL, type and model.
  */
-public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implements MailRepositoryStore, LogEnabled, Configurable {
+public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implements MailRepositoryStore, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailRepositoryStoreBeanFactory.class);
 
     /**
      * Map of [destinationURL + type]->Repository
@@ -65,11 +67,6 @@ public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implemen
     private HierarchicalConfiguration configuration;
 
     /**
-     * The Logger
-     */
-    private Logger logger;
-
-    /**
      * @see org.apache.james.lifecycle.api.Configurable#configure(org.apache.commons.configuration.HierarchicalConfiguration)
      */
     public void configure(HierarchicalConfiguration configuration) throws ConfigurationException {
@@ -80,7 +77,7 @@ public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implemen
     @SuppressWarnings("unchecked")
     public void init() throws Exception {
 
-        getLogger().info("JamesMailStore init...");
+        LOGGER.info("JamesMailStore init...");
 
         repositories = new ReferenceMap();
         classes = new HashMap<>();
@@ -110,7 +107,7 @@ public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implemen
 
         String className = repConf.getString("[@class]");
 
-        boolean infoEnabled = getLogger().isInfoEnabled();
+        boolean infoEnabled = LOGGER.isInfoEnabled();
 
         for (String protocol : repConf.getStringArray("protocols.protocol")) {
             HierarchicalConfiguration defConf = null;
@@ -122,7 +119,7 @@ public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implemen
             }
 
             if (infoEnabled) {
-                getLogger().info("Registering Repository instance of class {} to handle {} protocol requests", className, protocol);
+                LOGGER.info("Registering Repository instance of class {} to handle {} protocol requests", className, protocol);
             }
 
             if (classes.get(protocol) != null) {
@@ -166,16 +163,16 @@ public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implemen
         MailRepository reply = repositories.get(repID);
         StringBuffer logBuffer;
         if (reply != null) {
-            if (getLogger().isDebugEnabled()) {
+            if (LOGGER.isDebugEnabled()) {
                 logBuffer = new StringBuffer(128).append("obtained repository: ").append(repID).append(",").append(reply.getClass());
-                getLogger().debug(logBuffer.toString());
+                LOGGER.debug(logBuffer.toString());
             }
             return reply;
         } else {
             String repClass = classes.get(protocol);
-            if (getLogger().isDebugEnabled()) {
+            if (LOGGER.isDebugEnabled()) {
                 logBuffer = new StringBuffer(128).append("obtained repository: ").append(repClass).append(" to handle: ").append(protocol).append(" with key ").append(protocol);
-                getLogger().debug(logBuffer.toString());
+                LOGGER.debug(logBuffer.toString());
             }
 
             // If default values have been set, create a new repository
@@ -198,7 +195,7 @@ public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implemen
                 reply = (MailRepository) getBeanFactory().autowire(clazz, ConfigurableListableBeanFactory.AUTOWIRE_AUTODETECT, false);
 
                 if (reply instanceof LogEnabled) {
-                    ((LogEnabled) reply).setLog(logger);
+                    ((LogEnabled) reply).setLog(LOGGER);
                 }
 
                 if (reply instanceof Configurable) {
@@ -208,14 +205,14 @@ public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implemen
                 reply = (MailRepository) getBeanFactory().initializeBean(reply, protocol);
 
                 repositories.put(repID, reply);
-                if (getLogger().isInfoEnabled()) {
+                if (LOGGER.isInfoEnabled()) {
                     logBuffer = new StringBuffer(128).append("added repository: ").append(repID).append("->").append(repClass);
-                    getLogger().info(logBuffer.toString());
+                    LOGGER.info(logBuffer.toString());
                 }
                 return reply;
             } catch (Exception e) {
-                if (getLogger().isWarnEnabled()) {
-                    getLogger().warn("Exception while creating repository:" + e.getMessage(), e);
+                if (LOGGER.isWarnEnabled()) {
+                    LOGGER.warn("Exception while creating repository:" + e.getMessage(), e);
                 }
                 throw new MailRepositoryStoreException("Cannot find or init repository", e);
             }
@@ -230,12 +227,4 @@ public class MailRepositoryStoreBeanFactory extends AbstractBeanFactory implemen
         return new ArrayList<>(repositories.keySet());
     }
 
-    public void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
-    private Logger getLogger() {
-        return logger;
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogEnabledBeanPostProcessor.java
----------------------------------------------------------------------
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogEnabledBeanPostProcessor.java b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogEnabledBeanPostProcessor.java
index 9b76bda..6402211 100644
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogEnabledBeanPostProcessor.java
+++ b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogEnabledBeanPostProcessor.java
@@ -22,7 +22,10 @@ import org.apache.james.lifecycle.api.LogEnabled;
 
 /**
  * Inject Commons Log to beans which implement LogEnabled.
+ *
+ * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
  */
+@Deprecated
 public class LogEnabledBeanPostProcessor extends AbstractLifecycleBeanPostProcessor<LogEnabled> {
 
     private LogProvider provider;

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProviderManagementMBean.java
----------------------------------------------------------------------
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProviderManagementMBean.java b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProviderManagementMBean.java
index a5b8d48..605396c 100644
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProviderManagementMBean.java
+++ b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProviderManagementMBean.java
@@ -23,7 +23,9 @@ import java.util.Map;
 
 /**
  * Allow to change loglevel via JMX
+ * @deprecated static configuration via SLF4J implementation configuration file is advised
  */
+@Deprecated
 public interface LogProviderManagementMBean {
 
     List<String> getSupportedLogLevels();

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
----------------------------------------------------------------------
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java b/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
index 4236b61..e9fb853 100644
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
+++ b/server/container/spring/src/main/java/org/apache/james/container/spring/tool/James23Importer.java
@@ -30,7 +30,6 @@ import javax.mail.MessagingException;
 import org.apache.james.core.MimeMessageInputStream;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.api.DomainListException;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageManager;
@@ -44,13 +43,13 @@ import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Tool to import James 2.3 users and mails into James 3.0.
  */
-public class James23Importer implements LogEnabled {
-
-    private Logger log;
+public class James23Importer {
+    private static final Logger LOGGER = LoggerFactory.getLogger(James23Importer.class);
 
     /**
      * James 3.0 users repository.
@@ -114,7 +113,7 @@ public class James23Importer implements LogEnabled {
             String userName23 = j23uIt.next();
             String userName30 = convert23UserTo30(userName23);
             james30UsersRepository.addUser(userName30, defaultPassword);
-            log.info("New user is copied from 2.3 to 3.0 with username=" + userName30);
+            LOGGER.info("New user is copied from 2.3 to 3.0 with username=" + userName30);
         }
     }
 
@@ -171,11 +170,6 @@ public class James23Importer implements LogEnabled {
 
     }
 
-    @Override
-    public void setLog(Logger log) {
-        this.log = log;
-    }
-
     /**
      * Utility method to convert a James 2.3 username to a James 3.0 username.
      * To achieve this, we need to add the default James 3.0 domain because 2.3

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/util/src/main/java/org/apache/james/util/retry/naming/LoggingRetryHandler.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/retry/naming/LoggingRetryHandler.java b/server/container/util/src/main/java/org/apache/james/util/retry/naming/LoggingRetryHandler.java
index 3da943c..8baa744 100644
--- a/server/container/util/src/main/java/org/apache/james/util/retry/naming/LoggingRetryHandler.java
+++ b/server/container/util/src/main/java/org/apache/james/util/retry/naming/LoggingRetryHandler.java
@@ -25,13 +25,13 @@ import javax.naming.NamingException;
 import org.apache.james.util.retry.api.ExceptionRetryingProxy;
 import org.apache.james.util.retry.api.RetrySchedule;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Abstract class <code>LoggingRetryHandler</code> implements logging of failures 
  */
 abstract public class LoggingRetryHandler extends NamingExceptionRetryHandler {
-    
-    private Logger _logger = null;
+    private static final Logger LOGGER = LoggerFactory.getLogger(LoggingRetryHandler.class);
 
     /**
      * Creates a new instance of LoggingRetryHandler.
@@ -39,12 +39,10 @@ abstract public class LoggingRetryHandler extends NamingExceptionRetryHandler {
      * @param exceptionClasses
      * @param proxy
      * @param maxRetries
-     * @param logger
      */
     public LoggingRetryHandler(Class<?>[] exceptionClasses, ExceptionRetryingProxy proxy,
-            RetrySchedule schedule, int maxRetries, Logger logger) {
+                               RetrySchedule schedule, int maxRetries) {
         super(exceptionClasses, proxy, schedule, maxRetries);
-        _logger = logger;
     }
 
     /**
@@ -52,7 +50,7 @@ abstract public class LoggingRetryHandler extends NamingExceptionRetryHandler {
     @Override
     public void postFailure(NamingException ex, int retryCount) {
         super.postFailure(ex, retryCount);
-        _logger.info(
+        LOGGER.info(
                 "Retry failure: " + ex.getLocalizedMessage() + "\n Retrying in " + getRetryInterval(retryCount) / 1000 + " seconds"
                 );
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/util/src/main/java/org/apache/james/util/retry/naming/RetryingContext.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/retry/naming/RetryingContext.java b/server/container/util/src/main/java/org/apache/james/util/retry/naming/RetryingContext.java
index e67d366..18452a5 100644
--- a/server/container/util/src/main/java/org/apache/james/util/retry/naming/RetryingContext.java
+++ b/server/container/util/src/main/java/org/apache/james/util/retry/naming/RetryingContext.java
@@ -35,7 +35,6 @@ import javax.naming.ServiceUnavailableException;
 
 import org.apache.james.util.retry.api.ExceptionRetryingProxy;
 import org.apache.james.util.retry.api.RetrySchedule;
-import org.slf4j.Logger;
 
 /**
  * <code>RetryingContext</code> retries the methods defined by <code>javax.naming.Context</code>
@@ -55,7 +54,6 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
     private Context _delegate = null;
     private RetrySchedule _schedule = null;
     private int _maxRetries = 0;
-    private Logger _logger = null;
 
     /**
      * Creates a new instance of RetryingContext.
@@ -74,12 +72,11 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      * 
      * @param schedule
      * @param maxRetries
-     * @param logger
      * @throws NamingException
      */
-    public RetryingContext(RetrySchedule schedule, int maxRetries, Logger logger)
+    public RetryingContext(RetrySchedule schedule, int maxRetries)
             throws NamingException {
-        this(DEFAULT_EXCEPTION_CLASSES, schedule, maxRetries, logger);
+        this(DEFAULT_EXCEPTION_CLASSES, schedule, maxRetries);
     }
 
     /**
@@ -88,17 +85,15 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      * @param exceptionClasses
      * @param schedule
      * @param maxRetries
-     * @param logger
      * @throws NamingException
      */
-    public RetryingContext(Class<?>[] exceptionClasses, RetrySchedule schedule, int maxRetries, Logger logger)
+    public RetryingContext(Class<?>[] exceptionClasses, RetrySchedule schedule, int maxRetries)
             throws NamingException {
         this();
         _schedule = schedule;
         _maxRetries = maxRetries;
-        _logger = logger;
         _delegate = (Context) new LoggingRetryHandler(exceptionClasses, this,
-                _schedule, _maxRetries,  _logger) {
+                _schedule, _maxRetries) {
 
             @Override
             public Object operation() throws Exception {
@@ -114,8 +109,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
     @Override
     public Object addToEnvironment(final String propName, final Object propVal)
             throws NamingException {
-        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -129,8 +124,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void bind(final Name name, final Object obj) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -145,8 +140,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void bind(final String name, final Object obj) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -161,8 +156,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void close() throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -178,8 +173,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public Name composeName(final Name name, final Name prefix) throws NamingException {
-        return (Name) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return (Name) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -193,8 +188,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public String composeName(final String name, final String prefix) throws NamingException {
-        return (String) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return (String) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -209,7 +204,7 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
     @Override
     public Context createSubcontext(final Name name) throws NamingException {
         final Context context = getDelegate();
-        return new RetryingContext(getSchedule(), getMaxRetries(), getLogger()) {
+        return new RetryingContext(getSchedule(), getMaxRetries()) {
 
             @Override
             public Context newDelegate() throws NamingException {
@@ -224,7 +219,7 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
     @Override
     public Context createSubcontext(final String name) throws NamingException {
         final Context context = getDelegate();
-        return new RetryingContext( getSchedule(), getMaxRetries(), getLogger()) {
+        return new RetryingContext( getSchedule(), getMaxRetries()) {
 
             @Override
             public Context newDelegate() throws NamingException {
@@ -239,8 +234,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void destroySubcontext(final Name name) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -255,8 +250,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void destroySubcontext(final String name) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -272,7 +267,7 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
     @Override
     public Hashtable<?, ?> getEnvironment() throws NamingException {
         return (Hashtable<?, ?>) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this,
-                _schedule, _maxRetries,  _logger) {
+                _schedule, _maxRetries) {
 
             @Override
             public Object operation() throws NamingException {
@@ -286,8 +281,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public String getNameInNamespace() throws NamingException {
-        return (String) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return (String) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -301,8 +296,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public NameParser getNameParser(final Name name) throws NamingException {
-        return (NameParser) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return (NameParser) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -316,8 +311,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public NameParser getNameParser(final String name) throws NamingException {
-        return (NameParser) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return (NameParser) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -333,7 +328,7 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
     @Override
     public NamingEnumeration<NameClassPair> list(final Name name) throws NamingException {
         return (NamingEnumeration<NameClassPair>) new LoggingRetryHandler(
-                DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,  _logger) {
+                DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries) {
 
             @Override
             public Object operation() throws NamingException {
@@ -349,7 +344,7 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
     @Override
     public NamingEnumeration<NameClassPair> list(final String name) throws NamingException {
         return (NamingEnumeration<NameClassPair>) new LoggingRetryHandler(
-                DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,  _logger) {
+                DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries) {
 
             @Override
             public Object operation() throws NamingException {
@@ -365,7 +360,7 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
     @Override
     public NamingEnumeration<Binding> listBindings(final Name name) throws NamingException {
         return (NamingEnumeration<Binding>) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES,
-                this, _schedule, _maxRetries,  _logger) {
+                this, _schedule, _maxRetries) {
 
             @Override
             public Object operation() throws NamingException {
@@ -381,7 +376,7 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
     @Override
     public NamingEnumeration<Binding> listBindings(final String name) throws NamingException {
         return (NamingEnumeration<Binding>) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES,
-                this, _schedule, _maxRetries,  _logger) {
+                this, _schedule, _maxRetries) {
 
             @Override
             public Object operation() throws NamingException {
@@ -395,8 +390,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public Object lookup(final Name name) throws NamingException {
-        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -410,8 +405,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public Object lookup(final String name) throws NamingException {
-        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -425,8 +420,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public Object lookupLink(final Name name) throws NamingException {
-        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -440,8 +435,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public Object lookupLink(final String name) throws NamingException {
-        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -455,8 +450,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void rebind(final Name name, final Object obj) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -471,8 +466,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void rebind(final String name, final Object obj) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -487,8 +482,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public Object removeFromEnvironment(final String propName) throws NamingException {
-        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries,
-                 _logger) {
+        return new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -502,8 +497,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void rename(final Name oldName, final Name newName) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -518,8 +513,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void rename(final String oldName, final String newName) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -534,8 +529,8 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void unbind(final Name name) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries
+        ) {
 
             @Override
             public Object operation() throws NamingException {
@@ -550,8 +545,7 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
      */
     @Override
     public void unbind(final String name) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries, 
-                _logger) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, _schedule, _maxRetries) {
 
             @Override
             public Object operation() throws NamingException {
@@ -592,11 +586,4 @@ abstract public class RetryingContext implements Context, ExceptionRetryingProxy
         return _maxRetries;
     }
 
-    /**
-     * @return the logger
-     */
-    public Logger getLogger() {
-        return _logger;
-    }
-
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[04/38] james-project git commit: JAMES-2114 MDC contectual logging for JMAP

Posted by bt...@apache.org.
JAMES-2114 MDC contectual logging for JMAP


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/176d7bf5
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/176d7bf5
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/176d7bf5

Branch: refs/heads/master
Commit: 176d7bf5982aa348e46a363a7fee41055a2f8bb0
Parents: 47ceea4
Author: benwa <bt...@linagora.com>
Authored: Wed Aug 23 16:21:04 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:38 2017 +0700

----------------------------------------------------------------------
 .../java/org/apache/james/jmap/JMAPServer.java  |  4 ++
 .../java/org/apache/james/jmap/JMAPServlet.java | 23 +++++---
 .../java/org/apache/james/jmap/MDCFilter.java   | 56 ++++++++++++++++++++
 .../james/jmap/methods/GetMailboxesMethod.java  | 13 ++++-
 .../jmap/methods/GetMessageListMethod.java      | 20 ++++++-
 .../james/jmap/methods/GetMessagesMethod.java   | 13 ++++-
 .../jmap/methods/GetVacationResponseMethod.java | 11 +++-
 .../james/jmap/methods/RequestHandler.java      | 20 +++++--
 .../james/jmap/methods/SetMailboxesMethod.java  | 16 +++++-
 .../james/jmap/methods/SetMessagesMethod.java   | 18 ++++++-
 .../jmap/methods/SetVacationResponseMethod.java | 12 ++++-
 .../apache/james/jmap/methods/ValueWithId.java  |  9 ++++
 .../james/jmap/model/CreationMessage.java       |  7 +++
 .../james/jmap/model/CreationMessageId.java     |  8 +++
 .../james/jmap/model/MailboxCreationId.java     |  8 +++
 .../james/jmap/model/MailboxProperty.java       |  8 +++
 .../james/jmap/model/MessageProperties.java     |  9 ++++
 .../james/jmap/model/VacationResponse.java      | 11 ++++
 .../org/apache/james/jmap/JMAPServletTest.java  |  4 +-
 .../james/jmap/methods/RequestHandlerTest.java  |  4 +-
 20 files changed, 249 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java
index 5d7ad49..2881e68 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java
@@ -58,6 +58,7 @@ public class JMAPServer implements Configurable {
                         .with(authenticationServlet)
                     .filter(JMAPUrls.AUTHENTICATION)
                         .with(new AllowAllCrossOriginRequests(bypass(authenticationFilter).on("POST").and("OPTIONS").only()))
+                        .and(new MDCFilter())
                         .only()
                     .serve(JMAPUrls.JMAP)
                         .with(jmapServlet)
@@ -66,16 +67,19 @@ public class JMAPServer implements Configurable {
                         .and(new LogbookFilter(logbook()))
                         .and(userProvisioningFilter)
                         .and(defaultMailboxesProvisioningFilter)
+                        .and(new MDCFilter())
                         .only()
                     .serveAsOneLevelTemplate(JMAPUrls.DOWNLOAD)
                         .with(downloadServlet)
                     .filterAsOneLevelTemplate(JMAPUrls.DOWNLOAD)
                         .with(new AllowAllCrossOriginRequests(bypass(authenticationFilter).on("OPTIONS").only()))
+                        .and(new MDCFilter())
                         .only()
                     .serve(JMAPUrls.UPLOAD)
                         .with(uploadServlet)
                     .filterAsOneLevelTemplate(JMAPUrls.UPLOAD)
                         .with(new AllowAllCrossOriginRequests(bypass(authenticationFilter).on("OPTIONS").only()))
+                        .and(new MDCFilter())
                         .only()
                     .build()));
         } else {

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServlet.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServlet.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServlet.java
index 2b17bd8..8ace83e 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServlet.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServlet.java
@@ -45,6 +45,7 @@ import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.Throwables;
 
 public class JMAPServlet extends HttpServlet {
 
@@ -67,13 +68,13 @@ public class JMAPServlet extends HttpServlet {
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException {
         TimeMetric timeMetric = metricFactory.timer("JMAP-request");
         try {
-            List<Object[]> responses = 
+            List<Object[]> responses =
                 requestAsJsonStream(req)
-                .map(ProtocolRequest::deserialize)
-                .map(x -> AuthenticatedProtocolRequest.decorate(x, req))
-                .flatMap(requestHandler::handle)
-                .map(ProtocolResponse::asProtocolSpecification)
-                .collect(Collectors.toList());
+                    .map(ProtocolRequest::deserialize)
+                    .map(x -> AuthenticatedProtocolRequest.decorate(x, req))
+                    .flatMap(this::handle)
+                    .map(ProtocolResponse::asProtocolSpecification)
+                    .collect(Collectors.toList());
 
             resp.setContentType(JSON_CONTENT_TYPE);
             objectMapper.writeValue(resp.getOutputStream(), responses);
@@ -87,7 +88,15 @@ public class JMAPServlet extends HttpServlet {
             timeMetric.stopAndPublish();
         }
     }
-    
+
+    private Stream<? extends ProtocolResponse> handle(AuthenticatedProtocolRequest request) {
+        try {
+            return requestHandler.handle(request);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
+    }
+
     private Stream<JsonNode[]> requestAsJsonStream(HttpServletRequest req) throws IOException, JsonParseException, JsonMappingException {
         return Arrays.stream(
                 objectMapper.readValue(req.getInputStream(), JsonNode[][].class));

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/MDCFilter.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/MDCFilter.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/MDCFilter.java
new file mode 100644
index 0000000..18b45c4
--- /dev/null
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/MDCFilter.java
@@ -0,0 +1,56 @@
+/****************************************************************
+ * 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.jmap;
+
+import java.io.Closeable;
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+import org.apache.james.util.MDCBuilder;
+
+public class MDCFilter implements Filter {
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+
+    }
+
+    @Override
+    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "JMAP")
+                     .addContext(MDCBuilder.IP, request.getRemoteAddr())
+                     .addContext(MDCBuilder.HOST, request.getRemoteHost())
+                     .build()) {
+            chain.doFilter(request, response);
+        }
+    }
+
+    @Override
+    public void destroy() {
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java
index a32757e..b15a17e 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMailboxesMethod.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.jmap.methods;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Optional;
@@ -41,6 +43,7 @@ import org.apache.james.mailbox.model.MailboxMetaData;
 import org.apache.james.mailbox.model.MailboxQuery;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.apache.james.util.MDCBuilder;
 import org.apache.james.util.OptionalConverter;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -80,13 +83,21 @@ public class GetMailboxesMethod implements Method {
         Preconditions.checkArgument(request instanceof GetMailboxesRequest);
         GetMailboxesRequest mailboxesRequest = (GetMailboxesRequest) request;
         TimeMetric timeMetric = metricFactory.timer(JMAP_PREFIX + METHOD_NAME.getName());
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.ACTION, "GET_MAILBOXES")
+                     .addContext("accountId", mailboxesRequest.getAccountId())
+                     .addContext("mailboxIds", mailboxesRequest.getIds())
+                     .addContext("properties", mailboxesRequest.getProperties())
+                     .build()) {
             return Stream.of(
                     JmapResponse.builder().clientId(clientId)
                     .response(getMailboxesResponse(mailboxesRequest, mailboxSession))
                     .properties(mailboxesRequest.getProperties().map(this::ensureContainsId))
                     .responseName(RESPONSE_NAME)
                     .build());
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             timeMetric.stopAndPublish();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessageListMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessageListMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessageListMethod.java
index 24fbe46..a128fcc 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessageListMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessageListMethod.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.jmap.methods;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.util.List;
 import java.util.Optional;
 import java.util.Set;
@@ -45,6 +47,7 @@ import org.apache.james.mailbox.model.MultimailboxesSearchQuery;
 import org.apache.james.mailbox.model.SearchQuery;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.apache.james.util.MDCBuilder;
 
 import com.github.steveash.guavate.Guavate;
 import com.google.common.annotations.VisibleForTesting;
@@ -94,13 +97,28 @@ public class GetMessageListMethod implements Method {
         
         GetMessageListRequest messageListRequest = (GetMessageListRequest) request;
         GetMessageListResponse messageListResponse = getMessageListResponse(messageListRequest, mailboxSession);
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.ACTION, "GET_MESSAGE_LIST")
+                     .addContext("accountId", messageListRequest.getAccountId())
+                     .addContext("limit", messageListRequest.getLimit())
+                     .addContext("anchor", messageListRequest.getAnchor())
+                     .addContext("offset", messageListRequest.getAnchorOffset())
+                     .addContext("properties", messageListRequest.getFetchMessageProperties())
+                     .addContext("position", messageListRequest.getPosition())
+                     .addContext("filters", messageListRequest.getFilter())
+                     .addContext("sorts", messageListRequest.getSort())
+                     .addContext("isFetchMessage", messageListRequest.isFetchMessages())
+                     .addContext("isCollapseThread", messageListRequest.isCollapseThreads())
+                     .build()) {
             Stream<JmapResponse> jmapResponse = Stream.of(JmapResponse.builder().clientId(clientId)
                     .response(messageListResponse)
                     .responseName(RESPONSE_NAME)
                     .build());
             return Stream.concat(jmapResponse,
                     processGetMessages(messageListRequest, messageListResponse, clientId, mailboxSession));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             timeMetric.stopAndPublish();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java
index acaf9cc..aa4a439 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetMessagesMethod.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.jmap.methods;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.util.Collection;
 import java.util.List;
 import java.util.Optional;
@@ -45,6 +47,7 @@ import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.apache.james.util.MDCBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -95,13 +98,21 @@ public class GetMessagesMethod implements Method {
         GetMessagesRequest getMessagesRequest = (GetMessagesRequest) request;
         MessageProperties outputProperties = getMessagesRequest.getProperties().toOutputProperties();
         TimeMetric timeMetric = metricFactory.timer(JMAP_PREFIX + METHOD_NAME.getName());
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.ACTION, "GET_MESSAGES")
+                     .addContext("accountId", getMessagesRequest.getAccountId())
+                     .addContext("ids", getMessagesRequest.getIds())
+                     .addContext("properties", getMessagesRequest.getProperties())
+                     .build()) {
             return Stream.of(JmapResponse.builder().clientId(clientId)
                             .response(getMessagesResponse(mailboxSession, getMessagesRequest))
                             .responseName(RESPONSE_NAME)
                             .properties(outputProperties.getOptionalMessageProperties())
                             .filterProvider(buildOptionalHeadersFilteringFilterProvider(outputProperties))
                             .build());
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             timeMetric.stopAndPublish();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetVacationResponseMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetVacationResponseMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetVacationResponseMethod.java
index abd4541..6653976 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetVacationResponseMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/GetVacationResponseMethod.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.jmap.methods;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.util.stream.Stream;
 
 import javax.inject.Inject;
@@ -33,9 +35,11 @@ import org.apache.james.jmap.model.VacationResponse;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.apache.james.util.MDCBuilder;
 import org.apache.james.util.date.ZonedDateTimeProvider;
 
 import com.google.common.base.Preconditions;
+import com.google.common.base.Throwables;
 
 public class GetVacationResponseMethod implements Method {
 
@@ -71,12 +75,17 @@ public class GetVacationResponseMethod implements Method {
         Preconditions.checkArgument(request instanceof GetVacationRequest);
 
         TimeMetric timeMetric = metricFactory.timer(JMAP_PREFIX + METHOD_NAME.getName());
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.ACTION, "VACATION")
+                     .build()) {
             return Stream.of(JmapResponse.builder()
                 .clientId(clientId)
                 .responseName(RESPONSE_NAME)
                 .response(process(mailboxSession))
                 .build());
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             timeMetric.stopAndPublish();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java
index 19a8633..f62273c 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/RequestHandler.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.jmap.methods;
 
+import java.io.Closeable;
 import java.io.IOException;
 import java.util.Map;
 import java.util.Optional;
@@ -33,6 +34,7 @@ import org.apache.commons.lang.NotImplementedException;
 import org.apache.james.jmap.model.AuthenticatedProtocolRequest;
 import org.apache.james.jmap.model.ProtocolResponse;
 import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.util.MDCBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -52,11 +54,19 @@ public class RequestHandler {
                 .collect(Collectors.toMap(Method::requestHandled, Function.identity()));
     }
 
-    public Stream<ProtocolResponse> handle(AuthenticatedProtocolRequest request) {
-        return Optional.ofNullable(methods.get(request.getMethodName()))
-                        .map(extractAndProcess(request))
-                        .map(jmapResponseWriter::formatMethodResponse)
-                        .orElseThrow(() -> new IllegalStateException("unknown method " + request.getMethodName()));
+    public Stream<ProtocolResponse> handle(AuthenticatedProtocolRequest request) throws IOException {
+        Optional<MailboxSession> mailboxSession = Optional.ofNullable(request.getMailboxSession());
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.USER, mailboxSession.map(MailboxSession::getUser).map(MailboxSession.User::getUserName))
+                     .addContext(MDCBuilder.SESSION_ID, mailboxSession.map(MailboxSession::getSessionId))
+                     .addContext(MDCBuilder.ACTION, request.getMethodName().getName())
+                     .build()) {
+            return Optional.ofNullable(methods.get(request.getMethodName()))
+                .map(extractAndProcess(request))
+                .map(jmapResponseWriter::formatMethodResponse)
+                .orElseThrow(() -> new IllegalStateException("unknown method " + request.getMethodName()));
+        }
     }
     
     private Function<Method, Stream<JmapResponse>> extractAndProcess(AuthenticatedProtocolRequest request) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesMethod.java
index ba125b2..f73f788 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMailboxesMethod.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.jmap.methods;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 import java.util.stream.Stream;
 
@@ -30,9 +32,11 @@ import org.apache.james.jmap.model.SetMailboxesResponse;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
+import com.google.common.base.Throwables;
 
 public class SetMailboxesMethod implements Method {
 
@@ -66,13 +70,21 @@ public class SetMailboxesMethod implements Method {
         Preconditions.checkArgument(request instanceof SetMailboxesRequest);
         
         TimeMetric timeMetric = metricFactory.timer(JMAP_PREFIX + METHOD_NAME.getName());
-        try {
-            SetMailboxesRequest setMailboxesRequest = (SetMailboxesRequest) request;
+        SetMailboxesRequest setMailboxesRequest = (SetMailboxesRequest) request;
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.ACTION, "SET_MAILBOXES")
+                     .addContext("create", setMailboxesRequest.getCreate())
+                     .addContext("update", setMailboxesRequest.getUpdate())
+                     .addContext("destroy", setMailboxesRequest.getDestroy())
+                     .build()) {
             return Stream.of(
                     JmapResponse.builder().clientId(clientId)
                     .response(setMailboxesResponse(setMailboxesRequest, mailboxSession))
                     .responseName(RESPONSE_NAME)
                     .build());
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             timeMetric.stopAndPublish();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesMethod.java
index 8f9da9b..def3929 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesMethod.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.jmap.methods;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.util.Set;
 import java.util.stream.Stream;
 
@@ -30,9 +32,11 @@ import org.apache.james.jmap.model.SetMessagesResponse;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
+import com.google.common.base.Throwables;
 
 public class SetMessagesMethod implements Method {
 
@@ -61,13 +65,23 @@ public class SetMessagesMethod implements Method {
     public Stream<JmapResponse> process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) {
         Preconditions.checkArgument(request instanceof SetMessagesRequest);
         TimeMetric timeMetric = metricFactory.timer(JMAP_PREFIX + METHOD_NAME.getName());
-        try {
+        SetMessagesRequest setMessagesRequest = (SetMessagesRequest) request;
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.ACTION, "SET_MESSAGES")
+                     .addContext("accountId", setMessagesRequest.getAccountId())
+                     .addContext("create", setMessagesRequest.getCreate())
+                     .addContext("destroy", setMessagesRequest.getDestroy())
+                     .addContext("ifInState", setMessagesRequest.getIfInState())
+                     .build()) {
             Stream<JmapResponse> responses = Stream.of(
                     JmapResponse.builder().clientId(clientId)
-                    .response(setMessagesResponse((SetMessagesRequest) request, mailboxSession))
+                    .response(setMessagesResponse(setMessagesRequest, mailboxSession))
                     .responseName(RESPONSE_NAME)
                     .build());
             return responses;
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             timeMetric.stopAndPublish();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetVacationResponseMethod.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetVacationResponseMethod.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetVacationResponseMethod.java
index 208cb2d..ffe30e9 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetVacationResponseMethod.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetVacationResponseMethod.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.jmap.methods;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.util.stream.Stream;
 
 import javax.inject.Inject;
@@ -35,8 +37,10 @@ import org.apache.james.jmap.model.VacationResponse;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.base.Preconditions;
+import com.google.common.base.Throwables;
 
 public class SetVacationResponseMethod implements Method {
 
@@ -77,7 +81,11 @@ public class SetVacationResponseMethod implements Method {
         SetVacationRequest setVacationRequest = (SetVacationRequest) request;
 
         TimeMetric timeMetric = metricFactory.timer(JMAP_PREFIX + METHOD_NAME.getName());
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.ACTION, "SET_VACATION")
+                     .addContext("update", setVacationRequest.getUpdate())
+                     .build()) {
             if (!setVacationRequest.isValid()) {
                 return Stream.of(JmapResponse
                     .builder()
@@ -92,6 +100,8 @@ public class SetVacationResponseMethod implements Method {
             return process(clientId,
                 AccountId.fromString(mailboxSession.getUser().getUserName()),
                 setVacationRequest.getUpdate().get(Vacation.ID));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             timeMetric.stopAndPublish();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/ValueWithId.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/ValueWithId.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/ValueWithId.java
index 9595ed3..194e6d1 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/ValueWithId.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/ValueWithId.java
@@ -24,6 +24,8 @@ import org.apache.james.jmap.model.CreationMessageId;
 import org.apache.james.jmap.model.Message;
 import org.apache.james.jmap.model.SetError;
 
+import com.google.common.base.MoreObjects;
+
 public class ValueWithId<T> {
 
     private CreationMessageId creationId;
@@ -60,4 +62,11 @@ public class ValueWithId<T> {
         }
     }
 
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("creationId", creationId)
+            .add("value", value)
+            .toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessage.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessage.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessage.java
index a113f83..791b383 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessage.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessage.java
@@ -476,4 +476,11 @@ public class CreationMessage {
             return result;
         }
     }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("mailboxIds", mailboxIds)
+            .toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessageId.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessageId.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessageId.java
index e23dd6a..a914ec1 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessageId.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/CreationMessageId.java
@@ -22,6 +22,7 @@ package org.apache.james.jmap.model;
 import java.util.Objects;
 
 import com.fasterxml.jackson.annotation.JsonValue;
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Preconditions;
 
 public class CreationMessageId {
@@ -56,4 +57,11 @@ public class CreationMessageId {
     public int hashCode() {
         return Objects.hash(id);
     }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("id", id)
+            .toString();
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxCreationId.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxCreationId.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxCreationId.java
index 40d76af..01398ac 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxCreationId.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxCreationId.java
@@ -22,6 +22,7 @@ package org.apache.james.jmap.model;
 import java.util.Objects;
 
 import com.fasterxml.jackson.annotation.JsonValue;
+import com.google.common.base.MoreObjects;
 
 public class MailboxCreationId {
 
@@ -52,4 +53,11 @@ public class MailboxCreationId {
     public int hashCode() {
         return Objects.hashCode(creationId);
     }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("creationId", creationId)
+            .toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxProperty.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxProperty.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxProperty.java
index 393e64b..5508073 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxProperty.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MailboxProperty.java
@@ -21,6 +21,7 @@ package org.apache.james.jmap.model;
 import java.util.Arrays;
 import java.util.Optional;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Preconditions;
 
 public enum MailboxProperty implements Property {
@@ -57,4 +58,11 @@ public enum MailboxProperty implements Property {
             .filter(element -> element.fieldName.equals(value))
             .findAny();
     }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("fieldName", fieldName)
+            .toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperties.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperties.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperties.java
index f53fe5f..d8b23db 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperties.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperties.java
@@ -25,6 +25,7 @@ import java.util.Optional;
 import java.util.stream.Stream;
 
 import com.github.steveash.guavate.Guavate;
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
@@ -244,4 +245,12 @@ public class MessageProperties {
             return Objects.toString(fieldName);
         }
     }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("headersProperties", headersProperties)
+            .add("messageProperties", messageProperties)
+            .toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/VacationResponse.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/VacationResponse.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/VacationResponse.java
index 37816a0..0266f60 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/VacationResponse.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/VacationResponse.java
@@ -34,6 +34,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Preconditions;
 
 @JsonDeserialize(builder = VacationResponse.Builder.class)
@@ -221,4 +222,14 @@ public class VacationResponse {
     public int hashCode() {
         return Objects.hash(id, isEnabled, fromDate, toDate, textBody, subject, htmlBody, isActivated);
     }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("id", id)
+            .add("fromDate", fromDate)
+            .add("toDate", toDate)
+            .add("isActivated", isActivated)
+            .toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPServletTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPServletTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPServletTest.java
index 1bac2d0..5c4d338 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPServletTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPServletTest.java
@@ -93,7 +93,7 @@ public class JMAPServletTest {
     }
 
     @Test
-    public void mustReturnInvalidArgumentOnInvalidState() {
+    public void mustReturnInvalidArgumentOnInvalidState() throws Exception {
         ObjectNode json = new ObjectNode(new JsonNodeFactory(false));
         json.put("type", "invalidArgument");
 
@@ -110,7 +110,7 @@ public class JMAPServletTest {
     }
 
     @Test
-    public void mustReturnAccountsOnValidRequest() {
+    public void mustReturnAccountsOnValidRequest() throws Exception {
         ObjectNode json = new ObjectNode(new JsonNodeFactory(false));
         json.put("state", "f6a7e214");
         ArrayNode arrayNode = json.putArray("list");

http://git-wip-us.apache.org/repos/asf/james-project/blob/176d7bf5/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/RequestHandlerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/RequestHandlerTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/RequestHandlerTest.java
index 303aa47..ac388e7 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/RequestHandlerTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/RequestHandlerTest.java
@@ -134,7 +134,7 @@ public class RequestHandlerTest {
 
 
     @Test(expected=IllegalStateException.class)
-    public void processShouldThrowWhenUnknownMethod() {
+    public void processShouldThrowWhenUnknownMethod() throws Exception {
         JsonNode[] nodes = new JsonNode[] { new ObjectNode(new JsonNodeFactory(false)).textNode("unknwonMethod"),
                 new ObjectNode(new JsonNodeFactory(false)).putObject("{\"id\": \"id\"}"),
                 new ObjectNode(new JsonNodeFactory(false)).textNode("#1")} ;
@@ -199,7 +199,7 @@ public class RequestHandlerTest {
     }
 
     @Test
-    public void processShouldWorkWhenKnownMethod() {
+    public void processShouldWorkWhenKnownMethod() throws Exception {
         ObjectNode parameters = new ObjectNode(new JsonNodeFactory(false));
         parameters.put("id", "testId");
         parameters.put("name", "testName");


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[13/38] james-project git commit: JAMES-2114 Add MDC logging context for CLI

Posted by bt...@apache.org.
JAMES-2114 Add MDC logging context for CLI


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/7600a6d5
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/7600a6d5
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/7600a6d5

Branch: refs/heads/master
Commit: 7600a6d5a432ddc195d5b47b9fd6399627c4200b
Parents: 036fa84
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 15:06:16 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:43 2017 +0700

----------------------------------------------------------------------
 .../james/cli/probe/impl/JmxDataProbe.java      | 136 ++++++++++++++++---
 server/container/mailbox-adapter/pom.xml        |   4 +
 .../mailbox/MailboxManagerManagement.java       |  53 ++++++--
 .../james/adapter/mailbox/QuotaManagement.java  | 116 ++++++++++++++--
 .../adapter/mailbox/ReIndexerManagement.java    |  26 +++-
 5 files changed, 295 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/7600a6d5/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
index 1256f0c..3c70b24 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.cli.probe.impl;
 
+import java.io.Closeable;
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
@@ -30,17 +31,18 @@ import org.apache.james.probe.DataProbe;
 import org.apache.james.rrt.api.RecipientRewriteTableManagementMBean;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.user.api.UsersRepositoryManagementMBean;
+import org.apache.james.util.MDCBuilder;
 
 public class JmxDataProbe implements DataProbe, JmxProbe {
-    
+
     private final static String DOMAINLIST_OBJECT_NAME = "org.apache.james:type=component,name=domainlist";
     private final static String VIRTUALUSERTABLE_OBJECT_NAME = "org.apache.james:type=component,name=recipientrewritetable";
     private final static String USERSREPOSITORY_OBJECT_NAME = "org.apache.james:type=component,name=usersrepository";
-    
+
     private DomainListManagementMBean domainListProxy;
     private RecipientRewriteTableManagementMBean virtualUserTableProxy;
     private UsersRepositoryManagementMBean usersRepositoryProxy;
-    
+
     public JmxDataProbe connect(JmxConnection jmxc) throws IOException {
         try {
             domainListProxy = jmxc.retrieveBean(DomainListManagementMBean.class, DOMAINLIST_OBJECT_NAME);
@@ -51,80 +53,176 @@ public class JmxDataProbe implements DataProbe, JmxProbe {
         }
         return this;
     }
-    
+
     @Override
     public void addUser(String userName, String password) throws Exception {
-        usersRepositoryProxy.addUser(userName, password);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "addUser")
+                     .addContext("parameter", userName)
+                     .build()) {
+            usersRepositoryProxy.addUser(userName, password);
+        }
     }
 
     @Override
     public void removeUser(String username) throws Exception {
-        usersRepositoryProxy.deleteUser(username);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "removeUser")
+                     .addContext("parameter", username)
+                     .build()) {
+            usersRepositoryProxy.deleteUser(username);
+        }
     }
 
     @Override
     public String[] listUsers() throws Exception {
-        return usersRepositoryProxy.listAllUsers();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "listUsers")
+                     .build()) {
+            return usersRepositoryProxy.listAllUsers();
+        }
     }
 
     @Override
     public void setPassword(String userName, String password) throws Exception {
-        usersRepositoryProxy.setPassword(userName, password);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "setPassword")
+                     .addContext("parameter", userName)
+                     .build()) {
+            usersRepositoryProxy.setPassword(userName, password);
+        }
     }
 
     @Override
     public boolean containsDomain(String domain) throws Exception {
-        return domainListProxy.containsDomain(domain);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "containsDomain")
+                     .addContext("parameter", domain)
+                     .build()) {
+            return domainListProxy.containsDomain(domain);
+        }
     }
 
     @Override
     public String getDefaultDomain() throws Exception {
-        return domainListProxy.getDefaultDomain();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getDefaultDomain")
+                     .build()) {
+            return domainListProxy.getDefaultDomain();
+        }
     }
 
     @Override
     public void addDomain(String domain) throws Exception {
-        domainListProxy.addDomain(domain);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "addDomain")
+                     .addContext("parameter", domain)
+                     .build()) {
+            domainListProxy.addDomain(domain);
+        }
     }
 
     @Override
     public void removeDomain(String domain) throws Exception {
-        domainListProxy.removeDomain(domain);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "removeDomain")
+                     .addContext("parameter", domain)
+                     .build()) {
+            domainListProxy.removeDomain(domain);
+        }
     }
 
     @Override
     public List<String> listDomains() throws Exception {
-        return domainListProxy.getDomains();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "listDomains")
+                     .build()) {
+            return domainListProxy.getDomains();
+        }
     }
 
     @Override
     public Map<String, Mappings> listMappings() throws Exception {
-        return virtualUserTableProxy.getAllMappings();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "listMappings")
+                     .build()) {
+            return virtualUserTableProxy.getAllMappings();
+        }
     }
 
     @Override
     public void addAddressMapping(String user, String domain, String toAddress) throws Exception {
-        virtualUserTableProxy.addAddressMapping(user, domain, toAddress);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "addAddressMapping")
+                     .build()) {
+            virtualUserTableProxy.addAddressMapping(user, domain, toAddress);
+        }
     }
 
     @Override
     public void removeAddressMapping(String user, String domain, String fromAddress) throws Exception {
-        virtualUserTableProxy.removeAddressMapping(user, domain, fromAddress);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "removeAddressMapping")
+                     .build()) {
+            virtualUserTableProxy.removeAddressMapping(user, domain, fromAddress);
+        }
     }
 
     @Override
     public Mappings listUserDomainMappings(String user, String domain) throws Exception {
-        return virtualUserTableProxy.getUserDomainMappings(user, domain);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "listUserDomainMappings")
+                     .build()) {
+            return virtualUserTableProxy.getUserDomainMappings(user, domain);
+        }
     }
 
     @Override
     public void addRegexMapping(String user, String domain, String regex) throws Exception {
-        virtualUserTableProxy.addRegexMapping(user, domain, regex);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "addRegexMapping")
+                     .build()) {
+            virtualUserTableProxy.addRegexMapping(user, domain, regex);
+        }
     }
 
     @Override
     public void removeRegexMapping(String user, String domain, String regex) throws Exception {
-        virtualUserTableProxy.removeRegexMapping(user, domain, regex);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "removeRegexMapping")
+                     .build()) {
+            virtualUserTableProxy.removeRegexMapping(user, domain, regex);
+        }
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/7600a6d5/server/container/mailbox-adapter/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/pom.xml b/server/container/mailbox-adapter/pom.xml
index 4a1ee3e..74b37d2 100644
--- a/server/container/mailbox-adapter/pom.xml
+++ b/server/container/mailbox-adapter/pom.xml
@@ -47,6 +47,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.james</groupId>
+            <artifactId>james-server-util-java8</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/7600a6d5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
index 29415cf..515f5b0 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
@@ -18,7 +18,9 @@
  ****************************************************************/
 package org.apache.james.adapter.mailbox;
 
+import java.io.Closeable;
 import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Date;
@@ -39,10 +41,12 @@ import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxMetaData;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MailboxQuery;
+import org.apache.james.util.MDCBuilder;
 import org.slf4j.Logger;
 
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Preconditions;
+import com.google.common.base.Throwables;
 
 /**
  * JMX managmenent for Mailboxes
@@ -69,7 +73,12 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
     public boolean deleteMailboxes(String username) {
         checkString(username, "Username");
         MailboxSession session = null;
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "deleteMailboxes")
+                     .addContext("concernedUser", username)
+                     .build()) {
             session = mailboxManager.createSystemSession(username, log);
             mailboxManager.startProcessingRequest(session);
             List<MailboxMetaData> mList = retrieveAllUserMailboxes(username, session);
@@ -79,6 +88,8 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
             return true;
         } catch (MailboxException e) {
             log.error("Error while remove mailboxes for user " + username, e);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             closeSession(session);
         }
@@ -103,7 +114,12 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
         checkString(username, "Username");
         List<String> boxes = new ArrayList<>();
         MailboxSession session = null;
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "listMailboxes")
+                     .addContext("concernedUser", username)
+                     .build()) {
             session = mailboxManager.createSystemSession(username, log);
             mailboxManager.startProcessingRequest(session);
             List<MailboxMetaData> mList = retrieveAllUserMailboxes(username, session);
@@ -113,6 +129,8 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
                 .collect(Guavate.toImmutableList());
         } catch (MailboxException e) {
             log.error("Error list mailboxes for user " + username, e);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             closeSession(session);
         }
@@ -123,10 +141,16 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
     public void createMailbox(String namespace, String user, String name) {
         checkMailboxArguments(namespace, user, name);
         MailboxSession session = null;
-        try {
+        MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "createMailbox")
+                     .addContext("mailboxPath", mailboxPath.asString())
+                     .build()) {
             session = mailboxManager.createSystemSession(user, log);
             mailboxManager.startProcessingRequest(session);
-            mailboxManager.createMailbox(new MailboxPath(namespace, user, name), session);
+            mailboxManager.createMailbox(mailboxPath, session);
         } catch (Exception e) {
             log.error("Unable to create mailbox", e);
         } finally {
@@ -138,10 +162,16 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
     public void deleteMailbox(String namespace, String user, String name) {
         checkMailboxArguments(namespace, user, name);
         MailboxSession session = null;
-        try {
+        MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "deleteMailbox")
+                     .addContext("mailboxPath", mailboxPath.asString())
+                     .build()) {
             session = mailboxManager.createSystemSession(user, log);
             mailboxManager.startProcessingRequest(session);
-            mailboxManager.deleteMailbox(new MailboxPath(namespace, user, name), session);
+            mailboxManager.deleteMailbox(mailboxPath, session);
         } catch (Exception e) {
             log.error("Unable to create mailbox", e);
         } finally {
@@ -155,10 +185,17 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
         checkString(emlPath, "email file path name");
 
         MailboxSession session = null;
-        try {
+        MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "importEmlFileToMailbox")
+                     .addContext("mailboxPath", mailboxPath.asString())
+                     .addContext("emlPath", emlPath)
+                     .build()) {
             session = mailboxManager.createSystemSession(user, log);
             mailboxManager.startProcessingRequest(session);
-            MessageManager messageManager = mailboxManager.getMailbox(new MailboxPath(namespace, user, name), session);
+            MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, session);
             InputStream emlFileAsStream = new FileInputStream(emlPath);
             messageManager.appendMessage(emlFileAsStream, new Date(),
                     session, RECENT, new Flags());

http://git-wip-us.apache.org/repos/asf/james-project/blob/7600a6d5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
index 9083ab4..7a05c3d 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
@@ -19,6 +19,9 @@
 
 package org.apache.james.adapter.mailbox;
 
+import java.io.Closeable;
+import java.io.IOException;
+
 import javax.inject.Inject;
 
 import org.apache.james.mailbox.exception.MailboxException;
@@ -27,6 +30,9 @@ import org.apache.james.mailbox.quota.MaxQuotaManager;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
 import org.apache.james.mailbox.store.mail.model.SerializableQuota;
+import org.apache.james.util.MDCBuilder;
+
+import com.google.common.base.Throwables;
 
 public class QuotaManagement implements QuotaManagementMBean {
 
@@ -43,56 +49,144 @@ public class QuotaManagement implements QuotaManagementMBean {
 
     @Override
     public String getQuotaRoot(String namespace, String user, String name) throws MailboxException {
-        return quotaRootResolver.getQuotaRoot(new MailboxPath(namespace, user, name)).getValue();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getQuotaRoot")
+                     .build()) {
+            return quotaRootResolver.getQuotaRoot(new MailboxPath(namespace, user, name)).getValue();
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public long getMaxMessageCount(String quotaRoot) throws MailboxException {
-        return maxQuotaManager.getMaxMessage(quotaRootResolver.createQuotaRoot(quotaRoot));
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getMaxMessageCount")
+                     .build()) {
+            return maxQuotaManager.getMaxMessage(quotaRootResolver.createQuotaRoot(quotaRoot));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public long getMaxStorage(String quotaRoot) throws MailboxException {
-        return maxQuotaManager.getMaxStorage(quotaRootResolver.createQuotaRoot(quotaRoot));
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getMaxStorage")
+                     .build()) {
+            return maxQuotaManager.getMaxStorage(quotaRootResolver.createQuotaRoot(quotaRoot));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public long getDefaultMaxMessageCount() throws MailboxException {
-        return maxQuotaManager.getDefaultMaxMessage();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getDefaultMaxMessageCount")
+                     .build()) {
+            return maxQuotaManager.getDefaultMaxMessage();
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public long getDefaultMaxStorage() throws MailboxException {
-        return maxQuotaManager.getDefaultMaxStorage();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getDefaultMaxStorage")
+                     .build()) {
+            return maxQuotaManager.getDefaultMaxStorage();
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public void setMaxMessageCount(String quotaRoot, long maxMessageCount) throws MailboxException {
-        maxQuotaManager.setMaxMessage(quotaRootResolver.createQuotaRoot(quotaRoot), maxMessageCount);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "setMaxMessageCount")
+                     .build()) {
+            maxQuotaManager.setMaxMessage(quotaRootResolver.createQuotaRoot(quotaRoot), maxMessageCount);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public void setMaxStorage(String quotaRoot, long maxSize) throws MailboxException {
-        maxQuotaManager.setMaxStorage(quotaRootResolver.createQuotaRoot(quotaRoot), maxSize);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "setMaxStorage")
+                     .build()) {
+            maxQuotaManager.setMaxStorage(quotaRootResolver.createQuotaRoot(quotaRoot), maxSize);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public void setDefaultMaxMessageCount(long maxDefaultMessageCount) throws MailboxException {
-        maxQuotaManager.setDefaultMaxMessage(maxDefaultMessageCount);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "setDefaultMaxMessageCount")
+                     .build()) {
+            maxQuotaManager.setDefaultMaxMessage(maxDefaultMessageCount);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public void setDefaultMaxStorage(long maxDefaultSize) throws MailboxException {
-        maxQuotaManager.setDefaultMaxStorage(maxDefaultSize);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "setDefaultMaxStorage")
+                     .build()) {
+            maxQuotaManager.setDefaultMaxStorage(maxDefaultSize);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public SerializableQuota getMessageCountQuota(String quotaRoot) throws MailboxException {
-        return new SerializableQuota(quotaManager.getMessageQuota(quotaRootResolver.createQuotaRoot(quotaRoot)));
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getMessageCountQuota")
+                     .build()) {
+            return new SerializableQuota(quotaManager.getMessageQuota(quotaRootResolver.createQuotaRoot(quotaRoot)));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public SerializableQuota getStorageQuota(String quotaRoot) throws MailboxException {
-        return new SerializableQuota(quotaManager.getStorageQuota(quotaRootResolver.createQuotaRoot(quotaRoot)));
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getStorageQuota")
+                     .build()) {
+            return new SerializableQuota(quotaManager.getStorageQuota(quotaRootResolver.createQuotaRoot(quotaRoot)));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7600a6d5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
index 6ca3e0a..468cf19 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
@@ -19,12 +19,18 @@
 
 package org.apache.james.adapter.mailbox;
 
+import java.io.Closeable;
+import java.io.IOException;
+
 import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.indexer.ReIndexer;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.util.MDCBuilder;
+
+import com.google.common.base.Throwables;
 
 public class ReIndexerManagement implements ReIndexerManagementMBean {
 
@@ -37,11 +43,27 @@ public class ReIndexerManagement implements ReIndexerManagementMBean {
 
     @Override
     public void reIndex(String namespace, String user, String name) throws MailboxException {
-        reIndexer.reIndex(new MailboxPath(namespace, user, name));
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "reIndex")
+                     .build()) {
+            reIndexer.reIndex(new MailboxPath(namespace, user, name));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public void reIndex() throws MailboxException {
-        reIndexer.reIndex();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "reIndex")
+                     .build()) {
+            reIndexer.reIndex();
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[22/38] james-project git commit: JAMES-2114 Deprecate LogEnabled API

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
index a870d36..7a14a4b 100644
--- a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
+++ b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueue.java
@@ -49,6 +49,7 @@ import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
 import org.apache.james.queue.api.ManageableMailQueue;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * {@link ManageableMailQueue} implementation which use the fs to store {@link Mail}'s
@@ -57,6 +58,7 @@ import org.slf4j.Logger;
  * loading the needed meta-data into memory for fast access.
  */
 public class FileMailQueue implements ManageableMailQueue {
+    private static final Logger LOGGER = LoggerFactory.getLogger(FileMailQueue.class);
 
     private final ConcurrentHashMap<String, FileItem> keyMappings = new ConcurrentHashMap<>();
     private final BlockingQueue<String> inmemoryQueue = new LinkedBlockingQueue<>();
@@ -64,7 +66,6 @@ public class FileMailQueue implements ManageableMailQueue {
     private final static AtomicLong COUNTER = new AtomicLong();
     private final String queueDirName;
     private final File queueDir;
-    private final Logger log;
 
     private final MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory;
     private final boolean sync;
@@ -73,9 +74,8 @@ public class FileMailQueue implements ManageableMailQueue {
     private final static String NEXT_DELIVERY = "FileQueueNextDelivery";
     private final static int SPLITCOUNT = 10;
 
-    public FileMailQueue(MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory, File parentDir, String queuename, boolean sync, Logger log) throws IOException {
+    public FileMailQueue(MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory, File parentDir, String queuename, boolean sync) throws IOException {
         this.mailQueueItemDecoratorFactory = mailQueueItemDecoratorFactory;
-        this.log = log;
         this.sync = sync;
         this.queueDir = new File(parentDir, queuename);
         this.queueDirName = queueDir.getAbsolutePath();
@@ -131,9 +131,8 @@ public class FileMailQueue implements ManageableMailQueue {
                             }
                         }, next - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
                     }
-
                 } catch (ClassNotFoundException | IOException e) {
-                    log.error("Unable to load Mail", e);
+                    LOGGER.error("Unable to load Mail", e);
                 } finally {
                     if (oin != null) {
                         try {
@@ -360,7 +359,7 @@ public class FileMailQueue implements ManageableMailQueue {
             try {
                 FileUtils.forceDelete(new File(getMessageFile()));
             } catch (IOException e) {
-                log.debug("Remove of msg file for mail failed");
+                LOGGER.debug("Remove of msg file for mail failed");
             }
         }
     }
@@ -470,7 +469,7 @@ public class FileMailQueue implements ManageableMailQueue {
                             };
                             return true;
                         } catch (IOException | ClassNotFoundException e) {
-                            log.info("Unable to load mail", e);
+                            LOGGER.info("Unable to load mail", e);
                         } finally {
                             if (in != null) {
                                 try {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueueFactory.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueueFactory.java b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueueFactory.java
index a08d152..440ba3c 100644
--- a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueueFactory.java
+++ b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueueFactory.java
@@ -25,21 +25,18 @@ import java.util.Map;
 import javax.inject.Inject;
 
 import org.apache.james.filesystem.api.FileSystem;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
-import org.slf4j.Logger;
 
 /**
  * {@link MailQueueFactory} implementation which returns {@link FileMailQueue} instances
  */
-public class FileMailQueueFactory implements MailQueueFactory, LogEnabled {
+public class FileMailQueueFactory implements MailQueueFactory {
 
     private final Map<String, MailQueue> queues = new HashMap<>();
     private MailQueueItemDecoratorFactory mailQueueActionItemDecoratorFactory;
     private FileSystem fs;
-    private Logger log;
     private boolean sync = true;
 
     @Inject
@@ -66,7 +63,7 @@ public class FileMailQueueFactory implements MailQueueFactory, LogEnabled {
         if (queue == null) {
             synchronized (queues) {
                 try {
-                    queue = new FileMailQueue(mailQueueActionItemDecoratorFactory, fs.getFile("file://var/store/queue"), name, sync, log);
+                    queue = new FileMailQueue(mailQueueActionItemDecoratorFactory, fs.getFile("file://var/store/queue"), name, sync);
                     queues.put(name, queue);
                 } catch (IOException e) {
                     throw new RuntimeException("Unable to access queue " + name, e);
@@ -76,10 +73,5 @@ public class FileMailQueueFactory implements MailQueueFactory, LogEnabled {
         return queue;
     }
 
-    @Override
-    public void setLog(Logger log) {
-        this.log = log;
-    }
-
 }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java
index 629d869..f39653d 100644
--- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java
+++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueue.java
@@ -135,10 +135,9 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
     protected final Metric enqueuedMailsMetric;
     protected final Metric mailQueueSize;
     protected final MetricFactory metricFactory;
-    protected final Logger logger;
     public final static String FORCE_DELIVERY = "FORCE_DELIVERY";
 
-    public JMSMailQueue(ConnectionFactory connectionFactory, MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory, String queueName, MetricFactory metricFactory, Logger logger) {
+    public JMSMailQueue(ConnectionFactory connectionFactory, MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory, String queueName, MetricFactory metricFactory) {
         try {
             connection = connectionFactory.createConnection();
             connection.start();
@@ -150,7 +149,6 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
         this.metricFactory = metricFactory;
         this.enqueuedMailsMetric = metricFactory.generate("enqueuedMail:" + queueName);
         this.mailQueueSize = metricFactory.generate("mailQueueSize:" + queueName);
-        this.logger = logger;
     }
 
     /**
@@ -400,7 +398,7 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
             } catch (AddressException e) {
                 // Should never happen as long as the user does not modify the
                 // the header by himself
-                logger.error("Unable to parse the recipient address " + token + " for mail " + mail.getName() + ", so we ignore it", e);
+                LOGGER.error("Unable to parse the recipient address " + token + " for mail " + mail.getName() + ", so we ignore it", e);
             }
         }
         mail.setRecipients(rcpts);
@@ -421,7 +419,7 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
                 if (attrValue instanceof Serializable) {
                     mail.setAttribute(name, (Serializable) attrValue);
                 } else {
-                    logger.error("Not supported mail attribute " + name + " of type " + attrValue + " for mail " + mail.getName());
+                    LOGGER.error("Not supported mail attribute " + name + " of type " + attrValue + " for mail " + mail.getName());
                 }
             }
         }
@@ -435,7 +433,7 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
             } catch (AddressException e) {
                 // Should never happen as long as the user does not modify the
                 // the header by himself
-                logger.error("Unable to parse the sender address " + sender + " for mail " + mail.getName() + ", so we fallback to a null sender", e);
+                LOGGER.error("Unable to parse the sender address " + sender + " for mail " + mail.getName() + ", so we fallback to a null sender", e);
                 mail.setSender(null);
             }
         }
@@ -503,7 +501,7 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
             }
             return size;
         } catch (Exception e) {
-            logger.error("Unable to get size of queue " + queueName, e);
+            LOGGER.error("Unable to get size of queue " + queueName, e);
             throw new MailQueueException("Unable to get size of queue " + queueName, e);
         } finally {
             closeBrowser(browser);
@@ -545,7 +543,7 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
             session.commit();
             return count;
         } catch (Exception e) {
-            logger.error("Unable to flush mail", e);
+            LOGGER.error("Unable to flush mail", e);
             rollback(session);
             throw new MailQueueException("Unable to get size of queue " + queueName, e);
         } finally {
@@ -690,7 +688,7 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
                                 }
                             };
                         } catch (MessagingException | JMSException e) {
-                            logger.error("Unable to browse queue", e);
+                            LOGGER.error("Unable to browse queue", e);
                         }
                     }
 
@@ -714,7 +712,7 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
             closeBrowser(browser);
             closeSession(session);
 
-            logger.error("Unable to browse queue " + queueName, e);
+            LOGGER.error("Unable to browse queue " + queueName, e);
             throw new MailQueueException("Unable to browse queue " + queueName, e);
         }
     }
@@ -724,7 +722,7 @@ public class JMSMailQueue implements ManageableMailQueue, JMSSupport, MailPriori
         try {
             connection.close();
         } catch (JMSException e) {
-            logger.error("Error while closing session", e);
+            LOGGER.error("Error while closing session", e);
         }
     }
     

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueueFactory.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueueFactory.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueueFactory.java
index e023de9..823869a 100644
--- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueueFactory.java
+++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/jms/JMSMailQueueFactory.java
@@ -45,7 +45,7 @@ public class JMSMailQueueFactory extends AbstractMailQueueFactory {
 
     @Override
     protected MailQueue createMailQueue(String name) {
-        return new JMSMailQueue(connectionFactory, mailQueueItemDecoratorFactory, name, metricFactory, log);
+        return new JMSMailQueue(connectionFactory, mailQueueItemDecoratorFactory, name, metricFactory);
     }
     
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-jms/src/main/java/org/apache/james/queue/library/AbstractMailQueueFactory.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/library/AbstractMailQueueFactory.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/library/AbstractMailQueueFactory.java
index 162a5e1..56e1706 100644
--- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/library/AbstractMailQueueFactory.java
+++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/library/AbstractMailQueueFactory.java
@@ -30,12 +30,12 @@ import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
 import org.apache.james.lifecycle.api.LifecycleUtil;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.queue.api.MailQueueManagementMBean;
 import org.apache.james.queue.api.ManageableMailQueue;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 
@@ -43,12 +43,12 @@ import com.google.common.annotations.VisibleForTesting;
  * {@link MailQueueFactory} abstract base class which take care of register the
  * {@link MailQueue} implementations via JMX (if possible)
  */
-public abstract class AbstractMailQueueFactory implements MailQueueFactory, LogEnabled {
+public abstract class AbstractMailQueueFactory implements MailQueueFactory {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractMailQueueFactory.class);
 
     public static final String MBEAN_NAME_QUEUE_PREFIX = "org.apache.james:type=component,name=queue,queue=";
 
     protected final Map<String, MailQueue> queues = new HashMap<>();
-    protected Logger log;
     private boolean useJMX = true;
     private MBeanServer mbeanServer;
     private final List<String> mbeans = new ArrayList<>();
@@ -73,7 +73,7 @@ public abstract class AbstractMailQueueFactory implements MailQueueFactory, LogE
             try {
                 mbeanServer.unregisterMBean(new ObjectName(mbean));
             } catch (Exception e) {
-                log.error("Error while destroying AbstractMailQueueFactory : ", e);
+                LOGGER.error("Error while destroying AbstractMailQueueFactory : ", e);
             }
         }
         mbeans.clear();
@@ -137,10 +137,5 @@ public abstract class AbstractMailQueueFactory implements MailQueueFactory, LogE
         }
 
     }
-
-    @Override
-    public void setLog(Logger log) {
-        this.log = log;
-    }
     
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/AbstractJMSMailQueueTest.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/AbstractJMSMailQueueTest.java b/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/AbstractJMSMailQueueTest.java
index 2682014..6ecd43b 100644
--- a/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/AbstractJMSMailQueueTest.java
+++ b/server/queue/queue-jms/src/test/java/org/apache/james/queue/jms/AbstractJMSMailQueueTest.java
@@ -69,7 +69,7 @@ public abstract class AbstractJMSMailQueueTest {
     
     protected JMSMailQueue createQueue(ConnectionFactory factory, MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory, String queueName) {
         Logger log = LoggerFactory.getLogger(AbstractJMSMailQueueTest.class);
-        return new JMSMailQueue(factory, mailQueueItemDecoratorFactory, queueName, new NoopMetricFactory(), log);
+        return new JMSMailQueue(factory, mailQueueItemDecoratorFactory, queueName, new NoopMetricFactory());
     }
 
     @Before

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java b/server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java
index e2becf2..90356ea 100644
--- a/server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java
+++ b/server/queue/queue-jms/src/test/java/org/apache/james/queue/library/AbstractMailQueueFactoryTest.java
@@ -25,22 +25,19 @@ import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
+import java.util.concurrent.TimeUnit;
+
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.ManageableMailQueue;
 import org.apache.mailet.Mail;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import java.util.concurrent.TimeUnit;
 
 public class AbstractMailQueueFactoryTest {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractMailQueueFactoryTest.class);
     private static final String QUEUE_1 = "queue1";
     private static final String QUEUE_2 = "queue2";
     private static final String QUEUE_3 = "queue3";
@@ -99,7 +96,6 @@ public class AbstractMailQueueFactoryTest {
             }
         };
         abstractMailQueueFactory.setMbeanServer(mBeanServer);
-        abstractMailQueueFactory.setLog(LOGGER);
     }
 
     @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[24/38] james-project git commit: JAMES-2114 Deprecate LogEnabled API

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java b/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java
index d7e35b5..caf0699 100644
--- a/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java
+++ b/server/dns-service/dnsservice-dnsjava/src/main/java/org/apache/james/dnsservice/dnsjava/DNSJavaService.java
@@ -36,10 +36,10 @@ import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.DNSServiceMBean;
 import org.apache.james.dnsservice.api.TemporaryResolutionException;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.xbill.DNS.ARecord;
 import org.xbill.DNS.Cache;
 import org.xbill.DNS.Credibility;
@@ -62,7 +62,8 @@ import com.google.common.collect.ImmutableList;
 /**
  * Provides DNS client functionality to services running inside James
  */
-public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled, Configurable {
+public class DNSJavaService implements DNSService, DNSServiceMBean, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DNSJavaService.class);
 
     /**
      * A resolver instance used to retrieve DNS records. This is a reference to
@@ -115,12 +116,6 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
 
     private String localAddress;
 
-    private Logger logger;
-
-    public void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
     @Inject
     public DNSJavaService(MetricFactory metricFactory) {
         this.metricFactory = metricFactory;
@@ -133,21 +128,21 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
 
         List<Name> sPaths = new ArrayList<>();
         if (autodiscover) {
-            logger.info("Autodiscovery is enabled - trying to discover your system's DNS Servers");
+            LOGGER.info("Autodiscovery is enabled - trying to discover your system's DNS Servers");
             String[] serversArray = ResolverConfig.getCurrentConfig().servers();
             if (serversArray != null) {
                 for (String aServersArray : serversArray) {
                     dnsServers.add(aServersArray);
-                    logger.info("Adding autodiscovered server " + aServersArray);
+                    LOGGER.info("Adding autodiscovered server " + aServersArray);
                 }
             }
             Name[] systemSearchPath = ResolverConfig.getCurrentConfig().searchPath();
             if (systemSearchPath != null && systemSearchPath.length > 0) {
                 sPaths.addAll(Arrays.asList(systemSearchPath));
             }
-            if (logger.isInfoEnabled()) {
+            if (LOGGER.isInfoEnabled()) {
                 for (Name searchPath : sPaths) {
-                    logger.info("Adding autodiscovered search path " + searchPath.toString());
+                    LOGGER.info("Adding autodiscovered search path " + searchPath.toString());
                 }
             }
         }
@@ -171,7 +166,7 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
         searchPaths = sPaths.toArray(new Name[sPaths.size()]);
 
         if (dnsServers.isEmpty()) {
-            logger.info("No DNS servers have been specified or found by autodiscovery - adding 127.0.0.1");
+            LOGGER.info("No DNS servers have been specified or found by autodiscovery - adding 127.0.0.1");
             dnsServers.add("127.0.0.1");
         }
 
@@ -186,7 +181,7 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
 
     @PostConstruct
     public void init() throws Exception {
-        logger.debug("DNSService init...");
+        LOGGER.debug("DNSService init...");
 
         // If no DNS servers were configured, default to local host
         if (dnsServers.isEmpty()) {
@@ -200,16 +195,16 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
         // Create the extended resolver...
         final String[] serversArray = dnsServers.toArray(new String[dnsServers.size()]);
 
-        if (logger.isInfoEnabled()) {
+        if (LOGGER.isInfoEnabled()) {
             for (String aServersArray : serversArray) {
-                logger.info("DNS Server is: " + aServersArray);
+                LOGGER.info("DNS Server is: " + aServersArray);
             }
         }
 
         try {
             resolver = new ExtendedResolver(serversArray);
         } catch (UnknownHostException uhe) {
-            logger.error("DNS service could not be initialized.  The DNS servers specified are not recognized hosts.", uhe);
+            LOGGER.error("DNS service could not be initialized.  The DNS servers specified are not recognized hosts.", uhe);
             throw uhe;
         }
 
@@ -220,7 +215,7 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
             Lookup.setDefaultResolver(resolver);
             Lookup.setDefaultCache(cache, DClass.IN);
             Lookup.setDefaultSearchPath(searchPaths);
-            logger.info("Registered cache, resolver and search paths as DNSJava defaults");
+            LOGGER.info("Registered cache, resolver and search paths as DNSJava defaults");
         }
 
         // Cache the local hostname and local address. This is needed because
@@ -232,7 +227,7 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
         localHostName = addr.getHostName();
         localAddress = addr.getHostAddress();
 
-        logger.debug("DNSService ...init end");
+        LOGGER.debug("DNSService ...init end");
     }
 
     /**
@@ -312,7 +307,7 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
                 Collections.shuffle(samePrio);
                 servers.addAll(samePrio);
             }
-            logger.debug("Found MX record " + mxRecord);
+            LOGGER.debug("Found MX record " + mxRecord);
         }
         return servers;
     }
@@ -329,7 +324,7 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
             // it's a valid DNS entry
             if (servers.size() == 0) {
                 StringBuffer logBuffer = new StringBuffer(128).append("Couldn't resolve MX records for domain ").append(hostname).append(".");
-                logger.info(logBuffer.toString());
+                LOGGER.info(logBuffer.toString());
                 try {
                     getByName(hostname);
                     servers.add(hostname);
@@ -338,7 +333,7 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
                     // so we can't add it to the server list. In this
                     // case we return an empty list of servers
                     logBuffer = new StringBuffer(128).append("Couldn't resolve IP address for host ").append(hostname).append(".");
-                    logger.error(logBuffer.toString(), uhe);
+                    LOGGER.error(logBuffer.toString(), uhe);
                 }
             }
             timeMetric.stopAndPublish();
@@ -375,14 +370,14 @@ public class DNSJavaService implements DNSService, DNSServiceMBean, LogEnabled,
             } catch (IllegalStateException ise) {
                 // This is okay, because it mimics the original behaviour
                 // TODO find out if it's a bug in DNSJava
-                logger.warn("Error determining result ", ise);
+                LOGGER.warn("Error determining result ", ise);
                 throw new TemporaryResolutionException("DNSService is temporary not reachable");
             }
 
             // return rawDNSLookup(name, false, type, typeDesc);
         } catch (TextParseException tpe) {
             // TODO: Figure out how to handle this correctly.
-            logger.error("Couldn't parse name " + namestr, tpe);
+            LOGGER.error("Couldn't parse name " + namestr, tpe);
             return null;
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/dns-service/dnsservice-dnsjava/src/test/java/org/apache/james/dnsservice/dnsjava/DNSJavaServiceTest.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-dnsjava/src/test/java/org/apache/james/dnsservice/dnsjava/DNSJavaServiceTest.java b/server/dns-service/dnsservice-dnsjava/src/test/java/org/apache/james/dnsservice/dnsjava/DNSJavaServiceTest.java
index be24c10..e4d9323 100644
--- a/server/dns-service/dnsservice-dnsjava/src/test/java/org/apache/james/dnsservice/dnsjava/DNSJavaServiceTest.java
+++ b/server/dns-service/dnsservice-dnsjava/src/test/java/org/apache/james/dnsservice/dnsjava/DNSJavaServiceTest.java
@@ -71,7 +71,6 @@ public class DNSJavaServiceTest {
 
         db.load(new ByteArrayInputStream(DNS_SERVER_CONFIG));
 
-        dnsServer.setLog(LoggerFactory.getLogger(DNSJavaServiceTest.class));
         dnsServer.configure(db);
         dnsServer.init();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/MXHostAddressIterator.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/MXHostAddressIterator.java b/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/MXHostAddressIterator.java
index c91847c..8e4d1fa 100644
--- a/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/MXHostAddressIterator.java
+++ b/server/dns-service/dnsservice-library/src/main/java/org/apache/james/dnsservice/library/MXHostAddressIterator.java
@@ -27,11 +27,12 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.mailet.HostAddress;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
@@ -42,14 +43,15 @@ import com.google.common.collect.Maps;
  */
 @SuppressWarnings("deprecation")
 public class MXHostAddressIterator implements Iterator<HostAddress> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MXHostAddressIterator.class);
 
     private final Iterator<HostAddress> addresses;
 
-    public MXHostAddressIterator(Iterator<String> hosts, DNSService dns, boolean useSingleIP, Logger logger) {
-        this(hosts, 25, dns, useSingleIP, logger);
+    public MXHostAddressIterator(Iterator<String> hosts, DNSService dns, boolean useSingleIP) {
+        this(hosts, 25, dns, useSingleIP);
     }
 
-    public MXHostAddressIterator(Iterator<String> hosts, int defaultPort, DNSService dns, boolean useSingleIP, Logger logger) {
+    public MXHostAddressIterator(Iterator<String> hosts, int defaultPort, DNSService dns, boolean useSingleIP) {
         checkNotNull(hosts, "Hosts is null");
         checkNotNull(dns, "Dns is null");
         final List<HostAddress> hAddresses = Lists.newArrayList();
@@ -74,7 +76,7 @@ public class MXHostAddressIterator implements Iterator<HostAddress> {
                 // this host from mxHosts, which should have
                 // already done this check.
                 String logBuffer = "Couldn't resolve IP address for discovered host " + hostAndPort.getKey() + ".";
-                logger.error(logBuffer);
+                LOGGER.error(logBuffer);
             }
         }
         addresses = hAddresses.iterator();

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java
----------------------------------------------------------------------
diff --git a/server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java b/server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java
index d162de3..c2aa2bb 100644
--- a/server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java
+++ b/server/dns-service/dnsservice-library/src/test/java/org/apache/james/dnsservice/library/MXHostAddressIteratorTest.java
@@ -18,17 +18,20 @@
  ****************************************************************/
 package org.apache.james.dnsservice.library;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.Arrays;
 import java.util.Collection;
 
-import com.google.common.collect.ImmutableList;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.TemporaryResolutionException;
-import static org.junit.Assert.*;
 import org.junit.Test;
-import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.ImmutableList;
 
 public class MXHostAddressIteratorTest {
 
@@ -73,16 +76,14 @@ public class MXHostAddressIteratorTest {
                 throw new UnsupportedOperationException();
             }
         };
-        MXHostAddressIterator it = new MXHostAddressIterator(Arrays.asList("localhost", "localhost2").iterator(), dns,
-                false, LoggerFactory.getLogger(this.getClass()));
+        MXHostAddressIterator it = new MXHostAddressIterator(Arrays.asList("localhost", "localhost2").iterator(), dns, false);
         for (int i = 0; i < 4; i++) {
             assertTrue(it.hasNext());
             assertNotNull(it.next());
         }
         assertFalse(it.hasNext());
 
-        it = new MXHostAddressIterator(Arrays.asList("localhost", "localhost2").iterator(), dns, true, LoggerFactory.
-                getLogger(this.getClass()));
+        it = new MXHostAddressIterator(Arrays.asList("localhost", "localhost2").iterator(), dns, true);
         for (int i = 0; i < 2; i++) {
             assertTrue(it.hasNext());
             assertNotNull(it.next());
@@ -129,8 +130,7 @@ public class MXHostAddressIteratorTest {
         };
 
         // See JAMES-1271
-        MXHostAddressIterator it = new MXHostAddressIterator(Arrays.asList("localhost").iterator(), dns, false,
-                LoggerFactory.getLogger(this.getClass()));
+        MXHostAddressIterator it = new MXHostAddressIterator(Arrays.asList("localhost").iterator(), dns, false);
         assertFalse(it.hasNext());
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
index 634d753..e7f7b9f 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
@@ -32,7 +32,6 @@ import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.lifecycle.api.Disposable;
 import org.apache.james.lifecycle.api.LifecycleUtil;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.mailetcontainer.api.MailProcessor;
 import org.apache.james.mailetcontainer.api.jmx.MailSpoolerMBean;
 import org.apache.james.metrics.api.MetricFactory;
@@ -44,13 +43,15 @@ import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.util.concurrent.JMXEnabledThreadPoolExecutor;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Manages the mail spool. This class is responsible for retrieving messages
  * from the spool, directing messages to the appropriate processor, and removing
  * them from the spool when processing is complete.
  */
-public class JamesMailSpooler implements Runnable, Disposable, Configurable, LogEnabled, MailSpoolerMBean {
+public class JamesMailSpooler implements Runnable, Disposable, Configurable, MailSpoolerMBean {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JamesMailSpooler.class);
 
     public static final String SPOOL_PROCESSING = "spoolProcessing";
     private MailQueue queue;
@@ -86,8 +87,6 @@ public class JamesMailSpooler implements Runnable, Disposable, Configurable, Log
      */
     private MailProcessor mailProcessor;
 
-    private Logger logger;
-
     private MailQueueFactory queueFactory;
 
     private int numDequeueThreads;
@@ -121,13 +120,13 @@ public class JamesMailSpooler implements Runnable, Disposable, Configurable, Log
      */
     @PostConstruct
     public void init() {
-        logger.info(getClass().getName() + " init...");
+        LOGGER.info(getClass().getName() + " init...");
 
         queue = queueFactory.getQueue(MailQueueFactory.SPOOL);
 
-        if (logger.isInfoEnabled()) {
+        if (LOGGER.isInfoEnabled()) {
             String infoBuffer = getClass().getName() + " uses " + numThreads + " Thread(s)";
-            logger.info(infoBuffer);
+            LOGGER.info(infoBuffer);
         }
 
         active.set(true);
@@ -147,9 +146,9 @@ public class JamesMailSpooler implements Runnable, Disposable, Configurable, Log
     @Override
     public void run() {
 
-        if (logger.isInfoEnabled()) {
-            logger.info("Run " + getClass().getName() + ": " + Thread.currentThread().getName());
-            logger.info("Queue=" + queue.toString());
+        if (LOGGER.isInfoEnabled()) {
+            LOGGER.info("Run " + getClass().getName() + ": " + Thread.currentThread().getName());
+            LOGGER.info("Queue=" + queue.toString());
         }
 
         while (active.get()) {
@@ -166,17 +165,17 @@ public class JamesMailSpooler implements Runnable, Disposable, Configurable, Log
                         processingActive.incrementAndGet();
 
                         Mail mail = queueItem.getMail();
-                        if (logger.isDebugEnabled()) {
+                        if (LOGGER.isDebugEnabled()) {
                             String debugBuffer = "==== Begin processing mail " + mail.getName() + "====";
-                            logger.debug(debugBuffer);
+                            LOGGER.debug(debugBuffer);
                         }
 
                         try {
                             mailProcessor.service(mail);
                             queueItem.done(true);
                         } catch (Exception e) {
-                            if (active.get() && logger.isErrorEnabled()) {
-                                logger.error("Exception processing mail while spooling " + e.getMessage(), e);
+                            if (active.get() && LOGGER.isErrorEnabled()) {
+                                LOGGER.error("Exception processing mail while spooling " + e.getMessage(), e);
                             }
                             queueItem.done(false);
 
@@ -185,8 +184,8 @@ public class JamesMailSpooler implements Runnable, Disposable, Configurable, Log
                             mail = null;
                         }
                     } catch (Throwable e) {
-                        if (active.get() && logger.isErrorEnabled()) {
-                            logger.error("Exception processing mail while spooling " + e.getMessage(), e);
+                        if (active.get() && LOGGER.isErrorEnabled()) {
+                            LOGGER.error("Exception processing mail while spooling " + e.getMessage(), e);
 
                         }
                     } finally {
@@ -197,15 +196,15 @@ public class JamesMailSpooler implements Runnable, Disposable, Configurable, Log
 
                 });
             } catch (MailQueueException e1) {
-                if (active.get() && logger.isErrorEnabled()) {
-                    logger.error("Exception dequeue mail", e1);
+                if (active.get() && LOGGER.isErrorEnabled()) {
+                    LOGGER.error("Exception dequeue mail", e1);
 
                 }
             } catch (InterruptedException interrupted) {
                 //MailSpooler is stopping
             }
         }
-        logger.info("Stop {} : {}", getClass().getName(), Thread.currentThread().getName());
+        LOGGER.info("Stop {} : {}", getClass().getName(), Thread.currentThread().getName());
     }
 
     /**
@@ -221,7 +220,7 @@ public class JamesMailSpooler implements Runnable, Disposable, Configurable, Log
     @PreDestroy
     @Override
     public void dispose() {
-        logger.info(getClass().getName() + " dispose...");
+        LOGGER.info(getClass().getName() + " dispose...");
         active.set(false); // shutdown the threads
         dequeueService.shutdownNow();
         workerService.shutdown();
@@ -235,11 +234,7 @@ public class JamesMailSpooler implements Runnable, Disposable, Configurable, Log
             }
         }
 
-        logger.info(getClass().getName() + " thread shutdown completed.");
-    }
-
-    public void setLog(Logger log) {
-        this.logger = log;
+        LOGGER.info(getClass().getName() + " thread shutdown completed.");
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
index 1970a29..7f292e4 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
@@ -48,7 +48,6 @@ import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.api.DomainListException;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.lifecycle.api.LifecycleUtil;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.user.api.UsersRepository;
@@ -60,11 +59,13 @@ import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
 import org.apache.mailet.base.RFC2822Headers;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableSet;
 
 @SuppressWarnings("deprecation")
-public class JamesMailetContext implements MailetContext, LogEnabled, Configurable {
+public class JamesMailetContext implements MailetContext, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JamesMailetContext.class);
 
     /**
      * A hash table of server attributes These are the MailetContext attributes
@@ -72,8 +73,6 @@ public class JamesMailetContext implements MailetContext, LogEnabled, Configurab
     private final Hashtable<String, Object> attributes = new Hashtable<>();
     protected DNSService dns;
 
-    protected Logger log;
-
     private UsersRepository localusers;
 
     private MailQueue rootMailQueue;
@@ -183,14 +182,14 @@ public class JamesMailetContext implements MailetContext, LogEnabled, Configurab
     @Override
     public void bounce(Mail mail, String message, MailAddress bouncer) throws MessagingException {
         if (mail.getSender() == null) {
-            if (log.isInfoEnabled())
-                log.info("Mail to be bounced contains a null (<>) reverse path.  No bounce will be sent.");
+            if (LOGGER.isInfoEnabled())
+                LOGGER.info("Mail to be bounced contains a null (<>) reverse path.  No bounce will be sent.");
             return;
         } else {
             // Bounce message goes to the reverse path, not to the Reply-To
             // address
-            if (log.isInfoEnabled())
-                log.info("Processing a bounce request for a message with a reverse path of " + mail.getSender().toString());
+            if (LOGGER.isInfoEnabled())
+                LOGGER.info("Processing a bounce request for a message with a reverse path of " + mail.getSender().toString());
         }
 
         MailImpl reply = rawBounce(mail, message);
@@ -302,7 +301,7 @@ public class JamesMailetContext implements MailetContext, LogEnabled, Configurab
     @Override
     public Iterator<HostAddress> getSMTPHostAddresses(String domainName) {
         try {
-            return new MXHostAddressIterator(dns.findMXRecords(domainName).iterator(), dns, false, log);
+            return new MXHostAddressIterator(dns.findMXRecords(domainName).iterator(), dns, false);
         } catch (TemporaryResolutionException e) {
             // TODO: We only do this to not break backward compatiblity. Should
             // fixed later
@@ -320,7 +319,7 @@ public class JamesMailetContext implements MailetContext, LogEnabled, Configurab
         try {
             return domains.containsDomain(name);
         } catch (DomainListException e) {
-            log.error("Unable to retrieve domains", e);
+            LOGGER.error("Unable to retrieve domains", e);
             return false;
         }
     }
@@ -328,29 +327,29 @@ public class JamesMailetContext implements MailetContext, LogEnabled, Configurab
     @Override
     @Deprecated
     public void log(String arg0) {
-        log.info(arg0);
+        LOGGER.info(arg0);
     }
 
     @Override
     @Deprecated
     public void log(String arg0, Throwable arg1) {
-        log.info(arg0, arg1);
+        LOGGER.info(arg0, arg1);
     }
 
     @Override
     public void log(LogLevel logLevel, String s) {
         switch (logLevel) {
             case INFO:
-                log.info(s);
+                LOGGER.info(s);
                 break;
             case WARN:
-                log.warn(s);
+                LOGGER.warn(s);
                 break;
             case ERROR:
-                log.error(s);
+                LOGGER.error(s);
                 break;
             default:
-                log.debug(s);
+                LOGGER.debug(s);
         }
     }
 
@@ -358,16 +357,16 @@ public class JamesMailetContext implements MailetContext, LogEnabled, Configurab
     public void log(LogLevel logLevel, String s, Throwable throwable) {
         switch (logLevel) {
             case INFO:
-                log.info(s, throwable);
+                LOGGER.info(s, throwable);
                 break;
             case WARN:
-                log.warn(s, throwable);
+                LOGGER.warn(s, throwable);
                 break;
             case ERROR:
-                log.error(s, throwable);
+                LOGGER.error(s, throwable);
                 break;
             default:
-                log.debug(s, throwable);
+                LOGGER.debug(s, throwable);
         }
     }
 
@@ -433,11 +432,6 @@ public class JamesMailetContext implements MailetContext, LogEnabled, Configurab
     }
 
     @Override
-    public void setLog(Logger log) {
-        this.log = log;
-    }
-
-    @Override
     public void configure(HierarchicalConfiguration config) throws ConfigurationException {
         try {
 
@@ -471,7 +465,7 @@ public class JamesMailetContext implements MailetContext, LogEnabled, Configurab
                             "address.  This is not necessarily a problem, but it does mean that emails addressed to " +
                             "the postmaster will be routed to another server.  For some configurations this may " +
                             "cause problems.";
-                    log.warn(warnBuffer);
+                    LOGGER.warn(warnBuffer);
                 }
             } catch (AddressException e) {
                 throw new ConfigurationException("Postmaster address " + postMasterAddress + "is invalid", e);
@@ -483,6 +477,6 @@ public class JamesMailetContext implements MailetContext, LogEnabled, Configurab
 
     @Override
     public Logger getLogger() {
-        return log;
+        return LOGGER;
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
index b6c1411..c4e4b3d 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessor.java
@@ -109,7 +109,6 @@ public class CamelCompositeProcessor extends AbstractStateCompositeProcessor imp
     protected MailProcessor createMailProcessor(String name, HierarchicalConfiguration config) throws Exception {
         CamelMailetProcessor processor = new CamelMailetProcessor(metricFactory);
         try {
-            processor.setLog(logger);
             processor.setCamelContext(camelContext);
             processor.setMailetContext(mailetContext);
             processor.setMailetLoader(mailetLoader);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
index 7f879c4..1fbfd10 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessor.java
@@ -42,6 +42,7 @@ import org.apache.mailet.Mailet;
 import org.apache.mailet.MailetConfig;
 import org.apache.mailet.Matcher;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -50,6 +51,7 @@ import com.google.common.collect.ImmutableList;
  * the {@link Matcher} / {@link Mailet} routing
  */
 public class CamelMailetProcessor extends AbstractStateMailetProcessor implements CamelContextAware {
+    private static final Logger LOGGER = LoggerFactory.getLogger(CamelMailetProcessor.class);
 
     private CamelContext context;
 
@@ -149,11 +151,10 @@ public class CamelMailetProcessor extends AbstractStateMailetProcessor implement
             Processor stateChangedProcessor = new StateChangedProcessor();
 
             String state = getState();
-            Logger logger = getLogger();
 
             RouteDefinition processorDef = from(getEndpoint()).routeId(state).setExchangePattern(ExchangePattern.InOnly)
             // store the logger in properties
-                    .setProperty(MatcherSplitter.LOGGER_PROPERTY, constant(getLogger()))
+                    .setProperty(MatcherSplitter.LOGGER_PROPERTY, constant(LOGGER))
                     .setProperty(MatcherSplitter.METRIC_FACTORY, constant(metricFactory));
 
             for (MatcherMailetPair pair : pairs) {
@@ -167,7 +168,7 @@ public class CamelMailetProcessor extends AbstractStateMailetProcessor implement
                     onMatchException = ((MailetConfigImpl) mailetConfig).getInitAttribute("onMatchException");
                 }
 
-                CamelProcessor mailetProccessor = new CamelProcessor(metricFactory, mailet, logger, CamelMailetProcessor.this);
+                CamelProcessor mailetProccessor = new CamelProcessor(metricFactory, mailet, CamelMailetProcessor.this);
                 // Store the matcher to use for splitter in properties
                 processorDef.setProperty(MatcherSplitter.MATCHER_PROPERTY, constant(matcher)).setProperty(MatcherSplitter.ON_MATCH_EXCEPTION_PROPERTY, constant(onMatchException)).setProperty(MatcherSplitter.MAILETCONTAINER_PROPERTY, constant(CamelMailetProcessor.this))
 
@@ -181,7 +182,7 @@ public class CamelMailetProcessor extends AbstractStateMailetProcessor implement
                         .choice().when(new MailStateNotEquals(state)).process(stateChangedProcessor).process(completeProcessor).stop().end();
             }
 
-            Processor terminatingMailetProcessor = new CamelProcessor(metricFactory, new TerminatingMailet(), getLogger(), CamelMailetProcessor.this);
+            Processor terminatingMailetProcessor = new CamelProcessor(metricFactory, new TerminatingMailet(), CamelMailetProcessor.this);
 
             processorDef
             // start choice
@@ -211,7 +212,7 @@ public class CamelMailetProcessor extends AbstractStateMailetProcessor implement
         private final class CompleteProcessor implements Processor {
 
             public void process(Exchange ex) throws Exception {
-                getLogger().debug("End of mailetprocessor for state " + getState() + " reached");
+                LOGGER.debug("End of mailetprocessor for state " + getState() + " reached");
                 ex.setProperty(Exchange.ROUTE_STOP, true);
             }
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelProcessor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelProcessor.java
index f21c940..1723034 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelProcessor.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelProcessor.java
@@ -37,6 +37,7 @@ import org.apache.mailet.Mailet;
 import org.apache.mailet.MailetConfig;
 import org.apache.mailet.base.MailetPipelineLogging;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -44,10 +45,10 @@ import com.google.common.collect.ImmutableList;
  * Mailet wrapper which execute a Mailet in a Processor
  */
 public class CamelProcessor implements Processor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(CamelProcessor.class);
 
     private final MetricFactory metricFactory;
     private final Mailet mailet;
-    private final Logger logger;
     private final CamelMailetProcessor processor;
 
     /**
@@ -56,10 +57,9 @@ public class CamelProcessor implements Processor {
      * @param metricFactory
      * @param mailet
      */
-    public CamelProcessor(MetricFactory metricFactory, Mailet mailet, Logger logger, CamelMailetProcessor processor) {
+    public CamelProcessor(MetricFactory metricFactory, Mailet mailet, CamelMailetProcessor processor) {
         this.metricFactory = metricFactory;
         this.mailet = mailet;
-        this.logger = logger;
         this.processor = processor;
     }
 
@@ -103,7 +103,7 @@ public class CamelProcessor implements Processor {
                 // changed by the mailet
                 ProcessorUtil.verifyMailAddresses(mail.getRecipients());
             } else {
-                ProcessorUtil.handleException(me, mail, mailet.getMailetConfig().getMailetName(), onMailetException, logger);
+                ProcessorUtil.handleException(me, mail, mailet.getMailetConfig().getMailetName(), onMailetException, LOGGER);
             }
 
         } finally {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessor.java
index b68e93f..39ae880 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessor.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessor.java
@@ -32,33 +32,26 @@ import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.lifecycle.api.LifecycleUtil;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.mailetcontainer.api.MailProcessor;
 import org.apache.james.mailetcontainer.impl.jmx.JMXStateCompositeProcessorListener;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Abstract base class for {@link org.apache.james.mailetcontainer.impl.camel.CamelCompositeProcessor} which service the
  * {@link Mail} with a {@link org.apache.james.mailetcontainer.impl.camel.CamelProcessor} instances
  */
-public abstract class AbstractStateCompositeProcessor implements MailProcessor, Configurable, LogEnabled {
+public abstract class AbstractStateCompositeProcessor implements MailProcessor, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractStateCompositeProcessor.class);
 
     private final List<CompositeProcessorListener> listeners = Collections.synchronizedList(new ArrayList<CompositeProcessorListener>());
     private final Map<String, MailProcessor> processors = new HashMap<>();
-    protected Logger logger;
     protected HierarchicalConfiguration config;
 
     private JMXStateCompositeProcessorListener jmxListener;
     private boolean enableJmx = true;
 
-    /**
-     * @see org.apache.james.lifecycle.api.LogEnabled#setLog(org.slf4j.Logger)
-     */
-    public void setLog(Logger log) {
-        this.logger = log;
-
-    }
 
     public void addListener(CompositeProcessorListener listener) {
         listeners.add(listener);
@@ -93,7 +86,7 @@ public abstract class AbstractStateCompositeProcessor implements MailProcessor,
         MailProcessor processor = getProcessor(mail.getState());
 
         if (processor != null) {
-            logger.debug("Call MailProcessor " + mail.getState());
+            LOGGER.debug("Call MailProcessor " + mail.getState());
             try {
                 processor.service(mail);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java
index e3070ac..db12893 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/lib/AbstractStateMailetProcessor.java
@@ -34,7 +34,6 @@ import javax.management.NotCompliantMBeanException;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.mailetcontainer.api.MailProcessor;
 import org.apache.james.mailetcontainer.api.MailetLoader;
 import org.apache.james.mailetcontainer.api.MatcherLoader;
@@ -53,6 +52,7 @@ import org.apache.mailet.MatcherConfig;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.MatcherInverter;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.github.steveash.guavate.Guavate;
 
@@ -60,7 +60,8 @@ import com.github.steveash.guavate.Guavate;
  * Abstract base class for {@link MailProcessor} implementations which want to
  * process {@link Mail} via {@link Matcher} and {@link Mailet}
  */
-public abstract class AbstractStateMailetProcessor implements MailProcessor, Configurable, LogEnabled {
+public abstract class AbstractStateMailetProcessor implements MailProcessor, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractStateMailetProcessor.class);
 
     private MailetContext mailetContext;
     private MatcherLoader matcherLoader;
@@ -68,7 +69,6 @@ public abstract class AbstractStateMailetProcessor implements MailProcessor, Con
     private final List<MailetProcessorListener> listeners = Collections.synchronizedList(new ArrayList<MailetProcessorListener>());
     private JMXStateMailetProcessorListener jmxListener;
     private boolean enableJmx = true;
-    private Logger logger;
     private HierarchicalConfiguration config;
     private MailetLoader mailetLoader;
     private final List<MatcherMailetPair> pairs = new ArrayList<>();
@@ -92,12 +92,6 @@ public abstract class AbstractStateMailetProcessor implements MailProcessor, Con
         this.mailetLoader = mailetLoader;
     }
 
-    /**
-     * @see org.apache.james.lifecycle.api.LogEnabled#setLog(org.slf4j.Logger)
-     */
-    public void setLog(Logger log) {
-        this.logger = log;
-    }
 
     /**
      * @see
@@ -144,13 +138,13 @@ public abstract class AbstractStateMailetProcessor implements MailProcessor, Con
         for (MatcherMailetPair pair : pairs) {
             Mailet mailet = pair.getMailet();
             Matcher matcher = pair.getMatcher();
-            if (logger.isDebugEnabled()) {
-                logger.debug("Shutdown matcher " + matcher.getMatcherInfo());
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Shutdown matcher " + matcher.getMatcherInfo());
             }
             matcher.destroy();
 
-            if (logger.isDebugEnabled()) {
-                logger.debug("Shutdown mailet " + mailet.getMailetInfo());
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("Shutdown mailet " + mailet.getMailetInfo());
             }
             mailet.destroy();
 
@@ -167,10 +161,6 @@ public abstract class AbstractStateMailetProcessor implements MailProcessor, Con
         rootMailProcessor.service(mail);
     }
 
-    protected Logger getLogger() {
-        return logger;
-    }
-
     protected String getState() {
         return state;
     }
@@ -357,34 +347,34 @@ public abstract class AbstractStateMailetProcessor implements MailProcessor, Con
                 }
 
                 // The matcher itself should log that it's been inited.
-                if (logger.isInfoEnabled()) {
+                if (LOGGER.isInfoEnabled()) {
                     String infoBuffer = "Matcher " + matcherName + " instantiated.";
-                    logger.info(infoBuffer.toString());
+                    LOGGER.info(infoBuffer.toString());
                 }
             } catch (MessagingException ex) {
                 // **** Do better job printing out exception
-                if (logger.isErrorEnabled()) {
+                if (LOGGER.isErrorEnabled()) {
                     String errorBuffer = "Unable to init matcher " + matcherName + ": " + ex.toString();
-                    logger.error(errorBuffer.toString(), ex);
+                    LOGGER.error(errorBuffer.toString(), ex);
                     if (ex.getNextException() != null) {
-                        logger.error("Caused by nested exception: ", ex.getNextException());
+                        LOGGER.error("Caused by nested exception: ", ex.getNextException());
                     }
                 }
                 throw new ConfigurationException("Unable to init matcher " + matcherName, ex);
             }
             try {
                 mailet = mailetLoader.getMailet(createMailetConfig(mailetClassName, c));
-                if (logger.isInfoEnabled()) {
+                if (LOGGER.isInfoEnabled()) {
                     String infoBuffer = "Mailet " + mailetClassName + " instantiated.";
-                    logger.info(infoBuffer.toString());
+                    LOGGER.info(infoBuffer.toString());
                 }
             } catch (MessagingException ex) {
                 // **** Do better job printing out exception
-                if (logger.isErrorEnabled()) {
+                if (LOGGER.isErrorEnabled()) {
                     String errorBuffer = "Unable to init mailet " + mailetClassName + ": " + ex.toString();
-                    logger.error(errorBuffer.toString(), ex);
+                    LOGGER.error(errorBuffer.toString(), ex);
                     if (ex.getNextException() != null) {
-                        logger.error("Caused by nested exception: ", ex.getNextException());
+                        LOGGER.error("Caused by nested exception: ", ex.getNextException());
                     }
                 }
                 throw new ConfigurationException("Unable to init mailet " + mailetClassName, ex);
@@ -427,7 +417,7 @@ public abstract class AbstractStateMailetProcessor implements MailProcessor, Con
                 // error processor. That is currently the
                 // normal situation for James, and the message
                 // will show up in the error store.
-                logger.warn("Message {} reached the end of this processor, and is automatically deleted. " +
+                LOGGER.warn("Message {} reached the end of this processor, and is automatically deleted. " +
                     "This may indicate a configuration error.", mail.getName());
             }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
index b561142..01c9bf0 100644
--- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
+++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
@@ -53,7 +53,6 @@ public class JamesMailetContextTest {
     @Before
     public void setUp() throws Exception {
         domainList = new MemoryDomainList(DNS_SERVICE);
-        domainList.setLog(LOGGER);
         HierarchicalConfiguration configuration = mock(HierarchicalConfiguration.class);
         when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT, true)).thenReturn(false);
         when(configuration.getBoolean(AbstractDomainList.CONFIGURE_AUTODETECT_IP, true)).thenReturn(false);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
index 7e2bf43..d1373ce 100644
--- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
+++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelCompositeProcessorTest.java
@@ -26,7 +26,6 @@ import org.apache.james.mailetcontainer.api.mock.MockMatcherLoader;
 import org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor;
 import org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessorTest;
 import org.apache.james.metrics.api.NoopMetricFactory;
-import org.slf4j.LoggerFactory;
 
 public class CamelCompositeProcessorTest extends AbstractStateCompositeProcessorTest {
 
@@ -34,7 +33,6 @@ public class CamelCompositeProcessorTest extends AbstractStateCompositeProcessor
     protected AbstractStateCompositeProcessor createProcessor(HierarchicalConfiguration config) throws Exception {
         CamelCompositeProcessor processor = new CamelCompositeProcessor(new NoopMetricFactory());
         try {
-            processor.setLog(LoggerFactory.getLogger("MockLog"));
             processor.setCamelContext(new DefaultCamelContext());
             processor.setMailetLoader(new MockMailetLoader());
             processor.setMatcherLoader(new MockMatcherLoader());

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessorTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessorTest.java
index 6622a72..d76bae2 100644
--- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessorTest.java
+++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/camel/CamelMailetProcessorTest.java
@@ -30,8 +30,6 @@ import org.apache.james.mailetcontainer.api.mock.MockMatcherLoader;
 import org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor;
 import org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessorTest;
 import org.apache.james.metrics.api.NoopMetricFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class CamelMailetProcessorTest extends AbstractStateMailetProcessorTest {
 
@@ -40,11 +38,6 @@ public class CamelMailetProcessorTest extends AbstractStateMailetProcessorTest {
         CamelMailetProcessor processor = null;
         try {
             processor = new CamelMailetProcessor(new NoopMetricFactory());
-            Logger log = LoggerFactory.getLogger("MockLog");
-            // slf4j can't set programmatically any log level. It's just a
-            // facade
-            // log.setLevel(SimpleLog.LOG_LEVEL_DEBUG);
-            processor.setLog(log);
             processor.setCamelContext(new DefaultCamelContext());
             processor.setMailetContext(new MockMailetContext());
             processor.setMailetLoader(new MockMailetLoader());

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessorTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessorTest.java
index 9a36ab9..b000490 100644
--- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessorTest.java
+++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/lib/AbstractStateCompositeProcessorTest.java
@@ -37,8 +37,6 @@ import org.apache.mailet.Mail;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public abstract class AbstractStateCompositeProcessorTest {
 
@@ -63,10 +61,6 @@ public abstract class AbstractStateCompositeProcessorTest {
                 };
             }
         };
-        Logger log = LoggerFactory.getLogger("MockLog");
-        // slf4j can't set programmatically any log level. It's just a facade
-        // log.setLevel(SimpleLog.LOG_LEVEL_DEBUG);
-        processor.setLog(log);
         processor.configure(createConfig(Arrays.asList("root", "error", "test")));
         processor.init();
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
index 1bc94ff..76736cf 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
@@ -44,7 +44,6 @@ import org.apache.james.transport.mailets.remoteDelivery.RemoteDeliverySocketFac
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
-import org.slf4j.Logger;
 
 import com.google.common.collect.HashMultimap;
 
@@ -135,7 +134,6 @@ public class RemoteDelivery extends GenericMailet {
     private final THREAD_STATE startThreads;
 
     private MailQueue queue;
-    private Logger logger;
     private RemoteDeliveryConfiguration configuration;
     private ExecutorService executor;
 
@@ -154,7 +152,6 @@ public class RemoteDelivery extends GenericMailet {
     }
 
     public void init() throws MessagingException {
-        logger = getMailetContext().getLogger();
         configuration = new RemoteDeliveryConfiguration(getMailetConfig(), domainList);
         queue = queueFactory.getQueue(configuration.getOutGoingQueueName());
         try {
@@ -176,9 +173,8 @@ public class RemoteDelivery extends GenericMailet {
                     configuration,
                     dnsServer,
                     metricFactory,
-                    logger,
                     getMailetContext(),
-                    new Bouncer(configuration, getMailetContext(), logger),
+                    new Bouncer(configuration, getMailetContext()),
                     isDestroyed));
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
index 3390a8d..928c379 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverter.java
@@ -27,29 +27,31 @@ import javax.mail.internet.AddressException;
 
 import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 
 public class AddressesArrayToMailAddressListConverter {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AddressesArrayToMailAddressListConverter.class);
 
-    public static List<MailAddress> getAddressesAsMailAddress(Address[] addresses, final Logger logger) {
+    public static List<MailAddress> getAddressesAsMailAddress(Address[] addresses) {
         if (addresses == null) {
             return ImmutableList.of();
         }
         return FluentIterable.from(Arrays.asList(addresses))
-            .transform(address -> toMailAddress(logger, address))
+            .transform(address -> toMailAddress(address))
             .filter(Optional::isPresent)
             .transform(Optional::get)
             .toList();
     }
 
-    private static Optional<MailAddress> toMailAddress(Logger logger, Address address) {
+    private static Optional<MailAddress> toMailAddress(Address address) {
         try {
             return Optional.of(new MailAddress(address.toString()));
         } catch (AddressException e) {
-            logger.debug("Can't parse unsent address " + address, e);
+            LOGGER.debug("Can't parse unsent address " + address, e);
             return Optional.absent();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/Bouncer.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/Bouncer.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/Bouncer.java
index fa60c23..d0a12c4 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/Bouncer.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/Bouncer.java
@@ -32,23 +32,23 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class Bouncer {
+    private static final Logger LOGGER = LoggerFactory.getLogger(Bouncer.class);
 
     public static final String DELIVERY_ERROR = "delivery-error";
     private final RemoteDeliveryConfiguration configuration;
     private final MailetContext mailetContext;
-    private final Logger logger;
 
-    public Bouncer(RemoteDeliveryConfiguration configuration, MailetContext mailetContext, Logger logger) {
+    public Bouncer(RemoteDeliveryConfiguration configuration, MailetContext mailetContext) {
         this.configuration = configuration;
         this.mailetContext = mailetContext;
-        this.logger = logger;
     }
 
     public void bounce(Mail mail, Exception ex) {
         if (mail.getSender() == null) {
-            logger.debug("Null Sender: no bounce will be generated for {}", mail.getName());
+            LOGGER.debug("Null Sender: no bounce will be generated for {}", mail.getName());
         } else {
             if (configuration.getBounceProcessor() != null) {
                 mail.setAttribute(DELIVERY_ERROR, getErrorMsg(ex));
@@ -56,7 +56,7 @@ public class Bouncer {
                 try {
                     mailetContext.sendMail(mail);
                 } catch (MessagingException e) {
-                    logger.warn("Exception re-inserting failed mail: ", e);
+                    LOGGER.warn("Exception re-inserting failed mail: ", e);
                 }
             } else {
                 bounceWithMailetContext(mail, ex);
@@ -66,13 +66,13 @@ public class Bouncer {
 
 
     private void bounceWithMailetContext(Mail mail, Exception ex) {
-        logger.debug("Sending failure message " + mail.getName());
+        LOGGER.debug("Sending failure message " + mail.getName());
         try {
             mailetContext.bounce(mail, explanationText(mail, ex));
         } catch (MessagingException me) {
-            logger.warn("Encountered unexpected messaging exception while bouncing message: {}", me.getMessage());
+            LOGGER.warn("Encountered unexpected messaging exception while bouncing message: {}", me.getMessage());
         } catch (Exception e) {
-            logger.warn("Encountered unexpected exception while bouncing message: {}", e.getMessage());
+            LOGGER.warn("Encountered unexpected exception while bouncing message: {}", e.getMessage());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
index 7bab048..4877545 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnable.java
@@ -33,11 +33,13 @@ import org.apache.james.queue.api.MailQueue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetContext;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Supplier;
 
 public class DeliveryRunnable implements Runnable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DeliveryRunnable.class);
 
     public static final Supplier<Date> CURRENT_DATE_SUPPLIER = Date::new;
     public static final AtomicBoolean DEFAULT_NOT_STARTED = new AtomicBoolean(false);
@@ -48,26 +50,24 @@ public class DeliveryRunnable implements Runnable {
     private final RemoteDeliveryConfiguration configuration;
     private final Metric outgoingMailsMetric;
     private final MetricFactory metricFactory;
-    private final Logger logger;
     private final Bouncer bouncer;
     private final MailDelivrer mailDelivrer;
     private final AtomicBoolean isDestroyed;
     private final Supplier<Date> dateSupplier;
 
     public DeliveryRunnable(MailQueue queue, RemoteDeliveryConfiguration configuration, DNSService dnsServer, MetricFactory metricFactory,
-                            Logger logger, MailetContext mailetContext, Bouncer bouncer, AtomicBoolean isDestroyed) {
-        this(queue, configuration, metricFactory, logger, bouncer,
-            new MailDelivrer(configuration, new MailDelivrerToHost(configuration, mailetContext, logger), dnsServer, bouncer, logger),
+                            MailetContext mailetContext, Bouncer bouncer, AtomicBoolean isDestroyed) {
+        this(queue, configuration, metricFactory, bouncer,
+            new MailDelivrer(configuration, new MailDelivrerToHost(configuration, mailetContext), dnsServer, bouncer),
             isDestroyed, CURRENT_DATE_SUPPLIER);
     }
 
     @VisibleForTesting
-    DeliveryRunnable(MailQueue queue, RemoteDeliveryConfiguration configuration, MetricFactory metricFactory, Logger logger, Bouncer bouncer,
+    DeliveryRunnable(MailQueue queue, RemoteDeliveryConfiguration configuration, MetricFactory metricFactory, Bouncer bouncer,
                      MailDelivrer mailDelivrer, AtomicBoolean isDestroyeds, Supplier<Date> dateSupplier) {
         this.queue = queue;
         this.configuration = configuration;
         this.outgoingMailsMetric = metricFactory.generate(OUTGOING_MAILS);
-        this.logger = logger;
         this.bouncer = bouncer;
         this.mailDelivrer = mailDelivrer;
         this.isDestroyed = isDestroyeds;
@@ -99,7 +99,7 @@ public class DeliveryRunnable implements Runnable {
 
             try {
                 if (configuration.isDebug()) {
-                    logger.debug("{} will process mail {}", Thread.currentThread().getName(), mail.getName());
+                    LOGGER.debug("{} will process mail {}", Thread.currentThread().getName(), mail.getName());
                 }
                 attemptDelivery(mail);
                 LifecycleUtil.dispose(mail);
@@ -110,14 +110,14 @@ public class DeliveryRunnable implements Runnable {
                 // DO NOT CHANGE THIS to catch Error!
                 // For example, if there were an OutOfMemory condition caused because
                 // something else in the server was abusing memory, we would not want to start purging the retrying spool!
-                logger.error("Exception caught in RemoteDelivery.run()", e);
+                LOGGER.error("Exception caught in RemoteDelivery.run()", e);
                 LifecycleUtil.dispose(mail);
                 queueItem.done(false);
             }
 
         } catch (Throwable e) {
             if (!isDestroyed.get()) {
-                logger.error("Exception caught in RemoteDelivery.run()", e);
+                LOGGER.error("Exception caught in RemoteDelivery.run()", e);
             }
         } finally {
             if (timeMetric != null) {
@@ -153,13 +153,13 @@ public class DeliveryRunnable implements Runnable {
         if (retries < configuration.getMaxRetries()) {
             reAttemptDelivery(mail, retries);
         } else {
-            logger.debug("Bouncing message {} after {} retries", mail.getName(), retries);
+            LOGGER.debug("Bouncing message {} after {} retries", mail.getName(), retries);
             bouncer.bounce(mail, new Exception("Too many retries failure. Bouncing after " + retries + " retries.", executionResult.getException().orNull()));
         }
     }
 
     private void reAttemptDelivery(Mail mail, int retries) throws MailQueue.MailQueueException {
-        logger.debug("Storing message {} into outgoing after {} retries", mail.getName(), retries);
+        LOGGER.debug("Storing message {} into outgoing after {} retries", mail.getName(), retries);
         DeliveryRetriesHelper.incrementRetries(mail);
         mail.setLastUpdated(dateSupplier.get());
         // Something happened that will delay delivery. Store it back in the retry repository.

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DnsHelper.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DnsHelper.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DnsHelper.java
index 6d396be..18da3f8 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DnsHelper.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DnsHelper.java
@@ -25,7 +25,6 @@ import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.dnsservice.api.TemporaryResolutionException;
 import org.apache.james.dnsservice.library.MXHostAddressIterator;
 import org.apache.mailet.HostAddress;
-import org.slf4j.Logger;
 
 @SuppressWarnings("deprecation")
 public class DnsHelper {
@@ -33,19 +32,17 @@ public class DnsHelper {
     public static final boolean USE_SEVERAL_IP = false;
     private final DNSService dnsServer;
     private final RemoteDeliveryConfiguration configuration;
-    private final Logger logger;
 
-    public DnsHelper(DNSService dnsServer, RemoteDeliveryConfiguration configuration, Logger logger) {
+    public DnsHelper(DNSService dnsServer, RemoteDeliveryConfiguration configuration) {
         this.dnsServer = dnsServer;
         this.configuration = configuration;
-        this.logger = logger;
     }
 
     public Iterator<HostAddress> retrieveHostAddressIterator(String host) throws TemporaryResolutionException {
         if (configuration.getGatewayServer().isEmpty()) {
-            return new MXHostAddressIterator(dnsServer.findMXRecords(host).iterator(), dnsServer, USE_SEVERAL_IP, logger);
+            return new MXHostAddressIterator(dnsServer.findMXRecords(host).iterator(), dnsServer, USE_SEVERAL_IP);
         } else {
-            return new MXHostAddressIterator(configuration.getGatewayServer().iterator(), dnsServer, USE_SEVERAL_IP, logger);
+            return new MXHostAddressIterator(configuration.getGatewayServer().iterator(), dnsServer, USE_SEVERAL_IP);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrer.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrer.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrer.java
index 1646177..c0f8f82 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrer.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrer.java
@@ -35,6 +35,7 @@ import org.apache.mailet.HostAddress;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
@@ -43,26 +44,25 @@ import com.google.common.collect.Iterables;
 
 @SuppressWarnings("deprecation")
 public class MailDelivrer {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailDelivrer.class);
 
     private final RemoteDeliveryConfiguration configuration;
     private final MailDelivrerToHost mailDelivrerToHost;
     private final DnsHelper dnsHelper;
     private final MessageComposer messageComposer;
     private final Bouncer bouncer;
-    private final Logger logger;
 
-    public MailDelivrer(RemoteDeliveryConfiguration configuration, MailDelivrerToHost mailDelivrerToHost, DNSService dnsServer, Bouncer bouncer, Logger logger) {
-        this(configuration, mailDelivrerToHost, new DnsHelper(dnsServer, configuration, logger), bouncer, logger);
+    public MailDelivrer(RemoteDeliveryConfiguration configuration, MailDelivrerToHost mailDelivrerToHost, DNSService dnsServer, Bouncer bouncer) {
+        this(configuration, mailDelivrerToHost, new DnsHelper(dnsServer, configuration), bouncer);
     }
 
     @VisibleForTesting
-    MailDelivrer(RemoteDeliveryConfiguration configuration, MailDelivrerToHost mailDelivrerToHost, DnsHelper dnsHelper, Bouncer bouncer, Logger logger) {
+    MailDelivrer(RemoteDeliveryConfiguration configuration, MailDelivrerToHost mailDelivrerToHost, DnsHelper dnsHelper, Bouncer bouncer) {
         this.configuration = configuration;
         this.mailDelivrerToHost = mailDelivrerToHost;
         this.dnsHelper = dnsHelper;
         this.messageComposer = new MessageComposer(configuration);
         this.bouncer = bouncer;
-        this.logger = logger;
     }
 
     /**
@@ -84,18 +84,18 @@ public class MailDelivrer {
             boolean isPermanent = new EnhancedMessagingException(ex).isServerError();
             return logAndReturn(mail, ExecutionResult.onFailure(isPermanent, ex));
         } catch (Exception ex) {
-            logger.error("Generic exception = permanent failure: {}", ex.getMessage(), ex);
+            LOGGER.error("Generic exception = permanent failure: {}", ex.getMessage(), ex);
             return logAndReturn(mail, ExecutionResult.permanentFailure(ex));
         }
     }
 
     private ExecutionResult tryDeliver(Mail mail) throws MessagingException {
         if (mail.getRecipients().isEmpty()) {
-            logger.info("No recipients specified... not sure how this could have happened.");
+            LOGGER.info("No recipients specified... not sure how this could have happened.");
             return ExecutionResult.permanentFailure(new Exception("No recipients specified for " + mail.getName() + " sent by " + mail.getSender()));
         }
         if (configuration.isDebug()) {
-            logger.debug("Attempting to deliver {}", mail.getName());
+            LOGGER.debug("Attempting to deliver {}", mail.getName());
         }
 
         String host = retrieveTargetHostname(mail);
@@ -130,9 +130,9 @@ public class MailDelivrer {
             } catch (MessagingException me) {
                 lastError = handleMessagingException(mail, me);
                 if (configuration.isDebug()) {
-                    logger.debug(me.getMessage(), me.getCause());
+                    LOGGER.debug(me.getMessage(), me.getCause());
                 } else {
-                    logger.info(me.getMessage());
+                    LOGGER.info(me.getMessage());
                 }
             }
         }
@@ -149,7 +149,7 @@ public class MailDelivrer {
     }
 
     private MessagingException handleMessagingException(Mail mail, MessagingException me) throws MessagingException {
-        logger.debug("Exception delivering message ({}) - {}", mail.getName(), me.getMessage());
+        LOGGER.debug("Exception delivering message ({}) - {}", mail.getName(), me.getMessage());
         if ((me.getNextException() != null) && (me.getNextException() instanceof IOException)) {
             // If it's an IO exception with no nested exception, it's probably
             // some socket or weird I/O related problem.
@@ -167,15 +167,15 @@ public class MailDelivrer {
     ExecutionResult handleSenderFailedException(Mail mail, SendFailedException sfe) {
         logSendFailedException(sfe);
         EnhancedMessagingException enhancedMessagingException = new EnhancedMessagingException(sfe);
-        List<MailAddress> invalidAddresses = AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(sfe.getInvalidAddresses(), logger);
-        List<MailAddress> validUnsentAddresses = AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(sfe.getValidUnsentAddresses(), logger);
+        List<MailAddress> invalidAddresses = AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(sfe.getInvalidAddresses());
+        List<MailAddress> validUnsentAddresses = AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(sfe.getValidUnsentAddresses());
         if (configuration.isDebug()) {
-            logger.debug("Mail {} has initially recipients: {}", mail.getName(), mail.getRecipients());
+            LOGGER.debug("Mail {} has initially recipients: {}", mail.getName(), mail.getRecipients());
             if (!invalidAddresses.isEmpty()) {
-                logger.debug("Invalid recipients: {}", invalidAddresses);
+                LOGGER.debug("Invalid recipients: {}", invalidAddresses);
             }
             if (!validUnsentAddresses.isEmpty()) {
-                logger.debug("Unsent recipients: {}", validUnsentAddresses);
+                LOGGER.debug("Unsent recipients: {}", validUnsentAddresses);
             }
         }
         if (!validUnsentAddresses.isEmpty()) {
@@ -205,7 +205,7 @@ public class MailDelivrer {
     }
 
     private ExecutionResult logAndReturn(Mail mail, ExecutionResult executionResult) {
-        logger.debug(messageComposer.composeFailLogMessage(mail, executionResult));
+        LOGGER.debug(messageComposer.composeFailLogMessage(mail, executionResult));
         return executionResult;
     }
 
@@ -215,7 +215,7 @@ public class MailDelivrer {
         if (sfe.getValidSentAddresses() != null) {
             Address[] validSent = sfe.getValidSentAddresses();
             if (validSent.length > 0) {
-                logger.debug( "Mail ({}) sent successfully for {}", mail.getName(), Arrays.asList(validSent));
+                LOGGER.debug( "Mail ({}) sent successfully for {}", mail.getName(), Arrays.asList(validSent));
             }
         }
 
@@ -226,7 +226,7 @@ public class MailDelivrer {
 
         if (sfe.getValidUnsentAddresses() != null && sfe.getValidUnsentAddresses().length > 0) {
             if (configuration.isDebug())
-                logger.debug("Send failed, {} valid addresses remain, continuing with any other servers", ImmutableList.copyOf(sfe.getValidUnsentAddresses()));
+                LOGGER.debug("Send failed, {} valid addresses remain, continuing with any other servers", ImmutableList.copyOf(sfe.getValidUnsentAddresses()));
             return sfe;
         } else {
             // There are no valid addresses left to send, so rethrow
@@ -235,7 +235,7 @@ public class MailDelivrer {
     }
 
     private ExecutionResult handleNoTargetServer(Mail mail, String host) {
-        logger.info("No mail server found for: {}", host);
+        LOGGER.info("No mail server found for: {}", host);
         MessagingException messagingException = new MessagingException("There are no DNS entries for the hostname " + host + ".  I cannot determine where to send this message.");
         int retry = DeliveryRetriesHelper.retrieveRetries(mail);
         if (retry >= configuration.getDnsProblemRetry()) {
@@ -249,10 +249,10 @@ public class MailDelivrer {
         if (configuration.isDebug()) {
             EnhancedMessagingException enhancedMessagingException = new EnhancedMessagingException(sfe);
             if (enhancedMessagingException.hasReturnCode()) {
-                logger.info("SMTP SEND FAILED: Command [{}] RetCode: [{}] Response[{}]", enhancedMessagingException.computeCommand(),
+                LOGGER.info("SMTP SEND FAILED: Command [{}] RetCode: [{}] Response[{}]", enhancedMessagingException.computeCommand(),
                     enhancedMessagingException.getReturnCode(), sfe.getMessage());
             } else {
-                logger.info("Send failed", sfe);
+                LOGGER.info("Send failed", sfe);
             }
             logLevels(sfe);
         }
@@ -264,7 +264,7 @@ public class MailDelivrer {
             me = (MessagingException) ne;
             EnhancedMessagingException enhancedMessagingException = new EnhancedMessagingException(me);
             if (me.getClass().getName().endsWith(".SMTPAddressFailedException") || me.getClass().getName().endsWith(".SMTPAddressSucceededException")) {
-                logger.debug("ADDRESS :[{}] Address:[{}] Command : [{}] RetCode[{}] Response [{}]",
+                LOGGER.debug("ADDRESS :[{}] Address:[{}] Command : [{}] RetCode[{}] Response [{}]",
                     enhancedMessagingException.computeAction(), me.toString(), enhancedMessagingException.computeAddress(),
                     enhancedMessagingException.computeCommand(), enhancedMessagingException.getReturnCode());
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrerToHost.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrerToHost.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrerToHost.java
index a6ffbad..e685437 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrerToHost.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrerToHost.java
@@ -31,28 +31,28 @@ import org.apache.mailet.HostAddress;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetContext;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.sun.mail.smtp.SMTPTransport;
 
 @SuppressWarnings("deprecation")
 public class MailDelivrerToHost {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailDelivrerToHost.class);
     public static final String BIT_MIME_8 = "8BITMIME";
 
     private final RemoteDeliveryConfiguration configuration;
     private final Converter7Bit converter7Bit;
     private final Session session;
-    private final Logger logger;
 
-    public MailDelivrerToHost(RemoteDeliveryConfiguration remoteDeliveryConfiguration, MailetContext mailetContext, Logger logger) {
+    public MailDelivrerToHost(RemoteDeliveryConfiguration remoteDeliveryConfiguration, MailetContext mailetContext) {
         this.configuration = remoteDeliveryConfiguration;
         this.converter7Bit = new Converter7Bit(mailetContext);
         this.session = Session.getInstance(configuration.createFinalJavaxProperties());
-        this.logger = logger;
     }
 
     public ExecutionResult tryDeliveryToHost(Mail mail, InternetAddress[] addr, HostAddress outgoingMailServer) throws MessagingException {
         Properties props = getPropertiesForMail(mail);
-        logger.debug("Attempting delivery of {} to host {} at {} from {}",
+        LOGGER.debug("Attempting delivery of {} to host {} at {} from {}",
             mail.getName(), outgoingMailServer.getHostName(), outgoingMailServer.getHost(), props.get("mail.smtp.from"));
 
         // Many of these properties are only in later JavaMail versions
@@ -67,7 +67,7 @@ public class MailDelivrerToHost {
             transport.setLocalHost( props.getProperty("mail.smtp.localhost", configuration.getHeloNameProvider().getHeloName()) );
             connect(outgoingMailServer, transport);
             transport.sendMessage(adaptToTransport(mail.getMessage(), transport), addr);
-            logger.debug("Mail ({})  sent successfully to {} at {} from {} for {}", mail.getName(), outgoingMailServer.getHostName(),
+            LOGGER.debug("Mail ({})  sent successfully to {} at {} from {} for {}", mail.getName(), outgoingMailServer.getHostName(),
                 outgoingMailServer.getHost(), props.get("mail.smtp.from"), mail.getRecipients());
         } finally {
             closeTransport(mail, outgoingMailServer, transport);
@@ -99,7 +99,7 @@ public class MailDelivrerToHost {
             try {
                 converter7Bit.convertTo7Bit(message);
             } catch (IOException e) {
-                logger.error("Error during the conversion to 7 bit.", e);
+                LOGGER.error("Error during the conversion to 7 bit.", e);
             }
         }
         return message;
@@ -124,7 +124,7 @@ public class MailDelivrerToHost {
                 // of the mail transaction (MAIL, RCPT, DATA).
                 transport.close();
             } catch (MessagingException e) {
-                logger.error("Warning: could not close the SMTP transport after sending mail ({}) to {} at {} for {}; " +
+                LOGGER.error("Warning: could not close the SMTP transport after sending mail ({}) to {} at {} for {}; " +
                         "probably the server has already closed the connection. Message is considered to be delivered. Exception: {}",
                     mail.getName(), outgoingMailServer.getHostName(), outgoingMailServer.getHost(), mail.getRecipients(), e.getMessage());
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverterTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverterTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverterTest.java
index dd05c7c..6ec50e4 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverterTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/AddressesArrayToMailAddressListConverterTest.java
@@ -26,26 +26,23 @@ import javax.mail.internet.InternetAddress;
 
 import org.apache.mailet.base.MailAddressFixture;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class AddressesArrayToMailAddressListConverterTest {
-    private static final Logger LOGGER = LoggerFactory.getLogger(AddressesArrayToMailAddressListConverterTest.class);
 
     @Test
     public void getAddressesAsMailAddressShouldReturnEmptyOnNull() {
-        assertThat(AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(null, LOGGER)).isEmpty();
+        assertThat(AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(null)).isEmpty();
     }
 
     @Test
     public void getAddressesAsMailAddressShouldReturnEmptyOnEmpty() {
-        assertThat(AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(new Address[]{}, LOGGER)).isEmpty();
+        assertThat(AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(new Address[]{})).isEmpty();
     }
 
     @Test
     public void getAddressesAsMailAddressShouldWorkWithSingleValue() throws Exception {
         assertThat(AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(new Address[]{
-            new InternetAddress(MailAddressFixture.ANY_AT_JAMES.toString())}, LOGGER))
+            new InternetAddress(MailAddressFixture.ANY_AT_JAMES.toString())}))
             .containsOnly(MailAddressFixture.ANY_AT_JAMES);
     }
 
@@ -53,7 +50,7 @@ public class AddressesArrayToMailAddressListConverterTest {
     public void getAddressesAsMailAddressShouldWorkWithTwoValues() throws Exception {
         assertThat(AddressesArrayToMailAddressListConverter.getAddressesAsMailAddress(new Address[]{
             new InternetAddress(MailAddressFixture.ANY_AT_JAMES.toString()),
-            new InternetAddress(MailAddressFixture.OTHER_AT_JAMES.toString())}, LOGGER))
+            new InternetAddress(MailAddressFixture.OTHER_AT_JAMES.toString())}))
             .containsOnly(MailAddressFixture.ANY_AT_JAMES, MailAddressFixture.OTHER_AT_JAMES);
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[03/38] james-project git commit: JAMES-2114 Adding MDC management utils

Posted by bt...@apache.org.
JAMES-2114 Adding MDC management utils


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/47ceea4a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/47ceea4a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/47ceea4a

Branch: refs/heads/master
Commit: 47ceea4acf4ed2ef43729bfe69b5ce8a9ee9832a
Parents: 742c402
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 10:30:09 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:33:43 2017 +0700

----------------------------------------------------------------------
 server/container/util-java8/pom.xml             |   4 +
 .../java/org/apache/james/util/MDCBuilder.java  | 114 +++++++++++++++
 .../org/apache/james/util/MDCBuilderTest.java   | 137 +++++++++++++++++++
 3 files changed, 255 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/47ceea4a/server/container/util-java8/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/util-java8/pom.xml b/server/container/util-java8/pom.xml
index e127afd..bd19e9f 100644
--- a/server/container/util-java8/pom.xml
+++ b/server/container/util-java8/pom.xml
@@ -71,6 +71,10 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>testcontainers</artifactId>
             <scope>test</scope>

http://git-wip-us.apache.org/repos/asf/james-project/blob/47ceea4a/server/container/util-java8/src/main/java/org/apache/james/util/MDCBuilder.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/main/java/org/apache/james/util/MDCBuilder.java b/server/container/util-java8/src/main/java/org/apache/james/util/MDCBuilder.java
new file mode 100644
index 0000000..bf2d334
--- /dev/null
+++ b/server/container/util-java8/src/main/java/org/apache/james/util/MDCBuilder.java
@@ -0,0 +1,114 @@
+/****************************************************************
+ * 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.util;
+
+import java.io.Closeable;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+
+import com.github.steveash.guavate.Guavate;
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+public class MDCBuilder {
+
+    public static final String HOST = "host";
+    public static final String IP = "ip";
+    public static final String PROTOCOL = "protocol";
+    public static final String USER = "user";
+    public static final String ACTION = "action";
+    public static final String SESSION_ID = "sessionId";
+    public static final String CHARSET = "charset";
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(MDCBuilder.class);
+
+    public static class Closeables implements Closeable {
+        private final List<Closeable> closeables;
+
+        public Closeables(List<Closeable> closeables) {
+            Preconditions.checkNotNull(closeables);
+            this.closeables = ImmutableList.copyOf(closeables);
+        }
+
+        @Override
+        public void close() throws IOException {
+            closeables.forEach(this::closeQuietly);
+        }
+
+        private void closeQuietly(Closeable closeable) {
+            try {
+                closeable.close();
+            } catch (IOException e) {
+                LOGGER.warn("Failed to close Closeable", e);
+            }
+        }
+    }
+
+    public static MDCBuilder create() {
+        return new MDCBuilder();
+    }
+
+    private final ImmutableMap.Builder<String, String> contextMap = ImmutableMap.builder();
+    private final ImmutableList.Builder<MDCBuilder> nestedBuilder = ImmutableList.builder();
+
+    private MDCBuilder() {}
+
+    public MDCBuilder addContext(MDCBuilder nested) {
+        this.nestedBuilder.add(nested);
+        return this;
+    }
+
+    public MDCBuilder addContext(String key, Object value) {
+        Preconditions.checkNotNull(key);
+        Optional.ofNullable(value)
+            .ifPresent(nonNullValue -> contextMap.put(key, nonNullValue.toString()));
+        return this;
+    }
+
+    @VisibleForTesting
+    Map<String, String> buildContextMap() {
+        return ImmutableMap.<String, String>builder()
+            .putAll(nestedBuilder.build()
+                .stream()
+                .map(MDCBuilder::buildContextMap)
+                .flatMap(map -> map.entrySet().stream())
+                .collect(Guavate.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue)))
+            .putAll(contextMap.build())
+            .build();
+    }
+
+    public Closeable build() {
+        return new Closeables(
+            buildContextMap()
+                .entrySet()
+                .stream()
+                .map(entry -> MDC.putCloseable(entry.getKey(), entry.getValue()))
+                .collect(Guavate.toImmutableList()));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/47ceea4a/server/container/util-java8/src/test/java/org/apache/james/util/MDCBuilderTest.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/test/java/org/apache/james/util/MDCBuilderTest.java b/server/container/util-java8/src/test/java/org/apache/james/util/MDCBuilderTest.java
new file mode 100644
index 0000000..8e4d4f1
--- /dev/null
+++ b/server/container/util-java8/src/test/java/org/apache/james/util/MDCBuilderTest.java
@@ -0,0 +1,137 @@
+/****************************************************************
+ * 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.util;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.io.Closeable;
+import java.io.IOException;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.testcontainers.shaded.com.google.common.collect.ImmutableList;
+
+public class MDCBuilderTest {
+
+    private static final String KEY_1 = "key1";
+    private static final String KEY_2 = "key2";
+    private static final String VALUE_1 = "value1";
+    private static final String VALUE_2 = "value2";
+
+    @Rule
+    public ExpectedException expectedException = ExpectedException.none();
+
+    @Test
+    public void addContextShouldThrowOnNullKey() {
+        expectedException.expect(NullPointerException.class);
+
+        MDCBuilder.create()
+            .addContext(null, "any");
+    }
+
+    @Test
+    public void buildContextMapShouldReturnEmptyWhenNoContext() {
+        assertThat(MDCBuilder.create().buildContextMap())
+            .isEmpty();
+    }
+
+    @Test
+    public void buildContextMapShouldReturnContext() {
+        assertThat(
+            MDCBuilder.create()
+                .addContext(KEY_1, VALUE_1)
+                .addContext(KEY_2, VALUE_2)
+                .buildContextMap())
+            .containsOnlyKeys(KEY_1, KEY_2)
+            .containsEntry(KEY_1, VALUE_1)
+            .containsEntry(KEY_2, VALUE_2);
+    }
+
+    @Test
+    public void addContextShouldFilterOutNullValues() {
+        assertThat(
+            MDCBuilder.create()
+                .addContext(KEY_1, null)
+                .buildContextMap())
+            .isEmpty();
+    }
+
+    @Test
+    public void addContextShouldAllowRecursiveBuild() {
+        assertThat(
+            MDCBuilder.create()
+                .addContext(KEY_1, VALUE_1)
+                .addContext(MDCBuilder.create()
+                    .addContext(KEY_2, VALUE_2))
+                .buildContextMap())
+            .containsOnlyKeys(KEY_1, KEY_2)
+            .containsEntry(KEY_1, VALUE_1)
+            .containsEntry(KEY_2, VALUE_2);
+    }
+
+    @Test
+    public void closeablesConstructorShouldThrowOnNullList() {
+        expectedException.expect(NullPointerException.class);
+
+        new MDCBuilder.Closeables(null);
+    }
+
+    @Test
+    public void closeablesCloseShouldNotThrowWhenEmpty() throws IOException {
+        new MDCBuilder.Closeables(ImmutableList.of())
+            .close();
+    }
+
+    @Test
+    public void closeablesCloseShouldCallAllUnderlyingCloseables() throws IOException {
+        ImmutableList.Builder<String> builder = ImmutableList.builder();
+
+        Closeable closeable1 = () -> builder.add(VALUE_1);
+        Closeable closeable2 = () -> builder.add(VALUE_2);
+
+        new MDCBuilder.Closeables(
+            ImmutableList.of(closeable1, closeable2))
+            .close();
+
+        assertThat(builder.build())
+            .containsExactly(VALUE_1, VALUE_2);
+    }
+
+
+    @Test
+    public void closeablesCloseShouldCallAllUnderlyingCloseablesWhenError() throws IOException {
+        ImmutableList.Builder<String> builder = ImmutableList.builder();
+
+        Closeable closeable1 = () -> builder.add(VALUE_1);
+        Closeable closeable2 = () -> {
+            throw new IOException();
+        };
+        Closeable closeable3 = () -> builder.add(VALUE_2);
+
+        new MDCBuilder.Closeables(
+            ImmutableList.of(closeable1, closeable2, closeable3))
+            .close();
+
+        assertThat(builder.build())
+            .containsExactly(VALUE_1, VALUE_2);
+    }
+
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[36/38] james-project git commit: JAMES-2114 Sieve should use SLF4J

Posted by bt...@apache.org.
JAMES-2114 Sieve should use SLF4J


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/88bc153b
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/88bc153b
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/88bc153b

Branch: refs/heads/master
Commit: 88bc153bfbd0063436b2f735693343d890577faf
Parents: f35ab92
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 15 14:43:49 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:44 2017 +0700

----------------------------------------------------------------------
 .../mailets/jsieve/delivery/SieveExecutor.java   | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/88bc153b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
index 7834f42..ceb8d09 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/delivery/SieveExecutor.java
@@ -38,11 +38,14 @@ import org.apache.jsieve.parser.generated.TokenMgrError;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 
 public class SieveExecutor {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SieveExecutor.class);
 
     public static Builder builder() {
         return new Builder();
@@ -88,7 +91,6 @@ public class SieveExecutor {
     private final ResourceLocator resourceLocator;
     private final SieveFactory factory;
     private final ActionDispatcher actionDispatcher;
-    private final Log log;
 
     public SieveExecutor(MailetContext mailetContext, SievePoster sievePoster,
                          ResourceLocator resourceLocator, Log log) throws MessagingException {
@@ -97,7 +99,6 @@ public class SieveExecutor {
         this.resourceLocator = resourceLocator;
         factory = createFactory(log);
         this.actionDispatcher = new ActionDispatcher();
-        this.log = log;
     }
 
     private SieveFactory createFactory(Log log) throws MessagingException {
@@ -114,30 +115,30 @@ public class SieveExecutor {
         Preconditions.checkNotNull(recipient, "Recipient for mail to be spooled cannot be null.");
         Preconditions.checkNotNull(mail.getMessage(), "Mail message to be spooled cannot be null.");
 
-        return sieveMessage(recipient, mail, log);
+        return sieveMessage(recipient, mail);
     }
 
-    protected boolean sieveMessage(MailAddress recipient, Mail aMail, Log log) throws MessagingException {
+    protected boolean sieveMessage(MailAddress recipient, Mail aMail) throws MessagingException {
         try {
             ResourceLocator.UserSieveInformation userSieveInformation = resourceLocator.get(recipient);
-            sieveMessageEvaluate(recipient, aMail, userSieveInformation, log);
+            sieveMessageEvaluate(recipient, aMail, userSieveInformation);
             return true;
         } catch (ScriptNotFoundException e) {
-            log.info("Can not locate SIEVE script for user " + recipient.asPrettyString());
+            LOGGER.info("Can not locate SIEVE script for user " + recipient.asPrettyString());
             return false;
         } catch (Exception ex) {
-            log.error("Cannot evaluate Sieve script for user " + recipient.asPrettyString(), ex);
+            LOGGER.error("Cannot evaluate Sieve script for user " + recipient.asPrettyString(), ex);
             return false;
         }
     }
 
-    private void sieveMessageEvaluate(MailAddress recipient, Mail aMail, ResourceLocator.UserSieveInformation userSieveInformation, Log log) throws MessagingException, IOException {
+    private void sieveMessageEvaluate(MailAddress recipient, Mail aMail, ResourceLocator.UserSieveInformation userSieveInformation) throws MessagingException, IOException {
         try {
             SieveMailAdapter aMailAdapter = new SieveMailAdapter(aMail,
                 mailetContext, actionDispatcher, sievePoster, userSieveInformation.getScriptActivationDate(),
                 userSieveInformation.getScriptInterpretationDate(), recipient);
             // This logging operation is potentially costly
-            log.debug("Evaluating " + aMailAdapter.toString() + " against \"" + recipient.asPrettyString() + "\"");
+            LOGGER.debug("Evaluating " + aMailAdapter.toString() + " against \"" + recipient.asPrettyString() + "\"");
             factory.evaluate(aMailAdapter, factory.parse(userSieveInformation.getScriptContent()));
         } catch (SieveException | ParseException ex) {
             handleFailure(recipient, aMail, ex);


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[23/38] james-project git commit: JAMES-2114 Deprecate LogEnabled API

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/BouncerTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/BouncerTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/BouncerTest.java
index f687643..c69cdff 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/BouncerTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/BouncerTest.java
@@ -64,7 +64,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -90,7 +90,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -119,7 +119,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -148,7 +148,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -178,7 +178,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -207,7 +207,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -236,7 +236,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -265,7 +265,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .build();
@@ -284,7 +284,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -310,7 +310,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -337,7 +337,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.BOUNCE_PROCESSOR, BOUNCE_PROCESSOR)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -364,7 +364,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.BOUNCE_PROCESSOR, BOUNCE_PROCESSOR)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .build();
@@ -382,7 +382,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -410,7 +410,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.HELO_NAME, HELLO_NAME)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)
@@ -440,7 +440,7 @@ public class BouncerTest {
                 .setProperty(RemoteDeliveryConfiguration.BOUNCE_PROCESSOR, BOUNCE_PROCESSOR)
                 .build(),
             mock(DomainList.class));
-        Bouncer testee = new Bouncer(configuration, mailetContext, LOGGER);
+        Bouncer testee = new Bouncer(configuration, mailetContext);
 
         Mail mail = FakeMail.builder().state(Mail.DEFAULT)
             .sender(MailAddressFixture.ANY_AT_JAMES)

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnableTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnableTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnableTest.java
index e056ef1..4147bff 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnableTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DeliveryRunnableTest.java
@@ -78,7 +78,7 @@ public class DeliveryRunnableTest {
         bouncer = mock(Bouncer.class);
         mailDelivrer = mock(MailDelivrer.class);
         mailQueue = mock(MailQueue.class);
-        testee = new DeliveryRunnable(mailQueue, configuration, mockMetricFactory, LOGGER, bouncer, mailDelivrer, DeliveryRunnable.DEFAULT_NOT_STARTED, FIXED_DATE_SUPPLIER);
+        testee = new DeliveryRunnable(mailQueue, configuration, mockMetricFactory, bouncer, mailDelivrer, DeliveryRunnable.DEFAULT_NOT_STARTED, FIXED_DATE_SUPPLIER);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrerTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrerTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrerTest.java
index 3456c0b..007de2f 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrerTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/MailDelivrerTest.java
@@ -44,8 +44,6 @@ import org.apache.mailet.base.test.FakeMail;
 import org.apache.mailet.base.test.FakeMailetConfig;
 import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.UnmodifiableIterator;
@@ -53,7 +51,6 @@ import com.sun.mail.smtp.SMTPSenderFailedException;
 
 @SuppressWarnings("deprecation")
 public class MailDelivrerTest {
-    private static final Logger LOGGER = LoggerFactory.getLogger(MailDelivrerTest.class);
     public static final String MX1_HOSTNAME = "mx1." + MailAddressFixture.JAMES2_APACHE_ORG;
     public static final String MX2_HOSTNAME = "mx2." + MailAddressFixture.JAMES2_APACHE_ORG;
     public static final String SMTP_URI2 = "protocol://userid:password@host:119/file1";
@@ -77,7 +74,7 @@ public class MailDelivrerTest {
             .setProperty(RemoteDeliveryConfiguration.DEBUG, "true")
             .build(),
             mock(DomainList.class));
-        testee = new MailDelivrer(configuration, mailDelivrerToHost, dnsHelper, bouncer, LOGGER);
+        testee = new MailDelivrer(configuration, mailDelivrerToHost, dnsHelper, bouncer);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java
----------------------------------------------------------------------
diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java
index 54cd9b2..f8c5431 100644
--- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java
+++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchMail.java
@@ -38,11 +38,11 @@ import org.apache.commons.configuration.tree.ConfigurationNode;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -79,7 +79,9 @@ import org.slf4j.Logger;
  * delegate, <code>StoreProcessor</code>.
  * </p>
  */
-public class FetchMail implements Runnable, LogEnabled, Configurable {
+public class FetchMail implements Runnable, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(FetchMail.class);
+
     /**
      * Key fields for DynamicAccounts.
      */
@@ -384,8 +386,6 @@ public class FetchMail implements Runnable, LogEnabled, Configurable {
      */
     private DNSService dnsServer;
 
-    private Logger logger;
-
     private MailQueue queue;
 
     private DomainList domainList;
@@ -410,7 +410,7 @@ public class FetchMail implements Runnable, LogEnabled, Configurable {
         setSessionParameters(configuration);
 
         // Create the ParsedConfiguration used in the delegation chain
-        ParsedConfiguration parsedConfiguration = new ParsedConfiguration(configuration, logger, getLocalUsers(), getDNSService(), getDomainList(), getMailQueue());
+        ParsedConfiguration parsedConfiguration = new ParsedConfiguration(configuration, getLocalUsers(), getDNSService(), getDomainList(), getMailQueue());
 
         setParsedConfiguration(parsedConfiguration);
 
@@ -459,14 +459,14 @@ public class FetchMail implements Runnable, LogEnabled, Configurable {
     public void run() {
         // if we are already fetching then just return
         if (isFetching()) {
-            logger.info("Triggered fetch cancelled. A fetch is already in progress.");
+            LOGGER.info("Triggered fetch cancelled. A fetch is already in progress.");
             return;
         }
 
         // Enter Fetching State
         try {
             setFetching(true);
-            logger.info("Fetcher starting fetches");
+            LOGGER.info("Fetcher starting fetches");
 
             logJavaMailProperties();
 
@@ -486,20 +486,20 @@ public class FetchMail implements Runnable, LogEnabled, Configurable {
             logMessage.append(" static accounts and ");
             logMessage.append(getDynamicAccounts().size());
             logMessage.append(" dynamic accounts.");
-            logger.info(logMessage.toString());
+            LOGGER.info(logMessage.toString());
 
             // Fetch each account
             for (Account mergedAccount : mergedAccounts) {
                 try {
                     new StoreProcessor(mergedAccount).process();
                 } catch (MessagingException ex) {
-                    logger.error("A MessagingException has terminated processing of this Account", ex);
+                    LOGGER.error("A MessagingException has terminated processing of this Account", ex);
                 }
             }
         } catch (Exception ex) {
-            logger.error("An Exception has terminated this fetch.", ex);
+            LOGGER.error("An Exception has terminated this fetch.", ex);
         } finally {
-            logger.info("Fetcher completed fetches");
+            LOGGER.info("Fetcher completed fetches");
 
             // Exit Fetching State
             setFetching(false);
@@ -509,8 +509,8 @@ public class FetchMail implements Runnable, LogEnabled, Configurable {
     private void logJavaMailProperties() {
         // if debugging, list the JavaMail property key/value pairs
         // for this Session
-        if (logger.isDebugEnabled()) {
-            logger.debug("Session properties:");
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("Session properties:");
             Properties properties = getSession().getProperties();
             Enumeration<Object> e = properties.keys();
             while (e.hasMoreElements()) {
@@ -519,7 +519,7 @@ public class FetchMail implements Runnable, LogEnabled, Configurable {
                 if (val.length() > 40) {
                     val = val.substring(0, 37) + "...";
                 }
-                logger.debug(key + "=" + val);
+                LOGGER.debug(key + "=" + val);
 
             }
         }
@@ -587,10 +587,6 @@ public class FetchMail implements Runnable, LogEnabled, Configurable {
         this.fieldLocalUsers = urepos;
     }
 
-    public final void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
     /**
      * Returns the accounts. Initializes if required.
      *
@@ -855,12 +851,12 @@ public class FetchMail implements Runnable, LogEnabled, Configurable {
             List<HierarchicalConfiguration> allProperties = configuration.configurationsAt("javaMailProperties.property");
             for (HierarchicalConfiguration propConf : allProperties) {
                 properties.setProperty(propConf.getString("[@name]"), propConf.getString("[@value]"));
-                if (logger.isDebugEnabled()) {
+                if (LOGGER.isDebugEnabled()) {
                     StringBuilder messageBuffer = new StringBuilder("Set property name: ");
                     messageBuffer.append(propConf.getString("[@name]"));
                     messageBuffer.append(" to: ");
                     messageBuffer.append(propConf.getString("[@value]"));
-                    logger.debug(messageBuffer.toString());
+                    LOGGER.debug(messageBuffer.toString());
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
----------------------------------------------------------------------
diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
index 2565394..3ebe423 100644
--- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
+++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
@@ -34,17 +34,18 @@ import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.util.concurrent.JMXEnabledScheduledThreadPoolExecutor;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A class to instantiate and schedule a set of mail fetching tasks
  */
-public class FetchScheduler implements FetchSchedulerMBean, LogEnabled, Configurable {
+public class FetchScheduler implements FetchSchedulerMBean, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(FetchScheduler.class);
 
     /**
      * Configuration object for this service
@@ -62,8 +63,6 @@ public class FetchScheduler implements FetchSchedulerMBean, LogEnabled, Configur
 
     private UsersRepository urepos;
 
-    private Logger logger;
-
     private MailQueueFactory queueFactory;
 
     private DomainList domainList;
@@ -89,13 +88,6 @@ public class FetchScheduler implements FetchSchedulerMBean, LogEnabled, Configur
     }
 
     /**
-     * @see org.apache.james.lifecycle.api.LogEnabled#setLog(org.slf4j.Logger)
-     */
-    public final void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
-    /**
      * @see
      * org.apache.james.lifecycle.api.Configurable#configure(org.apache.commons.configuration.HierarchicalConfiguration)
      */
@@ -124,7 +116,6 @@ public class FetchScheduler implements FetchSchedulerMBean, LogEnabled, Configur
 
                 FetchMail fetcher = new FetchMail();
 
-                fetcher.setLog(logger);
                 fetcher.setDNSService(dns);
                 fetcher.setUsersRepository(urepos);
                 fetcher.setMailQueue(queue);
@@ -136,22 +127,22 @@ public class FetchScheduler implements FetchSchedulerMBean, LogEnabled, Configur
                 schedulers.add(scheduler.scheduleWithFixedDelay(fetcher, 0, interval, TimeUnit.MILLISECONDS));
             }
 
-            if (logger.isInfoEnabled())
-                logger.info("FetchMail Started");
+            if (LOGGER.isInfoEnabled())
+                LOGGER.info("FetchMail Started");
         } else {
-            if (logger.isInfoEnabled())
-                logger.info("FetchMail Disabled");
+            if (LOGGER.isInfoEnabled())
+                LOGGER.info("FetchMail Disabled");
         }
     }
 
     @PreDestroy
     public void dispose() {
         if (enabled) {
-            logger.info("FetchMail dispose...");
+            LOGGER.info("FetchMail dispose...");
             for (ScheduledFuture<?> scheduler1 : schedulers) {
                 scheduler1.cancel(false);
             }
-            logger.info("FetchMail ...dispose end");
+            LOGGER.info("FetchMail ...dispose end");
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FolderProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FolderProcessor.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FolderProcessor.java
index 36d3644..23596ca 100644
--- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FolderProcessor.java
+++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/FolderProcessor.java
@@ -24,6 +24,9 @@ import javax.mail.Folder;
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * <p>
  * Class <code>FolderProcessor</code> opens a Folder and iterates over all of
@@ -35,6 +38,8 @@ import javax.mail.internet.MimeMessage;
  * </p>
  */
 public class FolderProcessor extends ProcessorAbstract {
+    private static final Logger LOGGER = LoggerFactory.getLogger(FolderProcessor.class);
+
     /**
      * The fetched folder
      */
@@ -70,7 +75,7 @@ public class FolderProcessor extends ProcessorAbstract {
             try {
                 open();
             } catch (MessagingException ex) {
-                getLogger().error(getFetchTaskName() + " Failed to open folder!");
+                LOGGER.error(getFetchTaskName() + " Failed to open folder!");
                 throw ex;
             }
 
@@ -89,13 +94,13 @@ public class FolderProcessor extends ProcessorAbstract {
                         catch (Exception ex) {
                             StringBuilder logMessageBuffer = new StringBuilder("Exception processing message ID: ");
                             logMessageBuffer.append(message.getMessageID());
-                            getLogger().error(logMessageBuffer.toString(), ex);
+                            LOGGER.error(logMessageBuffer.toString(), ex);
                         }
                     }
                 }
             }
         } catch (MessagingException mex) {
-            getLogger().error("A MessagingException has terminated fetching messages for this folder", mex);
+            LOGGER.error("A MessagingException has terminated fetching messages for this folder", mex);
         } finally {
             // Close the folder
             try {
@@ -110,7 +115,7 @@ public class FolderProcessor extends ProcessorAbstract {
             logMessageBuffer.append(" in folder '");
             logMessageBuffer.append(getFolder().getName());
             logMessageBuffer.append("'");
-            getLogger().info(logMessageBuffer.toString());
+            LOGGER.info(logMessageBuffer.toString());
         }
 
         // Recurse through sub-folders if required
@@ -118,7 +123,7 @@ public class FolderProcessor extends ProcessorAbstract {
             if (isRecurse())
                 recurse();
         } catch (MessagingException mex) {
-            getLogger().error("A MessagingException has terminated recursing through sub-folders", mex);
+            LOGGER.error("A MessagingException has terminated recursing through sub-folders", mex);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
index 4410e5b..8a7dbf2 100644
--- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
+++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/MessageProcessor.java
@@ -38,6 +38,8 @@ import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.RFC2822Headers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -198,6 +200,8 @@ import org.apache.mailet.base.RFC2822Headers;
  * </p>
  */
 public class MessageProcessor extends ProcessorAbstract {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MessageProcessor.class);
+
     private MimeMessage fieldMessageIn;
 
     /**
@@ -293,10 +297,10 @@ public class MessageProcessor extends ProcessorAbstract {
      */
     public void process() throws MessagingException {
         // Log delivery attempt
-        if (getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             StringBuilder logMessageBuffer = new StringBuilder("Attempting delivery of message with id. ");
             logMessageBuffer.append(getMessageIn().getMessageID());
-            getLogger().debug(logMessageBuffer.toString());
+            LOGGER.debug(logMessageBuffer.toString());
         }
 
         // Determine the intended recipient
@@ -309,18 +313,18 @@ public class MessageProcessor extends ProcessorAbstract {
                 String messageID = getMessageIn().getMessageID();
                 if (!getDeferredRecipientNotFoundMessageIDs().contains(messageID)) {
                     getDeferredRecipientNotFoundMessageIDs().add(messageID);
-                    if (getLogger().isDebugEnabled()) {
+                    if (LOGGER.isDebugEnabled()) {
                         StringBuilder messageBuffer = new StringBuilder("Deferred processing of message for which the intended recipient could not be found. Message ID: ");
                         messageBuffer.append(messageID);
-                        getLogger().debug(messageBuffer.toString());
+                        LOGGER.debug(messageBuffer.toString());
                     }
                     return;
                 } else {
                     getDeferredRecipientNotFoundMessageIDs().remove(messageID);
-                    if (getLogger().isDebugEnabled()) {
+                    if (LOGGER.isDebugEnabled()) {
                         StringBuilder messageBuffer = new StringBuilder("Processing deferred message for which the intended recipient could not be found. Message ID: ");
                         messageBuffer.append(messageID);
-                        getLogger().debug(messageBuffer.toString());
+                        LOGGER.debug(messageBuffer.toString());
                     }
                 }
             }
@@ -620,7 +624,7 @@ public class MessageProcessor extends ProcessorAbstract {
     }
 
     private void logMailCreation(MailImpl mail) {
-        if (getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             StringBuilder messageBuffer = new StringBuilder("Created mail with name: ");
             messageBuffer.append(mail.getName());
             messageBuffer.append(", sender: ");
@@ -635,7 +639,7 @@ public class MessageProcessor extends ProcessorAbstract {
             messageBuffer.append(", remote host name: ");
             messageBuffer.append(mail.getRemoteHost());
             messageBuffer.append('.');
-            getLogger().debug(messageBuffer.toString());
+            LOGGER.debug(messageBuffer.toString());
         }
     }
 
@@ -795,10 +799,10 @@ public class MessageProcessor extends ProcessorAbstract {
         if (isMarkUndeliverableSeen())
             setMessageSeen();
         logStatusWarn("Message could not be delivered due to an error parsing a mail address.");
-        if (getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             StringBuilder messageBuffer = new StringBuilder("UNDELIVERABLE Message ID: ");
             messageBuffer.append(getMessageIn().getMessageID());
-            getLogger().debug(messageBuffer.toString(), ex);
+            LOGGER.debug(messageBuffer.toString(), ex);
         }
     }
 
@@ -817,10 +821,10 @@ public class MessageProcessor extends ProcessorAbstract {
             setMessageSeen();
 
         logStatusWarn("Message could not be delivered due to an error determining the remote domain.");
-        if (getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             StringBuilder messageBuffer = new StringBuilder("UNDELIVERABLE Message ID: ");
             messageBuffer.append(getMessageIn().getMessageID());
-            getLogger().debug(messageBuffer.toString(), ex);
+            LOGGER.debug(messageBuffer.toString(), ex);
         }
     }
 
@@ -849,7 +853,7 @@ public class MessageProcessor extends ProcessorAbstract {
         try {
             return getConfiguration().getDomainList().containsDomain(recipient.getDomain());
         } catch (DomainListException e) {
-            getLogger().error("Unable to access DomainList", e);
+            LOGGER.error("Unable to access DomainList", e);
             return false;
         }
     }
@@ -1079,7 +1083,7 @@ public class MessageProcessor extends ProcessorAbstract {
      * @param detailMsg
      */
     protected void logStatusInfo(String detailMsg) throws MessagingException {
-        getLogger().info(getStatusReport(detailMsg).toString());
+        LOGGER.info(getStatusReport(detailMsg).toString());
     }
 
     /**
@@ -1088,7 +1092,7 @@ public class MessageProcessor extends ProcessorAbstract {
      * @param detailMsg
      */
     protected void logStatusWarn(String detailMsg) throws MessagingException {
-        getLogger().warn(getStatusReport(detailMsg).toString());
+        LOGGER.warn(getStatusReport(detailMsg).toString());
     }
 
     /**
@@ -1097,7 +1101,7 @@ public class MessageProcessor extends ProcessorAbstract {
      * @param detailMsg
      */
     protected void logStatusError(String detailMsg) throws MessagingException {
-        getLogger().error(getStatusReport(detailMsg).toString());
+        LOGGER.error(getStatusReport(detailMsg).toString());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java
----------------------------------------------------------------------
diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java
index 80abcd3..b0f540d 100644
--- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java
+++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ParsedConfiguration.java
@@ -35,6 +35,7 @@ import org.apache.james.queue.api.MailQueue;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.mailet.MailAddress;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -43,10 +44,7 @@ import org.slf4j.Logger;
  * </p>
  */
 class ParsedConfiguration {
-    /**
-     * The logger.
-     */
-    private Logger fieldLogger;
+    private static final Logger LOGGER = LoggerFactory.getLogger(ParsedConfiguration.class);
 
     /**
      * The name of the folder to fetch from the javamail provider
@@ -300,14 +298,12 @@ class ParsedConfiguration {
      * Constructor for ParsedConfiguration.
      * 
      * @param configuration
-     * @param logger
      * @param localUsers
      * @param dnsServer
      * @throws ConfigurationException
      */
-    public ParsedConfiguration(HierarchicalConfiguration configuration, Logger logger, UsersRepository localUsers, DNSService dnsServer, DomainList domainList, MailQueue queue) throws ConfigurationException {
+    public ParsedConfiguration(HierarchicalConfiguration configuration, UsersRepository localUsers, DNSService dnsServer, DomainList domainList, MailQueue queue) throws ConfigurationException {
         this();
-        setLogger(logger);
         setLocalUsers(localUsers);
         setDNSServer(dnsServer);
         setDomainList(domainList);
@@ -374,8 +370,8 @@ class ParsedConfiguration {
             setMarkMaxMessageSizeExceededSeen(maxmessagesize.getBoolean("[@markseen]"));
         }
 
-        if (getLogger().isDebugEnabled()) {
-            getLogger().info("Configured FetchMail fetch task " + getFetchTaskName());
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.info("Configured FetchMail fetch task " + getFetchTaskName());
         }
     }
 
@@ -505,25 +501,6 @@ class ParsedConfiguration {
     }
 
     /**
-     * Returns the logger.
-     * 
-     * @return Logger
-     */
-    public Logger getLogger() {
-        return fieldLogger;
-    }
-
-    /**
-     * Sets the logger.
-     * 
-     * @param logger
-     *            The logger to set
-     */
-    protected void setLogger(Logger logger) {
-        fieldLogger = logger;
-    }
-
-    /**
      * Returns the localUsers.
      * 
      * @return UsersRepository

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java
----------------------------------------------------------------------
diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java
index 7598309..2e82905 100644
--- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java
+++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/ProcessorAbstract.java
@@ -29,7 +29,6 @@ import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.queue.api.MailQueue;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.mailet.MailAddress;
-import org.slf4j.Logger;
 
 /**
  * <p>
@@ -146,15 +145,6 @@ abstract public class ProcessorAbstract {
     }
 
     /**
-     * Returns the logger.
-     * 
-     * @return Logger
-     */
-    protected Logger getLogger() {
-        return getConfiguration().getLogger();
-    }
-
-    /**
      * Returns the password.
      * 
      * @return String

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/StoreProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/StoreProcessor.java b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/StoreProcessor.java
index 4990c9e..a035ecf 100644
--- a/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/StoreProcessor.java
+++ b/server/protocols/fetchmail/src/main/java/org/apache/james/fetchmail/StoreProcessor.java
@@ -23,11 +23,16 @@ import javax.mail.Folder;
 import javax.mail.MessagingException;
 import javax.mail.Store;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * Class <code>StoreProcessor</code> connects to a message store, gets the
  * target Folder and delegates its processing to <code>FolderProcessor</code>.
  */
 public class StoreProcessor extends ProcessorAbstract {
+    private static final Logger LOGGER = LoggerFactory.getLogger(StoreProcessor.class);
+
     /**
      * Constructor for StoreProcessor.
      * 
@@ -55,7 +60,7 @@ public class StoreProcessor extends ProcessorAbstract {
         logMessageBuffer.append("' in folder '");
         logMessageBuffer.append(getJavaMailFolderName());
         logMessageBuffer.append("'");
-        getLogger().info(logMessageBuffer.toString());
+        LOGGER.info(logMessageBuffer.toString());
 
         try {
             // Get a Store object
@@ -70,19 +75,19 @@ public class StoreProcessor extends ProcessorAbstract {
             // Get the Folder
             folder = store.getFolder(getJavaMailFolderName());
             if (folder == null)
-                getLogger().error(getFetchTaskName() + " No default folder");
+                LOGGER.error(getFetchTaskName() + " No default folder");
 
             // Process the Folder
             new FolderProcessor(folder, getAccount()).process();
 
         } catch (MessagingException ex) {
-            getLogger().error("A MessagingException has terminated processing of this Folder", ex);
+            LOGGER.error("A MessagingException has terminated processing of this Folder", ex);
         } finally {
             try {
                 if (null != store && store.isConnected())
                     store.close();
             } catch (MessagingException ex) {
-                getLogger().error("A MessagingException occured while closing the Store", ex);
+                LOGGER.error("A MessagingException occured while closing the Store", ex);
             }
             logMessageBuffer = new StringBuilder("Finished fetching mail from server '");
             logMessageBuffer.append(getHost());
@@ -91,7 +96,7 @@ public class StoreProcessor extends ProcessorAbstract {
             logMessageBuffer.append("' in folder '");
             logMessageBuffer.append(getJavaMailFolderName());
             logMessageBuffer.append("'");
-            getLogger().info(logMessageBuffer.toString());
+            LOGGER.info(logMessageBuffer.toString());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServerFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServerFactory.java b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServerFactory.java
index 1778609..01bf9d8 100644
--- a/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServerFactory.java
+++ b/server/protocols/protocols-imap4/src/main/java/org/apache/james/imapserver/netty/IMAPServerFactory.java
@@ -31,7 +31,6 @@ import org.apache.james.imap.encode.ImapEncoder;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer;
 import org.apache.james.protocols.lib.netty.AbstractServerFactory;
-import org.slf4j.Logger;
 
 public class IMAPServerFactory extends AbstractServerFactory {
 
@@ -55,13 +54,13 @@ public class IMAPServerFactory extends AbstractServerFactory {
     }
     
     @Override
-    protected List<AbstractConfigurableAsyncServer> createServers(Logger log, HierarchicalConfiguration config) throws Exception {
+
+    protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfiguration config) throws Exception {
         List<AbstractConfigurableAsyncServer> servers = new ArrayList<>();
         List<HierarchicalConfiguration> configs = config.configurationsAt("imapserver");
         
         for (HierarchicalConfiguration serverConfig: configs) {
             IMAPServer server = createServer();
-            server.setLog(log);
             server.setFileSystem(fileSystem);
             server.configure(serverConfig);
             servers.add(server);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
index e4784ec..2241783 100644
--- a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
+++ b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
@@ -41,7 +41,6 @@ import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.protocols.api.Encryption;
 import org.apache.james.protocols.lib.jmx.ServerMBean;
 import org.apache.james.protocols.netty.AbstractAsyncServer;
@@ -53,11 +52,14 @@ import org.jboss.netty.channel.ChannelUpstreamHandler;
 import org.jboss.netty.channel.group.ChannelGroup;
 import org.jboss.netty.handler.execution.ExecutionHandler;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Abstract base class for Servers for all James Servers
  */
-public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServer implements LogEnabled, Configurable, ServerMBean {
+public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServer implements Configurable, ServerMBean {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractConfigurableAsyncServer.class);
+
     /** The default value for the connection backlog. */
     public static final int DEFAULT_BACKLOG = 200;
 
@@ -85,8 +87,6 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
 
     private FileSystem fileSystem;
 
-    private Logger logger;
-
     private boolean enabled;
 
     protected int connPerIP;
@@ -123,13 +123,6 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
         this.fileSystem = filesystem;
     }
 
-    /**
-     * @see org.apache.james.lifecycle.api.LogEnabled#setLog(org.slf4j.Logger)
-     */
-    public final void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
     protected void registerMBean() {
 
         try {
@@ -162,9 +155,8 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
 
         enabled = config.getBoolean("[@enabled]", true);
 
-        final Logger logger = getLogger();
         if (!enabled) {
-            logger.info(getServiceType() + " disabled by configuration");
+            LOGGER.info(getServiceType() + " disabled by configuration");
             return;
         }
 
@@ -185,7 +177,7 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
             }
             address = new InetSocketAddress(ip, port);
 
-            logger.info(getServiceType() + " bound to: " + ip + ":" + port);
+            LOGGER.info(getServiceType() + " bound to: " + ip + ":" + port);
 
             bindAddresses.add(address);
         }
@@ -203,26 +195,26 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
         setTimeout(config.getInt(TIMEOUT_NAME, DEFAULT_TIMEOUT));
 
         StringBuilder infoBuffer = new StringBuilder(64).append(getServiceType()).append(" handler connection timeout is: ").append(getTimeout());
-        logger.info(infoBuffer.toString());
+        LOGGER.info(infoBuffer.toString());
 
         setBacklog(config.getInt(BACKLOG_NAME, DEFAULT_BACKLOG));
 
         infoBuffer = new StringBuilder(64).append(getServiceType()).append(" connection backlog is: ").append(getBacklog());
-        logger.info(infoBuffer.toString());
+        LOGGER.info(infoBuffer.toString());
 
         String connectionLimitString = config.getString("connectionLimit", null);
         if (connectionLimitString != null) {
             try {
                 connectionLimit = new Integer(connectionLimitString);
             } catch (NumberFormatException nfe) {
-                logger.error("Connection limit value is not properly formatted.", nfe);
+                LOGGER.error("Connection limit value is not properly formatted.", nfe);
             }
             if (connectionLimit < 0) {
-                logger.error("Connection limit value cannot be less than zero.");
+                LOGGER.error("Connection limit value cannot be less than zero.");
                 throw new ConfigurationException("Connection limit value cannot be less than zero.");
             } else if (connectionLimit > 0) {
                 infoBuffer = new StringBuilder(128).append(getServiceType()).append(" will allow a maximum of ").append(connectionLimitString).append(" connections.");
-                logger.info(infoBuffer.toString());
+                LOGGER.info(infoBuffer.toString());
             }
         }
 
@@ -231,14 +223,14 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
             try {
                 connPerIP = Integer.parseInt(connectionLimitPerIP);
             } catch (NumberFormatException nfe) {
-                logger.error("Connection limit per IP value is not properly formatted.", nfe);
+                LOGGER.error("Connection limit per IP value is not properly formatted.", nfe);
             }
             if (connPerIP < 0) {
-                logger.error("Connection limit per IP value cannot be less than zero.");
+                LOGGER.error("Connection limit per IP value cannot be less than zero.");
                 throw new ConfigurationException("Connection limit value cannot be less than zero.");
             } else if (connPerIP > 0) {
                 infoBuffer = new StringBuilder(128).append(getServiceType()).append(" will allow a maximum of ").append(connPerIP).append(" per IP connections for ").append(getServiceType());
-                logger.info(infoBuffer.toString());
+                LOGGER.info(infoBuffer.toString());
             }
         }
 
@@ -276,7 +268,7 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
             mbeanServer = ManagementFactory.getPlatformMBeanServer();
             registerMBean();
             
-            getLogger().info("Init " + getServiceType() + " done");
+            LOGGER.info("Init " + getServiceType() + " done");
 
         }
     
@@ -285,7 +277,7 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
     @PreDestroy
     public final void destroy() {
         
-        getLogger().info("Dispose " + getServiceType());
+        LOGGER.info("Dispose " + getServiceType());
         
         if (isEnabled()) {
             unbind();
@@ -297,7 +289,7 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
 
             unregisterMBean();
         }
-        getLogger().info("Dispose " + getServiceType() + " done");
+        LOGGER.info("Dispose " + getServiceType() + " done");
 
     }
 
@@ -344,7 +336,7 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
             hostName = "localhost";
         }
 
-        getLogger().info("{} is running on: {}", getServiceType(), hostName);
+        LOGGER.info("{} is running on: {}", getServiceType(), hostName);
 
         boolean autodetect = handlerConfiguration.getBoolean(HELLO_NAME + ".[@autodetect]", true);
         if (autodetect) {
@@ -356,16 +348,7 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
             }
         }
 
-        getLogger().info("{} handler hello name is: {}", getServiceType(), helloName);
-    }
-
-    /**
-     * Return the logger
-     * 
-     * @return logger
-     */
-    protected Logger getLogger() {
-        return logger;
+        LOGGER.info("{} handler hello name is: {}", getServiceType(), helloName);
     }
 
     /**
@@ -500,7 +483,7 @@ public abstract class AbstractConfigurableAsyncServer extends AbstractAsyncServe
         try {
             bind();
         } catch (Exception e) {
-            logger.error("Unable to start server", e);
+            LOGGER.error("Unable to start server", e);
             return false;
         }
         return true;

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractServerFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractServerFactory.java b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractServerFactory.java
index 8ffbfbe..914af45 100644
--- a/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractServerFactory.java
+++ b/server/protocols/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractServerFactory.java
@@ -27,41 +27,32 @@ import javax.annotation.PreDestroy;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
-import org.slf4j.Logger;
 
 /**
  * Abstract base class for Factories that need to create {@link AbstractConfigurableAsyncServer}'s via configuration files
  */
-public abstract class AbstractServerFactory implements Configurable, LogEnabled {
+public abstract class AbstractServerFactory implements Configurable {
 
-    private Logger log;
     private List<AbstractConfigurableAsyncServer> servers;
     private HierarchicalConfiguration config;
 
     /**
      * Create {@link AbstractConfigurableAsyncServer} servers, inject dependencies and configure them before return all fo them in a {@link List}
-     * 
-     * @param log
+     *
      * @param config
      * @return servers
      * @throws Exception
      */
-    protected abstract List<AbstractConfigurableAsyncServer> createServers(Logger log, HierarchicalConfiguration config) throws Exception;
+    protected abstract List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfiguration config) throws Exception;
     
     @Override
     public void configure(HierarchicalConfiguration config) throws ConfigurationException {
         this.config = config;
     }
 
-    @Override
-    public void setLog(Logger log) {
-        this.log = log;
-    }
-
     @PostConstruct
     public void init() throws Exception {
-        servers = createServers(log, config);
+        servers = createServers(config);
         for (AbstractConfigurableAsyncServer server: servers) {
             server.init();
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
index f7359a0..1c2e0c2 100644
--- a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
+++ b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
@@ -32,8 +32,11 @@ import org.apache.james.protocols.netty.LineDelimiterBasedChannelHandlerFactory;
 import org.apache.james.protocols.smtp.SMTPProtocol;
 import org.apache.james.smtpserver.netty.SMTPChannelUpstreamHandler;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class LMTPServer extends AbstractProtocolAsyncServer implements LMTPServerMBean {
+    private static final Logger LOGGER = LoggerFactory.getLogger(LMTPServer.class);
 
     /**
      * The maximum message size allowed by this SMTP server. The default value,
@@ -71,9 +74,9 @@ public class LMTPServer extends AbstractProtocolAsyncServer implements LMTPServe
             // by 1024, to put it in bytes
             maxMessageSize = configuration.getLong("maxmessagesize", maxMessageSize) * 1024;
             if (maxMessageSize > 0) {
-                getLogger().info("The maximum allowed message size is " + maxMessageSize + " bytes.");
+                LOGGER.info("The maximum allowed message size is " + maxMessageSize + " bytes.");
             } else {
-                getLogger().info("No maximum message size is enforced for this server.");
+                LOGGER.info("No maximum message size is enforced for this server.");
             }
 
             // get the lmtpGreeting

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServerFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServerFactory.java b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServerFactory.java
index 7e2e0d9..5815482 100644
--- a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServerFactory.java
+++ b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServerFactory.java
@@ -29,7 +29,6 @@ import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.protocols.lib.handler.ProtocolHandlerLoader;
 import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer;
 import org.apache.james.protocols.lib.netty.AbstractServerFactory;
-import org.slf4j.Logger;
 
 public class LMTPServerFactory extends AbstractServerFactory{
 
@@ -49,7 +48,7 @@ public class LMTPServerFactory extends AbstractServerFactory{
     }
     
     @Override
-    protected List<AbstractConfigurableAsyncServer> createServers(Logger log, HierarchicalConfiguration config) throws Exception{
+    protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfiguration config) throws Exception{
         List<AbstractConfigurableAsyncServer> servers = new ArrayList<>();
         List<HierarchicalConfiguration> configs = config.configurationsAt("lmtpserver");
         
@@ -57,7 +56,6 @@ public class LMTPServerFactory extends AbstractServerFactory{
             LMTPServer server = createServer();
             server.setFileSystem(fileSystem);
             server.setProtocolHandlerLoader(loader);
-            server.setLog(log);
             server.configure(serverConfig);
             servers.add(server);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServerFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServerFactory.java b/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServerFactory.java
index a2d2561..fd6e9f7 100644
--- a/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServerFactory.java
+++ b/server/protocols/protocols-managesieve/src/main/java/org/apache/james/managesieveserver/netty/ManageSieveServerFactory.java
@@ -35,7 +35,6 @@ import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer;
 import org.apache.james.protocols.lib.netty.AbstractServerFactory;
 import org.apache.james.sieverepository.api.SieveRepository;
 import org.apache.james.user.api.UsersRepository;
-import org.slf4j.Logger;
 
 public class ManageSieveServerFactory extends AbstractServerFactory {
 
@@ -72,13 +71,12 @@ public class ManageSieveServerFactory extends AbstractServerFactory {
     }
 
     @Override
-    protected List<AbstractConfigurableAsyncServer> createServers(Logger log, HierarchicalConfiguration config) throws Exception {
+    protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfiguration config) throws Exception {
         List<AbstractConfigurableAsyncServer> servers = new ArrayList<>();
         List<HierarchicalConfiguration> configs = config.configurationsAt("managesieveserver");
 
         for (HierarchicalConfiguration serverConfig: configs) {
             ManageSieveServer server = new ManageSieveServer(8000, manageSieveProcessor);
-            server.setLog(log);
             server.setFileSystem(fileSystem);
             server.configure(serverConfig);
             servers.add(server);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3ServerFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3ServerFactory.java b/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3ServerFactory.java
index 6028de1..0f93fc6 100644
--- a/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3ServerFactory.java
+++ b/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3ServerFactory.java
@@ -10,7 +10,6 @@ import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.protocols.lib.handler.ProtocolHandlerLoader;
 import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer;
 import org.apache.james.protocols.lib.netty.AbstractServerFactory;
-import org.slf4j.Logger;
 
 public class POP3ServerFactory extends AbstractServerFactory{
 
@@ -32,7 +31,7 @@ public class POP3ServerFactory extends AbstractServerFactory{
     }
     
     @Override
-    protected List<AbstractConfigurableAsyncServer> createServers(Logger log, HierarchicalConfiguration config) throws Exception{
+    protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfiguration config) throws Exception{
 
         List<AbstractConfigurableAsyncServer> servers = new ArrayList<>();
         List<HierarchicalConfiguration> configs = config.configurationsAt("pop3server");
@@ -40,7 +39,6 @@ public class POP3ServerFactory extends AbstractServerFactory{
         for (HierarchicalConfiguration serverConfig: configs) {
             POP3Server server = createServer();
             server.setProtocolHandlerLoader(loader);
-            server.setLog(log);
             server.setFileSystem(fileSystem);
             server.configure(serverConfig);
             servers.add(server);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java b/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
index 118e86b..e9b48df 100644
--- a/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
+++ b/server/protocols/protocols-pop3/src/test/java/org/apache/james/pop3server/POP3ServerTest.java
@@ -65,8 +65,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class POP3ServerTest {
 
@@ -707,11 +705,6 @@ public class POP3ServerTest {
         pop3Server = createPOP3Server();
         pop3Server.setFileSystem(fileSystem);
         pop3Server.setProtocolHandlerLoader(protocolHandlerChain);
-    
-        Logger log = LoggerFactory.getLogger("Mock");
-        // slf4j can't set programmatically any log level. It's just a facade
-        // log.setLevel(SimpleLog.LOG_LEVEL_DEBUG);
-        pop3Server.setLog(log);
     }
 
     protected void finishSetUp(POP3TestConfiguration testConfiguration) throws Exception {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
index 670586a..0d8ea36 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/ExtendedSMTPSession.java
@@ -22,7 +22,6 @@ import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.smtpserver.netty.SMTPServer.SMTPHandlerConfigurationDataImpl;
-import org.slf4j.Logger;
 
 /**
  * {@link SMTPSession} implementation for use with Netty
@@ -31,7 +30,7 @@ public class ExtendedSMTPSession extends org.apache.james.protocols.smtp.SMTPSes
    
     private final SMTPConfiguration smtpConfiguration;
 
-    public ExtendedSMTPSession(SMTPConfiguration smtpConfiguration, Logger logger, ProtocolTransport transport) {
+    public ExtendedSMTPSession(SMTPConfiguration smtpConfiguration, ProtocolTransport transport) {
         super(transport, smtpConfiguration);
         this.smtpConfiguration = smtpConfiguration;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
index 996b281..e93e01e 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
@@ -58,15 +58,6 @@ import org.slf4j.LoggerFactory;
 public class JDBCGreylistHandler extends AbstractGreylistHandler implements ProtocolHandler {
     private static final Logger LOGGER = LoggerFactory.getLogger(JDBCGreylistHandler.class);
 
-    /** This log is the fall back shared by all instances */
-    private static final Logger FALLBACK_LOG = LoggerFactory.getLogger(JDBCGreylistHandler.class);
-
-    /**
-     * Non context specific log should only be used when no context specific log
-     * is available
-     */
-    private Logger serviceLog = FALLBACK_LOG;
-
     private DataSource datasource = null;
 
     private FileSystem fileSystem = null;
@@ -299,7 +290,7 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
      */
     private final JDBCUtil theJDBCUtil = new JDBCUtil() {
         protected void delegatedLog(String logString) {
-            serviceLog.debug("JDBCRecipientRewriteTable: " + logString);
+            LOGGER.debug("JDBCRecipientRewriteTable: " + logString);
         }
     };
 
@@ -323,7 +314,7 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
                 sqlFile = fileSystem.getFile(sqlFileUrl);
                 sqlFileUrl = null;
             } catch (Exception e) {
-                serviceLog.error(e.getMessage(), e);
+                LOGGER.error(e.getMessage(), e);
                 throw e;
             }
 
@@ -370,7 +361,7 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
 
                 StringBuilder logBuffer;
                 logBuffer = new StringBuilder(64).append("Created table '").append(tableName).append("' using sqlResources string '").append(createSqlStringName).append("'.");
-                serviceLog.info(logBuffer.toString());
+                LOGGER.info(logBuffer.toString());
 
             } finally {
                 theJDBCUtil.closeJDBCStatement(createStatement);
@@ -392,13 +383,6 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
         return new HookResult(HookReturnCode.DECLINED);
     }
 
-    /**
-     * @see org.apache.james.lifecycle.api.LogEnabled#setLog(Logger)
-     */
-    public void setLog(Logger log) {
-        this.serviceLog = log;
-    }
-
     @Override
     public void init(Configuration handlerConfiguration) throws ConfigurationException {
         try {
@@ -426,7 +410,7 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
                 wList.add(aWhitelistArray.trim());
             }
             wNetworks = new NetMatcher(wList, dnsService);
-            serviceLog.info("Whitelisted addresses: " + getWhiteListedNetworks().toString());
+            LOGGER.info("Whitelisted addresses: " + getWhiteListedNetworks().toString());
         }
 
         // Get the SQL file location

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
index 3f2da70..2047306 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/ValidRcptMX.java
@@ -49,16 +49,7 @@ import com.github.steveash.guavate.Guavate;
  */
 public class ValidRcptMX implements RcptHook, ProtocolHandler {
 
-    /**
-     * This log is the fall back shared by all instances
-     */
-    private static final Logger FALLBACK_LOG = LoggerFactory.getLogger(ValidRcptMX.class);
-
-    /**
-     * Non context specific log should only be used when no context specific log
-     * is available
-     */
-    private Logger serviceLog = FALLBACK_LOG;
+    private static final Logger LOGGER = LoggerFactory.getLogger(ValidRcptMX.class);
 
     private DNSService dnsService = null;
 
@@ -67,16 +58,6 @@ public class ValidRcptMX implements RcptHook, ProtocolHandler {
     private NetMatcher bNetwork = null;
 
     /**
-     * Sets the service log.<br>
-     * Where available, a context sensitive log should be used.
-     *
-     * @param log not null
-     */
-    public void setLog(Logger log) {
-        this.serviceLog = log;
-    }
-
-    /**
      * Gets the DNS service.
      *
      * @return the dnsService
@@ -153,8 +134,7 @@ public class ValidRcptMX implements RcptHook, ProtocolHandler {
 
             setBannedNetworks(bannedNetworks, dnsService);
 
-            serviceLog.info("Invalid MX Networks: " + bNetwork.toString());
-
+            LOGGER.info("Invalid MX Networks: " + bNetwork.toString());
         } else {
             throw new ConfigurationException("Please configure at least on invalid MX network");
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
index e8d48c2..277f882 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
@@ -39,11 +39,14 @@ import org.apache.james.smtpserver.CoreCmdHandlerLoader;
 import org.apache.james.smtpserver.ExtendedSMTPSession;
 import org.apache.james.smtpserver.jmx.JMXHandlersLoader;
 import org.jboss.netty.channel.ChannelUpstreamHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * NIO SMTPServer which use Netty
  */
 public class SMTPServer extends AbstractProtocolAsyncServer implements SMTPServerMBean {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractProtocolAsyncServer.class);
 
     /**
      * Whether authentication is required to use this SMTP server.
@@ -115,7 +118,7 @@ public class SMTPServer extends AbstractProtocolAsyncServer implements SMTPServe
 
             @Override
             public ProtocolSession newSession(ProtocolTransport transport) {
-                return new ExtendedSMTPSession(theConfigData, getLogger(), transport);
+                return new ExtendedSMTPSession(theConfigData, transport);
             }
             
         };
@@ -134,9 +137,9 @@ public class SMTPServer extends AbstractProtocolAsyncServer implements SMTPServe
             else
                 authRequired = AUTH_DISABLED;
             if (authRequired != AUTH_DISABLED) {
-                getLogger().info("This SMTP server requires authentication.");
+                LOGGER.info("This SMTP server requires authentication.");
             } else {
-                getLogger().info("This SMTP server does not require authentication.");
+                LOGGER.info("This SMTP server does not require authentication.");
             }
 
             authorizedAddresses = configuration.getString("authorizedAddresses", null);
@@ -159,16 +162,16 @@ public class SMTPServer extends AbstractProtocolAsyncServer implements SMTPServe
 
           
             if (authorizedNetworks != null) {
-                getLogger().info("Authorized addresses: " + authorizedNetworks.toString());
+                LOGGER.info("Authorized addresses: " + authorizedNetworks.toString());
             }
 
             // get the message size limit from the conf file and multiply
             // by 1024, to put it in bytes
             maxMessageSize = configuration.getLong("maxmessagesize", maxMessageSize) * 1024;
             if (maxMessageSize > 0) {
-                getLogger().info("The maximum allowed message size is " + maxMessageSize + " bytes.");
+                LOGGER.info("The maximum allowed message size is " + maxMessageSize + " bytes.");
             } else {
-                getLogger().info("No maximum message size is enforced for this server.");
+                LOGGER.info("No maximum message size is enforced for this server.");
             }
 
             heloEhloEnforcement = configuration.getBoolean("heloEhloEnforcement", true);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServerFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServerFactory.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServerFactory.java
index ebb9a35..df23ca4 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServerFactory.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/netty/SMTPServerFactory.java
@@ -31,7 +31,6 @@ import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.protocols.lib.handler.ProtocolHandlerLoader;
 import org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer;
 import org.apache.james.protocols.lib.netty.AbstractServerFactory;
-import org.slf4j.Logger;
 
 public class SMTPServerFactory extends AbstractServerFactory {
 
@@ -53,7 +52,7 @@ public class SMTPServerFactory extends AbstractServerFactory {
     }
     
     @Override
-    protected List<AbstractConfigurableAsyncServer> createServers(Logger log, HierarchicalConfiguration config) throws Exception{
+    protected List<AbstractConfigurableAsyncServer> createServers(HierarchicalConfiguration config) throws Exception{
         
         List<AbstractConfigurableAsyncServer> servers = new ArrayList<>();
         List<HierarchicalConfiguration> configs = config.configurationsAt("smtpserver");
@@ -62,7 +61,6 @@ public class SMTPServerFactory extends AbstractServerFactory {
             SMTPServer server = createServer();
             server.setDnsService(dns);
             server.setProtocolHandlerLoader(loader);
-            server.setLog(log);
             server.setFileSystem(fileSystem);
             server.configure(serverConfig);
             servers.add(server);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
index 1df03c5..98bbbd1 100644
--- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
+++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SMTPServerTest.java
@@ -197,9 +197,6 @@ public class SMTPServerTest {
     }
 
     protected void setUpSMTPServer() {
-        Logger log = LoggerFactory.getLogger("SMTP");
-        // slf4j can't set programmatically any log level. It's just a facade
-        // log.setLevel(SimpleLog.LOG_LEVEL_ALL);
         SmtpMetricsImpl smtpMetrics = mock(SmtpMetricsImpl.class);
         when(smtpMetrics.getCommandsMetric()).thenReturn(mock(Metric.class));
         when(smtpMetrics.getConnectionMetric()).thenReturn(mock(Metric.class));
@@ -207,8 +204,6 @@ public class SMTPServerTest {
         smtpServer.setDnsService(dnsServer);
         smtpServer.setFileSystem(fileSystem);
         smtpServer.setProtocolHandlerLoader(chain);
-        smtpServer.setLog(log);
-
     }
 
     protected void init(SMTPTestConfiguration testConfiguration) throws Exception {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainRoutesTest.java
index 827e473..511638a 100644
--- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainRoutesTest.java
@@ -46,8 +46,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Charsets;
 import com.jayway.restassured.RestAssured;
@@ -58,8 +56,6 @@ import de.bechte.junit.runners.context.HierarchicalContextRunner;
 
 @RunWith(HierarchicalContextRunner.class)
 public class DomainRoutesTest {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(DomainRoutesTest.class);
     public static final String DOMAIN = "domain";
 
     private WebAdminServer webAdminServer;
@@ -95,7 +91,6 @@ public class DomainRoutesTest {
             when(dnsService.getLocalHost()).thenReturn(InetAddress.getByName("localhost"));
 
             MemoryDomainList domainList = new MemoryDomainList(dnsService);
-            domainList.setLog(LOGGER);
             domainList.setAutoDetectIP(false);
             createServer(domainList);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java b/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java
index 57c69c9..bd41981 100644
--- a/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java
+++ b/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueue.java
@@ -49,6 +49,7 @@ import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
 import org.apache.james.queue.jms.JMSMailQueue;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -85,6 +86,7 @@ import org.slf4j.Logger;
  * To have a good throughput you should use a caching connection factory. </p>
  */
 public class ActiveMQMailQueue extends JMSMailQueue implements ActiveMQSupport {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ActiveMQMailQueue.class);
 
     private final boolean useBlob;
 
@@ -92,8 +94,8 @@ public class ActiveMQMailQueue extends JMSMailQueue implements ActiveMQSupport {
      * Construct a {@link ActiveMQMailQueue} which only use {@link BlobMessage}
      * 
      */
-    public ActiveMQMailQueue(ConnectionFactory connectionFactory, MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory, String queuename, MetricFactory metricFactory, Logger logger) {
-        this(connectionFactory, mailQueueItemDecoratorFactory, queuename, true, metricFactory, logger);
+    public ActiveMQMailQueue(ConnectionFactory connectionFactory, MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory, String queuename, MetricFactory metricFactory) {
+        this(connectionFactory, mailQueueItemDecoratorFactory, queuename, true, metricFactory);
     }
 
     /**
@@ -102,10 +104,9 @@ public class ActiveMQMailQueue extends JMSMailQueue implements ActiveMQSupport {
      * @param connectionFactory
      * @param queuename
      * @param useBlob
-     * @param logger
      */
-    public ActiveMQMailQueue(ConnectionFactory connectionFactory, MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory, String queuename, boolean useBlob, MetricFactory metricFactory, Logger logger) {
-        super(connectionFactory, mailQueueItemDecoratorFactory, queuename, metricFactory, logger);
+    public ActiveMQMailQueue(ConnectionFactory connectionFactory, MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory, String queuename, boolean useBlob, MetricFactory metricFactory) {
+        super(connectionFactory, mailQueueItemDecoratorFactory, queuename, metricFactory);
         this.useBlob = useBlob;
     }
 
@@ -123,7 +124,7 @@ public class ActiveMQMailQueue extends JMSMailQueue implements ActiveMQSupport {
                     mail.setAttribute(JAMES_QUEUE_NAME, queueName);
                 } catch (MalformedURLException e) {
                     // Ignore on error
-                    logger.debug("Unable to get url from blobmessage for mail " + mail.getName());
+                    LOGGER.debug("Unable to get url from blobmessage for mail " + mail.getName());
                 }
                 MimeMessageSource source = new MimeMessageBlobMessageSource(blobMessage);
                 mail.setMessage(new MimeMessageCopyOnWriteProxy(source));
@@ -226,7 +227,7 @@ public class ActiveMQMailQueue extends JMSMailQueue implements ActiveMQSupport {
     @Override
     protected MailQueueItem createMailQueueItem(Connection connection, Session session, MessageConsumer consumer, Message message) throws JMSException, MessagingException {
         Mail mail = createMail(message);
-        ActiveMQMailQueueItem activeMQMailQueueItem = new ActiveMQMailQueueItem(mail, connection, session, consumer, message, logger);
+        ActiveMQMailQueueItem activeMQMailQueueItem = new ActiveMQMailQueueItem(mail, connection, session, consumer, message);
         return mailQueueItemDecoratorFactory.decorate(activeMQMailQueueItem);
     }
 
@@ -242,7 +243,7 @@ public class ActiveMQMailQueue extends JMSMailQueue implements ActiveMQSupport {
                     // https://issues.apache.org/activemq/browse/AMQ-3018
                     ((ActiveMQBlobMessage) m).deleteFile();
                 } catch (Exception e) {
-                    logger.error("Unable to delete blob file for message " + m, e);
+                    LOGGER.error("Unable to delete blob file for message " + m, e);
                 }
             }
         }
@@ -317,7 +318,7 @@ public class ActiveMQMailQueue extends JMSMailQueue implements ActiveMQSupport {
                     // every TemporaryQueue which will never get unregistered
                     replyTo.delete();
                 } catch (JMSException e) {
-                    logger.error("Error while deleting temporary queue", e);
+                    LOGGER.error("Error while deleting temporary queue", e);
                 }
             }
             closeSession(session);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueFactory.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueFactory.java b/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueFactory.java
index 5653066..104dd0c 100644
--- a/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueFactory.java
+++ b/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueFactory.java
@@ -23,8 +23,8 @@ import javax.jms.ConnectionFactory;
 
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.queue.api.MailQueue;
-import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
 import org.apache.james.queue.api.MailQueueFactory;
+import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
 import org.apache.james.queue.jms.JMSMailQueueFactory;
 
 /**
@@ -50,6 +50,6 @@ public class ActiveMQMailQueueFactory extends JMSMailQueueFactory {
 
     @Override
     protected MailQueue createMailQueue(String name) {
-        return new ActiveMQMailQueue(connectionFactory, mailQueueItemDecoratorFactory, name, useBlob, metricFactory, log);
+        return new ActiveMQMailQueue(connectionFactory, mailQueueItemDecoratorFactory, name, useBlob, metricFactory);
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueItem.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueItem.java b/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueItem.java
index da88082..4cb1f90 100644
--- a/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueItem.java
+++ b/server/queue/queue-activemq/src/main/java/org/apache/james/queue/activemq/ActiveMQMailQueueItem.java
@@ -33,20 +33,20 @@ import org.apache.james.queue.api.MailQueue.MailQueueItem;
 import org.apache.james.queue.jms.JMSMailQueueItem;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * ActiveMQ {@link MailQueueItem} implementation which handles Blob-Messages as
  * well
  */
 public class ActiveMQMailQueueItem extends JMSMailQueueItem implements ActiveMQSupport {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ActiveMQMailQueueItem.class);
 
     private final Message message;
-    private final Logger logger;
 
-    public ActiveMQMailQueueItem(Mail mail, Connection connection, Session session, MessageConsumer consumer, Message message, Logger logger) {
+    public ActiveMQMailQueueItem(Mail mail, Connection connection, Session session, MessageConsumer consumer, Message message) {
         super(mail, connection, session, consumer);
         this.message = message;
-        this.logger = logger;
     }
 
     /**
@@ -62,7 +62,7 @@ public class ActiveMQMailQueueItem extends JMSMailQueueItem implements ActiveMQS
                 try {
                     ((ActiveMQBlobMessage) message).deleteFile();
                 } catch (IOException | JMSException e) {
-                    logger.warn("Unable to delete blob message file for mail {}", getMail().getName());
+                    LOGGER.warn("Unable to delete blob message file for mail {}", getMail().getName());
                 }
             }
             getMail().removeAttribute(JAMES_REUSE_BLOB_URL);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
----------------------------------------------------------------------
diff --git a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
index 3cd6d5d..db3d0af 100644
--- a/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
+++ b/server/queue/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
@@ -77,7 +77,7 @@ public abstract class ActiveMQMailQueueTest extends AbstractJMSMailQueueTest {
     protected JMSMailQueue createQueue(ConnectionFactory factory, MailQueueItemDecoratorFactory mailQueueItemDecoratorFactory, String queueName) {
         Logger log = LoggerFactory.getLogger(ActiveMQMailQueueTest.class);
 
-        return new ActiveMQMailQueue(factory, mailQueueItemDecoratorFactory, queueName, useBlobMessages(), new NoopMetricFactory(), log);
+        return new ActiveMQMailQueue(factory, mailQueueItemDecoratorFactory, queueName, useBlobMessages(), new NoopMetricFactory());
     }
 
     protected boolean useBlobMessages() {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[11/38] james-project git commit: JAMES-2114 MDC logging context for IMAP

Posted by bt...@apache.org.
JAMES-2114 MDC logging context for IMAP


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/56974b95
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/56974b95
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/56974b95

Branch: refs/heads/master
Commit: 56974b959d619823ccf377d4fa19bbd210b737c9
Parents: d0cad4d
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 11:28:52 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:42 2017 +0700

----------------------------------------------------------------------
 protocols/imap/pom.xml                          |   4 +
 .../imap/api/message/BodyFetchElement.java      |  14 ++
 .../james/imap/api/message/FetchData.java       |  21 ++
 .../apache/james/imap/api/message/IdRange.java  |   9 +
 .../james/imap/api/message/StatusDataItems.java |  15 +-
 .../apache/james/imap/api/message/UidRange.java |   7 +
 .../imap/api/message/request/SearchKey.java     |  19 ++
 .../api/message/request/SearchOperation.java    |  11 +-
 .../AbstractMailboxSelectionRequest.java        |   2 +
 .../imap/message/request/SetQuotaRequest.java   |  13 +-
 .../james/imap/processor/AppendProcessor.java   |   9 +
 .../imap/processor/AuthenticateProcessor.java   |   9 +
 .../imap/processor/CapabilityProcessor.java     |   9 +
 .../james/imap/processor/CheckProcessor.java    |  10 +
 .../james/imap/processor/CloseProcessor.java    |  10 +
 .../james/imap/processor/CompressProcessor.java |  11 +
 .../james/imap/processor/CopyProcessor.java     |  13 ++
 .../james/imap/processor/CreateProcessor.java   |  11 +
 .../imap/processor/DeleteACLProcessor.java      |  11 +
 .../james/imap/processor/DeleteProcessor.java   |  11 +
 .../james/imap/processor/EnableProcessor.java   |  11 +
 .../james/imap/processor/ExamineProcessor.java  |  18 ++
 .../james/imap/processor/ExpungeProcessor.java  |  10 +
 .../james/imap/processor/GetACLProcessor.java   |   9 +
 .../imap/processor/GetAnnotationProcessor.java  |  12 ++
 .../james/imap/processor/GetQuotaProcessor.java |   9 +
 .../imap/processor/GetQuotaRootProcessor.java   |  10 +
 .../james/imap/processor/IdleProcessor.java     |   9 +
 .../james/imap/processor/LSubProcessor.java     |  11 +
 .../james/imap/processor/ListProcessor.java     |  11 +
 .../imap/processor/ListRightsProcessor.java     |  10 +
 .../james/imap/processor/LoginProcessor.java    |  10 +
 .../james/imap/processor/LogoutProcessor.java   |  10 +
 .../james/imap/processor/MoveProcessor.java     |  13 ++
 .../james/imap/processor/MyRightsProcessor.java |   9 +
 .../imap/processor/NamespaceProcessor.java      |   8 +
 .../james/imap/processor/NoopProcessor.java     |  10 +
 .../james/imap/processor/RenameProcessor.java   |  12 ++
 .../james/imap/processor/SearchProcessor.java   |  11 +
 .../james/imap/processor/SelectProcessor.java   |  19 ++
 .../james/imap/processor/SetACLProcessor.java   |  11 +
 .../imap/processor/SetAnnotationProcessor.java  |  11 +
 .../james/imap/processor/SetQuotaProcessor.java |  11 +
 .../james/imap/processor/StartTLSProcessor.java |   8 +
 .../james/imap/processor/StatusProcessor.java   |  12 ++
 .../james/imap/processor/StoreProcessor.java    |  13 ++
 .../imap/processor/SubscribeProcessor.java      |  10 +
 .../imap/processor/SystemMessageProcessor.java  |  10 +
 .../james/imap/processor/UnselectProcessor.java |   8 +
 .../imap/processor/UnsubscribeProcessor.java    |  10 +
 .../base/AbstractChainedProcessor.java          |  17 +-
 .../base/ImapResponseMessageProcessor.java      |  10 +
 .../imap/processor/fetch/FetchProcessor.java    |  11 +
 server/protocols/protocols-imap4/pom.xml        |   4 +
 .../james/imapserver/netty/IMAPMDCContext.java  |  78 +++++++
 .../netty/ImapChannelUpstreamHandler.java       | 204 +++++++++----------
 56 files changed, 757 insertions(+), 112 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/pom.xml
----------------------------------------------------------------------
diff --git a/protocols/imap/pom.xml b/protocols/imap/pom.xml
index fe69297..1a2de8c 100644
--- a/protocols/imap/pom.xml
+++ b/protocols/imap/pom.xml
@@ -65,6 +65,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.james</groupId>
+            <artifactId>james-server-util-java8</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
             <artifactId>metrics-api</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java
index 93b88c8..ea173de 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java
@@ -20,9 +20,13 @@ package org.apache.james.imap.api.message;
 
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Optional;
 
 import org.apache.james.imap.api.ImapConstants;
 
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableList;
+
 public class BodyFetchElement {
 
     public static final int TEXT = 0;
@@ -174,4 +178,14 @@ public class BodyFetchElement {
         return true;
     }
 
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("firstOctet", firstOctet)
+            .add("numberOfOctets", numberOfOctets)
+            .add("name", name)
+            .add("sectionType", sectionType)
+            .add("fieldNames", Optional.ofNullable(fieldNames).map(ImmutableList::copyOf))
+            .toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java
index 5b91c2f..d25f576 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java
@@ -22,6 +22,9 @@ import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
 
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableSet;
+
 public class FetchData {
     private boolean flags;
 
@@ -207,4 +210,22 @@ public class FetchData {
         }
         return true;
     }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("flags", flags)
+            .add("uid", uid)
+            .add("internalDate", internalDate)
+            .add("size", size)
+            .add("envelope", envelope)
+            .add("body", body)
+            .add("bodyStructure", bodyStructure)
+            .add("setSeen", setSeen)
+            .add("bodyElements", ImmutableSet.copyOf(bodyElements))
+            .add("modSeq", modSeq)
+            .add("changedSince", changedSince)
+            .add("vanished", vanished)
+            .toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java
index 347b05d..23aee17 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java
@@ -24,12 +24,21 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
+import java.util.Optional;
+
+import com.google.common.collect.ImmutableList;
 
 /**
  * Represents a range of UID or MSN values.
  */
 public final class IdRange implements Iterable<Long>, Comparable<IdRange>{
 
+    public static String toString(IdRange[] ranges) {
+        return Optional.ofNullable(ranges)
+            .map(ImmutableList::copyOf)
+            .toString();
+    }
+
     private long _lowVal;
 
     private long _highVal;

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java
index 44602bb..5458e1a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java
@@ -18,6 +18,8 @@
  ****************************************************************/
 package org.apache.james.imap.api.message;
 
+import com.google.common.base.MoreObjects;
+
 public class StatusDataItems {
     private boolean messages;
 
@@ -78,5 +80,16 @@ public class StatusDataItems {
     public boolean isHighestModSeq() {
         return highestModSeq;
     }
-    
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("messages", messages)
+            .add("recent", recent)
+            .add("uidNext", uidNext)
+            .add("uidValidity", uidValidity)
+            .add("unseen", unseen)
+            .add("highestModSeq", highestModSeq)
+            .toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
index e499cda..c2b1445 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
@@ -22,17 +22,24 @@ package org.apache.james.imap.api.message;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.model.MessageRange;
 
 import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Range;
 import com.google.common.collect.RangeSet;
 import com.google.common.collect.TreeRangeSet;
 
 public final class UidRange implements Iterable<MessageUid> {
+    public static String toString(UidRange[] ranges) {
+        return Optional.ofNullable(ranges)
+            .map(ImmutableList::copyOf)
+            .toString();
+    }
 
     public static List<UidRange> mergeRanges(List<UidRange> ranges) {
         if (ranges.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java
index 232c500..374efba 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java
@@ -22,10 +22,14 @@ package org.apache.james.imap.api.message.request;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Optional;
 
 import org.apache.james.imap.api.message.IdRange;
 import org.apache.james.imap.api.message.UidRange;
 
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableList;
+
 /**
  * Atom key used by a search. Build instances by factory methods.
  */
@@ -508,4 +512,19 @@ public final class SearchKey {
             return false;
         return true;
     }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("type", type)
+            .add("date", date)
+            .add("size", size)
+            .add("value", value)
+            .add("seconds", seconds)
+            .add("modSeq", modSeq)
+            .add("uids", Arrays.toString(uids))
+            .add("sequences", Arrays.toString(sequence))
+            .add("keys", Optional.ofNullable(keys).map(ImmutableList::copyOf))
+            .toString();
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java
index 6068ef9..6da3f8a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java
@@ -21,6 +21,8 @@ package org.apache.james.imap.api.message.request;
 
 import java.util.List;
 
+import com.google.common.base.MoreObjects;
+
 public final class SearchOperation {
 
     private final SearchKey key;
@@ -37,7 +39,14 @@ public final class SearchOperation {
     public List<SearchResultOption> getResultOptions() {
         return options;
     }
-    
+
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this)
+            .add("key", key)
+            .toString();
+    }
  
     
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java b/protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java
index cddfd1f..34202fa 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java
@@ -30,6 +30,8 @@ import org.apache.james.imap.api.message.request.ImapRequest;
  * This supports also the <code>CONDSTORE</code> and the <code>QRESYNC</code> extension
  */
 public abstract class AbstractMailboxSelectionRequest extends AbstractImapRequest {
+
+
     private final String mailboxName;
     private final boolean condstore;
     private final Long lastKnownUidValidity;

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java b/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java
index 1af01a9..33ed681 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java
@@ -24,6 +24,9 @@ import java.util.List;
 
 import org.apache.james.imap.api.ImapCommand;
 
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableList;
+
 /**
  * SETQUOTA request
  */
@@ -45,6 +48,14 @@ public class SetQuotaRequest extends AbstractImapRequest {
         public long getLimit() {
             return limit;
         }
+
+        @Override
+        public String toString() {
+            return MoreObjects.toStringHelper(this)
+                .add("resource", resource)
+                .add("limit", limit)
+                .toString();
+        }
     }
 
     private final String quotaRoot;
@@ -61,7 +72,7 @@ public class SetQuotaRequest extends AbstractImapRequest {
     }
 
     public List<ResourceLimit> getResourceLimits() {
-        return new ArrayList<>(resourceLimits);
+        return ImmutableList.copyOf(resourceLimits);
     }
 
     public String getQuotaRoot() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
index d57adf5..f693296 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Date;
@@ -46,6 +47,7 @@ import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.model.ComposedMessageId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> {
 
@@ -154,4 +156,11 @@ public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> {
         }
     }
 
+    @Override
+    protected Closeable addContextToMDC(AppendRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "APPEND")
+            .addContext("mailbox", message.getMailboxName())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
index 11a27f8..b10961c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.List;
@@ -35,6 +36,7 @@ import org.apache.james.imap.message.request.IRAuthenticateRequest;
 import org.apache.james.imap.message.response.AuthenticateResponse;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -160,4 +162,11 @@ public class AuthenticateProcessor extends AbstractAuthProcessor<AuthenticateReq
         return ImmutableList.copyOf(caps);
     }
 
+    @Override
+    protected Closeable addContextToMDC(AuthenticateRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "AUTHENTICATE")
+            .addContext("authType", message.getAuthType())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
index 7c921b4..cb6a61c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
@@ -26,6 +26,7 @@ import static org.apache.james.imap.api.ImapConstants.SUPPORTS_RFC3348;
 import static org.apache.james.imap.api.ImapConstants.UTF8;
 import static org.apache.james.imap.api.ImapConstants.VERSION;
 
+import java.io.Closeable;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -41,6 +42,7 @@ import org.apache.james.imap.message.request.CapabilityRequest;
 import org.apache.james.imap.message.response.CapabilityResponse;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -140,6 +142,13 @@ public class CapabilityProcessor extends AbstractMailboxProcessor<CapabilityRequ
         caps.removeAll(disabledCaps);
         return caps;
     }
+
+    @Override
+    protected Closeable addContextToMDC(CapabilityRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "CAPABILITY")
+            .build();
+    }
     
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java
index 8a03f34..4f9e092 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapProcessor;
@@ -26,6 +28,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.message.request.CheckRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class CheckProcessor extends AbstractMailboxProcessor<CheckRequest> {
 
@@ -38,4 +41,11 @@ public class CheckProcessor extends AbstractMailboxProcessor<CheckRequest> {
         unsolicitedResponses(session, responder, false);
         okComplete(command, tag, responder);
     }
+
+    @Override
+    protected Closeable addContextToMDC(CheckRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "CHECK")
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
index 195086b..1dd8f6a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.display.HumanReadableText;
@@ -33,6 +35,7 @@ import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class CloseProcessor extends AbstractMailboxProcessor<CloseRequest> {
 
@@ -61,4 +64,11 @@ public class CloseProcessor extends AbstractMailboxProcessor<CloseRequest> {
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }
+
+    @Override
+    protected Closeable addContextToMDC(CloseRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "CLOSE")
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java
index 69d64c0..ac033a9 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java
@@ -18,6 +18,9 @@
  ****************************************************************/
 package org.apache.james.imap.processor;
 
+
+import java.io.Closeable;
+
 import java.util.Collections;
 import java.util.List;
 
@@ -28,6 +31,7 @@ import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.message.request.CompressRequest;
 import org.apache.james.imap.processor.base.AbstractChainedProcessor;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -81,4 +85,11 @@ public class CompressProcessor extends AbstractChainedProcessor<CompressRequest>
         return Collections.EMPTY_LIST;
     }
 
+    @Override
+    protected Closeable addContextToMDC(CompressRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "COMPRESS")
+            .addContext("algorithm", message.getAlgorithm())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
index 2b7e242..be6f59f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
@@ -19,8 +19,10 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.List;
 
+import org.apache.james.imap.api.message.IdRange;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.SelectedMailbox;
@@ -31,6 +33,7 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class CopyProcessor extends AbstractMessageRangeProcessor<CopyRequest> {
 
@@ -51,4 +54,14 @@ public class CopyProcessor extends AbstractMessageRangeProcessor<CopyRequest> {
                                          MailboxManager mailboxManager, MessageRange messageSet) throws MailboxException {
         return mailboxManager.copyMessages(messageSet, currentMailbox.getPath(), targetMailbox, mailboxSession);
     }
+
+    @Override
+    protected Closeable addContextToMDC(CopyRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "COPY")
+            .addContext("targetMailbox", message.getMailboxName())
+            .addContext("uidEnabled", message.isUseUids())
+            .addContext("idSet", IdRange.toString(message.getIdSet()))
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
index 66ad8ed..295b178 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.display.HumanReadableText;
@@ -33,6 +35,7 @@ import org.apache.james.mailbox.exception.MailboxExistsException;
 import org.apache.james.mailbox.exception.TooLongMailboxNameException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class CreateProcessor extends AbstractMailboxProcessor<CreateRequest> {
 
@@ -70,4 +73,12 @@ public class CreateProcessor extends AbstractMailboxProcessor<CreateRequest> {
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }
+
+    @Override
+    protected Closeable addContextToMDC(CreateRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "CREATE")
+            .addContext("mailbox", message.getMailboxName())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
index f3a7005..8fed11c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+
+import java.io.Closeable;
 import java.util.List;
 
 import org.apache.james.imap.api.ImapCommand;
@@ -42,6 +44,7 @@ import org.apache.james.mailbox.model.SimpleMailboxACL;
 import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.SimpleMailboxACL.SimpleMailboxACLEntryKey;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -144,4 +147,12 @@ public class DeleteACLProcessor extends AbstractMailboxProcessor<DeleteACLReques
         return CAPABILITIES;
     }
 
+    @Override
+    protected Closeable addContextToMDC(DeleteACLRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "DELETE_ACL")
+            .addContext("mailbox", message.getMailboxName())
+            .addContext("identifier", message.getIdentifier())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
index 20b2be7..08b0b2f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.display.HumanReadableText;
@@ -34,6 +36,7 @@ import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.exception.TooLongMailboxNameException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class DeleteProcessor extends AbstractMailboxProcessor<DeleteRequest> {
 
@@ -75,4 +78,12 @@ public class DeleteProcessor extends AbstractMailboxProcessor<DeleteRequest> {
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }
+
+    @Override
+    protected Closeable addContextToMDC(DeleteRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "DELETE")
+            .addContext("mailbox", message.getMailboxName())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
index 516ae7c..2611d7e 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
@@ -21,6 +21,7 @@ package org.apache.james.imap.processor;
 
 import static org.apache.james.imap.api.ImapConstants.SUPPORTS_ENABLE;
 
+import java.io.Closeable;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -38,6 +39,9 @@ import org.apache.james.imap.message.response.EnableResponse;
 import org.apache.james.imap.processor.PermitEnableCapabilityProcessor.EnableException;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
+
+import com.google.common.collect.ImmutableList;
 
 import com.google.common.collect.ImmutableList;
 
@@ -137,4 +141,11 @@ public class EnableProcessor extends AbstractMailboxProcessor<EnableRequest> imp
         return CAPS;
     }
 
+    @Override
+    protected Closeable addContextToMDC(EnableRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "ENABLE")
+            .addContext("capabilities", ImmutableList.copyOf(message.getCapabilities()))
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java
index f5428e0..69e7644 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java
@@ -19,11 +19,16 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
+import org.apache.james.imap.api.message.IdRange;
+import org.apache.james.imap.api.message.UidRange;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.message.request.ExamineRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class ExamineProcessor extends AbstractSelectionProcessor<ExamineRequest> {
 
@@ -32,4 +37,17 @@ public class ExamineProcessor extends AbstractSelectionProcessor<ExamineRequest>
         super(ExamineRequest.class, next, mailboxManager, statusResponseFactory, true, metricFactory);
     }
 
+    @Override
+    protected Closeable addContextToMDC(ExamineRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "EXAMINE")
+            .addContext("mailbox", message.getMailboxName())
+            .addContext("condstore", Boolean.toString(message.getCondstore()))
+            .addContext("knownModseq", message.getKnownModSeq())
+            .addContext("knownUids", UidRange.toString(message.getKnownUidSet()))
+            .addContext("knownIdRange", IdRange.toString(message.getKnownSequenceSet()))
+            .addContext("lastKnownUidValidity", message.getLastKnownUidValidity())
+            .addContext("uidSet", UidRange.toString(message.getUidSet()))
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
index 0c3a30d..05d199e 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.Iterator;
 import java.util.List;
 
@@ -43,6 +44,7 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MessageRangeException;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -125,4 +127,12 @@ public class ExpungeProcessor extends AbstractMailboxProcessor<ExpungeRequest> i
     public List<String> getImplementedCapabilities(ImapSession session) {
         return UIDPLUS;
     }
+
+    @Override
+    protected Closeable addContextToMDC(ExpungeRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "EXPUNGE")
+            .addContext("uidSet", IdRange.toString(message.getUidSet()))
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
index 3fe1fc4..5adf6cf 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.List;
 
 import org.apache.james.imap.api.ImapCommand;
@@ -41,6 +42,7 @@ import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -118,4 +120,11 @@ public class GetACLProcessor extends AbstractMailboxProcessor<GetACLRequest> imp
         return CAPABILITIES;
     }
 
+    @Override
+    protected Closeable addContextToMDC(GetACLRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "GET_ACL")
+            .addContext("mailbox", message.getMailboxName())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
index de0146f..e38e08f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Set;
@@ -43,6 +44,7 @@ import org.apache.james.mailbox.model.MailboxAnnotation;
 import org.apache.james.mailbox.model.MailboxAnnotationKey;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Predicate;
@@ -146,4 +148,14 @@ public class GetAnnotationProcessor extends AbstractMailboxProcessor<GetAnnotati
         return Optional.of(overLimitSizes.first());
     }
 
+    @Override
+    protected Closeable addContextToMDC(GetAnnotationRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "GET_ANNOTATION")
+            .addContext("mailbox", message.getMailboxName())
+            .addContext("depth", message.getDepth())
+            .addContext("maxSize", message.getMaxsize())
+            .addContext("keys", message.getKeys())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
index 6637ecf..00c1d6b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.List;
 
 import org.apache.james.imap.api.ImapCommand;
@@ -40,6 +41,7 @@ import org.apache.james.mailbox.model.SimpleMailboxACL;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -106,4 +108,11 @@ public class GetQuotaProcessor extends AbstractMailboxProcessor<GetQuotaRequest>
         return false;
     }
 
+    @Override
+    protected Closeable addContextToMDC(GetQuotaRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "GET_QUOTA")
+            .addContext("quotaRoot", message.getQuotaRoot())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
index 3864bf6..fd45b64 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.List;
 
 import org.apache.james.imap.api.ImapCommand;
@@ -42,6 +43,7 @@ import org.apache.james.mailbox.model.SimpleMailboxACL;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -97,4 +99,12 @@ public class GetQuotaRootProcessor extends AbstractMailboxProcessor<GetQuotaRoot
         }
 
     }
+
+    @Override
+    protected Closeable addContextToMDC(GetQuotaRootRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "GET_QUOTA_ROOT")
+            .addContext("mailbox", message.getMailboxName())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
index bdc2688..2b1c81c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
@@ -21,6 +21,7 @@ package org.apache.james.imap.processor;
 
 import static org.apache.james.imap.api.ImapConstants.SUPPORTS_IDLE;
 
+import java.io.Closeable;
 import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.Executors;
@@ -46,6 +47,7 @@ import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -199,4 +201,11 @@ public class IdleProcessor extends AbstractMailboxProcessor<IdleRequest> impleme
             return ExecutionMode.ASYNCHRONOUS;
         }
     }
+
+    @Override
+    protected Closeable addContextToMDC(IdleRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "IDLE")
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
index 1de8e9a..040c94f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.ArrayList;
 import java.util.Collection;
 
@@ -41,6 +42,7 @@ import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MailboxQuery;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> {
 
@@ -131,4 +133,13 @@ public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> {
             no(command, tag, responder, displayTextKey);
         }
     }
+
+    @Override
+    protected Closeable addContextToMDC(LsubRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "LSUB")
+            .addContext("base", message.getBaseReferenceName())
+            .addContext("pattern", message.getMailboxPattern())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
index 71c1361..7f882e6 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -46,6 +47,7 @@ import org.apache.james.mailbox.model.MailboxMetaData.Children;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MailboxQuery;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class ListProcessor extends AbstractMailboxProcessor<ListRequest> {
 
@@ -230,4 +232,13 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> {
     protected boolean isAcceptable(ImapMessage message) {
         return ListRequest.class.equals(message.getClass());
     }
+
+    @Override
+    protected Closeable addContextToMDC(ListRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "LIST")
+            .addContext("base", message.getBaseReferenceName())
+            .addContext("pattern", message.getMailboxPattern())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
index c68e559..c648e1a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.List;
 
 import org.apache.james.imap.api.ImapCommand;
@@ -41,6 +42,7 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.SimpleMailboxACL.SimpleMailboxACLEntryKey;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -134,4 +136,12 @@ public class ListRightsProcessor extends AbstractMailboxProcessor<ListRightsRequ
         return CAPABILITIES;
     }
 
+    @Override
+    protected Closeable addContextToMDC(ListRightsRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "LIST_RIGHTS")
+            .addContext("mailbox", message.getMailboxName())
+            .addContext("identifier", message.getIdentifier())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java
index cf49b11..3011bda 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.Collections;
 import java.util.List;
 
@@ -30,6 +31,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.message.request.LoginRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -72,4 +74,12 @@ public class LoginProcessor extends AbstractAuthProcessor<LoginRequest> implemen
         }
         return Collections.emptyList();
     }
+
+    @Override
+    protected Closeable addContextToMDC(LoginRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "LOGIN")
+            .addContext(MDCBuilder.USER, message.getUserid())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
index acec17c..3e9fc00 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.display.HumanReadableText;
@@ -30,6 +32,7 @@ import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class LogoutProcessor extends AbstractMailboxProcessor<LogoutRequest> {
 
@@ -50,4 +53,11 @@ public class LogoutProcessor extends AbstractMailboxProcessor<LogoutRequest> {
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }
+
+    @Override
+    protected Closeable addContextToMDC(LogoutRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "LOGOUT")
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java
index 834b552..1f72217 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java
@@ -19,9 +19,11 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.List;
 
 import org.apache.james.imap.api.ImapConstants;
+import org.apache.james.imap.api.message.IdRange;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapSession;
@@ -33,6 +35,7 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -67,4 +70,14 @@ public class MoveProcessor extends AbstractMessageRangeProcessor<MoveRequest> im
         }
     }
 
+    @Override
+    protected Closeable addContextToMDC(MoveRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "MOVE")
+            .addContext("targetMailbox", message.getMailboxName())
+            .addContext("uidEnabled", message.isUseUids())
+            .addContext("idSet", IdRange.toString(message.getIdSet()))
+            .build();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
index 2f1c89a..c4dc6c8 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.Collections;
 import java.util.List;
 
@@ -40,6 +41,7 @@ import org.apache.james.mailbox.model.MailboxACL.MailboxACLRights;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 /**
  * MYRIGHTS Processor.
@@ -112,4 +114,11 @@ public class MyRightsProcessor extends AbstractMailboxProcessor<MyRightsRequest>
         return CAPABILITIES;
     }
 
+    @Override
+    protected Closeable addContextToMDC(MyRightsRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "MYRIGHTS")
+            .addContext("mailbox", message.getMailboxName())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
index 724b238..fecabd3 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
@@ -20,6 +20,7 @@ package org.apache.james.imap.processor;
 
 import static org.apache.james.imap.api.ImapConstants.SUPPORTS_NAMESPACES;
 
+import java.io.Closeable;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -36,6 +37,7 @@ import org.apache.james.imap.message.response.NamespaceResponse;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 /**
  * Processes a NAMESPACE command into a suitable set of responses.
@@ -110,4 +112,10 @@ public class NamespaceProcessor extends AbstractMailboxProcessor<NamespaceReques
         return CAPS;
     }
 
+    @Override
+    protected Closeable addContextToMDC(NamespaceRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "NAMESPACE")
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java
index c903564..4d88c2b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapProcessor;
@@ -26,6 +28,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.message.request.NoopRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class NoopProcessor extends AbstractMailboxProcessor<NoopRequest> {
 
@@ -39,4 +42,11 @@ public class NoopProcessor extends AbstractMailboxProcessor<NoopRequest> {
         unsolicitedResponses(session, responder, false);
         okComplete(command, tag, responder);
     }
+
+    @Override
+    protected Closeable addContextToMDC(NoopRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "NOOP")
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
index 2ce9187..42ec3cf 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.ImapSessionUtils;
@@ -36,6 +38,7 @@ import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.exception.TooLongMailboxNameException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class RenameProcessor extends AbstractMailboxProcessor<RenameRequest> {
 
@@ -86,4 +89,13 @@ public class RenameProcessor extends AbstractMailboxProcessor<RenameRequest> {
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }
+
+    @Override
+    protected Closeable addContextToMDC(RenameRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "RENAME")
+            .addContext("existingName", message.getExistingName())
+            .addContext("newName", message.getNewName())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
index 065b2eb..8822e4d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
@@ -62,6 +63,7 @@ import org.apache.james.mailbox.model.SearchQuery.AddressType;
 import org.apache.james.mailbox.model.SearchQuery.Criterion;
 import org.apache.james.mailbox.model.SearchQuery.DateResolution;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -497,4 +499,13 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp
     public List<String> getImplementedCapabilities(ImapSession session) {
         return CAPS;
     }
+
+    @Override
+    protected Closeable addContextToMDC(SearchRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "SEARCH")
+            .addContext("useUid", message.isUseUids())
+            .addContext("searchOperation", message.getSearchOperation())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java
index 6414487..fc200d7 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java
@@ -19,11 +19,16 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
+import org.apache.james.imap.api.message.IdRange;
+import org.apache.james.imap.api.message.UidRange;
 import org.apache.james.imap.api.message.response.StatusResponseFactory;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.message.request.SelectRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class SelectProcessor extends AbstractSelectionProcessor<SelectRequest> {
 
@@ -32,4 +37,18 @@ public class SelectProcessor extends AbstractSelectionProcessor<SelectRequest> {
         super(SelectRequest.class, next, mailboxManager, statusResponseFactory, false, metricFactory);
     }
 
+    @Override
+    protected Closeable addContextToMDC(SelectRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "SELECT")
+            .addContext("mailbox", message.getMailboxName())
+            .addContext("condstore", message.getCondstore())
+            .addContext("knownModseq", message.getKnownModSeq())
+            .addContext("knownUids", UidRange.toString(message.getKnownUidSet()))
+            .addContext("knownIdRange", IdRange.toString(message.getKnownSequenceSet()))
+            .addContext("lastKnownUidValidity", message.getLastKnownUidValidity())
+            .addContext("uidSet", UidRange.toString(message.getUidSet()))
+            .build();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
index 8d26d3e..4f63d57 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.Collections;
 import java.util.List;
 
@@ -45,6 +46,7 @@ import org.apache.james.mailbox.model.SimpleMailboxACL;
 import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.SimpleMailboxACL.SimpleMailboxACLEntryKey;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 /**
  * SETACL Processor.
@@ -163,4 +165,13 @@ public class SetACLProcessor extends AbstractMailboxProcessor<SetACLRequest> imp
         return CAPABILITIES;
     }
 
+    @Override
+    protected Closeable addContextToMDC(SetACLRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "SET_ACL")
+            .addContext("mailbox", message.getMailboxName())
+            .addContext("identifier", message.getIdentifier())
+            .addContext("rights", message.getRights())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
index 774b74d..adfe274 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.List;
 
 import org.apache.james.imap.api.ImapCommand;
@@ -38,6 +39,7 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -74,4 +76,13 @@ public class SetAnnotationProcessor extends AbstractMailboxProcessor<SetAnnotati
             no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
         }
     }
+
+    @Override
+    protected Closeable addContextToMDC(SetAnnotationRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "SET_ANNOTATION")
+            .addContext("mailbox", message.getMailboxName())
+            .addContext("annotations", message.getMailboxAnnotations())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java
index 8238f0a..1e7c68c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.Collections;
 import java.util.List;
 
@@ -31,6 +32,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.message.request.SetQuotaRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 /**
  * SETQUOTA processor
@@ -57,4 +59,13 @@ public class SetQuotaProcessor extends AbstractMailboxProcessor<SetQuotaRequest>
         HumanReadableText humanReadableText = new HumanReadableText(HumanReadableText.UNSUFFICIENT_RIGHTS_KEY, HumanReadableText.UNSUFFICIENT_RIGHTS_DEFAULT_VALUE, params);
         no(command, tag, responder, humanReadableText);
     }
+
+    @Override
+    protected Closeable addContextToMDC(SetQuotaRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "SET_QUOTA")
+            .addContext("quotaRoot", message.getQuotaRoot())
+            .addContext("limits", message.getResourceLimits())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java
index 30c7ff8..a89b665 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.Collections;
 import java.util.List;
 
@@ -28,6 +29,7 @@ import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.message.request.StartTLSRequest;
 import org.apache.james.imap.processor.base.AbstractChainedProcessor;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -73,4 +75,10 @@ public class StartTLSProcessor extends AbstractChainedProcessor<StartTLSRequest>
         }
     }
 
+    @Override
+    protected Closeable addContextToMDC(StartTLSRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "START_TLS")
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
index 8b10e8c..b4bc96b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.display.HumanReadableText;
@@ -36,6 +38,7 @@ import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 import org.slf4j.Logger;
 
 public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> {
@@ -157,4 +160,13 @@ public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> {
         }
         return messages;
     }
+
+    @Override
+    protected Closeable addContextToMDC(StatusRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "STATUS")
+            .addContext("mailbox", message.getMailboxName())
+            .addContext("parameters", message.getStatusDataItems())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
index a281c8d..44aecce 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -56,6 +57,7 @@ import org.apache.james.mailbox.model.MessageRange.Type;
 import org.apache.james.mailbox.model.MessageResult;
 import org.apache.james.mailbox.model.MessageResultIterator;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -344,4 +346,15 @@ public class StoreProcessor extends AbstractMailboxProcessor<StoreRequest> {
         }
         
     }
+
+    @Override
+    protected Closeable addContextToMDC(StoreRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "STORE")
+            .addContext("ranges", IdRange.toString(message.getIdSet()))
+            .addContext("useUids", message.isUseUids())
+            .addContext("unchangedSince", message.getUnchangedSince())
+            .addContext("isSilent", message.isSilent())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
index 78cd530..732a584 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.display.HumanReadableText;
@@ -31,6 +33,7 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.exception.SubscriptionException;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class SubscribeProcessor extends AbstractSubscriptionProcessor<SubscribeRequest> {
 
@@ -64,4 +67,11 @@ public class SubscribeProcessor extends AbstractSubscriptionProcessor<SubscribeR
         }
     }
 
+    @Override
+    protected Closeable addContextToMDC(SubscribeRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "SUBSCRIBE")
+            .addContext("mailbox", message.getMailboxName())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
index 2e1c28e..2054368 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapSession;
@@ -27,6 +29,7 @@ import org.apache.james.imap.processor.base.AbstractChainedProcessor;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.util.MDCBuilder;
 
 /**
  * Processes system messages unrelated to IMAP.
@@ -76,4 +79,11 @@ public class SystemMessageProcessor extends AbstractChainedProcessor<SystemMessa
         }
     }
 
+    @Override
+    protected Closeable addContextToMDC(SystemMessage message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "SYSTEM_MESSAGE")
+            .addContext("message", message)
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java
index f046a5d..f392ea5 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -30,6 +31,7 @@ import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.message.request.UnselectRequest;
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 /**
  * Processor which implements the UNSELECT extension.
@@ -71,4 +73,10 @@ public class UnselectProcessor extends AbstractMailboxProcessor<UnselectRequest>
         return UNSELECT;
     }
 
+    @Override
+    protected Closeable addContextToMDC(UnselectRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "UNSELECT")
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
index 59f210d..b40bc6d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.imap.processor;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.display.HumanReadableText;
@@ -31,6 +33,7 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.exception.SubscriptionException;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 public class UnsubscribeProcessor extends AbstractSubscriptionProcessor<UnsubscribeRequest> {
 
@@ -65,4 +68,11 @@ public class UnsubscribeProcessor extends AbstractSubscriptionProcessor<Unsubscr
         }
     }
 
+    @Override
+    protected Closeable addContextToMDC(UnsubscribeRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "UNSUBSCRIBE")
+            .addContext("mailbox", message.getMailboxName())
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
index e6649e6..f7ee515 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
@@ -19,11 +19,16 @@
 
 package org.apache.james.imap.processor.base;
 
+import java.io.Closeable;
+import java.io.IOException;
+
 import org.apache.james.imap.api.ImapConfiguration;
 import org.apache.james.imap.api.ImapMessage;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapSession;
 
+import com.google.common.base.Throwables;
+
 abstract public class AbstractChainedProcessor<M extends ImapMessage> implements ImapProcessor {
 
     private final ImapProcessor next;
@@ -51,7 +56,12 @@ abstract public class AbstractChainedProcessor<M extends ImapMessage> implements
     public void process(ImapMessage message, Responder responder, ImapSession session) {
         final boolean isAcceptable = isAcceptable(message);
         if (isAcceptable) {
-            doProcess((M) message, responder, session);
+            M acceptableMessage = (M) message;
+            try (Closeable closeable = addContextToMDC(acceptableMessage)) {
+                doProcess(acceptableMessage, responder, session);
+            } catch (IOException e) {
+                throw Throwables.propagate(e);
+            }
         } else {
             next.process(message, responder, session);
         }
@@ -85,4 +95,9 @@ abstract public class AbstractChainedProcessor<M extends ImapMessage> implements
      *            <code>ImapSession</code>, not null
      */
     abstract protected void doProcess(M acceptableMessage, Responder responder, ImapSession session);
+
+    /**
+     * Add request specific information to the MDC, for contextual logging
+     */
+    abstract protected Closeable addContextToMDC(M message);
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java
index f47085f..720dfa6 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java
@@ -19,9 +19,12 @@
 
 package org.apache.james.imap.processor.base;
 
+import java.io.Closeable;
+
 import org.apache.james.imap.api.message.response.ImapResponseMessage;
 import org.apache.james.imap.api.process.ImapProcessor;
 import org.apache.james.imap.api.process.ImapSession;
+import org.apache.james.util.MDCBuilder;
 
 public class ImapResponseMessageProcessor extends AbstractChainedProcessor<ImapResponseMessage> {
 
@@ -32,4 +35,11 @@ public class ImapResponseMessageProcessor extends AbstractChainedProcessor<ImapR
     protected void doProcess(ImapResponseMessage acceptableMessage, Responder responder, ImapSession session) {
         responder.respond(acceptableMessage);
     }
+
+    @Override
+    protected Closeable addContextToMDC(ImapResponseMessage message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "RESPOND")
+            .build();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
index ec7f3e7..5c3ed47 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.imap.processor.fetch;
 
+import java.io.Closeable;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -50,6 +51,7 @@ import org.apache.james.mailbox.model.MessageResult.FetchGroup;
 import org.apache.james.mailbox.model.MessageResult.MimePath;
 import org.apache.james.mailbox.model.MessageResultIterator;
 import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
 
 import com.google.common.collect.ImmutableList;
 
@@ -246,4 +248,13 @@ public class FetchProcessor extends AbstractMailboxProcessor<FetchRequest> {
         }
     }
 
+    @Override
+    protected Closeable addContextToMDC(FetchRequest message) {
+        return MDCBuilder.create()
+            .addContext(MDCBuilder.ACTION, "FETCH")
+            .addContext("useUid", message.isUseUids())
+            .addContext("idSet", IdRange.toString(message.getIdSet()))
+            .addContext("fetchedData", message.getFetch())
+            .build();
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[26/38] james-project git commit: JAMES-2114 Deprecate LogEnabled API

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/util/src/main/java/org/apache/james/util/retry/naming/directory/RetryingDirContext.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/retry/naming/directory/RetryingDirContext.java b/server/container/util/src/main/java/org/apache/james/util/retry/naming/directory/RetryingDirContext.java
index 0b13966..88a65ca 100644
--- a/server/container/util/src/main/java/org/apache/james/util/retry/naming/directory/RetryingDirContext.java
+++ b/server/container/util/src/main/java/org/apache/james/util/retry/naming/directory/RetryingDirContext.java
@@ -33,7 +33,6 @@ import javax.naming.directory.SearchResult;
 import org.apache.james.util.retry.api.RetrySchedule;
 import org.apache.james.util.retry.naming.LoggingRetryHandler;
 import org.apache.james.util.retry.naming.RetryingContext;
-import org.slf4j.Logger;
 
 /**
  * <code>RetryingDirContext</code> retries the methods defined by <code>javax.naming.directory.DirContext</code>
@@ -51,12 +50,11 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
      *
      * @param schedule
      * @param maxRetries
-     * @param logger
      * @throws NamingException
      */
-    public RetryingDirContext(RetrySchedule schedule, int maxRetries, Logger logger)
+    public RetryingDirContext(RetrySchedule schedule, int maxRetries)
             throws NamingException {
-        super(schedule, maxRetries, logger);
+        super(schedule, maxRetries);
     }
 
     /**
@@ -66,8 +64,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public void bind(final Name name, final Object obj, final Attributes attrs)
             throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(),
-                getLogger()) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -84,8 +81,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public void bind(final String name, final Object obj, final Attributes attrs)
             throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(),
-                getLogger()) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -103,7 +99,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     public DirContext createSubcontext(final Name name, final Attributes attrs)
             throws NamingException {
         return (DirContext) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this,
-                getSchedule(), getMaxRetries(), getLogger()) {
+                getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -120,7 +116,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     public DirContext createSubcontext(final String name, final Attributes attrs)
             throws NamingException {
         return (DirContext) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this,
-                getSchedule(), getMaxRetries(), getLogger()) {
+                getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -135,7 +131,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public Attributes getAttributes(final Name name) throws NamingException {
         return (Attributes) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this,
-                getSchedule(), getMaxRetries(), getLogger()) {
+                getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -150,7 +146,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public Attributes getAttributes(final String name) throws NamingException {
         return (Attributes) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this,
-                getSchedule(), getMaxRetries(), getLogger()) {
+                getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -166,7 +162,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public Attributes getAttributes(final Name name, final String[] attrIds) throws NamingException {
         return (Attributes) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this,
-                getSchedule(), getMaxRetries(), getLogger()) {
+                getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -183,7 +179,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     public Attributes getAttributes(final String name, final String[] attrIds)
             throws NamingException {
         return (Attributes) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this,
-                getSchedule(), getMaxRetries(), getLogger()) {
+                getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -198,7 +194,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public DirContext getSchema(final Name name) throws NamingException {
         final Context context = getDelegate();
-        return new RetryingDirContext(getSchedule(), getMaxRetries(), getLogger()) {
+        return new RetryingDirContext(getSchedule(), getMaxRetries()) {
 
             @Override
             public DirContext newDelegate() throws NamingException {
@@ -213,7 +209,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public DirContext getSchema(final String name) throws NamingException {
         final Context context = getDelegate();
-        return new RetryingDirContext(getSchedule(), getMaxRetries(), getLogger()) {
+        return new RetryingDirContext(getSchedule(), getMaxRetries()) {
 
             @Override
             public DirContext newDelegate() throws NamingException {
@@ -228,7 +224,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public DirContext getSchemaClassDefinition(final Name name) throws NamingException {
         final Context context = getDelegate();
-        return new RetryingDirContext(getSchedule(), getMaxRetries(), getLogger()) {
+        return new RetryingDirContext(getSchedule(), getMaxRetries()) {
 
             @Override
             public DirContext newDelegate() throws NamingException {
@@ -243,7 +239,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public DirContext getSchemaClassDefinition(final String name) throws NamingException {
         final Context context = getDelegate();
-        return new RetryingDirContext(getSchedule(), getMaxRetries(), getLogger()) {
+        return new RetryingDirContext(getSchedule(), getMaxRetries()) {
 
             @Override
             public DirContext newDelegate() throws NamingException {
@@ -259,8 +255,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public void modifyAttributes(final Name name, final ModificationItem[] mods)
             throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(),
-                getLogger()) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -277,8 +272,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public void modifyAttributes(final String name, final ModificationItem[] mods)
             throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(),
-                getLogger()) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -295,8 +289,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public void modifyAttributes(final Name name, final int modOp, final Attributes attrs)
             throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(),
-                getLogger()) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -313,8 +306,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public void modifyAttributes(final String name, final int modOp, final Attributes attrs)
             throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(),
-                getLogger()) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -331,8 +323,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public void rebind(final Name name, final Object obj, final Attributes attrs)
             throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(),
-                getLogger()) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -349,8 +340,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     @Override
     public void rebind(final String name, final Object obj, final Attributes attrs)
             throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(),
-                getLogger()) {
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -370,7 +360,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
             final Attributes matchingAttributes)
             throws NamingException {
         return (NamingEnumeration<SearchResult>) new LoggingRetryHandler(
-                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()) {
+                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -389,7 +379,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
             final Attributes matchingAttributes)
             throws NamingException {
         return (NamingEnumeration<SearchResult>) new LoggingRetryHandler(
-                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()) {
+                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -408,7 +398,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
             final Attributes matchingAttributes,
             String[] attributesToReturn) throws NamingException {
         return (NamingEnumeration<SearchResult>) new LoggingRetryHandler(
-                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()) {
+                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -427,7 +417,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
             final Attributes matchingAttributes,
             final String[] attributesToReturn) throws NamingException {
         return (NamingEnumeration<SearchResult>) new LoggingRetryHandler(
-                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()) {
+                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -447,7 +437,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
             final SearchControls cons)
             throws NamingException {
         return (NamingEnumeration<SearchResult>) new LoggingRetryHandler(
-                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()) {
+                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -466,7 +456,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
             final SearchControls cons)
             throws NamingException {
         return (NamingEnumeration<SearchResult>) new LoggingRetryHandler(
-                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()) {
+                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -485,7 +475,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     public NamingEnumeration<SearchResult> search(final Name name, final String filterExpr,
             final Object[] filterArgs, final SearchControls cons) throws NamingException {
         return (NamingEnumeration<SearchResult>) new LoggingRetryHandler(
-                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()) {
+                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {
@@ -504,7 +494,7 @@ abstract public class RetryingDirContext extends RetryingContext implements DirC
     public NamingEnumeration<SearchResult> search(final String name, final String filterExpr,
             final Object[] filterArgs, final SearchControls cons) throws NamingException {
         return (NamingEnumeration<SearchResult>) new LoggingRetryHandler(
-                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()) {
+                DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()) {
 
             @Override
             public Object operation() throws NamingException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/container/util/src/main/java/org/apache/james/util/retry/naming/ldap/RetryingLdapContext.java
----------------------------------------------------------------------
diff --git a/server/container/util/src/main/java/org/apache/james/util/retry/naming/ldap/RetryingLdapContext.java b/server/container/util/src/main/java/org/apache/james/util/retry/naming/ldap/RetryingLdapContext.java
index 7cde3d1..76678c9 100644
--- a/server/container/util/src/main/java/org/apache/james/util/retry/naming/ldap/RetryingLdapContext.java
+++ b/server/container/util/src/main/java/org/apache/james/util/retry/naming/ldap/RetryingLdapContext.java
@@ -30,7 +30,6 @@ import javax.naming.ldap.LdapContext;
 import org.apache.james.util.retry.api.RetrySchedule;
 import org.apache.james.util.retry.naming.LoggingRetryHandler;
 import org.apache.james.util.retry.naming.directory.RetryingDirContext;
-import org.slf4j.Logger;
 
 /**
  * <code>RetryingLdapContext</code> retries the methods defined by <code>javax.naming.ldap.LdapContext</code>
@@ -48,8 +47,8 @@ abstract public class RetryingLdapContext extends RetryingDirContext implements
      * @param maxRetries
      * @throws NamingException
      */
-    public RetryingLdapContext(RetrySchedule schedule, int maxRetries, Logger logger) throws NamingException {
-        super(schedule, maxRetries, logger);
+    public RetryingLdapContext(RetrySchedule schedule, int maxRetries) throws NamingException {
+        super(schedule, maxRetries);
     }
 
     /**
@@ -57,7 +56,7 @@ abstract public class RetryingLdapContext extends RetryingDirContext implements
      */
     @Override
     public ExtendedResponse extendedOperation(final ExtendedRequest request) throws NamingException {
-        return (ExtendedResponse) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()){
+        return (ExtendedResponse) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()){
 
             @Override
             public Object operation() throws NamingException {
@@ -70,7 +69,7 @@ abstract public class RetryingLdapContext extends RetryingDirContext implements
      */
     @Override
     public Control[] getConnectControls() throws NamingException {
-        return (Control[]) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()){
+        return (Control[]) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()){
 
             @Override
             public Object operation() throws NamingException {
@@ -83,7 +82,7 @@ abstract public class RetryingLdapContext extends RetryingDirContext implements
      */
     @Override
     public Control[] getRequestControls() throws NamingException {
-        return (Control[]) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()){
+        return (Control[]) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()){
 
             @Override
             public Object operation() throws NamingException {
@@ -96,7 +95,7 @@ abstract public class RetryingLdapContext extends RetryingDirContext implements
      */
     @Override
     public Control[] getResponseControls() throws NamingException {
-        return (Control[]) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()){
+        return (Control[]) new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()){
 
             @Override
             public Object operation() throws NamingException {
@@ -110,7 +109,7 @@ abstract public class RetryingLdapContext extends RetryingDirContext implements
     @Override
     public LdapContext newInstance(final Control[] requestControls) throws NamingException {
         final Context context = getDelegate();
-        return new RetryingLdapContext(getSchedule(), getMaxRetries(), getLogger()) {
+        return new RetryingLdapContext(getSchedule(), getMaxRetries()) {
 
             @Override
             public Context newDelegate() throws NamingException {
@@ -124,7 +123,7 @@ abstract public class RetryingLdapContext extends RetryingDirContext implements
      */
     @Override
     public void reconnect(final Control[] connCtls) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()){
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()){
 
             @Override
             public Object operation() throws NamingException {
@@ -138,7 +137,7 @@ abstract public class RetryingLdapContext extends RetryingDirContext implements
      */
     @Override
     public void setRequestControls(final Control[] requestControls) throws NamingException {
-        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries(), getLogger()){
+        new LoggingRetryHandler(DEFAULT_EXCEPTION_CLASSES, this, getSchedule(), getMaxRetries()){
 
             @Override
             public Object operation() throws NamingException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
index 89c0438..b710e4e 100644
--- a/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
+++ b/server/data/data-cassandra/src/test/java/org/apache/james/domainlist/cassandra/CassandraDomainListTest.java
@@ -22,7 +22,6 @@ package org.apache.james.domainlist.cassandra;
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.domainlist.lib.AbstractDomainListTest;
-import org.slf4j.LoggerFactory;
 
 public class CassandraDomainListTest extends AbstractDomainListTest {
 
@@ -32,7 +31,6 @@ public class CassandraDomainListTest extends AbstractDomainListTest {
     protected DomainList createDomainList() {
         cassandra = CassandraCluster.create(new CassandraDomainListModule());
         CassandraDomainList testee = new CassandraDomainList(getDNSServer("localhost"), cassandra.getConf());
-        testee.setLog(LoggerFactory.getLogger(getClass()));
         testee.setAutoDetect(false);
         testee.setAutoDetectIP(false);
         return testee;

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java
index e55ce6a..122161c 100644
--- a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java
+++ b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraRecipientRewriteTableTest.java
@@ -24,7 +24,6 @@ import org.apache.james.backends.cassandra.utils.CassandraUtils;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
-import org.slf4j.LoggerFactory;
 
 import cucumber.api.java.After;
 import cucumber.api.java.Before;
@@ -52,7 +51,6 @@ public class CassandraRecipientRewriteTableTest extends AbstractRecipientRewrite
     @Override
     protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
         CassandraRecipientRewriteTable rrt = new CassandraRecipientRewriteTable(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION);
-        rrt.setLog(LoggerFactory.getLogger("MockLog"));
         rrt.configure(new DefaultConfigurationBuilder());
         return rrt;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java
index d6ce16f..b3d1166 100644
--- a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java
+++ b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/CassandraStepdefs.java
@@ -23,7 +23,6 @@ import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.utils.CassandraUtils;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.RewriteTablesStepdefs;
-import org.slf4j.LoggerFactory;
 
 import cucumber.api.java.After;
 import cucumber.api.java.Before;
@@ -53,7 +52,6 @@ public class CassandraStepdefs {
 
     private AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
         CassandraRecipientRewriteTable rrt = new CassandraRecipientRewriteTable(cassandra.getConf(), CassandraUtils.WITH_DEFAULT_CONFIGURATION);
-        rrt.setLog(LoggerFactory.getLogger("MockLog"));
         rrt.configure(new DefaultConfigurationBuilder());
         return rrt;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java b/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java
index 1b8a04f..b26d2e2 100644
--- a/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java
+++ b/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/FileMailRepository.java
@@ -42,6 +42,8 @@ import org.apache.james.mailrepository.lib.AbstractMailRepository;
 import org.apache.james.repository.file.FilePersistentObjectRepository;
 import org.apache.james.repository.file.FilePersistentStreamRepository;
 import org.apache.mailet.Mail;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -60,6 +62,7 @@ import org.apache.mailet.Mail;
  * </p>
  */
 public class FileMailRepository extends AbstractMailRepository {
+    private static final Logger LOGGER = LoggerFactory.getLogger(FileMailRepository.class);
 
     private FilePersistentStreamRepository streamRepository;
     private FilePersistentObjectRepository objectRepository;
@@ -80,8 +83,8 @@ public class FileMailRepository extends AbstractMailRepository {
     protected void doConfigure(HierarchicalConfiguration config) throws org.apache.commons.configuration.ConfigurationException {
         super.doConfigure(config);
         destination = config.getString("[@destinationURL]");
-        if (getLogger().isDebugEnabled()) {
-            getLogger().debug("FileMailRepository.destinationURL: " + destination);
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("FileMailRepository.destinationURL: " + destination);
         }
         fifo = config.getBoolean("[@FIFO]", false);
         cacheKeys = config.getBoolean("[@CACHEKEYS]", true);
@@ -96,13 +99,11 @@ public class FileMailRepository extends AbstractMailRepository {
 
             reposConfiguration.addProperty("[@destinationURL]", destination);
             objectRepository = new FilePersistentObjectRepository();
-            objectRepository.setLog(getLogger());
             objectRepository.setFileSystem(fileSystem);
             objectRepository.configure(reposConfiguration);
             objectRepository.init();
 
             streamRepository = new FilePersistentStreamRepository();
-            streamRepository.setLog(getLogger());
             streamRepository.setFileSystem(fileSystem);
             streamRepository.configure(reposConfiguration);
             streamRepository.init();
@@ -144,13 +145,13 @@ public class FileMailRepository extends AbstractMailRepository {
                     keys.add(i.next());
                 }
             }
-            if (getLogger().isDebugEnabled()) {
+            if (LOGGER.isDebugEnabled()) {
                 String logBuffer = getClass().getName() + " created in " + destination;
-                getLogger().debug(logBuffer);
+                LOGGER.debug(logBuffer);
             }
         } catch (Exception e) {
             final String message = "Failed to retrieve Store component:" + e.getMessage();
-            getLogger().error(message, e);
+            LOGGER.error(message, e);
             throw e;
         }
     }
@@ -235,7 +236,7 @@ public class FileMailRepository extends AbstractMailRepository {
                     remove(key);
                 }
                 final String errorMessage = exceptionBuffer.toString();
-                getLogger().warn(errorMessage, re);
+                LOGGER.warn(errorMessage, re);
                 return null;
             }
             MimeMessageStreamRepositorySource source = new MimeMessageStreamRepositorySource(streamRepository, destination, key);
@@ -243,7 +244,7 @@ public class FileMailRepository extends AbstractMailRepository {
 
             return mc;
         } catch (Exception me) {
-            getLogger().error("Exception retrieving mail: " + me);
+            LOGGER.error("Exception retrieving mail: " + me);
             throw new MessagingException("Exception while retrieving mail: " + me.getMessage(), me);
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MBoxMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MBoxMailRepository.java b/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MBoxMailRepository.java
index 5f66612..f96e883 100755
--- a/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MBoxMailRepository.java
+++ b/server/data/data-file/src/main/java/org/apache/james/mailrepository/file/MBoxMailRepository.java
@@ -74,10 +74,10 @@ import org.apache.commons.configuration.HierarchicalConfiguration;
 import org.apache.commons.io.FileUtils;
 import org.apache.james.core.MailImpl;
 import org.apache.james.lifecycle.api.Configurable;
-import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.mailet.Mail;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Implementation of a MailRepository using UNIX mbox files.
@@ -114,7 +114,8 @@ import org.slf4j.Logger;
  * and into something else (IMAP server or mail list displayer)
  */
 
-public class MBoxMailRepository implements MailRepository, LogEnabled, Configurable {
+public class MBoxMailRepository implements MailRepository, Configurable {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MBoxMailRepository.class);
 
     static final SimpleDateFormat dy = new SimpleDateFormat("EE MMM dd HH:mm:ss yyyy", Locale.US);
     static final String LOCKEXT = ".lock";
@@ -156,12 +157,6 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
         MimeMessage messageAction(String messageSeparator, String bodyText, long messageStart);
     }
 
-    private Logger logger;
-
-    public void setLog(Logger logger) {
-        this.logger = logger;
-    }
-
     public void configure(HierarchicalConfiguration configuration) throws ConfigurationException {
         /*
       The repository configuration
@@ -178,24 +173,20 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
             mboxFile = destination.substring("mbox://".length());
         }
 
-        if (getLogger().isDebugEnabled()) {
-            getLogger().debug("MBoxMailRepository.destinationURL: " + destination);
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("MBoxMailRepository.destinationURL: " + destination);
         }
 
         String checkType = configuration.getString("[@type]");
         if (!(checkType.equals("MAIL") || checkType.equals("SPOOL"))) {
             String exceptionString = "Attempt to configure MboxMailRepository as " + checkType;
-            if (getLogger().isWarnEnabled()) {
-                getLogger().warn(exceptionString);
+            if (LOGGER.isWarnEnabled()) {
+                LOGGER.warn(exceptionString);
             }
             throw new ConfigurationException(exceptionString);
         }
     }
 
-    protected Logger getLogger() {
-        return logger;
-    }
-
     /**
      * Convert a MimeMessage into raw text
      * 
@@ -231,12 +222,12 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
             mimeMessage = new MimeMessage(session, mb);
 
         } catch (MessagingException e) {
-            getLogger().error("Unable to parse mime message!", e);
+            LOGGER.error("Unable to parse mime message!", e);
         }
 
-        if (mimeMessage == null && getLogger().isDebugEnabled()) {
+        if (mimeMessage == null && LOGGER.isDebugEnabled()) {
             String logBuffer = this.getClass().getName() + " Mime message is null";
-            getLogger().debug(logBuffer);
+            LOGGER.debug(logBuffer);
         }
 
         /*
@@ -246,14 +237,14 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
          * .TO).toString(); } catch (Exception e) { // It has errored, so time
          * for plan B // use the from field I suppose try {
          * mimeMessage.setRecipients(javax.mail.Message.RecipientType.TO,
-         * mimeMessage.getFrom()); if (getLogger().isDebugEnabled()) {
+         * mimeMessage.getFrom()); if (LOGGER.isDebugEnabled()) {
          * StringBuffer logBuffer = new StringBuffer(128)
          * .append(this.getClass().getName())
          * .append(" Patching To: field for message ")
          * .append(" with  From: field");
-         * getLogger().debug(logBuffer.toString()); } } catch
+         * LOGGER.debug(logBuffer.toString()); } } catch
          * (MessagingException e1) {
-         * getLogger().error("Unable to set to: field to from: field", e); } }
+         * LOGGER.error("Unable to set to: field to from: field", e); } }
          */
         return mimeMessage;
     }
@@ -285,10 +276,10 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
      *            The action to take when a message is found
      */
     private MimeMessage parseMboxFile(RandomAccessFile ins, MessageAction messAct) {
-        if ((getLogger().isDebugEnabled())) {
+        if ((LOGGER.isDebugEnabled())) {
             String logBuffer = this.getClass().getName() + " Start parsing " + mboxFile;
 
-            getLogger().debug(logBuffer);
+            LOGGER.debug(logBuffer);
         }
         try {
 
@@ -307,8 +298,8 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
                     foundSep = sepMatchPattern.matcher(line).matches();
 
                     if (foundSep && inMessage) {
-                        // if ((DEEP_DEBUG) && (getLogger().isDebugEnabled())) {
-                        // getLogger().debug(this.getClass().getName() +
+                        // if ((DEEP_DEBUG) && (LOGGER.isDebugEnabled())) {
+                        // LOGGER.debug(this.getClass().getName() +
                         // " Invoking " + messAct.getClass() + " at " +
                         // prevMessageStart);
                         // }
@@ -338,8 +329,8 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
                         foundSep = sepMatchPattern.matcher(line).matches();
                         if (foundSep && inMessage) {
                             // if ((DEEP_DEBUG) &&
-                            // (getLogger().isDebugEnabled())) {
-                            // getLogger().debug(this.getClass().getName() +
+                            // (LOGGER.isDebugEnabled())) {
+                            // LOGGER.debug(this.getClass().getName() +
                             // " Invoking " + messAct.getClass() + " at " +
                             // prevMessageStart);
                             // }
@@ -373,14 +364,14 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
                 return messAct.messageAction(previousMessageSeparator, messageBuffer.toString(), prevMessageStart);
             }
         } catch (IOException ioEx) {
-            getLogger().error("Unable to write file (General I/O problem) " + mboxFile, ioEx);
+            LOGGER.error("Unable to write file (General I/O problem) " + mboxFile, ioEx);
         } catch (PatternSyntaxException e) {
-            getLogger().error("Bad regex passed " + mboxFile, e);
+            LOGGER.error("Bad regex passed " + mboxFile, e);
         } finally {
-            if ((getLogger().isDebugEnabled())) {
+            if ((LOGGER.isDebugEnabled())) {
                 String logBuffer = this.getClass().getName() + " Finished parsing " + mboxFile;
 
-                getLogger().debug(logBuffer);
+                LOGGER.debug(logBuffer);
             }
         }
         return null;
@@ -423,18 +414,18 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
         // Can we find the key first
         if (mList == null || !mList.containsKey(key)) {
             // Not initiailised so no point looking
-            if ((getLogger().isDebugEnabled())) {
+            if ((LOGGER.isDebugEnabled())) {
                 String logBuffer = this.getClass().getName() + " mList - key not found " + mboxFile;
 
-                getLogger().debug(logBuffer);
+                LOGGER.debug(logBuffer);
             }
             return foundMessage;
         }
         long messageStart = mList.get(key);
-        if ((getLogger().isDebugEnabled())) {
+        if ((LOGGER.isDebugEnabled())) {
             String logBuffer = this.getClass().getName() + " Load message starting at offset " + messageStart + " from file " + mboxFile;
 
-            getLogger().debug(logBuffer);
+            LOGGER.debug(logBuffer);
         }
         // Now try and find the position in the file
         RandomAccessFile ins = null;
@@ -451,33 +442,33 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
                 public MimeMessage messageAction(String messageSeparator, String bodyText, long messageStart) {
                     try {
                         if (key.equals(generateKeyValue(bodyText))) {
-                            getLogger().debug(this.getClass().getName() + " Located message. Returning MIME message");
+                            LOGGER.debug(this.getClass().getName() + " Located message. Returning MIME message");
                             return convertTextToMimeMessage(bodyText);
                         }
                     } catch (NoSuchAlgorithmException e) {
-                        getLogger().error("MD5 not supported! ", e);
+                        LOGGER.error("MD5 not supported! ", e);
                     }
                     return null;
                 }
             };
             foundMessage = this.parseMboxFile(ins, op);
         } catch (FileNotFoundException e) {
-            getLogger().error("Unable to save(open) file (File not found) " + mboxFile, e);
+            LOGGER.error("Unable to save(open) file (File not found) " + mboxFile, e);
         } catch (IOException e) {
-            getLogger().error("Unable to write file (General I/O problem) " + mboxFile, e);
+            LOGGER.error("Unable to write file (General I/O problem) " + mboxFile, e);
         } finally {
             if (foundMessage == null) {
-                if ((getLogger().isDebugEnabled())) {
+                if ((LOGGER.isDebugEnabled())) {
                     String logBuffer = this.getClass().getName() + " select - message not found " + mboxFile;
 
-                    getLogger().debug(logBuffer);
+                    LOGGER.debug(logBuffer);
                 }
             }
             if (ins != null)
                 try {
                     ins.close();
                 } catch (IOException e) {
-                    getLogger().error("Unable to close file (General I/O problem) " + mboxFile, e);
+                    LOGGER.error("Unable to close file (General I/O problem) " + mboxFile, e);
                 }
         }
         return foundMessage;
@@ -510,28 +501,28 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
                     try {
                         String key = generateKeyValue(bodyText);
                         mList.put(key, messageStart);
-                        if ((getLogger().isDebugEnabled())) {
-                            getLogger().debug(this.getClass().getName() + " Key " + key + " at " + messageStart);
+                        if ((LOGGER.isDebugEnabled())) {
+                            LOGGER.debug(this.getClass().getName() + " Key " + key + " at " + messageStart);
                         }
 
                     } catch (NoSuchAlgorithmException e) {
-                        getLogger().error("MD5 not supported! ", e);
+                        LOGGER.error("MD5 not supported! ", e);
                     }
                     return null;
                 }
             });
             // System.out.println("Done Load keys!");
         } catch (FileNotFoundException e) {
-            getLogger().error("Unable to save(open) file (File not found) " + mboxFile, e);
+            LOGGER.error("Unable to save(open) file (File not found) " + mboxFile, e);
             this.mList = new Hashtable<>((int) DEFAULTMLISTCAPACITY);
         } catch (IOException e) {
-            getLogger().error("Unable to write file (General I/O problem) " + mboxFile, e);
+            LOGGER.error("Unable to write file (General I/O problem) " + mboxFile, e);
         } finally {
             if (ins != null)
                 try {
                     ins.close();
                 } catch (IOException e) {
-                    getLogger().error("Unable to close file (General I/O problem) " + mboxFile, e);
+                    LOGGER.error("Unable to close file (General I/O problem) " + mboxFile, e);
                 }
         }
     }
@@ -541,10 +532,10 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
      */
     public void store(Mail mc) {
 
-        if ((getLogger().isDebugEnabled())) {
+        if ((LOGGER.isDebugEnabled())) {
             String logBuffer = this.getClass().getName() + " Will store message to file " + mboxFile;
 
-            getLogger().debug(logBuffer);
+            LOGGER.debug(logBuffer);
         }
         this.mList = null;
         // Now make up the from header
@@ -560,7 +551,7 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
             }
 
         } catch (IOException | MessagingException e) {
-            getLogger().error("Unable to parse mime message for " + mboxFile, e);
+            LOGGER.error("Unable to parse mime message for " + mboxFile, e);
         }
         // And save only the new stuff to disk
         RandomAccessFile saveFile;
@@ -572,9 +563,9 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
             saveFile.close();
 
         } catch (FileNotFoundException e) {
-            getLogger().error("Unable to save(open) file (File not found) " + mboxFile, e);
+            LOGGER.error("Unable to save(open) file (File not found) " + mboxFile, e);
         } catch (IOException e) {
-            getLogger().error("Unable to write file (General I/O problem) " + mboxFile, e);
+            LOGGER.error("Unable to write file (General I/O problem) " + mboxFile, e);
         }
     }
 
@@ -591,10 +582,10 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
             // correct for it BEFORE we return the iterator.
             findMessage(keys.iterator().next());
         }
-        if ((getLogger().isDebugEnabled())) {
+        if ((LOGGER.isDebugEnabled())) {
             String logBuffer = this.getClass().getName() + " " + keys.size() + " keys to be iterated over.";
 
-            getLogger().debug(logBuffer);
+            LOGGER.debug(logBuffer);
         }
         if (fifo)
             Collections.sort(keys); // Keys is a HashSet; impose FIFO for apps
@@ -612,16 +603,16 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
 
         MimeMessage foundMessage = findMessage(key);
         if (foundMessage == null) {
-            getLogger().error("found message is null!");
+            LOGGER.error("found message is null!");
             return null;
         }
         res = new MailImpl();
         res.setMessage(foundMessage);
         res.setName(key);
-        if ((getLogger().isDebugEnabled())) {
+        if ((LOGGER.isDebugEnabled())) {
             String logBuffer = this.getClass().getName() + " Retrieving entry for key " + key;
 
-            getLogger().debug(logBuffer);
+            LOGGER.debug(logBuffer);
         }
         return res;
     }
@@ -650,16 +641,16 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
             // So wait for a file
             while (!mBoxLock.createNewFile() && sleepCount < MAXSLEEPTIMES) {
                 try {
-                    if ((getLogger().isDebugEnabled())) {
+                    if ((LOGGER.isDebugEnabled())) {
                         String logBuffer = this.getClass().getName() + " Waiting for lock on file " + mboxFile;
 
-                        getLogger().debug(logBuffer);
+                        LOGGER.debug(logBuffer);
                     }
 
                     Thread.sleep(LOCKSLEEPDELAY);
                     sleepCount++;
                 } catch (InterruptedException e) {
-                    getLogger().error("File lock wait for " + mboxFile + " interrupted!", e);
+                    LOGGER.error("File lock wait for " + mboxFile + " interrupted!", e);
 
                 }
             }
@@ -680,7 +671,7 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
             FileUtils.forceDelete(mBoxLock);
         } catch (IOException e) {
             String logBuffer = this.getClass().getName() + " Failed to delete lock file " + lockFileName;
-            getLogger().error(logBuffer);
+            LOGGER.error(logBuffer);
         }
     }
 
@@ -688,10 +679,10 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
      * @see org.apache.james.mailrepository.api.MailRepository#remove(Collection)
      */
     public void remove(final Collection<Mail> mails) {
-        if ((getLogger().isDebugEnabled())) {
+        if ((LOGGER.isDebugEnabled())) {
             String logBuffer = this.getClass().getName() + " Removing entry for key " + mails;
 
-            getLogger().debug(logBuffer);
+            LOGGER.debug(logBuffer);
         }
         // The plan is as follows:
         // Attempt to locate the message in the file
@@ -732,9 +723,9 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
 
                         }
                     } catch (NoSuchAlgorithmException e) {
-                        getLogger().error("MD5 not supported! ", e);
+                        LOGGER.error("MD5 not supported! ", e);
                     } catch (IOException e) {
-                        getLogger().error("Unable to write file (General I/O problem) " + mboxFile, e);
+                        LOGGER.error("Unable to write file (General I/O problem) " + mboxFile, e);
                     }
                     return null;
                 }
@@ -760,9 +751,9 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
             }
 
         } catch (FileNotFoundException e) {
-            getLogger().error("Unable to save(open) file (File not found) " + mboxFile, e);
+            LOGGER.error("Unable to save(open) file (File not found) " + mboxFile, e);
         } catch (IOException e) {
-            getLogger().error("Unable to write file (General I/O problem) " + mboxFile, e);
+            LOGGER.error("Unable to write file (General I/O problem) " + mboxFile, e);
         }
     }
 
@@ -774,7 +765,7 @@ public class MBoxMailRepository implements MailRepository, LogEnabled, Configura
         try {
             lockMBox();
         } catch (Exception e) {
-            getLogger().error("Lock failed!", e);
+            LOGGER.error("Lock failed!", e);
             return; // No lock, so exit
         }
         ArrayList<Mail> keys = new ArrayList<>();

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java b/server/data/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java
index b33e71f..262bb4a 100644
--- a/server/data/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java
+++ b/server/data/data-file/src/main/java/org/apache/james/user/file/UsersFileRepository.java
@@ -33,6 +33,8 @@ import org.apache.james.repository.file.FilePersistentObjectRepository;
 import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.user.api.model.User;
 import org.apache.james.user.lib.AbstractJamesUsersRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -54,11 +56,7 @@ import org.apache.james.user.lib.AbstractJamesUsersRepository;
 @Deprecated
 @Singleton
 public class UsersFileRepository extends AbstractJamesUsersRepository {
-
-    /**
-     * Whether 'deep debugging' is turned on.
-     */
-    protected static boolean DEEP_DEBUG = false;
+    private static final Logger LOGGER = LoggerFactory.getLogger(UsersFileRepository.class);
 
     private FilePersistentObjectRepository objectRepository;
 
@@ -97,17 +95,16 @@ public class UsersFileRepository extends AbstractJamesUsersRepository {
             objectConfiguration.addProperty("[@destinationURL]", destination);
 
             objectRepository = new FilePersistentObjectRepository();
-            objectRepository.setLog(getLogger());
             objectRepository.setFileSystem(fileSystem);
             objectRepository.configure(objectConfiguration);
             objectRepository.init();
-            if (getLogger().isDebugEnabled()) {
+            if (LOGGER.isDebugEnabled()) {
                 String logBuffer = this.getClass().getName() + " created in " + destination;
-                getLogger().debug(logBuffer);
+                LOGGER.debug(logBuffer);
             }
         } catch (Exception e) {
-            if (getLogger().isErrorEnabled()) {
-                getLogger().error("Failed to initialize repository:" + e.getMessage(), e);
+            if (LOGGER.isErrorEnabled()) {
+                LOGGER.error("Failed to initialize repository:" + e.getMessage(), e);
             }
             throw e;
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java b/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java
index 1940e3b..80a8628 100644
--- a/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/domainlist/xml/XMLDomainListTest.java
@@ -34,7 +34,6 @@ import org.apache.james.domainlist.api.DomainListException;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 
@@ -82,7 +81,6 @@ public class XMLDomainListTest {
     public void testNoConfiguredDomains() throws Exception {
         List<String> domains = new ArrayList<>();
         XMLDomainList dom = new XMLDomainList(setUpDNSServer("localhost"));
-        dom.setLog(LoggerFactory.getLogger("MockLog"));
         dom.configure(setUpConfiguration(false, false, domains));
 
         assertThat(dom.getDomains()).containsOnly(DEFAULT_DOMAIN);
@@ -95,7 +93,6 @@ public class XMLDomainListTest {
         domains.add("domain2.");
 
         XMLDomainList dom = new XMLDomainList(setUpDNSServer("localhost"));
-        dom.setLog(LoggerFactory.getLogger("MockLog"));
         dom.configure(setUpConfiguration(false, false, domains));
 
         assertThat(dom.getDomains()).hasSize(3);
@@ -107,7 +104,6 @@ public class XMLDomainListTest {
         domains.add("domain1.");
 
         XMLDomainList dom = new XMLDomainList(setUpDNSServer("local"));
-        dom.setLog(LoggerFactory.getLogger("MockLog"));
         dom.configure(setUpConfiguration(true, false, domains));
 
         assertThat(dom.getDomains()).hasSize(3);
@@ -119,10 +115,8 @@ public class XMLDomainListTest {
         domains.add("domain1.");
 
         XMLDomainList dom = new XMLDomainList(setUpDNSServer("localhost"));
-        dom.setLog(LoggerFactory.getLogger("MockLog"));
         dom.configure(setUpConfiguration(true, false, domains));
 
-
         assertThat(dom.getDomains()).hasSize(2);
     }
 
@@ -134,7 +128,6 @@ public class XMLDomainListTest {
         domains.add("domain1");
 
         XMLDomainList testee = new XMLDomainList(setUpDNSServer("hostname"));
-        testee.setLog(LoggerFactory.getLogger("MockLog"));
         testee.configure(setUpConfiguration(true, false, domains));
 
         testee.addDomain("newDomain");
@@ -148,7 +141,6 @@ public class XMLDomainListTest {
         domains.add("domain1");
 
         XMLDomainList testee = new XMLDomainList(setUpDNSServer("localhost"));
-        testee.setLog(LoggerFactory.getLogger("MockLog"));
         testee.configure(setUpConfiguration(true, false, domains));
 
         testee.removeDomain("newDomain");
@@ -164,7 +156,6 @@ public class XMLDomainListTest {
         configuration.addProperty("defaultDomain", "localhost");
 
         XMLDomainList testee = new XMLDomainList(setUpDNSServer("localhost"));
-        testee.setLog(LoggerFactory.getLogger("MockLog"));
         testee.configure(configuration);
 
         assertThat(testee.getDomainListInternal()).hasSize(3);

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java b/server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java
index 16a17ec..2c154bd 100644
--- a/server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/mailrepository/FileMailRepositoryTest.java
@@ -23,7 +23,6 @@ import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.apache.james.filesystem.api.mock.MockFileSystem;
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mailrepository.file.FileMailRepository;
-import org.slf4j.LoggerFactory;
 
 public class FileMailRepositoryTest extends AbstractMailRepositoryTest {
 
@@ -38,7 +37,6 @@ public class FileMailRepositoryTest extends AbstractMailRepositoryTest {
         MockFileSystem fs = new MockFileSystem();
         FileMailRepository mr = new FileMailRepository();
         mr.setFileSystem(fs);
-        mr.setLog(LoggerFactory.getLogger("MockLog"));
         DefaultConfigurationBuilder defaultConfiguration = new DefaultConfigurationBuilder();
         defaultConfiguration.addProperty("[@destinationURL]", "file://target/var/mr");
         defaultConfiguration.addProperty("[@type]", "MAIL");

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-file/src/test/java/org/apache/james/mailrepository/MBoxMailRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/mailrepository/MBoxMailRepositoryTest.java b/server/data/data-file/src/test/java/org/apache/james/mailrepository/MBoxMailRepositoryTest.java
index e8ff56d..3cbb431 100644
--- a/server/data/data-file/src/test/java/org/apache/james/mailrepository/MBoxMailRepositoryTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/mailrepository/MBoxMailRepositoryTest.java
@@ -18,16 +18,17 @@
  ****************************************************************/
 package org.apache.james.mailrepository;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import java.io.File;
 import java.util.Iterator;
+
 import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.apache.james.filesystem.api.mock.MockFileSystem;
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mailrepository.file.MBoxMailRepository;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 import org.junit.Test;
-import org.slf4j.LoggerFactory;
 
 /**
  * NOTE this test *WAS* disabled because MBoxMailRepository does not currently
@@ -48,7 +49,6 @@ public class MBoxMailRepositoryTest {
 
         defaultConfiguration.addProperty("[@destinationURL]", mboxPath);
         defaultConfiguration.addProperty("[@type]", "MAIL");
-        mr.setLog(LoggerFactory.getLogger("MockLog"));
         mr.configure(defaultConfiguration);
 
         return mr;

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
index 4d3aba6..bac9f98 100644
--- a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLRecipientRewriteTableTest.java
@@ -30,7 +30,6 @@ import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.rrt.lib.MappingsImpl.Builder;
 import org.junit.Before;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 
@@ -50,9 +49,7 @@ public class XMLRecipientRewriteTableTest extends AbstractRecipientRewriteTableT
 
     @Override
     protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
-        XMLRecipientRewriteTable localVirtualUserTable = new XMLRecipientRewriteTable();
-        localVirtualUserTable.setLog(LoggerFactory.getLogger("MockLog"));
-        return localVirtualUserTable;
+        return new XMLRecipientRewriteTable();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
index f3d80a4..580f928 100644
--- a/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
+++ b/server/data/data-file/src/test/java/org/apache/james/rrt/file/XMLStepdefs.java
@@ -20,7 +20,6 @@ package org.apache.james.rrt.file;
 
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.RewriteTablesStepdefs;
-import org.slf4j.LoggerFactory;
 
 import cucumber.api.java.Before;
 
@@ -38,8 +37,6 @@ public class XMLStepdefs {
     }
 
     private AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
-        XMLRecipientRewriteTable localVirtualUserTable = new XMLRecipientRewriteTable();
-        localVirtualUserTable.setLog(LoggerFactory.getLogger("MockLog"));
-        return localVirtualUserTable;
+        return new XMLRecipientRewriteTable();
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java b/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java
index 59e6661..79c98b6 100644
--- a/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java
+++ b/server/data/data-file/src/test/java/org/apache/james/user/file/UsersFileRepositoryTest.java
@@ -37,7 +37,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
-import org.slf4j.LoggerFactory;
 
 /**
  * Test basic behaviors of UsersFileRepository
@@ -90,7 +89,6 @@ public class UsersFileRepositoryTest extends AbstractUsersRepositoryTest {
         UsersFileRepository res = new UsersFileRepository();
 
         res.setFileSystem(fs);
-        res.setLog(LoggerFactory.getLogger("MockLog"));
         res.configure(configuration);
         res.init();
         return res;

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java b/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
index 64104b1..e78ba41 100644
--- a/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
+++ b/server/data/data-hbase/src/test/java/org/apache/james/domainlist/hbase/HBaseDomainListTest.java
@@ -28,7 +28,6 @@ import org.apache.james.system.hbase.TablePool;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
-import org.slf4j.LoggerFactory;
 
 /**
  * Tests for the HBase DomainList implementation.
@@ -51,7 +50,6 @@ public class HBaseDomainListTest extends AbstractDomainListTest {
     @Override
     protected DomainList createDomainList() {
         HBaseDomainList domainList = new HBaseDomainList(getDNSServer("localhost"));
-        domainList.setLog(LoggerFactory.getLogger("MockLog"));
         domainList.setAutoDetect(false);
         domainList.setAutoDetectIP(false);
         return domainList;

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTableTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTableTest.java b/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTableTest.java
index e06b0b0..04dc114 100644
--- a/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTableTest.java
+++ b/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseRecipientRewriteTableTest.java
@@ -27,7 +27,6 @@ import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTableTest;
 import org.apache.james.system.hbase.TablePool;
 import org.junit.Before;
-import org.slf4j.LoggerFactory;
 
 /**
  * Tests for the HBase RecipientRewriteTable implementation.
@@ -50,7 +49,6 @@ public class HBaseRecipientRewriteTableTest extends AbstractRecipientRewriteTabl
     @Override
     protected AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
         HBaseRecipientRewriteTable rrt = new HBaseRecipientRewriteTable();
-        rrt.setLog(LoggerFactory.getLogger("MockLog"));
         rrt.configure(new DefaultConfigurationBuilder());
         return rrt;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java b/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java
index 65d8327..e4e5b95 100644
--- a/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java
+++ b/server/data/data-hbase/src/test/java/org/apache/james/rrt/hbase/HBaseStepdefs.java
@@ -28,7 +28,6 @@ import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
 import org.apache.james.rrt.lib.RewriteTablesStepdefs;
 import org.apache.james.system.hbase.TablePool;
 import org.apache.james.user.hbase.def.HUsersRepository;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 
@@ -64,7 +63,6 @@ public class HBaseStepdefs {
 
     private AbstractRecipientRewriteTable getRecipientRewriteTable() throws Exception {
         HBaseRecipientRewriteTable rrt = new HBaseRecipientRewriteTable();
-        rrt.setLog(LoggerFactory.getLogger("MockLog"));
         rrt.configure(new DefaultConfigurationBuilder());
         return rrt;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-hbase/src/test/java/org/apache/james/user/hbase/HBaseUsersRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-hbase/src/test/java/org/apache/james/user/hbase/HBaseUsersRepositoryTest.java b/server/data/data-hbase/src/test/java/org/apache/james/user/hbase/HBaseUsersRepositoryTest.java
index 44969a9..8267076 100644
--- a/server/data/data-hbase/src/test/java/org/apache/james/user/hbase/HBaseUsersRepositoryTest.java
+++ b/server/data/data-hbase/src/test/java/org/apache/james/user/hbase/HBaseUsersRepositoryTest.java
@@ -31,7 +31,6 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
-import org.slf4j.LoggerFactory;
 
 /**
  * Tests for the HBase UsersRepository implementation.
@@ -77,7 +76,6 @@ public class HBaseUsersRepositoryTest extends AbstractUsersRepositoryTest {
     @Override
     protected AbstractUsersRepository getUsersRepository() throws Exception {
         HBaseUsersRepository userRepository = new HBaseUsersRepository();
-        userRepository.setLog(LoggerFactory.getLogger("MockLog"));
         userRepository.configure(new DefaultConfigurationBuilder());
         return userRepository;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jcr/src/main/java/org/apache/james/user/jcr/JCRUsersRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jcr/src/main/java/org/apache/james/user/jcr/JCRUsersRepository.java b/server/data/data-jcr/src/main/java/org/apache/james/user/jcr/JCRUsersRepository.java
index e45df56..2029201 100644
--- a/server/data/data-jcr/src/main/java/org/apache/james/user/jcr/JCRUsersRepository.java
+++ b/server/data/data-jcr/src/main/java/org/apache/james/user/jcr/JCRUsersRepository.java
@@ -42,12 +42,15 @@ import org.apache.james.user.api.UsersRepositoryException;
 import org.apache.james.user.api.model.User;
 import org.apache.james.user.jcr.model.JCRUser;
 import org.apache.james.user.lib.AbstractUsersRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * {@link UsersRepository} implementation which stores users to a JCR
  * {@link Repository}
  */
 public class JCRUsersRepository extends AbstractUsersRepository {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JCRUsersRepository.class);
 
     // TODO: Add namespacing
     private static final String PASSWD_PROPERTY = "passwd";
@@ -112,8 +115,8 @@ public class JCRUsersRepository extends AbstractUsersRepository {
             }
 
         } catch (RepositoryException e) {
-            if (getLogger().isInfoEnabled()) {
-                getLogger().info("Failed to add user: " + username, e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Failed to add user: " + username, e);
             }
             user = null;
         }
@@ -158,7 +161,7 @@ public class JCRUsersRepository extends AbstractUsersRepository {
                         session.save();
                     } catch (PathNotFoundException e) {
                         // user not found
-                        getLogger().debug("User not found");
+                        LOGGER.debug("User not found");
                         throw new UsersRepositoryException("User " + user.getUserName() + " not exist");
                     }
                 } finally {
@@ -166,8 +169,8 @@ public class JCRUsersRepository extends AbstractUsersRepository {
                 }
 
             } catch (RepositoryException e) {
-                if (getLogger().isInfoEnabled()) {
-                    getLogger().info("Failed to add user: " + userName, e);
+                if (LOGGER.isInfoEnabled()) {
+                    LOGGER.info("Failed to add user: " + userName, e);
                 }
                 throw new UsersRepositoryException("Failed to add user: " + userName, e);
 
@@ -200,8 +203,8 @@ public class JCRUsersRepository extends AbstractUsersRepository {
             }
 
         } catch (RepositoryException e) {
-            if (getLogger().isInfoEnabled()) {
-                getLogger().info("Failed to remove user: " + username, e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Failed to remove user: " + username, e);
             }
             throw new UsersRepositoryException("Failed to remove user: " + username, e);
 
@@ -228,8 +231,8 @@ public class JCRUsersRepository extends AbstractUsersRepository {
                 session.logout();
             }
         } catch (PathNotFoundException e) {
-            if (getLogger().isDebugEnabled()) {
-                getLogger().debug("User not found: " + name, e);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug("User not found: " + name, e);
             }
         } catch (RepositoryException e) {
             throw new UsersRepositoryException("Failed to search for user: " + name, e);
@@ -271,7 +274,7 @@ public class JCRUsersRepository extends AbstractUsersRepository {
                     return current.equals(hashPassword);
                 } catch (PathNotFoundException e) {
                     // user not found
-                    getLogger().debug("User not found");
+                    LOGGER.debug("User not found");
                     return false;
                 }
             } finally {
@@ -279,8 +282,8 @@ public class JCRUsersRepository extends AbstractUsersRepository {
             }
 
         } catch (RepositoryException e) {
-            if (getLogger().isInfoEnabled()) {
-                getLogger().info("Failed to search user: " + username, e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Failed to search user: " + username, e);
             }
             throw new UsersRepositoryException("Failed to search for user: " + username, e);
 
@@ -312,8 +315,8 @@ public class JCRUsersRepository extends AbstractUsersRepository {
                 session.logout();
             }
         } catch (RepositoryException e) {
-            if (getLogger().isInfoEnabled()) {
-                getLogger().info("Failed to count user", e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Failed to count user", e);
             }
             throw new UsersRepositoryException("Failed to count user", e);
 
@@ -343,18 +346,18 @@ public class JCRUsersRepository extends AbstractUsersRepository {
                             final String userName = node.getProperty(USERNAME_PROPERTY).getString();
                             userNames.add(userName);
                         } catch (PathNotFoundException e) {
-                            getLogger().info("Node missing user name. Ignoring.");
+                            LOGGER.info("Node missing user name. Ignoring.");
                         }
                     }
                 } catch (PathNotFoundException e) {
-                    getLogger().info("Path not found. Forgotten to setup the repository?");
+                    LOGGER.info("Path not found. Forgotten to setup the repository?");
                 }
             } finally {
                 session.logout();
             }
         } catch (RepositoryException e) {
-            if (getLogger().isInfoEnabled()) {
-                getLogger().info("Failed to list users", e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Failed to list users", e);
             }
             throw new UsersRepositoryException("Failed to list users", e);
         }
@@ -375,7 +378,7 @@ public class JCRUsersRepository extends AbstractUsersRepository {
                 final Node rootNode = session.getRootNode();
                 try {
                     rootNode.getNode(path);
-                    getLogger().info("User already exists");
+                    LOGGER.info("User already exists");
                     throw new UsersRepositoryException("User " + lowerCasedUsername + " already exists");
                 } catch (PathNotFoundException e) {
                     // user does not exist
@@ -405,8 +408,8 @@ public class JCRUsersRepository extends AbstractUsersRepository {
             }
 
         } catch (RepositoryException e) {
-            if (getLogger().isInfoEnabled()) {
-                getLogger().info("Failed to add user: " + lowerCasedUsername, e);
+            if (LOGGER.isInfoEnabled()) {
+                LOGGER.info("Failed to add user: " + lowerCasedUsername, e);
             }
             throw new UsersRepositoryException("Failed to add user: " + lowerCasedUsername, e);
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jcr/src/test/java/org/apache/james/user/jcr/JcrUserRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jcr/src/test/java/org/apache/james/user/jcr/JcrUserRepositoryTest.java b/server/data/data-jcr/src/test/java/org/apache/james/user/jcr/JcrUserRepositoryTest.java
index 3a13555..d9b62d7 100644
--- a/server/data/data-jcr/src/test/java/org/apache/james/user/jcr/JcrUserRepositoryTest.java
+++ b/server/data/data-jcr/src/test/java/org/apache/james/user/jcr/JcrUserRepositoryTest.java
@@ -29,7 +29,6 @@ import org.apache.james.user.lib.AbstractUsersRepository;
 import org.apache.james.user.lib.AbstractUsersRepositoryTest;
 import org.junit.After;
 import org.junit.Before;
-import org.slf4j.LoggerFactory;
 import org.xml.sax.InputSource;
 
 import com.google.common.base.Throwables;
@@ -47,7 +46,6 @@ public class JcrUserRepositoryTest extends AbstractUsersRepositoryTest {
         config.addProperty("username", "admin");
         config.addProperty("password", "test");
         repos.configure(config);
-        repos.setLog(LoggerFactory.getLogger("MockLog"));
         return repos;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/16b36cbd/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
----------------------------------------------------------------------
diff --git a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
index 20065b1..07f6e8a 100644
--- a/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
+++ b/server/data/data-jdbc/src/main/java/org/apache/james/mailrepository/jdbc/JDBCMailRepository.java
@@ -61,6 +61,8 @@ import org.apache.james.util.sql.JDBCUtil;
 import org.apache.james.util.sql.SqlResources;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Implementation of a MailRepository on a database.
@@ -90,6 +92,7 @@ import org.apache.mailet.MailAddress;
  *          Dec 2010) $
  */
 public class JDBCMailRepository extends AbstractMailRepository {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JDBCMailRepository.class);
 
     /**
      * The table name parsed from the destination URL
@@ -160,8 +163,8 @@ public class JDBCMailRepository extends AbstractMailRepository {
 
     protected void doConfigure(HierarchicalConfiguration configuration) throws ConfigurationException {
         super.doConfigure(configuration);
-        if (getLogger().isDebugEnabled()) {
-            getLogger().debug(this.getClass().getName() + ".configure()");
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug(this.getClass().getName() + ".configure()");
         }
         destination = configuration.getString("[@destinationURL]");
 
@@ -206,9 +209,9 @@ public class JDBCMailRepository extends AbstractMailRepository {
             }
         }
 
-        if (getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             String logBuffer = "Parsed URL: table = '" + tableName + "', repositoryName = '" + repositoryName + "'";
-            getLogger().debug(logBuffer);
+            LOGGER.debug(logBuffer);
         }
 
         inMemorySizeLimit = configuration.getInt("inMemorySizeLimit", 409600000);
@@ -235,8 +238,8 @@ public class JDBCMailRepository extends AbstractMailRepository {
     @PostConstruct
     public void init() throws Exception {
         StringBuffer logBuffer;
-        if (getLogger().isDebugEnabled()) {
-            getLogger().debug(this.getClass().getName() + ".initialize()");
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug(this.getClass().getName() + ".initialize()");
         }
 
         try {
@@ -248,29 +251,28 @@ public class JDBCMailRepository extends AbstractMailRepository {
                 streamConfiguration.addProperty("[@destinationURL]", filestore);
 
                 sr = new FilePersistentStreamRepository();
-                sr.setLog(getLogger());
                 sr.setFileSystem(fileSystem);
                 sr.configure(streamConfiguration);
                 sr.init();
 
-                if (getLogger().isDebugEnabled()) {
-                    getLogger().debug("Got filestore for JdbcMailRepository: " + filestore);
+                if (LOGGER.isDebugEnabled()) {
+                    LOGGER.debug("Got filestore for JdbcMailRepository: " + filestore);
                 }
             }
 
-            if (getLogger().isDebugEnabled()) {
+            if (LOGGER.isDebugEnabled()) {
                 String logBuf = this.getClass().getName() + " created according to " + destination;
-                getLogger().debug(logBuf);
+                LOGGER.debug(logBuf);
             }
         } catch (Exception e) {
             final String message = "Failed to retrieve Store component:" + e.getMessage();
-            getLogger().error(message, e);
+            LOGGER.error(message, e);
             throw new ConfigurationException(message, e);
         }
 
         theJDBCUtil = new JDBCUtil() {
             protected void delegatedLog(String logString) {
-                JDBCMailRepository.this.getLogger().warn("JDBCMailRepository: " + logString);
+                JDBCMailRepository.this.LOGGER.warn("JDBCMailRepository: " + logString);
             }
         };
 
@@ -285,13 +287,13 @@ public class JDBCMailRepository extends AbstractMailRepository {
             try {
                 sqlFile = fileSystem.getResource(sqlFileName);
             } catch (Exception e) {
-                getLogger().error(e.getMessage(), e);
+                LOGGER.error(e.getMessage(), e);
                 throw e;
             }
 
-            if (getLogger().isDebugEnabled()) {
+            if (LOGGER.isDebugEnabled()) {
                 logBuffer = new StringBuffer(128).append("Reading SQL resources from file: ").append(sqlFileName).append(", section ").append(this.getClass().getName()).append(".");
-                getLogger().debug(logBuffer.toString());
+                LOGGER.debug(logBuffer.toString());
             }
 
             // Build the statement parameters
@@ -316,9 +318,9 @@ public class JDBCMailRepository extends AbstractMailRepository {
                 createStatement = conn.prepareStatement(sqlQueries.getSqlString("createTable", true));
                 createStatement.execute();
 
-                if (getLogger().isInfoEnabled()) {
+                if (LOGGER.isInfoEnabled()) {
                     logBuffer = new StringBuffer(64).append("JdbcMailRepository: Created table '").append(tableName).append("'.");
-                    getLogger().info(logBuffer.toString());
+                    LOGGER.info(logBuffer.toString());
                 }
             }
 
@@ -367,29 +369,29 @@ public class JDBCMailRepository extends AbstractMailRepository {
 
         if (hasUpdateMessageAttributesSQL && !hasRetrieveMessageAttributesSQL) {
             logBuffer.append("JDBC Mail Attributes support was activated for update but not for retrieval" + "(found 'updateMessageAttributesSQL' but not 'retrieveMessageAttributesSQL'" + "in table '").append(tableName).append("').");
-            getLogger().error(logBuffer.toString());
+            LOGGER.error(logBuffer.toString());
             throw new SQLException(logBuffer.toString());
         }
         if (!hasUpdateMessageAttributesSQL && hasRetrieveMessageAttributesSQL) {
             logBuffer.append("JDBC Mail Attributes support was activated for retrieval but not for update" + "(found 'retrieveMessageAttributesSQL' but not 'updateMessageAttributesSQL'" + "in table '").append(tableName).append("'.");
-            getLogger().error(logBuffer.toString());
+            LOGGER.error(logBuffer.toString());
             throw new SQLException(logBuffer.toString());
         }
         if (!hasMessageAttributesColumn && (hasUpdateMessageAttributesSQL || hasRetrieveMessageAttributesSQL)) {
             logBuffer.append("JDBC Mail Attributes support was activated but column '").append(attributesColumnName).append("' is missing in table '").append(tableName).append("'.");
-            getLogger().error(logBuffer.toString());
+            LOGGER.error(logBuffer.toString());
             throw new SQLException(logBuffer.toString());
         }
         if (hasUpdateMessageAttributesSQL && hasRetrieveMessageAttributesSQL) {
             jdbcMailAttributesReady = true;
-            if (getLogger().isInfoEnabled()) {
+            if (LOGGER.isInfoEnabled()) {
                 logBuffer.append("JDBC Mail Attributes support ready.");
-                getLogger().info(logBuffer.toString());
+                LOGGER.info(logBuffer.toString());
             }
         } else {
             jdbcMailAttributesReady = false;
             logBuffer.append("JDBC Mail Attributes support not activated. " + "Missing both 'updateMessageAttributesSQL' " + "and 'retrieveMessageAttributesSQL' " + "statements for table '").append(tableName).append("' in sqlResources.xml. ").append("Will not persist in the repository '").append(repositoryName).append("'.");
-            getLogger().warn(logBuffer.toString());
+            LOGGER.warn(logBuffer.toString());
         }
     }
 
@@ -509,14 +511,14 @@ public class JDBCMailRepository extends AbstractMailRepository {
                                     oos.close();
                                 }
                             } catch (IOException ioe) {
-                                getLogger().debug("JDBCMailRepository: Unexpected exception while closing output stream.", ioe);
+                                LOGGER.debug("JDBCMailRepository: Unexpected exception while closing output stream.", ioe);
                             }
                         }
                         updateMessageAttr.setString(2, mc.getName());
                         updateMessageAttr.setString(3, repositoryName);
                         updateMessageAttr.execute();
                     } catch (SQLException sqle) {
-                        getLogger().info("JDBCMailRepository: Trying to update mail attributes failed.", sqle);
+                        LOGGER.info("JDBCMailRepository: Trying to update mail attributes failed.", sqle);
 
                     } finally {
                         theJDBCUtil.closeJDBCStatement(updateMessageAttr);
@@ -591,7 +593,7 @@ public class JDBCMailRepository extends AbstractMailRepository {
                                     oos.close();
                                 }
                             } catch (IOException ioe) {
-                                getLogger().debug("JDBCMailRepository: Unexpected exception while closing output stream.", ioe);
+                                LOGGER.debug("JDBCMailRepository: Unexpected exception while closing output stream.", ioe);
                             }
                         }
                     }
@@ -605,7 +607,7 @@ public class JDBCMailRepository extends AbstractMailRepository {
             conn.commit();
             conn.setAutoCommit(true);
         } catch (SQLException e) {
-            getLogger().debug("Failed to store internal mail", e);
+            LOGGER.debug("Failed to store internal mail", e);
             throw new IOException(e.getMessage());
         } finally {
             theJDBCUtil.closeJDBCConnection(conn);
@@ -637,9 +639,9 @@ public class JDBCMailRepository extends AbstractMailRepository {
                 System.err.println("ran the query " + key);
             }
             if (!rsMessage.next()) {
-                if (getLogger().isDebugEnabled()) {
+                if (LOGGER.isDebugEnabled()) {
                     String debugBuffer = "Did not find a record " + key + " in " + repositoryName;
-                    getLogger().debug(debugBuffer);
+                    LOGGER.debug(debugBuffer);
                 }
                 return null;
             }
@@ -674,20 +676,20 @@ public class JDBCMailRepository extends AbstractMailRepository {
                                 ois.close();
                             }
                         } catch (IOException ioe) {
-                            if (getLogger().isDebugEnabled()) {
+                            if (LOGGER.isDebugEnabled()) {
                                 String debugBuffer = "Exception reading attributes " + key + " in " + repositoryName;
-                                getLogger().debug(debugBuffer, ioe);
+                                LOGGER.debug(debugBuffer, ioe);
                             }
                         }
                     } else {
-                        if (getLogger().isDebugEnabled()) {
+                        if (LOGGER.isDebugEnabled()) {
                             String debugBuffer = "Did not find a record (attributes) " + key + " in " + repositoryName;
-                            getLogger().debug(debugBuffer);
+                            LOGGER.debug(debugBuffer);
                         }
                     }
                 } catch (SQLException sqle) {
                     String errorBuffer = "Error retrieving message" + sqle.getMessage() + sqle.getErrorCode() + sqle.getSQLState() + sqle.getNextException();
-                    getLogger().error(errorBuffer);
+                    LOGGER.error(errorBuffer);
                 } finally {
                     theJDBCUtil.closeJDBCResultSet(rsMessageAttr);
                     theJDBCUtil.closeJDBCStatement(retrieveMessageAttr);
@@ -721,8 +723,8 @@ public class JDBCMailRepository extends AbstractMailRepository {
             return mc;
         } catch (SQLException sqle) {
             String errorBuffer = "Error retrieving message" + sqle.getMessage() + sqle.getErrorCode() + sqle.getSQLState() + sqle.getNextException();
-            getLogger().error(errorBuffer);
-            getLogger().debug("Failed to retrieve mail", sqle);
+            LOGGER.error(errorBuffer);
+            LOGGER.debug("Failed to retrieve mail", sqle);
             throw new MessagingException("Exception while retrieving mail: " + sqle.getMessage(), sqle);
         } catch (Exception me) {
             throw new MessagingException("Exception while retrieving mail: " + me.getMessage(), me);


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[06/38] james-project git commit: JAMES-2114 MDC logging context for SMTP LMTP and POP3

Posted by bt...@apache.org.
JAMES-2114 MDC logging context for SMTP LMTP and POP3


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/8d4254a9
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/8d4254a9
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/8d4254a9

Branch: refs/heads/master
Commit: 8d4254a94757100389c1869a9fbbf8bd2cadfb97
Parents: f998640
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 11:49:03 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:42 2017 +0700

----------------------------------------------------------------------
 .../apache/james/protocols/api/Protocol.java    |   1 +
 .../james/protocols/api/ProtocolImpl.java       |   2 +-
 protocols/netty/pom.xml                         |   4 +
 .../netty/BasicChannelUpstreamHandler.java      | 163 ++++++++++---------
 .../protocols/netty/ProtocolMDCContext.java     |  71 ++++++++
 protocols/pom.xml                               |   5 +
 .../james/protocols/pop3/POP3Protocol.java      |   6 +-
 .../james/protocols/smtp/SMTPProtocol.java      |   4 +
 8 files changed, 179 insertions(+), 77 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/8d4254a9/protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java b/protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java
index 551fda2..23e7341 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java
@@ -26,6 +26,7 @@ import org.slf4j.Logger;
  * Define a protocol
  */
 public interface Protocol {
+    String getName();
 
     /**
      * Return the {@link ProtocolHandlerChain} which is defined for the {@link Protocol}

http://git-wip-us.apache.org/repos/asf/james-project/blob/8d4254a9/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
index 003aed4..a010c54 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
@@ -26,7 +26,7 @@ import org.slf4j.Logger;
  * Basic {@link Protocol} implementation 
  *
  */
-public class ProtocolImpl implements Protocol{
+public abstract class ProtocolImpl implements Protocol{
     private final ProtocolHandlerChain chain;
     private final ProtocolConfiguration config;
     protected final Logger logger;

http://git-wip-us.apache.org/repos/asf/james-project/blob/8d4254a9/protocols/netty/pom.xml
----------------------------------------------------------------------
diff --git a/protocols/netty/pom.xml b/protocols/netty/pom.xml
index e1e0588..3d68079 100644
--- a/protocols/netty/pom.xml
+++ b/protocols/netty/pom.xml
@@ -39,6 +39,10 @@
             <artifactId>protocols-api</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>james-server-util-java8</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/8d4254a9/protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelUpstreamHandler.java
----------------------------------------------------------------------
diff --git a/protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelUpstreamHandler.java b/protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelUpstreamHandler.java
index 2b7c481..16d43cc 100644
--- a/protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelUpstreamHandler.java
+++ b/protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelUpstreamHandler.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.protocols.netty;
 
+import java.io.Closeable;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -69,8 +70,10 @@ public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
 
     @Override
     public void channelBound(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
-        ctx.setAttachment(createSession(ctx));
-        super.channelBound(ctx, e);
+        try (Closeable closeable = ProtocolMDCContext.from(protocol, ctx)) {
+            ctx.setAttachment(createSession(ctx));
+            super.channelBound(ctx, e);
+        }
     }
 
 
@@ -81,32 +84,34 @@ public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
     @SuppressWarnings({ "unchecked", "rawtypes" })
     @Override
     public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
-        List<ConnectHandler> connectHandlers = chain.getHandlers(ConnectHandler.class);
-        List<ProtocolHandlerResultHandler> resultHandlers = chain.getHandlers(ProtocolHandlerResultHandler.class);
-        ProtocolSession session = (ProtocolSession) ctx.getAttachment();
-        session.getLogger().info("Connection established from " + session.getRemoteAddress().getAddress().getHostAddress());
-        if (connectHandlers != null) {
-            for (ConnectHandler cHandler : connectHandlers) {
-                long start = System.currentTimeMillis();
-                Response response = cHandler.onConnect(session);
-                long executionTime = System.currentTimeMillis() - start;
-
-                for (ProtocolHandlerResultHandler resultHandler : resultHandlers) {
-                    // Disable till PROTOCOLS-37 is implemented
-                    if (response instanceof FutureResponse) {
-                        session.getLogger().debug("ProtocolHandlerResultHandler are not supported for FutureResponse yet");
-                        break;
+        try (Closeable closeable = ProtocolMDCContext.from(protocol, ctx)) {
+            List<ConnectHandler> connectHandlers = chain.getHandlers(ConnectHandler.class);
+            List<ProtocolHandlerResultHandler> resultHandlers = chain.getHandlers(ProtocolHandlerResultHandler.class);
+            ProtocolSession session = (ProtocolSession) ctx.getAttachment();
+            session.getLogger().info("Connection established from " + session.getRemoteAddress().getAddress().getHostAddress());
+            if (connectHandlers != null) {
+                for (ConnectHandler cHandler : connectHandlers) {
+                    long start = System.currentTimeMillis();
+                    Response response = cHandler.onConnect(session);
+                    long executionTime = System.currentTimeMillis() - start;
+
+                    for (ProtocolHandlerResultHandler resultHandler : resultHandlers) {
+                        // Disable till PROTOCOLS-37 is implemented
+                        if (response instanceof FutureResponse) {
+                            session.getLogger().debug("ProtocolHandlerResultHandler are not supported for FutureResponse yet");
+                            break;
+                        }
+                        resultHandler.onResponse(session, response, executionTime, cHandler);
+                    }
+                    if (response != null) {
+                        // TODO: This kind of sucks but I was able to come up with something more elegant here
+                        ((ProtocolSessionImpl) session).getProtocolTransport().writeResponse(response, session);
                     }
-                    resultHandler.onResponse(session, response, executionTime, cHandler);
-                }
-                if (response != null) {
-                    // TODO: This kind of sucks but I was able to come up with something more elegant here
-                    ((ProtocolSessionImpl) session).getProtocolTransport().writeResponse(response, session);
-                }
 
+                }
             }
+            super.channelConnected(ctx, e);
         }
-        super.channelConnected(ctx, e);
     }
 
 
@@ -114,14 +119,16 @@ public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
     @SuppressWarnings({ "rawtypes", "unchecked" })
 	@Override
     public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
-        List<DisconnectHandler> connectHandlers = chain.getHandlers(DisconnectHandler.class);
-        ProtocolSession session = (ProtocolSession) ctx.getAttachment();
-        if (connectHandlers != null) {
-            for (DisconnectHandler connectHandler : connectHandlers) {
-                connectHandler.onDisconnect(session);
+        try (Closeable closeable = ProtocolMDCContext.from(protocol, ctx)) {
+            List<DisconnectHandler> connectHandlers = chain.getHandlers(DisconnectHandler.class);
+            ProtocolSession session = (ProtocolSession) ctx.getAttachment();
+            if (connectHandlers != null) {
+                for (DisconnectHandler connectHandler : connectHandlers) {
+                    connectHandler.onDisconnect(session);
+                }
             }
+            super.channelDisconnected(ctx, e);
         }
-        super.channelDisconnected(ctx, e);
     }
 
 
@@ -131,45 +138,49 @@ public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
     @SuppressWarnings({ "unchecked", "rawtypes" })
     @Override
     public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
-        ProtocolSession pSession = (ProtocolSession) ctx.getAttachment();
-        LinkedList<LineHandler> lineHandlers = chain.getHandlers(LineHandler.class);
-        LinkedList<ProtocolHandlerResultHandler> resultHandlers = chain.getHandlers(ProtocolHandlerResultHandler.class);
+        try (Closeable closeable = ProtocolMDCContext.from(protocol, ctx)) {
+            ProtocolSession pSession = (ProtocolSession) ctx.getAttachment();
+            LinkedList<LineHandler> lineHandlers = chain.getHandlers(LineHandler.class);
+            LinkedList<ProtocolHandlerResultHandler> resultHandlers = chain.getHandlers(ProtocolHandlerResultHandler.class);
 
-        
-        if (lineHandlers.size() > 0) {
-        
-            ChannelBuffer buf = (ChannelBuffer) e.getMessage();      
-            LineHandler lHandler=  (LineHandler) lineHandlers.getLast();
-            long start = System.currentTimeMillis();            
-            Response response = lHandler.onLine(pSession,buf.toByteBuffer());
-            long executionTime = System.currentTimeMillis() - start;
-
-            for (ProtocolHandlerResultHandler resultHandler : resultHandlers) {
-                // Disable till PROTOCOLS-37 is implemented
-                if (response instanceof FutureResponse) {
-                    pSession.getLogger().debug("ProtocolHandlerResultHandler are not supported for FutureResponse yet");
-                    break;
+
+            if (lineHandlers.size() > 0) {
+
+                ChannelBuffer buf = (ChannelBuffer) e.getMessage();
+                LineHandler lHandler = (LineHandler) lineHandlers.getLast();
+                long start = System.currentTimeMillis();
+                Response response = lHandler.onLine(pSession, buf.toByteBuffer());
+                long executionTime = System.currentTimeMillis() - start;
+
+                for (ProtocolHandlerResultHandler resultHandler : resultHandlers) {
+                    // Disable till PROTOCOLS-37 is implemented
+                    if (response instanceof FutureResponse) {
+                        pSession.getLogger().debug("ProtocolHandlerResultHandler are not supported for FutureResponse yet");
+                        break;
+                    }
+                    response = resultHandler.onResponse(pSession, response, executionTime, lHandler);
                 }
-                response = resultHandler.onResponse(pSession, response, executionTime, lHandler);
-            }
-            if (response != null) {
-                // TODO: This kind of sucks but I was able to come up with something more elegant here
-                ((ProtocolSessionImpl)pSession).getProtocolTransport().writeResponse(response, pSession);
+                if (response != null) {
+                    // TODO: This kind of sucks but I was able to come up with something more elegant here
+                    ((ProtocolSessionImpl) pSession).getProtocolTransport().writeResponse(response, pSession);
+                }
+
             }
 
+            super.messageReceived(ctx, e);
         }
-        
-        super.messageReceived(ctx, e);
     }
 
 
     @Override
     public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
-        ProtocolSession session = (ProtocolSession) ctx.getAttachment();
-        getLogger(session).info("Connection closed for " + session.getRemoteAddress().getAddress().getHostAddress());
-        cleanup(ctx);
+        try (Closeable closeable = ProtocolMDCContext.from(protocol, ctx)) {
+            ProtocolSession session = (ProtocolSession) ctx.getAttachment();
+            getLogger(session).info("Connection closed for " + session.getRemoteAddress().getAddress().getHostAddress());
+            cleanup(ctx);
 
-        super.channelClosed(ctx, e);
+            super.channelClosed(ctx, e);
+        }
     }
 
     /**
@@ -202,26 +213,28 @@ public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
 
     @Override
     public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
-        Channel channel = ctx.getChannel();
-        ProtocolSession session = (ProtocolSession) ctx.getAttachment();
-        if (e.getCause() instanceof TooLongFrameException && session != null) {
-            Response r = session.newLineTooLongResponse();
-            ProtocolTransport transport = ((ProtocolSessionImpl)session).getProtocolTransport();
-            if (r != null)  {
-                transport.writeResponse(r, session);
-            }
-        } else {
-            if (channel.isConnected() && session != null) {
-                ProtocolTransport transport = ((ProtocolSessionImpl)session).getProtocolTransport();
-
-                Response r = session.newFatalErrorResponse();
+        try (Closeable closeable = ProtocolMDCContext.from(protocol, ctx)) {
+            Channel channel = ctx.getChannel();
+            ProtocolSession session = (ProtocolSession) ctx.getAttachment();
+            if (e.getCause() instanceof TooLongFrameException && session != null) {
+                Response r = session.newLineTooLongResponse();
+                ProtocolTransport transport = ((ProtocolSessionImpl) session).getProtocolTransport();
                 if (r != null) {
                     transport.writeResponse(r, session);
-                } 
-                transport.writeResponse(Response.DISCONNECT, session);
+                }
+            } else {
+                if (channel.isConnected() && session != null) {
+                    ProtocolTransport transport = ((ProtocolSessionImpl) session).getProtocolTransport();
+
+                    Response r = session.newFatalErrorResponse();
+                    if (r != null) {
+                        transport.writeResponse(r, session);
+                    }
+                    transport.writeResponse(Response.DISCONNECT, session);
+                }
+                getLogger(session).error("Unable to process request", e.getCause());
+                cleanup(ctx);
             }
-            getLogger(session).error("Unable to process request", e.getCause());
-            cleanup(ctx);            
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/8d4254a9/protocols/netty/src/main/java/org/apache/james/protocols/netty/ProtocolMDCContext.java
----------------------------------------------------------------------
diff --git a/protocols/netty/src/main/java/org/apache/james/protocols/netty/ProtocolMDCContext.java b/protocols/netty/src/main/java/org/apache/james/protocols/netty/ProtocolMDCContext.java
new file mode 100644
index 0000000..f5d76a6
--- /dev/null
+++ b/protocols/netty/src/main/java/org/apache/james/protocols/netty/ProtocolMDCContext.java
@@ -0,0 +1,71 @@
+/****************************************************************
+ * 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.protocols.netty;
+
+import java.io.Closeable;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.Optional;
+
+import org.apache.james.protocols.api.Protocol;
+import org.apache.james.protocols.api.ProtocolSession;
+import org.apache.james.util.MDCBuilder;
+import org.jboss.netty.channel.ChannelHandlerContext;
+
+public class ProtocolMDCContext {
+    public static Closeable from(Protocol protocol, ChannelHandlerContext ctx) {
+        return MDCBuilder.create()
+            .addContext(from(ctx.getAttachment()))
+            .addContext(MDCBuilder.PROTOCOL, protocol.getName())
+            .addContext(MDCBuilder.IP, retrieveIp(ctx))
+            .addContext(MDCBuilder.HOST, retrieveHost(ctx))
+            .build();
+    }
+
+    private static String retrieveIp(ChannelHandlerContext ctx) {
+        SocketAddress remoteAddress = ctx.getChannel().getRemoteAddress();
+        if (remoteAddress instanceof InetSocketAddress) {
+            InetSocketAddress address = (InetSocketAddress) remoteAddress;
+            return address.getAddress().getHostAddress();
+        }
+        return remoteAddress.toString();
+    }
+
+    private static String retrieveHost(ChannelHandlerContext ctx) {
+        SocketAddress remoteAddress = ctx.getChannel().getRemoteAddress();
+        if (remoteAddress instanceof InetSocketAddress) {
+            InetSocketAddress address = (InetSocketAddress) remoteAddress;
+            return address.getHostName();
+        }
+        return remoteAddress.toString();
+    }
+
+    private static MDCBuilder from(Object o) {
+        return Optional.ofNullable(o)
+            .filter(object -> object instanceof ProtocolSession)
+            .map(object -> (ProtocolSession) object)
+            .map(protocolSession -> MDCBuilder.create()
+                .addContext(MDCBuilder.SESSION_ID, protocolSession.getSessionID())
+                .addContext(MDCBuilder.CHARSET, protocolSession.getCharset().displayName())
+                .addContext(MDCBuilder.USER, protocolSession.getUser()))
+            .orElse(MDCBuilder.create());
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/8d4254a9/protocols/pom.xml
----------------------------------------------------------------------
diff --git a/protocols/pom.xml b/protocols/pom.xml
index 35f4000..0d6fc46 100644
--- a/protocols/pom.xml
+++ b/protocols/pom.xml
@@ -69,6 +69,11 @@
                 <version>${project.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.apache.james</groupId>
+                <artifactId>james-server-util-java8</artifactId>
+                <version>3.1.0-SNAPSHOT</version>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.james.protocols</groupId>
                 <artifactId>protocols-pop3</artifactId>
                 <version>${project.version}</version>

http://git-wip-us.apache.org/repos/asf/james-project/blob/8d4254a9/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
index 5da598e..ab3ad92 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
@@ -36,7 +36,11 @@ public class POP3Protocol extends ProtocolImpl{
         super(chain, config, logger);
     }
 
-    
+    @Override
+    public String getName() {
+        return "POP3";
+    }
+
     @Override
     public ProtocolSession newSession(ProtocolTransport transport) {
         return new POP3SessionImpl(logger, transport, getConfiguration());

http://git-wip-us.apache.org/repos/asf/james-project/blob/8d4254a9/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
index 9b50145..4e2ba67 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
@@ -41,4 +41,8 @@ public class SMTPProtocol extends ProtocolImpl {
         return new SMTPSessionImpl(logger, transport, (SMTPConfiguration) getConfiguration());
     }
 
+    @Override
+    public String getName() {
+        return "SMTP";
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[33/38] james-project git commit: JAMES-2114 Deprecate the mailet Logging APIs

Posted by bt...@apache.org.
JAMES-2114 Deprecate the mailet Logging APIs


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f35ab929
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f35ab929
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f35ab929

Branch: refs/heads/master
Commit: f35ab9299402a7f1c0c5f3787ae38de962803248
Parents: ecccda0
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 15 14:33:40 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:44 2017 +0700

----------------------------------------------------------------------
 .../james/ai/classic/BayesianAnalysis.java      | 23 ++---
 .../ai/classic/BayesianAnalysisFeeder.java      | 30 ++++---
 .../james/ai/classic/CorpusLoaderThread.java    | 12 ++-
 .../james/ai/classic/JDBCBayesianAnalyzer.java  | 91 +++++---------------
 .../org/apache/james/ai/classic/JDBCUtil.java   | 54 ++----------
 .../java/org/apache/james/ai/classic/Log.java   | 46 ----------
 .../org/apache/james/ai/classic/SystemLog.java  | 37 --------
 .../java/org/apache/mailet/MailetContext.java   | 10 ++-
 .../org/apache/mailet/base/GenericMailet.java   | 12 ++-
 .../org/apache/mailet/base/GenericMatcher.java  | 18 ++--
 .../james/transport/mailets/AbstractSign.java   | 73 ++++++++--------
 .../transport/mailets/SMIMECheckSignature.java  | 13 +--
 .../james/transport/mailets/SMIMEDecrypt.java   | 13 +--
 .../james/transport/mailets/SMIMESign.java      | 13 +--
 .../apache/james/transport/mailets/Sign.java    | 11 ++-
 .../james/transport/mailets/ICALToHeader.java   |  8 +-
 .../transport/mailets/ICALToJsonAttribute.java  | 15 ++--
 .../transport/mailets/ICalendarParser.java      |  8 +-
 mailet/standard/pom.xml                         |  1 -
 .../james/transport/mailets/AddFooter.java      |  9 +-
 .../transport/mailets/AddHabeasWarrantMark.java | 30 +++----
 .../transport/mailets/AmqpForwardAttribute.java |  7 +-
 .../james/transport/mailets/ClamAVScan.java     | 51 +++++------
 .../james/transport/mailets/ClassifyBounce.java | 24 +++---
 .../transport/mailets/ContentReplacer.java      | 10 +--
 .../james/transport/mailets/HeadersToHTTP.java  | 19 ++--
 .../james/transport/mailets/LogMessage.java     | 26 ++++--
 .../mailets/MailAttributesToMimeHeaders.java    |  5 +-
 .../transport/mailets/MimeDecodingMailet.java   |  9 +-
 .../james/transport/mailets/OnlyText.java       |  9 +-
 .../transport/mailets/RecoverAttachment.java    | 29 ++++---
 .../transport/mailets/RemoveMimeHeader.java     |  5 +-
 .../james/transport/mailets/ReplaceContent.java |  2 +-
 .../transport/mailets/SerialiseToHTTP.java      | 19 ++--
 .../james/transport/mailets/SetMimeHeader.java  | 12 +--
 .../transport/mailets/StripAttachment.java      | 15 ++--
 .../james/transport/mailets/ToProcessor.java    |  5 +-
 .../transport/mailets/UseHeaderRecipients.java  | 11 ++-
 .../james/transport/mailets/debug/Counter.java  |  7 +-
 .../transport/mailets/debug/DumpSystemErr.java  | 12 ++-
 .../matchers/AbstractQuotaMatcher.java          |  9 +-
 .../matchers/AttachmentFileNameIs.java          | 13 +--
 .../matchers/HasHabeasWarrantMark.java          | 17 ++--
 .../james/transport/matchers/SenderHostIs.java  |  5 +-
 .../transport/mailets/ContentReplacerTest.java  | 19 ++--
 .../james/transport/mailets/LogMessageTest.java |  4 +-
 .../util/bayesian/JDBCBayesianAnalyzer.java     | 23 ++---
 .../org/apache/james/util/sql/JDBCUtil.java     | 43 ++-------
 .../mailrepository/jdbc/JDBCMailRepository.java |  6 +-
 .../jdbc/MimeMessageJDBCSource.java             | 15 ++--
 .../rrt/jdbc/JDBCRecipientRewriteTable.java     |  6 +-
 .../user/jdbc/AbstractJdbcUsersRepository.java  |  6 +-
 .../library/netmatcher/NetMatcher.java          | 17 ++--
 .../impl/JamesMailetContext.java                |  6 +-
 .../mailets/AbstractRecipientRewriteTable.java  | 18 ++--
 .../transport/mailets/BayesianAnalysis.java     | 38 ++++----
 .../mailets/BayesianAnalysisFeeder.java         | 37 ++++----
 .../apache/james/transport/mailets/Bounce.java  | 11 ++-
 .../james/transport/mailets/DSNBounce.java      | 16 ++--
 .../apache/james/transport/mailets/Forward.java |  7 +-
 .../james/transport/mailets/FromRepository.java | 18 ++--
 .../james/transport/mailets/JDBCAlias.java      | 11 ++-
 .../mailets/JDBCRecipientRewriteTable.java      |  6 +-
 .../transport/mailets/NotifyPostmaster.java     |  9 +-
 .../james/transport/mailets/NotifySender.java   |  9 +-
 .../mailets/RecipientRewriteTableProcessor.java | 11 ++-
 .../james/transport/mailets/Redirect.java       |  8 +-
 .../james/transport/mailets/RemoteDelivery.java | 17 ++--
 .../apache/james/transport/mailets/Resend.java  |  7 +-
 .../org/apache/james/transport/mailets/SPF.java | 38 ++++----
 .../james/transport/mailets/SpamAssassin.java   | 15 ++--
 .../james/transport/mailets/ToRepository.java   |  5 +-
 .../james/transport/mailets/ToSenderFolder.java |  5 +-
 .../transport/mailets/WhiteListManager.java     | 46 +++++-----
 .../mailets/jsieve/SieveMailAdapter.java        |  6 +-
 .../mailets/managesieve/ManageSieveMailet.java  |  9 +-
 .../redirect/MailMessageAlteringUtils.java      | 11 ++-
 .../mailets/redirect/MailModifier.java          | 21 +++--
 .../mailets/redirect/ProcessRedirectNotify.java |  9 +-
 .../mailets/redirect/RedirectNotify.java        |  2 +
 .../matchers/AbstractNetworkMatcher.java        | 11 ++-
 .../matchers/AbstractSQLWhitelistMatcher.java   | 13 ++-
 .../james/transport/matchers/IsInWhiteList.java |  5 +-
 .../matchers/NetworkIsInWhitelist.java          |  5 +-
 .../transport/matchers/SenderInFakeDomain.java  | 13 +--
 .../transport/util/SpecialAddressesUtils.java   | 15 ++--
 .../james/samples/mailets/HelloWorldMailet.java | 10 +--
 .../samples/mailets/InstrumentationMailet.java  | 64 +++++++-------
 .../transport/mailets/RecordingMailContext.java |  6 +-
 .../fastfail/JDBCGreylistHandler.java           |  6 +-
 90 files changed, 739 insertions(+), 792 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
index abc350f..b96e5a2 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
@@ -37,6 +37,8 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.RFC2822Headers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -121,16 +123,17 @@ import org.apache.mailet.base.RFC2822Headers;
  * @since 2.3.0
  */
 @Experimental
-public class BayesianAnalysis extends GenericMailet implements Log {
+public class BayesianAnalysis extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(BayesianAnalysis.class);
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil(this);
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * The JDBCBayesianAnalyzer class that does all the work.
      */
-    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer(this);
+    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer();
 
     DataSource datasource;
 
@@ -229,16 +232,16 @@ public class BayesianAnalysis extends GenericMailet implements Log {
         ignoreLocalSender = Boolean.valueOf(getInitParameter("ignoreLocalSender"));
 
         if (ignoreLocalSender) {
-            log("Will ignore messages coming from local senders");
+            LOGGER.debug("Will ignore messages coming from local senders");
         } else {
-            log("Will analyze messages coming from local senders");
+            LOGGER.debug("Will analyze messages coming from local senders");
         }
 
         String maxSizeParam = getInitParameter("maxSize");
         if (maxSizeParam != null) {
             setMaxSize(Integer.parseInt(maxSizeParam));
         }
-        log("maxSize: " + getMaxSize());
+        LOGGER.debug("maxSize: " + getMaxSize());
 
         String tag = getInitParameter("tagSubject");
         if (tag != null && tag.equals("false")) {
@@ -318,7 +321,7 @@ public class BayesianAnalysis extends GenericMailet implements Log {
             }
             if (probability > 0.1) {
                 final Collection<MailAddress> recipients = mail.getRecipients();
-                log(headerName + ": " + probabilityString + "; From: " + senderString + "; Recipient(s): " + getAddressesString(recipients));
+                LOGGER.debug(headerName + ": " + probabilityString + "; From: " + senderString + "; Recipient(s): " + getAddressesString(recipients));
 
                 // Check if we should tag the subject
                 if (tagSubject) {
@@ -329,7 +332,7 @@ public class BayesianAnalysis extends GenericMailet implements Log {
             saveChanges(message);
 
         } catch (Exception e) {
-            log("Exception: " + e.getMessage(), e);
+            LOGGER.error("Exception: " + e.getMessage(), e);
             throw new MessagingException("Exception thrown", e);
         }
     }
@@ -349,7 +352,7 @@ public class BayesianAnalysis extends GenericMailet implements Log {
                 analyzer.tokenCountsClear();
             }
 
-            log("BayesianAnalysis Corpus loaded");
+            LOGGER.error("BayesianAnalysis Corpus loaded");
 
             touchLastCorpusLoadTime();
 
@@ -389,7 +392,7 @@ public class BayesianAnalysis extends GenericMailet implements Log {
                 message.setSubject(toAppend + " " + subject, "iso-8859-1");
             }
         } catch (MessagingException ex) {
-            log("Failure to append to subject phrase: '" + toAppend + "'", ex);
+            LOGGER.error("Failure to append to subject phrase: '" + toAppend + "'", ex);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
index dd59c2f..cd00733 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
@@ -34,6 +34,8 @@ import javax.sql.DataSource;
 import org.apache.mailet.Experimental;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -125,16 +127,18 @@ import org.apache.mailet.base.GenericMailet;
  * @since 2.3.0
  */
 @Experimental
-public class BayesianAnalysisFeeder extends GenericMailet implements Log {
+public class BayesianAnalysisFeeder extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(BayesianAnalysisFeeder.class);
+
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil(this);
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * The JDBCBayesianAnalyzer class that does all the work.
      */
-    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer(this);
+    private final JDBCBayesianAnalyzer analyzer = new JDBCBayesianAnalyzer();
  
     private DataSource datasource;
 
@@ -209,7 +213,7 @@ public class BayesianAnalysisFeeder extends GenericMailet implements Log {
         if (maxSizeParam != null) {
             setMaxSize(Integer.parseInt(maxSizeParam));
         }
-        log("maxSize: " + getMaxSize());
+        LOGGER.debug("maxSize: " + getMaxSize());
 
         initDb();
 
@@ -250,7 +254,7 @@ public class BayesianAnalysisFeeder extends GenericMailet implements Log {
             String messageId = message.getMessageID();
 
             if (message.getSize() > getMaxSize()) {
-                log(messageId + " Feeding HAM/SPAM ignored because message size > " + getMaxSize() + ": " + message.getSize());
+                LOGGER.debug(messageId + " Feeding HAM/SPAM ignored because message size > " + getMaxSize() + ": " + message.getSize());
                 return;
             }
 
@@ -275,14 +279,14 @@ public class BayesianAnalysisFeeder extends GenericMailet implements Log {
                 analyzer.clear();
 
                 if ("ham".equalsIgnoreCase(feedType)) {
-                    log(messageId + " Feeding HAM");
+                    LOGGER.debug(messageId + " Feeding HAM");
                     // Process the stream as ham (not spam).
                     analyzer.addHam(br);
 
                     // Update storage statistics.
                     analyzer.updateHamTokens(conn);
                 } else {
-                    log(messageId + " Feeding SPAM");
+                    LOGGER.debug(messageId + " Feeding SPAM");
                     // Process the stream as spam.
                     analyzer.addSpam(br);
 
@@ -294,18 +298,18 @@ public class BayesianAnalysisFeeder extends GenericMailet implements Log {
                 if (conn != null && dbUpdated && !conn.getAutoCommit()) {
                     conn.commit();
                     dbUpdated = false;
-                    log(messageId + " Training ended successfully");
+                    LOGGER.debug(messageId + " Training ended successfully");
                     JDBCBayesianAnalyzer.touchLastDatabaseUpdateTime();
                 }
 
             }
 
         } catch (java.sql.SQLException se) {
-            log("SQLException: " + se.getMessage());
+            LOGGER.error("SQLException: ", se);
         } catch (java.io.IOException ioe) {
-            log("IOException: " + ioe.getMessage());
+            LOGGER.error("IOException: ", ioe);
         } catch (javax.mail.MessagingException me) {
-            log("MessagingException: " + me.getMessage());
+            LOGGER.error("MessagingException: ", me);
         } finally {
             // Rollback our changes if necessary.
             try {
@@ -314,7 +318,7 @@ public class BayesianAnalysisFeeder extends GenericMailet implements Log {
                     dbUpdated = false;
                 }
             } catch (Exception e) {
-                log("Failed to rollback after last error.", e);
+                LOGGER.error("Failed to rollback after last error.", e);
             }
             theJDBCUtil.closeJDBCConnection(conn);
         }
@@ -329,7 +333,7 @@ public class BayesianAnalysisFeeder extends GenericMailet implements Log {
             try {
                 message.removeHeader(header.getName());
             } catch (javax.mail.MessagingException me) {
-                log("Cannot remove header.", me);
+                LOGGER.error("Cannot remove header.", me);
             }
         }
         message.saveChanges();

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/ai/src/main/java/org/apache/james/ai/classic/CorpusLoaderThread.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/CorpusLoaderThread.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/CorpusLoaderThread.java
index 520da8a..46bcba4 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/CorpusLoaderThread.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/CorpusLoaderThread.java
@@ -19,10 +19,14 @@
 
 package org.apache.james.ai.classic;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * Periodically reloads corpus.
  */
 class CorpusLoaderThread extends Thread {
+    private static final Logger LOGGER = LoggerFactory.getLogger(CorpusLoaderThread.class);
 
     private final BayesianAnalysis analysis;
 
@@ -35,19 +39,19 @@ class CorpusLoaderThread extends Thread {
      * Thread entry point.
      */
     public void run() {
-        analysis.log("CorpusLoader thread started: will wake up every " + BayesianAnalysis.CORPUS_RELOAD_INTERVAL + " ms");
+        LOGGER.info("CorpusLoader thread started: will wake up every " + BayesianAnalysis.CORPUS_RELOAD_INTERVAL + " ms");
 
         try {
             Thread.sleep(BayesianAnalysis.CORPUS_RELOAD_INTERVAL);
 
             while (true) {
                 if (analysis.getLastCorpusLoadTime() < JDBCBayesianAnalyzer.getLastDatabaseUpdateTime()) {
-                    analysis.log("Reloading Corpus ...");
+                    LOGGER.info("Reloading Corpus ...");
                     try {
                         analysis.loadData(analysis.datasource.getConnection());
-                        analysis.log("Corpus reloaded");
+                        LOGGER.info("Corpus reloaded");
                     } catch (java.sql.SQLException se) {
-                        analysis.log("SQLException: ", se);
+                        LOGGER.error("SQLException: ", se);
                     }
 
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java
index e019b3f..366e0d5 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java
@@ -28,6 +28,8 @@ import java.sql.SQLException;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 
 /**
@@ -42,20 +44,16 @@ import org.w3c.dom.Document;
  * @since 2.3.0
  */
 
-public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
+public class JDBCBayesianAnalyzer extends BayesianAnalyzer {
+    private static final Logger LOGGER = LoggerFactory.getLogger(JDBCBayesianAnalyzer.class);
 
     /** Public object representing a lock on database activity. */
     public final static String DATABASE_LOCK = "database lock";
-
-
     
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil(this);
-
-    /** Logs messages. */
-    private Log log;
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
     
     /** Contains all of the sql strings for this component. */
     private final SqlResources sqlQueries = new SqlResources();
@@ -90,28 +88,6 @@ public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
     
     public JDBCBayesianAnalyzer() {
         super();
-        log = new SystemLog();
-    }
-    
-    public JDBCBayesianAnalyzer(Log log) {
-        super();
-        this.log = log;
-    }
-
-    /**
-     * Gets the current log.
-     * @return current log, not null
-     */
-    public Log getLog() {
-        return log;
-    }
-
-    /**
-     * Sets the current log.
-     * @param log not null
-     */
-    public void setLog(Log log) {
-        this.log = log;
     }
 
     /**
@@ -182,7 +158,7 @@ public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
                 }
             }
             // Verbose.
-            log("Ham tokens count: " + ham.size());
+            LOGGER.debug("Ham tokens count: " + ham.size());
 
             rs.close();
             pstmt.close();
@@ -202,7 +178,7 @@ public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
             }
 
             // Verbose.
-            log("Spam tokens count: " + spam.size());
+            LOGGER.debug("Spam tokens count: " + spam.size());
 
             rs.close();
             pstmt.close();
@@ -222,8 +198,8 @@ public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
             if (rs != null) {
                 try {
                     rs.close();
-                } catch (java.sql.SQLException se) {
-                    log("Failed to close statement after selecting spam tokens.", se);
+                } catch (SQLException se) {
+                    LOGGER.error("Failed to close statement after selecting spam tokens.", se);
                 }
 
                 rs = null;
@@ -232,8 +208,8 @@ public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
             if (pstmt != null) {
                 try {
                     pstmt.close();
-                } catch (java.sql.SQLException se) {
-                    log("Failed to close statement selecting message counts.", se);
+                } catch (SQLException se) {
+                    LOGGER.error("Failed to close statement selecting message counts.", se);
                 }
 
                 pstmt = null;
@@ -303,15 +279,15 @@ public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
             if (init != null) {
                 try {
                     init.close();
-                } catch (java.sql.SQLException ignore) {
-                    log("Failed to close statement after initializing message count.", ignore);
+                } catch (SQLException ignore) {
+                    LOGGER.error("Failed to close statement after initializing message count.", ignore);
                 }
             }
             if (update != null) {
                 try {
                     update.close();
-                } catch (java.sql.SQLException ignore) {
-                    log("Failed to close statement after setting message count.", ignore);
+                } catch (SQLException ignore) {
+                    LOGGER.error("Failed to close statement after setting message count.", ignore);
                 }
             }
         }
@@ -346,8 +322,8 @@ public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
             if (insert != null) {
                 try {
                     insert.close();
-                } catch (java.sql.SQLException ignore) {
-                    log("Failed to close statement after updating tokens.", ignore);
+                } catch (SQLException ignore) {
+                    LOGGER.error("Failed to close statement after updating tokens.", ignore);
                 }
 
                 insert = null;
@@ -356,8 +332,8 @@ public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
             if (update != null) {
                 try {
                     update.close();
-                } catch (java.sql.SQLException ignore) {
-                    log("Failed to close statement after updating tokens.", ignore);
+                } catch (SQLException ignore) {
+                    LOGGER.error("Failed to close statement after updating tokens.", ignore);
                 }
 
                 update = null;
@@ -430,7 +406,7 @@ public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
 
             StringBuffer logBuffer = null;
             logBuffer = new StringBuffer(64).append("Created table '").append(tableName).append("' using sqlResources string '").append(createSqlStringName).append("'.");
-            log(logBuffer.toString());
+            LOGGER.debug(logBuffer.toString());
 
         } finally {
             theJDBCUtil.closeJDBCStatement(createStatement);
@@ -450,35 +426,12 @@ public class JDBCBayesianAnalyzer extends BayesianAnalyzer implements Log {
             if (delete != null) {
                 try {
                     delete.close();
-                } catch (java.sql.SQLException ignore) {
-                    log("Failed to close statement after deleting ham statement. ", ignore);
+                } catch (SQLException ignore) {
+                    LOGGER.error("Failed to close statement after deleting ham statement. ", ignore);
                 }
                 
                 delete = null;
             }
         }
     }
-    
-    
-    /**
-     * Logs errors.
-     * 
-     * @param errorString
-     *            the error message generated
-     */
-    public void log(String errorString) {
-        log.log(errorString);
-    }
-
-    /**
-     * Logs errors.
-     * 
-     * @param errorString
-     *            the error message generated
-     * @param t 
-     *            exception 
-     */
-    public void log(String errorString, Throwable t) {
-        log.log(errorString, t);
-    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCUtil.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCUtil.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCUtil.java
index 76e81d1..440a346 100644
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCUtil.java
+++ b/mailet/ai/src/main/java/org/apache/james/ai/classic/JDBCUtil.java
@@ -26,6 +26,9 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Locale;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * <p>
  * Helper class for managing common JDBC tasks.
@@ -37,36 +40,10 @@ import java.util.Locale;
  * </p>
  */
 final class JDBCUtil {
-
-    private Log log;
-        
-    public JDBCUtil(Log log) {
-        super();
-        this.log = log;
-    }
+    private static final Logger LOGGER = LoggerFactory.getLogger(JDBCUtil.class);
 
     public JDBCUtil() {
         super();
-        this.log = new SystemLog();
-    }
-     
-    public Log getLog() {
-        return log;
-    }
-
-    public void setLog(Log log) {
-        this.log = log;
-    }
-
-    /**
-     * An abstract method which child classes override to handle logging of
-     * errors in their particular environments.
-     * 
-     * @param errorString
-     *            the error message generated
-     */
-    private void log(String errorString) {
-        log.log(errorString);
     }
 
     /**
@@ -165,7 +142,7 @@ final class JDBCUtil {
             }
         } catch (SQLException sqle) {
             // Log exception and continue
-            subclassLogWrapper("Unexpected exception while closing database connection.");
+            LOGGER.error("Unexpected exception while closing database connection.", sqle);
         }
     }
 
@@ -182,7 +159,7 @@ final class JDBCUtil {
             }
         } catch (SQLException sqle) {
             // Log exception and continue
-            subclassLogWrapper("Unexpected exception while closing database statement.");
+            LOGGER.error("Unexpected exception while closing database statement.", sqle);
         }
     }
 
@@ -199,24 +176,7 @@ final class JDBCUtil {
             }
         } catch (SQLException sqle) {
             // Log exception and continue
-            subclassLogWrapper("Unexpected exception while closing database result set.");
-        }
-    }
-
-    /**
-     * Wraps the delegated call to the subclass logging method with a Throwable
-     * wrapper. All throwables generated by the subclass logging method are
-     * caught and ignored.
-     * 
-     * @param logString
-     *            the raw string to be passed to the logging method implemented
-     *            by the subclass
-     */
-    private void subclassLogWrapper(String logString) {
-        try {
-            log(logString);
-        } catch (Throwable t) { //NOPMD
-            // Throwables generated by the logging system are ignored
+            LOGGER.error("Unexpected exception while closing database result set.", sqle);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/ai/src/main/java/org/apache/james/ai/classic/Log.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/Log.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/Log.java
deleted file mode 100644
index 9f1156a..0000000
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/Log.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/****************************************************************
- * 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.ai.classic;
-
-/**
- * A simple logging mechanism.
- */
-public interface Log {
-    
-    /**
-     * An abstract method which child classes override to handle logging of
-     * errors in their particular environments.
-     * 
-     * @param errorString
-     *            the error message generated
-     */
-    void log(String errorString);
-
-    /**
-     * An abstract method which child classes override to handle logging of
-     * errors in their particular environments.
-     * 
-     * @param errorString
-     *            the error message generated
-     * @param t 
-     *            exception 
-     */
-    void log(String errorString, Throwable t);
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/ai/src/main/java/org/apache/james/ai/classic/SystemLog.java
----------------------------------------------------------------------
diff --git a/mailet/ai/src/main/java/org/apache/james/ai/classic/SystemLog.java b/mailet/ai/src/main/java/org/apache/james/ai/classic/SystemLog.java
deleted file mode 100644
index 6b1d65d..0000000
--- a/mailet/ai/src/main/java/org/apache/james/ai/classic/SystemLog.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/****************************************************************
- * 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.ai.classic;
-
-/**
- * Logs naively to system out. Not recommended for production.
- */
-public class SystemLog implements Log {
-    
-    @Override
-    public void log(String errorString) {
-        System.err.println("[AI Classic] " + errorString);
-    }
-
-    @Override
-    public void log(String errorString, Throwable t) {
-        System.err.println("[AI Classic] " + errorString);
-        t.printStackTrace();
-    } 
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/api/src/main/java/org/apache/mailet/MailetContext.java
----------------------------------------------------------------------
diff --git a/mailet/api/src/main/java/org/apache/mailet/MailetContext.java b/mailet/api/src/main/java/org/apache/mailet/MailetContext.java
index d9447a2..2b2dd96 100644
--- a/mailet/api/src/main/java/org/apache/mailet/MailetContext.java
+++ b/mailet/api/src/main/java/org/apache/mailet/MailetContext.java
@@ -62,7 +62,9 @@ public interface MailetContext {
      * Loglevel for logging operations
      *
      * @since Mailet API v2.5
+     * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
      */
+    @Deprecated
     enum LogLevel {
         DEBUG,
         INFO,
@@ -170,7 +172,7 @@ public interface MailetContext {
      * the mailet log is specific to the mailet container.
      *
      * @param message the message to be written to the log
-     * @deprecated use {@link #log(LogLevel level, String message)}
+     * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
      */
     @Deprecated
     void log(String message);
@@ -182,7 +184,7 @@ public interface MailetContext {
      *
      * @param message the message to be written to the log
      * @param t       the Throwable whose stack trace is to be written to the log
-     * @deprecated use {@link #log(LogLevel level, String message, Throwable t)}
+     * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
      */
     @Deprecated
     void log(String message, Throwable t);
@@ -195,7 +197,9 @@ public interface MailetContext {
      * @param level   {@link LogLevel} to use
      * @param message the message to be written to the log
      * @since 2.5
+     * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
      */
+    @Deprecated
     void log(LogLevel level, String message);
 
     /**
@@ -207,7 +211,9 @@ public interface MailetContext {
      * @param t       the Throwable whose stack trace is to be written to the log
      * @param level   {@link LogLevel} to use
      * @since 2.5
+     * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
      */
+    @Deprecated
     void log(LogLevel level, String message, Throwable t);
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/base/src/main/java/org/apache/mailet/base/GenericMailet.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/main/java/org/apache/mailet/base/GenericMailet.java b/mailet/base/src/main/java/org/apache/mailet/base/GenericMailet.java
index 3edeb37..53933fc 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/GenericMailet.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/GenericMailet.java
@@ -33,7 +33,8 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.MailetConfig;
 import org.apache.mailet.MailetContext;
-import org.apache.mailet.MailetContext.LogLevel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 import com.google.common.base.Strings;
@@ -50,6 +51,7 @@ import com.google.common.base.Strings;
  * @version 1.0.0, 24/04/1999
  */
 public abstract class GenericMailet implements Mailet, MailetConfig {
+    private static final Logger LOGGER = LoggerFactory.getLogger(GenericMailet.class);
 
     private static final String YES = "yes";
     private static final String NO = "no";
@@ -238,9 +240,11 @@ public abstract class GenericMailet implements Mailet, MailetConfig {
      * Writes the specified message to a mailet log file.
      *
      * @param message - a String specifying the message to be written to the log file
+     * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
      */
+    @Deprecated
     public void log(String message) {
-        getMailetContext().log(LogLevel.INFO, message);
+        LOGGER.info(message);
     }
 
     /**
@@ -249,9 +253,11 @@ public abstract class GenericMailet implements Mailet, MailetConfig {
      *
      * @param message - a String that describes the error or exception
      * @param t - the java.lang.Throwable to be logged
+     * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
      */
+    @Deprecated
     public void log(String message, Throwable t) {
-        getMailetContext().log(LogLevel.ERROR, message, t);
+        LOGGER.error(message, t);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/base/src/main/java/org/apache/mailet/base/GenericMatcher.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/main/java/org/apache/mailet/base/GenericMatcher.java b/mailet/base/src/main/java/org/apache/mailet/base/GenericMatcher.java
index 0670cd6..858ba6c 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/GenericMatcher.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/GenericMatcher.java
@@ -20,6 +20,8 @@
 
 package org.apache.mailet.base;
 
+import java.util.Collection;
+
 import javax.mail.MessagingException;
 
 import org.apache.mailet.Mail;
@@ -27,9 +29,8 @@ import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
 import org.apache.mailet.Matcher;
 import org.apache.mailet.MatcherConfig;
-import org.apache.mailet.MailetContext.LogLevel;
-
-import java.util.Collection;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>GenericMatcher implements the Matcher and MatcherConfig interfaces.</p>
@@ -43,7 +44,8 @@ import java.util.Collection;
  * @version 1.0.0, 24/04/1999
  */
 public abstract class GenericMatcher implements Matcher, MatcherConfig {
-    MatcherConfig config = null;
+    private static final Logger LOGGER = LoggerFactory.getLogger(GenericMatcher.class);
+    private MatcherConfig config = null;
 
     /**
      * Called by the mailet container to indicate to a matcher that the
@@ -143,9 +145,11 @@ public abstract class GenericMatcher implements Matcher, MatcherConfig {
      * Writes the specified message to a matcher log file.
      *
      * @param message - a String specifying the message to be written to the log file
+     * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
      */
+    @Deprecated
     public void log(String message) {
-        getMailetContext().log(LogLevel.INFO, message);
+        LOGGER.info(message);
     }
 
     /**
@@ -154,9 +158,11 @@ public abstract class GenericMatcher implements Matcher, MatcherConfig {
      *
      * @param message - a String that describes the error or exception
      * @param t - the java.lang.Throwable error or exception
+     * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
      */
+    @Deprecated
     public void log(String message, Throwable t) {
-        getMailetContext().log(LogLevel.ERROR, message, t);
+        LOGGER.error(message, t);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
----------------------------------------------------------------------
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
index 5320091..4baa77d 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/AbstractSign.java
@@ -21,14 +21,9 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.james.transport.KeyHolder;
-import org.apache.james.transport.SMIMEAttributeNames;
-import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.api.UsersRepositoryException;
-import org.apache.mailet.base.GenericMailet;
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailAddress;
-import org.apache.mailet.base.RFC2822Headers;
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.util.Enumeration;
 
 import javax.inject.Inject;
 import javax.mail.MessagingException;
@@ -39,9 +34,16 @@ import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 import javax.mail.internet.ParseException;
 
-import java.io.IOException;
-import java.util.Enumeration;
-import java.lang.reflect.Constructor;
+import org.apache.james.transport.KeyHolder;
+import org.apache.james.transport.SMIMEAttributeNames;
+import org.apache.james.user.api.UsersRepository;
+import org.apache.james.user.api.UsersRepositoryException;
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
+import org.apache.mailet.base.GenericMailet;
+import org.apache.mailet.base.RFC2822Headers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Objects;
 import com.google.common.base.Throwables;
@@ -105,6 +107,7 @@ import com.google.common.base.Throwables;
  * @since 2.2.1
  */
 public abstract class AbstractSign extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractSign.class);
     
     private static final String HEADERS_PATTERN = "[headers]";
     
@@ -199,7 +202,7 @@ public abstract class AbstractSign extends GenericMailet {
             throw new MessagingException("The specified <keyHolderClass> does not exist: " + keyHolderClassName);
         }
         if (isDebug()) {
-            log("keyHolderClass: " + getKeyHolderClass());
+            LOGGER.debug("keyHolderClass: " + getKeyHolderClass());
         }
     }
     
@@ -225,7 +228,7 @@ public abstract class AbstractSign extends GenericMailet {
     protected void initExplanationText() {
         setExplanationText(getInitParameter("explanationText"));
         if (isDebug()) {
-            log("Explanation text:\r\n" + getExplanationText());
+            LOGGER.debug("Explanation text:\r\n" + getExplanationText());
         }
     }
     
@@ -272,21 +275,21 @@ public abstract class AbstractSign extends GenericMailet {
         if (keyAliasPassword == null) {
             keyAliasPassword = keyStorePassword;
             if (isDebug()) {
-                log("<keyAliasPassword> parameter not specified: will default to the <keyStorePassword> parameter.");
+                LOGGER.debug("<keyAliasPassword> parameter not specified: will default to the <keyStorePassword> parameter.");
             }
         }
         
         String keyStoreType = getInitParameter("keyStoreType");
         if (keyStoreType == null) {
             if (isDebug()) {
-                log("<keyStoreType> parameter not specified: the default will be as appropriate to the keyStore requested.");
+                LOGGER.debug("<keyStoreType> parameter not specified: the default will be as appropriate to the keyStore requested.");
             }
         }
         
         String keyAlias = getInitParameter("keyAlias");
         if (keyAlias == null) {
             if (isDebug()) {
-                log("<keyAlias> parameter not specified: will look for the first one in the keystore.");
+                LOGGER.debug("<keyAlias> parameter not specified: will look for the first one in the keystore.");
             }
         }
         
@@ -298,7 +301,7 @@ public abstract class AbstractSign extends GenericMailet {
             .append(", keyStoreType=").append(keyStoreType)
             .append(", keyAlias=").append(keyAlias)
             .append(" ");
-            log(logBuffer.toString());
+            LOGGER.debug(logBuffer.toString());
         }
             
         // Certificate preparation
@@ -306,7 +309,7 @@ public abstract class AbstractSign extends GenericMailet {
         setKeyHolder((KeyHolder)keyHolderConstructor.newInstance(parameters));
         
         if (isDebug()) {
-            log("Subject Distinguished Name: " + getKeyHolder().getSignerDistinguishedName());
+            LOGGER.debug("Subject Distinguished Name: " + getKeyHolder().getSignerDistinguishedName());
         }
         
         if (getKeyHolder().getSignerAddress() == null) {
@@ -363,9 +366,9 @@ public abstract class AbstractSign extends GenericMailet {
         setRebuildFrom((getInitParameter("rebuildFrom") == null) ? false : Boolean.valueOf(getInitParameter("rebuildFrom")));
         if (isDebug()) {
             if (isRebuildFrom()) {
-                log("Will modify the \"From:\" header.");
+                LOGGER.debug("Will modify the \"From:\" header.");
             } else {
-                log("Will leave the \"From:\" header unchanged.");
+                LOGGER.debug("Will leave the \"From:\" header unchanged.");
             }
         }
     }
@@ -405,7 +408,7 @@ public abstract class AbstractSign extends GenericMailet {
             }
             setSignerName(getKeyHolder().getSignerCN());
             if (isDebug()) {
-                log("<signerName> parameter not specified: will use the certificate signer \"CN=\" attribute.");
+                LOGGER.debug("<signerName> parameter not specified: will use the certificate signer \"CN=\" attribute.");
             }
         }
     }
@@ -441,7 +444,7 @@ public abstract class AbstractSign extends GenericMailet {
         try {
             initDebug();
             if (isDebug()) {
-                log("Initializing");
+                LOGGER.debug("Initializing");
             }
             
             initKeyHolderClass();
@@ -455,7 +458,7 @@ public abstract class AbstractSign extends GenericMailet {
         } catch (MessagingException me) {
             throw me;
         } catch (Exception e) {
-            log("Exception thrown", e);
+            LOGGER.error("Exception thrown", e);
             throw new MessagingException("Exception thrown", e);
         } finally {
             if (isDebug()) {
@@ -466,7 +469,7 @@ public abstract class AbstractSign extends GenericMailet {
                 .append(", postmasterSigns=").append(postmasterSigns)
                 .append(", rebuildFrom=").append(rebuildFrom)
                 .append(" ");
-                log(logBuffer.toString());
+                LOGGER.debug(logBuffer.toString());
             }
         }
         
@@ -535,14 +538,14 @@ public abstract class AbstractSign extends GenericMailet {
             mail.setAttribute(SMIMEAttributeNames.SMIME_SIGNER_ADDRESS, getKeyHolder().getSignerAddress());
             
             if (isDebug()) {
-                log("Message signed, reverse-path: " + mail.getSender() + ", Id: " + messageId);
+                LOGGER.debug("Message signed, reverse-path: " + mail.getSender() + ", Id: " + messageId);
             }
             
         } catch (MessagingException me) {
-            log("MessagingException found - could not sign!", me);
+            LOGGER.error("MessagingException found - could not sign!", me);
             throw me;
         } catch (Exception e) {
-            log("Exception found", e);
+            LOGGER.error("Exception found", e);
             throw new MessagingException("Exception thrown - could not sign!", e);
         }
         
@@ -573,14 +576,14 @@ public abstract class AbstractSign extends GenericMailet {
         
         // Is it a bounce?
         if (reversePath == null) {
-            log("Can not sign: no sender");
+            LOGGER.info("Can not sign: no sender");
             return false;
         }
         
         String authUser = (String) mail.getAttribute(Mail.SMTP_AUTH_USER_ATTRIBUTE_NAME);
         // was the sender user SMTP authorized?
         if (authUser == null) {
-            log("Can not sign mail for sender <" + mail.getSender() + "> as he is not a SMTP authenticated user");
+            LOGGER.info("Can not sign mail for sender <" + mail.getSender() + "> as he is not a SMTP authenticated user");
             return false;
         }
         
@@ -588,19 +591,19 @@ public abstract class AbstractSign extends GenericMailet {
         if (Objects.equal(getMailetContext().getPostmaster(), reversePath)) {
             // should not sign postmaster sent messages?
             if (!isPostmasterSigns()) {
-                log("Can not sign mails for postmaster");
+                LOGGER.info("Can not sign mails for postmaster");
                 return false;
             }
         } else {
             // is the reverse-path user different from the SMTP authorized user?
             String username = getUsername(reversePath);
             if (!username.equals(authUser)) {
-                log("SMTP logged in as <" + authUser + "> but pretend to be sender <" + username + ">");
+                LOGGER.info("SMTP logged in as <" + authUser + "> but pretend to be sender <" + username + ">");
                 return false;
             }
             // is there no "From:" address same as the reverse-path?
             if (!fromAddressSameAsReverse(mail)) {
-                log("Can not sign mails with empty FROM header field");
+                LOGGER.info("Can not sign mails with empty FROM header field");
                 return false;
             }
         }
@@ -610,7 +613,7 @@ public abstract class AbstractSign extends GenericMailet {
         boolean isAlreadySigned = mimeMessage.isMimeType("multipart/signed")
             || mimeMessage.isMimeType("application/pkcs7-mime");
         if (isAlreadySigned) {
-            log("Can not sign a mail already signed");
+            LOGGER.info("Can not sign a mail already signed");
         }
         return !isAlreadySigned;
 
@@ -658,7 +661,7 @@ public abstract class AbstractSign extends GenericMailet {
                     try {
                         mailAddress = new MailAddress(aFromArray);
                     } catch (ParseException pe) {
-                        log("Unable to parse a \"FROM\" header address: " + aFromArray.toString() + "; ignoring.");
+                        LOGGER.info("Unable to parse a \"FROM\" header address: " + aFromArray.toString() + "; ignoring.");
                         continue;
                     }
                     if (mailAddress.equals(reversePath)) {
@@ -667,7 +670,7 @@ public abstract class AbstractSign extends GenericMailet {
                 }
             }
         } catch (MessagingException me) {
-            log("Unable to parse the \"FROM\" header; ignoring.");
+            LOGGER.info("Unable to parse the \"FROM\" header; ignoring.");
         }
         
         return false;

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMECheckSignature.java
----------------------------------------------------------------------
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMECheckSignature.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMECheckSignature.java
index 6e1a52a..6ce9a51 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMECheckSignature.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMECheckSignature.java
@@ -40,6 +40,8 @@ import org.apache.mailet.base.GenericMailet;
 import org.bouncycastle.cms.CMSException;
 import org.bouncycastle.mail.smime.SMIMEException;
 import org.bouncycastle.mail.smime.SMIMESigned;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>
@@ -100,6 +102,7 @@ import org.bouncycastle.mail.smime.SMIMESigned;
  * 
  */
 public class SMIMECheckSignature extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SMIMECheckSignature.class);
     
     protected KeyStoreHolder trustedCertificateStore;
     
@@ -133,7 +136,7 @@ public class SMIMECheckSignature extends GenericMailet {
         try {
             if (file != null) trustedCertificateStore = new KeyStoreHolder(file, password, type);
             else {
-                log("No trusted store path specified, using default store.");
+                LOGGER.info("No trusted store path specified, using default store.");
                 trustedCertificateStore = new KeyStoreHolder(password);
             }
         } catch (Exception e) {
@@ -166,20 +169,20 @@ public class SMIMECheckSignature extends GenericMailet {
             if (signed != null) {
                 signers = trustedCertificateStore.verifySignatures(signed);
                 strippedMessage = signed.getContent();
-            } else log("Content not identified as signed");
+            } else LOGGER.info("Content not identified as signed");
             
             // These errors are logged but they don't cause the 
             // message to change its state. The message 
             // is considered as not signed and the process will
             // go on.
         } catch (CMSException | SMIMEException e) {
-            log("Error during the analysis of the signed message", e);
+            LOGGER.error("Error during the analysis of the signed message", e);
             signers = null;
         } catch (IOException e) {
-            log("IO error during the analysis of the signed message", e);
+            LOGGER.error("IO error during the analysis of the signed message", e);
             signers = null;
         } catch (Exception e) {
-            log("Generic error occured during the analysis of the message", e);
+            LOGGER.error("Generic error occured during the analysis of the message", e);
             signers = null;
         }
         

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMEDecrypt.java
----------------------------------------------------------------------
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMEDecrypt.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMEDecrypt.java
index a3f138e..cfa1062 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMEDecrypt.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMEDecrypt.java
@@ -45,6 +45,8 @@ import org.bouncycastle.cms.RecipientInformationStore;
 import org.bouncycastle.cms.jcajce.JceKeyTransEnvelopedRecipient;
 import org.bouncycastle.mail.smime.SMIMEEnveloped;
 import org.bouncycastle.mail.smime.SMIMEUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Charsets;
 
@@ -74,6 +76,7 @@ import com.google.common.base.Charsets;
  * 
  */
 public class SMIMEDecrypt extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SMIMEDecrypt.class);
 
     private SMIMEKeyHolder keyHolder;
     private X509CertificateHolder certificateHolder;
@@ -121,7 +124,7 @@ public class SMIMEDecrypt extends GenericMailet {
     public void service(Mail mail) throws MessagingException {
         MimeMessage message = mail.getMessage();
         Part strippedMessage = null;
-        log("Starting message decryption..");
+        LOGGER.info("Starting message decryption..");
         if (message.isMimeType("application/x-pkcs7-mime") || message.isMimeType("application/pkcs7-mime")) {
             try {
                 SMIMEEnveloped env = new SMIMEEnveloped(message);
@@ -134,12 +137,12 @@ public class SMIMEDecrypt extends GenericMailet {
                             JceKeyTransEnvelopedRecipient recipient = new JceKeyTransEnvelopedRecipient(keyHolder.getPrivateKey());
                             // strippedMessage contains the decrypted message.
                             strippedMessage = SMIMEUtil.toMimeBodyPart(info.getContent(recipient));
-                            log("Encrypted message decrypted");
+                            LOGGER.info("Encrypted message decrypted");
                         } catch (Exception e) {
                             throw new MessagingException("Error during the decryption of the message", e);
                         }
                     } else {
-                        log("Found an encrypted message but it isn't encrypted for the supplied key");
+                        LOGGER.info("Found an encrypted message but it isn't encrypted for the supplied key");
                     }
                 }
             } catch (CMSException e) {
@@ -167,8 +170,8 @@ public class SMIMEDecrypt extends GenericMailet {
                 }
                 newMessage.saveChanges();
                 mail.setMessage(newMessage);
-            } catch (IOException e) { 
-                log("Error during the strip of the encrypted message");
+            } catch (IOException e) {
+                LOGGER.error("Error during the strip of the encrypted message", e);
                 throw new MessagingException("Error during the stripping of the encrypted message",e);
             }
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMESign.java
----------------------------------------------------------------------
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMESign.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMESign.java
index 629a8fa..bf7d464 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMESign.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/SMIMESign.java
@@ -21,14 +21,16 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.mailet.Mail;
+import java.io.IOException;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
-import java.io.IOException;
+import org.apache.mailet.Mail;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>Puts a <I>server-side</I> SMIME signature on a message.
@@ -53,6 +55,7 @@ import java.io.IOException;
  * @since 2.3.0
  */
 public class SMIMESign extends Sign {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SMIMESign.class);
     
     /**
      * Return a string describing this mailet.
@@ -134,7 +137,7 @@ public class SMIMESign extends Sign {
             throw new MessagingException(keyHolderClassName + "does not exist.");
         }
         if (isDebug()) {
-            log("keyHolderClass: " + getKeyHolderClass());
+            LOGGER.debug("keyHolderClass: " + getKeyHolderClass());
         }
     }
     
@@ -152,9 +155,9 @@ public class SMIMESign extends Sign {
         setRebuildFrom((getInitParameter("rebuildFrom") == null) ? true : Boolean.valueOf(getInitParameter("rebuildFrom")));
         if (isDebug()) {
             if (isRebuildFrom()) {
-                log("Will modify the \"From:\" header.");
+                LOGGER.debug("Will modify the \"From:\" header.");
             } else {
-                log("Will leave the \"From:\" header unchanged.");
+                LOGGER.debug("Will leave the \"From:\" header unchanged.");
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/crypto/src/main/java/org/apache/james/transport/mailets/Sign.java
----------------------------------------------------------------------
diff --git a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/Sign.java b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/Sign.java
index 66cf4c9..c3e4fa7 100644
--- a/mailet/crypto/src/main/java/org/apache/james/transport/mailets/Sign.java
+++ b/mailet/crypto/src/main/java/org/apache/james/transport/mailets/Sign.java
@@ -21,14 +21,16 @@
 
 package org.apache.james.transport.mailets;
 
-import org.apache.mailet.Mail;
+import java.io.IOException;
 
 import javax.mail.MessagingException;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
 
-import java.io.IOException;
+import org.apache.mailet.Mail;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>Puts a <I>server-side</I> signature on a message.
@@ -59,6 +61,7 @@ import java.io.IOException;
  * @since 2.2.1
  */
 public class Sign extends AbstractSign {
+    private static final Logger LOGGER = LoggerFactory.getLogger(Sign.class);
     
     /**
      * Return a string describing this mailet.
@@ -143,9 +146,9 @@ public class Sign extends AbstractSign {
         setRebuildFrom((getInitParameter("rebuildFrom") == null) ? true : Boolean.valueOf(getInitParameter("rebuildFrom")));
         if (isDebug()) {
             if (isRebuildFrom()) {
-                log("Will modify the \"From:\" header.");
+                LOGGER.debug("Will modify the \"From:\" header.");
             } else {
-                log("Will leave the \"From:\" header unchanged.");
+                LOGGER.debug("Will leave the \"From:\" header unchanged.");
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToHeader.java
----------------------------------------------------------------------
diff --git a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToHeader.java b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToHeader.java
index 82b2597..a4d287f 100644
--- a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToHeader.java
+++ b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToHeader.java
@@ -26,6 +26,8 @@ import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.github.fge.lambdas.Throwing;
 import com.google.common.annotations.VisibleForTesting;
@@ -56,6 +58,8 @@ import net.fortuna.ical4j.model.component.VEvent;
  * </pre>
  */
 public class ICALToHeader extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ICALToHeader.class);
+
     public static final String ATTRIBUTE_PROPERTY = "attribute";
     public static final String ATTRIBUTE_DEFAULT_NAME = "icalendar";
 
@@ -93,7 +97,7 @@ public class ICALToHeader extends GenericMailet {
                 .ifPresent(Throwing.<Calendar>consumer(calendar -> writeToHeaders(calendar, mail))
                     .sneakyThrow());
         } catch (ClassCastException e) {
-            log("Received a mail with " + attribute + " not being an ICAL object for mail " + mail.getName());
+            LOGGER.error("Received a mail with " + attribute + " not being an ICAL object for mail " + mail.getName(), e);
         }
     }
 
@@ -122,7 +126,7 @@ public class ICALToHeader extends GenericMailet {
             try {
                 mimeMessage.addHeader(headerName, property.getValue());
             } catch (MessagingException e) {
-                log("Could not add header " + headerName + " with value " + property.getValue(), e);
+                LOGGER.error("Could not add header " + headerName + " with value " + property.getValue(), e);
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
----------------------------------------------------------------------
diff --git a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
index 84ebabb..33eca9d 100644
--- a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
+++ b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICALToJsonAttribute.java
@@ -36,6 +36,8 @@ import org.apache.james.transport.mailets.model.ICAL;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -79,6 +81,7 @@ import net.fortuna.ical4j.model.Calendar;
  * </pre>
  */
 public class ICALToJsonAttribute extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ICALToJsonAttribute.class);
 
     public static final String SOURCE_ATTRIBUTE_NAME = "source";
     public static final String RAW_SOURCE_ATTRIBUTE_NAME = "rawSource";
@@ -140,7 +143,7 @@ public class ICALToJsonAttribute extends GenericMailet {
         }
         Optional<String> sender = retrieveSender(mail);
         if (!sender.isPresent()) {
-            log("Skipping " + mail.getName() + " because no sender and no from");
+            LOGGER.info("Skipping " + mail.getName() + " because no sender and no from");
             return;
         }
         try {
@@ -152,7 +155,7 @@ public class ICALToJsonAttribute extends GenericMailet {
                 .collect(Guavate.toImmutableMap(Pair::getKey, Pair::getValue));
             mail.setAttribute(destinationAttributeName, (Serializable) jsonsInByteForm);
         } catch (ClassCastException e) {
-            log("Received a mail with " + sourceAttributeName + " not being an ICAL object for mail " + mail.getName(), e);
+            LOGGER.error("Received a mail with " + sourceAttributeName + " not being an ICAL object for mail " + mail.getName(), e);
         }
     }
 
@@ -178,10 +181,10 @@ public class ICALToJsonAttribute extends GenericMailet {
         try {
             return Stream.of(objectMapper.writeValueAsString(ical));
         } catch (JsonProcessingException e) {
-            log("Error while serializing Calendar for mail " + mailName, e);
+            LOGGER.error("Error while serializing Calendar for mail " + mailName, e);
             return Stream.of();
         } catch (Exception e) {
-            log("Exception caught while attaching ICAL to the email as JSON for mail " + mailName, e);
+            LOGGER.error("Exception caught while attaching ICAL to the email as JSON for mail " + mailName, e);
             return Stream.of();
         }
     }
@@ -190,7 +193,7 @@ public class ICALToJsonAttribute extends GenericMailet {
         Calendar calendar = entry.getValue();
         byte[] rawICal = rawCalendars.get(entry.getKey());
         if (rawICal == null) {
-            log("Cannot find matching raw ICAL from key: " + entry.getKey());
+            LOGGER.debug("Cannot find matching raw ICAL from key: " + entry.getKey());
             return Stream.of();
         }
         try {
@@ -200,7 +203,7 @@ public class ICALToJsonAttribute extends GenericMailet {
                 .sender(sender)
                 .build());
         } catch (Exception e) {
-            log("Exception while converting calendar to ICAL", e);
+            LOGGER.error("Exception while converting calendar to ICAL", e);
             return Stream.of();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
----------------------------------------------------------------------
diff --git a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
index 374bad4..3855bcd 100644
--- a/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
+++ b/mailet/icalendar/src/main/java/org/apache/james/transport/mailets/ICalendarParser.java
@@ -29,6 +29,8 @@ import javax.mail.MessagingException;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.github.steveash.guavate.Guavate;
 import com.google.common.annotations.VisibleForTesting;
@@ -62,6 +64,8 @@ import net.fortuna.ical4j.util.CompatibilityHints;
  * </p>
  */
 public class ICalendarParser extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ICalendarParser.class);
+
     public static final String SOURCE_ATTRIBUTE_PARAMETER_NAME = "sourceAttribute";
     public static final String DESTINATION_ATTRIBUTE_PARAMETER_NAME = "destinationAttribute";
 
@@ -130,10 +134,10 @@ public class ICalendarParser extends GenericMailet {
             ByteArrayInputStream inputStream = new ByteArrayInputStream(icsContent);
             return Stream.of(Pair.of(key, builder.build(inputStream)));
         } catch (IOException e) {
-            log("Error while reading input: " + icsContent, e);
+            LOGGER.error("Error while reading input: " + icsContent, e);
             return Stream.of();
         } catch (ParserException e) {
-            log("Error while parsing ICal object: " + icsContent, e);
+            LOGGER.error("Error while parsing ICal object: " + icsContent, e);
             return Stream.of();
         }
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/standard/pom.xml b/mailet/standard/pom.xml
index ac396c1..cff5475 100644
--- a/mailet/standard/pom.xml
+++ b/mailet/standard/pom.xml
@@ -97,7 +97,6 @@
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
-            <scope>test</scope>
         </dependency>
     </dependencies>
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddFooter.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddFooter.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddFooter.java
index 7e1b38c..52b006a 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddFooter.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddFooter.java
@@ -35,6 +35,8 @@ import javax.mail.internet.MimePart;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.RFC2822Headers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
 
@@ -44,6 +46,7 @@ import com.google.common.base.Optional;
  * messages with alternate content types or with attachments.
  */
 public class AddFooter extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AddFooter.class);
 
     private static final String HTML_BR_TAG = "<br />";
     private static final String CARRIAGE_RETURN = "\r\n";
@@ -68,11 +71,11 @@ public class AddFooter extends GenericMailet {
             if (attachFooter(message)) {
                 message.saveChanges();
             } else {
-                log("Unable to add footer to mail " + mail.getName());
+                LOGGER.info("Unable to add footer to mail " + mail.getName());
             }
         } catch (UnsupportedEncodingException e) {
-            log("UnsupportedEncoding Unable to add footer to mail "
-                    + mail.getName());
+            LOGGER.warn("UnsupportedEncoding Unable to add footer to mail "
+                    + mail.getName(), e);
         } catch (IOException ioe) {
             throw new MessagingException("Could not read message", ioe);
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddHabeasWarrantMark.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddHabeasWarrantMark.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddHabeasWarrantMark.java
index 9d50361..a51a6c6 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddHabeasWarrantMark.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AddHabeasWarrantMark.java
@@ -21,10 +21,14 @@
 
 package org.apache.james.transport.mailets;
 
+import javax.mail.MessagingException;
+
 import org.apache.james.transport.matchers.HasHabeasWarrantMark;
 import org.apache.mailet.Experimental;
-import org.apache.mailet.base.GenericMailet ;
-import org.apache.mailet.Mail ;
+import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * <p>This matcher adds the Hebeas Warrant Mark to a message.
@@ -83,8 +87,9 @@ import org.apache.mailet.Mail ;
  * </pre>
  */
 @Experimental
-public class AddHabeasWarrantMark extends GenericMailet
-{
+public class AddHabeasWarrantMark extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AddHabeasWarrantMark.class);
+
     /**
      * Called by the mailet container to allow the mailet to process to
      * a message message.
@@ -97,22 +102,18 @@ public class AddHabeasWarrantMark extends GenericMailet
      * @throws javax.mail.MessagingException - if an message or address parsing exception occurs or
      *      an exception that interferes with the mailet's normal operation
      */
-    public void service(Mail mail) throws javax.mail.MessagingException
-    {
-        try
-        {
+    public void service(Mail mail) throws MessagingException {
+        try {
             javax.mail.internet.MimeMessage message = mail.getMessage();
 
-            for(int i = 0 ; i < HasHabeasWarrantMark.warrantMark.length ; i++)
-            {
+            for(int i = 0 ; i < HasHabeasWarrantMark.warrantMark.length ; i++) {
                 message.setHeader(HasHabeasWarrantMark.warrantMark[i][0], HasHabeasWarrantMark.warrantMark[i][1]);
             }
 
             message.saveChanges();
         }
-        catch (javax.mail.MessagingException me)
-        {
-            log(me.getMessage());
+        catch (MessagingException me) {
+            LOGGER.error("Error while adding habeas", me);
         }
     }
 
@@ -121,8 +122,7 @@ public class AddHabeasWarrantMark extends GenericMailet
      *
      * @return a string describing this mailet
      */
-    public String getMailetInfo()
-    {
+    public String getMailetInfo() {
         return "Add Habeas Warrant Mark.  Must be used in accordance with a license from Habeas (see http://www.habeas.com for details).";
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java
index 360898d..7d1b104 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/AmqpForwardAttribute.java
@@ -27,6 +27,8 @@ import java.util.concurrent.TimeoutException;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
 import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Strings;
@@ -52,6 +54,7 @@ import com.rabbitmq.client.ConnectionFactory;
  * sending it.
  */
 public class AmqpForwardAttribute extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AmqpForwardAttribute.class);
 
     public static final String URI_PARAMETER_NAME = "uri";
     public static final String EXCHANGE_PARAMETER_NAME = "exchange";
@@ -105,9 +108,9 @@ public class AmqpForwardAttribute extends GenericMailet {
         try {
             sendContent(content);
         } catch (IOException e) {
-            log("IOException while writing to AMQP: " + e.getMessage(), e);
+            LOGGER.error("IOException while writing to AMQP: " + e.getMessage(), e);
         } catch (TimeoutException e) {
-            log("TimeoutException while writing to AMQP: " + e.getMessage(), e);
+            LOGGER.error("TimeoutException while writing to AMQP: " + e.getMessage(), e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
index 8be918b..0e4bc26 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClamAVScan.java
@@ -45,6 +45,8 @@ import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
 import org.apache.mailet.base.RFC2822Headers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -181,6 +183,7 @@ import org.apache.mailet.base.RFC2822Headers;
  */
 @Experimental
 public class ClamAVScan extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ClamAVScan.class);
 
     private static final int DEFAULT_PORT = 3310;
 
@@ -298,7 +301,7 @@ public class ClamAVScan extends GenericMailet {
     protected void initHost() throws UnknownHostException {
         setHost(getInitParameter("host"));
         if (isDebug()) {
-            log("host: " + getHost());
+            LOGGER.debug("host: " + getHost());
         }
     }
 
@@ -337,7 +340,7 @@ public class ClamAVScan extends GenericMailet {
         String portParam = getInitParameter("port");
         setPort((portParam == null) ? DEFAULT_PORT : Integer.parseInt(portParam));
         if (isDebug()) {
-            log("port: " + getPort());
+            LOGGER.debug("port: " + getPort());
         }
     }
 
@@ -368,7 +371,7 @@ public class ClamAVScan extends GenericMailet {
         String maxPingsParam = getInitParameter("maxPings");
         setMaxPings((maxPingsParam == null) ? DEFAULT_MAX_PINGS : Integer.parseInt(maxPingsParam));
         if (isDebug()) {
-            log("maxPings: " + getMaxPings());
+            LOGGER.debug("maxPings: " + getMaxPings());
         }
     }
 
@@ -399,7 +402,7 @@ public class ClamAVScan extends GenericMailet {
         String pingIntervalMilliParam = getInitParameter("pingIntervalMilli");
         setPingIntervalMilli((pingIntervalMilliParam == null) ? DEFAULT_PING_INTERVAL_MILLI : Integer.parseInt(pingIntervalMilliParam));
         if (isDebug()) {
-            log("pingIntervalMilli: " + getPingIntervalMilli());
+            LOGGER.debug("pingIntervalMilli: " + getPingIntervalMilli());
         }
     }
 
@@ -430,7 +433,7 @@ public class ClamAVScan extends GenericMailet {
         String streamBufferSizeParam = getInitParameter("streamBufferSize");
         setStreamBufferSize((streamBufferSizeParam == null) ? DEFAULT_STREAM_BUFFER_SIZE : Integer.parseInt(streamBufferSizeParam));
         if (isDebug()) {
-            log("streamBufferSize: " + getStreamBufferSize());
+            LOGGER.debug("streamBufferSize: " + getStreamBufferSize());
         }
     }
 
@@ -535,7 +538,7 @@ public class ClamAVScan extends GenericMailet {
             do {
                 if (usedAddresses.size() >= getAddressesCount()) {
                     String logText = "Unable to connect to CLAMD. All addresses failed.";
-                    log(logText + " Giving up.");
+                    LOGGER.debug(logText + " Giving up.");
                     throw new MessagingException(logText);
                 }
                 address = getNextAddress();
@@ -544,8 +547,8 @@ public class ClamAVScan extends GenericMailet {
                 // get the socket
                 return new Socket(address, getPort());
             } catch (IOException ioe) {
-                log("Exception caught acquiring main socket to CLAMD on "
-                        + address + " on port " + getPort() + ": " + ioe.getMessage());
+                LOGGER.error("Exception caught acquiring main socket to CLAMD on "
+                        + address + " on port " + getPort() + ": ", ioe);
                 getNextAddress();
                 // retry
             }
@@ -563,7 +566,7 @@ public class ClamAVScan extends GenericMailet {
         try {
             initDebug();
             if (isDebug()) {
-                log("Initializing");
+                LOGGER.debug("Initializing");
             }
 
             initHost();
@@ -578,7 +581,7 @@ public class ClamAVScan extends GenericMailet {
             }
 
         } catch (Exception e) {
-            log("Exception thrown", e);
+            LOGGER.error("Exception thrown", e);
             throw new MessagingException("Exception thrown", e);
         }
     }
@@ -599,7 +602,7 @@ public class ClamAVScan extends GenericMailet {
         MimeMessage mimeMessage = mail.getMessage();
 
         if (mimeMessage == null) {
-            log("Null MimeMessage. Will send to ghost");
+            LOGGER.debug("Null MimeMessage. Will send to ghost");
             // write mail info to log
             logMailInfo(mail);
             mail.setState(Mail.GHOST);
@@ -648,7 +651,7 @@ public class ClamAVScan extends GenericMailet {
                     if (answer.substring(answer.length() - FOUND_STRING.length()).equals(FOUND_STRING)) {
                         virusFound = true;
                         logMessage = answer + " (by CLAMD on " + socket.getInetAddress() + ")";
-                        log(logMessage);
+                        LOGGER.debug(logMessage);
                     }
                 } else {
                     break;
@@ -683,7 +686,7 @@ public class ClamAVScan extends GenericMailet {
 
             } else {
                 if (isDebug()) {
-                    log("OK (by CLAMD on " + socket.getInetAddress() + ")");
+                    LOGGER.debug("OK (by CLAMD on " + socket.getInetAddress() + ")");
                 }
                 mail.setAttribute(MAIL_ATTRIBUTE_NAME, "false");
 
@@ -695,11 +698,11 @@ public class ClamAVScan extends GenericMailet {
             try {
                 saveChanges(mimeMessage);
             } catch (Exception ex) {
-                log("Exception caught while saving changes (header) to the MimeMessage. Ignoring ...", ex);
+                LOGGER.error("Exception caught while saving changes (header) to the MimeMessage. Ignoring ...", ex);
             }
 
         } catch (Exception ex) {
-            log("Exception caught calling CLAMD on " + socket.getInetAddress() + ": " + ex.getMessage(), ex);
+            LOGGER.error("Exception caught calling CLAMD on " + socket.getInetAddress() + ": " + ex.getMessage(), ex);
             throw new MessagingException("Exception caught", ex);
         } finally {
             IOUtils.closeQuietly(reader);
@@ -735,16 +738,16 @@ public class ClamAVScan extends GenericMailet {
         int ping = 1;
         for (; ; ) {
             if (isDebug()) {
-                log("Trial #" + ping + "/" + getMaxPings() + " - creating socket connected to " + address + " on port " + getPort());
+                LOGGER.debug("Trial #" + ping + "/" + getMaxPings() + " - creating socket connected to " + address + " on port " + getPort());
             }
             try {
                 socket = new Socket(address, getPort());
                 break;
             } catch (ConnectException ce) {
-                log("Trial #" + ping + "/" + getMaxPings() + " - exception caught: " + ce.toString() + " while creating socket connected to " + address + " on port " + getPort());
+                LOGGER.debug("Trial #" + ping + "/" + getMaxPings() + " - exception caught: " + ce.toString() + " while creating socket connected to " + address + " on port " + getPort());
                 ping++;
                 if (ping <= getMaxPings()) {
-                    log("Waiting " + getPingIntervalMilli() + " milliseconds before retrying ...");
+                    LOGGER.debug("Waiting " + getPingIntervalMilli() + " milliseconds before retrying ...");
                     Thread.sleep(getPingIntervalMilli());
                 } else {
                     break;
@@ -762,7 +765,7 @@ public class ClamAVScan extends GenericMailet {
             BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "ASCII"));
             PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
 
-            log("Sending: \"PING\" to " + address + " ...");
+            LOGGER.debug("Sending: \"PING\" to " + address + " ...");
             writer.println("PING");
             writer.flush();
 
@@ -771,7 +774,7 @@ public class ClamAVScan extends GenericMailet {
                 String answer = reader.readLine();
                 if (answer != null) {
                     answer = answer.trim();
-                    log("Received: \"" + answer + "\"");
+                    LOGGER.debug("Received: \"" + answer + "\"");
                     answer = answer.trim();
                     if (answer.equals("PONG")) {
                         pongReceived = true;
@@ -806,7 +809,7 @@ public class ClamAVScan extends GenericMailet {
             try {
                 port = Integer.parseInt(portSubstring);
             } catch (NumberFormatException nfe) {
-                log("Can not parse port from substring " + portSubstring);
+                LOGGER.error("Can not parse port from substring " + portSubstring);
             }
         }
 
@@ -844,7 +847,7 @@ public class ClamAVScan extends GenericMailet {
             out.print(", " + rcptTo.next());
         }
 
-        log(sout.toString());
+        LOGGER.debug(sout.toString());
     }
 
     private void logMessageInfo(MimeMessage mimeMessage) {
@@ -893,10 +896,10 @@ public class ClamAVScan extends GenericMailet {
                 out.print(", Number of lines: " + mimeMessage.getLineCount());
             }
         } catch (MessagingException me) {
-            log("Exception caught reporting message details", me);
+            LOGGER.error("Exception caught reporting message details", me);
         }
 
-        log(sout.toString());
+        LOGGER.debug(sout.toString());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java
index 7ad4d72..e33af5a 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/ClassifyBounce.java
@@ -18,20 +18,23 @@
  ****************************************************************/
 package org.apache.james.transport.mailets;
 
-import org.apache.mailet.Experimental;
-import org.apache.mailet.Mail;
-import org.apache.mailet.base.GenericMailet;
+import java.io.IOException;
+import java.util.Locale;
+import java.util.StringTokenizer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import javax.mail.BodyPart;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.mail.Multipart;
 import javax.mail.internet.MimeMessage;
-import java.io.IOException;
-import java.util.Locale;
-import java.util.StringTokenizer;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+
+import org.apache.mailet.Experimental;
+import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -45,6 +48,7 @@ import java.util.regex.Pattern;
  */
 @Experimental
 public class ClassifyBounce extends GenericMailet {
+    private static final Logger LOGGER = LoggerFactory.getLogger(ClassifyBounce.class);
 
     /**
      * The name of the header to be added.
@@ -78,8 +82,8 @@ public class ClassifyBounce extends GenericMailet {
             message.setHeader(headerName, classification);
             message.saveChanges();
             //}
-        } catch (javax.mail.MessagingException me) {
-            log("Error classifying message: " + me.getMessage());
+        } catch (MessagingException me) {
+            LOGGER.error("Error classifying message: ", me);
         }
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[30/38] james-project git commit: JAMES-2114 Deprecate the mailet Logging APIs

Posted by bt...@apache.org.
http://git-wip-us.apache.org/repos/asf/james-project/blob/f35ab929/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
index e93e01e..97c0a6d 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
@@ -288,11 +288,7 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
     /**
      * The JDBCUtil helper class
      */
-    private final JDBCUtil theJDBCUtil = new JDBCUtil() {
-        protected void delegatedLog(String logString) {
-            LOGGER.debug("JDBCRecipientRewriteTable: " + logString);
-        }
-    };
+    private final JDBCUtil theJDBCUtil = new JDBCUtil();
 
     /**
      * Initializes the sql query environment from the SqlResources file. Will


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[29/38] james-project git commit: JAMES-2114 Also deprecate LogProvider

Posted by bt...@apache.org.
JAMES-2114 Also deprecate LogProvider


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d66efa30
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d66efa30
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d66efa30

Branch: refs/heads/master
Commit: d66efa30b71a441963f6903a912f149f2e2a35a6
Parents: 16b36cb
Author: benwa <bt...@linagora.com>
Authored: Tue Aug 15 02:13:14 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:43 2017 +0700

----------------------------------------------------------------------
 .../org/apache/james/container/spring/lifecycle/LogProvider.java  | 3 +++
 .../apache/james/container/spring/lifecycle/LogProviderImpl.java  | 3 +++
 2 files changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/d66efa30/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProvider.java
----------------------------------------------------------------------
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProvider.java b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProvider.java
index aae50af..5826257 100644
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProvider.java
+++ b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProvider.java
@@ -22,7 +22,10 @@ import org.slf4j.Logger;
 
 /**
  * Provide {@link Logger} instances for Beans
+ *
+ * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
  */
+@Deprecated
 public interface LogProvider {
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/d66efa30/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProviderImpl.java
----------------------------------------------------------------------
diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProviderImpl.java b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProviderImpl.java
index cdd60dd..102221a 100644
--- a/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProviderImpl.java
+++ b/server/container/spring/src/main/java/org/apache/james/container/spring/lifecycle/LogProviderImpl.java
@@ -31,7 +31,10 @@ import org.springframework.beans.factory.InitializingBean;
 
 /**
  * Provide a Log object for components
+ *
+ * @deprecated Prefer using SLF4J LoggingFactory to get a Logger in each class
  */
+@Deprecated
 public class LogProviderImpl implements LogProvider, InitializingBean, LogProviderManagementMBean {
 
     private final ConcurrentHashMap<String, Logger> logMap = new ConcurrentHashMap<>();


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[12/38] james-project git commit: JAMES-2114 Add MDC logging context for MAILET container

Posted by bt...@apache.org.
JAMES-2114 Add MDC logging context for MAILET container


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b7bcfd96
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b7bcfd96
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b7bcfd96

Branch: refs/heads/master
Commit: b7bcfd964c4526fefde42dce65a4c5bf4a3fee05
Parents: 7600a6d
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 16:30:17 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:43 2017 +0700

----------------------------------------------------------------------
 .../mailet/base/MailetPipelineLogging.java      | 34 ++++----------------
 server/mailet/mailetcontainer-camel/pom.xml     |  4 +++
 .../impl/camel/CamelProcessor.java              | 16 ++++++++-
 .../impl/camel/MatcherSplitter.java             | 21 +++++++++++-
 4 files changed, 45 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/b7bcfd96/mailet/base/src/main/java/org/apache/mailet/base/MailetPipelineLogging.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/main/java/org/apache/mailet/base/MailetPipelineLogging.java b/mailet/base/src/main/java/org/apache/mailet/base/MailetPipelineLogging.java
index 5b5ee9a..ec8d0ec 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/MailetPipelineLogging.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/MailetPipelineLogging.java
@@ -21,39 +21,17 @@ package org.apache.mailet.base;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
-import org.apache.mailet.MailetConfig;
-import org.apache.mailet.MailetContext;
 import org.slf4j.Logger;
-
-import com.google.common.base.Optional;
+import org.slf4j.LoggerFactory;
 
 public class MailetPipelineLogging {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailetPipelineLogging.class);
 
-    public static void logBeginOfMailetProcess(final Mailet mailet, final Mail mail) {
-        getLogger(mailet)
-        .transform(logger -> {
-            logger.debug("Entering mailet: {}\n\tmail state {}", mailet.getMailetInfo(), mail.getState());
-            return true;
-        });
-    }
-
-    public static void logEndOfMailetProcess(final Mailet mailet, final Mail mail) {
-        getLogger(mailet)
-            .transform(logger -> {
-                logger.debug("End of mailet: {}\n\tmail state {}", mailet.getMailetInfo(), mail.getState());
-                return true;
-            });
+    public static void logBeginOfMailetProcess(Mailet mailet, Mail mail) {
+        LOGGER.debug("Mail: {} Entering mailet: {}", mail.getState(), mailet.getMailetInfo());
     }
 
-    private static Optional<Logger> getLogger(Mailet mailet) {
-        MailetConfig mailetConfig = mailet.getMailetConfig();
-        if (mailetConfig == null) {
-            return Optional.absent();
-        }
-        MailetContext mailetContext = mailetConfig.getMailetContext();
-        if (mailetContext == null) {
-            return Optional.absent();
-        }
-        return Optional.fromNullable(mailetContext.getLogger());
+    public static void logEndOfMailetProcess(Mailet mailet, Mail mail) {
+        LOGGER.debug("Mail: {} End of mailet: {}", mail.getState(), mailet.getMailetInfo());
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/b7bcfd96/server/mailet/mailetcontainer-camel/pom.xml
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/pom.xml b/server/mailet/mailetcontainer-camel/pom.xml
index 0d4c959..8b97319 100644
--- a/server/mailet/mailetcontainer-camel/pom.xml
+++ b/server/mailet/mailetcontainer-camel/pom.xml
@@ -67,6 +67,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.james</groupId>
+            <artifactId>james-server-util-java8</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
             <artifactId>apache-mailet-api</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/b7bcfd96/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelProcessor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelProcessor.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelProcessor.java
index 0f168ca..f21c940 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelProcessor.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/CamelProcessor.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.mailetcontainer.impl.camel;
 
+import java.io.Closeable;
 import java.util.List;
 import java.util.Locale;
 
@@ -30,12 +31,15 @@ import org.apache.james.mailetcontainer.impl.ProcessorUtil;
 import org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.MailetProcessorListener;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.apache.james.util.MDCBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.Mailet;
 import org.apache.mailet.MailetConfig;
 import org.apache.mailet.base.MailetPipelineLogging;
 import org.slf4j.Logger;
 
+import com.google.common.collect.ImmutableList;
+
 /**
  * Mailet wrapper which execute a Mailet in a Processor
  */
@@ -67,7 +71,17 @@ public class CamelProcessor implements Processor {
         long start = System.currentTimeMillis();
         TimeMetric timeMetric = metricFactory.timer(mailet.getClass().getSimpleName());
         MessagingException ex = null;
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "MAILET")
+                     .addContext(MDCBuilder.ACTION, "MAILET")
+                     .addContext(MDCBuilder.HOST, mail.getRemoteHost())
+                     .addContext("state", mail.getState())
+                     .addContext("mailet", mailet.getClass().getSimpleName())
+                     .addContext("mail", mail.getName())
+                     .addContext("recipients", ImmutableList.copyOf(mail.getRecipients()))
+                     .addContext("sender", mail.getSender())
+                     .build()) {
             MailetPipelineLogging.logBeginOfMailetProcess(mailet, mail);
             mailet.service(mail);
         } catch (MessagingException me) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/b7bcfd96/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
index 2b34c4e..ff5b812 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/camel/MatcherSplitter.java
@@ -19,6 +19,8 @@
 
 package org.apache.james.mailetcontainer.impl.camel;
 
+import java.io.Closeable;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -35,11 +37,15 @@ import org.apache.james.mailetcontainer.impl.ProcessorUtil;
 import org.apache.james.mailetcontainer.lib.AbstractStateMailetProcessor.MailetProcessorListener;
 import org.apache.james.metrics.api.MetricFactory;
 import org.apache.james.metrics.api.TimeMetric;
+import org.apache.james.util.MDCBuilder;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.Matcher;
 import org.slf4j.Logger;
 
+import com.google.common.base.Throwables;
+import com.google.common.collect.ImmutableList;
+
 /**
  * A Splitter for use with Camel to split the MailMessage into many pieces if
  * needed. This is done by use a Matcher.
@@ -90,7 +96,18 @@ public class MatcherSplitter {
             List<Mail> mails = new ArrayList<>();
             boolean fullMatch = false;
 
-            try {
+            try (Closeable closeable =
+                     MDCBuilder.create()
+                         .addContext(MDCBuilder.PROTOCOL, "MAILET")
+                         .addContext(MDCBuilder.ACTION, "MATCHER")
+                         .addContext(MDCBuilder.IP, mail.getRemoteAddr())
+                         .addContext(MDCBuilder.HOST, mail.getRemoteHost())
+                         .addContext("matcher", matcher.getMatcherInfo())
+                         .addContext("state", mail.getState())
+                         .addContext("mail", mail.getName())
+                         .addContext("recipients", ImmutableList.copyOf(mail.getRecipients()))
+                         .addContext("sender", mail.getSender())
+                         .build()) {
                 // call the matcher
                 matchedRcpts = matcher.match(mail);
 
@@ -120,6 +137,8 @@ public class MatcherSplitter {
                 } else {
                     ProcessorUtil.handleException(me, mail, matcher.getMatcherConfig().getMatcherName(), onMatchException, logger);
                 }
+            } catch (IOException e) {
+                throw Throwables.propagate(e);
             }
 
             // check if the matcher matched


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[21/38] james-project git commit: JAMES-2114 Remove LOGGER from PROTOCOL Session API

Posted by bt...@apache.org.
JAMES-2114 Remove LOGGER from PROTOCOL Session API


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/4f14df4f
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4f14df4f
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4f14df4f

Branch: refs/heads/master
Commit: 4f14df4f43a9382a07999b727c7227684159c425
Parents: f0170de
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 18:25:01 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:43 2017 +0700

----------------------------------------------------------------------
 .../apache/james/protocols/api/Protocol.java    |  6 ----
 .../james/protocols/api/ProtocolImpl.java       | 11 ++-----
 .../james/protocols/api/ProtocolSession.java    |  9 +-----
 .../protocols/api/ProtocolSessionImpl.java      | 16 +---------
 .../api/handler/CommandDispatcher.java          | 14 +++++----
 .../api/handler/CommandHandlerResultLogger.java | 24 +++++----------
 .../protocols/lmtp/AbstractLMTPServerTest.java  |  2 +-
 .../netty/BasicChannelUpstreamHandler.java      | 19 +++++-------
 .../james/protocols/pop3/POP3Protocol.java      |  7 ++---
 .../james/protocols/pop3/POP3SessionImpl.java   |  5 ++-
 .../pop3/core/AbstractPassCmdHandler.java       |  5 ++-
 .../protocols/pop3/core/QuitCmdHandler.java     |  6 ++--
 .../protocols/pop3/core/RsetCmdHandler.java     |  5 ++-
 .../protocols/pop3/AbstractPOP3ServerTest.java  |  2 +-
 .../pop3/AbstractStartTlsPOP3ServerTest.java    |  2 +-
 .../james/protocols/smtp/SMTPProtocol.java      |  7 ++---
 .../james/protocols/smtp/SMTPSessionImpl.java   |  5 ++-
 .../smtp/core/AbstractHookableCmdHandler.java   |  7 +++--
 .../smtp/core/DataLineMessageHookHandler.java   | 10 +++---
 .../protocols/smtp/core/MailCmdHandler.java     | 15 +++++----
 .../smtp/core/PostmasterAbuseRcptHook.java      |  5 ++-
 .../protocols/smtp/core/RcptCmdHandler.java     | 16 +++++-----
 .../smtp/core/esmtp/AuthCmdHandler.java         | 19 +++++++-----
 .../smtp/core/esmtp/MailSizeEsmtpExtension.java | 16 ++++++----
 .../core/fastfail/AbstractGreylistHandler.java  | 15 +++++----
 .../core/fastfail/AbstractValidRcptHandler.java |  8 +++--
 .../smtp/core/fastfail/DNSRBLHandler.java       | 21 +++++++------
 .../smtp/core/fastfail/MaxRcptHandler.java      |  5 ++-
 .../smtp/core/fastfail/SpamTrapHandler.java     |  9 ++++--
 .../fastfail/SupressDuplicateRcptHandler.java   |  5 ++-
 .../smtp/core/log/HookResultLogger.java         |  9 ++++--
 .../protocols/smtp/AbstractSMTPServerTest.java  |  2 +-
 .../smtp/netty/NettyStartTlsSMTPServerTest.java |  2 +-
 .../smtp/utils/BaseFakeSMTPSession.java         | 11 -------
 .../hook/MailboxDeliverToRecipientHandler.java  |  6 ++--
 .../james/lmtpserver/netty/LMTPServer.java      |  4 +--
 .../james/pop3server/netty/POP3Server.java      |  2 +-
 .../DataLineJamesMessageHookHandler.java        | 17 ++++++-----
 .../james/smtpserver/ExtendedSMTPSession.java   |  2 +-
 .../james/smtpserver/JamesDataCmdHandler.java   |  5 ++-
 .../james/smtpserver/SendMailHandler.java       | 11 ++++---
 .../james/smtpserver/SetMimeHeaderHandler.java  |  5 ++-
 .../org/apache/james/smtpserver/TLDLookup.java  | 30 ++++--------------
 .../smtpserver/UsersRepositoryAuthHook.java     |  5 ++-
 .../fastfail/JDBCGreylistHandler.java           |  3 +-
 .../james/smtpserver/fastfail/SPFHandler.java   |  6 ++--
 .../fastfail/SpamAssassinHandler.java           |  7 +++--
 .../smtpserver/fastfail/URIRBLHandler.java      | 26 ++++++----------
 .../james/smtpserver/fastfail/URIScanner.java   | 32 ++++++++------------
 .../smtpserver/fastfail/ValidRcptHandler.java   | 11 ++++---
 .../james/smtpserver/fastfail/ValidRcptMX.java  |  6 +---
 .../netty/SMTPChannelUpstreamHandler.java       |  5 ++-
 .../james/smtpserver/netty/SMTPServer.java      |  4 +--
 53 files changed, 241 insertions(+), 266 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java b/protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java
index 23e7341..f4b74f3 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/Protocol.java
@@ -20,7 +20,6 @@
 package org.apache.james.protocols.api;
 
 import org.apache.james.protocols.api.handler.ProtocolHandlerChain;
-import org.slf4j.Logger;
 
 /**
  * Define a protocol
@@ -50,9 +49,4 @@ public interface Protocol {
      */
     ProtocolSession newSession(ProtocolTransport transport);
 
-    /**
-     * @return The logger associated with the protocol
-     */
-    Logger getProtocolLogger();
-
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
index a010c54..8c71cba 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
@@ -20,7 +20,6 @@
 package org.apache.james.protocols.api;
 
 import org.apache.james.protocols.api.handler.ProtocolHandlerChain;
-import org.slf4j.Logger;
 
 /**
  * Basic {@link Protocol} implementation 
@@ -29,12 +28,10 @@ import org.slf4j.Logger;
 public abstract class ProtocolImpl implements Protocol{
     private final ProtocolHandlerChain chain;
     private final ProtocolConfiguration config;
-    protected final Logger logger;
 
-    public ProtocolImpl(ProtocolHandlerChain chain, ProtocolConfiguration config, Logger logger) {
+    public ProtocolImpl(ProtocolHandlerChain chain, ProtocolConfiguration config) {
         this.chain = chain;
         this.config = config;
-        this.logger = logger;
     }
     
     /*
@@ -50,7 +47,7 @@ public abstract class ProtocolImpl implements Protocol{
      * @see org.apache.james.protocols.api.Protocol#newSession(org.apache.james.protocols.api.ProtocolTransport)
      */
     public ProtocolSession newSession(ProtocolTransport transport) {
-        return new ProtocolSessionImpl(logger, transport, config);
+        return new ProtocolSessionImpl(transport, config);
     }
 
     /*
@@ -60,8 +57,4 @@ public abstract class ProtocolImpl implements Protocol{
     public ProtocolConfiguration getConfiguration() {
         return config;
     }
-
-    public Logger getProtocolLogger() {
-        return logger;
-    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
index 6fc3609..bc48249 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSession.java
@@ -24,7 +24,6 @@ import java.nio.charset.Charset;
 import java.util.Map;
 
 import org.apache.james.protocols.api.handler.LineHandler;
-import org.slf4j.Logger;
 
 /**
  * Session for a protocol. Every new connection generates a new session
@@ -37,13 +36,7 @@ public interface ProtocolSession {
         Connection,
         Transaction
     }
-    /**
-     * Gets the context sensitive log for this session.
-     * @return log, not null
-     */
-    Logger getLogger();
-    
-    
+
     /**
      * Store the given value with the given key in the specified {@link State}. If you want to remove a value you need to use <code>null</code> as value
      * 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
index 930a137..67859a8 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/ProtocolSessionImpl.java
@@ -25,7 +25,6 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.james.protocols.api.handler.LineHandler;
-import org.slf4j.Logger;
 
 /**
  * Basic implementation of {@link ProtocolSession}
@@ -33,8 +32,6 @@ import org.slf4j.Logger;
  * 
  */
 public class ProtocolSessionImpl implements ProtocolSession {
-
-    private final Logger pLog;
     private final ProtocolTransport transport;
     private final Map<String, Object> connectionState;
     private final Map<String, Object> sessionState;
@@ -43,13 +40,11 @@ public class ProtocolSessionImpl implements ProtocolSession {
     private final static Charset CHARSET = Charset.forName("US-ASCII");
     private final static String DELIMITER = "\r\n";
     
-    public ProtocolSessionImpl(Logger logger, ProtocolTransport transport, ProtocolConfiguration config) {
+    public ProtocolSessionImpl(ProtocolTransport transport, ProtocolConfiguration config) {
         this.transport = transport;
-        this.pLog = logger;
         this.connectionState = new HashMap<>();
         this.sessionState = new HashMap<>();
         this.config = config;
-
     }
 
     /*
@@ -105,15 +100,6 @@ public class ProtocolSessionImpl implements ProtocolSession {
         return transport.isTLSStarted();
     }
 
-
-    /**
-     * @see org.apache.james.protocols.api.ProtocolSession#getLogger()
-     */
-    public Logger getLogger() {
-        return pLog;
-    }
-    
-
     /**
      * @see org.apache.james.protocols.api.ProtocolSession#getSessionID()
      */

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java b/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java
index 0d296b0..00b87bf 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandDispatcher.java
@@ -37,7 +37,8 @@ import org.apache.james.protocols.api.Request;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.future.FutureResponse;
 import org.apache.james.protocols.api.future.FutureResponseImpl;
-
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -45,6 +46,7 @@ import org.apache.james.protocols.api.future.FutureResponseImpl;
  *
  */
 public class CommandDispatcher<Session extends ProtocolSession> implements ExtensibleHandler, LineHandler<Session> {
+    private static final Logger LOGGER = LoggerFactory.getLogger(CommandDispatcher.class);
     /**
      * The list of available command handlers
      */
@@ -99,8 +101,8 @@ public class CommandDispatcher<Session extends ProtocolSession> implements Exten
         if (command == null) {
             return null;
         }
-        if (session.getLogger().isDebugEnabled()) {
-            session.getLogger().debug("Lookup command handler for command: " + command);
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug("Lookup command handler for command: " + command);
         }
         List<CommandHandler<Session>> handlers =  commandHandlerMap.get(command);
         if(handlers == null) {
@@ -157,7 +159,7 @@ public class CommandDispatcher<Session extends ProtocolSession> implements Exten
             }
             return dispatchCommandHandlers(session, request);
         } catch (Exception e) {
-            session.getLogger().debug("Unable to parse request", e);
+            LOGGER.debug("Unable to parse request", e);
             return session.newFatalErrorResponse();
         } 
 
@@ -173,8 +175,8 @@ public class CommandDispatcher<Session extends ProtocolSession> implements Exten
      * @return response
      */
     protected Response dispatchCommandHandlers(Session session, Request request) {
-        if (session.getLogger().isDebugEnabled()) {
-            session.getLogger().debug(getClass().getName() + " received: " + request.getCommand());
+        if (LOGGER.isDebugEnabled()) {
+            LOGGER.debug(getClass().getName() + " received: " + request.getCommand());
         }
         List<CommandHandler<Session>> commandHandlers = getCommandHandlers(request.getCommand(), session);
         // fetch the command handlers registered to the command

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java
----------------------------------------------------------------------
diff --git a/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java b/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java
index 0d15cf6..37f0410 100644
--- a/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java
+++ b/protocols/api/src/main/java/org/apache/james/protocols/api/handler/CommandHandlerResultLogger.java
@@ -23,36 +23,26 @@ import org.apache.commons.configuration.ConfigurationException;
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.Response;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 
  * {@link ProtocolHandlerResultHandler} which logs the {@link Response} of {@link CommandHandler}'s.
- * 
- * By default it logs to {@link Logger#debug(String)}, but subclasses can override this by override {@link #log(ProtocolSession, Response, String)} method.
  *
  */
 public class CommandHandlerResultLogger implements ProtocolHandlerResultHandler<Response, ProtocolSession> {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(CommandHandlerResultLogger.class);
+
     public Response onResponse(ProtocolSession session, Response response, long executionTime, ProtocolHandler handler) {
         if (handler instanceof CommandHandler) {
             String logmessage = handler.getClass().getName() + ": " + response.toString();
-        
-            log(session, response, logmessage);
-        }
-        return response;
-    }
 
-    /**
-     * Log the given logmessage
-     * 
-     * @param session
-     * @param response
-     * @param logmessage
-     */
-    protected void log(ProtocolSession session, Response response, String logmessage) {
-        if (session.getLogger().isDebugEnabled()) {
-            session.getLogger().debug(logmessage);
+            if (LOGGER.isDebugEnabled()) {
+                LOGGER.debug(logmessage);
+            }
         }
+        return response;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java b/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
index 2a7ccc7..f2badab 100644
--- a/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
+++ b/protocols/lmtp/src/test/java/org/apache/james/protocols/lmtp/AbstractLMTPServerTest.java
@@ -71,7 +71,7 @@ public abstract class AbstractLMTPServerTest extends AbstractSMTPServerTest{
         }
         chain.addAll(0, hList);
         chain.wireExtensibleHandlers();
-        return new SMTPProtocol(chain, new LMTPConfigurationImpl(), LOGGER);
+        return new SMTPProtocol(chain, new LMTPConfigurationImpl());
     }
     
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelUpstreamHandler.java
----------------------------------------------------------------------
diff --git a/protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelUpstreamHandler.java b/protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelUpstreamHandler.java
index 16d43cc..f052805 100644
--- a/protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelUpstreamHandler.java
+++ b/protocols/netty/src/main/java/org/apache/james/protocols/netty/BasicChannelUpstreamHandler.java
@@ -47,12 +47,14 @@ import org.jboss.netty.channel.MessageEvent;
 import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
 import org.jboss.netty.handler.codec.frame.TooLongFrameException;
 import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * {@link ChannelUpstreamHandler} which is used by the SMTPServer and other line based protocols
  */
 @Sharable
 public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(BasicChannelUpstreamHandler.class);
     protected final Protocol protocol;
     protected final ProtocolHandlerChain chain;
     protected final Encryption secure;
@@ -88,7 +90,7 @@ public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
             List<ConnectHandler> connectHandlers = chain.getHandlers(ConnectHandler.class);
             List<ProtocolHandlerResultHandler> resultHandlers = chain.getHandlers(ProtocolHandlerResultHandler.class);
             ProtocolSession session = (ProtocolSession) ctx.getAttachment();
-            session.getLogger().info("Connection established from " + session.getRemoteAddress().getAddress().getHostAddress());
+            LOGGER.info("Connection established from " + session.getRemoteAddress().getAddress().getHostAddress());
             if (connectHandlers != null) {
                 for (ConnectHandler cHandler : connectHandlers) {
                     long start = System.currentTimeMillis();
@@ -98,7 +100,7 @@ public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
                     for (ProtocolHandlerResultHandler resultHandler : resultHandlers) {
                         // Disable till PROTOCOLS-37 is implemented
                         if (response instanceof FutureResponse) {
-                            session.getLogger().debug("ProtocolHandlerResultHandler are not supported for FutureResponse yet");
+                            LOGGER.debug("ProtocolHandlerResultHandler are not supported for FutureResponse yet");
                             break;
                         }
                         resultHandler.onResponse(session, response, executionTime, cHandler);
@@ -155,7 +157,7 @@ public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
                 for (ProtocolHandlerResultHandler resultHandler : resultHandlers) {
                     // Disable till PROTOCOLS-37 is implemented
                     if (response instanceof FutureResponse) {
-                        pSession.getLogger().debug("ProtocolHandlerResultHandler are not supported for FutureResponse yet");
+                        LOGGER.debug("ProtocolHandlerResultHandler are not supported for FutureResponse yet");
                         break;
                     }
                     response = resultHandler.onResponse(pSession, response, executionTime, lHandler);
@@ -176,7 +178,7 @@ public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
     public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
         try (Closeable closeable = ProtocolMDCContext.from(protocol, ctx)) {
             ProtocolSession session = (ProtocolSession) ctx.getAttachment();
-            getLogger(session).info("Connection closed for " + session.getRemoteAddress().getAddress().getHostAddress());
+            LOGGER.info("Connection closed for " + session.getRemoteAddress().getAddress().getHostAddress());
             cleanup(ctx);
 
             super.channelClosed(ctx, e);
@@ -232,17 +234,10 @@ public class BasicChannelUpstreamHandler extends SimpleChannelUpstreamHandler {
                     }
                     transport.writeResponse(Response.DISCONNECT, session);
                 }
-                getLogger(session).error("Unable to process request", e.getCause());
+                LOGGER.error("Unable to process request", e.getCause());
                 cleanup(ctx);
             }
         }
     }
 
-    private Logger getLogger(ProtocolSession session) {
-        if (session != null) {
-            return session.getLogger();
-        }
-        return protocol.getProtocolLogger();
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
index ab3ad92..058b0e1 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
@@ -24,7 +24,6 @@ import org.apache.james.protocols.api.ProtocolImpl;
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.api.handler.ProtocolHandlerChain;
-import org.slf4j.Logger;
 
 /**
  * {@link ProtocolImpl} which implements the POP3 Protocol
@@ -32,8 +31,8 @@ import org.slf4j.Logger;
  */
 public class POP3Protocol extends ProtocolImpl{
     
-    public POP3Protocol(ProtocolHandlerChain chain, ProtocolConfiguration config, Logger logger) {
-        super(chain, config, logger);
+    public POP3Protocol(ProtocolHandlerChain chain, ProtocolConfiguration config) {
+        super(chain, config);
     }
 
     @Override
@@ -43,7 +42,7 @@ public class POP3Protocol extends ProtocolImpl{
 
     @Override
     public ProtocolSession newSession(ProtocolTransport transport) {
-        return new POP3SessionImpl(logger, transport, getConfiguration());
+        return new POP3SessionImpl(transport, getConfiguration());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java
index a473edd..2ac4be1 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/POP3SessionImpl.java
@@ -23,7 +23,6 @@ import org.apache.james.protocols.api.ProtocolSessionImpl;
 import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.pop3.mailbox.Mailbox;
-import org.slf4j.Logger;
 
 /**
  * {@link POP3Session} implementation which use Netty
@@ -36,8 +35,8 @@ public class POP3SessionImpl extends ProtocolSessionImpl implements POP3Session
     private Mailbox mailbox;
 
     
-    public POP3SessionImpl(Logger logger, ProtocolTransport transport, ProtocolConfiguration configData) {
-        super(logger, transport, configData);
+    public POP3SessionImpl(ProtocolTransport transport, ProtocolConfiguration configData) {
+        super(transport, configData);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java
index cb8fb8e..ded19ed 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/AbstractPassCmdHandler.java
@@ -26,6 +26,8 @@ import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
 import org.apache.james.protocols.pop3.mailbox.Mailbox;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableSet;
 
@@ -34,6 +36,7 @@ import com.google.common.collect.ImmutableSet;
  */
 public abstract class AbstractPassCmdHandler extends RsetCmdHandler {
     private static final Collection<String> COMMANDS = ImmutableSet.of("PASS");
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractPassCmdHandler.class);
     private static final Response UNEXPECTED_ERROR = new POP3Response(POP3Response.ERR_RESPONSE, "Unexpected error accessing mailbox").immutable();
     protected static final Response AUTH_FAILED = new POP3Response(POP3Response.ERR_RESPONSE, "Authentication failed.").immutable();
 
@@ -78,7 +81,7 @@ public abstract class AbstractPassCmdHandler extends RsetCmdHandler {
                 return AUTH_FAILED;
             }
         } catch (Exception e) {
-            session.getLogger().error("Unexpected error accessing mailbox for " + session.getUser(), e);
+            LOGGER.error("Unexpected error accessing mailbox for " + session.getUser(), e);
             session.setHandlerState(POP3Session.AUTHENTICATION_READY);
             return UNEXPECTED_ERROR;
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
index 88d70cc..4c12f60 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/QuitCmdHandler.java
@@ -32,6 +32,8 @@ import org.apache.james.protocols.api.handler.CommandHandler;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
 import org.apache.james.protocols.pop3.mailbox.Mailbox;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableSet;
 
@@ -39,8 +41,8 @@ import com.google.common.collect.ImmutableSet;
  * Handles QUIT command
  */
 public class QuitCmdHandler implements CommandHandler<POP3Session> {
-
     private static final Collection<String> COMMANDS = ImmutableSet.of("QUIT");
+    private static final Logger LOGGER = LoggerFactory.getLogger(QuitCmdHandler.class);
     private static final Response SIGN_OFF;
     private static final Response SIGN_OFF_NOT_CLEAN;
 
@@ -82,7 +84,7 @@ public class QuitCmdHandler implements CommandHandler<POP3Session> {
             response = SIGN_OFF;
         } catch (Exception ex) {
             response = SIGN_OFF_NOT_CLEAN;
-            session.getLogger().error("Some deleted messages were not removed", ex);
+            LOGGER.error("Some deleted messages were not removed", ex);
         }
         try {
             mailbox.close();

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java
index 1b62acf..f99385f 100644
--- a/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java
+++ b/protocols/pop3/src/main/java/org/apache/james/protocols/pop3/core/RsetCmdHandler.java
@@ -33,6 +33,8 @@ import org.apache.james.protocols.api.handler.CommandHandler;
 import org.apache.james.protocols.pop3.POP3Response;
 import org.apache.james.protocols.pop3.POP3Session;
 import org.apache.james.protocols.pop3.mailbox.MessageMetaData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableSet;
 
@@ -41,6 +43,7 @@ import com.google.common.collect.ImmutableSet;
  */
 public class RsetCmdHandler implements CommandHandler<POP3Session> {
     private static final Collection<String> COMMANDS = ImmutableSet.of("RSET");
+    private static final Logger LOGGER = LoggerFactory.getLogger(RsetCmdHandler.class);
 
     @Override
     public void init(Configuration config) throws ConfigurationException {
@@ -81,7 +84,7 @@ public class RsetCmdHandler implements CommandHandler<POP3Session> {
         } catch (IOException e) {
             // In the event of an exception being thrown there may or may not be
             // anything in userMailbox
-            session.getLogger().error("Unable to STAT mail box ", e);
+            LOGGER.error("Unable to STAT mail box ", e);
         }
 
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
index 6595106..dda1f7f 100644
--- a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
+++ b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractPOP3ServerTest.java
@@ -52,7 +52,7 @@ public abstract class AbstractPOP3ServerTest {
     private static final Logger LOGGER = LoggerFactory.getLogger(AbstractPOP3ServerTest.class);
 
     private POP3Protocol createProtocol(AbstractPassCmdHandler handler) throws WiringException {
-        return new POP3Protocol(new POP3ProtocolHandlerChain(handler), new POP3Configuration(), LOGGER);
+        return new POP3Protocol(new POP3ProtocolHandlerChain(handler), new POP3Configuration());
     }
     
     protected abstract ProtocolServer createServer(Protocol protocol);

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java
index e556946..418f749 100644
--- a/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java
+++ b/protocols/pop3/src/test/java/org/apache/james/protocols/pop3/AbstractStartTlsPOP3ServerTest.java
@@ -47,7 +47,7 @@ public abstract class AbstractStartTlsPOP3ServerTest {
     private static final Logger LOGGER = LoggerFactory.getLogger(AbstractStartTlsPOP3ServerTest.class);
 
     private POP3Protocol createProtocol(AbstractPassCmdHandler handler) throws WiringException {
-        return new POP3Protocol(new POP3ProtocolHandlerChain(handler), new POP3Configuration(), LOGGER);
+        return new POP3Protocol(new POP3ProtocolHandlerChain(handler), new POP3Configuration());
     }
     
     protected POP3SClient createClient() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
index 4e2ba67..cef7e4a 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
@@ -23,7 +23,6 @@ import org.apache.james.protocols.api.ProtocolImpl;
 import org.apache.james.protocols.api.ProtocolSession;
 import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.api.handler.ProtocolHandlerChain;
-import org.slf4j.Logger;
 
 /**
  * {@link ProtocolImpl} which creates {@link SMTPSessionImpl} instances
@@ -32,13 +31,13 @@ import org.slf4j.Logger;
  */
 public class SMTPProtocol extends ProtocolImpl {
 
-    public SMTPProtocol(ProtocolHandlerChain chain, SMTPConfiguration config, Logger logger) {
-        super(chain, config, logger);
+    public SMTPProtocol(ProtocolHandlerChain chain, SMTPConfiguration config) {
+        super(chain, config);
     }
 
     @Override
     public ProtocolSession newSession(ProtocolTransport transport) {
-        return new SMTPSessionImpl(logger, transport, (SMTPConfiguration) getConfiguration());
+        return new SMTPSessionImpl(transport, (SMTPConfiguration) getConfiguration());
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
index dbf8fdd..c5fad00 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
@@ -23,7 +23,6 @@ import java.util.Collection;
 import org.apache.james.protocols.api.ProtocolSessionImpl;
 import org.apache.james.protocols.api.ProtocolTransport;
 import org.apache.james.protocols.api.Response;
-import org.slf4j.Logger;
 
 /**
  * {@link SMTPSession} implementation
@@ -36,8 +35,8 @@ public class SMTPSessionImpl extends ProtocolSessionImpl implements SMTPSession
     private boolean relayingAllowed;
     private boolean needsCommandInjectionDetection;
     
-    public SMTPSessionImpl(Logger logger, ProtocolTransport transport, SMTPConfiguration config) {
-        super(logger, transport, config);
+    public SMTPSessionImpl(ProtocolTransport transport, SMTPConfiguration config) {
+        super(transport, config);
         relayingAllowed = config.isRelayingAllowed(getRemoteAddress().getAddress().getHostAddress());
         needsCommandInjectionDetection = true;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
index 3f52b83..145d3a7 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/AbstractHookableCmdHandler.java
@@ -40,6 +40,8 @@ import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookResultHook;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.util.MDCBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Throwables;
 
@@ -48,6 +50,7 @@ import com.google.common.base.Throwables;
  * 
  */
 public abstract class AbstractHookableCmdHandler<Hook extends org.apache.james.protocols.smtp.hook.Hook> implements CommandHandler<SMTPSession>, ExtensibleHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractHookableCmdHandler.class);
 
     private final MetricFactory metricFactory;
     private List<Hook> hooks;
@@ -112,7 +115,7 @@ public abstract class AbstractHookableCmdHandler<Hook extends org.apache.james.p
             int i = 0;
             while (i < count) {
                 Hook rawHook = hooks.get(i);
-                session.getLogger().debug("executing hook " + rawHook.getClass().getName());
+                LOGGER.debug("executing hook " + rawHook.getClass().getName());
                 long start = System.currentTimeMillis();
 
                 HookResult hRes = callHook(rawHook, session, parameters);
@@ -120,7 +123,7 @@ public abstract class AbstractHookableCmdHandler<Hook extends org.apache.james.p
 
                 if (rHooks != null) {
                     for (HookResultHook rHook : rHooks) {
-                        session.getLogger().debug("executing hook " + rHook);
+                        LOGGER.debug("executing hook " + rHook);
                         hRes = rHook.onHookResult(session, hRes, executionTime, rawHook);
                     }
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
index 6f29ae6..6ce88ea 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/DataLineMessageHookHandler.java
@@ -43,6 +43,8 @@ import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookResultHook;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.MessageHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This class handles the actual calling of the {@link MessageHook} implementations to queue the message. If no {@link MessageHook} return OK or DECLINED it will write back an
@@ -50,6 +52,7 @@ import org.apache.james.protocols.smtp.hook.MessageHook;
  *
  */
 public class DataLineMessageHookHandler implements DataLineFilter, ExtensibleHandler {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DataLineMessageHookHandler.class);
 
     private static final Response ERROR_PROCESSING_MESSAGE = new SMTPResponse(SMTPRetCode.LOCAL_ERROR,DSNStatus.getStatus(DSNStatus.TRANSIENT,
             DSNStatus.UNDEFINED_STATUS) + " Error processing message").immutable();
@@ -101,8 +104,7 @@ public class DataLineMessageHookHandler implements DataLineFilter, ExtensibleHan
             }
             out.flush();
         } catch (IOException e) {
-            session.getLogger().error(
-                    "Unknown error occurred while processing DATA.", e);
+            LOGGER.error("Unknown error occurred while processing DATA.", e);
             
             session.resetState();
             return ERROR_PROCESSING_MESSAGE;
@@ -131,7 +133,7 @@ public class DataLineMessageHookHandler implements DataLineFilter, ExtensibleHan
         if (mail != null && messageHandlers != null) {
             for (Object messageHandler : messageHandlers) {
                 MessageHook rawHandler = (MessageHook) messageHandler;
-                session.getLogger().debug("executing message handler " + rawHandler);
+                LOGGER.debug("executing message handler " + rawHandler);
 
                 long start = System.currentTimeMillis();
                 HookResult hRes = rawHandler.onMessage(session, mail);
@@ -139,7 +141,7 @@ public class DataLineMessageHookHandler implements DataLineFilter, ExtensibleHan
 
                 if (rHooks != null) {
                     for (Object rHook : rHooks) {
-                        session.getLogger().debug("executing hook " + rHook);
+                        LOGGER.debug("executing hook " + rHook);
                         hRes = ((HookResultHook) rHook).onHookResult(session, hRes, executionTime, rawHandler);
                     }
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
index d6a9997..a47726f 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/MailCmdHandler.java
@@ -42,6 +42,8 @@ import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.MailHook;
 import org.apache.james.protocols.smtp.hook.MailParametersHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableSet;
 
@@ -50,6 +52,7 @@ import com.google.common.collect.ImmutableSet;
  */
 public class MailCmdHandler extends AbstractHookableCmdHandler<MailHook> {
     private static final Collection<String> COMMANDS = ImmutableSet.of("MAIL");
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailCmdHandler.class);
     private static final Response SENDER_ALREADY_SPECIFIED =  new SMTPResponse(SMTPRetCode.BAD_SEQUENCE, DSNStatus
             .getStatus(DSNStatus.PERMANENT, DSNStatus.DELIVERY_OTHER)
             + " Sender already specified").immutable();
@@ -213,25 +216,25 @@ public class MailCmdHandler extends AbstractHookableCmdHandler<MailHook> {
                         }
                     } else {
                         // Unexpected option attached to the Mail command
-                        if (session.getLogger().isDebugEnabled()) {
+                        if (LOGGER.isDebugEnabled()) {
                             StringBuilder debugBuffer = new StringBuilder(128)
                                     .append(
                                             "MAIL command had unrecognized/unexpected option ")
                                     .append(mailOptionName).append(
                                             " with value ").append(
                                             mailOptionValue);
-                            session.getLogger().debug(debugBuffer.toString());
+                            LOGGER.debug(debugBuffer.toString());
                         }
                     }
                 }
             }
             if (session.getConfiguration().useAddressBracketsEnforcement()
                     && (!sender.startsWith("<") || !sender.endsWith(">"))) {
-                if (session.getLogger().isInfoEnabled()) {
+                if (LOGGER.isInfoEnabled()) {
                     StringBuilder errorBuffer = new StringBuilder(128).append(
                             "Error parsing sender address: ").append(sender)
                             .append(": did not start and end with < >");
-                    session.getLogger().info(errorBuffer.toString());
+                    LOGGER.info(errorBuffer.toString());
                 }
                 return SYNTAX_ERROR;
             }
@@ -256,12 +259,12 @@ public class MailCmdHandler extends AbstractHookableCmdHandler<MailHook> {
                 try {
                     senderAddress = new MailAddress(sender);
                 } catch (Exception pe) {
-                    if (session.getLogger().isInfoEnabled()) {
+                    if (LOGGER.isInfoEnabled()) {
                         StringBuilder errorBuffer = new StringBuilder(256)
                                 .append("Error parsing sender address: ")
                                 .append(sender).append(": ").append(
                                         pe.getMessage());
-                        session.getLogger().info(errorBuffer.toString());
+                        LOGGER.info(errorBuffer.toString());
                     }
                     return SYNTAX_ERROR_ADDRESS;
                 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java
index 81f6605..6c9f54e 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/PostmasterAbuseRcptHook.java
@@ -24,18 +24,21 @@ import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.RcptHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Handler which whitelist "postmaster" and "abuse" recipients.
  */
 public class PostmasterAbuseRcptHook implements RcptHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(PostmasterAbuseRcptHook.class);
     
     /**
      * @see org.apache.james.protocols.smtp.hook.RcptHook#doRcpt(org.apache.james.protocols.smtp.SMTPSession, org.apache.mailet.MailAddress, org.apache.mailet.MailAddress)
      */
     public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) {
         if (rcpt.getLocalPart().equalsIgnoreCase("postmaster") || rcpt.getLocalPart().equalsIgnoreCase("abuse")) {
-            session.getLogger().debug("Sender allowed");
+            LOGGER.debug("Sender allowed");
             return HookResult.ok();
         } else {
             return HookResult.declined();

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
index c259dd5..719cabc 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/RcptCmdHandler.java
@@ -39,6 +39,8 @@ import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.RcptHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableSet;
 
@@ -47,7 +49,7 @@ import com.google.common.collect.ImmutableSet;
  */
 public class RcptCmdHandler extends AbstractHookableCmdHandler<RcptHook> implements
         CommandHandler<SMTPSession> {
-
+    private static final Logger LOGGER = LoggerFactory.getLogger(RcptCmdHandler.class);
     public static final String CURRENT_RECIPIENT = "CURRENT_RECIPIENT"; // Current
                                                                         // recipient
     private static final Collection<String> COMMANDS = ImmutableSet.of("RCPT");
@@ -142,12 +144,12 @@ public class RcptCmdHandler extends AbstractHookableCmdHandler<RcptHook> impleme
         }
         if (session.getConfiguration().useAddressBracketsEnforcement()
                 && (!recipient.startsWith("<") || !recipient.endsWith(">"))) {
-            if (session.getLogger().isInfoEnabled()) {
+            if (LOGGER.isInfoEnabled()) {
                 StringBuilder errorBuffer = new StringBuilder(192).append(
                         "Error parsing recipient address: ").append(
                         "Address did not start and end with < >").append(
                         getContext(session, null, recipient));
-                session.getLogger().info(errorBuffer.toString());
+                LOGGER.info(errorBuffer.toString());
             }
             return SYNTAX_ERROR_DELIVERY;
         }
@@ -168,12 +170,12 @@ public class RcptCmdHandler extends AbstractHookableCmdHandler<RcptHook> impleme
         try {
             recipientAddress = new MailAddress(recipient);
         } catch (Exception pe) {
-            if (session.getLogger().isInfoEnabled()) {
+            if (LOGGER.isInfoEnabled()) {
                 StringBuilder errorBuffer = new StringBuilder(192).append(
                         "Error parsing recipient address: ").append(
                         getContext(session, recipientAddress, recipient))
                         .append(pe.getMessage());
-                session.getLogger().info(errorBuffer.toString());
+                LOGGER.info(errorBuffer.toString());
             }
             /*
              * from RFC2822; 553 Requested action not taken: mailbox name
@@ -197,7 +199,7 @@ public class RcptCmdHandler extends AbstractHookableCmdHandler<RcptHook> impleme
                     rcptOptionValue = rcptOption.substring(equalIndex + 1);
                 }
                 // Unexpected option attached to the RCPT command
-                if (session.getLogger().isDebugEnabled()) {
+                if (LOGGER.isDebugEnabled()) {
                     StringBuilder debugBuffer = new StringBuilder(128)
                             .append(
                                     "RCPT command had unrecognized/unexpected option ")
@@ -205,7 +207,7 @@ public class RcptCmdHandler extends AbstractHookableCmdHandler<RcptHook> impleme
                             .append(rcptOptionValue).append(
                                     getContext(session, recipientAddress,
                                             recipient));
-                    session.getLogger().debug(debugBuffer.toString());
+                    LOGGER.debug(debugBuffer.toString());
                 }
 
                 return new SMTPResponse(

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
index baedf96..f2108d7 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
@@ -48,6 +48,8 @@ import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookResultHook;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.MailParametersHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -64,6 +66,7 @@ import com.google.common.collect.ImmutableSet;
 public class AuthCmdHandler
     implements CommandHandler<SMTPSession>, EhloExtension, ExtensibleHandler, MailParametersHook {
     private static final Collection<String> COMMANDS = ImmutableSet.of("AUTH");
+    private static final Logger LOGGER = LoggerFactory.getLogger(CommandHandler.class);
     private static final String[] MAIL_PARAMS = { "AUTH" };
     private static final List<String> ESMTP_FEATURES = ImmutableList.of("AUTH LOGIN PLAIN", "AUTH=LOGIN PLAIN");
     
@@ -381,7 +384,7 @@ public class AuthCmdHandler
         
         if (hooks != null) {
             for (AuthHook rawHook : hooks) {
-                session.getLogger().debug("executing  hook " + rawHook);
+                LOGGER.debug("executing  hook " + rawHook);
 
                 long start = System.currentTimeMillis();
                 HookResult hRes = rawHook.doAuth(session, user, pass);
@@ -389,7 +392,7 @@ public class AuthCmdHandler
 
                 if (rHooks != null) {
                     for (HookResultHook rHook : rHooks) {
-                        session.getLogger().debug("executing  hook " + rHook);
+                        LOGGER.debug("executing  hook " + rHook);
                         hRes = rHook.onHookResult(session, hRes, executionTime, rawHook);
                     }
                 }
@@ -398,11 +401,11 @@ public class AuthCmdHandler
 
                 if (res != null) {
                     if (SMTPRetCode.AUTH_FAILED.equals(res.getRetCode())) {
-                        session.getLogger().info("AUTH method " + authType + " failed");
+                        LOGGER.info("AUTH method " + authType + " failed");
                     } else if (SMTPRetCode.AUTH_OK.equals(res.getRetCode())) {
-                        if (session.getLogger().isDebugEnabled()) {
+                        if (LOGGER.isDebugEnabled()) {
                             // TODO: Make this string a more useful debug message
-                            session.getLogger().debug("AUTH method " + authType + " succeeded");
+                            LOGGER.debug("AUTH method " + authType + " succeeded");
                         }
                     }
                     return res;
@@ -411,7 +414,7 @@ public class AuthCmdHandler
         }
 
         res = AUTH_FAILED;
-        session.getLogger().error("AUTH method "+authType+" failed from " + user + "@" + session.getRemoteAddress().getAddress().getHostAddress()); 
+        LOGGER.error("AUTH method "+authType+" failed from " + user + "@" + session.getRemoteAddress().getAddress().getHostAddress());
         return res;
     }
 
@@ -486,13 +489,13 @@ public class AuthCmdHandler
      * @param initialResponse the initial response line passed in with the AUTH command
      */
     private Response doUnknownAuth(SMTPSession session, String authType, String initialResponse) {
-        if (session.getLogger().isInfoEnabled()) {
+        if (LOGGER.isInfoEnabled()) {
             StringBuilder errorBuffer =
                 new StringBuilder(128)
                     .append("AUTH method ")
                         .append(authType)
                         .append(" is an unrecognized authentication type");
-            session.getLogger().info(errorBuffer.toString());
+            LOGGER.info(errorBuffer.toString());
         }
         return UNKNOWN_AUTH_TYPE;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
index 51184c0..10fd3cf 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/MailSizeEsmtpExtension.java
@@ -26,8 +26,8 @@ import java.util.List;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
-import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.ProtocolSession.State;
+import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.apache.james.protocols.smtp.MailEnvelope;
 import org.apache.james.protocols.smtp.SMTPResponse;
@@ -39,12 +39,16 @@ import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.MailParametersHook;
 import org.apache.james.protocols.smtp.hook.MessageHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Handle the ESMTP SIZE extension.
  */
 public class MailSizeEsmtpExtension implements MailParametersHook, EhloExtension, DataLineFilter, MessageHook {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailSizeEsmtpExtension.class);
+
     private final static String MESG_SIZE = "MESG_SIZE"; // The size of the
     private final static String MESG_FAILED = "MESG_FAILED";   // Message failed flag
     private final static String[] MAIL_PARAMS = { "SIZE" };
@@ -113,16 +117,16 @@ public class MailSizeEsmtpExtension implements MailParametersHook, EhloExtension
         try {
             size = Integer.parseInt(mailOptionValue);
         } catch (NumberFormatException pe) {
-            session.getLogger().error("Rejected syntactically incorrect value for SIZE parameter.");
+            LOGGER.error("Rejected syntactically incorrect value for SIZE parameter.");
             
             // This is a malformed option value. We return an error
             return SYNTAX_ERROR;
         }
-        if (session.getLogger().isDebugEnabled()) {
+        if (LOGGER.isDebugEnabled()) {
             StringBuilder debugBuffer = new StringBuilder(128).append(
                     "MAIL command option SIZE received with value ").append(
                     size).append(".");
-            session.getLogger().debug(debugBuffer.toString());
+            LOGGER.debug(debugBuffer.toString());
         }
         long maxMessageSize = session.getConfiguration().getMaxMessageSize();
         if ((maxMessageSize > 0) && (size > maxMessageSize)) {
@@ -135,7 +139,7 @@ public class MailSizeEsmtpExtension implements MailParametersHook, EhloExtension
                     .append(size).append(
                             " exceeding system maximum message size of ")
                     .append(maxMessageSize).append("based on SIZE option.");
-            session.getLogger().error(errorBuffer.toString());
+            LOGGER.error(errorBuffer.toString());
 
             return QUOTA_EXCEEDED;
         } else {
@@ -212,7 +216,7 @@ public class MailSizeEsmtpExtension implements MailParametersHook, EhloExtension
                     .append(" exceeding system maximum message size of ")
                     .append(
                             session.getConfiguration().getMaxMessageSize());
-            session.getLogger().error(errorBuffer.toString());
+            LOGGER.error(errorBuffer.toString());
             return QUOTA_EXCEEDED;
         } else {
             return HookResult.declined();

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
index bb96f22..2fe36b0 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractGreylistHandler.java
@@ -28,6 +28,8 @@ import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -36,6 +38,7 @@ import org.apache.james.protocols.smtp.hook.RcptHook;
  *
  */
 public abstract class AbstractGreylistHandler implements RcptHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractGreylistHandler.class);
 
     /** 1 hour */
     private long tempBlockTime = 3600000;
@@ -86,7 +89,7 @@ public abstract class AbstractGreylistHandler implements RcptHook {
                 count = Integer.parseInt(data.next());
             }
             
-            session.getLogger().debug("Triplet " + ipAddress + " | " + sender + " | " + recip  +" -> TimeStamp: " + createTimeStamp);
+            LOGGER.debug("Triplet " + ipAddress + " | " + sender + " | " + recip  +" -> TimeStamp: " + createTimeStamp);
 
 
             // if the timestamp is bigger as 0 we have allready a triplet stored
@@ -97,14 +100,14 @@ public abstract class AbstractGreylistHandler implements RcptHook {
                     return TO_FAST;
                 } else {
                     
-                    session.getLogger().debug("Update triplet " + ipAddress + " | " + sender + " | " + recip + " -> timestamp: " + time);
+                    LOGGER.debug("Update triplet " + ipAddress + " | " + sender + " | " + recip + " -> timestamp: " + time);
                     
                     // update the triplet..
                     updateTriplet(ipAddress, sender, recip, count, time);
 
                 }
             } else {
-                session.getLogger().debug("New triplet " + ipAddress + " | " + sender + " | " + recip );
+                LOGGER.debug("New triplet " + ipAddress + " | " + sender + " | " + recip );
            
                 // insert a new triplet
                 insertTriplet(ipAddress, sender, recip, count, time);
@@ -117,7 +120,7 @@ public abstract class AbstractGreylistHandler implements RcptHook {
             if (Math.random() > 0.99) {
                 // cleanup old entries
             
-                session.getLogger().debug("Delete old entries");
+                LOGGER.debug("Delete old entries");
             
                 cleanupAutoWhiteListGreyList(time - autoWhiteListLifeTime);
                 cleanupGreyList(time - unseenLifeTime);
@@ -125,7 +128,7 @@ public abstract class AbstractGreylistHandler implements RcptHook {
 
         } catch (Exception e) {
             // just log the exception
-            session.getLogger().error("Error on greylist method: " + e.getMessage());
+            LOGGER.error("Error on greylist method: " + e.getMessage());
         }
         return HookResult.declined();
     }
@@ -209,7 +212,7 @@ public abstract class AbstractGreylistHandler implements RcptHook {
         if (!session.isRelayingAllowed()) {
             return doGreyListCheck(session, sender,rcpt);
         } else {
-            session.getLogger().info("IpAddress " + session.getRemoteAddress().getAddress().getHostAddress() + " is allowed to send. Skip greylisting.");
+            LOGGER.info("IpAddress " + session.getRemoteAddress().getAddress().getHostAddress() + " is allowed to send. Skip greylisting.");
         }
         return HookResult.declined();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
index b839dfa..8a148ba 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/AbstractValidRcptHandler.java
@@ -29,6 +29,8 @@ import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -36,8 +38,8 @@ import org.apache.james.protocols.smtp.hook.RcptHook;
  *
  */
 public abstract class AbstractValidRcptHandler implements RcptHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractValidRcptHandler.class);
 
-    
     /**
      * @see org.apache.james.protocols.smtp.hook.RcptHook#doRcpt(org.apache.james.protocols.smtp.SMTPSession, org.apache.mailet.MailAddress, org.apache.mailet.MailAddress)
      */
@@ -53,7 +55,7 @@ public abstract class AbstractValidRcptHandler implements RcptHook {
             }
         } else {
             if (isLocalDomain(session, rcpt.getDomain()) == false) {
-                session.getLogger().debug("Unknown domain " + rcpt.getDomain() + " so reject it");
+                LOGGER.debug("Unknown domain " + rcpt.getDomain() + " so reject it");
 
             } else {
                 if (isValidRecipient(session, rcpt) == false) {
@@ -64,7 +66,7 @@ public abstract class AbstractValidRcptHandler implements RcptHook {
        
         if (reject) {
           //user not exist
-            session.getLogger().info("Rejected message. Unknown user: " + rcpt.toString());
+            LOGGER.info("Rejected message. Unknown user: " + rcpt.toString());
             return new HookResult(HookReturnCode.DENY,SMTPRetCode.MAILBOX_PERM_UNAVAILABLE, DSNStatus.getStatus(DSNStatus.PERMANENT,DSNStatus.ADDRESS_MAILBOX) + " Unknown user: " + rcpt.toString());
         } else {
             return HookResult.declined();

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
index 073ccab..312708e 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/DNSRBLHandler.java
@@ -33,11 +33,14 @@ import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
   * Connect handler for DNSRBL processing
   */
 public class DNSRBLHandler implements RcptHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(DNSRBLHandler.class);
 
     /**
      * The lists of rbl servers to be checked to limit spam
@@ -119,7 +122,7 @@ public class DNSRBLHandler implements RcptHook {
          * This whould make no sense.
          */
         if (session.isRelayingAllowed()) {
-            session.getLogger().info("Ipaddress " + session.getRemoteAddress().getAddress() + " is allowed to relay. Don't check it");
+            LOGGER.info("Ipaddress " + session.getRemoteAddress().getAddress() + " is allowed to relay. Don't check it");
             return;
         }
         
@@ -135,14 +138,14 @@ public class DNSRBLHandler implements RcptHook {
                 String[] rblList = whitelist;
                 for (String rbl : rblList) {
                     if (resolve(reversedOctets + rbl)) {
-                        if (session.getLogger().isInfoEnabled()) {
-                            session.getLogger().info("Connection from " + ipAddress + " whitelisted by " + rbl);
+                        if (LOGGER.isInfoEnabled()) {
+                            LOGGER.info("Connection from " + ipAddress + " whitelisted by " + rbl);
                         }
 
                         return;
                     } else {
-                        if (session.getLogger().isDebugEnabled()) {
-                            session.getLogger().debug("IpAddress " + session.getRemoteAddress().getAddress() + " not listed on " + rbl);
+                        if (LOGGER.isDebugEnabled()) {
+                            LOGGER.debug("IpAddress " + session.getRemoteAddress().getAddress() + " not listed on " + rbl);
                         }
                     }
                 }
@@ -152,8 +155,8 @@ public class DNSRBLHandler implements RcptHook {
                 String[] rblList = blacklist;
                 for (String rbl : rblList) {
                     if (resolve(reversedOctets + rbl)) {
-                        if (session.getLogger().isInfoEnabled()) {
-                            session.getLogger().info("Connection from " + ipAddress + " restricted by " + rbl + " to SMTP AUTH/postmaster/abuse.");
+                        if (LOGGER.isInfoEnabled()) {
+                            LOGGER.info("Connection from " + ipAddress + " restricted by " + rbl + " to SMTP AUTH/postmaster/abuse.");
                         }
 
                         // we should try to retrieve details
@@ -173,8 +176,8 @@ public class DNSRBLHandler implements RcptHook {
                         return;
                     } else {
                         // if it is unknown, it isn't blocked
-                        if (session.getLogger().isDebugEnabled()) {
-                            session.getLogger().debug("unknown host exception thrown:" + rbl);
+                        if (LOGGER.isDebugEnabled()) {
+                            LOGGER.debug("unknown host exception thrown:" + rbl);
                         }
                     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
index 3060691..43c4b5b 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/MaxRcptHandler.java
@@ -31,8 +31,11 @@ import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class MaxRcptHandler implements RcptHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MaxRcptHandler.class);
 
     private static final HookResult MAX_RCPT = new HookResult(HookReturnCode.DENY, SMTPRetCode.SYSTEM_STORAGE_ERROR, DSNStatus.getStatus(DSNStatus.NETWORK, DSNStatus.DELIVERY_TOO_MANY_REC)
             + " Requested action not taken: max recipients reached");
@@ -54,7 +57,7 @@ public class MaxRcptHandler implements RcptHook {
      */
     public HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress rcpt) {
         if ((session.getRcptCount() + 1) > maxRcpt) {
-            session.getLogger().info("Maximum recipients of " + maxRcpt + " reached");
+            LOGGER.info("Maximum recipients of " + maxRcpt + " reached");
             
             return MAX_RCPT;
         } else {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
index 7663d6b..73df529 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SpamTrapHandler.java
@@ -32,12 +32,15 @@ import org.apache.james.protocols.smtp.MailAddress;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.RcptHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This handler can be used for providing a spam trap. IPAddresses which send emails to the configured
  * recipients will get blacklisted for the configured time.
  */
 public class SpamTrapHandler implements RcptHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SpamTrapHandler.class);
 
     /** Map which hold blockedIps and blockTime in memory */
     private final Map<String,Long> blockedIps = new HashMap<>();
@@ -99,10 +102,10 @@ public class SpamTrapHandler implements RcptHook {
             long blockTime = rawTime.longValue();
            
             if (blockTime > System.currentTimeMillis()) {
-                session.getLogger().debug("BlockList contain Ip " + ip);
+                LOGGER.debug("BlockList contain Ip " + ip);
                 return true;
             } else {
-                session.getLogger().debug("Remove ip " + ip + " from blockList");
+                LOGGER.debug("Remove ip " + ip + " from blockList");
                
                 synchronized(blockedIps) {
                     blockedIps.remove(ip);
@@ -121,7 +124,7 @@ public class SpamTrapHandler implements RcptHook {
     private void addIp(String ip, SMTPSession session) {
         long bTime = System.currentTimeMillis() + blockTime;
         
-        session.getLogger().debug("Add ip " + ip + " for " + bTime + " to blockList");
+        LOGGER.debug("Add ip " + ip + " for " + bTime + " to blockList");
     
         synchronized(blockedIps) {
             blockedIps.put(ip, Long.valueOf(bTime));

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
index fb363f9..69c823e 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/fastfail/SupressDuplicateRcptHandler.java
@@ -34,12 +34,15 @@ import org.apache.james.protocols.smtp.dsn.DSNStatus;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.protocols.smtp.hook.RcptHook;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 
  * This handler can be used to just ignore duplicated recipients. 
  */
 public class SupressDuplicateRcptHandler implements RcptHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(SupressDuplicateRcptHandler.class);
 
     @Override
     public void init(Configuration config) throws ConfigurationException {
@@ -66,7 +69,7 @@ public class SupressDuplicateRcptHandler implements RcptHook {
                           .append(" Recipient <")
                           .append(rcpt.toString())
                           .append("> OK");
-            session.getLogger().debug("Duplicate recipient not add to recipient list: " + rcpt.toString());
+            LOGGER.debug("Duplicate recipient not add to recipient list: " + rcpt.toString());
             return new HookResult(HookReturnCode.OK,SMTPRetCode.MAIL_OK, responseBuffer.toString());
         }
         return HookResult.declined();

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
index 431e84e..37ea742 100644
--- a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
+++ b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/core/log/HookResultLogger.java
@@ -25,6 +25,8 @@ import org.apache.james.protocols.smtp.hook.Hook;
 import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookResultHook;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * 
@@ -32,7 +34,8 @@ import org.apache.james.protocols.smtp.hook.HookReturnCode;
  * logged to INFO. If not to DEBUG
  *
  */
-public class HookResultLogger implements HookResultHook{
+public class HookResultLogger implements HookResultHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(HookResultLogger.class);
 
     @Override
     public void init(Configuration config) throws ConfigurationException {
@@ -81,9 +84,9 @@ public class HookResultLogger implements HookResultHook{
         sb.append(")");
 
         if (info) {
-            session.getLogger().info(sb.toString());
+            LOGGER.info(sb.toString());
         } else {
-            session.getLogger().debug(sb.toString());
+            LOGGER.debug(sb.toString());
         }
         return hResult;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
index 19d2421..b29b329 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/AbstractSMTPServerTest.java
@@ -1103,7 +1103,7 @@ public abstract class AbstractSMTPServerTest {
         SMTPProtocolHandlerChain chain = new SMTPProtocolHandlerChain(new NoopMetricFactory());
         chain.addAll(0, Arrays.asList(handlers));
         chain.wireExtensibleHandlers();
-        return new SMTPProtocol(chain, new SMTPConfigurationImpl(), LOGGER);
+        return new SMTPProtocol(chain, new SMTPConfigurationImpl());
     }
     
     protected static void checkEnvelope(MailEnvelope env, String sender, List<String> recipients, String msg) throws IOException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
index 0178f0a..624b2dc 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/netty/NettyStartTlsSMTPServerTest.java
@@ -101,7 +101,7 @@ public class NettyStartTlsSMTPServerTest {
             chain.add(handler.get());
         }
         chain.wireExtensibleHandlers();
-        return new SMTPProtocol(chain, new SMTPConfigurationImpl(), LOGGER);
+        return new SMTPProtocol(chain, new SMTPConfigurationImpl());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/BaseFakeSMTPSession.java
----------------------------------------------------------------------
diff --git a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/BaseFakeSMTPSession.java b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/BaseFakeSMTPSession.java
index 78b7e64..456c93e 100644
--- a/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/BaseFakeSMTPSession.java
+++ b/protocols/smtp/src/test/java/org/apache/james/protocols/smtp/utils/BaseFakeSMTPSession.java
@@ -29,16 +29,12 @@ import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.LineHandler;
 import org.apache.james.protocols.smtp.SMTPConfiguration;
 import org.apache.james.protocols.smtp.SMTPSession;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Abstract class to simplify the mocks
  */
 public class BaseFakeSMTPSession implements SMTPSession {
 
-    private static final Logger log = LoggerFactory.getLogger(BaseFakeSMTPSession.class);
-
     @Override
     public boolean needsCommandInjectionDetection() {
         throw new UnsupportedOperationException("Unimplemented Stub Method");
@@ -132,13 +128,6 @@ public class BaseFakeSMTPSession implements SMTPSession {
         throw new UnsupportedOperationException("Unimplemented Stub Method");
     }
 
-    /**
-     * @see org.apache.james.protocols.smtp.SMTPSession#getLogger()
-     */
-    public Logger getLogger() {
-        return log;
-    }
-
     public boolean isStartTLSSupported() {
         return false;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
index dfa9a8a..32c8ab2 100644
--- a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
+++ b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/hook/MailboxDeliverToRecipientHandler.java
@@ -41,6 +41,8 @@ import org.apache.james.protocols.smtp.hook.HookResult;
 import org.apache.james.protocols.smtp.hook.HookReturnCode;
 import org.apache.james.user.api.UsersRepository;
 import org.apache.james.user.api.UsersRepositoryException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * {@link DeliverToRecipientHook} which deliver the message directly to the recipients mailbox.
@@ -48,6 +50,7 @@ import org.apache.james.user.api.UsersRepositoryException;
  *
  */
 public class MailboxDeliverToRecipientHandler implements DeliverToRecipientHook {
+    private static final Logger LOGGER = LoggerFactory.getLogger(MailboxDeliverToRecipientHandler.class);
   
     private UsersRepository users;
     private MailboxManager mailboxManager;
@@ -87,9 +90,8 @@ public class MailboxDeliverToRecipientHandler implements DeliverToRecipientHook
             mailboxManager.getMailbox(MailboxPath.inbox(mailboxSession), mailboxSession).appendMessage(envelope.getMessageInputStream(), new Date(), mailboxSession, true, null);
             mailboxManager.endProcessingRequest(mailboxSession);
             result = new HookResult(HookReturnCode.OK, SMTPRetCode.MAIL_OK, DSNStatus.getStatus(DSNStatus.SUCCESS, DSNStatus.CONTENT_OTHER) + " Message received");
-
         } catch (IOException | MailboxException | UsersRepositoryException e) {
-            session.getLogger().error("Unexpected error handling DATA stream", e);
+            LOGGER.error("Unexpected error handling DATA stream", e);
             result = new HookResult(HookReturnCode.DENYSOFT, " Temporary error deliver message to " + recipient);
         }
         return result;

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
index f1b97a8..f7359a0 100644
--- a/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
+++ b/server/protocols/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
@@ -143,8 +143,8 @@ public class LMTPServer extends AbstractProtocolAsyncServer implements LMTPServe
 
     @Override
     protected ChannelUpstreamHandler createCoreHandler() {
-        SMTPProtocol protocol = new SMTPProtocol(getProtocolHandlerChain(), lmtpConfig, getLogger());
-        return new SMTPChannelUpstreamHandler(protocol, getLogger(), lmtpMetrics);
+        SMTPProtocol protocol = new SMTPProtocol(getProtocolHandlerChain(), lmtpConfig);
+        return new SMTPChannelUpstreamHandler(protocol, lmtpMetrics);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/4f14df4f/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3Server.java
----------------------------------------------------------------------
diff --git a/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3Server.java b/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3Server.java
index 4f07010..6edf0a1 100644
--- a/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3Server.java
+++ b/server/protocols/protocols-pop3/src/main/java/org/apache/james/pop3server/netty/POP3Server.java
@@ -78,7 +78,7 @@ public class POP3Server extends AbstractProtocolAsyncServer implements POP3Serve
     @Override
     protected void preInit() throws Exception {
         super.preInit();
-        POP3Protocol protocol = new POP3Protocol(getProtocolHandlerChain(), theConfigData, getLogger());
+        POP3Protocol protocol = new POP3Protocol(getProtocolHandlerChain(), theConfigData);
         coreHandler = new BasicChannelUpstreamHandler(protocol, getEncryption());
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org