Project

General

Profile

« Previous | Next » 

Revision 50751

experimenting with BasicDatasource(s) from commons-dbcp2

View differences:

modules/cnr-enabling-database-service/trunk/src/main/java/eu/dnetlib/enabling/database/utils/DatabaseUtils.java
23 23
import eu.dnetlib.enabling.database.rmi.DatabaseException;
24 24
import eu.dnetlib.miscutils.datetime.DateUtils;
25 25
import eu.dnetlib.miscutils.functional.string.Sanitizer;
26
import org.apache.commons.dbcp2.BasicDataSource;
26 27
import org.apache.commons.lang.BooleanUtils;
27 28
import org.apache.commons.logging.Log;
28 29
import org.apache.commons.logging.LogFactory;
......
160 161
					con.setAutoCommit(false);
161 162
					rs.setFetchSize(getFetchSize());
162 163
					boolean timeout = false;
164
					log.info(String.format("starting to populate queue T-id %s", Thread.currentThread().getId()));
163 165
					while (rs.next()) {
164 166
						ResultSetMetaData md = rs.getMetaData();
165 167
						Map<String, Object> row = new HashMap<>();
......
171 173
							break;
172 174
						}
173 175
					}
174

  
175 176
					if (timeout) {
176 177
						throw new RuntimeException(String.format("queue full, consumer did not consume for %s seconds", BLOCKING_QUEUE_TIMEOUT));
177 178
					}
......
187 188
			return (T) queue;
188 189
		}
189 190

  
190
		final JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(dbName);
191
		if (clazz == Integer.class) return (T) jdbcTemplate.queryForObject(query, Integer.class);
192
		else if (clazz == List.class) return (T) jdbcTemplate.queryForList(query);
193
		else if (clazz == Map.class) return (T) jdbcTemplate.queryForMap(query);
194
		else if (clazz == SqlRowSet.class) return (T) jdbcTemplate.queryForRowSet(query);
195
		else {
196
			jdbcTemplate.update(query);
197
			return null;
191
		try(BasicDataSource ds = (BasicDataSource) dataSourceFactory.createDataSource(dbName)) {
192
			final JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(ds);
193
			if (clazz == Integer.class) return (T) jdbcTemplate.queryForObject(query, Integer.class);
194
			else if (clazz == List.class) return (T) jdbcTemplate.queryForList(query);
195
			else if (clazz == Map.class) return (T) jdbcTemplate.queryForMap(query);
196
			else if (clazz == SqlRowSet.class) return (T) jdbcTemplate.queryForRowSet(query);
197
			else {
198
				jdbcTemplate.update(query);
199
				return null;
200
			}
201
		} catch (SQLException e) {
202
			throw new DatabaseException(e);
198 203
		}
199 204
	}
200 205

  
modules/cnr-enabling-database-service/trunk/src/main/java/eu/dnetlib/enabling/database/DataSourceFactoryImpl.java
2 2

  
3 3
import javax.sql.DataSource;
4 4

  
5
import org.apache.commons.dbcp2.BasicDataSource;
5 6
import org.springframework.beans.factory.annotation.Required;
6
import org.springframework.jdbc.datasource.DriverManagerDataSource;
7 7

  
8 8
public class DataSourceFactoryImpl implements DataSourceFactory {
9 9

  
......
14 14

  
15 15
	@Override
16 16
	public DataSource createDataSource(String db) {
17
		DriverManagerDataSource ds = new DriverManagerDataSource();
18
		//BasicDataSource ds = new BasicDataSource();
17
		// DriverManagerDataSource ds = new DriverManagerDataSource();
18
		BasicDataSource ds = new BasicDataSource();
19 19
		ds.setDriverClassName(driverClassName);
20 20
		ds.setUrl(baseUrl + "/" + db);
21 21
		ds.setUsername(username);
modules/cnr-enabling-database-service/trunk/pom.xml
39 39
			<artifactId>postgresql</artifactId>
40 40
			<version>${postgres.jdbc.version}</version>
41 41
		</dependency>
42
<!--		<dependency>
42
		<dependency>
43 43
			<groupId>org.apache.commons</groupId>
44 44
			<artifactId>commons-dbcp2</artifactId>
45 45
			<version>2.2.0</version>
46
		</dependency>-->
46
		</dependency>
47 47
		<dependency>
48 48
			<groupId>org.hibernate</groupId>
49 49
			<artifactId>hibernate-core</artifactId>

Also available in: Unified diff