package com.ning.metrics.goodwill.dao;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.jolbox.bonecp.BoneCPConfig;
import com.jolbox.bonecp.BoneCPDataSource;
import com.ning.metrics.goodwill.binder.config.GoodwillConfig;
import javax.sql.DataSource;
@Singleton
public class DAOBoneCPAccess implements DAOAccess
{
private final DataSource dataSource;
@Inject
public DAOBoneCPAccess(
GoodwillConfig config
)
{
this(config.getStoreDBHost(), config.getStoreDBPort(), config.getStoreDBName(), config.getStoreDBUsername(), config.getStoreDBPassword());
}
public DAOBoneCPAccess(String DBHost,
int DBPort,
String DBName,
String DBUsername,
String DBPassword)
{
BoneCPConfig boneCPConfig = new BoneCPConfig();
boneCPConfig.setJdbcUrl(String.format("jdbc:mysql://%s:%d/%s", DBHost, DBPort, DBName));
boneCPConfig.setUsername(DBUsername);
boneCPConfig.setPassword(DBPassword);
boneCPConfig.setMinConnectionsPerPartition(1);
boneCPConfig.setMaxConnectionsPerPartition(10);
boneCPConfig.setPartitionCount(1);
dataSource = new BoneCPDataSource(boneCPConfig);
}
@Override
public DataSource getDataSource()
{
return dataSource;
}
}