1 22 package org.enhydra.jdbc.instantdb; 23 24 import java.sql.SQLException ; 25 import java.util.Hashtable ; 26 27 import org.enhydra.instantdb.jdbc.ConnectionExtensions; 28 import org.enhydra.jdbc.standard.StandardXADataSource; 29 30 import javax.sql.XADataSource ; 31 import javax.sql.XAConnection ; 32 import javax.naming.Context ; 33 import javax.naming.Name ; 34 import javax.naming.Reference ; 35 36 37 40 public class IdbXADataSource extends StandardXADataSource implements XADataSource { 41 42 String databaseId; 44 47 public IdbXADataSource () { 48 super(); 50 } 51 52 55 public XAConnection getXAConnection () throws SQLException { 56 return getXAConnection (user, password); 57 } 58 59 62 public XAConnection getXAConnection (String user, String password) throws SQLException { 63 IdbXAConnection xac = new IdbXAConnection (this, user, password); 64 xac.setTransactionManager(transactionManager); 65 if (databaseId == null) { databaseId = ((ConnectionExtensions)xac.con).getDatabaseId(); } connectionCount++; 69 return xac; 70 } 71 72 75 public Object getObjectInstance(Object refObj, Name name, Context nameCtx, Hashtable env) throws Exception { 76 Reference ref = (Reference )refObj; 77 if (ref.getClassName().equals(getClass().getName())) { 78 IdbXADataSource dataSource = new IdbXADataSource (); 79 dataSource.setDriverName((String )ref.get("driverName").getContent()); 80 dataSource.setUrl((String )ref.get("url").getContent()); 81 return dataSource; 82 } else { 83 return null; 84 } 85 } 86 87 } 88 | Popular Tags |