From f4805fd8b5314a0881eeedbbb7bb8f6790170bed Mon Sep 17 00:00:00 2001 From: Isaac Parenteau Date: Sun, 24 May 2020 00:32:07 -0500 Subject: [PATCH] Switched to using HikariCP for connection pool --- pom.xml | 34 +++++------- .../database/config/EightTrackDataSource.java | 52 ++++++------------- .../playlist/handlers/PlaylistAddHandler.java | 1 - .../handlers/PlaylistDeleteHandler.java | 1 - .../handlers/PlaylistListHandler.java | 1 - .../eighttrack/services/AESService.java | 2 +- .../services/GuildMusicService.java | 16 ++++-- src/main/resources/META-INF/persistence.xml | 4 -- src/main/resources/eighttrack.properties | 2 +- 9 files changed, 45 insertions(+), 68 deletions(-) diff --git a/pom.xml b/pom.xml index 4cd890f..5e7702d 100644 --- a/pom.xml +++ b/pom.xml @@ -14,16 +14,16 @@ - git@gitea.locusworks.net:Locusworks/eight-track.git + ssh://gitea@gitea.locusworks.net:7999/locusworks/eight-track.git - 6.1.3 - 2.5.2 - 5.4.10.Final - 5.2.2.RELEASE - 2.2.2.RELEASE - 2.2.2.RELEASE + 6.4.2 + 8.0.20 + 5.4.16.Final + 5.2.6.RELEASE + 2.3.0.RELEASE + 2.3.0.RELEASE 2.10.1 2.12.1 1.7.28 @@ -116,7 +116,7 @@ flyway-maven-plugin ${flyway.version} - jdbc:mariadb://localhost:3306/ + jdbc:mysql://localhost:3306/ false eighttrack @@ -128,9 +128,9 @@ - org.mariadb.jdbc - mariadb-java-client - ${mariadb.version} + mysql + mysql-connector-java + ${mysql.version} @@ -184,17 +184,11 @@ ${flyway.version} - - org.mariadb.jdbc - mariadb-java-client - ${mariadb.version} - - mysql mysql-connector-java - 8.0.18 + ${mysql.version} @@ -202,11 +196,11 @@ hibernate-entitymanager ${hibernate.version} - + org.hibernate - hibernate-c3p0 + hibernate-hikaricp ${hibernate.version} 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 d3c7f87..b4d3010 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 @@ -30,21 +30,19 @@ package net.locusworks.discord.eighttrack.database.config; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Properties; import java.util.TimeZone; import java.util.stream.Collectors; import javax.sql.DataSource; import org.apache.commons.lang3.StringUtils; -import org.mariadb.jdbc.MariaDbDataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.jdbc.DataSourceBuilder; 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 @@ -76,35 +74,22 @@ public class EightTrackDataSource { */ @Bean public DataSource dataSource() throws Exception { - return getDataSource(false); + logger.debug("Getting datasource"); + return getDataSource(confService.getDatabaseUsername(), + confService.getDatabasePassword(), + "/eighttrack"); } @Bean public DataSource flywayDataSource() throws Exception { logger.debug("Logging in with flyway for migrations"); - String user = confService.getDatabaseRootUsername(); - String passwd = confService.getDatabaseRootPassword(); - - String url = String.format("jdbc:mariadb://%s:%d?user=%s&password=%s", - confService.getDatabaseHost(), confService.getDatabasePort(), - user, passwd); - - MariaDbDataSource mariadbDS = new MariaDbDataSource(url); - - return mariadbDS; + return getDataSource(confService.getDatabaseRootUsername(), + confService.getDatabaseRootPassword(), + ""); } - private DataSource getDataSource(Boolean isFlyway) throws Exception { - logger.debug("Getting datasource"); - - String user = confService.getDatabaseUsername(); - String passwd = confService.getDatabasePassword(); - - Properties props = new Properties(); - props.setProperty("user", user); - props.setProperty("password", passwd); - + private DataSource getDataSource(String user, String passwd, String db) throws Exception { List params = mysqlProperties .entrySet() .stream() @@ -114,22 +99,19 @@ public class EightTrackDataSource { String host = confService.getDatabaseHost(); int port = confService.getDatabasePort(); - String url = String.format(JNDI_STRING, host, port, "/eighttrack"); + String url = String.format(JNDI_STRING, host, port, db); url = String.format("%s?%s", url, StringUtils.join(params, "&")); logger.debug("Database connection string: %s", url); - 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; + return DataSourceBuilder + .create() + .username(user) + .password(passwd) + .url(url) + .driverClassName(DRIVER) + .build(); } } diff --git a/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistAddHandler.java b/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistAddHandler.java index 35387bd..799ea9c 100644 --- a/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistAddHandler.java +++ b/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistAddHandler.java @@ -44,7 +44,6 @@ import net.locusworks.discord.eighttrack.database.entities.GuildPlaylist; import net.locusworks.discord.eighttrack.database.entities.GuildPlaylistSong; import net.locusworks.discord.eighttrack.database.entities.GuildSong; import net.locusworks.discord.eighttrack.events.playlist.AbstractPlaylistEventHandler; -import net.locusworks.discord.eighttrack.handlers.GuildMusicHandler; import net.locusworks.discord.eighttrack.services.RepositoryService; @Component diff --git a/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistDeleteHandler.java b/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistDeleteHandler.java index f8e0ac5..fc00880 100644 --- a/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistDeleteHandler.java +++ b/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistDeleteHandler.java @@ -42,7 +42,6 @@ import net.locusworks.discord.eighttrack.database.entities.GuildPlaylist; import net.locusworks.discord.eighttrack.database.entities.GuildPlaylistSong; import net.locusworks.discord.eighttrack.database.entities.GuildSong; import net.locusworks.discord.eighttrack.events.playlist.AbstractPlaylistEventHandler; -import net.locusworks.discord.eighttrack.handlers.GuildMusicHandler; import net.locusworks.discord.eighttrack.handlers.ReactionHandler; import net.locusworks.discord.eighttrack.listeners.ReactionListener; import net.locusworks.discord.eighttrack.services.RepositoryService; diff --git a/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistListHandler.java b/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistListHandler.java index 4fd1c41..37fa268 100644 --- a/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistListHandler.java +++ b/src/main/java/net/locusworks/discord/eighttrack/events/playlist/handlers/PlaylistListHandler.java @@ -36,7 +36,6 @@ import net.locusworks.discord.eighttrack.database.entities.GuildPlaylist; import net.locusworks.discord.eighttrack.database.entities.GuildPlaylistSong; import net.locusworks.discord.eighttrack.database.entities.GuildSong; import net.locusworks.discord.eighttrack.events.playlist.AbstractPlaylistEventHandler; -import net.locusworks.discord.eighttrack.handlers.GuildMusicHandler; import net.locusworks.discord.eighttrack.services.RepositoryService; @Component diff --git a/src/main/java/net/locusworks/discord/eighttrack/services/AESService.java b/src/main/java/net/locusworks/discord/eighttrack/services/AESService.java index b3f6e68..2c128f9 100644 --- a/src/main/java/net/locusworks/discord/eighttrack/services/AESService.java +++ b/src/main/java/net/locusworks/discord/eighttrack/services/AESService.java @@ -67,7 +67,7 @@ public class AESService { AESService service = new AESService(); service.init(); - System.out.println(service.encrypt("zeGAPgbH9HFbqmjRjmwzUDKv")); + System.out.println(service.encrypt("yqwAK!H5KAc0d2xWdN6*S0w4")); } diff --git a/src/main/java/net/locusworks/discord/eighttrack/services/GuildMusicService.java b/src/main/java/net/locusworks/discord/eighttrack/services/GuildMusicService.java index f9c95d2..66f6c48 100644 --- a/src/main/java/net/locusworks/discord/eighttrack/services/GuildMusicService.java +++ b/src/main/java/net/locusworks/discord/eighttrack/services/GuildMusicService.java @@ -59,8 +59,7 @@ public class GuildMusicService { private void init() { logger = ApplicationLoggerFactory.getLogger(GuildMusicService.class); for (DiscordGuild dg : guildRepoService.getGuildRepo().findAll()) { - GuildMusicHandler gmh = new GuildMusicHandler(dg.getGuildId(), guildRepoService); - gmh.accept((id) -> handlerMap.remove(id)); + GuildMusicHandler gmh = createMusicHandler(dg.getGuildId()); handlerMap.put(dg.getGuildId(), gmh); } } @@ -112,11 +111,20 @@ public class GuildMusicService { public GuildMusicHandler getMusicHandler(Long guildId) { if (!handlerMap.containsKey(guildId)) { - GuildMusicHandler gmh = new GuildMusicHandler(guildId, guildRepoService); - gmh.accept((id) -> handlerMap.remove(id)); + GuildMusicHandler gmh = createMusicHandler(guildId); handlerMap.put(guildId, gmh); } return handlerMap.get(guildId); } + + /** + * @param guildId + * @return + */ + private GuildMusicHandler createMusicHandler(Long guildId) { + GuildMusicHandler gmh = new GuildMusicHandler(guildId, guildRepoService); + gmh.accept((id) -> handlerMap.remove(id)); + return gmh; + } } diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml index 62c45f4..0bfdea5 100644 --- a/src/main/resources/META-INF/persistence.xml +++ b/src/main/resources/META-INF/persistence.xml @@ -9,10 +9,6 @@ net.locusworks.discord.eighttrack.database.entities.GuildPlaylistSong net.locusworks.discord.eighttrack.database.entities.Log - - - - diff --git a/src/main/resources/eighttrack.properties b/src/main/resources/eighttrack.properties index 8d03e8a..e236f40 100644 --- a/src/main/resources/eighttrack.properties +++ b/src/main/resources/eighttrack.properties @@ -1,5 +1,5 @@ dbAdmin=root -dbAdminPassword=gSkjsvZbQTQtogOrPYqorCuuzp4WUpGFVtPYtMVj47U= +dbAdminPassword=bDNuBX0IqflafBFBfr10MQkdGgamC3UeZ0GcsWUWeCI= dbUser=eighttrackAdmin dbUserPassword=RaamWDMgA2p09R3kAiKHqauu6mmKU2HLQ4nAfEGMNOs= dbHost=localhost