bobpaulin commented on code in PR #11789:
URL: https://github.com/apache/nifi/pull/11789#discussion_r4224464037


##########
nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java:
##########
@@ -537,6 +554,53 @@ private Map<String, StepConfiguration> 
applyMissingRequiredPropertyDefaults(fina
         return propertiesWithDefaults;
     }
 
+    private Map<String, StepConfiguration> retainDeclaredProperties(final 
Map<String, StepConfiguration> migratedProperties,
+            final List<ConfigurationStep> configurationSteps) {
+        if (configurationSteps == null || configurationSteps.isEmpty()) {
+            return migratedProperties;
+        }
+
+        final Map<String, Set<String>> declaredPropertyNamesByStep = new 
LinkedHashMap<>();
+        for (final ConfigurationStep configurationStep : configurationSteps) {
+            final Set<String> declaredPropertyNames = new HashSet<>();
+            for (final ConnectorPropertyGroup propertyGroup : 
configurationStep.getPropertyGroups()) {
+                for (final ConnectorPropertyDescriptor descriptor : 
propertyGroup.getProperties()) {
+                    declaredPropertyNames.add(descriptor.getName());
+                }
+            }
+
+            declaredPropertyNamesByStep.put(configurationStep.getName(), 
declaredPropertyNames);
+        }
+
+        final Map<String, StepConfiguration> retainedProperties = new 
LinkedHashMap<>();
+        for (final Map.Entry<String, StepConfiguration> entry : 
migratedProperties.entrySet()) {
+            final String stepName = entry.getKey();
+            final Set<String> declaredPropertyNames = 
declaredPropertyNamesByStep.get(stepName);
+            if (declaredPropertyNames == null) {
+                logger.debug("Dropped configuration step [{}] from {} because 
it is not declared by the current Connector version", stepName, this);

Review Comment:
   Nit.  
   
   Should we synch this update with the existing log message that uses 
"Omitting vs Dropped" extra properties:
   
   "Omitting property [{}] of step [{}] from the saved configuration of {} 
because the current Connector does not declare it"



##########
nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java:
##########
@@ -537,6 +554,53 @@ private Map<String, StepConfiguration> 
applyMissingRequiredPropertyDefaults(fina
         return propertiesWithDefaults;
     }
 
+    private Map<String, StepConfiguration> retainDeclaredProperties(final 
Map<String, StepConfiguration> migratedProperties,
+            final List<ConfigurationStep> configurationSteps) {
+        if (configurationSteps == null || configurationSteps.isEmpty()) {
+            return migratedProperties;
+        }
+
+        final Map<String, Set<String>> declaredPropertyNamesByStep = new 
LinkedHashMap<>();
+        for (final ConfigurationStep configurationStep : configurationSteps) {
+            final Set<String> declaredPropertyNames = new HashSet<>();
+            for (final ConnectorPropertyGroup propertyGroup : 
configurationStep.getPropertyGroups()) {
+                for (final ConnectorPropertyDescriptor descriptor : 
propertyGroup.getProperties()) {
+                    declaredPropertyNames.add(descriptor.getName());
+                }
+            }
+
+            declaredPropertyNamesByStep.put(configurationStep.getName(), 
declaredPropertyNames);
+        }
+
+        final Map<String, StepConfiguration> retainedProperties = new 
LinkedHashMap<>();
+        for (final Map.Entry<String, StepConfiguration> entry : 
migratedProperties.entrySet()) {
+            final String stepName = entry.getKey();
+            final Set<String> declaredPropertyNames = 
declaredPropertyNamesByStep.get(stepName);
+            if (declaredPropertyNames == null) {
+                logger.debug("Dropped configuration step [{}] from {} because 
it is not declared by the current Connector version", stepName, this);
+                continue;
+            }
+
+            final StepConfiguration stepConfiguration = entry.getValue();
+            final Map<String, ConnectorValueReference> existingValues = 
stepConfiguration.getPropertyValues();
+            final Map<String, ConnectorValueReference> retainedValues = new 
LinkedHashMap<>();
+            for (final Map.Entry<String, ConnectorValueReference> 
propertyEntry : existingValues.entrySet()) {
+                if (declaredPropertyNames.contains(propertyEntry.getKey())) {
+                    retainedValues.put(propertyEntry.getKey(), 
propertyEntry.getValue());
+                } else {
+                    logger.debug("Dropped property [{}] of configuration step 
[{}] from {} because it is not declared by the current Connector version",

Review Comment:
   Nit.  
   
   Should we synch this update with the existing log message that uses 
"Omitting vs Dropped" extra properties:
   
   "Omitting property [{}] of step [{}] from the saved configuration of {} 
because the current Connector does not declare it"



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to