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/14 17:59:43 UTC

svn commit: r463966 - in /james/server/trunk/src: conf/ java/org/apache/james/remotemanager/ java/org/apache/james/smtpserver/ java/org/apache/james/smtpserver/core/filter/fastfail/ java/org/apache/james/vut/ test/org/apache/james/smtpserver/ test/org/...

Author: norman
Date: Sat Oct 14 08:59:42 2006
New Revision: 463966

URL: http://svn.apache.org/viewvc?view=rev&rev=463966
Log:
Use VirtualUserService support to ValidRcptHandler.
Add junit tests.

Added:
    james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.xinfo
    james/server/trunk/src/java/org/apache/james/vut/XMLVirtualUserTable.xinfo
Removed:
    james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/AbstractVirtualUserTableHandler.java
    james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/JDBCVirtualUserTableHandler.java
    james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/XMLVirtualUserTableHandler.java
Modified:
    james/server/trunk/src/conf/james-assembly.xml
    james/server/trunk/src/conf/james-config.xml
    james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.xinfo
    james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.xinfo
    james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java
    james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.java
    james/server/trunk/src/test/org/apache/james/smtpserver/ValidRcptHandlerTest.java
    james/server/trunk/src/test/org/apache/james/vut/JDBCVirtualUserTableTest.java

Modified: james/server/trunk/src/conf/james-assembly.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/conf/james-assembly.xml?view=diff&rev=463966&r1=463965&r2=463966
==============================================================================
--- james/server/trunk/src/conf/james-assembly.xml (original)
+++ james/server/trunk/src/conf/james-assembly.xml Sat Oct 14 08:59:42 2006
@@ -84,6 +84,8 @@
     <provide name="bayesiananalyzermanagement"
              role="org.apache.james.services.BayesianAnalyzerManagementService"/>
     <provide name="dnsserver" role="org.apache.james.services.DNSServer"/>
+    <provide name="virtualusertable"
+             role="org.apache.james.services.VirtualUserTableManagement" />
   </block>
 
   <!-- The User Management block  -->
@@ -120,6 +122,8 @@
     <provide name="database-connections"
              role="org.apache.avalon.cornerstone.services.datasources.DataSourceSelector" />
     <provide name="filesystem" role="org.apache.james.services.FileSystem" />
+    <provide name="virtualusertable"
+             role="org.apache.james.services.VirtualUserTable" />
   </block>
 
   <!-- NNTP Server -->
@@ -182,6 +186,17 @@
   <!-- The context FileSystem implementation -->
   <block name="filesystem" class="org.apache.james.context.AvalonFileSystem">
   </block>
+  
+  <!-- VirtualUserTable services -->
+  <block name="virtualusertable" class="org.apache.james.vut.JDBCVirtualUserTable" >
+    <provide name="database-connections"
+             role="org.apache.avalon.cornerstone.services.datasources.DataSourceSelector" />
+    <provide name="filesystem" role="org.apache.james.services.FileSystem" />
+  </block>
+  <!-- 
+  <block name="virtualusertable" class="org.apache.james.vut.JDBCVirtualUserTable" />
+  -->
+  
   
   <!-- Configuration for Cornerstone Blocks only after here
        NOTHING BELOW THIS SHOULD NEED CHANGING,

Modified: james/server/trunk/src/conf/james-config.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/conf/james-config.xml?view=diff&rev=463966&r1=463965&r2=463966
==============================================================================
--- james/server/trunk/src/conf/james-config.xml (original)
+++ james/server/trunk/src/conf/james-config.xml Sat Oct 14 08:59:42 2006
@@ -779,6 +779,12 @@
       <repositoryPath> db://maildb </repositoryPath>
    </bayesiananalyzermanagement>  
    
+   <!-- VirtualUserTable Service-->
+   <virtualusertable> 
+      <repositoryPath> db://maildb </repositoryPath>
+      <sqlFile>file://conf/sqlResources.xml</sqlFile>
+   </virtualusertable>  
+   
 
    <!-- The RemoteManager server is enabled by default -->
    <!-- Disabling blocks will stop them from listening, -->

Modified: james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.xinfo
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.xinfo?view=diff&rev=463966&r1=463965&r2=463966
==============================================================================
--- james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.xinfo (original)
+++ james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.xinfo Sat Oct 14 08:59:42 2006
@@ -43,5 +43,8 @@
     <dependency>
       <service name="org.apache.james.services.DNSServer" version="1.0"/>
     </dependency>
+    <dependency>
+      <service name="org.apache.james.services.VirtualUserTableManagement" version="1.0"/>
+    </dependency>
   </dependencies>
 </blockinfo>

Modified: james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.xinfo
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.xinfo?view=diff&rev=463966&r1=463965&r2=463966
==============================================================================
--- james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.xinfo (original)
+++ james/server/trunk/src/java/org/apache/james/smtpserver/SMTPServer.xinfo Sat Oct 14 08:59:42 2006
@@ -40,5 +40,8 @@
     <dependency>
       <service name="org.apache.james.services.FileSystem" version="1.0"/>
     </dependency>
+    <dependency>
+      <service name="org.apache.james.services.VirtualUserTable" version="1.0"/>
+    </dependency>
   </dependencies>
 </blockinfo>

Modified: james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java?view=diff&rev=463966&r1=463965&r2=463966
==============================================================================
--- james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java (original)
+++ james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptHandler.java Sat Oct 14 08:59:42 2006
@@ -31,9 +31,14 @@
 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.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.james.services.VirtualUserTable;
 import org.apache.james.smtpserver.CommandHandler;
 import org.apache.james.smtpserver.SMTPSession;
 import org.apache.james.util.mail.dsn.DSNStatus;
+import org.apache.james.vut.ErrorMappingException;
 import org.apache.mailet.MailAddress;
 import org.apache.oro.text.regex.MalformedPatternException;
 import org.apache.oro.text.regex.Pattern;
@@ -43,12 +48,21 @@
 /**
  * Handler which reject invalid recipients
  */
-public class ValidRcptHandler extends AbstractLogEnabled implements CommandHandler, Configurable {
+public class ValidRcptHandler extends AbstractLogEnabled implements CommandHandler, Configurable, Serviceable {
     
     private Collection recipients = new ArrayList();
     private Collection domains = new ArrayList();
     private Collection regex = new ArrayList();
- 
+    private boolean vut = true;
+    private VirtualUserTable table;
+    
+    /**
+     * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
+     */
+    public void service(ServiceManager arg0) throws ServiceException {
+        table = (VirtualUserTable) arg0.lookup(VirtualUserTable.ROLE); 
+    }
+    
     /**
      * @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
      */
@@ -71,6 +85,11 @@
                 throw new ConfigurationException("Malformed pattern: ", mpe);
             }
         }
+        Configuration vutConfig = arg0.getChild("enableVirtualUserTable");
+        
+        if (vutConfig != null) {
+            vut = vutConfig.getValueAsBoolean(true);    
+        }
     }
     
     /**
@@ -124,6 +143,10 @@
 
         }  
     }
+    
+    public void setVirtualUserTableSupport(boolean vut) {
+    this.vut = vut;
+    }
 
     /**
      * @see org.apache.james.smtpserver.CommandHandler#getImplCommands()
@@ -162,8 +185,23 @@
         }
 
         // check if an valid virtual mapping exists
-        if (invalidUser == true  && session.getState().get(AbstractVirtualUserTableHandler.VALID_USER) != null) {
-            invalidUser = false;
+        if (invalidUser == true  && vut == true) {
+            try {
+                Collection targetString = table.getMappings(rcpt.getUser(), rcpt.getHost());
+        
+                if (targetString.isEmpty() == false) {
+                    invalidUser = false;
+                }
+            } catch (ErrorMappingException e) {
+        
+                String responseString = e.getMessage();
+                
+                getLogger().info("Rejected message. Reject Message: " + responseString);
+            
+                session.writeResponse(responseString);
+                session.setStopHandlerProcessing(true);
+            }
+            //invalidUser = false;
         }
         
         if (invalidUser == true && !regex.isEmpty()) {

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=463966&r1=463965&r2=463966
==============================================================================
--- james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.java (original)
+++ james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.java Sat Oct 14 08:59:42 2006
@@ -50,7 +50,7 @@
 
     private DataSourceSelector datasources = null;
     private DataSourceComponent dataSourceComponent = null;
-    private String tableName = null;
+    private String tableName = "VirtualUserTable";
     private String dataSourceName = null;
 
     /**
@@ -80,7 +80,13 @@
      * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
      */
     public void configure(Configuration arg0) throws ConfigurationException {
-        String destination = arg0.getAttribute("destinationURL");
+        Configuration config = arg0.getChild("repositoryPath");
+    
+        if (config == null) {
+            throw new ConfigurationException("RepositoryPath must configured");
+        }
+        
+        String destination = config.getValue();
         // normalize the destination, to simplify processing.
         if ( ! destination.endsWith("/") ) {
             destination += "/";
@@ -103,7 +109,7 @@
             StringBuffer exceptionBuffer =
                 new StringBuffer(256)
                         .append("Malformed destinationURL - Must be of the format '")
-                        .append("db://<data-source>[/<table>[/<repositoryName>]]'.  Was passed ")
+                        .append("db://<data-source>'.  Was passed ")
                         .append(arg0.getAttribute("destinationURL"));
             throw new ConfigurationException(exceptionBuffer.toString());
         }

Added: james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.xinfo
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.xinfo?view=auto&rev=463966
==============================================================================
--- james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.xinfo (added)
+++ james/server/trunk/src/java/org/apache/james/vut/JDBCVirtualUserTable.xinfo Sat Oct 14 08:59:42 2006
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+
+<blockinfo>
+
+  <!-- section to describe block -->
+  <block>
+    <version>1.0</version>
+  </block>
+
+  <services>
+    <service name="org.apache.james.services.VirtualUserTableManagement" version="1.0" />
+    <service name="org.apache.james.services.VirtualUserTable" version="1.0" />
+  </services>
+  
+  <!-- interfaces that may be exported to manange this block -->
+  <!--
+  <management-access-points>
+    <service name="org.apache.james.management.BayesianAnalyzerManagementMBean"/>
+  </management-access-points>
+-->
+  <dependencies>
+    <dependency>
+      <service name="org.apache.avalon.cornerstone.services.datasources.DataSourceSelector" version="1.0"/>
+    </dependency>
+    <dependency>
+      <service name="org.apache.james.services.FileSystem" version="1.0"/>
+    </dependency>
+  </dependencies>
+</blockinfo>

Added: james/server/trunk/src/java/org/apache/james/vut/XMLVirtualUserTable.xinfo
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/vut/XMLVirtualUserTable.xinfo?view=auto&rev=463966
==============================================================================
--- james/server/trunk/src/java/org/apache/james/vut/XMLVirtualUserTable.xinfo (added)
+++ james/server/trunk/src/java/org/apache/james/vut/XMLVirtualUserTable.xinfo Sat Oct 14 08:59:42 2006
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+
+<blockinfo>
+
+  <!-- section to describe block -->
+  <block>
+    <version>1.0</version>
+  </block>
+
+  <services>
+    <service name="org.apache.james.services.VirtualUserTableManagment" version="1.0" />
+    <service name="org.apache.james.services.VirtualUserTable" version="1.0" />
+  </services>
+  
+  <!-- interfaces that may be exported to manange this block -->
+  <!--
+  <management-access-points>
+    <service name="org.apache.james.management.BayesianAnalyzerManagementMBean"/>
+  </management-access-points>
+-->
+</blockinfo>

Modified: james/server/trunk/src/test/org/apache/james/smtpserver/ValidRcptHandlerTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/smtpserver/ValidRcptHandlerTest.java?view=diff&rev=463966&r1=463965&r2=463966
==============================================================================
--- james/server/trunk/src/test/org/apache/james/smtpserver/ValidRcptHandlerTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/smtpserver/ValidRcptHandlerTest.java Sat Oct 14 08:59:42 2006
@@ -22,18 +22,20 @@
 
 package org.apache.james.smtpserver;
 
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.mail.internet.ParseException;
-
 import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.james.services.MailServer;
 import org.apache.james.services.UsersRepository;
-import org.apache.james.smtpserver.core.filter.fastfail.AbstractVirtualUserTableHandler;
+import org.apache.james.services.VirtualUserTable;
 import org.apache.james.smtpserver.core.filter.fastfail.ValidRcptHandler;
 import org.apache.james.test.mock.avalon.MockLogger;
+import org.apache.james.test.mock.avalon.MockServiceManager;
 import org.apache.james.userrepository.MockUsersRepository;
+import org.apache.james.vut.ErrorMappingException;
 import org.apache.mailet.MailAddress;
 import org.apache.oro.text.regex.MalformedPatternException;
 
@@ -43,7 +45,10 @@
     
     private final static String VALID_USER = "postmaster";
     private final static String INVALID_USER = "invalid";
+    private final static String USER1 = "user1";
+    private final static String USER2 = "user2";
     private String response = null;
+    private MockServiceManager serviceMan;
     
     public void setUp() {
         response = null;
@@ -92,6 +97,28 @@
         return session;
     }
     
+    private MockServiceManager setUpServiceManager() throws Exception {
+        serviceMan = new MockServiceManager();
+        serviceMan.put(VirtualUserTable.ROLE, setUpVirtualUserTable());
+        return serviceMan;
+    }
+    
+    private VirtualUserTable setUpVirtualUserTable() {
+        VirtualUserTable table = new VirtualUserTable() {
+ 
+            public Collection getMappings(String user, String domain) throws ErrorMappingException {
+                Collection mappings = new ArrayList();
+                if (user.equals(USER1)) {
+                    mappings.add("address@localhost");
+                } else if (user.equals(USER2)) {
+                    throw new ErrorMappingException("BOUNCE!");
+                }
+                return mappings;
+            }
+        };
+        return table;
+    }
+    
     private SMTPHandlerConfigurationData setupMockedSMTPConfiguration() {
         SMTPHandlerConfigurationData conf = new SMTPHandlerConfigurationData() {
             UsersRepository user = new MockUsersRepository();
@@ -150,8 +177,9 @@
         return conf;
     }
     
-    public void testRejectInvalidUser() throws ParseException {
+    public void testRejectInvalidUser() throws Exception {
         ValidRcptHandler handler = new ValidRcptHandler();
+        ContainerUtil.service(handler, setUpServiceManager());
         SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(),new MailAddress(INVALID_USER + "@localhost"),false,false,null);
         ContainerUtil.enableLogging(handler,new MockLogger());
     
@@ -161,8 +189,9 @@
         assertNotNull("Rejected",response);
     }
     
-    public void testNotRejectInvalidUserAuth() throws ParseException {
+    public void testNotRejectInvalidUserAuth() throws Exception {
         ValidRcptHandler handler = new ValidRcptHandler();
+        ContainerUtil.service(handler, setUpServiceManager());
         SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(),new MailAddress(INVALID_USER + "@localhost"),false,true,"authedUser");
         ContainerUtil.enableLogging(handler,new MockLogger());
     
@@ -172,8 +201,9 @@
         assertNull("Not rejected",response);
     }
     
-    public void testNotRejectInvalidUserRelay() throws ParseException {
+    public void testNotRejectInvalidUserRelay() throws Exception {
         ValidRcptHandler handler = new ValidRcptHandler();
+        ContainerUtil.service(handler, setUpServiceManager());
         SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(),new MailAddress(INVALID_USER + "@localhost"),true,false,null);
         ContainerUtil.enableLogging(handler,new MockLogger());
     
@@ -183,8 +213,9 @@
         assertNull("Not rejected",response);
     }
     
-    public void testNotRejectValidUser() throws ParseException {
+    public void testNotRejectValidUser() throws Exception {
         ValidRcptHandler handler = new ValidRcptHandler();
+        ContainerUtil.service(handler, setUpServiceManager());
         SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(),new MailAddress(VALID_USER + "@localhost"),false,false,null);
         ContainerUtil.enableLogging(handler,new MockLogger());
     
@@ -194,9 +225,10 @@
         assertNull("Not rejected",response);
     }
     
-    public void testNotRejectValidUserRecipient() throws ParseException {
+    public void testNotRejectValidUserRecipient() throws Exception {
         String recipient = "recip@domain";
         ValidRcptHandler handler = new ValidRcptHandler();
+        ContainerUtil.service(handler, setUpServiceManager());
         SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(),new MailAddress(recipient),false,false,null);
         ContainerUtil.enableLogging(handler,new MockLogger());
     
@@ -208,11 +240,12 @@
         assertNull("Not rejected",response);
     }
     
-    public void testNotRejectValidUserDomain() throws ParseException {
+    public void testNotRejectValidUserDomain() throws Exception {
         String domain = "domain";
         String recipient = "recip@" + domain;
 
         ValidRcptHandler handler = new ValidRcptHandler();
+        ContainerUtil.service(handler, setUpServiceManager());
         SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(),new MailAddress(recipient),false,false,null);
         ContainerUtil.enableLogging(handler,new MockLogger());
     
@@ -224,11 +257,12 @@
         assertNull("Not rejected",response);
     }
     
-    public void testNotRejectValidUserRegex() throws ParseException, MalformedPatternException {
+    public void testNotRejectValidUserRegex() throws Exception {
         String domain = "domain";
         String recipient = "recip@" + domain;
 
         ValidRcptHandler handler = new ValidRcptHandler();
+        ContainerUtil.service(handler, setUpServiceManager());
         SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(),new MailAddress(recipient),false,false,null);
         ContainerUtil.enableLogging(handler,new MockLogger());
     
@@ -240,9 +274,10 @@
         assertNull("Not rejected",response);
     }
     
-    public void testInvalidRegex() throws ParseException{
+    public void testInvalidRegex() throws Exception{
         boolean exception = false;
         ValidRcptHandler handler = new ValidRcptHandler();
+        ContainerUtil.service(handler, setUpServiceManager());
         ContainerUtil.enableLogging(handler,new MockLogger());
     
         try {
@@ -254,18 +289,28 @@
         assertTrue("Invalid Config",exception);
     }
     
-    public void testNotRejectValidUserState() throws ParseException {
-        String domain = "domain";
-        String recipient = "recip@" + domain;
+    public void testHasAddressMapping() throws Exception {
+        SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(),new MailAddress(USER1 + "@localhost"),false,false,null);
+    
         ValidRcptHandler handler = new ValidRcptHandler();
-        SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(),new MailAddress(recipient),false,false,null);
+        ContainerUtil.service(handler, setUpServiceManager());
         ContainerUtil.enableLogging(handler,new MockLogger());
-    
-        session.getState().put(AbstractVirtualUserTableHandler.VALID_USER, recipient);
         handler.onCommand(session);
     
-        assertFalse("Not rejected",session.getStopHandlerProcessing());
-        assertNull("Not rejected",response);
+        assertNull("No reject",response);
+        assertFalse("Not stop processing",session.getStopHandlerProcessing());
     }
     
+    public void testHasErrorMapping() throws Exception {
+        SMTPSession session = setupMockedSMTPSession(setupMockedSMTPConfiguration(),new MailAddress(USER2 + "@localhost"),false,false,null);
+
+        ValidRcptHandler handler = new ValidRcptHandler();
+        ContainerUtil.service(handler, setUpServiceManager());
+        ContainerUtil.enableLogging(handler,new MockLogger());
+        handler.onCommand(session);
+     
+       assertNull("Valid Error mapping",session.getState().get("VALID_USER"));
+       assertNotNull("Error mapping",response);
+       assertTrue("Stop processing",session.getStopHandlerProcessing());
+    }
 }

Modified: james/server/trunk/src/test/org/apache/james/vut/JDBCVirtualUserTableTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/vut/JDBCVirtualUserTableTest.java?view=diff&rev=463966&r1=463965&r2=463966
==============================================================================
--- james/server/trunk/src/test/org/apache/james/vut/JDBCVirtualUserTableTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/vut/JDBCVirtualUserTableTest.java Sat Oct 14 08:59:42 2006
@@ -26,7 +26,7 @@
 
         mr.enableLogging(new MockLogger());
         DefaultConfiguration defaultConfiguration = new DefaultConfiguration("ReposConf");
-        defaultConfiguration.setAttribute("destinationURL","db://maildb/virtualusertable");
+        defaultConfiguration.setAttribute("repositoryPath","db://maildb");
         defaultConfiguration.addChild(new AttrValConfiguration("sqlFile","file://conf/sqlResources.xml"));
         mr.service(serviceManager);
         mr.configure(defaultConfiguration);



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