james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From b...@apache.org
Subject svn commit: r452905 - in /james/jspf/trunk/src: main/java/org/apache/james/jspf/ main/java/org/apache/james/jspf/core/ main/java/org/apache/james/jspf/parser/ main/java/org/apache/james/jspf/terms/ main/java/org/apache/james/jspf/wiring/ test/java/org/...
Date Wed, 04 Oct 2006 14:56:48 GMT
Author: bago
Date: Wed Oct  4 07:56:47 2006
New Revision: 452905

URL: http://svn.apache.org/viewvc?view=rev&rev=452905
Log:
Moved enabling interfaces to the "wiring" package.
Removed services from SPF1Data.
Introduced a WiringService (in the wiring package).
A component (Factory) creating childs to be serviced can use WiringService.wire(Object).
Packages changes, names changes and few more refactoring have to be done.

Added:
    james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/
    james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/DNSServiceEnabled.java   (with props)
    james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/LogEnabled.java
      - copied, changed from r452266, james/jspf/trunk/src/main/java/org/apache/james/jspf/core/LogEnabled.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/SPFCheckEnabled.java   (with props)
    james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringService.java   (with props)
    james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringServiceTable.java   (with props)
Removed:
    james/jspf/trunk/src/main/java/org/apache/james/jspf/core/LogEnabled.java
Modified:
    james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/core/DNSService.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/core/Directive.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/core/SPF1Data.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/parser/DefaultSPF1Parser.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/parser/DefaultTermsFactory.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/AMechanism.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExistsMechanism.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/MXMechanism.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/PTRMechanism.java
    james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/RedirectModifier.java
    james/jspf/trunk/src/test/java/org/apache/james/jspf/AbstractYamlTest.java
    james/jspf/trunk/src/test/java/org/apache/james/jspf/SPF1ParserTest.java
    james/jspf/trunk/src/test/java/org/apache/james/jspf/core/SPF1DataTest.java

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java Wed Oct  4 07:56:47 2006
@@ -37,15 +37,18 @@
 import org.apache.james.jspf.localpolicy.TrustedForwarderPolicy;
 import org.apache.james.jspf.macro.MacroExpand;
 import org.apache.james.jspf.parser.DefaultSPF1Parser;
+import org.apache.james.jspf.parser.DefaultTermsFactory;
+import org.apache.james.jspf.wiring.DNSServiceEnabled;
+import org.apache.james.jspf.wiring.LogEnabled;
+import org.apache.james.jspf.wiring.SPFCheckEnabled;
+import org.apache.james.jspf.wiring.WiringServiceTable;
 
 import java.util.Iterator;
 import java.util.List;
 
 /**
  * This class is used to generate a SPF-Test and provided all intressting data.
- * 
  */
-
 public class SPF implements SPFChecker {
 
     private DNSService dnsProbe;
@@ -85,7 +88,15 @@
      * @param logger the logger to use
      */
     public SPF(DNSService dnsProbe, Logger logger) {
-        this(dnsProbe, new DefaultSPF1Parser(logger), logger);
+        super();
+        this.dnsProbe = dnsProbe;
+        this.log = logger;
+        WiringServiceTable wiringService = new WiringServiceTable();
+        wiringService.put(LogEnabled.class, this.log);
+        wiringService.put(DNSServiceEnabled.class, this.dnsProbe);
+        this.parser = new DefaultSPF1Parser(logger, new DefaultTermsFactory(this.log, wiringService));
+        // We add this after the parser creation because services cannot be null
+        wiringService.put(SPFCheckEnabled.class, this.parser);
     }
     
     
@@ -122,7 +133,8 @@
 
         try {
             // Setup the data
-            spfData = new SPF1Data(mailFrom, hostName, ipAddress, dnsProbe, this);
+            spfData = new SPF1Data(mailFrom, hostName, ipAddress);
+            spfData.enableDNSService(dnsProbe);
             SPFInternalResult res = checkSPF(spfData);
             resultChar = res.getResultChar();
             result = SPF1Utils.resultToName(resultChar);
@@ -173,7 +185,7 @@
         }
 
         // Get the raw dns txt entry which contains a spf entry
-        String spfDnsEntry = getSpfRecord(spfData.getDnsProbe(),spfData.getCurrentDomain(),
+        String spfDnsEntry = getSpfRecord(dnsProbe,spfData.getCurrentDomain(),
                 SPF1Constants.SPF_VERSION);
 
         // No SPF-Record found

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/core/DNSService.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/core/DNSService.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/core/DNSService.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/core/DNSService.java Wed Oct  4 07:56:47 2006
@@ -30,7 +30,7 @@
     /**
      * The exception thrown on timeout.
      */
-    public class TimeoutException extends Exception {
+    public static class TimeoutException extends Exception {
         
     }
     

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/core/Directive.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/core/Directive.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/core/Directive.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/core/Directive.java Wed Oct  4 07:56:47 2006
@@ -25,7 +25,7 @@
 import org.apache.james.jspf.exceptions.TempErrorException;
 
 /**
- * 
+ * A Directive is a mechanism with a resulting qualifier.
  */
 public class Directive {
 

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/core/SPF1Data.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/core/SPF1Data.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/core/SPF1Data.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/core/SPF1Data.java Wed Oct  4 07:56:47 2006
@@ -25,6 +25,7 @@
 import org.apache.james.jspf.exceptions.NoneException;
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.macro.MacroData;
+import org.apache.james.jspf.wiring.DNSServiceEnabled;
 
 import java.util.Iterator;
 import java.util.List;
@@ -36,11 +37,7 @@
  * 
  */
 
-public class SPF1Data implements MacroData {
-
-    private DNSService dnsProbe;
-
-    private SPFChecker spfProbe;
+public class SPF1Data implements MacroData, DNSServiceEnabled {
 
     private String ipAddress = ""; // also used for (i)<sending-host>
 
@@ -77,6 +74,8 @@
     
     private boolean ignoreExplanation = false;
 
+    private DNSService dnsProbe;
+
     /**
      * Build the SPF1Data from the given parameters
      * 
@@ -93,14 +92,11 @@
      * @throws NoneException
      *             Get thrown if no valid emailaddress get passed
      */
-    public SPF1Data(String mailFrom, String heloDomain, String clientIP,
-            DNSService dnsProbe, SPFChecker spfProbe) throws PermErrorException, NoneException {
+    public SPF1Data(String mailFrom, String heloDomain, String clientIP) throws PermErrorException, NoneException {
         super();
         this.mailFrom = mailFrom.trim();
         this.hostName = heloDomain.trim();
         this.ipAddress = IPAddr.getProperIpAddress(clientIP.trim());
-        this.dnsProbe = dnsProbe;
-        this.spfProbe = spfProbe;
 
         try {
             // get the in Address
@@ -330,15 +326,6 @@
     }
 
     /**
-     * Get the used DNSService
-     * 
-     * @return dnsProbe The DNSService
-     */
-    public DNSService getDnsProbe() {
-        return dnsProbe;
-    }
-
-    /**
      * Set the explanation which will returned when a fail match
      * 
      * @param explanation
@@ -414,12 +401,10 @@
     }
 
     /**
-     * Return the SPF checker to be used in recursive lookups
-     * 
-     * @return the spf checker
+     * @see org.apache.james.jspf.wiring.DNSServiceEnabled#enableDNSService(org.apache.james.jspf.core.DNSService)
      */
-    public SPFChecker getSpfProbe() {
-        return spfProbe;
+    public void enableDNSService(DNSService service) {
+        this.dnsProbe = service;
     }
-
+    
 }

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/parser/DefaultSPF1Parser.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/parser/DefaultSPF1Parser.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/parser/DefaultSPF1Parser.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/parser/DefaultSPF1Parser.java Wed Oct  4 07:56:47 2006
@@ -116,9 +116,10 @@
      * 
      * @param loggerThe logger to use
      */
-    public DefaultSPF1Parser(Logger logger) {
-        log = logger;
-        termsFactory = new DefaultTermsFactory(logger);
+    public DefaultSPF1Parser(Logger logger, TermsFactory termsFactory) {
+        this.log = logger;
+        this.termsFactory = termsFactory;
+        
         /**
          * ABNF: mechanism = ( all / include / A / MX / PTR / IP4 / IP6 / exists )
          */
@@ -337,6 +338,7 @@
                 try {
                     return termsFactory.createTerm(c, subres);
                 } catch (InstantiationException e) {
+                    e.printStackTrace();
                     // TODO is it ok to use a Runtime for this? Or should we use a PermError here?
                     throw new IllegalStateException("Unexpected error creating term: " + e.getMessage());
                 }

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/parser/DefaultTermsFactory.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/parser/DefaultTermsFactory.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/parser/DefaultTermsFactory.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/parser/DefaultTermsFactory.java Wed Oct  4 07:56:47 2006
@@ -21,9 +21,11 @@
 
 import org.apache.james.jspf.core.Configurable;
 import org.apache.james.jspf.core.Configuration;
-import org.apache.james.jspf.core.LogEnabled;
 import org.apache.james.jspf.core.Logger;
 import org.apache.james.jspf.exceptions.PermErrorException;
+import org.apache.james.jspf.wiring.LogEnabled;
+import org.apache.james.jspf.wiring.WiringService;
+import org.apache.james.jspf.wiring.WiringServiceTable;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -44,9 +46,26 @@
     private Collection modifiersCollection;
 
     private Logger log;
+    
+    private WiringService wiringService;
 
     public DefaultTermsFactory(Logger log) {
         this.log = log;
+        this.wiringService = new WiringServiceTable();
+        ((WiringServiceTable) this.wiringService).put(LogEnabled.class, log);
+        init();
+    }
+
+    public DefaultTermsFactory(Logger log, WiringService wiringService) {
+        this.log = log;
+        this.wiringService = wiringService;
+        init();
+    }
+
+    /**
+     * Initialize the factory and the services
+     */
+    private void init() {
         try {
             InputStream is = Thread.currentThread().getContextClassLoader()
                     .getResourceAsStream(termFile);
@@ -114,9 +133,14 @@
     public Object createTerm(TermDefinition termDef, Configuration subres) throws PermErrorException, InstantiationException {
         try {
             Object term = termDef.getTermDef().newInstance();
-            if (term instanceof LogEnabled) {
-                ((LogEnabled) term).enableLogging(log);
+            
+            try {
+                wiringService.wire(term);
+            } catch (WiringService.WiringServiceException e) {
+                throw new InstantiationException(
+                        "Unexpected error adding dependencies to term: " + e.getMessage());
             }
+
             if (term instanceof Configurable) {
                 if (subres == null || subres.groupCount() == 0) {
                     ((Configurable) term).config(null);

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/AMechanism.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/AMechanism.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/AMechanism.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/AMechanism.java Wed Oct  4 07:56:47 2006
@@ -28,6 +28,7 @@
 import org.apache.james.jspf.exceptions.TempErrorException;
 import org.apache.james.jspf.util.Inet6Util;
 import org.apache.james.jspf.util.SPFTermsRegexps;
+import org.apache.james.jspf.wiring.DNSServiceEnabled;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -36,7 +37,7 @@
  * This class represent the a mechanism
  * 
  */
-public class AMechanism extends GenericMechanism {
+public class AMechanism extends GenericMechanism implements DNSServiceEnabled {
 
     /**
      * ABNF: A = "a" [ ":" domain-spec ] [ dual-cidr-length ]
@@ -49,6 +50,8 @@
 
     private int ip6cidr;
 
+    protected DNSService dnsService;
+
     /**
      * 
      * @see org.apache.james.jspf.core.GenericMechanism#run(org.apache.james.jspf.core.SPF1Data)
@@ -68,7 +71,7 @@
                 IPAddr checkAddress = IPAddr.getAddress(spfData.getIpAddress(),
                         getIp4cidr());
 
-                List aRecords = getARecords(spfData.getDnsProbe(),host);
+                List aRecords = getARecords(dnsService,host);
      
                 // no a records just return null
                 if (aRecords == null) {
@@ -82,7 +85,7 @@
                 IPAddr checkAddress = IPAddr.getAddress(spfData.getIpAddress(),
                         getIp6cidr());
 
-                List aaaaRecords = getAAAARecords(spfData.getDnsProbe(), host);
+                List aaaaRecords = getAAAARecords(dnsService, host);
                 
                 // no aaaa records just return false
                 if (aaaaRecords == null) {
@@ -245,6 +248,13 @@
             }
         }
         return listAData;
+    }
+
+    /**
+     * @see org.apache.james.jspf.wiring.DNSServiceEnabled#enableDNSService(org.apache.james.jspf.core.DNSService)
+     */
+    public void enableDNSService(DNSService service) {
+        this.dnsService = service;
     }
 
 }

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExistsMechanism.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExistsMechanism.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExistsMechanism.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExistsMechanism.java Wed Oct  4 07:56:47 2006
@@ -26,6 +26,7 @@
 import org.apache.james.jspf.exceptions.TempErrorException;
 import org.apache.james.jspf.macro.MacroExpand;
 import org.apache.james.jspf.util.SPFTermsRegexps;
+import org.apache.james.jspf.wiring.DNSServiceEnabled;
 
 import java.util.List;
 
@@ -33,13 +34,15 @@
  * This class represent the exists mechanism
  * 
  */
-public class ExistsMechanism extends GenericMechanism {
+public class ExistsMechanism extends GenericMechanism implements DNSServiceEnabled {
 
     /**
      * ABNF: exists = "exists" ":" domain-spec
      */
     public static final String REGEX = "[eE][xX][iI][sS][tT][sS]" + "\\:"
             + SPFTermsRegexps.DOMAIN_SPEC_REGEX;
+    
+    private DNSService dnsService;
 
     /**
      * 
@@ -58,7 +61,7 @@
         host = new MacroExpand(spfData, log).expandDomain(host);
 
         try {
-            aRecords = spfData.getDnsProbe().getRecords(host,DNSService.A);
+            aRecords = dnsService.getRecords(host,DNSService.A);
         } catch (DNSService.TimeoutException e) {
             return false;
         }
@@ -77,5 +80,13 @@
     public String toString() {
         return "exists:"+getDomain();
     }
+
+    /**
+     * @see org.apache.james.jspf.wiring.DNSServiceEnabled#enableDNSService(org.apache.james.jspf.core.DNSService)
+     */
+    public void enableDNSService(DNSService service) {
+        this.dnsService = service;
+    }
+
 
 }

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/ExpModifier.java Wed Oct  4 07:56:47 2006
@@ -21,7 +21,6 @@
 package org.apache.james.jspf.terms;
 
 import org.apache.james.jspf.core.DNSService;
-import org.apache.james.jspf.core.LogEnabled;
 import org.apache.james.jspf.core.Logger;
 import org.apache.james.jspf.core.SPF1Constants;
 import org.apache.james.jspf.core.SPF1Data;
@@ -29,6 +28,8 @@
 import org.apache.james.jspf.exceptions.TempErrorException;
 import org.apache.james.jspf.macro.MacroExpand;
 import org.apache.james.jspf.util.SPFTermsRegexps;
+import org.apache.james.jspf.wiring.DNSServiceEnabled;
+import org.apache.james.jspf.wiring.LogEnabled;
 
 import java.util.List;
 
@@ -36,7 +37,7 @@
  * This class represent the exp modifier
  * 
  */
-public class ExpModifier extends GenericModifier implements LogEnabled {
+public class ExpModifier extends GenericModifier implements LogEnabled, DNSServiceEnabled {
 
     /**
      * ABNF: explanation = "exp" "=" domain-spec
@@ -46,6 +47,8 @@
 
     private Logger log;
 
+    private DNSService dnsService;
+
     /**
      * Generate the explanation and set it in SPF1Data so it can be accessed
      * easy later if needed
@@ -70,7 +73,7 @@
         try {
             host = new MacroExpand(spfData, log).expandDomain(host);
             try {
-                exp = getTxtCatType(spfData.getDnsProbe(), host);
+                exp = getTxtCatType(dnsService, host);
             } catch (TempErrorException e) {
                 // Nothing todo here.. just return null
                 return null;
@@ -95,7 +98,7 @@
     }
 
     /**
-     * @see org.apache.james.jspf.core.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
+     * @see org.apache.james.jspf.wiring.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
      */
     public void enableLogging(Logger logger) {
         this.log = logger;
@@ -139,6 +142,13 @@
      */
     public String toString() {
        return "exp="+getHost();
+    }
+
+    /**
+     * @see org.apache.james.jspf.wiring.DNSServiceEnabled#enableDNSService(org.apache.james.jspf.core.DNSService)
+     */
+    public void enableDNSService(DNSService service) {
+        this.dnsService = service;
     }
 
 }

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/GenericMechanism.java Wed Oct  4 07:56:47 2006
@@ -22,12 +22,12 @@
 
 import org.apache.james.jspf.core.Configurable;
 import org.apache.james.jspf.core.Configuration;
-import org.apache.james.jspf.core.LogEnabled;
 import org.apache.james.jspf.core.Logger;
 import org.apache.james.jspf.core.Mechanism;
 import org.apache.james.jspf.core.SPF1Data;
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.macro.MacroExpand;
+import org.apache.james.jspf.wiring.LogEnabled;
 
 /**
  * This abstract class represent a gerneric mechanism
@@ -92,7 +92,7 @@
     }
 
     /**
-     * @see org.apache.james.jspf.core.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
+     * @see org.apache.james.jspf.wiring.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
      */
     public void enableLogging(Logger logger) {
         this.log = logger;

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/IncludeMechanism.java Wed Oct  4 07:56:47 2006
@@ -22,23 +22,25 @@
 
 import org.apache.james.jspf.core.Configurable;
 import org.apache.james.jspf.core.Configuration;
-import org.apache.james.jspf.core.LogEnabled;
 import org.apache.james.jspf.core.Logger;
 import org.apache.james.jspf.core.Mechanism;
 import org.apache.james.jspf.core.SPF1Constants;
 import org.apache.james.jspf.core.SPF1Data;
+import org.apache.james.jspf.core.SPFChecker;
 import org.apache.james.jspf.exceptions.NeutralException;
 import org.apache.james.jspf.exceptions.NoneException;
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.exceptions.TempErrorException;
 import org.apache.james.jspf.macro.MacroExpand;
 import org.apache.james.jspf.util.SPFTermsRegexps;
+import org.apache.james.jspf.wiring.LogEnabled;
+import org.apache.james.jspf.wiring.SPFCheckEnabled;
 
 /**
  * This class represent the incude mechanism
  * 
  */
-public class IncludeMechanism implements Mechanism, Configurable, LogEnabled {
+public class IncludeMechanism implements Mechanism, Configurable, LogEnabled, SPFCheckEnabled {
 
     /**
      * ABNF: include = "include" ":" domain-spec
@@ -50,6 +52,8 @@
     
     protected Logger log;
 
+    private SPFChecker spfChecker;
+
     /**
      * Set the host which should be used for include
      * 
@@ -84,7 +88,7 @@
             
             String res = null;
             try {
-                 res = spfData.getSpfProbe().checkSPF(spfData).getResultChar();
+                 res = spfChecker.checkSPF(spfData).getResultChar();
               
             } catch (NoneException e) {
                 throw new PermErrorException("included checkSPF returned NoneException");
@@ -129,7 +133,7 @@
     }
 
     /**
-     * @see org.apache.james.jspf.core.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
+     * @see org.apache.james.jspf.wiring.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
      */
     public void enableLogging(Logger logger) {
         this.log = logger;
@@ -140,5 +144,12 @@
      */
     public String toString() {
         return "include:"+getHost();
+    }
+
+    /**
+     * @see org.apache.james.jspf.wiring.SPFCheckEnabled#enableSPFChecking(org.apache.james.jspf.core.SPFChecker)
+     */
+    public void enableSPFChecking(SPFChecker checker) {
+        this.spfChecker = checker;
     }
 }

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/MXMechanism.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/MXMechanism.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/MXMechanism.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/MXMechanism.java Wed Oct  4 07:56:47 2006
@@ -62,7 +62,7 @@
         // get the ipAddress
         checkAddress = IPAddr.getAddress(spfData.getIpAddress(), getIp4cidr());
         
-        List mxRecords = getMXRecords(spfData.getDnsProbe(), host);
+        List mxRecords = getMXRecords(dnsService, host);
 
         // no mx record found
         if (mxRecords == null) return false;

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/PTRMechanism.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/PTRMechanism.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/PTRMechanism.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/PTRMechanism.java Wed Oct  4 07:56:47 2006
@@ -26,6 +26,7 @@
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.exceptions.TempErrorException;
 import org.apache.james.jspf.util.SPFTermsRegexps;
+import org.apache.james.jspf.wiring.DNSServiceEnabled;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -34,13 +35,15 @@
  * This class represent the ptr mechanism
  * 
  */
-public class PTRMechanism extends GenericMechanism {
+public class PTRMechanism extends GenericMechanism implements DNSServiceEnabled {
 
     /**
      * ABNF: PTR = "ptr" [ ":" domain-spec ]
      */
     public static final String REGEX = "[pP][tT][rR]" + "(?:\\:"
             + SPFTermsRegexps.DOMAIN_SPEC_REGEX + ")?";
+    
+    private DNSService dnsService;
 
     /**
      * @see org.apache.james.jspf.core.Mechanism#run(org.apache.james.jspf.core.SPF1Data)
@@ -59,16 +62,16 @@
         try {
             // Get PTR Records for the ipAddress which is provided by SPF1Data
             IPAddr ip = IPAddr.getAddress(spfData.getIpAddress());
-            List domainList = spfData.getDnsProbe().getRecords(ip.getReverseIP(), DNSService.PTR);
+            List domainList = dnsService.getRecords(ip.getReverseIP(), DNSService.PTR);
     
             // No PTR records found
             if (domainList == null) return false;
     
             // check if the maximum lookup count is reached
-            if (spfData.getDnsProbe().getRecordLimit() > 0 && domainList.size() > spfData.getDnsProbe().getRecordLimit()) {
+            if (dnsService.getRecordLimit() > 0 && domainList.size() > dnsService.getRecordLimit()) {
                 // Truncate the PTR list to getRecordLimit.
                 // See #ptr-limit rfc4408 test
-                domainList = domainList.subList(0, spfData.getDnsProbe().getRecordLimit()-1);
+                domainList = domainList.subList(0, dnsService.getRecordLimit()-1);
                 // throw new PermErrorException("Maximum PTR lookup count reached");
             }
               
@@ -78,11 +81,11 @@
                 // check if the connecting ip is ip6. If so lookup AAAA record
                 if (IPAddr.isIPV6(spfData.getIpAddress())) {
                     // Get aaaa record for this
-                    aList = spfData.getDnsProbe().getRecords(
+                    aList = dnsService.getRecords(
                             (String) domainList.get(i), DNSService.AAAA);
                 } else {
                     // Get a record for this
-                    aList = spfData.getDnsProbe().getRecords(
+                    aList = dnsService.getRecords(
                             (String) domainList.get(i), DNSService.A);
                 }
                 if (aList != null) {
@@ -110,5 +113,13 @@
         }
 
     }
+
+    /**
+     * @see org.apache.james.jspf.wiring.DNSServiceEnabled#enableDNSService(org.apache.james.jspf.core.DNSService)
+     */
+    public void enableDNSService(DNSService service) {
+        this.dnsService = service;
+    }
+
 
 }

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/RedirectModifier.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/RedirectModifier.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/RedirectModifier.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/terms/RedirectModifier.java Wed Oct  4 07:56:47 2006
@@ -20,21 +20,23 @@
 
 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.SPF1Data;
+import org.apache.james.jspf.core.SPFChecker;
 import org.apache.james.jspf.exceptions.NeutralException;
 import org.apache.james.jspf.exceptions.NoneException;
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.exceptions.TempErrorException;
 import org.apache.james.jspf.macro.MacroExpand;
 import org.apache.james.jspf.util.SPFTermsRegexps;
+import org.apache.james.jspf.wiring.LogEnabled;
+import org.apache.james.jspf.wiring.SPFCheckEnabled;
 
 /**
  * This class represent the redirect modifier
  * 
  */
-public class RedirectModifier extends GenericModifier implements LogEnabled {
+public class RedirectModifier extends GenericModifier implements LogEnabled, SPFCheckEnabled {
 
     /**
      * ABNF: redirect = "redirect" "=" domain-spec
@@ -44,6 +46,8 @@
     
     private Logger log;
 
+    private SPFChecker spfChecker;
+
     /**
      * Set the host which should be used for redirection and set it in SPF1Data
      * so it can be accessed easy later if needed
@@ -73,7 +77,7 @@
 
             String res = null;
             try {
-                res = spfData.getSpfProbe().checkSPF(spfData).getResultChar();
+                res = spfChecker.checkSPF(spfData).getResultChar();
             } catch (NoneException e) {
                 // no spf record assigned to the redirect domain
                 throw new PermErrorException(
@@ -103,7 +107,7 @@
 
 
     /**
-     * @see org.apache.james.jspf.core.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
+     * @see org.apache.james.jspf.wiring.LogEnabled#enableLogging(org.apache.james.jspf.core.Logger)
      */
     public void enableLogging(Logger logger) {
         this.log = logger;
@@ -115,4 +119,12 @@
     public String toString() {
         return "redirect="+getHost();
     }
+    
+    /**
+     * @see org.apache.james.jspf.wiring.SPFCheckEnabled#enableSPFChecking(org.apache.james.jspf.core.SPFChecker)
+     */
+    public void enableSPFChecking(SPFChecker checker) {
+        this.spfChecker = checker;
+    }
+
 }

Added: james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/DNSServiceEnabled.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/DNSServiceEnabled.java?view=auto&rev=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/DNSServiceEnabled.java (added)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/DNSServiceEnabled.java Wed Oct  4 07:56:47 2006
@@ -0,0 +1,36 @@
+/****************************************************************
+ * 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.wiring;
+
+import org.apache.james.jspf.core.DNSService;
+
+/**
+ * Components that need to log can implement this interface so that
+ * the container will provide the DNSService
+ */
+public interface DNSServiceEnabled {
+    /**
+     * Provide component with a DNSService.
+     * 
+     * @param service
+     *            the dns service. Must not be <code>null</code>.
+     */
+    void enableDNSService(DNSService service);
+}
\ No newline at end of file

Propchange: james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/DNSServiceEnabled.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/LogEnabled.java (from r452266, james/jspf/trunk/src/main/java/org/apache/james/jspf/core/LogEnabled.java)
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/LogEnabled.java?view=diff&rev=452905&p1=james/jspf/trunk/src/main/java/org/apache/james/jspf/core/LogEnabled.java&r1=452266&p2=james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/LogEnabled.java&r2=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/core/LogEnabled.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/LogEnabled.java Wed Oct  4 07:56:47 2006
@@ -17,7 +17,9 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.jspf.core;
+package org.apache.james.jspf.wiring;
+
+import org.apache.james.jspf.core.Logger;
 
 /**
  * Components that need to log can implement this interface to be provided

Added: james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/SPFCheckEnabled.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/SPFCheckEnabled.java?view=auto&rev=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/SPFCheckEnabled.java (added)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/SPFCheckEnabled.java Wed Oct  4 07:56:47 2006
@@ -0,0 +1,36 @@
+/****************************************************************
+ * 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.wiring;
+
+import org.apache.james.jspf.core.SPFChecker;
+
+/**
+ * Components that need to log can implement this interface so that
+ * the container will provide the SPFChecker
+ */
+public interface SPFCheckEnabled {
+    /**
+     * Provide component with an SPF Checker.
+     * 
+     * @param checker
+     *            the checker. Must not be <code>null</code>.
+     */
+    void enableSPFChecking(SPFChecker checker);
+}
\ No newline at end of file

Propchange: james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/SPFCheckEnabled.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringService.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringService.java?view=auto&rev=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringService.java (added)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringService.java Wed Oct  4 07:56:47 2006
@@ -0,0 +1,44 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+
+package org.apache.james.jspf.wiring;
+
+/**
+ * This is a service used to wire a component with its dependencies.
+ */
+public interface WiringService {
+    
+    public static class WiringServiceException extends Exception {
+
+        public WiringServiceException(String string) {
+            super(string);
+        }
+
+    }
+
+    /**
+     * Called to wire a component
+     * 
+     * @param component the component to be wired
+     * @throws WiringServiceException if an error occours
+     */
+    void wire(Object component) throws WiringServiceException;
+
+}

Propchange: james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringServiceTable.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringServiceTable.java?view=auto&rev=452905
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringServiceTable.java (added)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringServiceTable.java Wed Oct  4 07:56:47 2006
@@ -0,0 +1,52 @@
+/****************************************************************
+ * 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.wiring;
+
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Hashtable;
+import java.util.Iterator;
+
+public class WiringServiceTable extends Hashtable implements WiringService {
+
+    public void wire(Object component) throws WiringServiceException {
+        Iterator i = keySet().iterator();
+        while (i.hasNext()) {
+            Class enablingClass = (Class) i.next();
+            if (enablingClass.isInstance(component)) {
+                Method[] m = enablingClass.getDeclaredMethods();
+                if (m!=null && m.length == 1 && m[0] != null) {
+                    try {
+                        m[0].invoke(component, new Object[] {get(enablingClass)});
+                    } catch (IllegalArgumentException e) {
+                        throw new WiringServiceException("Illegal argument invoking enabled service: "+enablingClass.toString());
+                    } catch (InvocationTargetException e) {
+                        throw new WiringServiceException("Unable to invoke enabled service: "+enablingClass.toString());
+                    } catch (IllegalAccessException e) {
+                        throw new WiringServiceException("Unable to invoke enabled service: "+enablingClass.toString());
+                    }
+                }
+            }
+        }
+
+    }
+
+}

Propchange: james/jspf/trunk/src/main/java/org/apache/james/jspf/wiring/WiringServiceTable.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: james/jspf/trunk/src/test/java/org/apache/james/jspf/AbstractYamlTest.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/test/java/org/apache/james/jspf/AbstractYamlTest.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/test/java/org/apache/james/jspf/AbstractYamlTest.java (original)
+++ james/jspf/trunk/src/test/java/org/apache/james/jspf/AbstractYamlTest.java Wed Oct  4 07:56:47 2006
@@ -20,8 +20,14 @@
 package org.apache.james.jspf;
 
 import org.apache.james.jspf.core.DNSService;
+import org.apache.james.jspf.core.Logger;
 import org.apache.james.jspf.core.SPFRecordParser;
 import org.apache.james.jspf.parser.DefaultSPF1Parser;
+import org.apache.james.jspf.parser.DefaultTermsFactory;
+import org.apache.james.jspf.wiring.DNSServiceEnabled;
+import org.apache.james.jspf.wiring.LogEnabled;
+import org.apache.james.jspf.wiring.SPFCheckEnabled;
+import org.apache.james.jspf.wiring.WiringService;
 import org.jvyaml.Constructor;
 import org.jvyaml.DefaultYAMLFactory;
 import org.jvyaml.YAMLFactory;
@@ -42,8 +48,9 @@
 
     SPFYamlTestSuite data;
     String test;
-    protected SPF spf;
+    protected static SPF spf;
     protected static SPFRecordParser parser;
+    private static DNSService dns;
 
     protected AbstractYamlTest(SPFYamlTestSuite def, String test) {
         super(def.getComment()+" #"+test);
@@ -117,10 +124,36 @@
         System.out.println("testing "+next+": "+currentTest.get("description"));
     
         if (parser == null) {
-            parser = new DefaultSPF1Parser(new ConsoleLogger());
-            System.err.println("--------------------------------------------");
+            Logger log = new ConsoleLogger();
+            /* PREVIOUS SLOW WAY 
+            enabledServices = new WiringServiceTable();
+            enabledServices.put(LogEnabled.class, log);
+            */
+            parser = new DefaultSPF1Parser(log, new DefaultTermsFactory(log, new WiringService() {
+
+                public void wire(Object component) throws WiringServiceException {
+                    if (component instanceof LogEnabled) {
+                        ((LogEnabled) component).enableLogging(new ConsoleLogger());
+                    }
+                    if (component instanceof DNSServiceEnabled) {
+                        ((DNSServiceEnabled) component).enableDNSService(dns);
+                    }
+                    if (component instanceof SPFCheckEnabled) {
+                        ((SPFCheckEnabled) component).enableSPFChecking(spf);
+                    }
+                }
+                
+            }));
         }
-        spf = new SPF(new LoggingDNSService(getDNSService()), parser, new ConsoleLogger());
+        dns = new LoggingDNSService(getDNSService());
+        spf = new SPF(dns, parser, new ConsoleLogger());
+        /* PREVIOUS SLOW WAY 
+        // we add this after the creation because it is a loop reference
+        enabledServices.remove(DNSServiceEnabled.class);
+        enabledServices.put(DNSServiceEnabled.class, getDNSService());
+        enabledServices.remove(SPFCheckEnabled.class);
+        enabledServices.put(SPFCheckEnabled.class, spf);
+        */
 
         String ip = null;
         String sender = null;

Modified: james/jspf/trunk/src/test/java/org/apache/james/jspf/SPF1ParserTest.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/test/java/org/apache/james/jspf/SPF1ParserTest.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/test/java/org/apache/james/jspf/SPF1ParserTest.java (original)
+++ james/jspf/trunk/src/test/java/org/apache/james/jspf/SPF1ParserTest.java Wed Oct  4 07:56:47 2006
@@ -32,6 +32,7 @@
 import org.apache.james.jspf.exceptions.NoneException;
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.parser.DefaultSPF1Parser;
+import org.apache.james.jspf.parser.DefaultTermsFactory;
 
 import junit.framework.Test;
 import junit.framework.TestCase;
@@ -51,7 +52,7 @@
             }
         }
         assertNotNull(data);
-        parser = new DefaultSPF1Parser(new ConsoleLogger());
+        parser = new DefaultSPF1Parser(new ConsoleLogger(), new DefaultTermsFactory(new ConsoleLogger()));
     }
 
     public static Test suite() throws IOException {
@@ -177,7 +178,7 @@
             super();
             List tests = loadTests();
             Iterator i = tests.iterator();
-            SPFRecordParser parser = new DefaultSPF1Parser(new ConsoleLogger());
+            SPFRecordParser parser = new DefaultSPF1Parser(new ConsoleLogger(), new DefaultTermsFactory(new ConsoleLogger()));
             while (i.hasNext()) {
                 addTest(new SPF1ParserTest((SPF1RecordTestDef) i.next(), parser));
             }

Modified: james/jspf/trunk/src/test/java/org/apache/james/jspf/core/SPF1DataTest.java
URL: http://svn.apache.org/viewvc/james/jspf/trunk/src/test/java/org/apache/james/jspf/core/SPF1DataTest.java?view=diff&rev=452905&r1=452904&r2=452905
==============================================================================
--- james/jspf/trunk/src/test/java/org/apache/james/jspf/core/SPF1DataTest.java (original)
+++ james/jspf/trunk/src/test/java/org/apache/james/jspf/core/SPF1DataTest.java Wed Oct  4 07:56:47 2006
@@ -30,7 +30,7 @@
      * Test method for 'org.apache.james.jspf.core.SPF1Data.getMacroIpAddress()'
      */
     public void testGetMacroIpAddress() throws PermErrorException, NoneException {
-        SPF1Data d = new SPF1Data("mailfrom@fromdomain.com","helodomain.com","2001:DB8::CB01", null, null);
+        SPF1Data d = new SPF1Data("mailfrom@fromdomain.com","helodomain.com","2001:DB8::CB01");
         assertEquals("2.0.0.1.0.D.B.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.C.B.0.1",d.getMacroIpAddress());
     }
 



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


Mime
View raw message