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

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


The following commit(s) were added to refs/heads/master by this push:
     new 0024668  NIFI-6952: Evaluate EL for Hive3ConnectionPool properties
0024668 is described below

commit 0024668dd51516276517dca50eb478a8fb0fadff
Author: Matthew Burgess <[email protected]>
AuthorDate: Mon Dec 16 13:30:19 2019 -0500

    NIFI-6952: Evaluate EL for Hive3ConnectionPool properties
    
    Signed-off-by: Pierre Villard <[email protected]>
    
    This closes #3937.
---
 .../apache/nifi/dbcp/hive/Hive3ConnectionPool.java | 24 +++++++++++-----------
 .../nifi/dbcp/hive/Hive3ConnectionPoolTest.java    | 18 ++++++++++++++++
 2 files changed, 30 insertions(+), 12 deletions(-)

diff --git 
a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/main/java/org/apache/nifi/dbcp/hive/Hive3ConnectionPool.java
 
b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/main/java/org/apache/nifi/dbcp/hive/Hive3ConnectionPool.java
index 1895590..01597fa 100644
--- 
a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/main/java/org/apache/nifi/dbcp/hive/Hive3ConnectionPool.java
+++ 
b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/main/java/org/apache/nifi/dbcp/hive/Hive3ConnectionPool.java
@@ -72,28 +72,28 @@ import 
org.apache.nifi.controller.ControllerServiceInitializationContext;
 public class Hive3ConnectionPool extends AbstractControllerService implements 
Hive3DBCPService {
     private static final String ALLOW_EXPLICIT_KEYTAB = 
"NIFI_ALLOW_EXPLICIT_KEYTAB";
     /**
-     * Copied from {@link GenericObjectPoolConfig.DEFAULT_MIN_IDLE} in 
Commons-DBCP 2.5.0
+     * Copied from {@link GenericObjectPoolConfig.DEFAULT_MIN_IDLE} in 
Commons-DBCP 2.6.0
      */
     private static final String DEFAULT_MIN_IDLE = "0";
     /**
-     * Copied from {@link GenericObjectPoolConfig.DEFAULT_MAX_IDLE} in 
Commons-DBCP 2.5.0
+     * Copied from {@link GenericObjectPoolConfig.DEFAULT_MAX_IDLE} in 
Commons-DBCP 2.6.0
      */
     private static final String DEFAULT_MAX_IDLE = "8";
     /**
-     * Copied from private variable {@link 
BasicDataSource.maxConnLifetimeMillis} in Commons-DBCP 2.5.0
+     * Copied from private variable {@link 
BasicDataSource.maxConnLifetimeMillis} in Commons-DBCP 2.6.0
      */
     private static final String DEFAULT_MAX_CONN_LIFETIME = "-1";
     /**
-     * Copied from {@link 
GenericObjectPoolConfig.DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS} in 
Commons-DBCP 2.5.0
+     * Copied from {@link 
GenericObjectPoolConfig.DEFAULT_TIME_BETWEEN_EVICTION_RUNS_MILLIS} in 
Commons-DBCP 2.6.0
      */
     private static final String DEFAULT_EVICTION_RUN_PERIOD = 
String.valueOf(-1L);
     /**
-     * Copied from {@link 
GenericObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS} in Commons-DBCP 
2.5.0
+     * Copied from {@link 
GenericObjectPoolConfig.DEFAULT_MIN_EVICTABLE_IDLE_TIME_MILLIS} in Commons-DBCP 
2.6.0
      * and converted from 1800000L to "1800000 millis" to "30 mins"
      */
     private static final String DEFAULT_MIN_EVICTABLE_IDLE_TIME = "30 mins";
     /**
-     * Copied from {@link 
GenericObjectPoolConfig.DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS} in 
Commons-DBCP 2.5.0
+     * Copied from {@link 
GenericObjectPoolConfig.DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME_MILLIS} in 
Commons-DBCP 2.6.0
      */
     private static final String DEFAULT_SOFT_MIN_EVICTABLE_IDLE_TIME = 
String.valueOf(-1L);
 
@@ -426,12 +426,12 @@ public class Hive3ConnectionPool extends 
AbstractControllerService implements Hi
         final String passw = 
context.getProperty(DB_PASSWORD).evaluateAttributeExpressions().getValue();
         final Long maxWaitMillis = 
context.getProperty(MAX_WAIT_TIME).evaluateAttributeExpressions().asTimePeriod(TimeUnit.MILLISECONDS);
         final Integer maxTotal = 
context.getProperty(MAX_TOTAL_CONNECTIONS).evaluateAttributeExpressions().asInteger();
-        final Integer minIdle = context.getProperty(MIN_IDLE).asInteger();
-        final Integer maxIdle = context.getProperty(MAX_IDLE).asInteger();
-        final Long maxConnLifetimeMillis = 
extractMillisWithInfinite(context.getProperty(MAX_CONN_LIFETIME));
-        final Long timeBetweenEvictionRunsMillis = 
extractMillisWithInfinite(context.getProperty(EVICTION_RUN_PERIOD));
-        final Long minEvictableIdleTimeMillis = 
extractMillisWithInfinite(context.getProperty(MIN_EVICTABLE_IDLE_TIME));
-        final Long softMinEvictableIdleTimeMillis = 
extractMillisWithInfinite(context.getProperty(SOFT_MIN_EVICTABLE_IDLE_TIME));
+        final Integer minIdle = 
context.getProperty(MIN_IDLE).evaluateAttributeExpressions().asInteger();
+        final Integer maxIdle = 
context.getProperty(MAX_IDLE).evaluateAttributeExpressions().asInteger();
+        final Long maxConnLifetimeMillis = 
extractMillisWithInfinite(context.getProperty(MAX_CONN_LIFETIME).evaluateAttributeExpressions());
+        final Long timeBetweenEvictionRunsMillis = 
extractMillisWithInfinite(context.getProperty(EVICTION_RUN_PERIOD).evaluateAttributeExpressions());
+        final Long minEvictableIdleTimeMillis = 
extractMillisWithInfinite(context.getProperty(MIN_EVICTABLE_IDLE_TIME).evaluateAttributeExpressions());
+        final Long softMinEvictableIdleTimeMillis = 
extractMillisWithInfinite(context.getProperty(SOFT_MIN_EVICTABLE_IDLE_TIME).evaluateAttributeExpressions());
 
         dataSource = new BasicDataSource();
         dataSource.setDriverClassName(drv);
diff --git 
a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/test/java/org/apache/nifi/dbcp/hive/Hive3ConnectionPoolTest.java
 
b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/test/java/org/apache/nifi/dbcp/hive/Hive3ConnectionPoolTest.java
index 05ed7b1..bf7e004 100644
--- 
a/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/test/java/org/apache/nifi/dbcp/hive/Hive3ConnectionPoolTest.java
+++ 
b/nifi-nar-bundles/nifi-hive-bundle/nifi-hive3-processors/src/test/java/org/apache/nifi/dbcp/hive/Hive3ConnectionPoolTest.java
@@ -131,6 +131,12 @@ public class Hive3ConnectionPoolTest {
         final String USER = "user";
         final String PASS = "pass";
         final int MAX_CONN = 7;
+        final int MIN_IDLE = 1;
+        final int MAX_IDLE = 6;
+        final String EVICTION_RUN_PERIOD = "10 mins";
+        final String MIN_EVICTABLE_IDLE_TIME = "1 mins";
+        final String SOFT_MIN_EVICTABLE_IDLE_TIME = "1 mins";
+        final String MAX_CONN_LIFETIME = "1 min";
         final String MAX_WAIT = "10 sec"; // 10000 milliseconds
         final String CONF = "/path/to/hive-site.xml";
         hive3ConnectionPool = new Hive3ConnectionPool();
@@ -141,6 +147,12 @@ public class Hive3ConnectionPoolTest {
             put(Hive3ConnectionPool.DB_PASSWORD, "${password}");
             put(Hive3ConnectionPool.MAX_TOTAL_CONNECTIONS, "${maxconn}");
             put(Hive3ConnectionPool.MAX_WAIT_TIME, "${maxwait}");
+            put(Hive3ConnectionPool.MAX_CONN_LIFETIME, "${maxconnlifetime}");
+            put(Hive3ConnectionPool.MIN_IDLE, "${min.idle}");
+            put(Hive3ConnectionPool.MAX_IDLE, "${max.idle}");
+            put(Hive3ConnectionPool.EVICTION_RUN_PERIOD, "${eviction.run}");
+            put(Hive3ConnectionPool.MIN_EVICTABLE_IDLE_TIME, 
"${min.evictable.idle}");
+            put(Hive3ConnectionPool.SOFT_MIN_EVICTABLE_IDLE_TIME, 
"${soft.min.evictable.idle}");
             put(Hive3ConnectionPool.HIVE_CONFIGURATION_RESOURCES, 
"${hiveconf}");
         }};
 
@@ -150,6 +162,12 @@ public class Hive3ConnectionPoolTest {
         registry.setVariable(new VariableDescriptor("password"), PASS);
         registry.setVariable(new VariableDescriptor("maxconn"), 
Integer.toString(MAX_CONN));
         registry.setVariable(new VariableDescriptor("maxwait"), MAX_WAIT);
+        registry.setVariable(new VariableDescriptor("maxconnlifetime"), 
MAX_CONN_LIFETIME);
+        registry.setVariable(new VariableDescriptor("min.idle"), 
Integer.toString(MIN_IDLE));
+        registry.setVariable(new VariableDescriptor("max.idle"), 
Integer.toString(MAX_IDLE));
+        registry.setVariable(new VariableDescriptor("eviction.run"), 
EVICTION_RUN_PERIOD);
+        registry.setVariable(new VariableDescriptor("min.evictable.idle"), 
MIN_EVICTABLE_IDLE_TIME);
+        registry.setVariable(new 
VariableDescriptor("soft.min.evictable.idle"), SOFT_MIN_EVICTABLE_IDLE_TIME);
         registry.setVariable(new VariableDescriptor("hiveconf"), CONF);
 
 

Reply via email to