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

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


The following commit(s) were added to refs/heads/main by this push:
     new 1d8a7da20e NIFI-15108 Standardized property names in Salesforce, 
Scripting, Shopify, S2S, and Slack bundles (#10468)
1d8a7da20e is described below

commit 1d8a7da20ec96ffa7505dab38b658f6caa9100d1
Author: dan-s1 <[email protected]>
AuthorDate: Tue Oct 28 14:41:35 2025 -0400

    NIFI-15108 Standardized property names in Salesforce, Scripting, Shopify, 
S2S, and Slack bundles (#10468)
    
    Signed-off-by: David Handermann <[email protected]>
---
 .../processors/salesforce/PutSalesforceObject.java | 17 ++++++-
 .../salesforce/QuerySalesforceObject.java          | 57 +++++++++++++---------
 .../util/CommonSalesforceProperties.java           | 16 +++---
 .../processors/script/ScriptedRecordProcessor.java |  9 +++-
 .../nifi/script/ScriptingComponentHelper.java      |  3 +-
 .../script/TestScriptingComponentHelper.java       |  3 +-
 .../apache/nifi/processors/shopify/GetShopify.java | 41 +++++++++-------
 .../reporting/AbstractSiteToSiteReportingTask.java |  9 ++--
 .../reporting/SiteToSiteMetricsReportingTask.java  | 17 ++++---
 .../SiteToSiteProvenanceReportingTask.java         | 45 +++++++++--------
 .../apache/nifi/reporting/s2s/SiteToSiteUtils.java |  4 +-
 .../sink/SiteToSiteReportingRecordSink.java        |  1 +
 .../nifi/services/slack/SlackRecordSink.java       | 25 ++++++----
 13 files changed, 150 insertions(+), 97 deletions(-)

diff --git 
a/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/PutSalesforceObject.java
 
b/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/PutSalesforceObject.java
index 0821d55d4e..4995573534 100644
--- 
a/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/PutSalesforceObject.java
+++ 
b/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/PutSalesforceObject.java
@@ -29,6 +29,7 @@ import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.flowfile.FlowFile;
 import org.apache.nifi.json.OutputGrouping;
 import org.apache.nifi.json.WriteJsonResult;
+import org.apache.nifi.migration.PropertyConfiguration;
 import org.apache.nifi.oauth2.OAuth2AccessTokenProvider;
 import org.apache.nifi.processor.AbstractProcessor;
 import org.apache.nifi.processor.ProcessContext;
@@ -55,6 +56,10 @@ import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
 import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.API_VERSION;
+import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.OLD_API_VERSION_PROPERTY_NAME;
+import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.OLD_READ_TIMEOUT_PROPERTY_NAME;
+import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.OLD_SALESFORCE_INSTANCE_URL_PROPERTY_NAME;
+import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.OLD_TOKEN_PROVIDER_PROPERTY_NAME;
 import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.READ_TIMEOUT;
 import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.SALESFORCE_INSTANCE_URL;
 import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.TOKEN_PROVIDER;
@@ -73,8 +78,7 @@ public class PutSalesforceObject extends AbstractProcessor {
     private static final String ATTR_ERROR_MESSAGE = "error.message";
 
     protected static final PropertyDescriptor RECORD_READER_FACTORY = new 
PropertyDescriptor.Builder()
-            .name("record-reader")
-            .displayName("Record Reader")
+            .name("Record Reader")
             .description(
                     "Specifies the Controller Service to use for parsing 
incoming data and determining the data's schema")
             .identifiesControllerService(RecordReaderFactory.class)
@@ -155,6 +159,15 @@ public class PutSalesforceObject extends AbstractProcessor 
{
         }
     }
 
+    @Override
+    public void migrateProperties(PropertyConfiguration config) {
+        config.renameProperty("record-reader", 
RECORD_READER_FACTORY.getName());
+        config.renameProperty(OLD_SALESFORCE_INSTANCE_URL_PROPERTY_NAME, 
SALESFORCE_INSTANCE_URL.getName());
+        config.renameProperty(OLD_API_VERSION_PROPERTY_NAME, 
API_VERSION.getName());
+        config.renameProperty(OLD_READ_TIMEOUT_PROPERTY_NAME, 
READ_TIMEOUT.getName());
+        config.renameProperty(OLD_TOKEN_PROVIDER_PROPERTY_NAME, 
TOKEN_PROVIDER.getName());
+    }
+
     private void processRecords(FlowFile flowFile, String objectType, 
ProcessContext context, ProcessSession session) throws IOException, 
MalformedRecordException, SchemaNotFoundException {
         RecordReaderFactory readerFactory = 
context.getProperty(RECORD_READER_FACTORY).asControllerService(RecordReaderFactory.class);
         int count = 0;
diff --git 
a/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/QuerySalesforceObject.java
 
b/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/QuerySalesforceObject.java
index b23c58df82..efc8468d83 100644
--- 
a/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/QuerySalesforceObject.java
+++ 
b/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/QuerySalesforceObject.java
@@ -48,6 +48,7 @@ import org.apache.nifi.json.JsonParserFactory;
 import org.apache.nifi.json.JsonTreeRowRecordReader;
 import org.apache.nifi.json.SchemaApplicationStrategy;
 import org.apache.nifi.json.StartingFieldStrategy;
+import org.apache.nifi.migration.PropertyConfiguration;
 import org.apache.nifi.oauth2.OAuth2AccessTokenProvider;
 import org.apache.nifi.processor.AbstractProcessor;
 import org.apache.nifi.processor.ProcessContext;
@@ -97,6 +98,10 @@ import java.util.function.BiPredicate;
 import java.util.stream.Collectors;
 
 import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.API_VERSION;
+import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.OLD_API_VERSION_PROPERTY_NAME;
+import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.OLD_READ_TIMEOUT_PROPERTY_NAME;
+import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.OLD_SALESFORCE_INSTANCE_URL_PROPERTY_NAME;
+import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.OLD_TOKEN_PROVIDER_PROPERTY_NAME;
 import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.READ_TIMEOUT;
 import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.SALESFORCE_INSTANCE_URL;
 import static 
org.apache.nifi.processors.salesforce.util.CommonSalesforceProperties.TOKEN_PROVIDER;
@@ -131,8 +136,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
     static final AllowableValue CUSTOM_QUERY = new 
AllowableValue("custom-query", "Custom Query", "Provide custom SOQL query.");
 
     static final PropertyDescriptor QUERY_TYPE = new 
PropertyDescriptor.Builder()
-            .name("query-type")
-            .displayName("Query Type")
+            .name("Query Type")
             .description("Choose to provide the query by parameters or a full 
custom query.")
             .required(true)
             .defaultValue(PROPERTY_BASED_QUERY.getValue())
@@ -140,8 +144,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
             .build();
 
     static final PropertyDescriptor CUSTOM_SOQL_QUERY = new 
PropertyDescriptor.Builder()
-            .name("custom-soql-query")
-            .displayName("Custom SOQL Query")
+            .name("Custom SOQL Query")
             .description("Specify the SOQL query to run.")
             .required(true)
             .addValidator(StandardValidators.NON_BLANK_VALIDATOR)
@@ -150,8 +153,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
             .build();
 
     static final PropertyDescriptor SOBJECT_NAME = new 
PropertyDescriptor.Builder()
-            .name("sobject-name")
-            .displayName("sObject Name")
+            .name("sObject Name")
             .description("The Salesforce sObject to be queried")
             .required(true)
             .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -160,8 +162,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
             .build();
 
     static final PropertyDescriptor FIELD_NAMES = new 
PropertyDescriptor.Builder()
-            .name("field-names")
-            .displayName("Field Names")
+            .name("Field Names")
             .description("Comma-separated list of field names requested from 
the sObject to be queried. When this field is left empty, all fields are 
queried.")
             .required(false)
             .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -170,8 +171,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
             .build();
 
     static final PropertyDescriptor RECORD_WRITER = new 
PropertyDescriptor.Builder()
-            .name("record-writer")
-            .displayName("Record Writer")
+            .name("Record Writer")
             .description("Service used for writing records returned from the 
Salesforce REST API")
             .identifiesControllerService(RecordSetWriterFactory.class)
             .required(true)
@@ -179,8 +179,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
             .build();
 
     static final PropertyDescriptor CREATE_ZERO_RECORD_FILES = new 
PropertyDescriptor.Builder()
-            .name("create-zero-record-files")
-            .displayName("Create Zero Record FlowFiles")
+            .name("Create Zero Record FlowFiles")
             .description("Specifies whether or not to create a FlowFile when 
the Salesforce REST API does not return any records")
             .expressionLanguageSupported(ExpressionLanguageScope.NONE)
             .allowableValues("true", "false")
@@ -190,8 +189,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
             .build();
 
     public static final PropertyDescriptor AGE_FIELD = new 
PropertyDescriptor.Builder()
-            .name("age-field")
-            .displayName("Age Field")
+            .name("Age Field")
             .description("The name of a TIMESTAMP field that will be used to 
filter records using a bounded time window."
                     + "The processor will return only those records with a 
timestamp value newer than the timestamp recorded after the last processor run."
             )
@@ -202,8 +200,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
             .build();
 
     public static final PropertyDescriptor AGE_DELAY = new 
PropertyDescriptor.Builder()
-            .name("age-delay")
-            .displayName("Age Delay")
+            .name("Age Delay")
             .description("The ending timestamp of the time window will be 
adjusted earlier by the amount configured in this property." +
                     " For example, with a property value of 10 seconds, an 
ending timestamp of 12:30:45 would be changed to 12:30:35.")
             .required(false)
@@ -214,8 +211,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
             .build();
 
     public static final PropertyDescriptor INITIAL_AGE_FILTER = new 
PropertyDescriptor.Builder()
-            .name("initial-age-filter")
-            .displayName("Initial Age Start Time")
+            .name("Initial Age Start Time")
             .description("This property specifies the start time that the 
processor applies when running the first query.")
             .required(false)
             .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -225,8 +221,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
             .build();
 
     static final PropertyDescriptor CUSTOM_WHERE_CONDITION = new 
PropertyDescriptor.Builder()
-            .name("custom-where-condition")
-            .displayName("Custom WHERE Condition")
+            .name("Custom WHERE Condition")
             .description("A custom expression to be added in the WHERE clause 
of the query")
             .required(false)
             
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
@@ -235,8 +230,7 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
             .build();
 
     static final PropertyDescriptor INCLUDE_DELETED_RECORDS = new 
PropertyDescriptor.Builder()
-            .name("include-deleted-records")
-            .displayName("Include Deleted Records")
+            .name("Include Deleted Records")
             .description("If true, the processor will include deleted records 
(IsDeleted = true) in the query results. When enabled, the processor will use 
the 'queryAll' API.")
             .required(true)
             .defaultValue("false")
@@ -364,6 +358,25 @@ public class QuerySalesforceObject extends 
AbstractProcessor {
         }
     }
 
+    @Override
+    public void migrateProperties(PropertyConfiguration config) {
+        config.renameProperty("query-type", QUERY_TYPE.getName());
+        config.renameProperty("custom-soql-query", 
CUSTOM_SOQL_QUERY.getName());
+        config.renameProperty("sobject-name", SOBJECT_NAME.getName());
+        config.renameProperty("field-names", FIELD_NAMES.getName());
+        config.renameProperty("record-writer", RECORD_WRITER.getName());
+        config.renameProperty("create-zero-record-files", 
CREATE_ZERO_RECORD_FILES.getName());
+        config.renameProperty("age-field", AGE_FIELD.getName());
+        config.renameProperty("age-delay", AGE_DELAY.getName());
+        config.renameProperty("initial-age-filter", 
INITIAL_AGE_FILTER.getName());
+        config.renameProperty("custom-where-condition", 
CUSTOM_WHERE_CONDITION.getName());
+        config.renameProperty("include-deleted-records", 
INCLUDE_DELETED_RECORDS.getName());
+        config.renameProperty(OLD_SALESFORCE_INSTANCE_URL_PROPERTY_NAME, 
SALESFORCE_INSTANCE_URL.getName());
+        config.renameProperty(OLD_API_VERSION_PROPERTY_NAME, 
API_VERSION.getName());
+        config.renameProperty(OLD_READ_TIMEOUT_PROPERTY_NAME, 
READ_TIMEOUT.getName());
+        config.renameProperty(OLD_TOKEN_PROVIDER_PROPERTY_NAME, 
TOKEN_PROVIDER.getName());
+    }
+
     @Override
     public void onTrigger(ProcessContext context, ProcessSession session) 
throws ProcessException {
         boolean isCustomQuery = 
CUSTOM_QUERY.getValue().equals(context.getProperty(QUERY_TYPE).getValue());
diff --git 
a/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/util/CommonSalesforceProperties.java
 
b/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/util/CommonSalesforceProperties.java
index 44e385ab72..28112a2a3a 100644
--- 
a/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/util/CommonSalesforceProperties.java
+++ 
b/nifi-extension-bundles/nifi-salesforce-bundle/nifi-salesforce-processors/src/main/java/org/apache/nifi/processors/salesforce/util/CommonSalesforceProperties.java
@@ -22,10 +22,13 @@ import org.apache.nifi.oauth2.OAuth2AccessTokenProvider;
 import org.apache.nifi.processor.util.StandardValidators;
 
 public final class CommonSalesforceProperties {
+    public static final String OLD_SALESFORCE_INSTANCE_URL_PROPERTY_NAME = 
"salesforce-url";
+    public static final String OLD_API_VERSION_PROPERTY_NAME = 
"salesforce-api-version";
+    public static final String OLD_READ_TIMEOUT_PROPERTY_NAME = "read-timeout";
+    public static final String OLD_TOKEN_PROVIDER_PROPERTY_NAME = 
"oauth2-access-token-provider";
 
     public static final PropertyDescriptor SALESFORCE_INSTANCE_URL = new 
PropertyDescriptor.Builder()
-            .name("salesforce-url")
-            .displayName("Salesforce Instance URL")
+            .name("Salesforce Instance URL")
             .description("The URL of the Salesforce instance including the 
domain without additional path information, such as 
https://MyDomainName.my.salesforce.com";)
             .required(true)
             .addValidator(StandardValidators.URL_VALIDATOR)
@@ -33,8 +36,7 @@ public final class CommonSalesforceProperties {
             .build();
 
     public static final PropertyDescriptor API_VERSION = new 
PropertyDescriptor.Builder()
-            .name("salesforce-api-version")
-            .displayName("API Version")
+            .name("API Version")
             .description(
                     "The version number of the Salesforce REST API appended to 
the URL after the services/data path. See Salesforce documentation for 
supported versions")
             .required(true)
@@ -44,8 +46,7 @@ public final class CommonSalesforceProperties {
             .build();
 
     public static final PropertyDescriptor READ_TIMEOUT = new 
PropertyDescriptor.Builder()
-            .name("read-timeout")
-            .displayName("Read Timeout")
+            .name("Read Timeout")
             .description("Maximum time allowed for reading a response from the 
Salesforce REST API")
             .required(true)
             .defaultValue("15 s")
@@ -54,8 +55,7 @@ public final class CommonSalesforceProperties {
             .build();
 
     public static final PropertyDescriptor TOKEN_PROVIDER = new 
PropertyDescriptor.Builder()
-            .name("oauth2-access-token-provider")
-            .displayName("OAuth2 Access Token Provider")
+            .name("OAuth2 Access Token Provider")
             .description("Service providing OAuth2 Access Tokens for 
authenticating using the HTTP Authorization Header")
             .identifiesControllerService(OAuth2AccessTokenProvider.class)
             .required(true)
diff --git 
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ScriptedRecordProcessor.java
 
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ScriptedRecordProcessor.java
index c4b37be3d5..6272ac9087 100644
--- 
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ScriptedRecordProcessor.java
+++ 
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/processors/script/ScriptedRecordProcessor.java
@@ -22,6 +22,7 @@ import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.components.ValidationContext;
 import org.apache.nifi.components.ValidationResult;
 import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.migration.PropertyConfiguration;
 import org.apache.nifi.processor.AbstractProcessor;
 import org.apache.nifi.processor.ProcessContext;
 import org.apache.nifi.processor.exception.ProcessException;
@@ -70,8 +71,7 @@ abstract class ScriptedRecordProcessor extends 
AbstractProcessor implements Sear
             .build();
 
     static final PropertyDescriptor LANGUAGE = new PropertyDescriptor.Builder()
-            .name("Script Engine")
-            .displayName("Script Language")
+            .name(ScriptingComponentHelper.SCRIPT_ENGINE_PROPERTY)
             .description("The Language to use for the script")
             .allowableValues(SCRIPT_OPTIONS)
             .defaultValue("Groovy")
@@ -139,6 +139,11 @@ abstract class ScriptedRecordProcessor extends 
AbstractProcessor implements Sear
         return ScriptingComponentUtils.search(context, getLogger());
     }
 
+    @Override
+    public void migrateProperties(PropertyConfiguration config) {
+        config.renameProperty("Script Engine", LANGUAGE.getName());
+    }
+
     protected static Bindings setupBindings(final ScriptEngine scriptEngine) {
         Bindings bindings = 
scriptEngine.getBindings(ScriptContext.ENGINE_SCOPE);
         if (bindings == null) {
diff --git 
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
 
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
index 0ec62e5fc6..f6d23c6517 100644
--- 
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
+++ 
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/main/java/org/apache/nifi/script/ScriptingComponentHelper.java
@@ -54,6 +54,7 @@ import static 
org.apache.commons.lang3.StringUtils.defaultIfBlank;
  * This class contains variables and methods common to scripting processors, 
reporting tasks, etc.
  */
 public class ScriptingComponentHelper {
+    public static final String SCRIPT_ENGINE_PROPERTY = "Script Language";
     private static final String UNKNOWN_VERSION = "UNKNOWN";
 
     public PropertyDescriptor SCRIPT_ENGINE;
@@ -175,7 +176,7 @@ public class ScriptingComponentHelper {
             AllowableValue[] engines = engineList.toArray(new 
AllowableValue[0]);
 
             final PropertyDescriptor.Builder enginePropertyBuilder = new 
PropertyDescriptor.Builder()
-                    .name("Script Engine")
+                    .name(SCRIPT_ENGINE_PROPERTY)
                     .required(true)
                     .description("Language Engine for executing scripts")
                     .required(true)
diff --git 
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestScriptingComponentHelper.java
 
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestScriptingComponentHelper.java
index 95e22f2cdd..8cf55d79ff 100644
--- 
a/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestScriptingComponentHelper.java
+++ 
b/nifi-extension-bundles/nifi-scripting-bundle/nifi-scripting-processors/src/test/java/org/apache/nifi/processors/script/TestScriptingComponentHelper.java
@@ -29,7 +29,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class TestScriptingComponentHelper {
-    private static final String SCRIPT_ENGINE_PROPERTY = "Script Engine";
 
     @Test
     public void testScriptEngineAllowableValuesWithDescriptions() {
@@ -38,7 +37,7 @@ public class TestScriptingComponentHelper {
 
         final List<PropertyDescriptor> descriptors = helper.getDescriptors();
         final Optional<PropertyDescriptor> optionalScriptEngine = 
descriptors.stream().filter(
-                descriptor -> 
descriptor.getName().equals(SCRIPT_ENGINE_PROPERTY)
+                descriptor -> 
descriptor.getName().equals(ScriptingComponentHelper.SCRIPT_ENGINE_PROPERTY)
         ).findFirst();
 
         assertTrue(optionalScriptEngine.isPresent());
diff --git 
a/nifi-extension-bundles/nifi-shopify-bundle/nifi-shopify-processors/src/main/java/org/apache/nifi/processors/shopify/GetShopify.java
 
b/nifi-extension-bundles/nifi-shopify-bundle/nifi-shopify-processors/src/main/java/org/apache/nifi/processors/shopify/GetShopify.java
index 1423712e06..75be6b2f01 100644
--- 
a/nifi-extension-bundles/nifi-shopify-bundle/nifi-shopify-processors/src/main/java/org/apache/nifi/processors/shopify/GetShopify.java
+++ 
b/nifi-extension-bundles/nifi-shopify-bundle/nifi-shopify-processors/src/main/java/org/apache/nifi/processors/shopify/GetShopify.java
@@ -38,6 +38,7 @@ import org.apache.nifi.components.state.StateMap;
 import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.flowfile.FlowFile;
 import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.migration.PropertyConfiguration;
 import org.apache.nifi.processor.AbstractProcessor;
 import org.apache.nifi.processor.ProcessContext;
 import org.apache.nifi.processor.ProcessSession;
@@ -84,8 +85,7 @@ import java.util.stream.Collectors;
 public class GetShopify extends AbstractProcessor {
 
     static final PropertyDescriptor STORE_DOMAIN = new 
PropertyDescriptor.Builder()
-            .name("store-domain")
-            .displayName("Store Domain")
+            .name("Store Domain")
             .description("The domain of the Shopify store, e.g. 
nifistore.myshopify.com")
             .required(true)
             .addValidator(StandardValidators.NON_BLANK_VALIDATOR)
@@ -93,8 +93,7 @@ public class GetShopify extends AbstractProcessor {
             .build();
 
     static final PropertyDescriptor ACCESS_TOKEN = new 
PropertyDescriptor.Builder()
-            .name("access-token")
-            .displayName("Access Token")
+            .name("Access Token")
             .description("Access Token to authenticate requests")
             .required(true)
             .sensitive(true)
@@ -103,8 +102,7 @@ public class GetShopify extends AbstractProcessor {
             .build();
 
     static final PropertyDescriptor API_VERSION = new 
PropertyDescriptor.Builder()
-            .name("api-version")
-            .displayName("API Version")
+            .name("API Version")
             .description("The Shopify REST API version")
             .required(true)
             .addValidator(StandardValidators.NON_BLANK_VALIDATOR)
@@ -113,16 +111,14 @@ public class GetShopify extends AbstractProcessor {
             .build();
 
     static final PropertyDescriptor OBJECT_CATEGORY = new 
PropertyDescriptor.Builder()
-            .name("object-category")
-            .displayName("Object Category")
+            .name("Object Category")
             .description("Shopify object category")
             .required(true)
             .allowableValues(ResourceType.class)
             .build();
 
     static final PropertyDescriptor RESULT_LIMIT = new 
PropertyDescriptor.Builder()
-            .name("result-limit")
-            .displayName("Result Limit")
+            .name("Result Limit")
             .description("The maximum number of results to request for each 
invocation of the Processor")
             .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
             .required(false)
@@ -130,8 +126,7 @@ public class GetShopify extends AbstractProcessor {
             .build();
 
     static final PropertyDescriptor IS_INCREMENTAL = new 
PropertyDescriptor.Builder()
-            .name("is-incremental")
-            .displayName("Incremental Loading")
+            .name("Incremental Loading")
             .description("The processor can incrementally load the queried 
objects so that each object is queried exactly once." +
                     " For each query, the processor queries objects which were 
created or modified after the previous run time" +
                     " but before the current time.")
@@ -141,8 +136,7 @@ public class GetShopify extends AbstractProcessor {
             .build();
 
     static final PropertyDescriptor INCREMENTAL_DELAY = new 
PropertyDescriptor.Builder()
-            .name("incremental-delay")
-            .displayName("Incremental Delay")
+            .name("Incremental Delay")
             .description("The ending timestamp of the time window will be 
adjusted earlier by the amount configured in this property." +
                     " For example, with a property value of 10 seconds, an 
ending timestamp of 12:30:45 would be changed to 12:30:35." +
                     " Set this property to avoid missing objects when the 
clock of your local machines and Shopify servers' clock are not in sync.")
@@ -154,8 +148,7 @@ public class GetShopify extends AbstractProcessor {
             .build();
 
     static final PropertyDescriptor INCREMENTAL_INITIAL_START_TIME = new 
PropertyDescriptor.Builder()
-            .name("incremental-initial-start-time")
-            .displayName("Incremental Initial Start Time")
+            .name("Incremental Initial Start Time")
             .description("This property specifies the start time when running 
the first request." +
                     " Represents an ISO 8601-encoded date and time string. For 
example, 3:50 pm on September 7, 2019" +
                     " in the time zone of UTC (Coordinated Universal Time) is 
represented as \"2019-09-07T15:50:00Z\".")
@@ -166,8 +159,7 @@ public class GetShopify extends AbstractProcessor {
             .build();
 
     public static final PropertyDescriptor WEB_CLIENT_PROVIDER = new 
PropertyDescriptor.Builder()
-            .name("web-client-service-provider")
-            .displayName("Web Client Service Provider")
+            .name("Web Client Service Provider")
             .description("Controller service for HTTP client operations")
             .required(true)
             .identifiesControllerService(WebClientServiceProvider.class)
@@ -358,6 +350,19 @@ public class GetShopify extends AbstractProcessor {
         } while (cursor != null);
     }
 
+    @Override
+    public void migrateProperties(PropertyConfiguration config) {
+        config.renameProperty("store-domain", STORE_DOMAIN.getName());
+        config.renameProperty("access-token", ACCESS_TOKEN.getName());
+        config.renameProperty("api-version", API_VERSION.getName());
+        config.renameProperty("object-category", OBJECT_CATEGORY.getName());
+        config.renameProperty("result-limit", RESULT_LIMIT.getName());
+        config.renameProperty("is-incremental", IS_INCREMENTAL.getName());
+        config.renameProperty("incremental-delay", 
INCREMENTAL_DELAY.getName());
+        config.renameProperty("incremental-initial-start-time", 
INCREMENTAL_INITIAL_START_TIME.getName());
+        config.renameProperty("web-client-service-provider", 
WEB_CLIENT_PROVIDER.getName());
+    }
+
     private String getPageCursor(HttpResponseEntity response) {
         Optional<String> link = response.headers().getFirstHeader("Link");
         String s = null;
diff --git 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/AbstractSiteToSiteReportingTask.java
 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/AbstractSiteToSiteReportingTask.java
index d137962cea..3c44a2658f 100644
--- 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/AbstractSiteToSiteReportingTask.java
+++ 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/AbstractSiteToSiteReportingTask.java
@@ -87,16 +87,14 @@ public abstract class AbstractSiteToSiteReportingTask 
extends AbstractReportingT
     protected static final DateTimeFormatter DATE_TIME_FORMATTER = 
DateTimeFormatter.ofPattern(TIMESTAMP_FORMAT).withZone(ZoneOffset.UTC);
 
     static final PropertyDescriptor RECORD_WRITER = new 
PropertyDescriptor.Builder()
-            .name("record-writer")
-            .displayName("Record Writer")
+            .name("Record Writer")
             .description("Specifies the Controller Service to use for writing 
out the records.")
             .identifiesControllerService(RecordSetWriterFactory.class)
             .required(false)
             .build();
 
     static final PropertyDescriptor ALLOW_NULL_VALUES = new 
PropertyDescriptor.Builder()
-            .name("include-null-values")
-            .displayName("Include Null Values")
+            .name("Include Null Values")
             .description("Indicate if null values should be included in 
records. Default will be false")
             .required(true)
             .allowableValues("true", "false")
@@ -127,6 +125,9 @@ public abstract class AbstractSiteToSiteReportingTask 
extends AbstractReportingT
     public void migrateProperties(final PropertyConfiguration config) {
         ProxyServiceMigration.migrateProxyProperties(config, 
SiteToSiteUtils.PROXY_CONFIGURATION_SERVICE,
                 SiteToSiteUtils.OBSOLETE_PROXY_HOST, 
SiteToSiteUtils.OBSOLETE_PROXY_PORT, SiteToSiteUtils.OBSOLETE_PROXY_USERNAME, 
SiteToSiteUtils.OBSOLETE_PROXY_PASSWORD);
+        config.renameProperty("record-writer", RECORD_WRITER.getName());
+        config.renameProperty("include-null-values", 
ALLOW_NULL_VALUES.getName());
+        config.renameProperty(SiteToSiteUtils.OBSOLETE_TRANSPORT_PROTOCOL, 
SiteToSiteUtils.TRANSPORT_PROTOCOL.getName());
     }
 
     public void setup(final PropertyContext reportContext) {
diff --git 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteMetricsReportingTask.java
 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteMetricsReportingTask.java
index 32a188d8f5..5fd84da481 100644
--- 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteMetricsReportingTask.java
+++ 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteMetricsReportingTask.java
@@ -50,6 +50,7 @@ import org.apache.nifi.expression.ExpressionLanguageScope;
 import org.apache.nifi.flowfile.attributes.CoreAttributes;
 import org.apache.nifi.metrics.jvm.JmxJvmMetrics;
 import org.apache.nifi.metrics.jvm.JvmMetrics;
+import org.apache.nifi.migration.PropertyConfiguration;
 import org.apache.nifi.processor.exception.ProcessException;
 import org.apache.nifi.processor.util.StandardValidators;
 import org.apache.nifi.remote.Transaction;
@@ -70,8 +71,7 @@ public class SiteToSiteMetricsReportingTask extends 
AbstractSiteToSiteReportingT
             + " have the description of the default schema.");
 
     static final PropertyDescriptor APPLICATION_ID = new 
PropertyDescriptor.Builder()
-            .name("s2s-metrics-application-id")
-            .displayName("Application ID")
+            .name("Application ID")
             .description("The Application ID to be included in the metrics")
             .required(true)
             .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -80,8 +80,7 @@ public class SiteToSiteMetricsReportingTask extends 
AbstractSiteToSiteReportingT
             .build();
 
     static final PropertyDescriptor HOSTNAME = new PropertyDescriptor.Builder()
-            .name("s2s-metrics-hostname")
-            .displayName("Hostname")
+            .name("Hostname")
             .description("The Hostname of this NiFi instance to be included in 
the metrics")
             .required(true)
             .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
@@ -90,8 +89,7 @@ public class SiteToSiteMetricsReportingTask extends 
AbstractSiteToSiteReportingT
             .build();
 
     static final PropertyDescriptor FORMAT = new PropertyDescriptor.Builder()
-            .name("s2s-metrics-format")
-            .displayName("Output Format")
+            .name("Output Format")
             .description("The output format that will be used for the metrics. 
If " + RECORD_FORMAT.getDisplayName() + " is selected, "
                     + "a Record Writer must be provided. If " + 
AMBARI_FORMAT.getDisplayName() + " is selected, the Record Writer property "
                     + "should be empty.")
@@ -231,4 +229,11 @@ public class SiteToSiteMetricsReportingTask extends 
AbstractSiteToSiteReportingT
         }
     }
 
+    @Override
+    public void migrateProperties(PropertyConfiguration config) {
+        super.migrateProperties(config);
+        config.renameProperty("s2s-metrics-application-id", 
APPLICATION_ID.getName());
+        config.renameProperty("s2s-metrics-hostname", HOSTNAME.getName());
+        config.renameProperty("s2s-metrics-format", FORMAT.getName());
+    }
 }
diff --git 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteProvenanceReportingTask.java
 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteProvenanceReportingTask.java
index b2051878fe..05545f4fbd 100644
--- 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteProvenanceReportingTask.java
+++ 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteProvenanceReportingTask.java
@@ -58,6 +58,7 @@ import org.apache.nifi.components.state.Scope;
 import org.apache.nifi.controller.ConfigurationContext;
 import org.apache.nifi.controller.status.ProcessGroupStatus;
 import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.migration.PropertyConfiguration;
 import org.apache.nifi.processor.exception.ProcessException;
 import org.apache.nifi.processor.util.StandardValidators;
 import org.apache.nifi.provenance.ProvenanceEventRecord;
@@ -85,8 +86,7 @@ public class SiteToSiteProvenanceReportingTask extends 
AbstractSiteToSiteReporti
             "Start reading provenance Events from the end of the stream, 
ignoring old events");
 
     static final PropertyDescriptor FILTER_EVENT_TYPE = new 
PropertyDescriptor.Builder()
-            .name("s2s-prov-task-event-filter")
-            .displayName("Event Type to Include")
+            .name("Event Type to Include")
             .description("Comma-separated list of event types that will be 
used to filter the provenance events sent by the reporting task. "
                     + "Available event types are " + 
Arrays.deepToString(ProvenanceEventType.values()) + ". If no filter is set, all 
the events are sent. If "
                     + "multiple filters are set, the filters are cumulative.")
@@ -96,8 +96,7 @@ public class SiteToSiteProvenanceReportingTask extends 
AbstractSiteToSiteReporti
             .build();
 
     static final PropertyDescriptor FILTER_EVENT_TYPE_EXCLUDE = new 
PropertyDescriptor.Builder()
-            .name("s2s-prov-task-event-filter-exclude")
-            .displayName("Event Type to Exclude")
+            .name("Event Type to Exclude")
             .description("Comma-separated list of event types that will be 
used to exclude the provenance events sent by the reporting task. "
                     + "Available event types are " + 
Arrays.deepToString(ProvenanceEventType.values()) + ". If no filter is set, all 
the events are sent. If "
                     + "multiple filters are set, the filters are cumulative. 
If an event type is included in Event Type to Include and excluded here, then 
the "
@@ -108,8 +107,7 @@ public class SiteToSiteProvenanceReportingTask extends 
AbstractSiteToSiteReporti
             .build();
 
     static final PropertyDescriptor FILTER_COMPONENT_TYPE = new 
PropertyDescriptor.Builder()
-            .name("s2s-prov-task-type-filter")
-            .displayName("Component Type to Include")
+            .name("Component Type to Include")
             .description("Regular expression to filter the provenance events 
based on the component type. Only the events matching the regular "
                     + "expression will be sent. If no filter is set, all the 
events are sent. If multiple filters are set, the filters are cumulative.")
             .required(false)
@@ -118,8 +116,7 @@ public class SiteToSiteProvenanceReportingTask extends 
AbstractSiteToSiteReporti
             .build();
 
     static final PropertyDescriptor FILTER_COMPONENT_TYPE_EXCLUDE = new 
PropertyDescriptor.Builder()
-            .name("s2s-prov-task-type-filter-exclude")
-            .displayName("Component Type to Exclude")
+            .name("Component Type to Exclude")
             .description("Regular expression to exclude the provenance events 
based on the component type. The events matching the regular "
                     + "expression will not be sent. If no filter is set, all 
the events are sent. If multiple filters are set, the filters are cumulative. "
                     + "If a component type is included in Component Type to 
Include and excluded here, then the exclusion takes precedence and the event 
will not be sent.")
@@ -129,8 +126,7 @@ public class SiteToSiteProvenanceReportingTask extends 
AbstractSiteToSiteReporti
             .build();
 
     static final PropertyDescriptor FILTER_COMPONENT_ID = new 
PropertyDescriptor.Builder()
-            .name("s2s-prov-task-id-filter")
-            .displayName("Component ID to Include")
+            .name("Component ID to Include")
             .description("Comma-separated list of component UUID that will be 
used to filter the provenance events sent by the reporting task. If no "
                     + "filter is set, all the events are sent. If multiple 
filters are set, the filters are cumulative.")
             .required(false)
@@ -139,8 +135,7 @@ public class SiteToSiteProvenanceReportingTask extends 
AbstractSiteToSiteReporti
             .build();
 
     static final PropertyDescriptor FILTER_COMPONENT_ID_EXCLUDE = new 
PropertyDescriptor.Builder()
-            .name("s2s-prov-task-id-filter-exclude")
-            .displayName("Component ID to Exclude")
+            .name("Component ID to Exclude")
             .description("Comma-separated list of component UUID that will be 
used to exclude the provenance events sent by the reporting task. If no "
                     + "filter is set, all the events are sent. If multiple 
filters are set, the filters are cumulative. If a component UUID is included in 
"
                     + "Component ID to Include and excluded here, then the 
exclusion takes precedence and the event will not be sent.")
@@ -150,8 +145,7 @@ public class SiteToSiteProvenanceReportingTask extends 
AbstractSiteToSiteReporti
             .build();
 
     static final PropertyDescriptor FILTER_COMPONENT_NAME = new 
PropertyDescriptor.Builder()
-            .name("s2s-prov-task-name-filter")
-            .displayName("Component Name to Include")
+            .name("Component Name to Include")
             .description("Regular expression to filter the provenance events 
based on the component name. Only the events matching the regular "
                     + "expression will be sent. If no filter is set, all the 
events are sent. If multiple filters are set, the filters are cumulative.")
             .required(false)
@@ -160,8 +154,7 @@ public class SiteToSiteProvenanceReportingTask extends 
AbstractSiteToSiteReporti
             .build();
 
     static final PropertyDescriptor FILTER_COMPONENT_NAME_EXCLUDE = new 
PropertyDescriptor.Builder()
-            .name("s2s-prov-task-name-filter-exclude")
-            .displayName("Component Name to Exclude")
+            .name("Component Name to Exclude")
             .description("Regular expression to exclude the provenance events 
based on the component name. The events matching the regular "
                     + "expression will not be sent. If no filter is set, all 
the events are sent. If multiple filters are set, the filters are cumulative. "
                     + "If a component name is included in Component Name to 
Include and excluded here, then the exclusion takes precedence and the event 
will not be sent.")
@@ -171,8 +164,7 @@ public class SiteToSiteProvenanceReportingTask extends 
AbstractSiteToSiteReporti
             .build();
 
     static final PropertyDescriptor START_POSITION = new 
PropertyDescriptor.Builder()
-            .name("start-position")
-            .displayName("Start Position")
+            .name("Start Position")
             .description("If the Reporting Task has never been run, or if its 
state has been reset by a user, specifies where in the stream of Provenance 
Events the Reporting Task should start")
             .allowableValues(BEGINNING_OF_STREAM, END_OF_STREAM)
             .defaultValue(BEGINNING_OF_STREAM.getValue())
@@ -340,10 +332,23 @@ public class SiteToSiteProvenanceReportingTask extends 
AbstractSiteToSiteReporti
 
     }
 
+    @Override
+    public void migrateProperties(PropertyConfiguration config) {
+        super.migrateProperties(config);
+        config.renameProperty("s2s-prov-task-event-filter", 
FILTER_EVENT_TYPE.getName());
+        config.renameProperty("s2s-prov-task-event-filter-exclude", 
FILTER_EVENT_TYPE_EXCLUDE.getName());
+        config.renameProperty("s2s-prov-task-type-filter", 
FILTER_COMPONENT_TYPE.getName());
+        config.renameProperty("s2s-prov-task-type-filter-exclude", 
FILTER_COMPONENT_TYPE_EXCLUDE.getName());
+        config.renameProperty("s2s-prov-task-id-filter", 
FILTER_COMPONENT_ID.getName());
+        config.renameProperty("s2s-prov-task-id-filter-exclude", 
FILTER_COMPONENT_ID_EXCLUDE.getName());
+        config.renameProperty("s2s-prov-task-name-filter", 
FILTER_COMPONENT_NAME.getName());
+        config.renameProperty("s2s-prov-task-name-filter-exclude", 
FILTER_COMPONENT_NAME_EXCLUDE.getName());
+        config.renameProperty("start-position", START_POSITION.getName());
+    }
 
     private JsonObject serialize(final JsonBuilderFactory factory, final 
JsonObjectBuilder builder, final ProvenanceEventRecord event,
-            final String componentName, final String processGroupId, final 
String processGroupName, final String hostname, final URL nifiUrl, final String 
applicationName,
-            final String platform, final String nodeIdentifier, Boolean 
allowNullValues) {
+                                 final String componentName, final String 
processGroupId, final String processGroupName, final String hostname, final URL 
nifiUrl, final String applicationName,
+                                 final String platform, final String 
nodeIdentifier, Boolean allowNullValues) {
         addField(builder, "eventId", UUID.randomUUID().toString(), 
allowNullValues);
         addField(builder, "eventOrdinal", event.getEventId(), allowNullValues);
         addField(builder, "eventType", event.getEventType().name(), 
allowNullValues);
diff --git 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/s2s/SiteToSiteUtils.java
 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/s2s/SiteToSiteUtils.java
index 1c8082184d..f11d0dab0c 100644
--- 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/s2s/SiteToSiteUtils.java
+++ 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/s2s/SiteToSiteUtils.java
@@ -46,6 +46,7 @@ public class SiteToSiteUtils {
     public static final String OBSOLETE_PROXY_PORT = "s2s-http-proxy-port";
     public static final String OBSOLETE_PROXY_USERNAME = 
"s2s-http-proxy-username";
     public static final String OBSOLETE_PROXY_PASSWORD = 
"s2s-http-proxy-password";
+    public static final String OBSOLETE_TRANSPORT_PROTOCOL = 
"s2s-transport-protocol";
 
     public static final PropertyDescriptor DESTINATION_URL = new 
PropertyDescriptor.Builder()
             .name("Destination URL")
@@ -99,8 +100,7 @@ public class SiteToSiteUtils {
             .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
             .build();
     public static final PropertyDescriptor TRANSPORT_PROTOCOL = new 
PropertyDescriptor.Builder()
-            .name("s2s-transport-protocol")
-            .displayName("Transport Protocol")
+            .name("Transport Protocol")
             .description("Specifies which transport protocol to use for 
Site-to-Site communication.")
             .required(true)
             .allowableValues(SiteToSiteTransportProtocol.values())
diff --git 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/sink/SiteToSiteReportingRecordSink.java
 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/sink/SiteToSiteReportingRecordSink.java
index cdd9ddad69..5cf5454c70 100644
--- 
a/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/sink/SiteToSiteReportingRecordSink.java
+++ 
b/nifi-extension-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/sink/SiteToSiteReportingRecordSink.java
@@ -81,6 +81,7 @@ public class SiteToSiteReportingRecordSink extends 
AbstractControllerService imp
     public void migrateProperties(final PropertyConfiguration config) {
         ProxyServiceMigration.migrateProxyProperties(config, 
SiteToSiteUtils.PROXY_CONFIGURATION_SERVICE,
                 SiteToSiteUtils.OBSOLETE_PROXY_HOST, 
SiteToSiteUtils.OBSOLETE_PROXY_PORT, SiteToSiteUtils.OBSOLETE_PROXY_USERNAME, 
SiteToSiteUtils.OBSOLETE_PROXY_PASSWORD);
+        config.renameProperty(SiteToSiteUtils.OBSOLETE_TRANSPORT_PROTOCOL, 
SiteToSiteUtils.TRANSPORT_PROTOCOL.getName());
     }
 
     @OnEnabled
diff --git 
a/nifi-extension-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/services/slack/SlackRecordSink.java
 
b/nifi-extension-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/services/slack/SlackRecordSink.java
index d214de4528..9342d4c397 100644
--- 
a/nifi-extension-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/services/slack/SlackRecordSink.java
+++ 
b/nifi-extension-bundles/nifi-slack-bundle/nifi-slack-processors/src/main/java/org/apache/nifi/services/slack/SlackRecordSink.java
@@ -22,6 +22,7 @@ import org.apache.nifi.annotation.lifecycle.OnEnabled;
 import org.apache.nifi.components.PropertyDescriptor;
 import org.apache.nifi.controller.AbstractControllerService;
 import org.apache.nifi.controller.ConfigurationContext;
+import org.apache.nifi.migration.PropertyConfiguration;
 import org.apache.nifi.processor.exception.ProcessException;
 import org.apache.nifi.processor.util.StandardValidators;
 import org.apache.nifi.record.sink.RecordSinkService;
@@ -48,8 +49,7 @@ public class SlackRecordSink extends 
AbstractControllerService implements Record
     private static final String SLACK_API_URL = "https://slack.com/api";;
 
     public static final PropertyDescriptor API_URL = new 
PropertyDescriptor.Builder()
-            .name("api-url")
-            .displayName("API URL")
+            .name("API URL")
             .description("Slack Web API URL for posting text messages to 
channels." +
                     " It only needs to be changed if Slack changes its API 
URL.")
             .required(true)
@@ -58,8 +58,7 @@ public class SlackRecordSink extends 
AbstractControllerService implements Record
             .build();
 
     public static final PropertyDescriptor ACCESS_TOKEN = new 
PropertyDescriptor.Builder()
-            .name("access-token")
-            .displayName("Access Token")
+            .name("Access Token")
             .description("Bot OAuth Token used for authenticating and 
authorizing the Slack request sent by NiFi.")
             .required(true)
             .sensitive(true)
@@ -67,16 +66,14 @@ public class SlackRecordSink extends 
AbstractControllerService implements Record
             .build();
 
     public static final PropertyDescriptor CHANNEL_ID = new 
PropertyDescriptor.Builder()
-            .name("channel-id")
-            .displayName("Channel ID")
+            .name("Channel ID")
             .description("Slack channel, private group, or IM channel to send 
the message to. Use Channel ID instead of the name.")
             .required(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 
     public static final PropertyDescriptor INPUT_CHARACTER_SET = new 
PropertyDescriptor.Builder()
-            .name("input-character-set")
-            .displayName("Input Character Set")
+            .name("Input Character Set")
             .description("Specifies the character set of the records used to 
generate the Slack message.")
             .required(true)
             .addValidator(StandardValidators.CHARACTER_SET_VALIDATOR)
@@ -84,8 +81,7 @@ public class SlackRecordSink extends 
AbstractControllerService implements Record
             .build();
 
     public static final PropertyDescriptor WEB_SERVICE_CLIENT_PROVIDER = new 
PropertyDescriptor.Builder()
-            .name("web-service-client-provider")
-            .displayName("Web Service Client Provider")
+            .name("Web Service Client Provider")
             .description("Controller service to provide HTTP client for 
communicating with Slack API")
             .required(true)
             .identifiesControllerService(WebClientServiceProvider.class)
@@ -120,6 +116,15 @@ public class SlackRecordSink extends 
AbstractControllerService implements Record
         service = new SlackRestService(webClientServiceProvider, accessToken, 
apiUrl, charset, getLogger());
     }
 
+    @Override
+    public void migrateProperties(PropertyConfiguration config) {
+        config.renameProperty("api-url", API_URL.getName());
+        config.renameProperty("access-token", ACCESS_TOKEN.getName());
+        config.renameProperty("channel-id", CHANNEL_ID.getName());
+        config.renameProperty("input-character-set", 
INPUT_CHARACTER_SET.getName());
+        config.renameProperty("web-service-client-provider", 
WEB_SERVICE_CLIENT_PROVIDER.getName());
+    }
+
     @Override
     public WriteResult sendData(final RecordSet recordSet, final Map<String, 
String> attributes, final boolean sendZeroResults) throws IOException {
         WriteResult writeResult;

Reply via email to