This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-jspf.git
The following commit(s) were added to refs/heads/master by this push:
new 6373b7d JSPF-105 Rely on slf4j-api for logging
6373b7d is described below
commit 6373b7d793163f856d0189916af181bd1772a169
Author: Benoit Tellier <[email protected]>
AuthorDate: Mon Sep 23 12:04:29 2019 +0700
JSPF-105 Rely on slf4j-api for logging
---
pom.xml | 10 +
resolver/pom.xml | 9 +
.../org/apache/james/jspf/core/LogEnabled.java | 35 ---
.../java/org/apache/james/jspf/core/Logger.java | 163 ------------
.../org/apache/james/jspf/core/MacroExpand.java | 31 ++-
.../james/jspf/executor/FutureSPFResult.java | 17 +-
.../jspf/executor/StagedMultipleSPFExecutor.java | 23 +-
.../jspf/executor/SynchronousSPFExecutor.java | 12 +-
.../james/jspf/impl/DNSServiceXBillImpl.java | 36 ++-
.../org/apache/james/jspf/impl/DefaultSPF.java | 18 +-
.../james/jspf/impl/DefaultTermsFactory.java | 39 ++-
.../org/apache/james/jspf/impl/Log4JLogger.java | 207 ---------------
.../main/java/org/apache/james/jspf/impl/SPF.java | 52 ++--
.../java/org/apache/james/jspf/impl/SPFQuery.java | 2 +-
.../james/jspf/parser/RFC4408SPF1Parser.java | 30 +--
.../policies/local/DefaultExplanationPolicy.java | 18 +-
.../james/jspf/policies/local/FallbackPolicy.java | 29 +--
.../james/jspf/policies/local/OverridePolicy.java | 6 +-
.../policies/local/TrustedForwarderPolicy.java | 18 +-
.../org/apache/james/jspf/terms/AMechanism.java | 11 +-
.../org/apache/james/jspf/terms/Directive.java | 16 +-
.../org/apache/james/jspf/terms/ExpModifier.java | 10 +-
.../apache/james/jspf/terms/GenericMechanism.java | 13 +-
.../apache/james/jspf/terms/GenericModifier.java | 25 +-
.../apache/james/jspf/terms/IncludeMechanism.java | 13 +-
.../org/apache/james/jspf/terms/MXMechanism.java | 11 +-
.../org/apache/james/jspf/AbstractYamlTest.java | 74 +++---
.../java/org/apache/james/jspf/ConsoleLogger.java | 289 ---------------------
.../org/apache/james/jspf/LoggingDNSService.java | 17 +-
.../james/jspf/RFC4408AsynchronousYamlTest.java | 13 +-
.../org/apache/james/jspf/RFC4408YamlTest.java | 13 +-
.../java/org/apache/james/jspf/SPF1ParserTest.java | 4 +-
.../apache/james/jspf/core/MacroExpandTest.java | 7 +-
resolver/src/test/resources/log4j.properties | 35 ---
resolver/src/test/resources/logback-test.xml | 32 +++
35 files changed, 269 insertions(+), 1069 deletions(-)
diff --git a/pom.xml b/pom.xml
index bdbaf02..3827177 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,6 +109,11 @@
<version>0.2.1</version>
</dependency>
<dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>1.2.3</version>
+ </dependency>
+ <dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.4</version>
@@ -123,6 +128,11 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.27</version>
+ </dependency>
</dependencies>
</dependencyManagement>
diff --git a/resolver/pom.xml b/resolver/pom.xml
index 47a9cf1..68fffbf 100644
--- a/resolver/pom.xml
+++ b/resolver/pom.xml
@@ -37,6 +37,11 @@
<dependencies>
<dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>dnsjava</groupId>
<artifactId>dnsjava</artifactId>
</dependency>
@@ -62,6 +67,10 @@
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
</dependencies>
<build>
diff --git a/resolver/src/main/java/org/apache/james/jspf/core/LogEnabled.java
b/resolver/src/main/java/org/apache/james/jspf/core/LogEnabled.java
deleted file mode 100644
index 0d40ed7..0000000
--- a/resolver/src/main/java/org/apache/james/jspf/core/LogEnabled.java
+++ /dev/null
@@ -1,35 +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.jspf.core;
-
-
-/**
- * Components that need to log can implement this interface to be provided
- * Loggers.
- */
-public interface LogEnabled {
- /**
- * Provide component with a logger.
- *
- * @param logger
- * the logger. Must not be <code>null</code>.
- */
- void enableLogging(Logger logger);
-}
\ No newline at end of file
diff --git a/resolver/src/main/java/org/apache/james/jspf/core/Logger.java
b/resolver/src/main/java/org/apache/james/jspf/core/Logger.java
deleted file mode 100644
index 15e8025..0000000
--- a/resolver/src/main/java/org/apache/james/jspf/core/Logger.java
+++ /dev/null
@@ -1,163 +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.jspf.core;
-
-/**
- * This is a facade for the different logging subsystems. It offers a
simplified
- * interface that follows IOC patterns and a simplified priority/level/severity
- * abstraction.
- */
-public interface Logger {
- /**
- * Log a debug message.
- *
- * @param message
- * the message
- */
- public void debug(String message);
-
- /**
- * Log a debug message.
- *
- * @param message
- * the message
- * @param throwable
- * the throwable
- */
- public void debug(String message, Throwable throwable);
-
- /**
- * Determine if messages of priority "debug" will be logged.
- *
- * @return true if "debug" messages will be logged
- */
- public boolean isDebugEnabled();
-
- /**
- * Log a info message.
- *
- * @param message
- * the message
- */
- public void info(String message);
-
- /**
- * Log a info message.
- *
- * @param message
- * the message
- * @param throwable
- * the throwable
- */
- public void info(String message, Throwable throwable);
-
- /**
- * Determine if messages of priority "info" will be logged.
- *
- * @return true if "info" messages will be logged
- */
- public boolean isInfoEnabled();
-
- /**
- * Log a warn message.
- *
- * @param message
- * the message
- */
- public void warn(String message);
-
- /**
- * Log a warn message.
- *
- * @param message
- * the message
- * @param throwable
- * the throwable
- */
- public void warn(String message, Throwable throwable);
-
- /**
- * Determine if messages of priority "warn" will be logged.
- *
- * @return true if "warn" messages will be logged
- */
- public boolean isWarnEnabled();
-
- /**
- * Log a error message.
- *
- * @param message
- * the message
- */
- public void error(String message);
-
- /**
- * Log a error message.
- *
- * @param message
- * the message
- * @param throwable
- * the throwable
- */
- public void error(String message, Throwable throwable);
-
- /**
- * Determine if messages of priority "error" will be logged.
- *
- * @return true if "error" messages will be logged
- */
- public boolean isErrorEnabled();
-
- /**
- * Log a fatalError message.
- *
- * @param message
- * the message
- */
- public void fatalError(String message);
-
- /**
- * Log a fatalError message.
- *
- * @param message
- * the message
- * @param throwable
- * the throwable
- */
- public void fatalError(String message, Throwable throwable);
-
- /**
- * Determine if messages of priority "fatalError" will be logged.
- *
- * @return true if "fatalError" messages will be logged
- */
- public boolean isFatalErrorEnabled();
-
- /**
- * Create a new child logger. The name of the child logger is
- * [current-loggers-name].[passed-in-name] Throws
- * <code>IllegalArgumentException</code> if name has an empty element name
- *
- * @param name
- * the subname of this logger
- * @return the new logger
- */
- public Logger getChildLogger(String name);
-}
diff --git a/resolver/src/main/java/org/apache/james/jspf/core/MacroExpand.java
b/resolver/src/main/java/org/apache/james/jspf/core/MacroExpand.java
index 9b4f707..578c671 100644
--- a/resolver/src/main/java/org/apache/james/jspf/core/MacroExpand.java
+++ b/resolver/src/main/java/org/apache/james/jspf/core/MacroExpand.java
@@ -26,12 +26,6 @@ package org.apache.james.jspf.core;
*
*/
-import org.apache.james.jspf.core.exceptions.NeutralException;
-import org.apache.james.jspf.core.exceptions.NoneException;
-import org.apache.james.jspf.core.exceptions.PermErrorException;
-import org.apache.james.jspf.core.exceptions.TempErrorException;
-import org.apache.james.jspf.core.exceptions.TimeoutException;
-
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
@@ -40,7 +34,16 @@ import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.james.jspf.core.exceptions.NeutralException;
+import org.apache.james.jspf.core.exceptions.NoneException;
+import org.apache.james.jspf.core.exceptions.PermErrorException;
+import org.apache.james.jspf.core.exceptions.TempErrorException;
+import org.apache.james.jspf.core.exceptions.TimeoutException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
public class MacroExpand {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(MacroExpand.class);
private Pattern domainSpecPattern;
@@ -52,8 +55,6 @@ public class MacroExpand {
private Pattern cellPattern;
- private Logger log;
-
private DNSService dnsProbe;
public static final boolean EXPLANATION = true;
@@ -69,10 +70,9 @@ public class MacroExpand {
/**
* Construct MacroExpand
*
- * @param logger the logget to use
* @param dnsProbe the dns service to use
*/
- public MacroExpand(Logger logger, DNSService dnsProbe) {
+ public MacroExpand(DNSService dnsProbe) {
// This matches 2 groups
domainSpecPattern =
Pattern.compile(SPFTermsRegexps.DOMAIN_SPEC_REGEX_R);
// The real pattern replacer
@@ -80,7 +80,6 @@ public class MacroExpand {
// The macro letters pattern
macroLettersExpPattern =
Pattern.compile(SPFTermsRegexps.MACRO_LETTER_PATTERN_EXP);
macroLettersPattern =
Pattern.compile(SPFTermsRegexps.MACRO_LETTER_PATTERN);
- log = logger;
this.dnsProbe = dnsProbe;
}
@@ -195,7 +194,7 @@ public class MacroExpand {
*/
private String expandExplanation(String input, MacroData macroData) throws
PermErrorException, RequireClientDomainException {
- log.debug("Start do expand explanation: " + input);
+ LOGGER.debug("Start do expand explanation: {}", input);
String[] parts = input.split(" ");
StringBuffer res = new StringBuffer();
@@ -203,7 +202,7 @@ public class MacroExpand {
if (i > 0) res.append(" ");
res.append(expandMacroString(parts[i], macroData, true));
}
- log.debug("Done expand explanation: " + res);
+ LOGGER.debug("Done expand explanation: {}", res);
return res.toString();
}
@@ -220,7 +219,7 @@ public class MacroExpand {
*/
private String expandDomain(String input, MacroData macroData) throws
PermErrorException, RequireClientDomainException {
- log.debug("Start expand domain: " + input);
+ LOGGER.debug("Start expand domain: {}", input);
Matcher inputMatcher = domainSpecPattern.matcher(input);
if (!inputMatcher.matches() || inputMatcher.groupCount() != 2) {
@@ -247,7 +246,7 @@ public class MacroExpand {
domainName = domainName.substring(split + 1);
}
- log.debug("Domain expanded: " + domainName);
+ LOGGER.debug("Domain expanded: {}", domainName);
return domainName;
}
@@ -456,7 +455,7 @@ public class MacroExpand {
throw new PermErrorException("Unknown command : " + variable);
} else {
- log.debug("Used macro: " + macro + " replaced with: " + rValue);
+ LOGGER.debug("Used macro: {} replaced with: {}", macro, rValue);
return rValue;
}
diff --git
a/resolver/src/main/java/org/apache/james/jspf/executor/FutureSPFResult.java
b/resolver/src/main/java/org/apache/james/jspf/executor/FutureSPFResult.java
index 18bdcbb..e1ab25d 100644
--- a/resolver/src/main/java/org/apache/james/jspf/executor/FutureSPFResult.java
+++ b/resolver/src/main/java/org/apache/james/jspf/executor/FutureSPFResult.java
@@ -23,8 +23,9 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.SPFSession;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
@@ -32,21 +33,15 @@ import org.apache.james.jspf.core.SPFSession;
*
*/
public class FutureSPFResult extends SPFResult {
-
+ private static final Logger LOGGER =
LoggerFactory.getLogger(FutureSPFResult.class);
+
private boolean isReady;
private List<IFutureSPFResultListener> listeners;
private int waiters;
- private final Logger log;
public FutureSPFResult() {
- this.log = null;
isReady = false;
}
-
- public FutureSPFResult(Logger log) {
- this.log = log;
- this.isReady = false;
- }
/**
* Set SPFResult using the given SPFsession
@@ -76,9 +71,7 @@ public class FutureSPFResult extends SPFResult {
listener.onSPFResult(this);
} catch (Throwable e) {
// catch exception. See JSPF-95
- if (log != null) {
- log.warn("An exception was thrown by the listener " +
listener, e);
- }
+ LOGGER.warn("An exception was thrown by the listener {}",
listener, e);
}
}
listenerIt = null;
diff --git
a/resolver/src/main/java/org/apache/james/jspf/executor/StagedMultipleSPFExecutor.java
b/resolver/src/main/java/org/apache/james/jspf/executor/StagedMultipleSPFExecutor.java
index de244b0..f1ee767 100644
---
a/resolver/src/main/java/org/apache/james/jspf/executor/StagedMultipleSPFExecutor.java
+++
b/resolver/src/main/java/org/apache/james/jspf/executor/StagedMultipleSPFExecutor.java
@@ -19,26 +19,27 @@
package org.apache.james.jspf.executor;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+
import org.apache.james.jspf.core.DNSLookupContinuation;
import org.apache.james.jspf.core.DNSResponse;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.SPFChecker;
import org.apache.james.jspf.core.SPFCheckerExceptionCatcher;
import org.apache.james.jspf.core.SPFSession;
import org.apache.james.jspf.core.exceptions.SPFResultException;
import org.apache.james.jspf.core.exceptions.TimeoutException;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.Map;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Async implementation of SPFExecutor
*
*/
public class StagedMultipleSPFExecutor implements SPFExecutor, Runnable {
-
+ private static final Logger LOGGER =
LoggerFactory.getLogger(StagedMultipleSPFExecutor.class);
private static final String ATTRIBUTE_STAGED_EXECUTOR_CONTINUATION =
"StagedMultipleSPFExecutor.continuation";
private static class ResponseQueueImpl extends LinkedList<IResponse>
implements IResponseQueue {
@@ -81,16 +82,14 @@ public class StagedMultipleSPFExecutor implements
SPFExecutor, Runnable {
private synchronized int nextId() {
return id++;
}
-
- private Logger log;
+
private DNSAsynchLookupService dnsProbe;
private Thread worker;
private Map<Integer,SPFSession> sessions;
private Map<Integer,FutureSPFResult>results;
private ResponseQueueImpl responseQueue;
- public StagedMultipleSPFExecutor(Logger log, DNSAsynchLookupService
service) {
- this.log = log;
+ public StagedMultipleSPFExecutor(DNSAsynchLookupService service) {
this.dnsProbe = service;
this.responseQueue = new ResponseQueueImpl();
@@ -119,7 +118,7 @@ public class StagedMultipleSPFExecutor implements
SPFExecutor, Runnable {
SPFChecker checker;
while ((checker = session.popChecker()) != null) {
// only execute checkers we added (better recursivity)
- log.debug("Executing checker: " + checker);
+ LOGGER.debug("Executing checker: {}", checker);
try {
DNSLookupContinuation cont = checker.checkSPF(session);
// if the checker returns a continuation we return it
diff --git
a/resolver/src/main/java/org/apache/james/jspf/executor/SynchronousSPFExecutor.java
b/resolver/src/main/java/org/apache/james/jspf/executor/SynchronousSPFExecutor.java
index a68d25a..882a6dc 100644
---
a/resolver/src/main/java/org/apache/james/jspf/executor/SynchronousSPFExecutor.java
+++
b/resolver/src/main/java/org/apache/james/jspf/executor/SynchronousSPFExecutor.java
@@ -22,23 +22,23 @@ package org.apache.james.jspf.executor;
import org.apache.james.jspf.core.DNSLookupContinuation;
import org.apache.james.jspf.core.DNSResponse;
import org.apache.james.jspf.core.DNSService;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.SPFChecker;
import org.apache.james.jspf.core.SPFCheckerExceptionCatcher;
import org.apache.james.jspf.core.SPFSession;
import org.apache.james.jspf.core.exceptions.SPFResultException;
import org.apache.james.jspf.core.exceptions.TimeoutException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Synchronous implementation of SPFExecuter. All queries will get executed
synchronously
*/
public class SynchronousSPFExecutor implements SPFExecutor {
-
- private Logger log;
+ private static final Logger LOGGER =
LoggerFactory.getLogger(SynchronousSPFExecutor.class);
+
private DNSService dnsProbe;
- public SynchronousSPFExecutor(Logger log, DNSService service) {
- this.log = log;
+ public SynchronousSPFExecutor(DNSService service) {
this.dnsProbe = service;
}
@@ -49,7 +49,7 @@ public class SynchronousSPFExecutor implements SPFExecutor {
SPFChecker checker;
while ((checker = session.popChecker()) != null) {
// only execute checkers we added (better recursivity)
- log.debug("Executing checker: " + checker);
+ LOGGER.debug("Executing checker: {}", checker);
try {
DNSLookupContinuation cont = checker.checkSPF(session);
// if the checker returns a continuation we return it
diff --git
a/resolver/src/main/java/org/apache/james/jspf/impl/DNSServiceXBillImpl.java
b/resolver/src/main/java/org/apache/james/jspf/impl/DNSServiceXBillImpl.java
index 2d7b413..99c2690 100644
--- a/resolver/src/main/java/org/apache/james/jspf/impl/DNSServiceXBillImpl.java
+++ b/resolver/src/main/java/org/apache/james/jspf/impl/DNSServiceXBillImpl.java
@@ -19,11 +19,18 @@
package org.apache.james.jspf.impl;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
import org.apache.james.jspf.core.DNSRequest;
import org.apache.james.jspf.core.DNSService;
import org.apache.james.jspf.core.IPAddr;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.exceptions.TimeoutException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.xbill.DNS.AAAARecord;
import org.xbill.DNS.ARecord;
import org.xbill.DNS.Lookup;
@@ -36,21 +43,13 @@ import org.xbill.DNS.TXTRecord;
import org.xbill.DNS.TextParseException;
import org.xbill.DNS.Type;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
/**
* This class contains helper to get all neccassary DNS infos that are needed
* for SPF
*/
public class DNSServiceXBillImpl implements DNSService {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(DNSServiceXBillImpl.class);
- // The logger
- protected Logger log;
-
// The record limit for lookups
protected int recordLimit;
@@ -61,15 +60,14 @@ public class DNSServiceXBillImpl implements DNSService {
* Default Constructor.
* Uses the DNSJava static DefaultResolver
*/
- public DNSServiceXBillImpl(Logger logger) {
- this(logger, Lookup.getDefaultResolver());
+ public DNSServiceXBillImpl() {
+ this(Lookup.getDefaultResolver());
}
/**
* Constructor to specify a custom resolver.
*/
- public DNSServiceXBillImpl(Logger logger, Resolver resolver) {
- this.log = logger;
+ public DNSServiceXBillImpl(Resolver resolver) {
this.resolver = resolver;
// Default record limit is 10
this.recordLimit = 10;
@@ -94,7 +92,7 @@ public class DNSServiceXBillImpl implements DNSService {
public List<String> getLocalDomainNames() {
List<String> names = new ArrayList<String>();
- log.debug("Start Local ipaddress lookup");
+ LOGGER.debug("Start Local ipaddress lookup");
try {
InetAddress ia[] = InetAddress.getAllByName(InetAddress
.getLocalHost().getHostName());
@@ -103,7 +101,7 @@ public class DNSServiceXBillImpl implements DNSService {
String host = ia[i].getHostName();
names.add(host);
- log.debug("Add hostname " + host + " to list");
+ LOGGER.debug("Add hostname {} to list", host);
}
} catch (UnknownHostException e) {
// just ignore this..
@@ -146,7 +144,7 @@ public class DNSServiceXBillImpl implements DNSService {
}
try {
- log.debug("Start "+recordTypeDescription+"-Record lookup for : " +
request.getHostname());
+ LOGGER.debug("Start {}-Record lookup for : {}",
recordTypeDescription, request.getHostname());
Lookup query = new Lookup(request.getHostname(), dnsJavaType);
query.setResolver(resolver);
@@ -161,11 +159,11 @@ public class DNSServiceXBillImpl implements DNSService {
List<String> records = convertRecordsToList(rr);
- log.debug("Found " + (rr != null ? rr.length : 0) + "
"+recordTypeDescription+"-Records");
+ LOGGER.debug("Found {} {}-Records", (rr != null ? rr.length : 0),
recordTypeDescription);
return records;
} catch (TextParseException e) {
// i think this is the best we could do
- log.debug("No "+recordTypeDescription+" Record found for host: " +
request.getHostname());
+ LOGGER.debug("No {} Record found for host: {}",
recordTypeDescription, request.getHostname());
return null;
}
}
diff --git a/resolver/src/main/java/org/apache/james/jspf/impl/DefaultSPF.java
b/resolver/src/main/java/org/apache/james/jspf/impl/DefaultSPF.java
index f114dae..11172c0 100644
--- a/resolver/src/main/java/org/apache/james/jspf/impl/DefaultSPF.java
+++ b/resolver/src/main/java/org/apache/james/jspf/impl/DefaultSPF.java
@@ -19,25 +19,11 @@
package org.apache.james.jspf.impl;
-import org.apache.james.jspf.core.Logger;
-
public class DefaultSPF extends SPF {
-
-
/**
- * Uses default Log4JLogger and DNSJava based dns resolver
+ * Uses DNSJava based dns resolver
*/
public DefaultSPF() {
- this(new Log4JLogger(org.apache.log4j.Logger.getLogger(SPF.class)));
- }
-
- /**
- * Uses passed logger and DNSJava based dns resolver
- *
- * @param logger the logger to use
- */
- public DefaultSPF(Logger logger) {
- super(new DNSServiceXBillImpl(logger), logger);
+ super(new DNSServiceXBillImpl());
}
-
}
diff --git
a/resolver/src/main/java/org/apache/james/jspf/impl/DefaultTermsFactory.java
b/resolver/src/main/java/org/apache/james/jspf/impl/DefaultTermsFactory.java
index 5fe3b09..ea751d8 100644
--- a/resolver/src/main/java/org/apache/james/jspf/impl/DefaultTermsFactory.java
+++ b/resolver/src/main/java/org/apache/james/jspf/impl/DefaultTermsFactory.java
@@ -19,8 +19,13 @@
package org.apache.james.jspf.impl;
-import org.apache.james.jspf.core.LogEnabled;
-import org.apache.james.jspf.core.Logger;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Properties;
+
import org.apache.james.jspf.core.exceptions.PermErrorException;
import org.apache.james.jspf.parser.TermDefinition;
import org.apache.james.jspf.parser.TermsFactory;
@@ -29,38 +34,26 @@ import org.apache.james.jspf.terms.ConfigurationEnabled;
import org.apache.james.jspf.wiring.WiringService;
import org.apache.james.jspf.wiring.WiringServiceException;
import org.apache.james.jspf.wiring.WiringServiceTable;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Properties;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* The default implementation of the TermsFactory
*/
public class DefaultTermsFactory implements TermsFactory {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(DefaultTermsFactory.class);
private String termFile =
"org/apache/james/jspf/parser/jspf.default.terms";
-
private Collection<TermDefinition> mechanismsCollection;
-
private Collection<TermDefinition> modifiersCollection;
-
- private Logger log;
-
private WiringService wiringService;
- public DefaultTermsFactory(Logger log) {
- this.log = log;
+ public DefaultTermsFactory() {
this.wiringService = new WiringServiceTable();
- ((WiringServiceTable) this.wiringService).put(LogEnabled.class, log);
init();
}
- public DefaultTermsFactory(Logger log, WiringService wiringService) {
- this.log = log;
+ public DefaultTermsFactory(WiringService wiringService) {
this.wiringService = wiringService;
init();
}
@@ -83,8 +76,7 @@ public class DefaultTermsFactory implements TermsFactory {
classes = mechs.split(",");
Class<?>[] knownMechanisms = new Class[classes.length];
for (int i = 0; i < classes.length; i++) {
- log.debug("Add following class as known mechanismn: "
- + classes[i]);
+ LOGGER.debug("Add following class as known mechanismn: {}",
classes[i]);
knownMechanisms[i] = Thread.currentThread()
.getContextClassLoader().loadClass(classes[i]);
}
@@ -92,8 +84,7 @@ public class DefaultTermsFactory implements TermsFactory {
classes = mods.split(",");
Class<?>[] knownModifiers = new Class[classes.length];
for (int i = 0; i < classes.length; i++) {
- log.debug("Add following class as known modifier: "
- + classes[i]);
+ LOGGER.debug("Add following class as known modifier: {}",
classes[i]);
knownModifiers[i] = Thread.currentThread()
.getContextClassLoader().loadClass(classes[i]);
}
@@ -124,7 +115,7 @@ public class DefaultTermsFactory implements TermsFactory {
try {
l.add(new DefaultTermDefinition(classes[j]));
} catch (Exception e) {
- log.debug("Unable to create the term collection", e);
+ LOGGER.debug("Unable to create the term collection", e);
throw new IllegalStateException(
"Unable to create the term collection");
}
diff --git a/resolver/src/main/java/org/apache/james/jspf/impl/Log4JLogger.java
b/resolver/src/main/java/org/apache/james/jspf/impl/Log4JLogger.java
deleted file mode 100644
index b3eb123..0000000
--- a/resolver/src/main/java/org/apache/james/jspf/impl/Log4JLogger.java
+++ /dev/null
@@ -1,207 +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.jspf.impl;
-
-import org.apache.james.jspf.core.Logger;
-import org.apache.log4j.Level;
-
-/**
- * Implementation of the Logger interface using the Log4J implementation
- * strategy.
- */
-public class Log4JLogger implements Logger {
- private org.apache.log4j.Logger m_Logger;
-
- public Log4JLogger(org.apache.log4j.Logger log4jLogger) {
- m_Logger = log4jLogger;
- }
-
- /**
- * Log a debug message.
- *
- * @param message
- * the message
- */
- public void debug(String message) {
- m_Logger.debug(message);
- }
-
- /**
- * Log a debug message.
- *
- * @param message
- * the message
- * @param throwable
- * the throwable
- */
- public void debug(String message, Throwable throwable) {
- m_Logger.debug(message, throwable);
- }
-
- /**
- * Determine if messages of priority "debug" will be logged.
- *
- * @return true if "debug" messages will be logged
- */
- public boolean isDebugEnabled() {
- return m_Logger.isDebugEnabled();
- }
-
- /**
- * Log a info message.
- *
- * @param message
- * the message
- */
- public void info(String message) {
- m_Logger.info(message);
- }
-
- /**
- * Log a info message.
- *
- * @param message
- * the message
- * @param throwable
- * the throwable
- */
- public void info(String message, Throwable throwable) {
- m_Logger.info(message, throwable);
- }
-
- /**
- * Determine if messages of priority "info" will be logged.
- *
- * @return true if "info" messages will be logged
- */
- public boolean isInfoEnabled() {
- return m_Logger.isInfoEnabled();
- }
-
- /**
- * Log a warn message.
- *
- * @param message
- * the message
- */
- public void warn(String message) {
- m_Logger.warn(message);
- }
-
- /**
- * Log a warn message.
- *
- * @param message
- * the message
- * @param throwable
- * the throwable
- */
- public void warn(String message, Throwable throwable) {
- m_Logger.warn(message, throwable);
- }
-
- /**
- * Determine if messages of priority "warn" will be logged.
- *
- * @return true if "warn" messages will be logged
- */
- public boolean isWarnEnabled() {
- return m_Logger.isEnabledFor(Level.WARN);
- }
-
- /**
- * Log a error message.
- *
- * @param message
- * the message
- */
- public void error(String message) {
- m_Logger.error(message);
- }
-
- /**
- * Log a error message.
- *
- * @param message
- * the message
- * @param throwable
- * the throwable
- */
- public void error(String message, Throwable throwable) {
- m_Logger.error(message, throwable);
- }
-
- /**
- * Determine if messages of priority "error" will be logged.
- *
- * @return true if "error" messages will be logged
- */
- public boolean isErrorEnabled() {
- return m_Logger.isEnabledFor(Level.ERROR);
- }
-
- /**
- * Log a fatalError message.
- *
- * @param message
- * the message
- */
- public void fatalError(String message) {
- m_Logger.fatal(message);
- }
-
- /**
- * Log a fatalError message.
- *
- * @param message
- * the message
- * @param throwable
- * the throwable
- */
- public void fatalError(String message, Throwable throwable) {
- m_Logger.fatal(message, throwable);
- }
-
- /**
- * Determine if messages of priority "fatalError" will be logged.
- *
- * @return true if "fatalError" messages will be logged
- */
- public boolean isFatalErrorEnabled() {
- return m_Logger.isEnabledFor(Level.FATAL);
- }
-
- /**
- * Create a new child logger. The name of the child logger is
- * [current-loggers-name].[passed-in-name] Throws
- * <code>IllegalArgumentException</code> if name has an empty element name
- *
- * @param name
- * the subname of this logger
- * @return the new logger
- */
- public Logger getChildLogger(String name) {
- String newName = m_Logger.getName() + "." + name;
- org.apache.log4j.Logger childLog4JLogger = org.apache.log4j.Logger
- .getLogger(newName);
- Log4JLogger child = new Log4JLogger(childLog4JLogger);
- return child;
- }
-}
diff --git a/resolver/src/main/java/org/apache/james/jspf/impl/SPF.java
b/resolver/src/main/java/org/apache/james/jspf/impl/SPF.java
index 494418e..8f665ee 100644
--- a/resolver/src/main/java/org/apache/james/jspf/impl/SPF.java
+++ b/resolver/src/main/java/org/apache/james/jspf/impl/SPF.java
@@ -20,11 +20,12 @@
package org.apache.james.jspf.impl;
+import java.util.Iterator;
+import java.util.LinkedList;
+
import org.apache.james.jspf.core.DNSLookupContinuation;
import org.apache.james.jspf.core.DNSService;
import org.apache.james.jspf.core.DNSServiceEnabled;
-import org.apache.james.jspf.core.LogEnabled;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.MacroExpand;
import org.apache.james.jspf.core.MacroExpandEnabled;
import org.apache.james.jspf.core.SPF1Record;
@@ -59,14 +60,14 @@ import org.apache.james.jspf.policies.local.FallbackPolicy;
import org.apache.james.jspf.policies.local.OverridePolicy;
import org.apache.james.jspf.policies.local.TrustedForwarderPolicy;
import org.apache.james.jspf.wiring.WiringServiceTable;
-
-import java.util.Iterator;
-import java.util.LinkedList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* This class is used to generate a SPF-Test and provided all intressting data.
*/
public class SPF implements SPFChecker {
+ private static final Logger LOGGER = LoggerFactory.getLogger(SPF.class);
private static final class SPFRecordChecker implements SPFChecker {
@@ -182,8 +183,6 @@ public class SPF implements SPFChecker {
private DNSService dnsProbe;
private SPFRecordParser parser;
-
- private Logger log;
private String defaultExplanation = null;
@@ -205,21 +204,18 @@ public class SPF implements SPFChecker {
* Uses passed logger and passed dnsServicer
*
* @param dnsProbe the dns provider
- * @param logger the logger to use
*/
- public SPF(DNSService dnsProbe, Logger logger) {
+ public SPF(DNSService dnsProbe) {
super();
this.dnsProbe = dnsProbe;
- this.log = logger;
WiringServiceTable wiringService = new WiringServiceTable();
- wiringService.put(LogEnabled.class, this.log);
wiringService.put(DNSServiceEnabled.class, this.dnsProbe);
- this.macroExpand = new
MacroExpand(logger.getChildLogger("macroExpand"), this.dnsProbe);
+ this.macroExpand = new MacroExpand(this.dnsProbe);
wiringService.put(MacroExpandEnabled.class, this.macroExpand);
- this.parser = new RFC4408SPF1Parser(logger.getChildLogger("parser"),
new DefaultTermsFactory(logger.getChildLogger("termsfactory"), wiringService));
+ this.parser = new RFC4408SPF1Parser(new
DefaultTermsFactory(wiringService));
// We add this after the parser creation because services cannot be
null
wiringService.put(SPFCheckEnabled.class, this);
- this.executor = new SynchronousSPFExecutor(log, dnsProbe);
+ this.executor = new SynchronousSPFExecutor(dnsProbe);
}
@@ -228,25 +224,17 @@ public class SPF implements SPFChecker {
*
* @param dnsProbe the dns provider
* @param parser the parser to use
- * @param logger the logger to use
*/
- public SPF(DNSService dnsProbe, SPFRecordParser parser, Logger logger,
MacroExpand macroExpand, SPFExecutor executor) {
+ public SPF(DNSService dnsProbe, SPFRecordParser parser, MacroExpand
macroExpand, SPFExecutor executor) {
super();
this.dnsProbe = dnsProbe;
this.parser = parser;
- this.log = logger;
this.macroExpand = macroExpand;
this.executor = executor;
}
private static final class DefaultSPFChecker implements SPFChecker,
SPFCheckerExceptionCatcher {
-
- private Logger log;
-
- public DefaultSPFChecker(Logger log) {
- this.log = log;
- }
/**
* @see
org.apache.james.jspf.core.SPFChecker#checkSPF(org.apache.james.jspf.core.SPFSession)
@@ -274,12 +262,12 @@ public class SPF implements SPFChecker {
if (exception instanceof SPFResultException) {
result = ((SPFResultException) exception).getResult();
if (!SPFErrorConstants.NEUTRAL_CONV.equals(result)) {
- log.warn(exception.getMessage(),exception);
+ LOGGER.warn(exception.getMessage(),exception);
}
} else {
// this should never happen at all. But anyway we will set the
// result to neutral. Safety first ..
- log.error(exception.getMessage(),exception);
+ LOGGER.error(exception.getMessage(),exception);
result = SPFErrorConstants.NEUTRAL_CONV;
}
session.setCurrentResultExpanded(result);
@@ -305,12 +293,12 @@ public class SPF implements SPFChecker {
spfData = new SPFSession(mailFrom, hostName, ipAddress);
- SPFChecker resultHandler = new DefaultSPFChecker(log);
+ SPFChecker resultHandler = new DefaultSPFChecker();
spfData.pushChecker(resultHandler);
spfData.pushChecker(this);
- FutureSPFResult ret = new FutureSPFResult(log);
+ FutureSPFResult ret = new FutureSPFResult();
executor.execute(spfData, ret);
@@ -374,12 +362,12 @@ public class SPF implements SPFChecker {
// trustedForwarder support is enabled
if (useTrustedForwarder) {
- policies.add(new SPFPolicyPostFilterChecker(new
TrustedForwarderPolicy(log)));
+ policies.add(new SPFPolicyPostFilterChecker(new
TrustedForwarderPolicy()));
}
policies.add(new SPFPolicyPostFilterChecker(new
NeutralIfNotMatchPolicy()));
- policies.add(new SPFPolicyPostFilterChecker(new
DefaultExplanationPolicy(log, defaultExplanation, macroExpand)));
+ policies.add(new SPFPolicyPostFilterChecker(new
DefaultExplanationPolicy(defaultExplanation, macroExpand)));
return policies;
}
@@ -391,7 +379,7 @@ public class SPF implements SPFChecker {
* @param timeOut The timout in seconds
*/
public synchronized void setTimeOut(int timeOut) {
- log.debug("TimeOut was set to: " + timeOut);
+ LOGGER.debug("TimeOut was set to: {}", timeOut);
dnsProbe.setTimeOut(timeOut);
}
@@ -425,7 +413,7 @@ public class SPF implements SPFChecker {
public synchronized FallbackPolicy getFallbackPolicy() {
// Initialize fallback policy
if (fallBack == null) {
- this.fallBack = new
FallbackPolicy(log.getChildLogger("fallbackpolicy"), parser);
+ this.fallBack = new FallbackPolicy(parser);
}
return fallBack;
}
@@ -450,7 +438,7 @@ public class SPF implements SPFChecker {
*/
public synchronized OverridePolicy getOverridePolicy() {
if (override == null) {
- override = new
OverridePolicy(log.getChildLogger("overridepolicy"), parser);
+ override = new OverridePolicy(parser);
}
return override;
}
diff --git a/resolver/src/main/java/org/apache/james/jspf/impl/SPFQuery.java
b/resolver/src/main/java/org/apache/james/jspf/impl/SPFQuery.java
index 98dd921..008a260 100644
--- a/resolver/src/main/java/org/apache/james/jspf/impl/SPFQuery.java
+++ b/resolver/src/main/java/org/apache/james/jspf/impl/SPFQuery.java
@@ -120,7 +120,7 @@ public class SPFQuery {
if (line.hasOption(CHAR_VERBOSE))
logger.setLevel(Level.TRACE);
- SPF spf = new DefaultSPF(new Log4JLogger(logger));
+ SPF spf = new DefaultSPF();
// Check if we should set a costum default explanation
if (defaultExplanation != null) {
diff --git
a/resolver/src/main/java/org/apache/james/jspf/parser/RFC4408SPF1Parser.java
b/resolver/src/main/java/org/apache/james/jspf/parser/RFC4408SPF1Parser.java
index b7b47ab..fc75791 100644
--- a/resolver/src/main/java/org/apache/james/jspf/parser/RFC4408SPF1Parser.java
+++ b/resolver/src/main/java/org/apache/james/jspf/parser/RFC4408SPF1Parser.java
@@ -20,17 +20,19 @@
package org.apache.james.jspf.parser;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.SPF1Constants;
import org.apache.james.jspf.core.SPF1Record;
import org.apache.james.jspf.core.SPFRecordParser;
import org.apache.james.jspf.core.exceptions.NeutralException;
import org.apache.james.jspf.core.exceptions.NoneException;
import org.apache.james.jspf.core.exceptions.PermErrorException;
+import org.apache.james.jspf.executor.FutureSPFResult;
import org.apache.james.jspf.terms.Configuration;
import org.apache.james.jspf.terms.Directive;
import org.apache.james.jspf.terms.Mechanism;
import org.apache.james.jspf.terms.Modifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Collection;
@@ -77,6 +79,7 @@ import java.util.regex.Pattern;
*
*/
public class RFC4408SPF1Parser implements SPFRecordParser {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(RFC4408SPF1Parser.class);
/**
* Regex based on http://www.ietf.org/rfc/rfc4408.txt.
@@ -107,18 +110,14 @@ public class RFC4408SPF1Parser implements SPFRecordParser
{
private List<TermDefinition> matchResultPositions;
- private Logger log;
-
private TermsFactory termsFactory;
/**
* Constructor. Creates all the values needed to run the parsing
*
- * @param logger the logger to use
* @param termsFactory the TermsFactory implementation
*/
- public RFC4408SPF1Parser(Logger logger, TermsFactory termsFactory) {
- this.log = logger;
+ public RFC4408SPF1Parser(TermsFactory termsFactory) {
this.termsFactory = termsFactory;
/**
@@ -201,16 +200,13 @@ public class RFC4408SPF1Parser implements SPFRecordParser
{
}
}
- if (log.isDebugEnabled()) {
- log.debug("Parsing catch group positions: Modifiers["
- + TERM_STEP_REGEX_MODIFIER_POS + "] Qualifier["
- + TERM_STEP_REGEX_QUALIFIER_POS + "] Mechanism["
- + TERM_STEP_REGEX_MECHANISM_POS + "]");
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("Parsing catch group positions: Modifiers[{}]
Qualifier[{}] Mechanism[{}]",
+ TERM_STEP_REGEX_MODIFIER_POS, TERM_STEP_REGEX_QUALIFIER_POS,
TERM_STEP_REGEX_MECHANISM_POS);
for (int k = 0; k < matchResultPositions.size(); k++) {
- log
- .debug(k
- + ") "
- + (matchResultPositions.get(k) != null ?
((TermDefinition) matchResultPositions
+ LOGGER
+ .debug("{}) {}", k,
+ (matchResultPositions.get(k) != null ?
((TermDefinition) matchResultPositions
.get(k)).getPattern().pattern()
: null));
}
@@ -254,7 +250,7 @@ public class RFC4408SPF1Parser implements SPFRecordParser {
public SPF1Record parse(String spfRecord) throws PermErrorException,
NoneException, NeutralException {
- log.debug("Start parsing SPF-Record: " + spfRecord);
+ LOGGER.debug("Start parsing SPF-Record: " + spfRecord);
SPF1Record result = new SPF1Record();
@@ -311,7 +307,7 @@ public class RFC4408SPF1Parser implements SPFRecordParser {
TERM_STEP_REGEX_MECHANISM_POS);
result.getDirectives().add(
- new Directive(qualifier, (Mechanism) mech,
log.getChildLogger(qualifier+"directive")));
+ new Directive(qualifier, (Mechanism) mech));
}
diff --git
a/resolver/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
b/resolver/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
index 8f6f728..aa73b48 100644
---
a/resolver/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
+++
b/resolver/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
@@ -20,7 +20,6 @@
package org.apache.james.jspf.policies.local;
import org.apache.james.jspf.core.DNSLookupContinuation;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.MacroExpand;
import org.apache.james.jspf.core.SPF1Constants;
import org.apache.james.jspf.core.SPF1Record;
@@ -31,14 +30,17 @@ import
org.apache.james.jspf.core.exceptions.NeutralException;
import org.apache.james.jspf.core.exceptions.NoneException;
import org.apache.james.jspf.core.exceptions.PermErrorException;
import org.apache.james.jspf.core.exceptions.TempErrorException;
+import org.apache.james.jspf.executor.FutureSPFResult;
import org.apache.james.jspf.policies.PolicyPostFilter;
import org.apache.james.jspf.terms.Modifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Policy to add a default explanation
*/
public final class DefaultExplanationPolicy implements PolicyPostFilter {
-
+ private static final Logger LOGGER =
LoggerFactory.getLogger(DefaultExplanationPolicy.class);
private final class ExplanationChecker implements SPFChecker {
@@ -56,7 +58,7 @@ public final class DefaultExplanationPolicy implements
PolicyPostFilter {
spfData.setExplanation(explanation);
} catch (PermErrorException e) {
// Should never happen !
- log.debug("Invalid defaulfExplanation: " + attExplanation);
+ LOGGER.debug("Invalid defaulfExplanation: {}", attExplanation);
}
return null;
}
@@ -106,11 +108,7 @@ public final class DefaultExplanationPolicy implements
PolicyPostFilter {
}
private static final String
ATTRIBUTE_DEFAULT_EXPLANATION_POLICY_EXPLANATION =
"DefaultExplanationPolicy.explanation";
-
- /**
- * log
- */
- private Logger log;
+
/**
* the default explanation
*/
@@ -119,12 +117,10 @@ public final class DefaultExplanationPolicy implements
PolicyPostFilter {
private MacroExpand macroExpand;
/**
- * @param log the logger
* @param explanation the default explanation
* @param macroExpand the MacroExpand service
*/
- public DefaultExplanationPolicy(Logger log, String explanation,
MacroExpand macroExpand) {
- this.log = log;
+ public DefaultExplanationPolicy(String explanation, MacroExpand
macroExpand) {
this.defExplanation = explanation;
this.macroExpand = macroExpand;
}
diff --git
a/resolver/src/main/java/org/apache/james/jspf/policies/local/FallbackPolicy.java
b/resolver/src/main/java/org/apache/james/jspf/policies/local/FallbackPolicy.java
index 37f04c8..d2c6209 100644
---
a/resolver/src/main/java/org/apache/james/jspf/policies/local/FallbackPolicy.java
+++
b/resolver/src/main/java/org/apache/james/jspf/policies/local/FallbackPolicy.java
@@ -19,7 +19,11 @@
package org.apache.james.jspf.policies.local;
-import org.apache.james.jspf.core.Logger;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
import org.apache.james.jspf.core.SPF1Record;
import org.apache.james.jspf.core.SPFRecordParser;
import org.apache.james.jspf.core.exceptions.NeutralException;
@@ -28,25 +32,20 @@ import
org.apache.james.jspf.core.exceptions.PermErrorException;
import org.apache.james.jspf.core.exceptions.SPFResultException;
import org.apache.james.jspf.core.exceptions.TempErrorException;
import org.apache.james.jspf.policies.PolicyPostFilter;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Class to support Fallback feature
*/
public class FallbackPolicy implements PolicyPostFilter {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(FallbackPolicy.class);
private Map<String,SPF1Record> entryMap;
private SPFRecordParser parser;
- private Logger log;
-
- public FallbackPolicy(Logger log, SPFRecordParser parser) {
- this.log = log;
+ public FallbackPolicy(SPFRecordParser parser) {
entryMap = Collections.synchronizedMap(new
HashMap<String,SPF1Record>());
this.parser = parser;
}
@@ -65,15 +64,15 @@ public class FallbackPolicy implements PolicyPostFilter {
throws IllegalArgumentException {
String host;
try {
- log.debug("Start parsing SPF-Record: " + rawSpfRecord);
+ LOGGER.debug("Start parsing SPF-Record: {}", rawSpfRecord);
SPF1Record spfRecord = parser.parse(rawSpfRecord);
if (rawHost.startsWith("*")) {
host = rawHost.substring(1);
- log.debug("Convert host " + rawHost + " to " + host);
+ LOGGER.debug("Convert host {} to {}", rawHost, host);
} else if (rawHost.endsWith("*")) {
int length = rawHost.length();
host = rawHost.substring(length - 1, length);
- log.debug("Convert host " + rawHost + " to " + host);
+ LOGGER.debug("Convert host {} to {}", rawHost, host);
} else {
host = rawHost;
}
@@ -91,7 +90,7 @@ public class FallbackPolicy implements PolicyPostFilter {
*
*/
public void clearEntrys() {
- log.debug("Clear all entries");
+ LOGGER.debug("Clear all entries");
entryMap.clear();
}
@@ -102,7 +101,7 @@ public class FallbackPolicy implements PolicyPostFilter {
* The host
*/
public void removeEntry(String host) {
- log.debug("Remove fallback entry for host: " + host);
+ LOGGER.debug("Remove fallback entry for host: {}", host);
synchronized (entryMap) {
entryMap.remove(getRawEntry(host));
}
diff --git
a/resolver/src/main/java/org/apache/james/jspf/policies/local/OverridePolicy.java
b/resolver/src/main/java/org/apache/james/jspf/policies/local/OverridePolicy.java
index 43f328f..099ffff 100644
---
a/resolver/src/main/java/org/apache/james/jspf/policies/local/OverridePolicy.java
+++
b/resolver/src/main/java/org/apache/james/jspf/policies/local/OverridePolicy.java
@@ -19,7 +19,6 @@
package org.apache.james.jspf.policies.local;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.SPF1Record;
import org.apache.james.jspf.core.SPFRecordParser;
import org.apache.james.jspf.core.exceptions.NeutralException;
@@ -30,10 +29,9 @@ import org.apache.james.jspf.policies.Policy;
public class OverridePolicy extends FallbackPolicy implements Policy {
- public OverridePolicy(Logger log, SPFRecordParser parser) {
- super(log, parser);
+ public OverridePolicy(SPFRecordParser parser) {
+ super(parser);
}
-
/**
* @see
org.apache.james.jspf.policies.Policy#getSPFRecord(java.lang.String)
diff --git
a/resolver/src/main/java/org/apache/james/jspf/policies/local/TrustedForwarderPolicy.java
b/resolver/src/main/java/org/apache/james/jspf/policies/local/TrustedForwarderPolicy.java
index 313cc38..2cca5d7 100644
---
a/resolver/src/main/java/org/apache/james/jspf/policies/local/TrustedForwarderPolicy.java
+++
b/resolver/src/main/java/org/apache/james/jspf/policies/local/TrustedForwarderPolicy.java
@@ -19,7 +19,6 @@
package org.apache.james.jspf.policies.local;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.SPF1Record;
import org.apache.james.jspf.core.exceptions.NeutralException;
import org.apache.james.jspf.core.exceptions.NoneException;
@@ -28,6 +27,8 @@ import
org.apache.james.jspf.core.exceptions.TempErrorException;
import org.apache.james.jspf.policies.PolicyPostFilter;
import org.apache.james.jspf.terms.Directive;
import org.apache.james.jspf.terms.IncludeMechanism;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* PolicyPostFilter which implements trusted forwared.
@@ -35,22 +36,13 @@ import org.apache.james.jspf.terms.IncludeMechanism;
*
*/
public class TrustedForwarderPolicy implements PolicyPostFilter {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(TrustedForwarderPolicy.class);
/**
* The hostname to include
*/
public static final String TRUSTED_FORWARDER_HOST =
"spf.trusted-forwarder.org";
-
- private Logger log;
-
- /**
- * @param log the logger
- */
- public TrustedForwarderPolicy(Logger log) {
- this.log = log;
- }
-
/**
* @see
org.apache.james.jspf.policies.PolicyPostFilter#getSPFRecord(java.lang.String,
org.apache.james.jspf.core.SPF1Record)
*/
@@ -58,7 +50,7 @@ public class TrustedForwarderPolicy implements
PolicyPostFilter {
if (spfRecord == null) return null;
String mechanism = ((Directive)
spfRecord.getDirectives().get(spfRecord.getDirectives().size())).toString();
if (mechanism.equals("-all") || mechanism.equals("?all")) {
- log.debug("Add TrustedForwarderPolicy =
include:"+TRUSTED_FORWARDER_HOST);
+ LOGGER.debug("Add TrustedForwarderPolicy = include:{}",
TRUSTED_FORWARDER_HOST);
try {
IncludeMechanism trusted = new IncludeMechanism() {
/**
@@ -71,7 +63,7 @@ public class TrustedForwarderPolicy implements
PolicyPostFilter {
return this;
}
}.setHost(TRUSTED_FORWARDER_HOST);
-
spfRecord.getDirectives().add(spfRecord.getDirectives().size()-1, new
Directive(null, trusted, log.getChildLogger("trustedforwarder")));
+
spfRecord.getDirectives().add(spfRecord.getDirectives().size()-1, new
Directive(null, trusted));
} catch (PermErrorException e) {
// will never happen
}
diff --git a/resolver/src/main/java/org/apache/james/jspf/terms/AMechanism.java
b/resolver/src/main/java/org/apache/james/jspf/terms/AMechanism.java
index 3433dc2..68784ff 100644
--- a/resolver/src/main/java/org/apache/james/jspf/terms/AMechanism.java
+++ b/resolver/src/main/java/org/apache/james/jspf/terms/AMechanism.java
@@ -20,6 +20,9 @@
package org.apache.james.jspf.terms;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.james.jspf.core.DNSLookupContinuation;
import org.apache.james.jspf.core.DNSRequest;
import org.apache.james.jspf.core.DNSResponse;
@@ -35,15 +38,15 @@ import org.apache.james.jspf.core.exceptions.NoneException;
import org.apache.james.jspf.core.exceptions.PermErrorException;
import org.apache.james.jspf.core.exceptions.TempErrorException;
import org.apache.james.jspf.core.exceptions.TimeoutException;
-
-import java.util.ArrayList;
-import java.util.List;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* This class represent the a mechanism
*
*/
public class AMechanism extends GenericMechanism implements
SPFCheckerDNSResponseListener {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(AMechanism.class);
private static final String ATTRIBUTE_AMECHANISM_IPV4CHECK =
"AMechanism.ipv4check";
@@ -106,7 +109,7 @@ public class AMechanism extends GenericMechanism implements
SPFCheckerDNSRespons
// PermError / TempError
// TODO: Should we replace this with the "right" Exceptions ?
} catch (Exception e) {
- log.debug("No valid ipAddress: ",e);
+ LOGGER.debug("No valid ipAddress: ", e);
throw new PermErrorException("No valid ipAddress: "
+ spfData.getIpAddress());
}
diff --git a/resolver/src/main/java/org/apache/james/jspf/terms/Directive.java
b/resolver/src/main/java/org/apache/james/jspf/terms/Directive.java
index 12b2fa1..792f1ca 100644
--- a/resolver/src/main/java/org/apache/james/jspf/terms/Directive.java
+++ b/resolver/src/main/java/org/apache/james/jspf/terms/Directive.java
@@ -21,7 +21,6 @@
package org.apache.james.jspf.terms;
import org.apache.james.jspf.core.DNSLookupContinuation;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.SPF1Constants;
import org.apache.james.jspf.core.SPFChecker;
import org.apache.james.jspf.core.SPFSession;
@@ -29,11 +28,15 @@ import
org.apache.james.jspf.core.exceptions.NeutralException;
import org.apache.james.jspf.core.exceptions.NoneException;
import org.apache.james.jspf.core.exceptions.PermErrorException;
import org.apache.james.jspf.core.exceptions.TempErrorException;
+import org.apache.james.jspf.executor.FutureSPFResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A Directive is a mechanism with a resulting qualifier.
*/
public class Directive implements SPFChecker {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(Directive.class);
private final class MechanismResultChecker implements SPFChecker {
@@ -50,10 +53,10 @@ public class Directive implements SPFChecker {
} else {
spfData.setCurrentResult(qualifier);
}
-
- log.info("Processed directive matched: " + Directive.this + "
returned " + spfData.getCurrentResult());
+
+ LOGGER.info("Processed directive matched: {} returned {}",
Directive.this, spfData.getCurrentResult());
} else {
- log.debug("Processed directive NOT matched: " + this);
+ LOGGER.debug("Processed directive NOT matched: {}", this);
}
return null;
}
@@ -66,8 +69,6 @@ public class Directive implements SPFChecker {
private Mechanism mechanism = null;
- private Logger log;
-
private MechanismResultChecker resultChecker;
/**
@@ -77,10 +78,9 @@ public class Directive implements SPFChecker {
* @param mechanism The Mechanism
* @throws PermErrorException Get thrown if a PermError should returned
*/
- public Directive(String qualifier, Mechanism mechanism, Logger logger)
+ public Directive(String qualifier, Mechanism mechanism)
throws PermErrorException {
super();
- this.log = logger;
if (qualifier == null) {
throw new PermErrorException("Qualifier cannot be null");
}
diff --git
a/resolver/src/main/java/org/apache/james/jspf/terms/ExpModifier.java
b/resolver/src/main/java/org/apache/james/jspf/terms/ExpModifier.java
index d97fe30..5c664b0 100644
--- a/resolver/src/main/java/org/apache/james/jspf/terms/ExpModifier.java
+++ b/resolver/src/main/java/org/apache/james/jspf/terms/ExpModifier.java
@@ -20,6 +20,8 @@
package org.apache.james.jspf.terms;
+import java.util.List;
+
import org.apache.james.jspf.core.DNSLookupContinuation;
import org.apache.james.jspf.core.DNSRequest;
import org.apache.james.jspf.core.DNSResponse;
@@ -35,8 +37,8 @@ import org.apache.james.jspf.core.exceptions.NoneException;
import org.apache.james.jspf.core.exceptions.PermErrorException;
import org.apache.james.jspf.core.exceptions.TempErrorException;
import org.apache.james.jspf.core.exceptions.TimeoutException;
-
-import java.util.List;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* This class represent the exp modifier
@@ -44,6 +46,8 @@ import java.util.List;
*/
public class ExpModifier extends GenericModifier implements
MacroExpandEnabled, SPFCheckerDNSResponseListener {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(ExpModifier.class);
+
private final class ExpandedExplanationChecker implements SPFChecker {
/**
@@ -165,7 +169,7 @@ public class ExpModifier extends GenericModifier implements
MacroExpandEnabled,
// errors in the explanation string, then proceed as if no exp
modifier was given.
if (records.size() > 1) {
- log.debug("More then one TXT-Record found for explanation");
+ LOGGER.debug("More then one TXT-Record found for explanation");
// Only catch the error and return null
} else {
diff --git
a/resolver/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java
b/resolver/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java
index aa3d1c6..8453277 100644
--- a/resolver/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java
+++ b/resolver/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java
@@ -20,8 +20,6 @@
package org.apache.james.jspf.terms;
-import org.apache.james.jspf.core.LogEnabled;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.MacroExpand;
import org.apache.james.jspf.core.MacroExpandEnabled;
import org.apache.james.jspf.core.SPFSession;
@@ -31,7 +29,7 @@ import
org.apache.james.jspf.core.exceptions.PermErrorException;
* This abstract class represent a gerneric mechanism
*
*/
-public abstract class GenericMechanism implements Mechanism,
ConfigurationEnabled, LogEnabled, MacroExpandEnabled {
+public abstract class GenericMechanism implements Mechanism,
ConfigurationEnabled, MacroExpandEnabled {
/**
* ABNF: ip4-cidr-length = "/" 1*DIGIT
@@ -52,8 +50,6 @@ public abstract class GenericMechanism implements Mechanism,
ConfigurationEnable
private String domain;
- protected Logger log;
-
protected MacroExpand macroExpand;
/**
@@ -92,13 +88,6 @@ public abstract class GenericMechanism implements Mechanism,
ConfigurationEnable
}
/**
- * @see
org.apache.james.jspf.core.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
- */
- public void enableLogging(Logger logger) {
- this.log = logger;
- }
-
- /**
* @see
org.apache.james.jspf.core.MacroExpandEnabled#enableMacroExpand(org.apache.james.jspf.core.MacroExpand)
*/
public void enableMacroExpand(MacroExpand macroExpand) {
diff --git
a/resolver/src/main/java/org/apache/james/jspf/terms/GenericModifier.java
b/resolver/src/main/java/org/apache/james/jspf/terms/GenericModifier.java
index 16051a5..01a5c62 100644
--- a/resolver/src/main/java/org/apache/james/jspf/terms/GenericModifier.java
+++ b/resolver/src/main/java/org/apache/james/jspf/terms/GenericModifier.java
@@ -21,33 +21,32 @@
package org.apache.james.jspf.terms;
import org.apache.james.jspf.core.DNSLookupContinuation;
-import org.apache.james.jspf.core.LogEnabled;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.SPFSession;
import org.apache.james.jspf.core.exceptions.NeutralException;
import org.apache.james.jspf.core.exceptions.NoneException;
import org.apache.james.jspf.core.exceptions.PermErrorException;
import org.apache.james.jspf.core.exceptions.TempErrorException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* This abstract class represent a gerneric modifier
*
*/
-public abstract class GenericModifier implements Modifier,
ConfigurationEnabled, LogEnabled {
+public abstract class GenericModifier implements Modifier,
ConfigurationEnabled {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(GenericModifier.class);
private String host;
- protected Logger log;
-
/**
* @see
org.apache.james.jspf.core.SPFChecker#checkSPF(org.apache.james.jspf.core.SPFSession)
*/
public DNSLookupContinuation checkSPF(SPFSession spfData) throws
PermErrorException,
TempErrorException, NeutralException, NoneException {
- log.debug("Processing modifier: " + this);
+ LOGGER.debug("Processing modifier: {}", this);
DNSLookupContinuation res = checkSPFLogged(spfData);
- log.debug("Processed modifier: " + this + " resulted in "
- + res == null ? spfData.getCurrentResult() : " dns
continuation...");
+ LOGGER.debug("Processed modifier: {} resulted in {} ",
+ this, res == null ? spfData.getCurrentResult() : "dns
continuation...");
return res;
}
@@ -77,14 +76,4 @@ public abstract class GenericModifier implements Modifier,
ConfigurationEnabled,
protected synchronized String getHost() {
return host;
}
-
-
- /**
- * @see
org.apache.james.jspf.core.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
- */
- public void enableLogging(Logger logger) {
- this.log = logger;
- }
-
-
}
diff --git
a/resolver/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java
b/resolver/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java
index 3391665..6c01e21 100644
--- a/resolver/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java
+++ b/resolver/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java
@@ -21,8 +21,6 @@
package org.apache.james.jspf.terms;
import org.apache.james.jspf.core.DNSLookupContinuation;
-import org.apache.james.jspf.core.LogEnabled;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.MacroExpand;
import org.apache.james.jspf.core.MacroExpandEnabled;
import org.apache.james.jspf.core.SPF1Constants;
@@ -40,7 +38,7 @@ import
org.apache.james.jspf.core.exceptions.TempErrorException;
* This class represent the incude mechanism
*
*/
-public class IncludeMechanism implements Mechanism, ConfigurationEnabled,
LogEnabled, SPFCheckEnabled, MacroExpandEnabled {
+public class IncludeMechanism implements Mechanism, ConfigurationEnabled,
SPFCheckEnabled, MacroExpandEnabled {
private final class ExpandedChecker implements SPFChecker {
@@ -147,8 +145,6 @@ public class IncludeMechanism implements Mechanism,
ConfigurationEnabled, LogEna
+ SPFTermsRegexps.DOMAIN_SPEC_REGEX;
protected String host;
-
- protected Logger log;
private SPFChecker spfChecker;
@@ -186,13 +182,6 @@ public class IncludeMechanism implements Mechanism,
ConfigurationEnabled, LogEna
}
/**
- * @see
org.apache.james.jspf.core.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
- */
- public void enableLogging(Logger logger) {
- this.log = logger;
- }
-
- /**
* @see java.lang.Object#toString()
*/
public String toString() {
diff --git
a/resolver/src/main/java/org/apache/james/jspf/terms/MXMechanism.java
b/resolver/src/main/java/org/apache/james/jspf/terms/MXMechanism.java
index d866d70..1e54ad9 100644
--- a/resolver/src/main/java/org/apache/james/jspf/terms/MXMechanism.java
+++ b/resolver/src/main/java/org/apache/james/jspf/terms/MXMechanism.java
@@ -20,6 +20,9 @@
package org.apache.james.jspf.terms;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.james.jspf.core.DNSLookupContinuation;
import org.apache.james.jspf.core.DNSRequest;
import org.apache.james.jspf.core.DNSResponse;
@@ -34,15 +37,15 @@ import org.apache.james.jspf.core.exceptions.NoneException;
import org.apache.james.jspf.core.exceptions.PermErrorException;
import org.apache.james.jspf.core.exceptions.TempErrorException;
import org.apache.james.jspf.core.exceptions.TimeoutException;
-
-import java.util.ArrayList;
-import java.util.List;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* This class represent the mx mechanism
*
*/
public class MXMechanism extends AMechanism implements
SPFCheckerDNSResponseListener {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(MXMechanism.class);
private final class ExpandedChecker implements SPFChecker {
@@ -125,7 +128,7 @@ public class MXMechanism extends AMechanism implements
SPFCheckerDNSResponseList
String mx;
while (records.size() > 0 && (mx = records.remove(0)) != null &&
mx.length() > 0) {
- log.debug("Add MX-Record " + mx + " to list");
+ LOGGER.debug("Add MX-Record {} to list", mx);
return new DNSLookupContinuation(new DNSRequest(mx, isIPv6 ?
DNSRequest.AAAA : DNSRequest.A), MXMechanism.this);
diff --git a/resolver/src/test/java/org/apache/james/jspf/AbstractYamlTest.java
b/resolver/src/test/java/org/apache/james/jspf/AbstractYamlTest.java
index aeae913..fa6af83 100644
--- a/resolver/src/test/java/org/apache/james/jspf/AbstractYamlTest.java
+++ b/resolver/src/test/java/org/apache/james/jspf/AbstractYamlTest.java
@@ -19,17 +19,23 @@
package org.apache.james.jspf;
+import java.io.IOException;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
import org.apache.james.jspf.core.DNSRequest;
import org.apache.james.jspf.core.DNSService;
import org.apache.james.jspf.core.DNSServiceEnabled;
-import org.apache.james.jspf.core.LogEnabled;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.MacroExpand;
import org.apache.james.jspf.core.MacroExpandEnabled;
import org.apache.james.jspf.core.SPFCheckEnabled;
import org.apache.james.jspf.core.SPFRecordParser;
import org.apache.james.jspf.core.exceptions.TimeoutException;
-import org.apache.james.jspf.tester.DNSTestingServer;
import org.apache.james.jspf.executor.SPFExecutor;
import org.apache.james.jspf.executor.SPFResult;
import org.apache.james.jspf.executor.StagedMultipleSPFExecutor;
@@ -40,9 +46,11 @@ import org.apache.james.jspf.impl.DNSServiceXBillImpl;
import org.apache.james.jspf.impl.DefaultTermsFactory;
import org.apache.james.jspf.impl.SPF;
import org.apache.james.jspf.parser.RFC4408SPF1Parser;
-import org.apache.james.jspf.wiring.WiringService;
-import org.apache.james.jspf.wiring.WiringServiceException;
+import org.apache.james.jspf.tester.DNSTestingServer;
import org.apache.james.jspf.tester.SPFYamlTestDescriptor;
+import org.apache.james.jspf.wiring.WiringService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.xbill.DNS.Cache;
import org.xbill.DNS.DClass;
import org.xbill.DNS.Lookup;
@@ -51,23 +59,14 @@ import org.xbill.DNS.Resolver;
import org.xbill.DNS.SimpleResolver;
import org.xbill.DNS.TextParseException;
+import junit.framework.AssertionFailedError;
+import junit.framework.TestCase;
import uk.nominet.dnsjnio.ExtendedNonblockingResolver;
import uk.nominet.dnsjnio.LookupAsynch;
import uk.nominet.dnsjnio.NonblockingResolver;
-import java.io.IOException;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-import junit.framework.AssertionFailedError;
-import junit.framework.TestCase;
-
public abstract class AbstractYamlTest extends TestCase {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(AbstractYamlTest.class);
private static final int FAKE_SERVER_PORT = 31348;
protected static final int TIMEOUT = 10;
@@ -84,7 +83,6 @@ public abstract class AbstractYamlTest extends TestCase {
SPFYamlTestDescriptor data;
String test;
- protected Logger log;
private SPFExecutor executor;
protected static MacroExpand macroExpand;
protected static SPF spf;
@@ -132,25 +130,16 @@ public abstract class AbstractYamlTest extends TestCase {
}
protected void runTest() throws Throwable {
-
- if (log == null) {
- log = new ConsoleLogger(ConsoleLogger.LEVEL_DEBUG, "root");
- }
- log.info("Running test: "+getName()+" ...");
+ LOGGER.info("Running test: "+getName()+" ...");
if (parser == null) {
/* PREVIOUS SLOW WAY
enabledServices = new WiringServiceTable();
enabledServices.put(LogEnabled.class, log);
*/
- parser = new RFC4408SPF1Parser(log.getChildLogger("parser"), new
DefaultTermsFactory(log.getChildLogger("termsfactory"), new WiringService() {
-
- public void wire(Object component) throws
WiringServiceException {
- if (component instanceof LogEnabled) {
- String[] path =
component.getClass().toString().split("\\.");
- ((LogEnabled)
component).enableLogging(log.getChildLogger("dep").getChildLogger(path[path.length-1].toLowerCase()));
- }
+ parser = new RFC4408SPF1Parser(new DefaultTermsFactory(new
WiringService() {
+ public void wire(Object component) {
if (component instanceof MacroExpandEnabled) {
((MacroExpandEnabled)
component).enableMacroExpand(macroExpand);
}
@@ -161,18 +150,17 @@ public abstract class AbstractYamlTest extends TestCase {
((SPFCheckEnabled) component).enableSPFChecking(spf);
}
}
-
}));
}
if (this.data != AbstractYamlTest.prevData) {
- dns = new LoggingDNSService(getDNSService(),
log.getChildLogger("dns"));
+ dns = new LoggingDNSService(getDNSService());
AbstractYamlTest.prevData = this.data;
}
- macroExpand = new MacroExpand(log.getChildLogger("macroExpand"), dns);
+ macroExpand = new MacroExpand(dns);
if (getSpfExecutorType() == SYNCHRONOUS_EXECUTOR) { // synchronous
- executor = new SynchronousSPFExecutor(log, dns);
+ executor = new SynchronousSPFExecutor(dns);
} else if (getSpfExecutorType() == STAGED_EXECUTOR ||
getSpfExecutorType() == STAGED_EXECUTOR_MULTITHREADED){
- executor = new StagedMultipleSPFExecutor(log, new
DNSServiceAsynchSimulator(dns, getSpfExecutorType() ==
STAGED_EXECUTOR_MULTITHREADED));
+ executor = new StagedMultipleSPFExecutor(new
DNSServiceAsynchSimulator(dns, getSpfExecutorType() ==
STAGED_EXECUTOR_MULTITHREADED));
} else if (getSpfExecutorType() == STAGED_EXECUTOR_DNSJNIO) {
// reset cache between usages of the asynchronous lookuper
@@ -200,7 +188,7 @@ public abstract class AbstractYamlTest extends TestCase {
DNSJnioAsynchService jnioAsynchService = new
DNSJnioAsynchService(resolver);
jnioAsynchService.setTimeout(TIMEOUT);
- executor = new StagedMultipleSPFExecutor(log,
jnioAsynchService);
+ executor = new StagedMultipleSPFExecutor(jnioAsynchService);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
@@ -210,7 +198,7 @@ public abstract class AbstractYamlTest extends TestCase {
} else {
throw new UnsupportedOperationException("Unknown executor type");
}
- spf = new SPF(dns, parser, log.getChildLogger("spf"), macroExpand,
executor);
+ spf = new SPF(dns, parser, macroExpand, executor);
if (test != null) {
String next = test;
@@ -229,7 +217,7 @@ public abstract class AbstractYamlTest extends TestCase {
try {
verifyResult(next, queries.get(next));
} catch (AssertionFailedError e) {
- log.getChildLogger(next).info("FAILED. "+e.getMessage()+"
("+getName()+")", e.getMessage()==null ? e : null);
+ LOGGER.info("FAILED. {} ({})", e.getMessage(), getName(),
e);
if (firstError == null) firstError = e;
}
}
@@ -240,8 +228,7 @@ public abstract class AbstractYamlTest extends TestCase {
private SPFResult runSingleTest(String testName) {
Map<String, ?> currentTest = data.getTests().get(testName);
- Logger testLogger = log.getChildLogger(testName);
- testLogger.info("TESTING "+testName+":
"+currentTest.get("description"));
+ LOGGER.info("TESTING {}: {}", testName,
currentTest.get("description"));
String ip = null;
String sender = null;
@@ -267,7 +254,6 @@ public abstract class AbstractYamlTest extends TestCase {
private void verifyResult(String testName, SPFResult res) {
String resultSPF = res.getResult();
Map<String,?> currentTest = data.getTests().get(testName);
- Logger testLogger = log.getChildLogger(testName+"-verify");
if (currentTest.get("result") instanceof String) {
assertEquals("Test "+testName+"
("+currentTest.get("description")+") failed. Returned: "+resultSPF+" Expected:
"+currentTest.get("result")+" [["+resultSPF+"||"+res.getHeaderText()+"]]",
currentTest.get("result"), resultSPF);
} else {
@@ -296,7 +282,7 @@ public abstract class AbstractYamlTest extends TestCase {
}
- testLogger.info("PASSED. Result="+resultSPF+"
Explanation="+res.getExplanation()+" Header="+res.getHeaderText());
+ LOGGER.info("PASSED. Result={} Explanation={} Header={}", resultSPF,
res.getExplanation(), res.getHeaderText());
}
/**
@@ -353,7 +339,7 @@ public abstract class AbstractYamlTest extends TestCase {
dnsTestServer.setData((Map<String, List<?>>) data.getZonedata());
- DNSServiceXBillImpl serviceXBillImpl = new DNSServiceXBillImpl(log) {
+ DNSServiceXBillImpl serviceXBillImpl = new DNSServiceXBillImpl() {
public List<String> getLocalDomainNames() {
List<String> l = new ArrayList<String>();
@@ -371,7 +357,7 @@ public abstract class AbstractYamlTest extends TestCase {
* @return a real dns resolver
*/
protected DNSService getDNSServiceReal() {
- DNSServiceXBillImpl serviceXBillImpl = new DNSServiceXBillImpl(log);
+ DNSServiceXBillImpl serviceXBillImpl = new DNSServiceXBillImpl();
// TIMEOUT 2 seconds
serviceXBillImpl.setTimeOut(TIMEOUT);
return serviceXBillImpl;
diff --git a/resolver/src/test/java/org/apache/james/jspf/ConsoleLogger.java
b/resolver/src/test/java/org/apache/james/jspf/ConsoleLogger.java
deleted file mode 100644
index 3d43e2d..0000000
--- a/resolver/src/test/java/org/apache/james/jspf/ConsoleLogger.java
+++ /dev/null
@@ -1,289 +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.jspf;
-
-import org.apache.james.jspf.core.Logger;
-
-/**
- * Logger sending everything to the standard output streams.
- * This is mainly for the cases when you have a utility that
- * does not have a logger to supply.
- */
-public final class ConsoleLogger implements Logger {
-
- /** Typecode for debugging messages. */
- public static final int LEVEL_DEBUG = 0;
-
- /** Typecode for informational messages. */
- public static final int LEVEL_INFO = 1;
-
- /** Typecode for warning messages. */
- public static final int LEVEL_WARN = 2;
-
- /** Typecode for error messages. */
- public static final int LEVEL_ERROR = 3;
-
- /** Typecode for fatal error messages. */
- public static final int LEVEL_FATAL = 4;
-
- /** Typecode for disabled log levels. */
- public static final int LEVEL_DISABLED = 5;
-
- private final int m_logLevel;
-
- /**
- * Current logger path.
- */
- private String m_path;
-
- /**
- * Creates a new ConsoleLogger with the priority set to DEBUG.
- */
- public ConsoleLogger()
- {
- this( LEVEL_DEBUG , "ROOT");
- }
-
- /**
- * Creates a new ConsoleLogger.
- * @param logLevel log level typecode
- */
- public ConsoleLogger( final int logLevel, final String path )
- {
- m_logLevel = logLevel;
- m_path = path;
- }
-
- /**
- * Logs a debugging message.
- *
- * @param message a <code>String</code> value
- */
- public void debug( final String message )
- {
- debug( message, null );
- }
-
- /**
- * Logs a debugging message and an exception.
- *
- * @param message a <code>String</code> value
- * @param throwable a <code>Throwable</code> value
- */
- public void debug( final String message, final Throwable throwable )
- {
- if( m_logLevel <= LEVEL_DEBUG )
- {
- System.out.print( "[DEBUG] " );
- System.out.print( m_path+" " );
- System.out.println( message );
-
- if( null != throwable )
- {
- throwable.printStackTrace( System.out );
- }
- }
- }
-
- /**
- * Returns <code>true</code> if debug-level logging is enabled, false
otherwise.
- *
- * @return <code>true</code> if debug-level logging
- */
- public boolean isDebugEnabled()
- {
- return m_logLevel <= LEVEL_DEBUG;
- }
-
- /**
- * Logs an informational message.
- *
- * @param message a <code>String</code> value
- */
- public void info( final String message )
- {
- info( message, null );
- }
-
- /**
- * Logs an informational message and an exception.
- *
- * @param message a <code>String</code> value
- * @param throwable a <code>Throwable</code> value
- */
- public void info( final String message, final Throwable throwable )
- {
- if( m_logLevel <= LEVEL_INFO )
- {
- System.out.print( "[INFO] " );
- System.out.print( m_path+" " );
- System.out.println( message );
-
- if( null != throwable )
- {
- throwable.printStackTrace( System.out );
- }
- }
- }
-
- /**
- * Returns <code>true</code> if info-level logging is enabled, false
otherwise.
- *
- * @return <code>true</code> if info-level logging is enabled
- */
- public boolean isInfoEnabled()
- {
- return m_logLevel <= LEVEL_INFO;
- }
-
- /**
- * Logs a warning message.
- *
- * @param message a <code>String</code> value
- */
- public void warn( final String message )
- {
- warn( message, null );
- }
-
- /**
- * Logs a warning message and an exception.
- *
- * @param message a <code>String</code> value
- * @param throwable a <code>Throwable</code> value
- */
- public void warn( final String message, final Throwable throwable )
- {
- if( m_logLevel <= LEVEL_WARN )
- {
- System.out.print( "[WARNING] " );
- System.out.print( m_path+" " );
- System.out.println( message );
-
- if( null != throwable )
- {
- throwable.printStackTrace( System.out );
- }
- }
- }
-
- /**
- * Returns <code>true</code> if warn-level logging is enabled, false
otherwise.
- *
- * @return <code>true</code> if warn-level logging is enabled
- */
- public boolean isWarnEnabled()
- {
- return m_logLevel <= LEVEL_WARN;
- }
-
- /**
- * Logs an error message.
- *
- * @param message a <code>String</code> value
- */
- public void error( final String message )
- {
- error( message, null );
- }
-
- /**
- * Logs an error message and an exception.
- *
- * @param message a <code>String</code> value
- * @param throwable a <code>Throwable</code> value
- */
- public void error( final String message, final Throwable throwable )
- {
- if( m_logLevel <= LEVEL_ERROR )
- {
- System.out.print( "[ERROR] " );
- System.out.print( m_path+" " );
- System.out.println( message );
-
- if( null != throwable )
- {
- throwable.printStackTrace( System.out );
- }
- }
- }
-
- /**
- * Returns <code>true</code> if error-level logging is enabled, false
otherwise.
- *
- * @return <code>true</code> if error-level logging is enabled
- */
- public boolean isErrorEnabled()
- {
- return m_logLevel <= LEVEL_ERROR;
- }
-
- /**
- * Logs a fatal error message.
- *
- * @param message a <code>String</code> value
- */
- public void fatalError( final String message )
- {
- fatalError( message, null );
- }
-
- /**
- * Logs a fatal error message and an exception.
- *
- * @param message a <code>String</code> value
- * @param throwable a <code>Throwable</code> value
- */
- public void fatalError( final String message, final Throwable throwable )
- {
- if( m_logLevel <= LEVEL_FATAL )
- {
- System.out.print( "[FATAL ERROR] " );
- System.out.print( m_path+" " );
- System.out.println( message );
-
- if( null != throwable )
- {
- throwable.printStackTrace( System.out );
- }
- }
- }
-
- /**
- * Returns <code>true</code> if fatal-level logging is enabled, false
otherwise.
- *
- * @return <code>true</code> if fatal-level logging is enabled
- */
- public boolean isFatalErrorEnabled()
- {
- return m_logLevel <= LEVEL_FATAL;
- }
-
- /**
- * Just returns this logger (<code>ConsoleLogger</code> is not
hierarchical).
- *
- * @param name ignored
- * @return this logger
- */
- public Logger getChildLogger( final String name )
- {
- return new ConsoleLogger(m_logLevel, m_path+"."+name);
- }
-}
\ No newline at end of file
diff --git
a/resolver/src/test/java/org/apache/james/jspf/LoggingDNSService.java
b/resolver/src/test/java/org/apache/james/jspf/LoggingDNSService.java
index 39b098e..f755c58 100644
--- a/resolver/src/test/java/org/apache/james/jspf/LoggingDNSService.java
+++ b/resolver/src/test/java/org/apache/james/jspf/LoggingDNSService.java
@@ -21,19 +21,20 @@ package org.apache.james.jspf;
import org.apache.james.jspf.core.DNSRequest;
import org.apache.james.jspf.core.DNSService;
-import org.apache.james.jspf.core.Logger;
import org.apache.james.jspf.core.exceptions.TimeoutException;
+import org.apache.james.jspf.executor.FutureSPFResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.List;
public class LoggingDNSService implements DNSService {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(LoggingDNSService.class);
private DNSService dnsService;
- private Logger logger;
- public LoggingDNSService(DNSService service, Logger logger) {
+ public LoggingDNSService(DNSService service) {
this.dnsService = service;
- this.logger = logger;
}
/**
@@ -72,7 +73,7 @@ public class LoggingDNSService implements DNSService {
} else {
logBuff.append("getLocalDomainNames-ret: null");
}
- logger.debug(logBuff.toString());
+ LOGGER.debug(logBuff.toString());
return res;
}
@@ -106,11 +107,11 @@ public class LoggingDNSService implements DNSService {
} else {
logBuff.append("getRecords-ret: null");
}
- logger.debug(logBuff.toString());
+ LOGGER.debug(logBuff.toString());
return result;
} catch (TimeoutException e) {
- logger.debug("getRecords(" + request.getHostname()
- + ") = TempErrorException[" + e.getMessage() + "]");
+ LOGGER.debug("getRecords({}) = TempErrorException[{}]",
+ request.getHostname(), e.getMessage());
throw e;
}
}
diff --git
a/resolver/src/test/java/org/apache/james/jspf/RFC4408AsynchronousYamlTest.java
b/resolver/src/test/java/org/apache/james/jspf/RFC4408AsynchronousYamlTest.java
index b04fd9b..c0f4e7a 100644
---
a/resolver/src/test/java/org/apache/james/jspf/RFC4408AsynchronousYamlTest.java
+++
b/resolver/src/test/java/org/apache/james/jspf/RFC4408AsynchronousYamlTest.java
@@ -19,14 +19,12 @@
package org.apache.james.jspf;
-import org.apache.james.jspf.core.Logger;
-import org.apache.james.jspf.impl.Log4JLogger;
-import org.apache.james.jspf.tester.SPFYamlTestDescriptor;
-
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
+import org.apache.james.jspf.tester.SPFYamlTestDescriptor;
+
import junit.framework.Test;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
@@ -80,10 +78,6 @@ public class RFC4408AsynchronousYamlTest extends
RFC4408YamlTest {
}
- protected void setLogger(Logger logger) {
- this.log = logger;
- }
-
/**
* This method has been created for spf spec people to let them better
read the
* output of our tests against their yaml file
@@ -92,8 +86,6 @@ public class RFC4408AsynchronousYamlTest extends
RFC4408YamlTest {
* @throws Throwable
*/
public static void main(String[] args) throws Throwable {
- Logger l = new Log4JLogger(org.apache.log4j.Logger.getLogger("ROOT"));
-
List<SPFYamlTestDescriptor> tests =
SPFYamlTestDescriptor.loadTests(YAMLFILE2);
Iterator<SPFYamlTestDescriptor> i = tests.iterator();
while (i.hasNext()) {
@@ -101,7 +93,6 @@ public class RFC4408AsynchronousYamlTest extends
RFC4408YamlTest {
Iterator<String> ttt = o.getTests().keySet().iterator();
while (ttt.hasNext()) {
RFC4408AsynchronousYamlTest t = new
RFC4408AsynchronousYamlTest(o, ttt.next());
- t.setLogger(l);
TestRunner.run(t);
}
}
diff --git a/resolver/src/test/java/org/apache/james/jspf/RFC4408YamlTest.java
b/resolver/src/test/java/org/apache/james/jspf/RFC4408YamlTest.java
index 26da529..32a0766 100644
--- a/resolver/src/test/java/org/apache/james/jspf/RFC4408YamlTest.java
+++ b/resolver/src/test/java/org/apache/james/jspf/RFC4408YamlTest.java
@@ -19,14 +19,12 @@
package org.apache.james.jspf;
-import org.apache.james.jspf.core.Logger;
-import org.apache.james.jspf.impl.Log4JLogger;
-import org.apache.james.jspf.tester.SPFYamlTestDescriptor;
-
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
+import org.apache.james.jspf.tester.SPFYamlTestDescriptor;
+
import junit.framework.Test;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
@@ -86,10 +84,6 @@ public class RFC4408YamlTest extends AbstractYamlTest {
}
- protected void setLogger(Logger logger) {
- this.log = logger;
- }
-
/**
* This method has been created for spf spec people to let them better
read the
* output of our tests against their yaml file
@@ -98,8 +92,6 @@ public class RFC4408YamlTest extends AbstractYamlTest {
* @throws Throwable
*/
public static void main(String[] args) throws Throwable {
- Logger l = new Log4JLogger(org.apache.log4j.Logger.getLogger("ROOT"));
-
List<SPFYamlTestDescriptor> tests =
SPFYamlTestDescriptor.loadTests(YAMLFILE2);
Iterator<SPFYamlTestDescriptor> i = tests.iterator();
while (i.hasNext()) {
@@ -107,7 +99,6 @@ public class RFC4408YamlTest extends AbstractYamlTest {
Iterator<String> ttt = o.getTests().keySet().iterator();
while (ttt.hasNext()) {
RFC4408YamlTest t = new RFC4408YamlTest(o,(String) ttt.next());
- t.setLogger(l);
TestRunner.run(t);
}
}
diff --git a/resolver/src/test/java/org/apache/james/jspf/SPF1ParserTest.java
b/resolver/src/test/java/org/apache/james/jspf/SPF1ParserTest.java
index 882e5cf..21d2f73 100644
--- a/resolver/src/test/java/org/apache/james/jspf/SPF1ParserTest.java
+++ b/resolver/src/test/java/org/apache/james/jspf/SPF1ParserTest.java
@@ -52,7 +52,7 @@ public class SPF1ParserTest extends TestCase {
}
}
assertNotNull(data);
- parser = new RFC4408SPF1Parser(new ConsoleLogger(), new
DefaultTermsFactory(new ConsoleLogger()));
+ parser = new RFC4408SPF1Parser(new DefaultTermsFactory());
}
public static Test suite() throws IOException {
@@ -171,7 +171,7 @@ public class SPF1ParserTest extends TestCase {
super();
List<SPF1RecordTestDef> tests = loadTests();
Iterator<SPF1RecordTestDef> i = tests.iterator();
- SPFRecordParser parser = new RFC4408SPF1Parser(new
ConsoleLogger(), new DefaultTermsFactory(new ConsoleLogger()));
+ SPFRecordParser parser = new RFC4408SPF1Parser(new
DefaultTermsFactory());
while (i.hasNext()) {
addTest(new SPF1ParserTest((SPF1RecordTestDef) i.next(),
parser));
}
diff --git
a/resolver/src/test/java/org/apache/james/jspf/core/MacroExpandTest.java
b/resolver/src/test/java/org/apache/james/jspf/core/MacroExpandTest.java
index e3ca4a9..020ab69 100644
--- a/resolver/src/test/java/org/apache/james/jspf/core/MacroExpandTest.java
+++ b/resolver/src/test/java/org/apache/james/jspf/core/MacroExpandTest.java
@@ -19,9 +19,6 @@
package org.apache.james.jspf.core;
-import org.apache.james.jspf.ConsoleLogger;
-import org.apache.james.jspf.core.MacroData;
-import org.apache.james.jspf.core.MacroExpand;
import org.apache.james.jspf.core.exceptions.PermErrorException;
import junit.framework.TestCase;
@@ -97,8 +94,8 @@ public class MacroExpandTest extends TestCase {
protected void setUp() throws Exception {
super.setUp();
- defIp4me = new MacroExpand(new ConsoleLogger(), null);
- defIp6me = new MacroExpand(new ConsoleLogger(), null);
+ defIp4me = new MacroExpand(null);
+ defIp6me = new MacroExpand(null);
}
public void testPercS() throws PermErrorException {
diff --git a/resolver/src/test/resources/log4j.properties
b/resolver/src/test/resources/log4j.properties
deleted file mode 100644
index 665e4c1..0000000
--- a/resolver/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,35 +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. #
-#################################################################
-
-#
-# The logging properties
-#
-log4j.rootLogger=DEBUG, stdout
-
-# CONSOLE appender not used by default
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1}
- %m%n
-
-# File appender
-log4j.appender.out=org.apache.log4j.FileAppender
-log4j.appender.out.layout=org.apache.log4j.PatternLayout
-log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} -
%m%n
-log4j.appender.out.file=target/log.txt
-log4j.appender.out.append=false
diff --git a/resolver/src/test/resources/logback-test.xml
b/resolver/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..19ebfff
--- /dev/null
+++ b/resolver/src/test/resources/logback-test.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <appender name="FILE" class="ch.qos.logback.core.FileAppender">
+ <file>test-run.log</file>
+ <append>false</append>
+ <!-- set immediateFlush to false for much higher logging
throughput -->
+ <immediateFlush>false</immediateFlush>
+ <!-- encoders are assigned the type
+ ch.qos.logback.classic.encoder.PatternLayoutEncoder by
default -->
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{35} -
%msg%n%rEx</pattern>
+ </encoder>
+ </appender>
+
+
+ <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} -
%msg%n%rEx</pattern>
+ </encoder>
+ <immediateFlush>false</immediateFlush>
+ <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+ <level>ERROR</level>
+ </filter>
+ </appender>
+
+ <root level="WARN">
+ <appender-ref ref="CONSOLE" />
+ <appender-ref ref="FILE" />
+ </root>
+ <logger name="org.apache.james" level="DEBUG" />
+
+</configuration>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]