diff --git a/pom.xml b/pom.xml index 2e46412..265ceae 100644 --- a/pom.xml +++ b/pom.xml @@ -18,13 +18,13 @@ - - 6.0.7 - 2.5.1 - 5.4.6.Final - 5.2.0.RELEASE - 2.2.0.RELEASE - 2.2.0.RELEASE + 6.1.3 + 2.5.2 + 5.4.10.Final + 5.2.2.RELEASE + 2.2.2.RELEASE + 2.2.2.RELEASE + 2.10.1 2.12.1 1.7.28 3.0.0-M2 @@ -154,7 +154,7 @@ net.dv8tion JDA - 4.0.0_54 + 4.1.0_88 com.fasterxml.jackson.core @@ -174,7 +174,7 @@ com.sedmelluq lavaplayer - 1.3.22 + 1.3.32 @@ -203,14 +203,13 @@ ${hibernate.version} - + - org.apache.commons - commons-dbcp2 - 2.7.0 + org.hibernate + hibernate-c3p0 + ${hibernate.version} - org.springframework.boot @@ -282,27 +281,27 @@ com.fasterxml.jackson.core jackson-core - 2.10.0 + ${jackson.version} com.fasterxml.jackson.core jackson-databind - 2.10.0 + ${jackson.version} com.fasterxml.jackson.core jackson-annotations - 2.10.0 + ${jackson.version} javax.xml.bind jaxb-api - 2.3.1 + 2.4.0-b180830.0359 @@ -315,7 +314,7 @@ com.sun.xml.bind jaxb-impl - 2.3.2 + 2.4.0-b180830.0438 @@ -330,7 +329,7 @@ mp3agic 0.9.1 - + diff --git a/src/main/java/net/locusworks/discord/eighttrack/database/config/EightTrackDataSource.java b/src/main/java/net/locusworks/discord/eighttrack/database/config/EightTrackDataSource.java index a596f3d..d3c7f87 100644 --- a/src/main/java/net/locusworks/discord/eighttrack/database/config/EightTrackDataSource.java +++ b/src/main/java/net/locusworks/discord/eighttrack/database/config/EightTrackDataSource.java @@ -36,15 +36,7 @@ import java.util.stream.Collectors; import javax.sql.DataSource; -import org.apache.commons.dbcp2.ConnectionFactory; -import org.apache.commons.dbcp2.DriverManagerConnectionFactory; -import org.apache.commons.dbcp2.PoolableConnection; -import org.apache.commons.dbcp2.PoolableConnectionFactory; -import org.apache.commons.dbcp2.PoolingDataSource; import org.apache.commons.lang3.StringUtils; -import org.apache.commons.pool2.impl.AbandonedConfig; -import org.apache.commons.pool2.impl.GenericObjectPool; -import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import org.mariadb.jdbc.MariaDbDataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,7 +44,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; - +import com.mchange.v2.c3p0.ComboPooledDataSource; import net.locusworks.discord.eighttrack.services.ConfigurationService; @Primary @@ -104,8 +96,7 @@ public class EightTrackDataSource { } private DataSource getDataSource(Boolean isFlyway) throws Exception { - logger.debug("Gettind datasource"); - Class.forName(DRIVER).getDeclaredConstructor().newInstance(); + logger.debug("Getting datasource"); String user = confService.getDatabaseUsername(); String passwd = confService.getDatabasePassword(); @@ -129,34 +120,16 @@ public class EightTrackDataSource { logger.debug("Database connection string: %s", url); - ConnectionFactory cf = new DriverManagerConnectionFactory(url, props); - //Create the poolable connection factory - PoolableConnectionFactory pcf = new PoolableConnectionFactory(cf, null); - pcf.setValidationQuery("SELECT 1"); - pcf.setDefaultAutoCommit(true); - - GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig<>(); - poolConfig.setMinIdle(10); - poolConfig.setMaxTotal(100); - - AbandonedConfig abandonConfig = new AbandonedConfig(); - abandonConfig.setRemoveAbandonedTimeout(60); - abandonConfig.setLogAbandoned(false); - abandonConfig.setRemoveAbandonedOnBorrow(true); - abandonConfig.setRemoveAbandonedOnMaintenance(true); - - //Create the pool of connections - GenericObjectPool connectionPool = new GenericObjectPool<>(pcf, poolConfig); - connectionPool.setTestOnBorrow(true); - connectionPool.setTestWhileIdle(true); - connectionPool.setTimeBetweenEvictionRunsMillis(10000); - connectionPool.setMinEvictableIdleTimeMillis(1000); - connectionPool.setAbandonedConfig(abandonConfig); - pcf.setPool(connectionPool); - - //Pooling data source itself - PoolingDataSource dataSource = new PoolingDataSource<>(connectionPool); - return dataSource; + ComboPooledDataSource cpds = new ComboPooledDataSource(); + cpds.setDriverClass(DRIVER); + cpds.setJdbcUrl(url); + cpds.setUser(user); + cpds.setPassword(passwd); + cpds.setMinPoolSize(5); + cpds.setMaxPoolSize(100); + cpds.setAcquireIncrement(10); + + return cpds; } }