Compare commits

...

1 Commits

Author SHA1 Message Date
wang wei
8bc6d7d425 TDI-36765: Datasource in DI jobs is always a singleton and violates the
DataSource approach
https://jira.talendforge.org/browse/TDI-36765
2016-08-01 13:40:38 +08:00

View File

@@ -1,31 +1,34 @@
package routines.system;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.Set;
public class TalendDataSource {
private final javax.sql.DataSource ds;
private java.sql.Connection conn;
private final javax.sql.DataSource ds;
public TalendDataSource(javax.sql.DataSource ds) {
this.ds = ds;
}
private Set<Connection> conns = new HashSet<>();
public java.sql.Connection getConnection() throws SQLException {
if (null == conn) {
conn = ds.getConnection();
}
return conn;
}
public TalendDataSource(javax.sql.DataSource ds) {
this.ds = ds;
}
public javax.sql.DataSource getRawDataSource() {
return ds;
}
public java.sql.Connection getConnection() throws SQLException {
Connection conn = ds.getConnection();
conns.add(conn);
return conn;
}
public void close() throws SQLException {
if (null != conn) {
conn.close();
conn = null;
}
}
public javax.sql.DataSource getRawDataSource() {
return ds;
}
public void close() throws SQLException {
for (Connection conn : conns) {
conn.close();
}
conns.clear();
}
}