1 /*** 2 * License Agreement. 3 * 4 * JSPA (POJO-SP) 5 * 6 * Copyright (C) 2009 HRX Pty Ltd 7 * 8 * This file is part of JSPA. 9 * 10 * JSPA is free software: you can redistribute it and/or modify it under the 11 * terms of the GNU Lesser General Public License version 3 as published by the 12 * Free Software Foundation. 13 * 14 * JSPA is distributed in the hope that it will be useful, but WITHOUT ANY 15 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 16 * A PARTICULAR PURPOSE. See the Lesser General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public License 19 * along with JSPA. If not, see <http://www.gnu.org/licenses/>. 20 */ 21 package com.hrx.rasp.util.dao.ejb; 22 23 import javax.naming.InitialContext; 24 import javax.naming.NamingException; 25 import javax.sql.DataSource; 26 27 import com.hrx.rasp.util.dao.DAOManager; 28 import com.hrx.rasp.util.dao.DAOManagerImpl; 29 import com.hrx.rasp.util.dao.jdbc.WrapperDataSource; 30 31 /*** 32 * <p> 33 * The Factory is responsible to provide new instances of DAOManager, There is 34 * one DAOManagerFactory instance per server. 35 * <p> 36 * 37 * 38 * @author dan.stoica <dan.stoica@acslink.net.au> 39 * 40 */ 41 public class DAOManagerFactory 42 { 43 public final static String DEFAULT_DATA_SOURCE_NAME = "jdbc/pojo-sp"; 44 45 /*** 46 * It does a JNDI lookup for DataSource than initialise and return a new 47 * instance of the DAOManager 48 * 49 * @param dataSourceMappedName 50 * @return 51 * @throws NamingException 52 */ 53 public static final DAOManager create(String dataSourceMappedName) throws NamingException 54 { 55 DataSource ds = (DataSource) InitialContext.doLookup("java:comp/env/" + dataSourceMappedName); 56 if (ds == null) 57 { 58 throw new NamingException("The datasource can not be null"); 59 } 60 return create(dataSourceMappedName, ds); 61 } 62 63 /*** 64 * Initialise and return a new DAOManager Instance using the specified 65 * DataSource 66 * 67 * @param ds 68 * @return 69 * @throws NamingException 70 */ 71 public static final DAOManager create(String name, DataSource ds) throws NamingException 72 { 73 DataSource daoDS = new WrapperDataSource(name, ds); 74 DAOManager dm = new DAOManagerImpl(daoDS); 75 return dm; 76 } 77 78 /*** 79 * Initialise and return a new DAOManager Instance using the specified 80 * DataSource 81 * 82 * @param ds 83 * @return 84 * @throws NamingException 85 */ 86 public static final DAOManager create(DataSource ds) throws NamingException 87 { 88 return create(DEFAULT_DATA_SOURCE_NAME, ds); 89 } 90 }