package dk.hansen; import javax.naming.*; import javax.sql.DataSource; /* * This is a factory for the BookManager DAO. * It uses Tomcat's JNDI DataSource feature */ public class TomcatBookManagerFactory implements DatabaseBookManagerFactoryIF { private DataSource dataSource; public TomcatBookManagerFactory() throws DAOException { DataSource ds = null; try { Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); ds = (DataSource) envCtx.lookup("jdbc/dao"); } catch (NamingException e) { throw new DAOException("Tomcat JNDI setup failed", e); } this.dataSource = ds; } public DataSource getDataSource() { return dataSource; } public BookManagerIF createBookManager() { DatabaseBookManager manager = new DatabaseBookManager(); manager.setDataSource(dataSource); return manager; } }