1 package za.org.coefficient.modules.mailforum; 2 3 import net.sf.hibernate.Hibernate; 4 import net.sf.hibernate.HibernateException; 5 import net.sf.hibernate.util.HibernateUtil; 6 7 import org.dithaka.james.ForumMailet; 8 import org.dithaka.metadata.Resource; 9 import org.dithaka.metadata.ResourceFactory; 10 11 import org.apache.mailet.MailAddress; 12 13 import java.util.List ; 14 15 import za.org.coefficient.authentication.CoefficientUser; 16 import za.org.coefficient.authentication.Role; 17 18 public class CoefficientMailet extends ForumMailet 19 { 20 static 21 { 22 try 23 { 24 Class [] classes = new Class [] 25 { 26 Role.class, 27 CoefficientUser.class 28 }; 29 HibernateUtil.configureHibernateForClasses(classes); 30 ResourceFactory.registerClassExpert(new CoefficientUserExpert(), CoefficientUser.class); 31 } 32 catch (HibernateException ex) { ex.printStackTrace(); } 33 } 34 35 public String getRecipientEmailAddress(Resource rRecipient) 36 { 37 try { 38 CoefficientUser user = (CoefficientUser)rRecipient.getObject(); 39 return user.getEmail(); 40 } 41 catch (Exception ex) { 42 ex.printStackTrace(); 43 return null; } 45 } 46 47 public Resource getUserResource(MailAddress address) throws Exception 48 { 49 51 String sqlQuery = "FROM " + CoefficientUser.class.getName() + " AS coUser WHERE coUser.aliasEmail=?"; 52 List users = HibernateUtil.find(sqlQuery, address.getUser() + "@" + address.getHost(), Hibernate.STRING); 53 if (users.size() == 0) 54 return null; 55 CoefficientUser user = (CoefficientUser)users.get(0); 56 return ResourceFactory.ensureResourceExistsFor(user); 58 } 59 } 60 | Popular Tags |