Project

General

Profile

« Previous | Next » 

Revision 50749

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;
27 26
import org.apache.commons.lang.BooleanUtils;
28 27
import org.apache.commons.logging.Log;
29 28
import org.apache.commons.logging.LogFactory;
......
160 159
						final ResultSet rs = stm.executeQuery()) {
161 160
					con.setAutoCommit(false);
162 161
					rs.setFetchSize(getFetchSize());
162
					boolean timeout = false;
163 163
					while (rs.next()) {
164 164
						ResultSetMetaData md = rs.getMetaData();
165 165
						Map<String, Object> row = new HashMap<>();
......
167 167
							row.put(md.getColumnName(i), rs.getObject(i));
168 168
						}
169 169
						if (!enqueue(queue, row)) {
170
							timeout = true;
170 171
							break;
171 172
						}
172 173
					}
174

  
175
					if (timeout) {
176
						throw new RuntimeException(String.format("queue full, consumer did not consume for %s seconds", BLOCKING_QUEUE_TIMEOUT));
177
					}
173 178
					// An empty Map indicates the end of the resultset
174 179
					enqueue(queue, new HashMap<>());
175 180
				} catch (SQLException e) {
......
182 187
			return (T) queue;
183 188
		}
184 189

  
185
		try(final BasicDataSource ds = (BasicDataSource) dataSourceFactory.createDataSource(dbName)) {
186
			final JdbcTemplate jdbcTemplate = jdbcTemplateFactory.createJdbcTemplate(ds);
187
			if (clazz == Integer.class) return (T) jdbcTemplate.queryForObject(query, Integer.class);
188
			else if (clazz == List.class) return (T) jdbcTemplate.queryForList(query);
189
			else if (clazz == Map.class) return (T) jdbcTemplate.queryForMap(query);
190
			else if (clazz == SqlRowSet.class) return (T) jdbcTemplate.queryForRowSet(query);
191
			else {
192
				jdbcTemplate.update(query);
193
				return null;
194
			}
195
		} catch(SQLException e) {
196
			throw new DatabaseException(e);
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;
197 198
		}
198 199
	}
199 200

  
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;
6 5
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);
22 22
		ds.setPassword(password);
23
		ds.setInitialSize(1);
23
		//ds.setInitialSize(1);
24 24
		return ds;
25 25
	}
26 26

  
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