From 96564059642b927c16040081ae7f2e82edd04d0c Mon Sep 17 00:00:00 2001 From: Rakhi Agrawal Date: Tue, 12 Aug 2025 15:38:56 -0700 Subject: [PATCH 1/2] Add support for Hikari CP --- build.gradle | 1 + dao-impl/ebean-dao/build.gradle | 1 + .../metadata/dao/EbeanLocalAccess.java | 23 ++++++++++++++----- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index 8efa37917..3a4551585 100644 --- a/build.gradle +++ b/build.gradle @@ -46,6 +46,7 @@ project.ext.externalDependency = [ 'flywayCore': 'org.flywaydb:flyway-core:7.15.0', 'guava': 'com.google.guava:guava:32.0.0-jre', 'h2': 'com.h2database:h2:1.4.196', + 'hikariCP': 'com.zaxxer:HikariCP:5.0.1', 'jacksonCore': 'com.fasterxml.jackson.core:jackson-core:2.17.2', 'jacksonDataBind': 'com.fasterxml.jackson.core:jackson-databind:2.17.2', 'javatuples': 'org.javatuples:javatuples:1.2', diff --git a/dao-impl/ebean-dao/build.gradle b/dao-impl/ebean-dao/build.gradle index 633965677..380afb6a0 100644 --- a/dao-impl/ebean-dao/build.gradle +++ b/dao-impl/ebean-dao/build.gradle @@ -15,6 +15,7 @@ dependencies { compile externalDependency.guava compile externalDependency.jsonSimple compile externalDependency.log4j + compile externalDependency.hikariCP compileOnly externalDependency.ebeanAgent compileOnly externalDependency.lombok diff --git a/dao-impl/ebean-dao/src/main/java/com/linkedin/metadata/dao/EbeanLocalAccess.java b/dao-impl/ebean-dao/src/main/java/com/linkedin/metadata/dao/EbeanLocalAccess.java index 408f08f0c..1b08e36f7 100644 --- a/dao-impl/ebean-dao/src/main/java/com/linkedin/metadata/dao/EbeanLocalAccess.java +++ b/dao-impl/ebean-dao/src/main/java/com/linkedin/metadata/dao/EbeanLocalAccess.java @@ -20,6 +20,7 @@ import com.linkedin.metadata.query.IndexGroupByCriterion; import com.linkedin.metadata.query.IndexSortCriterion; import com.linkedin.metadata.query.ListResultMetadata; +import com.zaxxer.hikari.HikariDataSource; import io.ebean.EbeanServer; import io.ebean.SqlQuery; import io.ebean.SqlRow; @@ -623,19 +624,29 @@ private String toJsonString(@Nonnull URN urn) { @Nonnull private SchemaEvolutionManager createSchemaEvolutionManager(@Nonnull ServerConfig serverConfig) { - String name = serverConfig.getName(); String identifier = null; if (name != null && name.endsWith(EBEAN_SERVER_CONFIG)) { identifier = name.substring(0, name.length() - EBEAN_SERVER_CONFIG.length()); } + String connectionUrl = null; + String username = null; + String password = null; + + if (serverConfig.getDataSource() instanceof HikariDataSource) { + HikariDataSource dataSource = (HikariDataSource) serverConfig.getDataSource(); + connectionUrl = dataSource.getJdbcUrl(); + username = dataSource.getUsername(); + password = dataSource.getPassword(); + } else if (serverConfig.getDataSourceConfig() != null) { + connectionUrl = serverConfig.getDataSourceConfig().getUrl(); + username = serverConfig.getDataSourceConfig().getUsername(); + password = serverConfig.getDataSourceConfig().getPassword(); + } - SchemaEvolutionManager.Config config = new SchemaEvolutionManager.Config( - serverConfig.getDataSourceConfig().getUrl(), - serverConfig.getDataSourceConfig().getPassword(), - serverConfig.getDataSourceConfig().getUsername(), - identifier); + SchemaEvolutionManager.Config config = + new SchemaEvolutionManager.Config(connectionUrl, password, username, identifier); return new FlywaySchemaEvolutionManager(config); } From 3dfed298da37cec0f16bf89e9497a0ce6437efda Mon Sep 17 00:00:00 2001 From: Rakhi Agrawal Date: Tue, 12 Aug 2025 15:43:05 -0700 Subject: [PATCH 2/2] Downgrade to hikari 4 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3a4551585..111dca9de 100644 --- a/build.gradle +++ b/build.gradle @@ -46,7 +46,7 @@ project.ext.externalDependency = [ 'flywayCore': 'org.flywaydb:flyway-core:7.15.0', 'guava': 'com.google.guava:guava:32.0.0-jre', 'h2': 'com.h2database:h2:1.4.196', - 'hikariCP': 'com.zaxxer:HikariCP:5.0.1', + 'hikariCP': 'com.zaxxer:HikariCP:4.0.3', 'jacksonCore': 'com.fasterxml.jackson.core:jackson-core:2.17.2', 'jacksonDataBind': 'com.fasterxml.jackson.core:jackson-databind:2.17.2', 'javatuples': 'org.javatuples:javatuples:1.2',