KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > jdbc > xa > XADataSourceObjectFactory


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.jdbc.xa;
8
9 import java.util.Hashtable JavaDoc;
10 import javax.naming.Context JavaDoc;
11 import javax.naming.Name JavaDoc;
12 import javax.naming.Reference JavaDoc;
13 import javax.naming.spi.ObjectFactory JavaDoc;
14
15 /**
16  * @author <a HREF="mailto:young_yy@hotmail.com">Young Yang</a>
17  */

18
19 public class XADataSourceObjectFactory implements ObjectFactory JavaDoc {
20
21     public synchronized Object JavaDoc getObjectInstance(Object JavaDoc obj, Name JavaDoc name, Context JavaDoc nameCtx, Hashtable JavaDoc environment) throws Exception JavaDoc {
22         Reference JavaDoc ref = (Reference JavaDoc) obj;
23         if(ref.getClassName().equals(TxDataSource.class.getName())) {
24             String JavaDoc dsName = (String JavaDoc) ref.get("dsName").getContent();
25             String JavaDoc dbUrl = (String JavaDoc) ref.get("dbURL").getContent();
26             String JavaDoc user = (String JavaDoc) ref.get("user").getContent();
27             String JavaDoc password = (String JavaDoc) ref.get("password").getContent();
28
29             if((dsName != null) && XADataSourceManager.existsDataSource(dsName)) {
30                 return XADataSourceManager.getDataSource(dsName);
31             }
32             else {
33                 TxDataSource txds = XADataSourceManager.newDataSource(dbUrl, user, password);
34                 txds.init();
35                 if(dsName != null && !dsName.equals("")) {
36                     XADataSourceManager.registerDataSource(dsName, txds);
37                 }
38                 return txds;
39             }
40         }
41         else {
42             return null;
43         }
44     }
45
46     public static void main(String JavaDoc[] args) {
47
48     }
49 }
Popular Tags