This is an automated email from the ASF dual-hosted git repository.

pradeep pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new 846031985 RANGER-2895: Replace c3p0 connection pool with HikariCP
846031985 is described below

commit 846031985cae70f7a8c5e92faf186948a302260e
Author: Pradeep AgrawaL <prad...@apache.org>
AuthorDate: Wed Jun 7 18:39:25 2023 +0530

    RANGER-2895: Replace c3p0 connection pool with HikariCP
---
 pom.xml                                            |  4 +-
 security-admin/pom.xml                             |  6 +-
 .../scripts/ranger-admin-site-template.xml         | 10 +--
 security-admin/scripts/upgrade_admin.py            |  9 +-
 .../org/apache/ranger/db/RangerDaoManager.java     |  6 --
 .../org/apache/ranger/db/XXAccessAuditDao.java     |  2 +-
 .../src/main/resources/META-INF/persistence.xml    | 10 ---
 .../conf.dist/ranger-admin-default-site.xml        | 18 ++--
 .../main/webapp/META-INF/applicationContext.xml    | 98 +++-------------------
 9 files changed, 32 insertions(+), 131 deletions(-)

diff --git a/pom.xml b/pom.xml
index 9a6667ad2..9fc946731 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,7 +87,7 @@
         <atlas.jettison.version>1.3.7</atlas.jettison.version>
         <atlas.commons.logging.version>1.1.3</atlas.commons.logging.version>
         <bouncycastle.version>1.70</bouncycastle.version>
-        <c3p0.version>0.9.5.5</c3p0.version>
+        <HikariCP.version>4.0.3</HikariCP.version>
         <cglib.version>2.2.0-b23</cglib.version>
         <checkstyle.plugin.version>3.1.0</checkstyle.plugin.version>
         <checkstyle.version>8.29</checkstyle.version>
@@ -176,7 +176,7 @@
         <metrics.core.version>3.0.2</metrics.core.version>
         <mockito.version>3.0.0</mockito.version>
         <mockito.all.version>1.10.19</mockito.all.version>
-        <mysql-connector-java.version>5.1.31</mysql-connector-java.version>
+        <mysql-connector-java.version>5.1.49</mysql-connector-java.version>
         <netty-all.version>4.1.85.Final</netty-all.version>
         <noggit.version>0.8</noggit.version>
         <orc.core.version>1.6.7</orc.core.version>
diff --git a/security-admin/pom.xml b/security-admin/pom.xml
index 25aaa0e58..08d289590 100644
--- a/security-admin/pom.xml
+++ b/security-admin/pom.xml
@@ -46,9 +46,9 @@
             <version>${asm.all.version}</version>
         </dependency>
         <dependency>
-            <groupId>com.mchange</groupId>
-            <artifactId>c3p0</artifactId>
-            <version>${c3p0.version}</version>
+            <groupId>com.zaxxer</groupId>
+            <artifactId>HikariCP</artifactId>
+            <version>${HikariCP.version}</version>
         </dependency>
         <dependency>
             <groupId>org.glassfish.hk2.external</groupId>
diff --git a/security-admin/scripts/ranger-admin-site-template.xml 
b/security-admin/scripts/ranger-admin-site-template.xml
index 037260f50..dc4bb52de 100644
--- a/security-admin/scripts/ranger-admin-site-template.xml
+++ b/security-admin/scripts/ranger-admin-site-template.xml
@@ -117,25 +117,21 @@
                <value></value>
        </property>
        <property>
-               <name>ranger.jpa.jdbc.initialpoolsize</name>
+               <name>ranger.jpa.jdbc.idletimeout</name>
                <value></value>
        </property>
        <property>
-               <name>ranger.jpa.jdbc.maxidletime</name>
+               <name>ranger.jpa.jdbc.maxlifetime</name>
                <value></value>
        </property>
        <property>
-               <name>ranger.jpa.jdbc.maxstatements</name>
+               <name>ranger.jpa.jdbc.connectiontimeout</name>
                <value></value>
        </property>
        <property>
                <name>ranger.jpa.jdbc.preferredtestquery</name>
                <value></value>
        </property>
-       <property>
-               <name>ranger.jpa.jdbc.idleconnectiontestperiod</name>
-               <value></value>
-       </property>
        <property>
                <name>ranger.jpa.jdbc.credential.alias</name>
                <value></value>
diff --git a/security-admin/scripts/upgrade_admin.py 
b/security-admin/scripts/upgrade_admin.py
index 85f57b8ce..d340bc603 100755
--- a/security-admin/scripts/upgrade_admin.py
+++ b/security-admin/scripts/upgrade_admin.py
@@ -102,11 +102,10 @@ config2xmlMAP = {
        'jdbc.password':'ranger.jpa.jdbc.password',
        'jdbc.maxPoolSize':'ranger.jpa.jdbc.maxpoolsize',
        'jdbc.minPoolSize':'ranger.jpa.jdbc.minpoolsize',
-       'jdbc.initialPoolSize':'ranger.jpa.jdbc.initialpoolsize',
-       'jdbc.maxIdleTime':'ranger.jpa.jdbc.maxidletime',
-       'jdbc.maxStatements':'ranger.jpa.jdbc.maxstatements',
-       'jdbc.preferredTestQuery':'ranger.jpa.jdbc.preferredtestquery',
-       
'jdbc.idleConnectionTestPeriod':'ranger.jpa.jdbc.idleconnectiontestperiod',
+       'jdbc.idleTimeout':'ranger.jpa.jdbc.idletimeout',
+       'jdbc.maxLifetime':'ranger.jpa.jdbc.maxlifetime',
+       'jdbc.connectionTimeout':'ranger.jpa.jdbc.connectiontimeout',
+    'jdbc.preferredTestQuery':'ranger.jpa.jdbc.preferredTestQuery',
        'xaDB.jdbc.credential.alias':'ranger.jpa.jdbc.credential.alias',
        
'xaDB.jdbc.credential.provider.path':'ranger.jpa.jdbc.credential.provider.path',
        'xa.logs.base.dir':'ranger.logs.base.dir',
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java 
b/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java
index 44375e5ac..81f9a1681 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java
@@ -38,9 +38,6 @@ public class RangerDaoManager extends RangerDaoManagerBase {
        @PersistenceContext(unitName = "defaultPU")
        private EntityManager em;
 
-       @PersistenceContext(unitName = "loggingPU")
-       private EntityManager loggingEM;
-
        @Autowired
        StringUtil stringUtil;
 
@@ -57,9 +54,6 @@ public class RangerDaoManager extends RangerDaoManagerBase {
                        logger.debug("RangerDaoManager.getEntityManager(" + 
persistenceContextUnit + ")");
                }
 
-               if ("loggingPU".equalsIgnoreCase(persistenceContextUnit)) {
-                       return loggingEM;
-               }
                return getEntityManager();
        }
 
diff --git 
a/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java 
b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
index d6de8423c..7d60c5f67 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXAccessAuditDao.java
@@ -34,7 +34,7 @@ import org.springframework.stereotype.Service;
 public class XXAccessAuditDao extends BaseDao<XXAccessAudit> {
        private static final Logger logger = 
LoggerFactory.getLogger(XXAccessAuditDao.class);
     public XXAccessAuditDao( RangerDaoManagerBase daoManager ) {
-               super(daoManager, "loggingPU");
+               super(daoManager);
     }
     public Long getMaxIdOfXXAccessAudit(){
                Long maxXXAccessAuditID=Long.valueOf(0L);
diff --git a/security-admin/src/main/resources/META-INF/persistence.xml 
b/security-admin/src/main/resources/META-INF/persistence.xml
index 20f08d22a..827a312fd 100644
--- a/security-admin/src/main/resources/META-INF/persistence.xml
+++ b/security-admin/src/main/resources/META-INF/persistence.xml
@@ -86,15 +86,5 @@
                        <property name="eclipselink.jdbc.batch-writing" 
value="jdbc"/>
                </properties>
        </persistence-unit>
-       <persistence-unit name="loggingPU">
-               <mapping-file>META-INF/jpa_named_queries.xml</mapping-file>
-        <class>org.apache.ranger.entity.XXAccessAudit</class>
-        <shared-cache-mode>NONE</shared-cache-mode>
-
-               <properties>
-                       <property name="eclipselink.logging.level" 
value="WARNING"/>
-                       <property name="eclipselink.jdbc.batch-writing" 
value="jdbc"/>
-               </properties>
-       </persistence-unit>
 
 </persistence>
diff --git 
a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml 
b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
index 68d8a0303..0217489f8 100644
--- a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
+++ b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
@@ -392,20 +392,14 @@
        </property>
 
        <property>
-               <name>ranger.jpa.jdbc.initialpoolsize</name>
-               <value>5</value>
+               <name>ranger.jpa.jdbc.idletimeout</name>
+               <value>300000</value>
                <description></description>
        </property>
 
        <property>
-               <name>ranger.jpa.jdbc.maxidletime</name>
-               <value>300</value>
-               <description></description>
-       </property>
-
-       <property>
-               <name>ranger.jpa.jdbc.maxstatements</name>
-               <value>500</value>
+               <name>ranger.jpa.jdbc.maxlifetime</name>
+               <value>1800000</value>
                <description></description>
        </property>
 
@@ -416,8 +410,8 @@
        </property>
 
        <property>
-               <name>ranger.jpa.jdbc.idleconnectiontestperiod</name>
-               <value>60</value>
+               <name>ranger.jpa.jdbc.connectiontimeout</name>
+               <value>30000</value>
                <description></description>
        </property>
 
diff --git a/security-admin/src/main/webapp/META-INF/applicationContext.xml 
b/security-admin/src/main/webapp/META-INF/applicationContext.xml
index 0923d6007..ce4afc538 100644
--- a/security-admin/src/main/webapp/META-INF/applicationContext.xml
+++ b/security-admin/src/main/webapp/META-INF/applicationContext.xml
@@ -61,26 +61,6 @@ http://www.springframework.org/schema/util/spring-util.xsd";>
                </property>
        </bean>
 
-       <bean id="loggingEntityManagerFactory" 
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
-               <property name="persistenceUnitName" value="loggingPU" />
-               <property name="dataSource" ref="loggingDataSource" />
-               <property name="jpaVendorAdapter">
-                       <bean 
class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
-                               <property name="databasePlatform" 
value="${ranger.jpa.jdbc.dialect}" />
-                               <property name="showSql" 
value="${ranger.jpa.showsql}" />
-                               <property name="generateDdl" value="false" />
-                       </bean>
-               </property>
-               <property name="jpaPropertyMap">
-               <props>
-                       <prop key="eclipselink.weaving">false</prop>
-               </props>
-                </property>
-               <property name="loadTimeWeaver">
-               <bean 
class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>
-               </property>
-       </bean>
-
        <bean id="xmlPropertyConfigurer" 
class="org.apache.ranger.common.XMLPropertiesUtil" />
 
        <bean id="propertyConfigurer" 
class="org.apache.ranger.common.PropertiesUtil">
@@ -123,89 +103,37 @@ 
http://www.springframework.org/schema/util/spring-util.xsd";>
                <property name="entityManagerFactory" 
ref="defaultEntityManagerFactory" />
        </bean>
 
-       <bean id="transactionManager2" 
class="org.springframework.orm.jpa.JpaTransactionManager">
-               <property name="entityManagerFactory" 
ref="loggingEntityManagerFactory" />
-       </bean>
-
-       <!-- Datasource and Connection Pool Configuration 
http://www.mchange.com/projects/c3p0/index.jsp#configuration_properties -->
-       <bean id="defaultDataSource" 
class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
-               <property name="driverClass">
+       <!-- Datasource and Connection Pool Configuration 
https://github.com/brettwooldridge/HikariCP -->
+       <bean id="defaultDataSource" class="com.zaxxer.hikari.HikariDataSource" 
destroy-method="close">
+               <property name="driverClassName">
                        <value>${ranger.jpa.jdbc.driver}</value>
                </property>
                <property name="jdbcUrl">
                        <value>${ranger.jpa.jdbc.url}</value>
                </property>
-               <property name="user">
+               <property name="username">
                        <value>${ranger.jpa.jdbc.user}</value>
                </property>
                <property name="password">
                        <value>${ranger.jpa.jdbc.password}</value>
                </property>
-               <property name="maxPoolSize">
-                       <!-- <value>20</value> -->
+               <property name="maximumPoolSize">
                        <value>${ranger.jpa.jdbc.maxpoolsize}</value>
                </property>
-               <property name="minPoolSize">
+               <property name="minimumIdle">
                        <value>${ranger.jpa.jdbc.minpoolsize}</value>
                </property>
-               <property name="initialPoolSize">
-                       <value>${ranger.jpa.jdbc.initialpoolsize}</value>
+               <property name="idleTimeout">
+                       <value>${ranger.jpa.jdbc.idletimeout}</value>
                </property>
-               <!-- Seconds a Connection can remain pooled but unused before 
being discarded.
-               Zero means idle connections never expire. -->
-               <property name="maxIdleTime">
-                       <value>${ranger.jpa.jdbc.maxidletime}</value>
-               </property>
-               <property name="maxStatements">
-                       <value>${ranger.jpa.jdbc.maxstatements}</value>
-               </property>
-               <property name="preferredTestQuery">
+               <property name="connectionTestQuery">
                        <value>${ranger.jpa.jdbc.preferredtestquery}</value>
                </property>
-               <property name="idleConnectionTestPeriod">
-                       
<value>${ranger.jpa.jdbc.idleconnectiontestperiod}</value>
-               </property>
-               <property name="statementCacheNumDeferredCloseThreads">
-                       <value>1</value>
-               </property>
-       </bean>
-
-       <bean id="loggingDataSource" 
class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
-               <property name="driverClass">
-                       <value>${ranger.jpa.jdbc.driver}</value>
-               </property>
-               <property name="jdbcUrl">
-                       <value>${ranger.jpa.audit.jdbc.url}</value>
-               </property>
-               <property name="user">
-                       <value>${ranger.jpa.jdbc.user}</value>
-               </property>
-               <property name="password">
-                       <value>${ranger.jpa.jdbc.password}</value>
-               </property>
-               <property name="maxPoolSize">
-                       <!-- <value>20</value> -->
-                       <value>${ranger.jpa.jdbc.maxpoolsize}</value>
-               </property>
-               <property name="minPoolSize">
-                       <value>${ranger.jpa.jdbc.minpoolsize}</value>
-               </property>
-               <property name="initialPoolSize">
-                       <value>${ranger.jpa.jdbc.initialpoolsize}</value>
-               </property>
-               <!-- Seconds a Connection can remain pooled but unused before 
being discarded.
-               Zero means idle connections never expire. -->
-               <property name="maxIdleTime">
-                       <value>${ranger.jpa.jdbc.maxidletime}</value>
-               </property>
-               <property name="maxStatements">
-                       <value>${ranger.jpa.jdbc.maxstatements}</value>
-               </property>
-               <property name="preferredTestQuery">
-                       <value>${ranger.jpa.jdbc.preferredtestquery}</value>
+               <property name="maxLifetime">
+                       <value>${ranger.jpa.jdbc.maxlifetime}</value>
                </property>
-               <property name="idleConnectionTestPeriod">
-                       
<value>${ranger.jpa.jdbc.idleconnectiontestperiod}</value>
+               <property name="connectionTimeout">
+                       <value>${ranger.jpa.jdbc.connectiontimeout}</value>
                </property>
        </bean>
 

Reply via email to