[jboss-cvs] jboss-seam/src/main/org/jboss/seam/mail ...

Peter Muir peter at bleepbleep.org.uk
Mon Apr 23 18:26:58 EDT 2007


  User: pmuir   
  Date: 07/04/23 18:26:58

  Modified:    src/main/org/jboss/seam/mail    MailSession.java
  Added:       src/main/org/jboss/seam/mail    Meldware.java
                        MeldwareUser.java
  Log:
  JBSEAM-1170, overhaul Meldware
  
  Revision  Changes    Path
  1.9       +2 -1      jboss-seam/src/main/org/jboss/seam/mail/MailSession.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: MailSession.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/mail/MailSession.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -b -r1.8 -r1.9
  --- MailSession.java	26 Mar 2007 18:27:23 -0000	1.8
  +++ MailSession.java	23 Apr 2007 22:26:58 -0000	1.9
  @@ -1,6 +1,7 @@
   package org.jboss.seam.mail;
   
   import static org.jboss.seam.ScopeType.APPLICATION;
  +import static org.jboss.seam.InterceptionType.NEVER;
   import static org.jboss.seam.annotations.Install.BUILT_IN;
   
   import java.io.Serializable;
  @@ -30,7 +31,7 @@
   @Name("org.jboss.seam.mail.mailSession")
   @Install(precedence=BUILT_IN, classDependencies="javax.mail.Session")
   @Scope(APPLICATION)
  - at Intercept(InterceptionType.NEVER)
  + at Intercept(NEVER)
   public class MailSession extends AbstractMutable implements Serializable
   {
      private static final LogProvider log = Logging.getLogProvider(MailSession.class);
  
  
  
  1.1      date: 2007/04/23 22:26:58;  author: pmuir;  state: Exp;jboss-seam/src/main/org/jboss/seam/mail/Meldware.java
  
  Index: Meldware.java
  ===================================================================
  package org.jboss.seam.mail;
  
  import static org.jboss.seam.InterceptionType.NEVER;
  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.Intercept;
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.annotations.Scope;
  import org.jboss.seam.annotations.Startup;
  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)
  @Intercept(NEVER)
  @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;
     }
  
  }
  
  
  
  1.1      date: 2007/04/23 22:26:58;  author: pmuir;  state: Exp;jboss-seam/src/main/org/jboss/seam/mail/MeldwareUser.java
  
  Index: MeldwareUser.java
  ===================================================================
  package org.jboss.seam.mail;
  
  import static org.jboss.seam.InterceptionType.NEVER;
  import static org.jboss.seam.ScopeType.APPLICATION;
  import static org.jboss.seam.annotations.Install.BUILT_IN;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import org.jboss.seam.annotations.Install;
  import org.jboss.seam.annotations.Intercept;
  import org.jboss.seam.annotations.Name;
  import org.jboss.seam.annotations.Scope;
  
  @Name("org.jboss.seam.mail.meldwareUser")
  @Scope(APPLICATION)
  @Intercept(NEVER)
  @Install(precedence=BUILT_IN, dependencies="org.jboss.seam.mail.meldware", value=false)
  public class MeldwareUser
  {
     
     private String username;
     private String password;
     
     private boolean administrator;
     
     private List<String> aliases;
  
     public boolean isAdministrator()
     {
        return administrator;
     }
  
     public void setAdministrator(boolean admin)
     {
        this.administrator = admin;
     }
  
     public List<String> getAliases()
     {
        return aliases;
     }
  
     public void setAliases(List<String> aliases)
     {
        this.aliases = aliases;
     }
  
     public String getPassword()
     {
        return password;
     }
  
     public void setPassword(String password)
     {
        this.password = password;
     }
  
     public String getUsername()
     {
        return username;
     }
  
     public void setUsername(String username)
     {
        this.username = username;
     }
     
     public List<String> getRoles()
     {
        return getRoles(this);
     }
     
     private static List<String> getRoles(MeldwareUser user)
     {
        List<String> roles = new ArrayList<String>();
        roles.add("calendaruser");
        if (user.isAdministrator())
        {
           roles.add("adminuser");
        }
        return roles;
     }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list