JAMES-1854 CommonsLoggingAdapter should directly wrap SLF4J Logger Thus, it will respect log levels
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d703714b Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d703714b Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d703714b Branch: refs/heads/master Commit: d703714bef4370eebb9a45cf831616fec5d459c2 Parents: abfa7a7 Author: Benoit Tellier <[email protected]> Authored: Mon Oct 31 14:13:21 2016 +0100 Committer: Benoit Tellier <[email protected]> Committed: Fri Nov 18 18:46:46 2016 +0700 ---------------------------------------------------------------------- .../james/transport/mailets/LocalDelivery.java | 2 +- .../transport/mailets/SieveLocalDelivery.java | 2 +- .../mailets/SieveToRecipientFolder.java | 2 +- .../transport/mailets/ToRecipientFolder.java | 2 +- .../mailets/jsieve/CommonsLoggingAdapter.java | 45 +++++----- .../jsieve/CommonsLoggingAdapterTest.java | 91 +++++++------------- 6 files changed, 58 insertions(+), 86 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/d703714b/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 28b9a51..3b80d76 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 @@ -90,7 +90,7 @@ public class LocalDelivery extends GenericMailet { recipientRewriteTable.setRecipientRewriteTable(rrt); recipientRewriteTable.init(getMailetConfig()); Log log = CommonsLoggingAdapter.builder() - .mailet(this) + .wrappedLogger(getMailetContext().getLogger()) .quiet(getInitParameter("quiet", false)) .verbose(getInitParameter("verbose", false)) .build(); http://git-wip-us.apache.org/repos/asf/james-project/blob/d703714b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java index 6826c83..5a53209 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java @@ -97,7 +97,7 @@ public class SieveLocalDelivery extends GenericMailet { recipientRewriteTable.setRecipientRewriteTable(rrt); recipientRewriteTable.init(getMailetConfig()); Log log = CommonsLoggingAdapter.builder() - .mailet(this) + .wrappedLogger(getMailetContext().getLogger()) .quiet(getInitParameter("quiet", false)) .verbose(getInitParameter("verbose", false)) .build(); http://git-wip-us.apache.org/repos/asf/james-project/blob/d703714b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java index 56d3a7c..b0b0642 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java @@ -86,7 +86,7 @@ public class SieveToRecipientFolder extends GenericMailet { @Override public void init() throws MessagingException { Log log = CommonsLoggingAdapter.builder() - .mailet(this) + .wrappedLogger(getMailetContext().getLogger()) .quiet(getInitParameter("quiet", true)) .verbose(getInitParameter("verbose", false)) .build(); http://git-wip-us.apache.org/repos/asf/james-project/blob/d703714b/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 9270dcb..6bc7835 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 @@ -78,7 +78,7 @@ public class ToRecipientFolder extends GenericMailet { @Override public void init() throws MessagingException { Log log = CommonsLoggingAdapter.builder() - .mailet(this) + .wrappedLogger(getMailetContext().getLogger()) .quiet(getInitParameter("quiet", true)) .verbose(getInitParameter("verbose", false)) .build(); http://git-wip-us.apache.org/repos/asf/james-project/blob/d703714b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapter.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapter.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapter.java index 18df8ed..7be17e0 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapter.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapter.java @@ -19,7 +19,7 @@ package org.apache.james.transport.mailets.jsieve; import org.apache.commons.logging.Log; -import org.apache.mailet.base.GenericMailet; +import org.slf4j.Logger; import com.google.common.base.Optional; import com.google.common.base.Preconditions; @@ -36,10 +36,10 @@ public class CommonsLoggingAdapter implements Log { public static class Builder { private Optional<Boolean> verbose = Optional.absent(); private Optional<Boolean> quiet = Optional.absent(); - private GenericMailet genericMailet; + private Logger logger; - public Builder mailet(GenericMailet genericMailet) { - this.genericMailet = genericMailet; + public Builder wrappedLogger(Logger logger) { + this.logger = logger; return this; } @@ -54,11 +54,11 @@ public class CommonsLoggingAdapter implements Log { } public CommonsLoggingAdapter build() { - Preconditions.checkNotNull(genericMailet); + Preconditions.checkNotNull(logger); Boolean quietParameter = quiet.or(false); Boolean verboseParameter = verbose.or(false); Preconditions.checkState(!(verboseParameter && quietParameter), "You can not specify a logger both verbose and quiet"); - return new CommonsLoggingAdapter(genericMailet, computeLogLevel(quietParameter, verboseParameter)); + return new CommonsLoggingAdapter(logger, computeLogLevel(quietParameter, verboseParameter)); } private int computeLogLevel(boolean quiet, boolean verbose) { @@ -79,60 +79,60 @@ public class CommonsLoggingAdapter implements Log { public static final int ERROR = 2; public static final int FATAL = 1; - private final GenericMailet mailet; + private final Logger logger; private final int level; - public CommonsLoggingAdapter(final GenericMailet mailet, final int level) { + private CommonsLoggingAdapter(Logger logger, final int level) { super(); - this.mailet = mailet; + this.logger = logger; this.level = level; } public void debug(Object message) { if (isDebugEnabled()) { - mailet.log(message == null ? "NULL" : message.toString()); + logger.debug(message == null ? "NULL" : message.toString()); } } public void debug(Object message, Throwable t) { if (isDebugEnabled()) { - mailet.log(message == null ? "NULL" : message.toString(), t); + logger.debug(message == null ? "NULL" : message.toString(), t); } } public void error(Object message) { if (isErrorEnabled()) { - mailet.log(message == null ? "NULL" : message.toString()); + logger.error(message == null ? "NULL" : message.toString()); } } public void error(Object message, Throwable t) { if (isErrorEnabled()) { - mailet.log(message == null ? "NULL" : message.toString(), t); + logger.error(message == null ? "NULL" : message.toString(), t); } } public void fatal(Object message) { if (isFatalEnabled()) { - mailet.log(message == null ? "NULL" : message.toString()); + logger.error(message == null ? "NULL" : message.toString()); } } public void fatal(Object message, Throwable t) { if (isFatalEnabled()) { - mailet.log(message == null ? "NULL" : message.toString(), t); + logger.error(message == null ? "NULL" : message.toString(), t); } } public void info(Object message) { if (isInfoEnabled()) { - mailet.log(message == null ? "NULL" : message.toString()); + logger.info(message == null ? "NULL" : message.toString()); } } public void info(Object message, Throwable t) { if (isInfoEnabled()) { - mailet.log(message == null ? "NULL" : message.toString(), t); + logger.info(message == null ? "NULL" : message.toString(), t); } } @@ -162,27 +162,26 @@ public class CommonsLoggingAdapter implements Log { public void trace(Object message) { if (isTraceEnabled()) { - mailet.log(message == null ? "NULL" : message.toString()); + logger.debug(message == null ? "NULL" : message.toString()); } } public void trace(Object message, Throwable t) { if (isTraceEnabled()) { - mailet.log(message == null ? "NULL" : message.toString(), t); + logger.debug(message == null ? "NULL" : message.toString(), t); } } public void warn(Object message) { if (isWarnEnabled()) { - mailet.log(message == null ? "NULL" : message.toString()); + logger.warn(message == null ? "NULL" : message.toString()); } } public void warn(Object message, Throwable t) { if (isWarnEnabled()) { - mailet.log(message == null ? "NULL" : message.toString(), t); + logger.warn(message == null ? "NULL" : message.toString(), t); } } - - + } http://git-wip-us.apache.org/repos/asf/james-project/blob/d703714b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapterTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapterTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapterTest.java index a3619ac..2fc9042 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapterTest.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/jsieve/CommonsLoggingAdapterTest.java @@ -25,14 +25,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; -import javax.mail.MessagingException; - -import org.apache.mailet.Mail; -import org.apache.mailet.base.GenericMailet; -import org.apache.mailet.base.test.FakeMailContext; -import org.apache.mailet.base.test.FakeMailetConfig; import org.junit.Before; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -41,11 +34,11 @@ import org.slf4j.Logger; public class CommonsLoggingAdapterTest { @Rule public ExpectedException expectedException = ExpectedException.none(); - private GenericMailet genericMailet; + private Logger logger; @Before public void setUp() { - genericMailet = mock(GenericMailet.class); + logger = mock(Logger.class); } @Test @@ -58,7 +51,7 @@ public class CommonsLoggingAdapterTest { @Test public void buildShouldDefaultToLogLevelWarn() { CommonsLoggingAdapter loggingAdapter = CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .build(); assertThat(loggingAdapter.isTraceEnabled()).isFalse(); @@ -73,7 +66,7 @@ public class CommonsLoggingAdapterTest { @Test public void buildShouldUseFatalWithQuiet() { CommonsLoggingAdapter loggingAdapter = CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .quiet(true) .build(); @@ -88,7 +81,7 @@ public class CommonsLoggingAdapterTest { @Test public void buildShouldUseTraceWithVerbose() { CommonsLoggingAdapter loggingAdapter = CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .verbose(true) .build(); @@ -105,7 +98,7 @@ public class CommonsLoggingAdapterTest { expectedException.expect(IllegalStateException.class); CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .verbose(true) .quiet(true) .build(); @@ -115,12 +108,12 @@ public class CommonsLoggingAdapterTest { public void simpleLoggingInVerboseModeShouldWorkInDebug() { String message = "Message"; CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .verbose(true) .build() .debug(message); - verify(genericMailet).log(message); + verify(logger).debug(message); } @Test @@ -128,23 +121,23 @@ public class CommonsLoggingAdapterTest { Exception exception = new Exception(); String message = "Message"; CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .verbose(true) .build() .debug(message, exception); - verify(genericMailet).log(message, exception); + verify(logger).debug(message, exception); } @Test public void simpleLoggingInInfoModeShouldNotWorkByDefault() { String message = "Message"; CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .build() .info(message); - verifyNoMoreInteractions(genericMailet); + verifyNoMoreInteractions(logger); } @Test @@ -152,22 +145,22 @@ public class CommonsLoggingAdapterTest { Exception exception = new Exception(); String message = "Message"; CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .build() .info(message, exception); - verifyNoMoreInteractions(genericMailet); + verifyNoMoreInteractions(logger); } @Test public void simpleLoggingInWarnModeShouldWorkByDefault() { String message = "Message"; CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .build() .warn(message); - verify(genericMailet).log(message); + verify(logger).warn(message); } @Test @@ -175,23 +168,23 @@ public class CommonsLoggingAdapterTest { Exception exception = new Exception(); String message = "Message"; CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .build() .warn(message, exception); - verify(genericMailet).log(message, exception); + verify(logger).warn(message, exception); } @Test public void simpleLoggingInErrorModeShouldNotWorkWithQuiet() { String message = "Message"; CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .quiet(true) .build() .error(message); - verifyNoMoreInteractions(genericMailet); + verifyNoMoreInteractions(logger); } @Test @@ -199,24 +192,24 @@ public class CommonsLoggingAdapterTest { Exception exception = new Exception(); String message = "Message"; CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .quiet(true) .build() .error(message, exception); - verifyNoMoreInteractions(genericMailet); + verifyNoMoreInteractions(logger); } @Test public void simpleLoggingInFatalModeShouldWorkWithQuiet() { String message = "Message"; CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .quiet(true) .build() .fatal(message); - verify(genericMailet).log(message); + verify(logger).error(message); } @Test @@ -224,63 +217,43 @@ public class CommonsLoggingAdapterTest { Exception exception = new Exception(); String message = "Message"; CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .quiet(true) .build() .fatal(message, exception); - verify(genericMailet).log(message, exception); - } - - @Ignore("Mailet logging choose log level based on arguments") - @Test - public void logIsUsingWrongLogLevelReported() throws Exception { - GenericMailet genericMailet = new GenericMailet() { - @Override - public void service(Mail mail) throws MessagingException { - - } - }; - Logger logger = mock(Logger.class); - genericMailet.init(new FakeMailetConfig("name", FakeMailContext.builder() - .logger(logger) - .build())); - - String message = "Fatal"; - CommonsLoggingAdapter.builder().mailet(genericMailet).build().error(message); - - verify(logger).info(message); + verify(logger).error(message, exception); } @Test public void logShouldHandleNullValue() { CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .build() .fatal(null); - verify(genericMailet).log("NULL"); + verify(logger).error("NULL"); } @Test public void logShouldHandleNullValueWithException() { Exception exception = new Exception(); CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .build() .fatal(null, exception); - verify(genericMailet).log("NULL", exception); + verify(logger).error("NULL", exception); } @Test public void logShouldHandleNullException() { CommonsLoggingAdapter.builder() - .mailet(genericMailet) + .wrappedLogger(logger) .build() .fatal(null, null); - verify(genericMailet).log("NULL", null); + verify(logger).error("NULL", (Throwable) null); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
