Author: rdonkin Date: Wed Dec 17 14:46:49 2008 New Revision: 727563 URL: http://svn.apache.org/viewvc?rev=727563&view=rev Log: Switch to JSR250 since this seems to work better than Phoenix.
Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/VirtualUserTable.java Modified: james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/VirtualUserTable.java URL: http://svn.apache.org/viewvc/james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/VirtualUserTable.java?rev=727563&r1=727562&r2=727563&view=diff ============================================================================== --- james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/VirtualUserTable.java (original) +++ james/server/trunk/spoolmanager-function/src/main/java/org/apache/james/transport/mailets/VirtualUserTable.java Wed Dec 17 14:46:49 2008 @@ -22,15 +22,14 @@ import java.util.ArrayList; import java.util.Collection; +import javax.annotation.Resource; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; -import org.apache.avalon.framework.service.ServiceException; -import org.apache.avalon.framework.service.ServiceManager; -import org.apache.james.Constants; import org.apache.james.api.vut.ErrorMappingException; import org.apache.james.api.vut.VirtualUserTableStore; import org.apache.mailet.MailAddress; +import org.apache.mailet.MailetException; /** * Mailet which should get used when using VirtualUserTable-Store to implementations @@ -45,33 +44,69 @@ public class VirtualUserTable extends AbstractVirtualUserTableMailet { private org.apache.james.api.vut.VirtualUserTable vut; - /* - * (non-Javadoc) + private VirtualUserTableStore vutStore; + + + /** + * Gets the virtual user table. + * @return the vut + */ + public final org.apache.james.api.vut.VirtualUserTable getVut() { + return vut; + } + + /** + * Sets the virtual user table. + * @param vut the vut to set + */ + @Resource(name=org.apache.james.api.vut.VirtualUserTable.ROLE) + public final void setVut(org.apache.james.api.vut.VirtualUserTable vut) { + this.vut = vut; + } + + /** + * Gets the virtual user table store. + * @return the vutStore, possibly null + */ + public final VirtualUserTableStore getVutStore() { + return vutStore; + } + + /** + * Sets the virtual table store. + * @param vutStore the vutStore to set, possibly null + */ + @Resource(name=VirtualUserTableStore.ROLE) + public final void setVutStore(VirtualUserTableStore vutStore) { + this.vutStore = vutStore; + } + + /** * @see org.apache.mailet.base.GenericMailet#init() */ public void init() throws MessagingException { super.init(); - ServiceManager compMgr = (ServiceManager) getMailetContext().getAttribute(Constants.AVALON_COMPONENT_MANAGER); - - try { - String vutName = getInitParameter("virtualusertable"); - if (vutName == null || vutName.length() == 0) { - try { - vut = (org.apache.james.api.vut.VirtualUserTable) compMgr.lookup(org.apache.james.api.vut.VirtualUserTable.ROLE); - } catch (ServiceException e) { - log("Failed to retrieve VirtualUserTable component:" + e.getMessage()); - } - } else { - vut = ((VirtualUserTableStore) compMgr.lookup(VirtualUserTableStore.ROLE)).getTable(vutName); + + if (vut == null && vutStore == null) { + throw new MailetException("Not initialised. Please ensure that the mailet container supports either" + + " setter or constructor injection. "); + } + + String vutName = getInitParameter("virtualusertable"); + if (vutName == null || vutName.length() == 0) { + if (vut == null) { + throw new MailetException("When 'virtualusertable' is unset, a virtual user table must be " + + "provided by the container."); } - - } catch (ServiceException cnfe) { - log("Failed to retrieve VirtualUserTableStore component:" + cnfe.getMessage()); + } else if (vutStore == null) { + throw new MailetException("When 'virtualusertable' is set, a virtual user table store must be " + + "provided by the container."); + } else { + vut = vutStore.getTable(vutName); } } - /* - * (non-Javadoc) + /** * @see org.apache.james.transport.mailets.AbstractVirtualUserTable#processMail(org.apache.mailet.MailAddress, org.apache.mailet.MailAddress, javax.mail.internet.MimeMessage) */ public Collection processMail(MailAddress sender, MailAddress recipient, MimeMessage message) throws MessagingException { @@ -95,8 +130,7 @@ return rcpts; } - /* - * (non-Javadoc) + /** * @see org.apache.mailet.base.GenericMailet#getMailetInfo() */ public String getMailetInfo() { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org