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