package org.teiid.runtime.embedded;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.resource.ResourceException;
import javax.sql.DataSource;
import org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory;
import org.jboss.jca.core.api.connectionmanager.pool.PoolConfiguration;
import org.jboss.jca.core.connectionmanager.notx.NoTxConnectionManagerImpl;
import org.jboss.jca.core.connectionmanager.pool.strategy.OnePool;
public class IronjacmarDataSource {
public static void main(String[] args) throws ResourceException, SQLException {
String driverClass = "org.h2.Driver";
String connURL = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1";
String user = "sa";
String password = "sa";
DataSource ds = newDataSource(driverClass, connURL, user, password);
System.out.println(ds);
Connection conn = ds.getConnection();
System.out.println(conn.getAutoCommit());
System.out.println(conn.getClass());
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT CURRENT_DATE()");
while(rs.next()) {
System.out.println(rs.getObject(1));
}
}
public static DataSource newDataSource(String driverClass, String connURL, String user, String password) throws ResourceException{
LocalManagedConnectionFactory mcf = new LocalManagedConnectionFactory();
mcf.setDriverClass(driverClass);
mcf.setConnectionURL(connURL);
mcf.setUserName(user);
mcf.setPassword(password);
NoTxConnectionManagerImpl cm = new NoTxConnectionManagerImpl();
OnePool pool = new OnePool(mcf, new PoolConfiguration(), false);
pool.setConnectionListenerFactory(cm);
cm.setPool(pool);
return (DataSource) mcf.createConnectionFactory(cm);
}
}