http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITDeleteAzureBlobStorage.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITDeleteAzureBlobStorage.java
 
b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITDeleteAzureBlobStorage.java
index 4af6030..b7481d4 100644
--- 
a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITDeleteAzureBlobStorage.java
+++ 
b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITDeleteAzureBlobStorage.java
@@ -16,18 +16,19 @@
  */
 package org.apache.nifi.processors.azure.storage;
 
-import com.microsoft.azure.storage.StorageException;
-import com.microsoft.azure.storage.blob.CloudBlobContainer;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.security.InvalidKeyException;
+import java.util.UUID;
+
 import org.apache.nifi.processors.azure.AbstractAzureBlobStorageIT;
 import org.apache.nifi.processors.azure.storage.utils.AzureStorageUtils;
 import org.apache.nifi.util.TestRunner;
 import org.apache.nifi.util.TestRunners;
 import org.junit.Test;
 
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.security.InvalidKeyException;
-import java.util.UUID;
+import com.microsoft.azure.storage.StorageException;
+import com.microsoft.azure.storage.blob.CloudBlobContainer;
 
 public class ITDeleteAzureBlobStorage extends AbstractAzureBlobStorageIT{
 
@@ -42,8 +43,6 @@ public class ITDeleteAzureBlobStorage extends 
AbstractAzureBlobStorageIT{
         final TestRunner runner = 
TestRunners.newTestRunner(DeleteAzureBlobStorage.class);
 
         try {
-            runner.setValidateExpressionUsage(true);
-
             runner.setProperty(AzureStorageUtils.ACCOUNT_NAME, 
AzureTestUtil.getAccountName());
             runner.setProperty(AzureStorageUtils.ACCOUNT_KEY, 
AzureTestUtil.getAccountKey());
             runner.setProperty(AzureStorageUtils.CONTAINER, containerName);

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITFetchAzureBlobStorage.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITFetchAzureBlobStorage.java
 
b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITFetchAzureBlobStorage.java
index a9a2487..1810a08 100644
--- 
a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITFetchAzureBlobStorage.java
+++ 
b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITFetchAzureBlobStorage.java
@@ -53,8 +53,6 @@ public class ITFetchAzureBlobStorage {
         final TestRunner runner = TestRunners.newTestRunner(new 
FetchAzureBlobStorage());
 
         try {
-            runner.setValidateExpressionUsage(true);
-
             runner.setProperty(AzureStorageUtils.ACCOUNT_NAME, 
AzureTestUtil.getAccountName());
             runner.setProperty(AzureStorageUtils.ACCOUNT_KEY, 
AzureTestUtil.getAccountKey());
             runner.setProperty(AzureStorageUtils.CONTAINER, containerName);

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITPutAzureStorageBlob.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITPutAzureStorageBlob.java
 
b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITPutAzureStorageBlob.java
index 8b15d85..bfa1d4a 100644
--- 
a/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITPutAzureStorageBlob.java
+++ 
b/nifi-nar-bundles/nifi-azure-bundle/nifi-azure-processors/src/test/java/org/apache/nifi/processors/azure/storage/ITPutAzureStorageBlob.java
@@ -42,8 +42,6 @@ public class ITPutAzureStorageBlob {
         final TestRunner runner = TestRunners.newTestRunner(new 
PutAzureBlobStorage());
 
         try {
-            runner.setValidateExpressionUsage(true);
-
             runner.setProperty(AzureStorageUtils.ACCOUNT_NAME, 
AzureTestUtil.getAccountName());
             runner.setProperty(AzureStorageUtils.ACCOUNT_KEY, 
AzureTestUtil.getAccountKey());
             runner.setProperty(AzureStorageUtils.CONTAINER, containerName);

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/AbstractCassandraProcessor.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/AbstractCassandraProcessor.java
 
b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/AbstractCassandraProcessor.java
index 4b69e65..b0f82f9 100644
--- 
a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/AbstractCassandraProcessor.java
+++ 
b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/AbstractCassandraProcessor.java
@@ -33,6 +33,7 @@ import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.components.PropertyValue;
 import org.apache.nifi.components.ValidationContext;
 import org.apache.nifi.components.ValidationResult;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.logging.ComponentLog;
 import org.apache.nifi.processor.AbstractProcessor;
 import org.apache.nifi.processor.ProcessContext;
@@ -65,7 +66,7 @@ public abstract class AbstractCassandraProcessor extends 
AbstractProcessor {
                     + "comma-separated and in hostname:port format. Example 
node1:port,node2:port,...."
                     + " The default client port for Cassandra is 9042, but the 
port(s) must be explicitly specified.")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.HOSTNAME_PORT_LIST_VALIDATOR)
             .build();
 
@@ -74,7 +75,7 @@ public abstract class AbstractCassandraProcessor extends 
AbstractProcessor {
             .description("The Cassandra Keyspace to connect to. If no keyspace 
is specified, the query will need to "
                     + "include the keyspace name before any table reference.")
             .required(false)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 
@@ -100,7 +101,7 @@ public abstract class AbstractCassandraProcessor extends 
AbstractProcessor {
             .name("Username")
             .description("Username to access the Cassandra cluster")
             .required(false)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 
@@ -109,7 +110,7 @@ public abstract class AbstractCassandraProcessor extends 
AbstractProcessor {
             .description("Password to access the Cassandra cluster")
             .required(false)
             .sensitive(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 
@@ -125,7 +126,7 @@ public abstract class AbstractCassandraProcessor extends 
AbstractProcessor {
             .name("Character Set")
             .description("Specifies the character set of the record data.")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .defaultValue("UTF-8")
             .addValidator(StandardValidators.CHARACTER_SET_VALIDATOR)
             .build();

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/PutCassandraQL.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/PutCassandraQL.java
 
b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/PutCassandraQL.java
index 8155021..ccedb1b 100644
--- 
a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/PutCassandraQL.java
+++ 
b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/PutCassandraQL.java
@@ -40,6 +40,7 @@ import org.apache.nifi.annotation.lifecycle.OnScheduled;
 import org.apache.nifi.annotation.lifecycle.OnShutdown;
 import org.apache.nifi.annotation.lifecycle.OnUnscheduled;
 import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.flowfile.FlowFile;
 import org.apache.nifi.logging.ComponentLog;
 import org.apache.nifi.processor.ProcessContext;
@@ -98,7 +99,7 @@ public class PutCassandraQL extends 
AbstractCassandraProcessor {
                     + "Time Unit, such as: nanos, millis, secs, mins, hrs, 
days. A value of zero means there is no limit. ")
             .defaultValue("0 seconds")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
             .build();
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java
 
b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java
index b007c70..384c395 100644
--- 
a/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java
+++ 
b/nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-processors/src/main/java/org/apache/nifi/processors/cassandra/QueryCassandra.java
@@ -40,6 +40,7 @@ import org.apache.nifi.annotation.behavior.InputRequirement;
 import org.apache.nifi.annotation.lifecycle.OnShutdown;
 import org.apache.nifi.annotation.lifecycle.OnUnscheduled;
 import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.flowfile.FlowFile;
 import org.apache.nifi.flowfile.attributes.CoreAttributes;
 import org.apache.nifi.annotation.behavior.WritesAttribute;
@@ -95,7 +96,7 @@ public class QueryCassandra extends 
AbstractCassandraProcessor {
             .description("CQL select query")
             .required(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .build();
 
     public static final PropertyDescriptor QUERY_TIMEOUT = new 
PropertyDescriptor.Builder()
@@ -105,7 +106,7 @@ public class QueryCassandra extends 
AbstractCassandraProcessor {
                     + "Time Unit, such as: nanos, millis, secs, mins, hrs, 
days. A value of zero means there is no limit. ")
             .defaultValue("0 seconds")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
             .build();
 
@@ -115,7 +116,7 @@ public class QueryCassandra extends 
AbstractCassandraProcessor {
                     + "and means there is no limit.")
             .defaultValue("0")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.INTEGER_VALIDATOR)
             .build();
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src/main/java/org/apache/nifi/cdc/mysql/processors/CaptureChangeMySQL.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src/main/java/org/apache/nifi/cdc/mysql/processors/CaptureChangeMySQL.java
 
b/nifi-nar-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src/main/java/org/apache/nifi/cdc/mysql/processors/CaptureChangeMySQL.java
index d15ad6b..8472d68 100644
--- 
a/nifi-nar-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src/main/java/org/apache/nifi/cdc/mysql/processors/CaptureChangeMySQL.java
+++ 
b/nifi-nar-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src/main/java/org/apache/nifi/cdc/mysql/processors/CaptureChangeMySQL.java
@@ -63,6 +63,7 @@ import org.apache.nifi.components.state.StateMap;
 import org.apache.nifi.distributed.cache.client.Deserializer;
 import org.apache.nifi.distributed.cache.client.DistributedMapCacheClient;
 import org.apache.nifi.distributed.cache.client.Serializer;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.logging.ComponentLog;
 import org.apache.nifi.processor.AbstractSessionFactoryProcessor;
 import org.apache.nifi.processor.ProcessContext;
@@ -174,7 +175,7 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
             .defaultValue("30 seconds")
             .required(true)
             .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor HOSTS = new 
PropertyDescriptor.Builder()
@@ -185,9 +186,8 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
                     + "the hosts in the list in order. If one node goes down 
and failover is enabled for the cluster, then the processor will connect "
                     + "to the active node (assuming its host entry is 
specified in this property.  The default port for MySQL connections is 3306.")
             .required(true)
-            .expressionLanguageSupported(false)
             .addValidator(StandardValidators.HOSTNAME_PORT_LIST_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor DRIVER_NAME = new 
PropertyDescriptor.Builder()
@@ -197,7 +197,7 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
             .defaultValue("com.mysql.jdbc.Driver")
             .required(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor DRIVER_LOCATION = new 
PropertyDescriptor.Builder()
@@ -208,7 +208,7 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
             .defaultValue(null)
             .required(false)
             .addValidator(StandardValidators.createListValidator(true, true, 
StandardValidators.createURLorFileValidator()))
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor USERNAME = new 
PropertyDescriptor.Builder()
@@ -217,7 +217,7 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
             .description("Username to access the MySQL cluster")
             .required(false)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor PASSWORD = new 
PropertyDescriptor.Builder()
@@ -227,7 +227,7 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
             .required(false)
             .sensitive(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor SERVER_ID = new 
PropertyDescriptor.Builder()
@@ -238,7 +238,7 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
                     + "the replication group. If the Server ID is not 
specified, it defaults to 65535.")
             .required(false)
             .addValidator(StandardValidators.POSITIVE_LONG_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor DIST_CACHE_CLIENT = new 
PropertyDescriptor.Builder()
@@ -297,7 +297,7 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
             .defaultValue("0 seconds")
             .required(true)
             .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor INIT_SEQUENCE_ID = new 
PropertyDescriptor.Builder()
@@ -309,7 +309,7 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
                     + "processor to guarantee ordered delivery of CDC events.")
             .required(false)
             .addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor INIT_BINLOG_FILENAME = new 
PropertyDescriptor.Builder()
@@ -321,7 +321,7 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
                     + "Language is supported to enable the use of the Variable 
Registry and/or environment properties.")
             .required(false)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor INIT_BINLOG_POSITION = new 
PropertyDescriptor.Builder()
@@ -334,7 +334,7 @@ public class CaptureChangeMySQL extends 
AbstractSessionFactoryProcessor {
                     + "and/or environment properties.")
             .required(false)
             .addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     private static List<PropertyDescriptor> propDescriptors;

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-confluent-platform-bundle/nifi-confluent-schema-registry-service/src/main/java/org/apache/nifi/confluent/schemaregistry/ConfluentSchemaRegistry.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-confluent-platform-bundle/nifi-confluent-schema-registry-service/src/main/java/org/apache/nifi/confluent/schemaregistry/ConfluentSchemaRegistry.java
 
b/nifi-nar-bundles/nifi-confluent-platform-bundle/nifi-confluent-schema-registry-service/src/main/java/org/apache/nifi/confluent/schemaregistry/ConfluentSchemaRegistry.java
index 3558286..2bf3a61 100644
--- 
a/nifi-nar-bundles/nifi-confluent-platform-bundle/nifi-confluent-schema-registry-service/src/main/java/org/apache/nifi/confluent/schemaregistry/ConfluentSchemaRegistry.java
+++ 
b/nifi-nar-bundles/nifi-confluent-platform-bundle/nifi-confluent-schema-registry-service/src/main/java/org/apache/nifi/confluent/schemaregistry/ConfluentSchemaRegistry.java
@@ -29,6 +29,7 @@ import 
org.apache.nifi.confluent.schemaregistry.client.SchemaRegistryClient;
 import org.apache.nifi.context.PropertyContext;
 import org.apache.nifi.controller.AbstractControllerService;
 import org.apache.nifi.controller.ConfigurationContext;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.processor.util.StandardValidators;
 import org.apache.nifi.schema.access.SchemaField;
 import org.apache.nifi.schema.access.SchemaNotFoundException;
@@ -68,7 +69,7 @@ public class ConfluentSchemaRegistry extends 
AbstractControllerService implement
         .name("url")
         .displayName("Schema Registry URLs")
         .description("A comma-separated list of URLs of the Schema Registry to 
interact with")
-        .expressionLanguageSupported(true)
+        .expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
         .defaultValue("http://localhost:8081";)
         .required(true)
         .addValidator(new MultipleURLValidator())
@@ -107,7 +108,7 @@ public class ConfluentSchemaRegistry extends 
AbstractControllerService implement
         .displayName("Communications Timeout")
         .description("Specifies how long to wait to receive data from the 
Schema Registry before considering the communications a failure")
         .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-        .expressionLanguageSupported(false)
+        .expressionLanguageSupported(ExpressionLanguageScope.NONE)
         .defaultValue("30 secs")
         .required(true)
         .build();

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/AbstractCouchbaseProcessor.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/AbstractCouchbaseProcessor.java
 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/AbstractCouchbaseProcessor.java
index 49f83b8..4a04c16 100644
--- 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/AbstractCouchbaseProcessor.java
+++ 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/AbstractCouchbaseProcessor.java
@@ -25,6 +25,7 @@ import java.util.Set;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.couchbase.CouchbaseAttributes;
 import org.apache.nifi.couchbase.CouchbaseClusterControllerService;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.flowfile.FlowFile;
 import org.apache.nifi.logging.ComponentLog;
 import org.apache.nifi.processor.AbstractProcessor;
@@ -52,7 +53,7 @@ public abstract class AbstractCouchbaseProcessor extends 
AbstractProcessor {
 
     public static final PropertyDescriptor DOC_ID = new 
PropertyDescriptor.Builder().name("Document Id")
         .description("A static, fixed Couchbase document id, or an expression 
to construct the Couchbase document id.")
-        .expressionLanguageSupported(true)
+        
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
         .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
         .build();
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/GetCouchbaseKey.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/GetCouchbaseKey.java
 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/GetCouchbaseKey.java
index 96946b2..2692abc 100644
--- 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/GetCouchbaseKey.java
+++ 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/GetCouchbaseKey.java
@@ -94,7 +94,7 @@ public class GetCouchbaseKey extends 
AbstractCouchbaseProcessor {
         final long startNanos = System.nanoTime();
         final ComponentLog logger = getLogger();
         String docId = null;
-        if (!StringUtils.isEmpty(context.getProperty(DOC_ID).getValue())) {
+        if (context.getProperty(DOC_ID).isSet()) {
             docId = 
context.getProperty(DOC_ID).evaluateAttributeExpressions(inFile).getValue();
         } else {
             final byte[] content = new byte[(int) inFile.getSize()];

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/PutCouchbaseKey.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/PutCouchbaseKey.java
 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/PutCouchbaseKey.java
index 7027fff..6cfe8f5 100644
--- 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/PutCouchbaseKey.java
+++ 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/main/java/org/apache/nifi/processors/couchbase/PutCouchbaseKey.java
@@ -24,7 +24,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.nifi.annotation.behavior.SystemResourceConsideration;
 import org.apache.nifi.annotation.behavior.InputRequirement;
 import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
@@ -120,7 +119,7 @@ public class PutCouchbaseKey extends 
AbstractCouchbaseProcessor {
         });
 
         String docId = flowFile.getAttribute(CoreAttributes.UUID.key());
-        if (!StringUtils.isEmpty(context.getProperty(DOC_ID).getValue())) {
+        if (context.getProperty(DOC_ID).isSet()) {
             docId = 
context.getProperty(DOC_ID).evaluateAttributeExpressions(flowFile).getValue();
         }
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestCouchbaseClusterService.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestCouchbaseClusterService.java
 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestCouchbaseClusterService.java
index eb2220d..703bc5f 100644
--- 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestCouchbaseClusterService.java
+++ 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestCouchbaseClusterService.java
@@ -40,7 +40,6 @@ public class TestCouchbaseClusterService {
         
System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.couchbase.TestCouchbaseClusterService",
 "debug");
 
         testRunner = TestRunners.newTestRunner(PutCouchbaseKey.class);
-        testRunner.setValidateExpressionUsage(false);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestGetCouchbaseKey.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestGetCouchbaseKey.java
 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestGetCouchbaseKey.java
index 92f999e..154be53 100644
--- 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestGetCouchbaseKey.java
+++ 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestGetCouchbaseKey.java
@@ -74,7 +74,6 @@ public class TestGetCouchbaseKey {
         
System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.processors.couchbase.TestGetCouchbaseKey",
 "debug");
 
         testRunner = TestRunners.newTestRunner(GetCouchbaseKey.class);
-        testRunner.setValidateExpressionUsage(false);
     }
 
     private void setupMockBucket(Bucket bucket) throws InitializationException 
{

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestPutCouchbaseKey.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestPutCouchbaseKey.java
 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestPutCouchbaseKey.java
index f870593..1599bf4 100644
--- 
a/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestPutCouchbaseKey.java
+++ 
b/nifi-nar-bundles/nifi-couchbase-bundle/nifi-couchbase-processors/src/test/java/org/apache/nifi/processors/couchbase/TestPutCouchbaseKey.java
@@ -73,7 +73,6 @@ public class TestPutCouchbaseKey {
         
System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.processors.couchbase.TestPutCouchbaseKey",
 "debug");
 
         testRunner = TestRunners.newTestRunner(PutCouchbaseKey.class);
-        testRunner.setValidateExpressionUsage(false);
     }
 
     private void setupMockBucket(Bucket bucket) throws InitializationException 
{

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
 
b/nifi-nar-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
index fe8d650..bba9658 100644
--- 
a/nifi-nar-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
+++ 
b/nifi-nar-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
@@ -16,7 +16,6 @@
  */
 package org.apache.nifi.reporting.datadog;
 
-
 import com.codahale.metrics.Gauge;
 import com.codahale.metrics.MetricRegistry;
 import com.google.common.base.Optional;
@@ -34,6 +33,7 @@ import org.apache.nifi.controller.status.ConnectionStatus;
 import org.apache.nifi.controller.status.PortStatus;
 import org.apache.nifi.controller.status.ProcessGroupStatus;
 import org.apache.nifi.controller.status.ProcessorStatus;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.processor.util.StandardValidators;
 import org.apache.nifi.reporting.AbstractReportingTask;
 import org.apache.nifi.reporting.ReportingContext;
@@ -48,8 +48,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 
-
-
 @Tags({"reporting", "datadog", "metrics"})
 @CapabilityDescription("Publishes metrics from NiFi to datadog. For accurate 
and informative reporting, components should have unique names.")
 public class DataDogReportingTask extends AbstractReportingTask {
@@ -73,7 +71,6 @@ public class DataDogReportingTask extends 
AbstractReportingTask {
     static final PropertyDescriptor API_KEY = new PropertyDescriptor.Builder()
             .name("API key")
             .description("Datadog API key. If specified value is 'agent', 
local Datadog agent will be used.")
-            .expressionLanguageSupported(false)
             .required(false)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
@@ -82,7 +79,7 @@ public class DataDogReportingTask extends 
AbstractReportingTask {
             .name("Metrics prefix")
             .description("Prefix to be added before every metric")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .defaultValue("nifi")
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
@@ -92,7 +89,7 @@ public class DataDogReportingTask extends 
AbstractReportingTask {
             .description("Environment, dataflow is running in. " +
                     "This property will be included as metrics tag.")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .defaultValue("dev")
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-druid-bundle/nifi-druid-controller-service/src/main/java/org/apache/nifi/controller/druid/DruidTranquilityController.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-druid-bundle/nifi-druid-controller-service/src/main/java/org/apache/nifi/controller/druid/DruidTranquilityController.java
 
b/nifi-nar-bundles/nifi-druid-bundle/nifi-druid-controller-service/src/main/java/org/apache/nifi/controller/druid/DruidTranquilityController.java
index e5af8ea..158579a 100644
--- 
a/nifi-nar-bundles/nifi-druid-bundle/nifi-druid-controller-service/src/main/java/org/apache/nifi/controller/druid/DruidTranquilityController.java
+++ 
b/nifi-nar-bundles/nifi-druid-bundle/nifi-druid-controller-service/src/main/java/org/apache/nifi/controller/druid/DruidTranquilityController.java
@@ -44,6 +44,7 @@ import org.apache.nifi.components.ValidationResult;
 import org.apache.nifi.controller.AbstractControllerService;
 import org.apache.nifi.controller.ConfigurationContext;
 import org.apache.nifi.controller.api.druid.DruidTranquilityService;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.logging.ComponentLog;
 import org.apache.nifi.processor.util.StandardValidators;
 import org.codehaus.jackson.map.ObjectMapper;
@@ -96,7 +97,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .description("A data source is the Druid equivalent of a database 
table.")
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor ZOOKEEPER_CONNECTION_STRING = new 
PropertyDescriptor.Builder()
@@ -105,7 +106,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .description("A comma-separated list of host:port pairs, each 
corresponding to a ZooKeeper server. Ex: localhost:2181")
             .required(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor ZOOKEEPER_RETRY_BASE_SLEEP_TIME = 
new PropertyDescriptor.Builder()
@@ -114,7 +115,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .description("When a connection to Zookeeper needs to be retried, 
this property specifies the amount of time (in milliseconds) to wait at first 
before retrying.")
             .required(true)
             .defaultValue("1000")
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR)
             .build();
 
@@ -124,7 +125,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .description("When a connection to Zookeeper needs to be retried, 
this property specifies how many times to attempt reconnection.")
             .required(true)
             .defaultValue("20")
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
             .build();
 
@@ -134,7 +135,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .description("When a connection to Zookeeper needs to be retried, 
this property specifies the amount of time to sleep (in milliseconds) between 
retries.")
             .required(true)
             .defaultValue("30000")
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR)
             .build();
 
@@ -145,7 +146,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .required(true)
             .defaultValue("druid/overlord")
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor DRUID_DISCOVERY_PATH = new 
PropertyDescriptor.Builder()
@@ -155,7 +156,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .required(true)
             .defaultValue("/druid/discovery")
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor CLUSTER_PARTITIONS = new 
PropertyDescriptor.Builder()
@@ -164,7 +165,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .description("The number of partitions in the Druid cluster.")
             .required(true)
             .defaultValue("1")
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
             .build();
 
@@ -174,7 +175,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .description("The replication factor for the Druid cluster.")
             .required(true)
             .defaultValue("1")
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
             .build();
 
@@ -185,7 +186,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .required(true)
             .defaultValue("timestamp")
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor AGGREGATOR_JSON = new 
PropertyDescriptor.Builder()
@@ -226,7 +227,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
                     return new 
ValidationResult.Builder().subject(subject).input(value).valid(false).explanation(subject
 + " is not valid Aggregator JSON").build();
                 }
             })
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor DIMENSIONS_LIST = new 
PropertyDescriptor.Builder()
@@ -235,7 +236,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .description("A comma separated list of field names that will be 
stored as dimensions on ingest.")
             .required(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor SEGMENT_GRANULARITY = new 
PropertyDescriptor.Builder()
@@ -285,7 +286,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .required(true)
             .defaultValue("2000")
             .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor MAX_PENDING_BATCHES = new 
PropertyDescriptor.Builder()
@@ -295,7 +296,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .required(true)
             .defaultValue("5")
             .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor LINGER_MILLIS = new 
PropertyDescriptor.Builder()
@@ -307,7 +308,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
             .required(true)
             .defaultValue("1000")
             .addValidator(StandardValidators.INTEGER_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     private static final List<PropertyDescriptor> properties;
@@ -381,7 +382,7 @@ public class DruidTranquilityController extends 
AbstractControllerService implem
         final String windowPeriod = 
context.getProperty(WINDOW_PERIOD).getValue();
         final String indexRetryPeriod = 
context.getProperty(INDEX_RETRY_PERIOD).getValue();
         final String aggregatorJSON = 
context.getProperty(AGGREGATOR_JSON).evaluateAttributeExpressions().getValue();
-        final String dimensionsStringList = 
context.getProperty(DIMENSIONS_LIST).getValue();
+        final String dimensionsStringList = 
context.getProperty(DIMENSIONS_LIST).evaluateAttributeExpressions().getValue();
         final int maxBatchSize = 
context.getProperty(MAX_BATCH_SIZE).evaluateAttributeExpressions().asInteger();
         final int maxPendingBatches = 
context.getProperty(MAX_PENDING_BATCHES).evaluateAttributeExpressions().asInteger();
         final int lingerMillis = 
context.getProperty(LINGER_MILLIS).evaluateAttributeExpressions().asInteger();

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-druid-bundle/nifi-druid-processors/src/main/java/org/apache/nifi/processors/druid/PutDruidRecord.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-druid-bundle/nifi-druid-processors/src/main/java/org/apache/nifi/processors/druid/PutDruidRecord.java
 
b/nifi-nar-bundles/nifi-druid-bundle/nifi-druid-processors/src/main/java/org/apache/nifi/processors/druid/PutDruidRecord.java
index 19e47a9..fa6cfac 100644
--- 
a/nifi-nar-bundles/nifi-druid-bundle/nifi-druid-processors/src/main/java/org/apache/nifi/processors/druid/PutDruidRecord.java
+++ 
b/nifi-nar-bundles/nifi-druid-bundle/nifi-druid-processors/src/main/java/org/apache/nifi/processors/druid/PutDruidRecord.java
@@ -51,6 +51,8 @@ import org.apache.nifi.serialization.RecordReader;
 import org.apache.nifi.serialization.RecordReaderFactory;
 
 import org.apache.nifi.controller.api.druid.DruidTranquilityService;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+
 import com.metamx.tranquility.tranquilizer.Tranquilizer;
 import org.apache.nifi.serialization.RecordSetWriter;
 import org.apache.nifi.serialization.RecordSetWriterFactory;
@@ -86,7 +88,7 @@ public class PutDruidRecord extends 
AbstractSessionFactoryProcessor {
             .displayName("Record Writer")
             .description("The Record Writer to use in order to serialize the 
data to outgoing relationships.")
             .identifiesControllerService(RecordSetWriterFactory.class)
-            .expressionLanguageSupported(false)
+            .expressionLanguageSupported(ExpressionLanguageScope.NONE)
             .required(true)
             .build();
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearch5Processor.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearch5Processor.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearch5Processor.java
index 2e060a5..5017d2c 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearch5Processor.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearch5Processor.java
@@ -19,6 +19,7 @@ package org.apache.nifi.processors.elasticsearch;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.components.ValidationContext;
 import org.apache.nifi.components.ValidationResult;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.processor.AbstractProcessor;
 import org.apache.nifi.processor.ProcessContext;
 import org.apache.nifi.processor.exception.ProcessException;
@@ -51,7 +52,7 @@ abstract class AbstractElasticsearch5Processor extends 
AbstractProcessor {
             .required(true)
             .defaultValue("UTF-8")
             .addValidator(StandardValidators.CHARACTER_SET_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .build();
 
     public static final PropertyDescriptor USERNAME = new 
PropertyDescriptor.Builder()
@@ -60,7 +61,7 @@ abstract class AbstractElasticsearch5Processor extends 
AbstractProcessor {
             .description("Username to access the Elasticsearch cluster")
             .required(false)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor PASSWORD = new 
PropertyDescriptor.Builder()

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearch5TransportClientProcessor.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearch5TransportClientProcessor.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearch5TransportClientProcessor.java
index 6449093..4a356b3 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearch5TransportClientProcessor.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearch5TransportClientProcessor.java
@@ -17,6 +17,7 @@
 package org.apache.nifi.processors.elasticsearch;
 
 import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.logging.ComponentLog;
 import org.apache.nifi.processor.ProcessContext;
 import org.apache.nifi.processor.exception.ProcessException;
@@ -51,7 +52,7 @@ abstract class AbstractElasticsearch5TransportClientProcessor 
extends AbstractEl
             .required(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .defaultValue("elasticsearch")
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     protected static final PropertyDescriptor HOSTS = new 
PropertyDescriptor.Builder()
@@ -61,7 +62,7 @@ abstract class AbstractElasticsearch5TransportClientProcessor 
extends AbstractEl
                     + "host1:port,host2:port,....  For example 
testcluster:9300. This processor uses the Transport Client to "
                     + "connect to hosts. The default transport client port is 
9300.")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .addValidator(StandardValidators.HOSTNAME_PORT_LIST_VALIDATOR)
             .build();
 
@@ -75,7 +76,7 @@ abstract class AbstractElasticsearch5TransportClientProcessor 
extends AbstractEl
             .required(false)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .dynamicallyModifiesClasspath(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     protected static final PropertyDescriptor PING_TIMEOUT = new 
PropertyDescriptor.Builder()
@@ -86,7 +87,7 @@ abstract class AbstractElasticsearch5TransportClientProcessor 
extends AbstractEl
             .required(true)
             .defaultValue("5s")
             .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     protected static final PropertyDescriptor SAMPLER_INTERVAL = new 
PropertyDescriptor.Builder()
@@ -97,7 +98,7 @@ abstract class AbstractElasticsearch5TransportClientProcessor 
extends AbstractEl
             .required(true)
             .defaultValue("5s")
             .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     protected final AtomicReference<Client> esClient = new AtomicReference<>();

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/DeleteElasticsearch5.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/DeleteElasticsearch5.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/DeleteElasticsearch5.java
index 9e77775..f4a6dba 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/DeleteElasticsearch5.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/DeleteElasticsearch5.java
@@ -26,6 +26,7 @@ import org.apache.nifi.annotation.documentation.SeeAlso;
 import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.annotation.lifecycle.OnStopped;
 import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.flowfile.FlowFile;
 import org.apache.nifi.logging.ComponentLog;
 import org.apache.nifi.processor.ProcessContext;
@@ -83,7 +84,7 @@ public class DeleteElasticsearch5 extends 
AbstractElasticsearch5TransportClientP
             .displayName("Document Identifier")
             .description("The identifier for the document to be deleted")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 
@@ -92,7 +93,7 @@ public class DeleteElasticsearch5 extends 
AbstractElasticsearch5TransportClientP
             .displayName("Index")
             .description("The name of the index to delete the document from")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 
@@ -101,7 +102,7 @@ public class DeleteElasticsearch5 extends 
AbstractElasticsearch5TransportClientP
             .displayName("Type")
             .description("The type of this document to be deleted")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/FetchElasticsearch5.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/FetchElasticsearch5.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/FetchElasticsearch5.java
index 9041038..4805c56 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/FetchElasticsearch5.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/FetchElasticsearch5.java
@@ -26,6 +26,7 @@ import org.apache.nifi.annotation.documentation.SeeAlso;
 import org.apache.nifi.annotation.documentation.Tags;
 import org.apache.nifi.annotation.lifecycle.OnStopped;
 import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.flowfile.FlowFile;
 import org.apache.nifi.flowfile.attributes.CoreAttributes;
 import org.apache.nifi.logging.ComponentLog;
@@ -88,7 +89,7 @@ public class FetchElasticsearch5 extends 
AbstractElasticsearch5TransportClientPr
             .displayName("Document Identifier")
             .description("The identifier for the document to be fetched")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 
@@ -97,7 +98,7 @@ public class FetchElasticsearch5 extends 
AbstractElasticsearch5TransportClientPr
             .displayName("Index")
             .description("The name of the index to read from")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 
@@ -106,7 +107,7 @@ public class FetchElasticsearch5 extends 
AbstractElasticsearch5TransportClientPr
             .displayName("Type")
             .description("The type of this document (used by Elasticsearch for 
indexing and searching)")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/PutElasticsearch5.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/PutElasticsearch5.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/PutElasticsearch5.java
index 1075592..2cfe01d 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/PutElasticsearch5.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/main/java/org/apache/nifi/processors/elasticsearch/PutElasticsearch5.java
@@ -29,6 +29,7 @@ import org.apache.nifi.annotation.lifecycle.OnStopped;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.components.ValidationResult;
 import org.apache.nifi.components.Validator;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.flowfile.FlowFile;
 import org.apache.nifi.logging.ComponentLog;
 import org.apache.nifi.processor.ProcessContext;
@@ -91,7 +92,7 @@ public class PutElasticsearch5 extends 
AbstractElasticsearch5TransportClientProc
             .displayName("Identifier Attribute")
             .description("The name of the attribute containing the identifier 
for each FlowFile")
             .required(true)
-            .expressionLanguageSupported(false)
+            .expressionLanguageSupported(ExpressionLanguageScope.NONE)
             .addValidator(StandardValidators.ATTRIBUTE_KEY_VALIDATOR)
             .build();
 
@@ -100,7 +101,7 @@ public class PutElasticsearch5 extends 
AbstractElasticsearch5TransportClientProc
             .displayName("Index")
             .description("The name of the index to insert into")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(NON_EMPTY_EL_VALIDATOR)
             .build();
 
@@ -109,7 +110,7 @@ public class PutElasticsearch5 extends 
AbstractElasticsearch5TransportClientProc
             .displayName("Type")
             .description("The type of this document (used by Elasticsearch for 
indexing and searching)")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(NON_EMPTY_EL_VALIDATOR)
             .build();
 
@@ -118,7 +119,7 @@ public class PutElasticsearch5 extends 
AbstractElasticsearch5TransportClientProc
             .displayName("Index Operation")
             .description("The type of the operation used to index (index, 
update, upsert)")
             .required(true)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
             .addValidator(NON_EMPTY_EL_VALIDATOR)
             .defaultValue("index")
             .build();
@@ -130,7 +131,7 @@ public class PutElasticsearch5 extends 
AbstractElasticsearch5TransportClientProc
             .required(true)
             .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
             .defaultValue("100")
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     private static final Set<Relationship> relationships;

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/ITDeleteElasticsearch5Test.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/ITDeleteElasticsearch5Test.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/ITDeleteElasticsearch5Test.java
index f9dfe58..0ce65a3 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/ITDeleteElasticsearch5Test.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/ITDeleteElasticsearch5Test.java
@@ -16,6 +16,10 @@
  */
 package org.apache.nifi.processors.elasticsearch;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+
 import org.apache.nifi.util.MockFlowFile;
 import org.apache.nifi.util.TestRunner;
 import org.apache.nifi.util.TestRunners;
@@ -26,10 +30,6 @@ import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-
 /**
  * Integration test for delete processor. Please set the hosts, cluster name, 
index and type etc before running the integrations.
  */
@@ -59,7 +59,6 @@ public class ITDeleteElasticsearch5Test {
     @Test
     public void testPutAndDeleteIntegrationTestSuccess() {
         final TestRunner runnerPut = TestRunners.newTestRunner(new 
PutElasticsearch5());
-        runnerPut.setValidateExpressionUsage(false);
         
runnerPut.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME,
 clusterName);
         
runnerPut.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runnerPut.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT,
 "5s");
@@ -82,7 +81,6 @@ public class ITDeleteElasticsearch5Test {
         runnerPut.assertAllFlowFilesTransferred(PutElasticsearch5.REL_SUCCESS, 
1);
 
         final TestRunner runnerDelete = TestRunners.newTestRunner(new 
DeleteElasticsearch5());
-        runnerDelete.setValidateExpressionUsage(false);
 
         
runnerDelete.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME,
 clusterName);
         
runnerDelete.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
@@ -108,7 +106,6 @@ public class ITDeleteElasticsearch5Test {
     @Test
     public void testDeleteIntegrationTestDocumentNotFound() {
         final TestRunner runnerDelete = TestRunners.newTestRunner(new 
DeleteElasticsearch5());
-        runnerDelete.setValidateExpressionUsage(false);
 
         
runnerDelete.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME,
 clusterName);
         
runnerDelete.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
@@ -138,7 +135,6 @@ public class ITDeleteElasticsearch5Test {
     @Test
     public void testDeleteIntegrationTestBadIndex() {
         final TestRunner runnerDelete = TestRunners.newTestRunner(new 
DeleteElasticsearch5());
-        runnerDelete.setValidateExpressionUsage(false);
 
         
runnerDelete.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME,
 clusterName);
         
runnerDelete.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
@@ -168,7 +164,6 @@ public class ITDeleteElasticsearch5Test {
     @Test
     public void testDeleteIntegrationTestBadType() {
         final TestRunner runnerDelete = TestRunners.newTestRunner(new 
DeleteElasticsearch5());
-        runnerDelete.setValidateExpressionUsage(false);
 
         
runnerDelete.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME,
 clusterName);
         
runnerDelete.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestDeleteElasticsearch5.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestDeleteElasticsearch5.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestDeleteElasticsearch5.java
index 83e8a2d..a6c9811 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestDeleteElasticsearch5.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestDeleteElasticsearch5.java
@@ -16,6 +16,13 @@
  */
 package org.apache.nifi.processors.elasticsearch;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.concurrent.ExecutionException;
+
 import org.apache.nifi.processor.ProcessContext;
 import org.apache.nifi.util.MockFlowFile;
 import org.apache.nifi.util.TestRunner;
@@ -28,13 +35,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.concurrent.ExecutionException;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
 public class TestDeleteElasticsearch5 {
 
     private String documentId;
@@ -71,7 +71,6 @@ public class TestDeleteElasticsearch5 {
 
         runner = TestRunners.newTestRunner(mockDeleteProcessor);
 
-        runner.setValidateExpressionUsage(true);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"5s");
@@ -227,7 +226,6 @@ public class TestDeleteElasticsearch5 {
         };
         runner = TestRunners.newTestRunner(mockDeleteProcessor);
 
-        runner.setValidateExpressionUsage(true);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"5s");
@@ -275,7 +273,6 @@ public class TestDeleteElasticsearch5 {
         };
         runner = TestRunners.newTestRunner(mockDeleteProcessor);
 
-        runner.setValidateExpressionUsage(true);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"5s");

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestFetchElasticsearch5.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestFetchElasticsearch5.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestFetchElasticsearch5.java
index 26476d0..8605b09 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestFetchElasticsearch5.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestFetchElasticsearch5.java
@@ -83,7 +83,6 @@ public class TestFetchElasticsearch5 {
     @Test
     public void testFetchElasticsearch5OnTrigger() throws IOException {
         runner = TestRunners.newTestRunner(new 
FetchElasticsearch5TestProcessor(true)); // all docs are found
-        runner.setValidateExpressionUsage(true);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"5s");
@@ -110,7 +109,6 @@ public class TestFetchElasticsearch5 {
     @Test
     public void testFetchElasticsearch5OnTriggerEL() throws IOException {
         runner = TestRunners.newTestRunner(new 
FetchElasticsearch5TestProcessor(true)); // all docs are found
-        runner.setValidateExpressionUsage(true);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"${cluster.name}");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"${hosts}");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"${ping.timeout}");
@@ -147,7 +145,6 @@ public class TestFetchElasticsearch5 {
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.SAMPLER_INTERVAL,
 "5s");
         runner.setProperty(FetchElasticsearch5.INDEX, "doc");
         runner.setProperty(FetchElasticsearch5.TYPE, "status");
-        runner.setValidateExpressionUsage(true);
         runner.setProperty(FetchElasticsearch5.DOC_ID, "${doc_id}");
 
         runner.enqueue(docExample, new HashMap<String, String>() {{
@@ -171,7 +168,6 @@ public class TestFetchElasticsearch5 {
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.SAMPLER_INTERVAL,
 "5s");
         runner.setProperty(FetchElasticsearch5.INDEX, "doc");
         runner.setProperty(FetchElasticsearch5.TYPE, "status");
-        runner.setValidateExpressionUsage(true);
         runner.setProperty(FetchElasticsearch5.DOC_ID, "${doc_id}");
 
         runner.assertNotValid();
@@ -187,7 +183,6 @@ public class TestFetchElasticsearch5 {
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.SAMPLER_INTERVAL,
 "5s");
         runner.setProperty(FetchElasticsearch5.INDEX, "doc");
         runner.setProperty(FetchElasticsearch5.TYPE, "status");
-        runner.setValidateExpressionUsage(true);
         runner.setProperty(FetchElasticsearch5.DOC_ID, "${doc_id}");
 
         // No Node Available exception
@@ -273,7 +268,6 @@ public class TestFetchElasticsearch5 {
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.SAMPLER_INTERVAL,
 "5s");
         runner.setProperty(FetchElasticsearch5.INDEX, "doc");
         runner.setProperty(FetchElasticsearch5.TYPE, "status");
-        runner.setValidateExpressionUsage(true);
         runner.setProperty(FetchElasticsearch5.DOC_ID, "${doc_id}");
 
         // Allow time for the controller service to fully initialize
@@ -387,7 +381,6 @@ public class TestFetchElasticsearch5 {
         System.out.println("Starting test " + new Object() {
         }.getClass().getEnclosingMethod().getName());
         final TestRunner runner = TestRunners.newTestRunner(new 
FetchElasticsearch5());
-        runner.setValidateExpressionUsage(true);
 
         //Local Cluster - Mac pulled from brew
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch_brew");
@@ -418,7 +411,6 @@ public class TestFetchElasticsearch5 {
         System.out.println("Starting test " + new Object() {
         }.getClass().getEnclosingMethod().getName());
         final TestRunner runner = TestRunners.newTestRunner(new 
FetchElasticsearch5());
-        runner.setValidateExpressionUsage(true);
 
         //Local Cluster - Mac pulled from brew
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch_brew");

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestPutElasticsearch5.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestPutElasticsearch5.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestPutElasticsearch5.java
index 3e80731..eccbaf2 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestPutElasticsearch5.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-5-processors/src/test/java/org/apache/nifi/processors/elasticsearch/TestPutElasticsearch5.java
@@ -16,6 +16,22 @@
  */
 package org.apache.nifi.processors.elasticsearch;
 
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.InetSocketAddress;
+import java.net.MalformedURLException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+
 import org.apache.nifi.logging.ComponentLog;
 import org.apache.nifi.util.MockFlowFile;
 import org.apache.nifi.util.TestRunner;
@@ -45,23 +61,6 @@ import org.junit.Test;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.InetSocketAddress;
-import java.net.MalformedURLException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
 public class TestPutElasticsearch5 {
 
     private InputStream docExample;
@@ -81,7 +80,6 @@ public class TestPutElasticsearch5 {
     @Test
     public void testPutElasticSearchOnTrigger() throws IOException {
         runner = TestRunners.newTestRunner(new 
PutElasticsearch5TestProcessor(false)); // no failures
-        runner.setValidateExpressionUsage(true);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"5s");
@@ -109,7 +107,6 @@ public class TestPutElasticsearch5 {
     @Test
     public void testPutElasticSearchOnTriggerEL() throws IOException {
         runner = TestRunners.newTestRunner(new 
PutElasticsearch5TestProcessor(false)); // no failures
-        runner.setValidateExpressionUsage(true);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"${cluster.name}");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"${hosts}");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"${ping.timeout}");
@@ -142,7 +139,6 @@ public class TestPutElasticsearch5 {
     @Test
     public void testPutElasticSearchOnTriggerBadDocIdentifier() throws 
IOException {
         runner = TestRunners.newTestRunner(new 
PutElasticsearch5TestProcessor(false)); // no failures
-        runner.setValidateExpressionUsage(true);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"5s");
@@ -167,7 +163,6 @@ public class TestPutElasticsearch5 {
     @Test
     public void testPutElasticSearchOnTriggerWithFailures() throws IOException 
{
         runner = TestRunners.newTestRunner(new 
PutElasticsearch5TestProcessor(true)); // simulate failures
-        runner.setValidateExpressionUsage(false);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"5s");
@@ -198,7 +193,6 @@ public class TestPutElasticsearch5 {
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.SAMPLER_INTERVAL,
 "5s");
         runner.setProperty(PutElasticsearch5.INDEX, "doc");
         runner.setProperty(PutElasticsearch5.TYPE, "status");
-        runner.setValidateExpressionUsage(true);
         runner.setProperty(PutElasticsearch5.ID_ATTRIBUTE, "doc_id");
 
         // No Node Available exception
@@ -255,7 +249,6 @@ public class TestPutElasticsearch5 {
     @Test
     public void testPutElasticsearch5OnTriggerWithNoIdAttribute() throws 
IOException {
         runner = TestRunners.newTestRunner(new 
PutElasticsearch5TestProcessor(true)); // simulate failures
-        runner.setValidateExpressionUsage(false);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"5s");
@@ -276,7 +269,6 @@ public class TestPutElasticsearch5 {
     @Test
     public void testPutElasticsearch5OnTriggerWithIndexFromAttribute() throws 
IOException {
         runner = TestRunners.newTestRunner(new 
PutElasticsearch5TestProcessor(false));
-        runner.setValidateExpressionUsage(false);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"5s");
@@ -313,7 +305,6 @@ public class TestPutElasticsearch5 {
     @Test
     public void testPutElasticSearchOnTriggerWithInvalidIndexOp() throws 
IOException {
         runner = TestRunners.newTestRunner(new 
PutElasticsearch5TestProcessor(false)); // no failures
-        runner.setValidateExpressionUsage(true);
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.HOSTS, 
"127.0.0.1:9300");
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.PING_TIMEOUT, 
"5s");
@@ -448,7 +439,6 @@ public class TestPutElasticsearch5 {
         System.out.println("Starting test " + new Object() {
         }.getClass().getEnclosingMethod().getName());
         final TestRunner runner = TestRunners.newTestRunner(new 
PutElasticsearch5());
-        runner.setValidateExpressionUsage(false);
 
         //Local Cluster - Mac pulled from brew
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch_brew");
@@ -480,7 +470,6 @@ public class TestPutElasticsearch5 {
         System.out.println("Starting test " + new Object() {
         }.getClass().getEnclosingMethod().getName());
         final TestRunner runner = TestRunners.newTestRunner(new 
PutElasticsearch5());
-        runner.setValidateExpressionUsage(false);
 
         //Local Cluster - Mac pulled from brew
         
runner.setProperty(AbstractElasticsearch5TransportClientProcessor.CLUSTER_NAME, 
"elasticsearch_brew");

http://git-wip-us.apache.org/repos/asf/nifi/blob/4c787799/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearchHttpProcessor.java
----------------------------------------------------------------------
diff --git 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearchHttpProcessor.java
 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearchHttpProcessor.java
index faaf523..2ed6f79 100644
--- 
a/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearchHttpProcessor.java
+++ 
b/nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/AbstractElasticsearchHttpProcessor.java
@@ -26,6 +26,7 @@ import okhttp3.Response;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.components.ValidationContext;
 import org.apache.nifi.components.ValidationResult;
+import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.logging.ComponentLog;
 import org.apache.nifi.processor.ProcessContext;
 import org.apache.nifi.processor.exception.ProcessException;
@@ -62,7 +63,7 @@ public abstract class AbstractElasticsearchHttpProcessor 
extends AbstractElastic
             .description("Elasticsearch URL which will be connected to, 
including scheme (http, e.g.), host, and port. The default port for the REST 
API is 9200.")
             .required(true)
             .addValidator(StandardValidators.URL_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor PROXY_HOST = new 
PropertyDescriptor.Builder()
@@ -88,7 +89,7 @@ public abstract class AbstractElasticsearchHttpProcessor 
extends AbstractElastic
             .required(true)
             .defaultValue("5 secs")
             .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     public static final PropertyDescriptor RESPONSE_TIMEOUT = new 
PropertyDescriptor.Builder()
@@ -98,7 +99,7 @@ public abstract class AbstractElasticsearchHttpProcessor 
extends AbstractElastic
             .required(true)
             .defaultValue("15 secs")
             .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .expressionLanguageSupported(true)
+            
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
             .build();
 
     private final AtomicReference<OkHttpClient> okHttpClientAtomicReference = 
new AtomicReference<>();
@@ -109,7 +110,7 @@ public abstract class AbstractElasticsearchHttpProcessor 
extends AbstractElastic
                 .name(propertyDescriptorName)
                 .required(false)
                 .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-                .expressionLanguageSupported(true)
+                
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
                 .dynamic(true)
                 .build();
     }

Reply via email to