KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > mail > MailSessionObjectFactory


1 /* JFox, the OpenSource J2EE Application Server
2  *
3  * Distributable under GNU LGPL license by gun.org
4  * more details please visit http://www.huihoo.org/jfox
5  */

6
7 package org.jfox.mail;
8
9 import java.util.Hashtable JavaDoc;
10 import java.util.Map JavaDoc;
11 import java.util.HashMap JavaDoc;
12 import javax.naming.Name JavaDoc;
13 import javax.naming.Context JavaDoc;
14 import javax.naming.spi.ObjectFactory JavaDoc;
15 import javax.mail.Session JavaDoc;
16
17 /**
18  * @author <a HREF="mailto:young_yy@hotmail.com">Young Yang</a>
19  */

20
21 public class MailSessionObjectFactory implements ObjectFactory JavaDoc {
22
23     /**
24      * jndi-name => session
25      */

26     private static Map JavaDoc sessions = new HashMap JavaDoc();
27
28     public static void addMailSession(String JavaDoc name, Session JavaDoc session) {
29         sessions.put(getAbsoluteName(name), session);
30     }
31
32     public static void removeMailSession(String JavaDoc name) {
33         sessions.remove(getAbsoluteName(name));
34     }
35
36     public Object JavaDoc getObjectInstance(Object JavaDoc obj, Name JavaDoc name, Context JavaDoc nameCtx, Hashtable JavaDoc environment) throws Exception JavaDoc {
37         String JavaDoc _name = getAbsoluteName(name.toString());
38         if(!sessions.containsKey(_name)) {
39             throw new Exception JavaDoc("mail service with jndi name " + name.toString() + " not started.");
40         }
41         return sessions.get(_name);
42     }
43
44     private static String JavaDoc getAbsoluteName(String JavaDoc name) {
45         if(!name.startsWith("/")) {
46             return "/" + name;
47         }
48         return name;
49     }
50
51     public static void main(String JavaDoc[] args) {
52
53     }
54 }
55
56
Popular Tags