Skip to content

Commit c9d3e0a

Browse files
authored
Read testOnBorrow correctly from config (#316)
1 parent 7c419db commit c9d3e0a

2 files changed

Lines changed: 55 additions & 0 deletions

File tree

document-store/src/main/java/org/hypertrace/core/documentstore/model/config/TypesafeConfigDatastoreConfigExtractor.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public class TypesafeConfigDatastoreConfigExtractor {
3434
private static final String DEFAULT_CONNECTION_IDLE_TIME_KEY = "connectionIdleTime";
3535
private static final String DEFAULT_MAX_IDLE_PERCENT_KEY = "maxIdlePercent";
3636
private static final String DEFAULT_MIN_IDLE_PERCENT_KEY = "minIdlePercent";
37+
private static final String DEFAULT_TEST_ON_BORROW_KEY = "testOnBorrow";
3738
private static final String DEFAULT_AGGREGATION_PIPELINE_MODE_KEY = "aggregationPipelineMode";
3839
private static final String DEFAULT_DATA_FRESHNESS_KEY = "dataFreshness";
3940
private static final String DEFAULT_QUERY_TIMEOUT_KEY = "queryTimeout";
@@ -88,6 +89,7 @@ private TypesafeConfigDatastoreConfigExtractor(
8889
.poolConnectionSurrenderTimeoutKey(DEFAULT_CONNECTION_IDLE_TIME_KEY)
8990
.poolMaxIdlePercentKey(DEFAULT_MAX_IDLE_PERCENT_KEY)
9091
.poolMinIdlePercentKey(DEFAULT_MIN_IDLE_PERCENT_KEY)
92+
.poolTestOnBorrowKey(DEFAULT_TEST_ON_BORROW_KEY)
9193
.aggregationPipelineMode(DEFAULT_AGGREGATION_PIPELINE_MODE_KEY)
9294
.dataFreshnessKey(DEFAULT_DATA_FRESHNESS_KEY)
9395
.queryTimeoutKey(DEFAULT_QUERY_TIMEOUT_KEY)
@@ -246,6 +248,13 @@ public TypesafeConfigDatastoreConfigExtractor poolMinIdlePercentKey(@NonNull fin
246248
return this;
247249
}
248250

251+
public TypesafeConfigDatastoreConfigExtractor poolTestOnBorrowKey(@NonNull final String key) {
252+
if (config.hasPath(key)) {
253+
connectionPoolConfigBuilder.testOnBorrow(config.getBoolean(key));
254+
}
255+
return this;
256+
}
257+
249258
public TypesafeConfigDatastoreConfigExtractor aggregationPipelineMode(@NonNull final String key) {
250259
if (config.hasPath(key)) {
251260
connectionConfigBuilder.aggregationPipelineMode(

document-store/src/test/java/org/hypertrace/core/documentstore/model/config/TypesafeConfigDatastoreConfigExtractorTest.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class TypesafeConfigDatastoreConfigExtractorTest {
3636
private static final String CONNECTION_SURRENDER_TIMEOUT_KEY = "connectionSurrenderTimeout";
3737
private static final String MAX_IDLE_PERCENT_KEY = "maxIdlePercent";
3838
private static final String MIN_IDLE_PERCENT_KEY = "minIdlePercent";
39+
private static final String TEST_ON_BORROW_KEY = "testOnBorrow";
3940
private static final String AGGREGATION_PIPELINE_MODE_KEY = "aggregationPipelineMode";
4041
private static final String DATA_FRESHNESS_KEY = "dataFreshness";
4142
private static final String QUERY_TIMEOUT_KEY = "queryTimeout";
@@ -472,6 +473,51 @@ void testCustomIdlePercentValues() {
472473
assertEquals(minIdlePercent, poolConfig.minIdlePercent());
473474
}
474475

476+
@Test
477+
void testDefaultTestOnBorrowValue() {
478+
final PostgresConnectionConfig config =
479+
(PostgresConnectionConfig)
480+
TypesafeConfigDatastoreConfigExtractor.from(buildConfigMap(), DatabaseType.POSTGRES)
481+
.hostKey(HOST_KEY)
482+
.portKey(PORT_KEY)
483+
.databaseKey(DATABASE_KEY)
484+
.usernameKey(USER_KEY)
485+
.passwordKey(PASSWORD_KEY)
486+
.extract()
487+
.connectionConfig();
488+
489+
assertEquals(true, config.connectionPoolConfig().testOnBorrow());
490+
}
491+
492+
@Test
493+
void testCustomTestOnBorrowValue() {
494+
final PostgresConnectionConfig config =
495+
(PostgresConnectionConfig)
496+
TypesafeConfigDatastoreConfigExtractor.from(
497+
buildConfigMapWithTestOnBorrow(), DatabaseType.POSTGRES)
498+
.hostKey(HOST_KEY)
499+
.portKey(PORT_KEY)
500+
.databaseKey(DATABASE_KEY)
501+
.usernameKey(USER_KEY)
502+
.passwordKey(PASSWORD_KEY)
503+
.poolTestOnBorrowKey(TEST_ON_BORROW_KEY)
504+
.extract()
505+
.connectionConfig();
506+
507+
assertEquals(false, config.connectionPoolConfig().testOnBorrow());
508+
}
509+
510+
private Config buildConfigMapWithTestOnBorrow() {
511+
return ConfigFactory.parseMap(
512+
Map.ofEntries(
513+
entry(HOST_KEY, host),
514+
entry(PORT_KEY, port),
515+
entry(DATABASE_KEY, database),
516+
entry(USER_KEY, user),
517+
entry(PASSWORD_KEY, password),
518+
entry(TEST_ON_BORROW_KEY, false)));
519+
}
520+
475521
private Config buildConfigMapWithIdlePercent() {
476522
return ConfigFactory.parseMap(
477523
Map.ofEntries(

0 commit comments

Comments
 (0)