Package org.jboss.seam.mail

Source Code of org.jboss.seam.mail.Meldware

package org.jboss.seam.mail;

import static org.jboss.seam.ScopeType.APPLICATION;
import static org.jboss.seam.annotations.Install.BUILT_IN;

import java.util.List;

import org.buni.meldware.mail.management.AdminTool;
import org.buni.meldware.mail.util.MMJMXUtil;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Install;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.Startup;
import org.jboss.seam.annotations.intercept.BypassInterceptors;
import org.jboss.seam.log.Log;
import org.jboss.seam.log.Logging;

/**
* Creates meldware users, mailboxes and aliases
*
*/
@Name("org.jboss.seam.mail.meldware")
@Startup
@Scope(APPLICATION)
@BypassInterceptors
@Install(precedence=BUILT_IN, classDependencies="org.buni.meldware.mail.mailbox.Mailbox", value=false)
public class Meldware
{
  
   private List<MeldwareUser> users;
  
   private List<String> domains;
  
   private Log log = Logging.getLog(Meldware.class);
  
   @Create
   public void create()
   {
      // TODO Support domain creation as well.  Currently they are written out to file.
     
         log.info("Creating users and mailboxes");
         //MailboxService ms = MMJMXUtil.getMBean("meldware.mail:type=MailboxManager,name=MailboxManager", MailboxService.class);
         AdminTool at = MMJMXUtil.getMBean("meldware.mail:type=MailServices,name=AdminTool", AdminTool.class);
        
         for (MeldwareUser meldwareUser : getUsers())
         {
            at.createUser(meldwareUser.getUsername(), meldwareUser.getPassword(), meldwareUser.getRoles());
            // TODO This won't work on AS 4.2
            /*Mailbox mbox = ms.createMailbox(meldwareUser.getUsername());
            for (String alias : meldwareUser.getAliases())
            {
               ms.createAlias(mbox.getId(), alias);
            }*/
            log.info("Created #0 #1 #2", meldwareUser.isAdministrator() ? "administrator" : "user", meldwareUser.getUsername(), meldwareUser.getAliases() == null || meldwareUser.getAliases().size() == 0 ? "" : "with aliases " + meldwareUser.getAliases());
         }
      }
  
   public List<MeldwareUser> getUsers()
   {
      return users;
   }
  
   public void setUsers(List<MeldwareUser> users)
   {
      this.users = users;
   }
  
   public List<String> getDomains()
   {
      return domains;
   }
  
   public void setDomains(List<String> domains)
   {
      this.domains = domains;
   }

}
TOP

Related Classes of org.jboss.seam.mail.Meldware

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.