1 package com.ning.metrics.goodwill.dao;
2
3 import com.google.inject.Inject;
4 import com.google.inject.Singleton;
5 import com.jolbox.bonecp.BoneCPConfig;
6 import com.jolbox.bonecp.BoneCPDataSource;
7 import com.ning.metrics.goodwill.binder.config.GoodwillConfig;
8
9 import javax.sql.DataSource;
10
11 @Singleton
12 public class DAOBoneCPAccess implements DAOAccess
13 {
14 private final DataSource dataSource;
15
16 @Inject
17 public DAOBoneCPAccess(
18 GoodwillConfig config
19 )
20 {
21 this(config.getStoreDBHost(), config.getStoreDBPort(), config.getStoreDBName(), config.getStoreDBUsername(), config.getStoreDBPassword());
22
23 }
24
25 public DAOBoneCPAccess(String DBHost,
26 int DBPort,
27 String DBName,
28 String DBUsername,
29 String DBPassword)
30 {
31 BoneCPConfig boneCPConfig = new BoneCPConfig();
32
33 boneCPConfig.setJdbcUrl(String.format("jdbc:mysql://%s:%d/%s", DBHost, DBPort, DBName));
34 boneCPConfig.setUsername(DBUsername);
35 boneCPConfig.setPassword(DBPassword);
36 boneCPConfig.setMinConnectionsPerPartition(1);
37 boneCPConfig.setMaxConnectionsPerPartition(10);
38 boneCPConfig.setPartitionCount(1);
39
40 dataSource = new BoneCPDataSource(boneCPConfig);
41 }
42
43 @Override
44 public DataSource getDataSource()
45 {
46 return dataSource;
47 }
48 }