Repository: nifi
Updated Branches:
  refs/heads/master cf6089196 -> 64cd34016


NIFI-5233 - Add EL support with Variable Registry scope for HBase client service

This closes #2738

Signed-off-by: Mike Thomsen <mikerthom...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/64cd3401
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/64cd3401
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/64cd3401

Branch: refs/heads/master
Commit: 64cd34016bbef89701a82f790a59756157f9d4ab
Parents: cf60891
Author: Pierre Villard <pierre.villard...@gmail.com>
Authored: Thu May 24 16:42:27 2018 +0200
Committer: Mike Thomsen <mikerthom...@gmail.com>
Committed: Fri May 25 10:37:45 2018 -0400

----------------------------------------------------------------------
 .../apache/nifi/hbase/HBaseClientService.java    |  5 +++++
 .../nifi/hbase/HBase_1_1_2_ClientService.java    | 12 ++++++------
 .../hbase/TestHBase_1_1_2_ClientService.java     | 19 ++++++++++++-------
 3 files changed, 23 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi/blob/64cd3401/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/HBaseClientService.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/HBaseClientService.java
 
b/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/HBaseClientService.java
index cd3d851..e5455fd 100644
--- 
a/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/HBaseClientService.java
+++ 
b/nifi-nar-bundles/nifi-standard-services/nifi-hbase-client-service-api/src/main/java/org/apache/nifi/hbase/HBaseClientService.java
@@ -42,24 +42,28 @@ public interface HBaseClientService extends 
ControllerService {
               " such as hbase-site.xml and core-site.xml for kerberos, " +
               "including full paths to the files.")
             .addValidator(new ConfigFilesValidator())
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     PropertyDescriptor ZOOKEEPER_QUORUM = new PropertyDescriptor.Builder()
             .name("ZooKeeper Quorum")
             .description("Comma-separated list of ZooKeeper hosts for HBase. 
Required if Hadoop Configuration Files are not provided.")
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     PropertyDescriptor ZOOKEEPER_CLIENT_PORT = new PropertyDescriptor.Builder()
             .name("ZooKeeper Client Port")
             .description("The port on which ZooKeeper is accepting client 
connections. Required if Hadoop Configuration Files are not provided.")
             .addValidator(StandardValidators.PORT_VALIDATOR)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     PropertyDescriptor ZOOKEEPER_ZNODE_PARENT = new 
PropertyDescriptor.Builder()
             .name("ZooKeeper ZNode Parent")
             .description("The ZooKeeper ZNode Parent value for HBase (example: 
/hbase). Required if Hadoop Configuration Files are not provided.")
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     PropertyDescriptor HBASE_CLIENT_RETRIES = new PropertyDescriptor.Builder()
@@ -67,6 +71,7 @@ public interface HBaseClientService extends ControllerService 
{
             .description("The number of times the HBase client will retry 
connecting. Required if Hadoop Configuration Files are not provided.")
             .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
             .defaultValue("1")
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     PropertyDescriptor PHOENIX_CLIENT_JAR_LOCATION = new 
PropertyDescriptor.Builder()

http://git-wip-us.apache.org/repos/asf/nifi/blob/64cd3401/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/main/java/org/apache/nifi/hbase/HBase_1_1_2_ClientService.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/main/java/org/apache/nifi/hbase/HBase_1_1_2_ClientService.java
 
b/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/main/java/org/apache/nifi/hbase/HBase_1_1_2_ClientService.java
index 01022e3..5d90470 100644
--- 
a/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/main/java/org/apache/nifi/hbase/HBase_1_1_2_ClientService.java
+++ 
b/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/main/java/org/apache/nifi/hbase/HBase_1_1_2_ClientService.java
@@ -199,7 +199,7 @@ public class HBase_1_1_2_ClientService extends 
AbstractControllerService impleme
         }
 
         if (confFileProvided) {
-            final String configFiles = 
validationContext.getProperty(HADOOP_CONF_FILES).getValue();
+            final String configFiles = 
validationContext.getProperty(HADOOP_CONF_FILES).evaluateAttributeExpressions().getValue();
             ValidationResources resources = validationResourceHolder.get();
 
             // if no resources in the holder, or if the holder has different 
resources loaded,
@@ -268,21 +268,21 @@ public class HBase_1_1_2_ClientService extends 
AbstractControllerService impleme
     }
 
     protected Connection createConnection(final ConfigurationContext context) 
throws IOException, InterruptedException {
-        final String configFiles = 
context.getProperty(HADOOP_CONF_FILES).getValue();
+        final String configFiles = 
context.getProperty(HADOOP_CONF_FILES).evaluateAttributeExpressions().getValue();
         final Configuration hbaseConfig = 
getConfigurationFromFiles(configFiles);
 
         // override with any properties that are provided
         if (context.getProperty(ZOOKEEPER_QUORUM).isSet()) {
-            hbaseConfig.set(HBASE_CONF_ZK_QUORUM, 
context.getProperty(ZOOKEEPER_QUORUM).getValue());
+            hbaseConfig.set(HBASE_CONF_ZK_QUORUM, 
context.getProperty(ZOOKEEPER_QUORUM).evaluateAttributeExpressions().getValue());
         }
         if (context.getProperty(ZOOKEEPER_CLIENT_PORT).isSet()) {
-            hbaseConfig.set(HBASE_CONF_ZK_PORT, 
context.getProperty(ZOOKEEPER_CLIENT_PORT).getValue());
+            hbaseConfig.set(HBASE_CONF_ZK_PORT, 
context.getProperty(ZOOKEEPER_CLIENT_PORT).evaluateAttributeExpressions().getValue());
         }
         if (context.getProperty(ZOOKEEPER_ZNODE_PARENT).isSet()) {
-            hbaseConfig.set(HBASE_CONF_ZNODE_PARENT, 
context.getProperty(ZOOKEEPER_ZNODE_PARENT).getValue());
+            hbaseConfig.set(HBASE_CONF_ZNODE_PARENT, 
context.getProperty(ZOOKEEPER_ZNODE_PARENT).evaluateAttributeExpressions().getValue());
         }
         if (context.getProperty(HBASE_CLIENT_RETRIES).isSet()) {
-            hbaseConfig.set(HBASE_CONF_CLIENT_RETRIES, 
context.getProperty(HBASE_CLIENT_RETRIES).getValue());
+            hbaseConfig.set(HBASE_CONF_CLIENT_RETRIES, 
context.getProperty(HBASE_CLIENT_RETRIES).evaluateAttributeExpressions().getValue());
         }
 
         // add any dynamic properties to the HBase configuration

http://git-wip-us.apache.org/repos/asf/nifi/blob/64cd3401/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java
 
b/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java
index 90c408f..544b502 100644
--- 
a/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java
+++ 
b/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/test/java/org/apache/nifi/hbase/TestHBase_1_1_2_ClientService.java
@@ -88,10 +88,15 @@ public class TestHBase_1_1_2_ClientService {
         runner.assertNotValid(service);
         runner.removeControllerService(service);
 
+        runner.setVariable("hadoop-conf-files", 
"src/test/resources/hbase-site.xml");
+        runner.setVariable("zk-quorum", "localhost");
+        runner.setVariable("zk-client-port", "2181");
+        runner.setVariable("zk-znode", "/hbase");
+
         // conf file with no zk properties should be valid
         service = new MockHBaseClientService(table, COL_FAM, 
kerberosPropsWithFile);
         runner.addControllerService("hbaseClientService", service);
-        runner.setProperty(service, 
HBase_1_1_2_ClientService.HADOOP_CONF_FILES, 
"src/test/resources/hbase-site.xml");
+        runner.setProperty(service, 
HBase_1_1_2_ClientService.HADOOP_CONF_FILES, "${hadoop-conf-files}");
         runner.enableControllerService(service);
 
         runner.assertValid(service);
@@ -100,7 +105,7 @@ public class TestHBase_1_1_2_ClientService {
         // only quorum and no conf file should be invalid
         service = new MockHBaseClientService(table, COL_FAM, 
kerberosPropsWithFile);
         runner.addControllerService("hbaseClientService", service);
-        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_QUORUM, "localhost");
+        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_QUORUM, "${zk-quorum}");
         runner.enableControllerService(service);
 
         runner.assertNotValid(service);
@@ -109,8 +114,8 @@ public class TestHBase_1_1_2_ClientService {
         // quorum and port, no znode, no conf file, should be invalid
         service = new MockHBaseClientService(table, COL_FAM, 
kerberosPropsWithFile);
         runner.addControllerService("hbaseClientService", service);
-        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_QUORUM, "localhost");
-        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_CLIENT_PORT, "2181");
+        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_QUORUM, "${zk-quorum}");
+        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_CLIENT_PORT, "${zk-client-port}");
         runner.enableControllerService(service);
 
         runner.assertNotValid(service);
@@ -119,9 +124,9 @@ public class TestHBase_1_1_2_ClientService {
         // quorum, port, and znode, no conf file, should be valid
         service = new MockHBaseClientService(table, COL_FAM, 
kerberosPropsWithFile);
         runner.addControllerService("hbaseClientService", service);
-        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_QUORUM, "localhost");
-        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_CLIENT_PORT, "2181");
-        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_ZNODE_PARENT, "/hbase");
+        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_QUORUM, "${zk-quorum}");
+        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_CLIENT_PORT, "${zk-client-port}");
+        runner.setProperty(service, 
HBase_1_1_2_ClientService.ZOOKEEPER_ZNODE_PARENT, "${zk-znode}");
         runner.enableControllerService(service);
 
         runner.assertValid(service);

Reply via email to