View Javadoc

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  }