From a05255ffc5d3eb1fb4ce835726d754cf7e6560ff Mon Sep 17 00:00:00 2001 From: John Tal Date: Thu, 3 Oct 2024 15:52:29 -0400 Subject: [PATCH] HHH-18685 proposed basic enhancement to allow subclasses to have already initialized the HikariDataSource --- .../internal/HikariCPConnectionProvider.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/hibernate-hikaricp/src/main/java/org/hibernate/hikaricp/internal/HikariCPConnectionProvider.java b/hibernate-hikaricp/src/main/java/org/hibernate/hikaricp/internal/HikariCPConnectionProvider.java index 725976271bec..26838a706a1c 100644 --- a/hibernate-hikaricp/src/main/java/org/hibernate/hikaricp/internal/HikariCPConnectionProvider.java +++ b/hibernate-hikaricp/src/main/java/org/hibernate/hikaricp/internal/HikariCPConnectionProvider.java @@ -55,7 +55,21 @@ public void configure(Map props) throws HibernateException { ConnectionInfoLogger.INSTANCE.configureConnectionPool( "HikariCP" ); hcfg = HikariConfigurationUtil.loadConfiguration( props ); - hds = new HikariDataSource( hcfg ); + + boolean initializedHikariDataSource = false; + + // Support a HikariDataSource already configured by classes which extend this class + if(props.containsKey("HikariDataSource")) { + Object ohds = props.get("HikariDataSource"); + if(ohds instanceof HikariDataSource) { + hds = (HikariDataSource) ohds; + initializedHikariDataSource = true; + } + } + if(!initializedHikariDataSource) { + // Default logic if no subclass has configured a HikariDataSource, do so now + hds = new HikariDataSource( hcfg ); + } } catch (Exception e) { ConnectionInfoLogger.INSTANCE.unableToInstantiateConnectionPool( e );