Search in sources :

Example 6 with ConfigSection

use of com.google.gerrit.server.config.ConfigSection in project gerrit by GerritCodeReview.

the class MaxDb method getUrl.

@Override
public String getUrl() {
    final StringBuilder b = new StringBuilder();
    final ConfigSection dbs = new ConfigSection(cfg, "database");
    b.append("jdbc:sapdb://");
    b.append(hostname(dbs.optional("hostname")));
    b.append("/");
    b.append(dbs.required("database"));
    return b.toString();
}
Also used : ConfigSection(com.google.gerrit.server.config.ConfigSection)

Example 7 with ConfigSection

use of com.google.gerrit.server.config.ConfigSection in project gerrit by GerritCodeReview.

the class MySql method getUrl.

@Override
public String getUrl() {
    final StringBuilder b = new StringBuilder();
    final ConfigSection dbs = new ConfigSection(cfg, "database");
    b.append("jdbc:mysql://");
    b.append(hostname(dbs.optional("hostname")));
    b.append(port(dbs.optional("port")));
    b.append("/");
    b.append(dbs.required("database"));
    return b.toString();
}
Also used : ConfigSection(com.google.gerrit.server.config.ConfigSection)

Example 8 with ConfigSection

use of com.google.gerrit.server.config.ConfigSection in project gerrit by GerritCodeReview.

the class DataSourceProvider method open.

private DataSource open(final Config cfg, final Context context, final DataSourceType dst) {
    ConfigSection dbs = new ConfigSection(cfg, "database");
    String driver = dbs.optional("driver");
    if (Strings.isNullOrEmpty(driver)) {
        driver = dst.getDriver();
    }
    String url = dbs.optional("url");
    if (Strings.isNullOrEmpty(url)) {
        url = dst.getUrl();
    }
    String username = dbs.optional("username");
    String password = dbs.optional("password");
    String interceptor = dbs.optional("dataSourceInterceptorClass");
    boolean usePool;
    if (context == Context.SINGLE_USER) {
        usePool = false;
    } else {
        usePool = cfg.getBoolean("database", "connectionpool", dst.usePool());
    }
    if (usePool) {
        final BasicDataSource ds = new BasicDataSource();
        ds.setDriverClassName(driver);
        ds.setUrl(url);
        if (username != null && !username.isEmpty()) {
            ds.setUsername(username);
        }
        if (password != null && !password.isEmpty()) {
            ds.setPassword(password);
        }
        int poolLimit = threadSettingsConfig.getDatabasePoolLimit();
        ds.setMaxActive(poolLimit);
        ds.setMinIdle(cfg.getInt("database", "poolminidle", 4));
        ds.setMaxIdle(cfg.getInt("database", "poolmaxidle", Math.min(poolLimit, 16)));
        ds.setMaxWait(ConfigUtil.getTimeUnit(cfg, "database", null, "poolmaxwait", MILLISECONDS.convert(30, SECONDS), MILLISECONDS));
        ds.setInitialSize(ds.getMinIdle());
        ds.setValidationQuery(dst.getValidationQuery());
        ds.setValidationQueryTimeout(5);
        exportPoolMetrics(ds);
        return intercept(interceptor, ds);
    }
    //
    try {
        final Properties p = new Properties();
        p.setProperty("driver", driver);
        p.setProperty("url", url);
        if (username != null) {
            p.setProperty("user", username);
        }
        if (password != null) {
            p.setProperty("password", password);
        }
        return intercept(interceptor, new SimpleDataSource(p));
    } catch (SQLException se) {
        throw new ProvisionException("Database unavailable", se);
    }
}
Also used : ProvisionException(com.google.inject.ProvisionException) SQLException(java.sql.SQLException) SimpleDataSource(com.google.gwtorm.jdbc.SimpleDataSource) ConfigSection(com.google.gerrit.server.config.ConfigSection) Properties(java.util.Properties) BasicDataSource(org.apache.commons.dbcp.BasicDataSource)

Aggregations

ConfigSection (com.google.gerrit.server.config.ConfigSection)8 SimpleDataSource (com.google.gwtorm.jdbc.SimpleDataSource)1 ProvisionException (com.google.inject.ProvisionException)1 SQLException (java.sql.SQLException)1 Properties (java.util.Properties)1 BasicDataSource (org.apache.commons.dbcp.BasicDataSource)1