예제 #1
0
  @Bean
  public BoneCPDataSource dataSource() {

    BoneCPDataSource dataSource = new BoneCPDataSource();

    dataSource.setDriverClass(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_DRIVER));
    dataSource.setJdbcUrl(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_URL));
    dataSource.setUsername(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_USERNAME));
    dataSource.setPassword(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_PASSWORD));

    // https://github.com/wwadge/bonecp/blob/master/bonecp/src/main/resources/bonecp-default-config.xml
    dataSource.setConnectionTestStatement("SELECT 1 FROM DUAL");
    dataSource.setMinConnectionsPerPartition(0);
    dataSource.setMaxConnectionsPerPartition(10);
    dataSource.setMaxConnectionAge(0, TimeUnit.SECONDS);
    dataSource.setConnectionTimeout(5, TimeUnit.SECONDS);
    dataSource.setIdleMaxAge(60, TimeUnit.MINUTES);
    dataSource.setAcquireIncrement(1);
    dataSource.setPartitionCount(1);
    dataSource.setIdleConnectionTestPeriod(240, TimeUnit.MINUTES);
    dataSource.setStatementsCacheSize(500);
    dataSource.setCloseConnectionWatch(false);
    dataSource.setAcquireRetryDelay(7000, TimeUnit.MILLISECONDS);
    dataSource.setAcquireRetryAttempts(5);
    dataSource.setQueryExecuteTimeLimit(1, TimeUnit.MILLISECONDS);
    dataSource.setLazyInit(false);
    dataSource.setLogStatementsEnabled(true);

    return dataSource;
  }
  @Bean
  public DataSource dataSource() {
    BoneCPDataSource dataSource = new BoneCPDataSource();

    dataSource.setDriverClass(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_DRIVER));
    dataSource.setJdbcUrl(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_URL));
    dataSource.setUsername(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_USERNAME));
    dataSource.setPassword(environment.getRequiredProperty(PROPERTY_NAME_DATABASE_PASSWORD));

    return dataSource;
  }
예제 #3
0
 @Bean(destroyMethod = "close")
 public DataSource dataSource() {
   BoneCPDataSource dataSource = new BoneCPDataSource();
   dataSource.setDriverClass(driverClass);
   dataSource.setJdbcUrl(jdbcUrl);
   dataSource.setUsername(jdbcUsername);
   dataSource.setPassword(jdbcPassword);
   dataSource.setIdleConnectionTestPeriodInMinutes(idleConnectionTestPeriodInMinutes);
   dataSource.setIdleMaxAgeInMinutes(idleMaxAgeInMinutes);
   dataSource.setMaxConnectionsPerPartition(maxConnectionsPerPartition);
   dataSource.setMinConnectionsPerPartition(minConnectionsPerPartition);
   dataSource.setPartitionCount(partitionCount);
   dataSource.setAcquireIncrement(acquireIncrement);
   dataSource.setStatementsCacheSize(statementsCacheSize);
   return dataSource;
 }
    @Override
    public void configure() {
      Binder binder = binder();

      BoneCPDataSource datasource = new BoneCPDataSource();

      datasource.setDriverClass(Driver.class.getName());
      datasource.setJdbcUrl(
          System.getProperty("jdbc.url", "jdbc:h2:mem:thedb;DB_CLOSE_ON_EXIT=FALSE"));
      datasource.setUsername(System.getProperty("jdbc.user", "root"));
      datasource.setPassword(System.getProperty("jdbc.password", "notreallyused"));

      DBI dbi = JDBIHelper.getDBI(datasource);
      binder.bind(IDBI.class).toInstance(dbi);

      binder
          .bind(String.class)
          .annotatedWith(Names.named("db.prefix"))
          .toInstance(H2TypeHelper.DATABASE_PREFIX);

      binder
          .bind(Boolean.class)
          .annotatedWith(Names.named("nuke.allowed"))
          .toInstance(Boolean.valueOf(System.getProperty("nuke.allowed", "false")));

      SequenceServiceDatabaseImpl sequenceService =
          new SequenceServiceDatabaseImpl(
              new SequenceHelper(
                  Boolean.valueOf(System.getProperty("strict.type.creation", "true"))),
              dbi,
              H2TypeHelper.DATABASE_PREFIX,
              SequenceServiceDatabaseImpl.DEFAULT_INCREMENT);
      binder.bind(SequenceService.class).toInstance(sequenceService);
      binder.bind(SequenceServiceDatabaseImpl.class).toInstance(sequenceService);

      binder.bind(KeyValueStorage.class).to(H2KeyValueStorage.class).asEagerSingleton();
      binder.bind(SqlTypeHelper.class).to(H2TypeHelper.class).asEagerSingleton();
      binder.bind(SecondaryIndexTableHelper.class).asEagerSingleton();
      binder.bind(JDBISecondaryIndex.class).asEagerSingleton();

      bind(SchemaResource.class).asEagerSingleton();
      bind(CounterResource.class).asEagerSingleton();
      bind(SecondaryIndexResource.class).asEagerSingleton();
      bind(UniqueIndexResource.class).asEagerSingleton();
      bind(ImportExportResource.class).asEagerSingleton();
      bind(PingResource.class).asEagerSingleton();
    }
예제 #5
0
 @Inject
 public void setDriverClass(@Named("JDBC.driver") final String driverClass) {
   dataSource.setDriverClass(driverClass);
 }