1 22 23 package org.continuent.sequoia.driver; 24 25 import java.util.Hashtable ; 26 27 import javax.naming.Context ; 28 import javax.naming.Name ; 29 import javax.naming.Reference ; 30 import javax.naming.spi.ObjectFactory ; 31 32 40 public class DataSourceFactory implements ObjectFactory 41 { 42 43 protected final String dataSourceClassName = "org.continuent.sequoia.driver.DataSource"; 44 protected final String poolDataSourceName = "org.continuent.sequoia.driver.PoolDataSource"; 45 protected final String xaDataSourceName = "org.continuent.sequoia.driver.XADataSource"; 46 47 61 public Object getObjectInstance(Object objRef, Name name, Context nameCtx, 62 Hashtable env) throws Exception 63 { 64 Reference ref = (Reference ) objRef; 66 String className = ref.getClassName(); 67 if ((className == null) 68 || !(className.equals(dataSourceClassName) 69 | className.equals(poolDataSourceName) | className 70 .equals(xaDataSourceName))) 71 { 72 return null; 74 } 75 DataSource ds = null; 76 try 77 { 78 ds = (DataSource) Class.forName(className).newInstance(); 79 } 80 catch (Exception e) 81 { 82 throw new RuntimeException ("Error when creating Sequoia " + className 83 + " instance: " + e); 84 } 85 86 ds.setUrl((String ) ref.get(DataSource.URL_PROPERTY).getContent()); 87 ds.setUser((String ) ref.get(DataSource.USER_PROPERTY).getContent()); 88 ds.setPassword((String ) ref.get(DataSource.PASSWORD_PROPERTY).getContent()); 89 return ds; 90 } 91 } 92 | Popular Tags |