|
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