/**
*
*/
package org.apache.ode.scheduler.simple.jdbc;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.sql.DataSource;
import javax.transaction.TransactionManager;
import org.apache.ode.dao.scheduler.SchedulerDAOConnection;
import org.apache.ode.dao.scheduler.SchedulerDAOConnectionFactory;
/**
* @author jeffyu
*
*/
public class SchedulerDAOConnectionFactoryImpl implements SchedulerDAOConnectionFactory {
static ThreadLocal<SchedulerDAOConnection> _connections = new ThreadLocal<SchedulerDAOConnection>();
DataSource _ds;
TransactionManager _txm;
AtomicBoolean _active = new AtomicBoolean(true);
public SchedulerDAOConnection getConnection() {
if (_connections.get()==null || _connections.get().isClosed() ){
_connections.set(new SchedulerDAOConnectionImpl(_active,_ds,_txm));
}
return _connections.get();
}
public void init(Properties p, TransactionManager txm, Object env) {
_ds = (DataSource) env;
_txm = txm;
}
public void shutdown() {
_active.set(false);
}
}