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);