1 6 7 package org.jfox.mail; 8 9 import java.util.Hashtable ; 10 import java.util.Map ; 11 import java.util.HashMap ; 12 import javax.naming.Name ; 13 import javax.naming.Context ; 14 import javax.naming.spi.ObjectFactory ; 15 import javax.mail.Session ; 16 17 20 21 public class MailSessionObjectFactory implements ObjectFactory { 22 23 26 private static Map sessions = new HashMap (); 27 28 public static void addMailSession(String name, Session session) { 29 sessions.put(getAbsoluteName(name), session); 30 } 31 32 public static void removeMailSession(String name) { 33 sessions.remove(getAbsoluteName(name)); 34 } 35 36 public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable environment) throws Exception { 37 String _name = getAbsoluteName(name.toString()); 38 if(!sessions.containsKey(_name)) { 39 throw new Exception ("mail service with jndi name " + name.toString() + " not started."); 40 } 41 return sessions.get(_name); 42 } 43 44 private static String getAbsoluteName(String name) { 45 if(!name.startsWith("/")) { 46 return "/" + name; 47 } 48 return name; 49 } 50 51 public static void main(String [] args) { 52 53 } 54 } 55 56 | Popular Tags |