|
29 | 29 |
|
30 | 30 | import org.springframework.core.env.Environment;
|
31 | 31 |
|
| 32 | +import com.zaxxer.hikari.HikariDataSource; |
| 33 | + |
32 | 34 | import eu.openanalytics.containerproxy.service.EventService.Event;
|
33 | 35 | import eu.openanalytics.containerproxy.stat.IStatCollector;
|
34 | 36 |
|
|
56 | 58 | */
|
57 | 59 | public class JDBCCollector implements IStatCollector {
|
58 | 60 |
|
59 |
| - private Connection conn; |
| 61 | + private HikariDataSource ds; |
| 62 | + |
| 63 | + public JDBCCollector(Environment environment) { |
| 64 | + String baseURL = environment.getProperty("proxy.usage-stats-url"); |
| 65 | + String username = environment.getProperty("proxy.usage-stats-username", "monetdb"); |
| 66 | + String password = environment.getProperty("proxy.usage-stats-password", "monetdb"); |
| 67 | + ds = new HikariDataSource(); |
| 68 | + ds.setJdbcUrl(baseURL); |
| 69 | + ds.setUsername(username); |
| 70 | + ds.setPassword(password); |
| 71 | + } |
| 72 | + |
60 | 73 |
|
61 | 74 | @Override
|
62 | 75 | public void accept(Event event, Environment env) throws IOException {
|
63 |
| - synchronized (this) { |
64 |
| - String baseURL = env.getProperty("proxy.usage-stats-url"); |
65 |
| - String username = env.getProperty("proxy.usage-stats-username", "monetdb"); |
66 |
| - String password = env.getProperty("proxy.usage-stats-password", "monetdb"); |
67 |
| - try { |
68 |
| - if (conn == null || conn.isClosed()) { |
69 |
| - conn = DriverManager.getConnection(baseURL, username, password); |
70 |
| - } |
71 |
| - } catch (SQLException e) { |
72 |
| - throw new IOException("Failed to connect to " + baseURL, e); |
73 |
| - } |
74 |
| - } |
75 | 76 | String sql = "INSERT INTO event(event_time, username, type, data) VALUES (?,?,?,?)";
|
76 |
| - try (PreparedStatement stmt = conn.prepareStatement(sql)) { |
| 77 | + try (PreparedStatement stmt = ds.getConnection().prepareStatement(sql)) { |
77 | 78 | stmt.setTimestamp(1, new Timestamp(System.currentTimeMillis()));
|
78 | 79 | stmt.setString(2, event.user);
|
79 | 80 | stmt.setString(3, event.type);
|
|
0 commit comments