Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class TypesafeConfigDatastoreConfigExtractor {
private static final String DEFAULT_CONNECTION_IDLE_TIME_KEY = "connectionIdleTime";
private static final String DEFAULT_MAX_IDLE_PERCENT_KEY = "maxIdlePercent";
private static final String DEFAULT_MIN_IDLE_PERCENT_KEY = "minIdlePercent";
private static final String DEFAULT_TEST_ON_BORROW_KEY = "testOnBorrow";
private static final String DEFAULT_AGGREGATION_PIPELINE_MODE_KEY = "aggregationPipelineMode";
private static final String DEFAULT_DATA_FRESHNESS_KEY = "dataFreshness";
private static final String DEFAULT_QUERY_TIMEOUT_KEY = "queryTimeout";
Expand Down Expand Up @@ -88,6 +89,7 @@ private TypesafeConfigDatastoreConfigExtractor(
.poolConnectionSurrenderTimeoutKey(DEFAULT_CONNECTION_IDLE_TIME_KEY)
.poolMaxIdlePercentKey(DEFAULT_MAX_IDLE_PERCENT_KEY)
.poolMinIdlePercentKey(DEFAULT_MIN_IDLE_PERCENT_KEY)
.poolTestOnBorrowKey(DEFAULT_TEST_ON_BORROW_KEY)
.aggregationPipelineMode(DEFAULT_AGGREGATION_PIPELINE_MODE_KEY)
.dataFreshnessKey(DEFAULT_DATA_FRESHNESS_KEY)
.queryTimeoutKey(DEFAULT_QUERY_TIMEOUT_KEY)
Expand Down Expand Up @@ -246,6 +248,13 @@ public TypesafeConfigDatastoreConfigExtractor poolMinIdlePercentKey(@NonNull fin
return this;
}

public TypesafeConfigDatastoreConfigExtractor poolTestOnBorrowKey(@NonNull final String key) {
if (config.hasPath(key)) {
connectionPoolConfigBuilder.testOnBorrow(config.getBoolean(key));
}
return this;
}

public TypesafeConfigDatastoreConfigExtractor aggregationPipelineMode(@NonNull final String key) {
if (config.hasPath(key)) {
connectionConfigBuilder.aggregationPipelineMode(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class TypesafeConfigDatastoreConfigExtractorTest {
private static final String CONNECTION_SURRENDER_TIMEOUT_KEY = "connectionSurrenderTimeout";
private static final String MAX_IDLE_PERCENT_KEY = "maxIdlePercent";
private static final String MIN_IDLE_PERCENT_KEY = "minIdlePercent";
private static final String TEST_ON_BORROW_KEY = "testOnBorrow";
private static final String AGGREGATION_PIPELINE_MODE_KEY = "aggregationPipelineMode";
private static final String DATA_FRESHNESS_KEY = "dataFreshness";
private static final String QUERY_TIMEOUT_KEY = "queryTimeout";
Expand Down Expand Up @@ -472,6 +473,51 @@ void testCustomIdlePercentValues() {
assertEquals(minIdlePercent, poolConfig.minIdlePercent());
}

@Test
void testDefaultTestOnBorrowValue() {
final PostgresConnectionConfig config =
(PostgresConnectionConfig)
TypesafeConfigDatastoreConfigExtractor.from(buildConfigMap(), DatabaseType.POSTGRES)
.hostKey(HOST_KEY)
.portKey(PORT_KEY)
.databaseKey(DATABASE_KEY)
.usernameKey(USER_KEY)
.passwordKey(PASSWORD_KEY)
.extract()
.connectionConfig();

assertEquals(true, config.connectionPoolConfig().testOnBorrow());
}

@Test
void testCustomTestOnBorrowValue() {
final PostgresConnectionConfig config =
(PostgresConnectionConfig)
TypesafeConfigDatastoreConfigExtractor.from(
buildConfigMapWithTestOnBorrow(), DatabaseType.POSTGRES)
.hostKey(HOST_KEY)
.portKey(PORT_KEY)
.databaseKey(DATABASE_KEY)
.usernameKey(USER_KEY)
.passwordKey(PASSWORD_KEY)
.poolTestOnBorrowKey(TEST_ON_BORROW_KEY)
.extract()
.connectionConfig();

assertEquals(false, config.connectionPoolConfig().testOnBorrow());
}

private Config buildConfigMapWithTestOnBorrow() {
return ConfigFactory.parseMap(
Map.ofEntries(
entry(HOST_KEY, host),
entry(PORT_KEY, port),
entry(DATABASE_KEY, database),
entry(USER_KEY, user),
entry(PASSWORD_KEY, password),
entry(TEST_ON_BORROW_KEY, false)));
}

private Config buildConfigMapWithIdlePercent() {
return ConfigFactory.parseMap(
Map.ofEntries(
Expand Down
Loading