1 5 package org.h2.jdbcx; 6 7 import java.util.Hashtable ; 8 9 import javax.naming.Context ; 10 import javax.naming.Name ; 11 import javax.naming.Reference ; 12 import javax.naming.spi.ObjectFactory ; 13 14 import org.h2.engine.Constants; 15 import org.h2.message.Trace; 16 import org.h2.message.TraceSystem; 17 18 public class JdbcDataSourceFactory implements ObjectFactory { 19 20 private static TraceSystem traceSystem; 21 private Trace trace; 22 23 static { 24 traceSystem = new TraceSystem(Constants.CLIENT_TRACE_DIRECTORY + "h2datasource" + Constants.SUFFIX_TRACE_FILE); 25 traceSystem.setLevelFile(TraceSystem.DEBUG); 26 } 27 28 public JdbcDataSourceFactory() { 29 trace = traceSystem.getTrace("JDBCX"); 30 } 31 32 public synchronized Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable environment) throws Exception { 33 trace.debug("getObjectInstance obj=" + obj + " name=" + name + " nameCtx=" + nameCtx + " environment=" + environment); 34 Reference ref = (Reference ) obj; 35 if (ref.getClassName().equals(JdbcDataSource.class.getName())) { 36 JdbcDataSource dataSource = new JdbcDataSource(); 37 dataSource.setURL((String ) ref.get("url").getContent()); 38 dataSource.setUser((String ) ref.get("user").getContent()); 39 dataSource.setPassword((String ) ref.get("password").getContent()); 40 return dataSource; 41 } 42 return null; 43 } 44 45 TraceSystem getTraceSystem() { 46 return traceSystem; 47 } 48 49 Trace getTrace() { 50 return trace; 51 } 52 53 } 54 | Popular Tags |