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 no...@apache.org on 2006/10/19 17:19:59 UTC

svn commit: r465657 - in /james/server/trunk/src: conf/ java/org/apache/james/domain/ java/org/apache/james/services/ java/org/apache/james/vut/ test/org/apache/james/ test/org/apache/james/domain/ test/org/apache/james/vut/

Author: norman
Date: Thu Oct 19 08:19:58 2006
New Revision: 465657

URL: http://svn.apache.org/viewvc?view=rev&rev=465657
Log:
Add containsDomain to DomainList service. See JAMES-426
Fix junit tests.


Modified:
    james/server/trunk/src/conf/sqlResources.xml
    james/server/trunk/src/java/org/apache/james/domain/AbstractDomainList.java
    james/server/trunk/src/java/org/apache/james/domain/HardCodedDomainList.java
    james/server/trunk/src/java/org/apache/james/services/DomainList.java
    james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.java
    james/server/trunk/src/java/org/apache/james/vut/XMLVirtualUserTable.java
    james/server/trunk/src/test/org/apache/james/JamesTest.java
    james/server/trunk/src/test/org/apache/james/domain/HardCodedDomainListTest.java
    james/server/trunk/src/test/org/apache/james/vut/AbstractVirtualUserTableTest.java

Modified: james/server/trunk/src/conf/sqlResources.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/conf/sqlResources.xml?view=diff&rev=465657&r1=465656&r2=465657
==============================================================================
--- james/server/trunk/src/conf/sqlResources.xml (original)
+++ james/server/trunk/src/conf/sqlResources.xml Thu Oct 19 08:19:58 2006
@@ -1002,7 +1002,9 @@
    
     <sql name="addMapping">insert into VirtualUserTable values(?,?,?) </sql>
     
-    <sql name="selectDomains">select domain from VirtualUserTable</sql>
+    <sql name="selectDomains">select distinct domain from VirtualUserTable</sql>
+    
+    <sql name="selectDomain">select distinct domain from VirtualUserTable where domain = ? </sql>
     
     <!-- Statements used to create the table associated with this class. -->
     <sql name="createTable" db="mysql">

Modified: james/server/trunk/src/java/org/apache/james/domain/AbstractDomainList.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/domain/AbstractDomainList.java?view=diff&rev=465657&r1=465656&r2=465657
==============================================================================
--- james/server/trunk/src/java/org/apache/james/domain/AbstractDomainList.java (original)
+++ james/server/trunk/src/java/org/apache/james/domain/AbstractDomainList.java Thu Oct 19 08:19:58 2006
@@ -69,7 +69,7 @@
         if (domains.size() > 0 ) {
             for (int i = 0; i < domains.size(); i++) {
                 try {
-                    InetAddress[]  addrs = InetAddress.getAllByName(domains.get(i).toString());
+                    InetAddress[]  addrs = dns.getAllByName(domains.get(i).toString());
                     for (int j = 0; j < addrs.length ; j++) {
                         domainIP.add(addrs[j].getHostAddress());
                     }

Modified: james/server/trunk/src/java/org/apache/james/domain/HardCodedDomainList.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/domain/HardCodedDomainList.java?view=diff&rev=465657&r1=465656&r2=465657
==============================================================================
--- james/server/trunk/src/java/org/apache/james/domain/HardCodedDomainList.java (original)
+++ james/server/trunk/src/java/org/apache/james/domain/HardCodedDomainList.java Thu Oct 19 08:19:58 2006
@@ -79,4 +79,11 @@
     protected List getInternalDomainList() {
         return serverNames;
     }
+
+    /**
+     * @see org.apache.james.services.DomainList#containsDomain(java.lang.String)
+     */
+    public boolean containsDomain(String domains) {
+        return serverNames.contains(domains);
+    }
 }

Modified: james/server/trunk/src/java/org/apache/james/services/DomainList.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/services/DomainList.java?view=diff&rev=465657&r1=465656&r2=465657
==============================================================================
--- james/server/trunk/src/java/org/apache/james/services/DomainList.java (original)
+++ james/server/trunk/src/java/org/apache/james/services/DomainList.java Thu Oct 19 08:19:58 2006
@@ -27,9 +27,18 @@
     public final static String ROLE ="org.apache.james.services.DomainList";
     
     /**
-     * Return List of domains which should be used as localdomains
+     * Return List of domains which should be used as localdomains. Return null if no
+     * domains were found
      * 
      * @return domains
      */
     public List getDomains();
+    
+    /**
+     * Return true if the domain is 
+     * 
+     * @param domain
+     * @return
+     */
+    public boolean containsDomain(String domain);
 }

Modified: james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.java?view=diff&rev=465657&r1=465656&r2=465657
==============================================================================
--- james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.java (original)
+++ james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.java Thu Oct 19 08:19:58 2006
@@ -530,6 +530,37 @@
         } else {
             return domains;
         }
+    }
+
+    /**
+     * @see org.apache.james.services.DomainList#containsDomain(java.lang.String)
+     */
+    public boolean containsDomain(String domain) {
+        Connection conn = null;
+        PreparedStatement mappingStmt = null;
+        
+        try {
+            conn = dataSourceComponent.getConnection();
+            mappingStmt = conn.prepareStatement(sqlQueries.getSqlString("selectDomain", true));
+
+            ResultSet mappingRS = null;
+            try {
+                mappingStmt.setString(1, domain);
+                mappingRS = mappingStmt.executeQuery();
+                if (mappingRS.next()) {
+                    return true;
+                }
+            } finally {
+                theJDBCUtil.closeJDBCResultSet(mappingRS);
+            }
+            
+        } catch (SQLException sqle) {
+            getLogger().error("Error accessing database", sqle);
+        } finally {
+            theJDBCUtil.closeJDBCStatement(mappingStmt);
+            theJDBCUtil.closeJDBCConnection(conn);
+        }
+        return false;
     } 
 }
 

Modified: james/server/trunk/src/java/org/apache/james/vut/XMLVirtualUserTable.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/vut/XMLVirtualUserTable.java?view=diff&rev=465657&r1=465656&r2=465657
==============================================================================
--- james/server/trunk/src/java/org/apache/james/vut/XMLVirtualUserTable.java (original)
+++ james/server/trunk/src/java/org/apache/james/vut/XMLVirtualUserTable.java Thu Oct 19 08:19:58 2006
@@ -114,4 +114,11 @@
         return domains;
     }
 
+    /**
+     * @see org.apache.james.services.DomainList#containsDomain(java.lang.String)
+     */
+    public boolean containsDomain(String domain) {
+    return domains.contains(domain);
+    }
+
 }

Modified: james/server/trunk/src/test/org/apache/james/JamesTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/JamesTest.java?view=diff&rev=465657&r1=465656&r2=465657
==============================================================================
--- james/server/trunk/src/test/org/apache/james/JamesTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/JamesTest.java Thu Oct 19 08:19:58 2006
@@ -104,7 +104,11 @@
                 ArrayList d = new ArrayList();
                 d.add("localhost");
                 return d;
-            }            
+            }
+
+        public boolean containsDomain(String domain) {
+        return getDomains().contains(domain);
+        }            
         });
         MockStore mockStore = new MockStore();
         mockMailRepository = new InMemorySpoolRepository();

Modified: james/server/trunk/src/test/org/apache/james/domain/HardCodedDomainListTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/domain/HardCodedDomainListTest.java?view=diff&rev=465657&r1=465656&r2=465657
==============================================================================
--- james/server/trunk/src/test/org/apache/james/domain/HardCodedDomainListTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/domain/HardCodedDomainListTest.java Thu Oct 19 08:19:58 2006
@@ -23,6 +23,7 @@
 package org.apache.james.domain;
 
 import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.util.ArrayList;
 
 import org.apache.avalon.framework.configuration.Configuration;
@@ -43,10 +44,11 @@
         DefaultConfiguration configuration = new DefaultConfiguration("test");
         DefaultConfiguration sNamesConf = new DefaultConfiguration("servernames");
         sNamesConf.setAttribute("autodetect", auto);
+        sNamesConf.setAttribute("autodetectIP", autoIP);
         
         for (int i= 0; i< names.size(); i++) {
             DefaultConfiguration nameConf = new DefaultConfiguration("servername");
-            nameConf.setAttribute("autodetectIP", autoIP);
+            
             nameConf.setValue(names.get(i).toString());
             sNamesConf.addChild(nameConf);
         }
@@ -60,6 +62,11 @@
             public String getHostName(InetAddress inet) {
                 return hostName;
             }
+            
+            public InetAddress[] getAllByName(String name) throws UnknownHostException {
+        return new InetAddress[] { InetAddress.getByName("127.0.0.1")};
+            
+            }
         };
         return dns;
     }
@@ -72,7 +79,7 @@
     
     public void testGetDomains() throws ConfigurationException, ServiceException {
         ArrayList domains = new ArrayList();
-        domains.add("domain1");
+        domains.add("domain1.");
     
         HardCodedDomainList dom = new HardCodedDomainList();
         ContainerUtil.enableLogging(dom,new MockLogger());
@@ -84,7 +91,7 @@
     
     public void testGetDomainsAutoDetectNotLocalHost() throws ConfigurationException, ServiceException {
         ArrayList domains = new ArrayList();
-        domains.add("domain1");
+        domains.add("domain1.");
     
         HardCodedDomainList dom = new HardCodedDomainList();
         ContainerUtil.enableLogging(dom,new MockLogger());
@@ -96,7 +103,7 @@
     
     public void testGetDomainsAutoDetectLocalHost() throws ConfigurationException, ServiceException {
         ArrayList domains = new ArrayList();
-        domains.add("domain1");
+        domains.add("domain1.");
     
         HardCodedDomainList dom = new HardCodedDomainList();
         ContainerUtil.enableLogging(dom,new MockLogger());

Modified: james/server/trunk/src/test/org/apache/james/vut/AbstractVirtualUserTableTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/vut/AbstractVirtualUserTableTest.java?view=diff&rev=465657&r1=465656&r2=465657
==============================================================================
--- james/server/trunk/src/test/org/apache/james/vut/AbstractVirtualUserTableTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/vut/AbstractVirtualUserTableTest.java Thu Oct 19 08:19:58 2006
@@ -30,6 +30,7 @@
 public abstract class AbstractVirtualUserTableTest extends TestCase {
 
     protected AbstractVirtualUserTable virtualUserTable;
+    
     protected void setUp() throws Exception {
         virtualUserTable = getVirtalUserTable();
     }
@@ -59,8 +60,10 @@
 
             assertTrue("Two mappings",virtualUserTable.getMappings(user, domain).size() == 2);
             
+            // Test DomainList implementations!
             assertEquals("One domain",virtualUserTable.getDomains().size(), 1);
-        
+            assertTrue("Contains Domain",virtualUserTable.containsDomain(domain));
+            
             assertTrue("remove virtual mapping", virtualUserTable.removeRegexMapping(user, domain, regex));
         
             try {



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