This is an automated email from the ASF dual-hosted git repository.
yuqi4733 pushed a commit to branch branch-0.8
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/branch-0.8 by this push:
new 5ba2fcab73 [#6630] fix(jdbc-catalog): jdbc.pool.test-on-borrow does
not work when connecting to JDBC catalog (#6643)
5ba2fcab73 is described below
commit 5ba2fcab73a264ac1785e1bfa562d27d1af18f74
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sun Mar 9 21:15:29 2025 +0800
[#6630] fix(jdbc-catalog): jdbc.pool.test-on-borrow does not work when
connecting to JDBC catalog (#6643)
<!--
1. Title: [#<issue>] <type>(<scope>): <subject>
Examples:
- "[#123] feat(operator): support xxx"
- "[#233] fix: check null before access result in xxx"
- "[MINOR] refactor: fix typo in variable name"
- "[MINOR] docs: fix typo in README"
- "[#255] test: fix flaky test NameOfTheTest"
Reference: https://www.conventionalcommits.org/en/v1.0.0/
2. If the PR is unfinished, please mark this PR as draft.
-->
### What changes were proposed in this pull request?
jdbc.pool.test-on-borrow does not work when connecting to JDBC catalog
### Why are the changes needed?
Fix: #6630
### Does this PR introduce _any_ user-facing change?
N/A
### How was this patch tested?
N/A
Co-authored-by: Xiaojian Sun <[email protected]>
---
.../jdbc/JdbcCatalogPropertiesMetadata.java | 12 ++++++++++-
.../catalog/jdbc/TestJdbcCatalogOperations.java | 23 ++++++++++++++++++++++
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcCatalogPropertiesMetadata.java
b/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcCatalogPropertiesMetadata.java
index d65bdfd7c1..0499ab221c 100644
---
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcCatalogPropertiesMetadata.java
+++
b/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/JdbcCatalogPropertiesMetadata.java
@@ -18,6 +18,7 @@
*/
package org.apache.gravitino.catalog.jdbc;
+import static
org.apache.gravitino.connector.PropertyEntry.booleanPropertyEntry;
import static
org.apache.gravitino.connector.PropertyEntry.integerPropertyEntry;
import static
org.apache.gravitino.connector.PropertyEntry.stringOptionalPropertyEntry;
import static org.apache.gravitino.connector.PropertyEntry.stringPropertyEntry;
@@ -42,7 +43,8 @@ public class JdbcCatalogPropertiesMetadata extends
BaseCatalogPropertiesMetadata
JdbcConfig.USERNAME.getKey(),
JdbcConfig.PASSWORD.getKey(),
JdbcConfig.POOL_MIN_SIZE.getKey(),
- JdbcConfig.POOL_MAX_SIZE.getKey());
+ JdbcConfig.POOL_MAX_SIZE.getKey(),
+ JdbcConfig.TEST_ON_BORROW.getKey());
static {
List<PropertyEntry<?>> propertyEntries =
@@ -100,6 +102,14 @@ public class JdbcCatalogPropertiesMetadata extends
BaseCatalogPropertiesMetadata
false /* immutable */,
JdbcConfig.POOL_MAX_SIZE.getDefaultValue(),
true /* hidden */,
+ false /* reserved */),
+ booleanPropertyEntry(
+ JdbcConfig.TEST_ON_BORROW.getKey(),
+ JdbcConfig.TEST_ON_BORROW.getDoc(),
+ false /* required */,
+ false /* immutable */,
+ JdbcConfig.TEST_ON_BORROW.getDefaultValue(),
+ true /* hidden */,
false /* reserved */));
PROPERTIES_METADATA =
ImmutableMap.<String, PropertyEntry<?>>builder()
diff --git
a/catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/TestJdbcCatalogOperations.java
b/catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/TestJdbcCatalogOperations.java
index aab5760f99..39512ff9a6 100644
---
a/catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/TestJdbcCatalogOperations.java
+++
b/catalogs/catalog-jdbc-common/src/test/java/org/apache/gravitino/catalog/jdbc/TestJdbcCatalogOperations.java
@@ -19,13 +19,20 @@
package org.apache.gravitino.catalog.jdbc;
import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Maps;
+import java.sql.SQLException;
+import java.util.HashMap;
+import javax.sql.DataSource;
+import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.gravitino.Catalog;
import org.apache.gravitino.NameIdentifier;
+import org.apache.gravitino.catalog.jdbc.config.JdbcConfig;
import
org.apache.gravitino.catalog.jdbc.converter.SqliteColumnDefaultValueConverter;
import org.apache.gravitino.catalog.jdbc.converter.SqliteExceptionConverter;
import org.apache.gravitino.catalog.jdbc.converter.SqliteTypeConverter;
import org.apache.gravitino.catalog.jdbc.operation.SqliteDatabaseOperations;
import org.apache.gravitino.catalog.jdbc.operation.SqliteTableOperations;
+import org.apache.gravitino.catalog.jdbc.utils.DataSourceUtils;
import org.apache.gravitino.exceptions.GravitinoRuntimeException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@@ -51,4 +58,20 @@ public class TestJdbcCatalogOperations {
"comment",
ImmutableMap.of()));
}
+
+ @Test
+ public void testConfigTestOnBorrow() throws SQLException {
+ HashMap<String, String> properties = Maps.newHashMap();
+ properties.put(JdbcConfig.JDBC_DRIVER.getKey(), "org.sqlite.JDBC");
+ properties.put(JdbcConfig.JDBC_URL.getKey(), "jdbc:sqlite::memory:");
+ properties.put(JdbcConfig.USERNAME.getKey(), "test");
+ properties.put(JdbcConfig.PASSWORD.getKey(), "test");
+ properties.put(JdbcConfig.TEST_ON_BORROW.getKey(), "false");
+
+ DataSource dataSource =
+ Assertions.assertDoesNotThrow(() ->
DataSourceUtils.createDataSource(properties));
+ Assertions.assertTrue(dataSource instanceof
org.apache.commons.dbcp2.BasicDataSource);
+ Assertions.assertTrue(((BasicDataSource) dataSource).getTestOnBorrow() ==
false);
+ ((BasicDataSource) dataSource).close();
+ }
}