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();
}
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();
}
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);
}
}
Aggregations