Modified: 
james/server/trunk/user-library/src/main/java/org/apache/james/vut/lib/AbstractVirtualUserTable.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/user-library/src/main/java/org/apache/james/vut/lib/AbstractVirtualUserTable.java?rev=1054932&r1=1054931&r2=1054932&view=diff
==============================================================================
--- 
james/server/trunk/user-library/src/main/java/org/apache/james/vut/lib/AbstractVirtualUserTable.java
 (original)
+++ 
james/server/trunk/user-library/src/main/java/org/apache/james/vut/lib/AbstractVirtualUserTable.java
 Tue Jan  4 08:41:58 2011
@@ -32,6 +32,7 @@ import org.apache.commons.logging.Log;
 import org.apache.james.lifecycle.api.Configurable;
 import org.apache.james.lifecycle.api.LogEnabled;
 import org.apache.james.vut.api.VirtualUserTable;
+import org.apache.james.vut.api.VirtualUserTableException;
 import org.apache.mailet.MailAddress;
 import org.apache.oro.text.regex.MalformedPatternException;
 import org.apache.oro.text.regex.Perl5Compiler;
@@ -93,11 +94,11 @@ public abstract class AbstractVirtualUse
     /**
      * @see org.apache.james.vut.api.VirtualUserTable#getMappings(String, 
String)
      */
-    public Collection<String> getMappings(String user,String domain) throws 
ErrorMappingException {
+    public Collection<String> getMappings(String user,String domain) throws 
ErrorMappingException, VirtualUserTableException{
         return getMappings(user,domain,mappingLimit);
     }
     
-    public Collection<String> getMappings(String user, String domain, int 
mappingLimit) throws ErrorMappingException {
+    public Collection<String> getMappings(String user, String domain, int 
mappingLimit) throws ErrorMappingException, VirtualUserTableException {
 
         // We have to much mappings throw ErrorMappingException to avoid 
infinity loop
         if (mappingLimit == 0) throw new ErrorMappingException("554 Too many 
mappings to process");
@@ -183,98 +184,92 @@ public abstract class AbstractVirtualUse
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#addRegexMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean addRegexMapping(String user, String domain, String regex){  
   
+    public void addRegexMapping(String user, String domain, String regex) 
throws VirtualUserTableException {     
         try {
             new Perl5Compiler().compile(regex);
         } catch (MalformedPatternException e) {
-            throw new IllegalArgumentException("Invalid regex: " + regex);
+            throw new VirtualUserTableException("Invalid regex: " + regex, e);
         }
         
-        if (checkMapping(user,domain,regex) == true) {
-            getLogger().info("Add regex mapping => " + regex + " for user: " + 
user + " domain: " + domain);
-            return addMappingInternal(user, domain, 
VirtualUserTable.REGEX_PREFIX + regex);
-        } else {
-            return false;
-        }
+        checkMapping(user,domain,regex);
+        getLogger().info("Add regex mapping => " + regex + " for user: " + 
user + " domain: " + domain);
+        addMappingInternal(user, domain, VirtualUserTable.REGEX_PREFIX + 
regex);
+        
     }
 
     
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#removeRegexMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean removeRegexMapping(String user, String domain, String 
regex) {
+    public void removeRegexMapping(String user, String domain, String regex) 
throws VirtualUserTableException{
         getLogger().info("Remove regex mapping => " + regex + " for user: " + 
user + " domain: " + domain);
-        return removeMappingInternal(user,domain,VirtualUserTable.REGEX_PREFIX 
+ regex);
+        removeMappingInternal(user,domain,VirtualUserTable.REGEX_PREFIX + 
regex);
     }
     
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#addAddressMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean addAddressMapping(String user, String domain, String 
address) {
+    public void addAddressMapping(String user, String domain, String address) 
throws VirtualUserTableException{
         if (address.indexOf('@') < 0) {
             address =  address + "@localhost";
         } 
         try {
             new MailAddress(address);
         } catch (ParseException e) {
-            throw new IllegalArgumentException("Invalid emailAddress: " + 
address);
+            throw new VirtualUserTableException("Invalid emailAddress: " + 
address, e);
         }
-        if (checkMapping(user,domain,address) == true) {          
-            getLogger().info("Add address mapping => " + address + " for user: 
" + user + " domain: " + domain);
-            return addMappingInternal(user, domain, address);
-        } else {
-            return false;
-        }   
+        checkMapping(user,domain,address);     
+        getLogger().info("Add address mapping => " + address + " for user: " + 
user + " domain: " + domain);
+        addMappingInternal(user, domain, address);
+        
     }
     
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#removeAddressMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean removeAddressMapping(String user, String domain, String 
address) {
+    public void removeAddressMapping(String user, String domain, String 
address) throws VirtualUserTableException {
         if (address.indexOf('@') < 0) {
             address =  address + "@localhost";
         } 
         getLogger().info("Remove address mapping => " + address + " for user: 
" + user + " domain: " + domain);
-        return removeMappingInternal(user,domain,address);
+        removeMappingInternal(user,domain,address);
     }
     
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#addErrorMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean addErrorMapping(String user, String domain, String error) { 
  
-        if (checkMapping(user,domain,error) == true) {          
-            getLogger().info("Add error mapping => " + error + " for user: " + 
user + " domain: " + domain);
-            return addMappingInternal(user,domain, 
VirtualUserTable.ERROR_PREFIX + error);
-        } else {
-            return false;
-        } 
+    public void addErrorMapping(String user, String domain, String error) 
throws VirtualUserTableException{   
+        checkMapping(user,domain,error);         
+        getLogger().info("Add error mapping => " + error + " for user: " + 
user + " domain: " + domain);
+        addMappingInternal(user,domain, VirtualUserTable.ERROR_PREFIX + error);
+        
     }
     
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#removeErrorMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean removeErrorMapping(String user, String domain, String 
error) {
+    public void removeErrorMapping(String user, String domain, String error) 
throws VirtualUserTableException{
         getLogger().info("Remove error mapping => " + error + " for user: " + 
user + " domain: " + domain);     
-        return removeMappingInternal(user,domain,VirtualUserTable.ERROR_PREFIX 
+ error);
+        removeMappingInternal(user,domain,VirtualUserTable.ERROR_PREFIX + 
error);
     }
 
 
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#addMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean addMapping(String user, String domain, String mapping) {
+    public void addMapping(String user, String domain, String mapping) throws 
VirtualUserTableException{
 
         String map = mapping.toLowerCase();
         
         if (map.startsWith(VirtualUserTable.ERROR_PREFIX)) {
-            return 
addErrorMapping(user,domain,map.substring(VirtualUserTable.ERROR_PREFIX.length()));
+            
addErrorMapping(user,domain,map.substring(VirtualUserTable.ERROR_PREFIX.length()));
         } else if (map.startsWith(VirtualUserTable.REGEX_PREFIX)) {
-            return 
addRegexMapping(user,domain,map.substring(VirtualUserTable.REGEX_PREFIX.length()));
+            
addRegexMapping(user,domain,map.substring(VirtualUserTable.REGEX_PREFIX.length()));
         } else if (map.startsWith(VirtualUserTable.ALIASDOMAIN_PREFIX)) {
-            if (user != null) throw new IllegalArgumentException("User must be 
null for aliasDomain mappings");
-            return 
addAliasDomainMapping(domain,map.substring(VirtualUserTable.ALIASDOMAIN_PREFIX.length()));
+            if (user != null) throw new VirtualUserTableException("User must 
be null for aliasDomain mappings");
+            
addAliasDomainMapping(domain,map.substring(VirtualUserTable.ALIASDOMAIN_PREFIX.length()));
         } else {
-            return addAddressMapping(user,domain,map);
+            addAddressMapping(user,domain,map);
         }
         
     }
@@ -282,19 +277,19 @@ public abstract class AbstractVirtualUse
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#removeMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean removeMapping(String user, String domain, String mapping) {
+    public void removeMapping(String user, String domain, String mapping) 
throws VirtualUserTableException{
 
         String map = mapping.toLowerCase();
     
         if (map.startsWith(VirtualUserTable.ERROR_PREFIX)) {
-            return 
removeErrorMapping(user,domain,map.substring(VirtualUserTable.ERROR_PREFIX.length()));
+            
removeErrorMapping(user,domain,map.substring(VirtualUserTable.ERROR_PREFIX.length()));
         } else if (map.startsWith(VirtualUserTable.REGEX_PREFIX)) {
-            return 
removeRegexMapping(user,domain,map.substring(VirtualUserTable.REGEX_PREFIX.length()));
+            
removeRegexMapping(user,domain,map.substring(VirtualUserTable.REGEX_PREFIX.length()));
         } else if (map.startsWith(VirtualUserTable.ALIASDOMAIN_PREFIX)) {
-            if (user != null) throw new IllegalArgumentException("User must be 
null for aliasDomain mappings");
-            return 
removeAliasDomainMapping(domain,map.substring(VirtualUserTable.ALIASDOMAIN_PREFIX.length()));
+            if (user != null) throw new VirtualUserTableException("User must 
be null for aliasDomain mappings");
+            
removeAliasDomainMapping(domain,map.substring(VirtualUserTable.ALIASDOMAIN_PREFIX.length()));
         } else {
-            return removeAddressMapping(user,domain,map);
+            removeAddressMapping(user,domain,map);
         }
         
     }
@@ -302,7 +297,7 @@ public abstract class AbstractVirtualUse
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#getAllMappings()
      */
-    public Map<String,Collection<String>> getAllMappings() {
+    public Map<String,Collection<String>> getAllMappings() throws 
VirtualUserTableException{
         int count = 0;
         Map<String,Collection<String>> mappings = getAllMappingsInternal();
     
@@ -316,24 +311,25 @@ public abstract class AbstractVirtualUse
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#getUserDomainMappings(java.lang.String,
 java.lang.String)
      */
-    public Collection<String> getUserDomainMappings(String user, String 
domain) {
+    public Collection<String> getUserDomainMappings(String user, String 
domain) throws VirtualUserTableException{
         return getUserDomainMappingsInternal(user, domain);
     }
 
     /**
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#addAliasDomainMapping(java.lang.String,
 java.lang.String)
      */
-    public boolean addAliasDomainMapping(String aliasDomain, String 
realDomain) {
+    public void addAliasDomainMapping(String aliasDomain, String realDomain) 
throws VirtualUserTableException{
         getLogger().info("Add domain mapping: " + aliasDomain  + " => " + 
realDomain);
-        return addMappingInternal(null, aliasDomain, 
VirtualUserTable.ALIASDOMAIN_PREFIX + realDomain);
+        addMappingInternal(null, aliasDomain, 
VirtualUserTable.ALIASDOMAIN_PREFIX + realDomain);
     }
     
     /**
+     * @return 
      * @see 
org.apache.james.vut.api.ManageableVirtualUserTable#removeAliasDomainMapping(java.lang.String,
 java.lang.String)
      */
-    public boolean removeAliasDomainMapping(String aliasDomain, String 
realDomain) {
+    public void removeAliasDomainMapping(String aliasDomain, String 
realDomain) throws VirtualUserTableException{
         getLogger().info("Remove domain mapping: " + aliasDomain  + " => " + 
realDomain);
-        return removeMappingInternal(null, aliasDomain, 
VirtualUserTable.ALIASDOMAIN_PREFIX + realDomain);
+        removeMappingInternal(null, aliasDomain, 
VirtualUserTable.ALIASDOMAIN_PREFIX + realDomain);
     }
     
     protected Log getLogger() {
@@ -349,7 +345,7 @@ public abstract class AbstractVirtualUse
      * @return true if successfully
      * @throws InvalidMappingException 
      */
-    protected abstract boolean  addMappingInternal(String user, String domain, 
String mapping);
+    protected abstract void  addMappingInternal(String user, String domain, 
String mapping) throws VirtualUserTableException;
     
     /**
      * Remove mapping 
@@ -360,7 +356,7 @@ public abstract class AbstractVirtualUse
      * @return true if successfully
      * @throws InvalidMappingException 
      */
-    protected abstract boolean  removeMappingInternal(String user, String 
domain, String mapping);
+    protected abstract void  removeMappingInternal(String user, String domain, 
String mapping) throws VirtualUserTableException;
 
     /**
      * Return Collection of all mappings for the given username and domain
@@ -369,14 +365,14 @@ public abstract class AbstractVirtualUse
      * @param domain the domain
      * @return Collection which hold the mappings
      */
-    protected abstract Collection<String> getUserDomainMappingsInternal(String 
user, String domain);
+    protected abstract Collection<String> getUserDomainMappingsInternal(String 
user, String domain) throws VirtualUserTableException;
 
     /**
      * Return a Map which holds all Mappings
      * 
      * @return Map
      */
-    protected abstract Map<String,Collection<String>> getAllMappingsInternal();
+    protected abstract Map<String,Collection<String>> getAllMappingsInternal() 
throws VirtualUserTableException;
     
     /**
      * Override to map virtual recipients to real recipients, both local and 
non-local.
@@ -391,7 +387,7 @@ public abstract class AbstractVirtualUse
      * @param user the mapping of virtual to real recipients, as 
      *    <code>MailAddress</code>es to <code>String</code>s.
      */
-    protected abstract String mapAddressInternal(String user, String domain);
+    protected abstract String mapAddressInternal(String user, String domain) 
throws VirtualUserTableException;
     
     /**
      * Get all mappings for the given user and domain. If a aliasdomain 
mapping was found get sure it is in the map as first mapping. 
@@ -400,7 +396,7 @@ public abstract class AbstractVirtualUse
      * @param domain the domain
      * @return the mappings
      */
-    private String mapAddress(String user, String domain) {
+    private String mapAddress(String user, String domain) throws 
VirtualUserTableException{
 
         String mappings = mapAddressInternal(user, domain);
 
@@ -429,13 +425,11 @@ public abstract class AbstractVirtualUse
         }
     }
       
-    private boolean checkMapping(String user,String domain, String mapping) {
+    private void checkMapping(String user,String domain, String mapping) 
throws VirtualUserTableException{
         Collection<String> mappings = getUserDomainMappings(user,domain);
         if (mappings != null && mappings.contains(mapping)) {
-            return false;
-        } else {
-            return true;
-        }
+            throw new VirtualUserTableException("Mapping " + mapping + " for 
user " + user + " domain " + domain + " already exist!");
+        } 
      }
 
 }

Modified: 
james/server/trunk/user-library/src/main/java/org/apache/james/vut/lib/VirtualUserTableManagement.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/user-library/src/main/java/org/apache/james/vut/lib/VirtualUserTableManagement.java?rev=1054932&r1=1054931&r2=1054932&view=diff
==============================================================================
--- 
james/server/trunk/user-library/src/main/java/org/apache/james/vut/lib/VirtualUserTableManagement.java
 (original)
+++ 
james/server/trunk/user-library/src/main/java/org/apache/james/vut/lib/VirtualUserTableManagement.java
 Tue Jan  4 08:41:58 2011
@@ -17,8 +17,6 @@
  * under the License.                                           *
  ****************************************************************/
 
-
-
 package org.apache.james.vut.lib;
 
 import java.util.Collection;
@@ -29,9 +27,9 @@ import javax.management.NotCompliantMBea
 import javax.management.StandardMBean;
 
 import org.apache.james.vut.api.VirtualUserTable;
+import org.apache.james.vut.api.VirtualUserTableException;
 import org.apache.james.vut.api.VirtualUserTableManagementMBean;
 
-
 /**
  * Management for VirtualUserTables
  * 
@@ -42,101 +40,91 @@ public class VirtualUserTableManagement 
         super(VirtualUserTableManagementMBean.class);
     }
 
+    private VirtualUserTable vut;
 
-    private VirtualUserTable vut;    
-
-    @Resource(name="virtualusertable")
+    @Resource(name = "virtualusertable")
     public void setManageableVirtualUserTable(VirtualUserTable vut) {
         this.vut = vut;
     }
-    
 
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.api.vut.management.VirtualUserTableManagementMBean#addAddressMapping(java.lang.String,
 java.lang.String, java.lang.String)
+     * @see 
org.apache.james.vut.api.VirtualUserTableManagementMBean#addRegexMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean addAddressMapping(String user, String domain, String 
address) {
-        return vut.addAddressMapping(user, domain, address);
+    public void addRegexMapping(String user, String domain, String regex) 
throws VirtualUserTableException {
+        vut.addRegexMapping(user, domain, regex);
     }
 
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.api.vut.management.VirtualUserTableManagementMBean#addErrorMapping(java.lang.String,
 java.lang.String, java.lang.String)
+     * @see 
org.apache.james.vut.api.VirtualUserTableManagementMBean#removeRegexMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean addErrorMapping(String user, String domain, String error) {
-        return vut.addErrorMapping(user, domain, error); 
+    public void removeRegexMapping(String user, String domain, String regex) 
throws VirtualUserTableException {
+        vut.removeRegexMapping(user, domain, regex);
     }
 
-    
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.api.vut.management.VirtualUserTableManagementMBean#addRegexMapping(java.lang.String,
 java.lang.String, java.lang.String)
+     * @see 
org.apache.james.vut.api.VirtualUserTableManagementMBean#addAddressMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean addRegexMapping(String user, String domain, String regex) {
-        return vut.addRegexMapping(user, domain, regex);
+    public void addAddressMapping(String user, String domain, String address) 
throws VirtualUserTableException {
+        vut.addAddressMapping(user, domain, address);
     }
 
-
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.api.vut.management.VirtualUserTableManagementMBean#getUserDomainMappings(java.lang.String,
 java.lang.String)
+     * @see 
org.apache.james.vut.api.VirtualUserTableManagementMBean#removeAddressMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public Collection<String> getUserDomainMappings(String user, String 
domain) {
-        return vut.getUserDomainMappings(user, domain);
+    public void removeAddressMapping(String user, String domain, String 
address) throws VirtualUserTableException {
+        vut.removeAddressMapping(user, domain, address);
     }
 
-
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.api.vut.management.VirtualUserTableManagementMBean#removeErrorMapping(java.lang.String,
 java.lang.String, java.lang.String)
+     * @see 
org.apache.james.vut.api.VirtualUserTableManagementMBean#addErrorMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean removeErrorMapping(String user, String domain, String 
error) {
-        return vut.removeErrorMapping(user, domain, error);
+    public void addErrorMapping(String user, String domain, String error) 
throws VirtualUserTableException {
+        vut.addErrorMapping(user, domain, error);
     }
 
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.api.vut.management.VirtualUserTableManagementMBean#removeRegexMapping(java.lang.String,
 java.lang.String, java.lang.String)
+     * @see 
org.apache.james.vut.api.VirtualUserTableManagementMBean#removeErrorMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean removeRegexMapping(String user, String domain, String 
regex) {
-        return vut.removeRegexMapping(user, domain, regex);
+    public void removeErrorMapping(String user, String domain, String error) 
throws VirtualUserTableException {
+        vut.removeErrorMapping(user, domain, error);
     }
 
-   
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.api.vut.management.VirtualUserTableManagementMBean#addMapping(java.lang.String,
 java.lang.String, java.lang.String)
+     * @see 
org.apache.james.vut.api.VirtualUserTableManagementMBean#getUserDomainMappings(java.lang.String,
 java.lang.String)
      */
-    public boolean addMapping(String user, String domain, String mapping) {
-        return vut.addMapping(user, domain, mapping);
+    public Collection<String> getUserDomainMappings(String user, String 
domain) throws VirtualUserTableException {
+        return vut.getUserDomainMappings(user, domain);
     }
 
-
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.api.vut.management.VirtualUserTableManagementMBean#removeMapping(java.lang.String,
 java.lang.String, java.lang.String)
+     * @see 
org.apache.james.vut.api.VirtualUserTableManagementMBean#addMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean removeMapping(String user, String domain, String mapping) {
-        return vut.removeMapping(user, domain, mapping);
+    public void addMapping(String user, String domain, String mapping) throws 
VirtualUserTableException {
+        vut.addMapping(user, domain, mapping);
     }
 
-
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.api.vut.management.VirtualUserTableManagementMBean#removeAddressMapping(java.lang.String,
 java.lang.String, java.lang.String)
+     * @see 
org.apache.james.vut.api.VirtualUserTableManagementMBean#removeMapping(java.lang.String,
 java.lang.String, java.lang.String)
      */
-    public boolean removeAddressMapping(String user, String domain, String 
address) {
-        return vut.removeAddressMapping(user, domain, address);
+    public void removeMapping(String user, String domain, String mapping) 
throws VirtualUserTableException {
+        vut.removeMapping(user, domain, mapping);
     }
 
-
     /*
      * (non-Javadoc)
-     * @see 
org.apache.james.api.vut.management.VirtualUserTableManagementMBean#getAllMappings()
+     * @see 
org.apache.james.vut.api.VirtualUserTableManagementMBean#getAllMappings()
      */
-    public Map<String, Collection<String>> getAllMappings() {
+    public Map<String, Collection<String>> getAllMappings() throws 
VirtualUserTableException {
         return vut.getAllMappings();
-      
     }
 
 }

Modified: 
james/server/trunk/user-library/src/test/java/org/apache/james/vut/lib/AbstractVirtualUserTableTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/user-library/src/test/java/org/apache/james/vut/lib/AbstractVirtualUserTableTest.java?rev=1054932&r1=1054931&r2=1054932&view=diff
==============================================================================
--- 
james/server/trunk/user-library/src/test/java/org/apache/james/vut/lib/AbstractVirtualUserTableTest.java
 (original)
+++ 
james/server/trunk/user-library/src/test/java/org/apache/james/vut/lib/AbstractVirtualUserTableTest.java
 Tue Jan  4 08:41:58 2011
@@ -27,6 +27,7 @@ import junit.framework.TestCase;
 import org.apache.james.lifecycle.api.LifecycleUtil;
 import org.apache.james.vut.api.VirtualUserTable;
 import org.apache.james.vut.api.VirtualUserTable.ErrorMappingException;
+import org.apache.james.vut.api.VirtualUserTableException;
 import org.apache.james.vut.lib.AbstractVirtualUserTable;
 
 /**
@@ -77,7 +78,7 @@ public abstract class AbstractVirtualUse
     
     }
 
-    public void testStoreAndRetrieveRegexMapping() throws 
org.apache.james.vut.api.VirtualUserTable.ErrorMappingException {
+    public void testStoreAndRetrieveRegexMapping() throws 
org.apache.james.vut.api.VirtualUserTable.ErrorMappingException, 
VirtualUserTableException {
         
         String user = "test";
         String domain = "localhost";
@@ -98,8 +99,8 @@ public abstract class AbstractVirtualUse
             assertTrue("remove virtual mapping", removeMapping(user, domain, 
regex, REGEX_TYPE));
 
             try {
-                assertTrue("Added virtual mapping", 
virtualUserTable.addRegexMapping(user, domain, invalidRegex));
-            } catch (IllegalArgumentException e) {
+                virtualUserTable.addRegexMapping(user, domain, invalidRegex);
+            } catch (VirtualUserTableException e) {
                 catched = true;
             }
             assertTrue("Invalid Mapping throw exception" , catched);
@@ -111,13 +112,14 @@ public abstract class AbstractVirtualUse
             assertNull("No mappings", virtualUserTable.getAllMappings());
 
         } catch (IllegalArgumentException e) {
+            e.printStackTrace();
             fail("Storing failed");
         }
 
     }
 
 
-    public void testStoreAndRetrieveAddressMapping() throws 
ErrorMappingException {
+    public void testStoreAndRetrieveAddressMapping() throws 
ErrorMappingException, VirtualUserTableException {
         
         String user = "test";
         String domain = "localhost";
@@ -161,7 +163,7 @@ public abstract class AbstractVirtualUse
 
     }
 
-    public void testStoreAndRetrieveErrorMapping() throws 
ErrorMappingException {
+    public void testStoreAndRetrieveErrorMapping() throws 
ErrorMappingException, VirtualUserTableException {
         
         String user = "test";
         String domain = "localhost";
@@ -192,7 +194,7 @@ public abstract class AbstractVirtualUse
 
     }
 
-    public void testStoreAndRetrieveWildCardAddressMapping() throws 
ErrorMappingException {
+    public void testStoreAndRetrieveWildCardAddressMapping() throws 
ErrorMappingException, VirtualUserTableException {
 
         String user = "test";
         String user2 = "test2";
@@ -221,7 +223,7 @@ public abstract class AbstractVirtualUse
 
     }
 
-    public void testRecursiveMapping() throws ErrorMappingException {
+    public void testRecursiveMapping() throws ErrorMappingException, 
VirtualUserTableException {
         
         String user1 = "user1";
         String user2 = "user2";
@@ -258,7 +260,7 @@ public abstract class AbstractVirtualUse
     }
 
 
-    public void testAliasDomainMapping() throws ErrorMappingException {
+    public void testAliasDomainMapping() throws ErrorMappingException, 
VirtualUserTableException {
         
         String domain = "realdomain";
         String aliasDomain = "aliasdomain";
@@ -287,11 +289,11 @@ public abstract class AbstractVirtualUse
 
     protected abstract AbstractVirtualUserTable getVirtualUserTable() throws 
Exception;
 
-    protected abstract boolean addMapping(String user , String domain, String 
mapping,int type);
+    protected abstract boolean addMapping(String user , String domain, String 
mapping,int type) throws VirtualUserTableException;
 
-    protected abstract boolean removeMapping(String user, String domain, 
String mapping, int type);
+    protected abstract boolean removeMapping(String user, String domain, 
String mapping, int type) throws VirtualUserTableException;
 
-    private void removeMapping(String user, String domain, String rawMapping) {
+    private void removeMapping(String user, String domain, String rawMapping) 
throws VirtualUserTableException {
         if (rawMapping.startsWith(VirtualUserTable.ERROR_PREFIX)) {
             removeMapping(user, domain, 
rawMapping.substring(VirtualUserTable.ERROR_PREFIX.length()), ERROR_TYPE);
         } else if (rawMapping.startsWith(VirtualUserTable.REGEX_PREFIX)) {

Modified: 
james/server/trunk/user-library/src/test/java/org/apache/james/vut/lib/mock/MockVirtualUserTableManagementImpl.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/user-library/src/test/java/org/apache/james/vut/lib/mock/MockVirtualUserTableManagementImpl.java?rev=1054932&r1=1054931&r2=1054932&view=diff
==============================================================================
--- 
james/server/trunk/user-library/src/test/java/org/apache/james/vut/lib/mock/MockVirtualUserTableManagementImpl.java
 (original)
+++ 
james/server/trunk/user-library/src/test/java/org/apache/james/vut/lib/mock/MockVirtualUserTableManagementImpl.java
 Tue Jan  4 08:41:58 2011
@@ -25,35 +25,36 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.james.vut.api.VirtualUserTable;
+import org.apache.james.vut.api.VirtualUserTableException;
 import org.apache.james.vut.lib.VirtualUserTableUtil;
 
 public class MockVirtualUserTableManagementImpl implements VirtualUserTable {
 
     HashMap store = new HashMap();
     
-    public boolean addAddressMapping(String user, String domain, String 
address) {
-        return addRawMapping(user,domain,address);
+    public void addAddressMapping(String user, String domain, String address) 
throws VirtualUserTableException {
+        addRawMapping(user,domain,address);
     }
 
-    public boolean addErrorMapping(String user, String domain, String error) {
-        return addRawMapping(user,domain,VirtualUserTable.ERROR_PREFIX + 
error);
+    public void addErrorMapping(String user, String domain, String error) 
throws VirtualUserTableException{
+        addRawMapping(user,domain,VirtualUserTable.ERROR_PREFIX + error);
     }
 
-    public boolean addMapping(String user, String domain, String mapping) {
+    public void addMapping(String user, String domain, String mapping) throws 
VirtualUserTableException{
         if (mapping.startsWith(VirtualUserTable.ERROR_PREFIX)){
-            return 
addErrorMapping(user,domain,mapping.substring(VirtualUserTable.ERROR_PREFIX.length()));
+            
addErrorMapping(user,domain,mapping.substring(VirtualUserTable.ERROR_PREFIX.length()));
         } else if (mapping.startsWith(VirtualUserTable.REGEX_PREFIX)) {
-            return 
addErrorMapping(user,domain,mapping.substring(VirtualUserTable.REGEX_PREFIX.length()));
+            
addErrorMapping(user,domain,mapping.substring(VirtualUserTable.REGEX_PREFIX.length()));
         } else {
-            return addAddressMapping(user,domain,mapping);
+            addAddressMapping(user,domain,mapping);
         }
     }
 
-    public boolean addRegexMapping(String user, String domain, String regex) {
-        return addRawMapping(user,domain,VirtualUserTable.REGEX_PREFIX + 
regex);
+    public void addRegexMapping(String user, String domain, String regex) 
throws VirtualUserTableException {
+        addRawMapping(user,domain,VirtualUserTable.REGEX_PREFIX + regex);
     }
 
-    public Map getAllMappings() {
+    public Map getAllMappings() throws VirtualUserTableException {
         if (store.size() > 0) {
             return store;
         } else {
@@ -61,7 +62,7 @@ public class MockVirtualUserTableManagem
         }
     }
 
-    public Collection getUserDomainMappings(String user, String domain) {
+    public Collection getUserDomainMappings(String user, String domain) throws 
VirtualUserTableException{
         String mapping = (String) store.get(user + "@" + domain);
         if (mapping != null) {
             return VirtualUserTableUtil.mappingToCollection(mapping);
@@ -70,33 +71,33 @@ public class MockVirtualUserTableManagem
         }
     }
 
-    public boolean removeAddressMapping(String user, String domain, String 
address) {
-        return removeRawMapping(user,domain,address);
+    public void removeAddressMapping(String user, String domain, String 
address) throws VirtualUserTableException {
+        removeRawMapping(user,domain,address);
     }
 
-    public boolean removeErrorMapping(String user, String domain, String 
error) {
-        return removeRawMapping(user,domain,VirtualUserTable.ERROR_PREFIX + 
error);
+    public void removeErrorMapping(String user, String domain, String error) 
throws VirtualUserTableException {
+        removeRawMapping(user,domain,VirtualUserTable.ERROR_PREFIX + error);
     }
 
-    public boolean removeMapping(String user, String domain, String mapping) {
+    public void removeMapping(String user, String domain, String mapping) 
throws VirtualUserTableException{
         if (mapping.startsWith(VirtualUserTable.ERROR_PREFIX)){
-            return 
removeErrorMapping(user,domain,mapping.substring(VirtualUserTable.ERROR_PREFIX.length()));
+            
removeErrorMapping(user,domain,mapping.substring(VirtualUserTable.ERROR_PREFIX.length()));
         } else if (mapping.startsWith(VirtualUserTable.REGEX_PREFIX)) {
-            return 
removeErrorMapping(user,domain,mapping.substring(VirtualUserTable.REGEX_PREFIX.length()));
+            
removeErrorMapping(user,domain,mapping.substring(VirtualUserTable.REGEX_PREFIX.length()));
         } else {
-            return removeAddressMapping(user,domain,mapping);
+            removeAddressMapping(user,domain,mapping);
         }
     }
 
-    public boolean removeRegexMapping(String user, String domain, String 
regex)  {
-        return removeRawMapping(user,domain,VirtualUserTable.REGEX_PREFIX + 
regex);
+    public void removeRegexMapping(String user, String domain, String regex) 
throws VirtualUserTableException  {
+        removeRawMapping(user,domain,VirtualUserTable.REGEX_PREFIX + regex);
     }
 
-    public Collection<String> getMappings(String user, String domain) throws 
ErrorMappingException {
+    public Collection<String> getMappings(String user, String domain) throws 
ErrorMappingException, VirtualUserTableException{
         throw new UnsupportedOperationException("Not implemented yet");
     }
     
-    private boolean addRawMapping(String user,String domain, String mapping) {
+    private void addRawMapping(String user,String domain, String mapping) 
throws VirtualUserTableException {
         Collection map;
         String key = user + "@" + domain;
         String mappings = (String) store.get(key);
@@ -105,19 +106,17 @@ public class MockVirtualUserTableManagem
             map = VirtualUserTableUtil.mappingToCollection(mappings);
             
             if (map.contains(mapping)) {
-                return false;       
+                throw new VirtualUserTableException("Mapping " + mapping + " 
already exist!");
             } else {
                 map.add(mapping);
                 store.put(key, VirtualUserTableUtil.CollectionToMapping(map));
-                return true;
             }
         } else {
             store.put(key, mapping);
-            return true;
         }
     }
     
-    private boolean removeRawMapping(String user,String domain, String 
mapping) {
+    private void removeRawMapping(String user,String domain, String mapping) 
throws VirtualUserTableException {
         Collection map;
         String key = user + "@" + domain;
         String mappings = (String) store.get(key);
@@ -125,18 +124,17 @@ public class MockVirtualUserTableManagem
             map = VirtualUserTableUtil.mappingToCollection(mappings);
             if (map.remove(mapping)) {
                 store.put(key, VirtualUserTableUtil.CollectionToMapping(map));
-                return true;
             }
         }
-        return false;
+        throw new VirtualUserTableException("Mapping does not exist");
     }
 
-    public boolean addAliasDomainMapping(String aliasDomain, String 
realDomain)  {
-    return addRawMapping(null,aliasDomain,VirtualUserTable.ALIASDOMAIN_PREFIX 
+ realDomain);
+    public void addAliasDomainMapping(String aliasDomain, String realDomain) 
throws VirtualUserTableException  {
+        addRawMapping(null,aliasDomain,VirtualUserTable.ALIASDOMAIN_PREFIX + 
realDomain);
     }
 
-    public boolean removeAliasDomainMapping(String aliasDomain, String 
realDomain) {
-        return 
removeRawMapping(null,aliasDomain,VirtualUserTable.ALIASDOMAIN_PREFIX + 
realDomain);
+    public void removeAliasDomainMapping(String aliasDomain, String 
realDomain) throws VirtualUserTableException {
+        removeRawMapping(null,aliasDomain,VirtualUserTable.ALIASDOMAIN_PREFIX 
+ realDomain);
     }
 
 }



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

Reply via email to