Switched to using HikariCP for connection pool
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Locusworks Team/eight-track/pipeline/head This commit looks good
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Locusworks Team/eight-track/pipeline/head This commit looks good
				
			This commit is contained in:
		@@ -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<String> 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();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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"));
 | 
			
		||||
    
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user