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