You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2008/08/11 16:02:35 UTC

svn commit: r684752 - in /james/server/trunk: core-library/src/main/java/org/apache/james/domain/ domain-api/src/main/java/org/apache/james/api/domainlist/ user-library/src/main/java/org/apache/james/impl/vut/

Author: bago
Date: Mon Aug 11 07:02:32 2008
New Revision: 684752

URL: http://svn.apache.org/viewvc?rev=684752&view=rev
Log:
DomainListUtil was introducing a dependency on avalon-framework in our api-layer.
It simply had 2 uses in libraries. I decided to clone the content in the 2 user classes.
A minor code duplication is better than having avalon the api-layer.

Removed:
    james/server/trunk/domain-api/src/main/java/org/apache/james/api/domainlist/DomainListUtil.java
Modified:
    james/server/trunk/core-library/src/main/java/org/apache/james/domain/AbstractDomainList.java
    james/server/trunk/user-library/src/main/java/org/apache/james/impl/vut/AbstractVirtualUserTable.java

Modified: james/server/trunk/core-library/src/main/java/org/apache/james/domain/AbstractDomainList.java
URL: http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/domain/AbstractDomainList.java?rev=684752&r1=684751&r2=684752&view=diff
==============================================================================
--- james/server/trunk/core-library/src/main/java/org/apache/james/domain/AbstractDomainList.java (original)
+++ james/server/trunk/core-library/src/main/java/org/apache/james/domain/AbstractDomainList.java Mon Aug 11 07:02:32 2008
@@ -21,17 +21,19 @@
 
 package org.apache.james.domain;
 
+import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.Logger;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.james.api.dnsservice.DNSService;
-import org.apache.james.api.domainlist.DomainListUtil;
 import org.apache.james.services.ManageableDomainList;
 
 /**
@@ -72,7 +74,7 @@
 
             
             if (autoDetectIP == true) {
-                domains.addAll(DomainListUtil.getDomainsIP(domains,dns,getLogger()));
+                domains.addAll(getDomainsIP(domains,dns,getLogger()));
             }
        
             if (getLogger().isInfoEnabled()) {
@@ -86,6 +88,48 @@
         }
     }
     
+    
+    /**
+     * Return a List which holds all ipAddress of the domains in the given List
+     * 
+     * @param domains List of domains
+     * @return domainIP List of ipaddress for domains
+     */
+    private static List getDomainsIP(List domains,DNSService dns,Logger log) {
+        List domainIP = new ArrayList();
+        if (domains.size() > 0 ) {
+            for (int i = 0; i < domains.size(); i++) {
+                List domList = getDomainIP(domains.get(i).toString(),dns,log);
+                
+                for(int i2 = 0; i2 < domList.size();i2++) {
+                    if(domainIP.contains(domList.get(i2)) == false) {
+                        domainIP.add(domList.get(i2));
+                    }
+                }
+            }
+        }
+        return domainIP;    
+    }
+    
+    /**
+     * @see #getDomainsIP(List, DNSService, Logger)
+     */
+    private static List getDomainIP(String domain, DNSService dns, Logger log) {
+        List domainIP = new ArrayList();
+        try {
+            InetAddress[]  addrs = dns.getAllByName(domain);
+            for (int j = 0; j < addrs.length ; j++) {
+                String ip = addrs[j].getHostAddress();
+                if (domainIP.contains(ip) == false) {
+                    domainIP.add(ip);
+                }
+            }
+        } catch (UnknownHostException e) {
+            log.error("Cannot get IP address(es) for " + domain);
+        }
+        return domainIP;
+    }
+    
     /**
      * @see org.apache.james.services.ManageableDomainList#addDomain(java.lang.String)
      */

Modified: james/server/trunk/user-library/src/main/java/org/apache/james/impl/vut/AbstractVirtualUserTable.java
URL: http://svn.apache.org/viewvc/james/server/trunk/user-library/src/main/java/org/apache/james/impl/vut/AbstractVirtualUserTable.java?rev=684752&r1=684751&r2=684752&view=diff
==============================================================================
--- james/server/trunk/user-library/src/main/java/org/apache/james/impl/vut/AbstractVirtualUserTable.java (original)
+++ james/server/trunk/user-library/src/main/java/org/apache/james/impl/vut/AbstractVirtualUserTable.java Mon Aug 11 07:02:32 2008
@@ -21,6 +21,7 @@
 
 package org.apache.james.impl.vut;
 
+import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -35,12 +36,12 @@
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.logger.Logger;
 import org.apache.avalon.framework.service.ServiceException;
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
 import org.apache.james.api.dnsservice.DNSService;
 import org.apache.james.api.domainlist.DomainList;
-import org.apache.james.api.domainlist.DomainListUtil;
 import org.apache.james.api.vut.ErrorMappingException;
 import org.apache.james.api.vut.VirtualUserTable;
 import org.apache.james.api.vut.management.InvalidMappingException;
@@ -360,7 +361,7 @@
             }
            
             if (autoDetectIP == true) {
-                List ipList = DomainListUtil.getDomainsIP(domains,dns,getLogger());
+                List ipList = getDomainsIP(domains,dns,getLogger());
                 for(int i = 0; i < ipList.size(); i++) {
                     if (domains.contains(ipList.get(i)) == false) {
                         domains.add(ipList.get(i));
@@ -378,8 +379,49 @@
             return null;
         }
     }
+
+    /**
+     * Return a List which holds all ipAddress of the domains in the given List
+     * 
+     * @param domains List of domains
+     * @return domainIP List of ipaddress for domains
+     */
+    private static List getDomainsIP(List domains,DNSService dns,Logger log) {
+        List domainIP = new ArrayList();
+        if (domains.size() > 0 ) {
+            for (int i = 0; i < domains.size(); i++) {
+                List domList = getDomainIP(domains.get(i).toString(),dns,log);
+                
+                for(int i2 = 0; i2 < domList.size();i2++) {
+                    if(domainIP.contains(domList.get(i2)) == false) {
+                        domainIP.add(domList.get(i2));
+                    }
+                }
+            }
+        }
+        return domainIP;    
+    }
     
     /**
+     * @see #getDomainsIP(List, DNSService, Logger)
+     */
+    private static List getDomainIP(String domain, DNSService dns, Logger log) {
+        List domainIP = new ArrayList();
+        try {
+            InetAddress[]  addrs = dns.getAllByName(domain);
+            for (int j = 0; j < addrs.length ; j++) {
+                String ip = addrs[j].getHostAddress();
+                if (domainIP.contains(ip) == false) {
+                    domainIP.add(ip);
+                }
+            }
+        } catch (UnknownHostException e) {
+            log.error("Cannot get IP address(es) for " + domain);
+        }
+        return domainIP;
+    }
+
+    /**
      * @see org.apache.james.api.vut.management.VirtualUserTableManagement#getUserDomainMappings(java.lang.String, java.lang.String)
      */
     public Collection getUserDomainMappings(String user, String domain) {



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