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

markap14 pushed a commit to branch NIFI-15258
in repository https://gitbox.apache.org/repos/asf/nifi.git

commit 59b2ad0dcab9fb1cdc813bde764ef083fab630b2
Author: Mark Payne <[email protected]>
AuthorDate: Fri Dec 19 14:24:07 2025 -0500

    NIFI-15369: Allow ConfigurationStep to depend on another 
(ConfigurationStep,Property) tuple (#10669)
---
 .../nifi/mock/connectors/GenerateAndLog.java       |  2 +-
 .../apache/nifi/connectors/kafkas3/KafkaToS3.java  | 14 ++--
 .../nifi/components/connector/ConnectorNode.java   |  4 +-
 .../nifi/components/connector/GhostConnector.java  |  2 +-
 .../connector/StandardConnectorNode.java           |  4 +-
 .../apache/nifi/controller/ExtensionBuilder.java   |  2 +-
 .../components/connector/BlockingConnector.java    |  2 +-
 .../connector/DynamicAllowableValuesConnector.java | 89 +++++++++++-----------
 .../components/connector/DynamicFlowConnector.java |  2 +-
 .../components/connector/ParameterConnector.java   |  2 +-
 .../components/connector/SleepingConnector.java    |  2 +-
 .../connector/StandardConnectorNodeIT.java         | 40 +++++-----
 .../connector/TestStandardConnectorNode.java       |  4 +-
 .../apache/nifi/controller/flow/NopConnector.java  |  2 +-
 .../java/org/apache/nifi/nar/DummyConnector.java   |  2 +-
 .../connectors/tests/system/AssetConnector.java    |  2 +-
 .../nifi/connectors/tests/system/NopConnector.java |  2 +-
 17 files changed, 92 insertions(+), 85 deletions(-)

diff --git 
a/nifi-connector-mock-bundle/nifi-connector-mock-test-bundle/nifi-connector-mock-test-connectors/src/main/java/org/apache/nifi/mock/connectors/GenerateAndLog.java
 
b/nifi-connector-mock-bundle/nifi-connector-mock-test-bundle/nifi-connector-mock-test-connectors/src/main/java/org/apache/nifi/mock/connectors/GenerateAndLog.java
index f9d5aebffe..96b9fa63c3 100644
--- 
a/nifi-connector-mock-bundle/nifi-connector-mock-test-bundle/nifi-connector-mock-test-connectors/src/main/java/org/apache/nifi/mock/connectors/GenerateAndLog.java
+++ 
b/nifi-connector-mock-bundle/nifi-connector-mock-test-bundle/nifi-connector-mock-test-connectors/src/main/java/org/apache/nifi/mock/connectors/GenerateAndLog.java
@@ -40,7 +40,7 @@ public class GenerateAndLog extends AbstractConnector {
     }
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
+    public List<ConfigurationStep> getConfigurationSteps() {
         return List.of();
     }
 
diff --git 
a/nifi-connectors/nifi-kafka-to-s3-bundle/nifi-kafka-to-s3-connector/src/main/java/org/apache/nifi/connectors/kafkas3/KafkaToS3.java
 
b/nifi-connectors/nifi-kafka-to-s3-bundle/nifi-kafka-to-s3-connector/src/main/java/org/apache/nifi/connectors/kafkas3/KafkaToS3.java
index 43bf138845..5549695142 100644
--- 
a/nifi-connectors/nifi-kafka-to-s3-bundle/nifi-kafka-to-s3-connector/src/main/java/org/apache/nifi/connectors/kafkas3/KafkaToS3.java
+++ 
b/nifi-connectors/nifi-kafka-to-s3-bundle/nifi-kafka-to-s3-connector/src/main/java/org/apache/nifi/connectors/kafkas3/KafkaToS3.java
@@ -52,16 +52,18 @@ import java.util.stream.Collectors;
 @Tags({"kafka", "s3"})
 public class KafkaToS3 extends AbstractConnector {
 
+    private static final List<ConfigurationStep> configurationSteps = List.of(
+        KafkaConnectionStep.KAFKA_CONNECTION_STEP,
+        KafkaTopicsStep.KAFKA_TOPICS_STEP,
+        S3Step.S3_STEP
+    );
+
     private volatile CompletableFuture<Void> drainFlowFileFuture = null;
 
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
-        return List.of(
-            KafkaConnectionStep.KAFKA_CONNECTION_STEP,
-            KafkaTopicsStep.KAFKA_TOPICS_STEP,
-            S3Step.S3_STEP
-        );
+    public List<ConfigurationStep> getConfigurationSteps() {
+        return configurationSteps;
     }
 
     @Override
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorNode.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorNode.java
index b5c6d4820d..9dd1fe36a1 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorNode.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core-api/src/main/java/org/apache/nifi/components/connector/ConnectorNode.java
@@ -23,7 +23,6 @@ import org.apache.nifi.components.AllowableValue;
 import org.apache.nifi.components.ConfigVerificationResult;
 import org.apache.nifi.components.ValidationResult;
 import org.apache.nifi.components.VersionedComponent;
-import org.apache.nifi.components.connector.components.FlowContext;
 import org.apache.nifi.components.validation.ValidationState;
 import org.apache.nifi.components.validation.ValidationStatus;
 import org.apache.nifi.connectable.FlowFileTransferCounts;
@@ -195,8 +194,7 @@ public interface ConnectorNode extends 
ComponentAuthorizable, VersionedComponent
     /**
      * Updates the configuration of one of the configuration steps. This 
method should only be invoked via the ConnectorRepository.
      * @param configurationStepName the name of the configuration step being 
set
-     *                              (must match one of the names returned by 
{@link Connector#getConfigurationSteps(FlowContext)})
-     *                              when providing the working flow context
+     *                              (must match one of the names returned by 
{@link Connector#getConfigurationSteps()})
      * @param configuration the configuration for the given configuration step
      * @throws FlowUpdateException if unable to apply the configuration changes
      */
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/GhostConnector.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/GhostConnector.java
index 5f37546e51..4c7c5fa45e 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/GhostConnector.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/GhostConnector.java
@@ -79,7 +79,7 @@ public class GhostConnector implements Connector {
     }
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
workingContext) {
+    public List<ConfigurationStep> getConfigurationSteps() {
         return List.of();
     }
 
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java
index a0dd520c70..59f2dfba10 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java
@@ -814,7 +814,7 @@ public class StandardConnectorNode implements ConnectorNode 
{
     @Override
     public List<ConfigurationStep> getConfigurationSteps() {
         try (NarCloseable ignored = 
NarCloseable.withComponentNarLoader(extensionManager, 
getConnector().getClass(), getIdentifier())) {
-            return getConnector().getConfigurationSteps(workingFlowContext);
+            return getConnector().getConfigurationSteps();
         }
     }
 
@@ -939,7 +939,7 @@ public class StandardConnectorNode implements ConnectorNode 
{
 
 
     private void validatePropertyReferences(final List<ValidationResult> 
allResults) {
-        final List<ConfigurationStep> configurationSteps = 
getConnector().getConfigurationSteps(activeFlowContext);
+        final List<ConfigurationStep> configurationSteps = 
getConnector().getConfigurationSteps();
         final ConnectorConfiguration connectorConfiguration = 
activeFlowContext.getConfigurationContext().toConnectorConfiguration();
 
         for (final ConfigurationStep step : configurationSteps) {
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/ExtensionBuilder.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/ExtensionBuilder.java
index 5b29dcc34a..c1eac07a4c 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/ExtensionBuilder.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/ExtensionBuilder.java
@@ -542,7 +542,7 @@ public class ExtensionBuilder {
 
     private void initializeDefaultValues(final Connector connector, final 
FrameworkFlowContext flowContext) {
         try (final NarCloseable ignored = 
NarCloseable.withComponentNarLoader(extensionManager, connector.getClass(), 
identifier)) {
-            final List<ConfigurationStep> configSteps = 
connector.getConfigurationSteps(flowContext);
+            final List<ConfigurationStep> configSteps = 
connector.getConfigurationSteps();
 
             for (final ConfigurationStep step : configSteps) {
                 final Map<String, ConnectorValueReference> defaultValues = new 
HashMap<>();
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/BlockingConnector.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/BlockingConnector.java
index a869970b16..2d163e5e80 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/BlockingConnector.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/BlockingConnector.java
@@ -78,7 +78,7 @@ public class BlockingConnector implements Connector {
     }
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
+    public List<ConfigurationStep> getConfigurationSteps() {
         return List.of();
     }
 
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/DynamicAllowableValuesConnector.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/DynamicAllowableValuesConnector.java
index 597ec52e7f..1f1a2ee869 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/DynamicAllowableValuesConnector.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/DynamicAllowableValuesConnector.java
@@ -17,6 +17,7 @@
 
 package org.apache.nifi.components.connector;
 
+import org.apache.nifi.components.AllowableValue;
 import org.apache.nifi.components.ConfigVerificationResult;
 import org.apache.nifi.components.ValidationContext;
 import org.apache.nifi.components.ValidationResult;
@@ -29,7 +30,6 @@ import org.apache.nifi.flow.VersionedProcessGroup;
 import org.apache.nifi.flow.VersionedProcessor;
 
 import java.io.File;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -52,55 +52,35 @@ public class DynamicAllowableValuesConnector extends 
AbstractConnector {
         .propertyGroups(List.of(FILE_PROPERTY_GROUP))
         .build();
 
+    static final ConnectorPropertyDescriptor FIRST_PRIMARY_COLOR = new 
ConnectorPropertyDescriptor.Builder()
+        .name("First Primary Color")
+        .description("The first primary color")
+        .allowableValuesFetchable(true)
+        .required(true)
+        .build();
 
-    @Override
-    public VersionedExternalFlow getInitialFlow() {
-        return null;
-    }
+    static final ConnectorPropertyGroup PRIMARY_COLORS_PROPERTY_GROUP = new 
ConnectorPropertyGroup.Builder()
+        .name("Primary Colors")
+        .addProperty(FIRST_PRIMARY_COLOR)
+        .build();
 
-    @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
-        final List<ConfigurationStep> steps = new ArrayList<>();
-        steps.add(FILE_STEP);
+    static final ConfigurationStep COLORS_STEP = new 
ConfigurationStep.Builder()
+        .name("Colors")
+        .propertyGroups(List.of(PRIMARY_COLORS_PROPERTY_GROUP))
+        .dependsOn(FILE_STEP, FILE_PATH)
+        .build();
 
-        final ConnectorConfigurationContext configContext = 
flowContext.getConfigurationContext();
+    private static final List<ConfigurationStep> CONFIGURATION_STEPS = 
List.of(FILE_STEP, COLORS_STEP);
 
-        if (configContext.getProperty(FILE_STEP, FILE_PATH) != null) {
-            final Set<ProcessorFacade> processorsFacades = 
flowContext.getRootGroup().getProcessors();
-            if (processorsFacades.isEmpty()) {
-                return steps;
-            }
 
-            final ProcessorFacade processorFacade = 
processorsFacades.iterator().next();
-            try {
-                final List<String> fileValues = (List<String>) 
processorFacade.invokeConnectorMethod("getFileValues", Map.of());
-                steps.add(createColorConfigurationStep(fileValues));
-            } catch (final InvocationFailedException ignored) {
-                // If we can't get file values, don't add the step.
-            }
-        }
-
-        return steps;
+    @Override
+    public VersionedExternalFlow getInitialFlow() {
+        return null;
     }
 
-    private ConfigurationStep createColorConfigurationStep(final List<String> 
values) {
-        final ConnectorPropertyDescriptor FIRST_PRIMARY_COLOR = new 
ConnectorPropertyDescriptor.Builder()
-            .name("First Primary Color")
-            .description("The first primary color")
-            .defaultValue(values.getFirst())
-            .allowableValues(values.toArray(new String[0]))
-            .required(true)
-            .build();
-
-        final ConnectorPropertyGroup PRIMARY_COLORS_PROPERTY_GROUP = new 
ConnectorPropertyGroup.Builder()
-            .name("Primary Colors")
-            .addProperty(FIRST_PRIMARY_COLOR)
-            .build();
-
-        return new ConfigurationStep.Builder()
-            .name("Colors")
-            .propertyGroups(List.of(PRIMARY_COLORS_PROPERTY_GROUP))
-            .build();
+    @Override
+    public List<ConfigurationStep> getConfigurationSteps() {
+        return CONFIGURATION_STEPS;
     }
 
     @Override
@@ -122,6 +102,29 @@ public class DynamicAllowableValuesConnector extends 
AbstractConnector {
         return List.of();
     }
 
+    @Override
+    public List<AllowableValue> fetchAllowableValues(final String stepName, 
final String propertyName, final FlowContext flowContext) {
+        if ("Colors".equals(stepName) && "First Primary 
Color".equals(propertyName)) {
+            final Set<ProcessorFacade> processorFacades = 
flowContext.getRootGroup().getProcessors();
+            if (!processorFacades.isEmpty()) {
+                final ProcessorFacade processorFacade = 
processorFacades.iterator().next();
+
+                try {
+                    @SuppressWarnings("unchecked")
+                    final List<String> fileValues = (List<String>) 
processorFacade.invokeConnectorMethod("getFileValues", Map.of());
+
+                    return fileValues.stream()
+                        .map(AllowableValue::new)
+                        .toList();
+                } catch (final InvocationFailedException e) {
+                    throw new RuntimeException("Failed to fetch allowable 
values from connector.", e);
+                }
+            }
+        }
+
+        return super.fetchAllowableValues(stepName, propertyName, flowContext);
+    }
+
 
     public static class SimpleFileExistsValidator implements Validator {
         @Override
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/DynamicFlowConnector.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/DynamicFlowConnector.java
index 9c88d17836..bf81482143 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/DynamicFlowConnector.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/DynamicFlowConnector.java
@@ -116,7 +116,7 @@ public class DynamicFlowConnector extends AbstractConnector 
{
     );
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
+    public List<ConfigurationStep> getConfigurationSteps() {
         return configurationSteps;
     }
 
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/ParameterConnector.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/ParameterConnector.java
index 60061fb4cc..bbc071aca0 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/ParameterConnector.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/ParameterConnector.java
@@ -77,7 +77,7 @@ public class ParameterConnector extends AbstractConnector {
     }
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
+    public List<ConfigurationStep> getConfigurationSteps() {
         return List.of(TEXT_STEP);
     }
 
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/SleepingConnector.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/SleepingConnector.java
index cc43b022be..6443523e43 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/SleepingConnector.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/SleepingConnector.java
@@ -73,7 +73,7 @@ public class SleepingConnector implements Connector {
     }
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
fLowContext) {
+    public List<ConfigurationStep> getConfigurationSteps() {
         return List.of();
     }
 
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/StandardConnectorNodeIT.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/StandardConnectorNodeIT.java
index 6e9a437aa9..abdbfd8f7f 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/StandardConnectorNodeIT.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/StandardConnectorNodeIT.java
@@ -19,7 +19,6 @@ package org.apache.nifi.components.connector;
 
 import org.apache.nifi.bundle.Bundle;
 import org.apache.nifi.components.DescribedValue;
-import org.apache.nifi.components.ValidationResult;
 import org.apache.nifi.components.connector.processors.CreateDummyFlowFile;
 import org.apache.nifi.components.connector.processors.DuplicateFlowFile;
 import org.apache.nifi.components.connector.processors.LogFlowFileContents;
@@ -369,7 +368,7 @@ public class StandardConnectorNodeIT {
             SystemBundle.SYSTEM_BUNDLE_COORDINATE, true, true);
         assertNotNull(connectorNode);
 
-        assertEquals(List.of("File"), 
getConfigurationStepNames(connectorNode));
+        assertEquals(List.of("File", "Colors"), 
getConfigurationStepNames(connectorNode));
 
         final Path tempFile = Files.createTempFile("StandardConnectorNodeIT", 
".txt");
         Files.writeString(tempFile, String.join("\n", "red", "blue", 
"yellow"));
@@ -381,16 +380,7 @@ public class StandardConnectorNodeIT {
         connectorNode.prepareForUpdate();
         assertEquals(List.of("File", "Colors"), 
getConfigurationStepNames(connectorNode));
 
-        final ConfigurationStep colorConfigurationStep = 
connectorNode.getConfigurationSteps().stream()
-            .filter(step -> step.getName().equals("Colors"))
-            .findFirst()
-            .orElseThrow();
-
-        assertNotNull(colorConfigurationStep);
-        assertEquals(1, colorConfigurationStep.getPropertyGroups().size());
-        final ConnectorPropertyGroup primaryColorsPropertyGroup = 
colorConfigurationStep.getPropertyGroups().getFirst();
-
-        final List<String> allowableValues = 
primaryColorsPropertyGroup.getProperties().getFirst().getAllowableValues().stream()
+        final List<String> allowableValues = 
connectorNode.fetchAllowableValues("Colors", "First Primary Color").stream()
             .map(DescribedValue::getValue)
             .toList();
         assertEquals(List.of("red", "blue", "yellow"), allowableValues);
@@ -402,7 +392,7 @@ public class StandardConnectorNodeIT {
             SystemBundle.SYSTEM_BUNDLE_COORDINATE, true, true);
         assertNotNull(connectorNode);
 
-        assertEquals(List.of("File"), 
getConfigurationStepNames(connectorNode));
+        assertEquals(List.of("File", "Colors"), 
getConfigurationStepNames(connectorNode));
 
         final ConnectorConfiguration configuration = 
createFileConfiguration("/non/existent/file");
         configure(connectorNode, configuration);
@@ -410,12 +400,17 @@ public class StandardConnectorNodeIT {
         final ValidationState validationState = 
connectorNode.performValidation();
         assertNotNull(validationState);
         assertEquals(ValidationStatus.INVALID, validationState.getStatus());
-        assertEquals(1, validationState.getValidationErrors().size());
+        assertEquals(2, validationState.getValidationErrors().size());
 
-        final ValidationResult result = 
validationState.getValidationErrors().iterator().next();
-        result.getExplanation().contains("/non/existent/file");
+        final boolean hasFileError = 
validationState.getValidationErrors().stream()
+            .anyMatch(result -> result.getInput() != null && 
result.getInput().contains("/non/existent/file"));
+        assertTrue(hasFileError);
 
-        final ConnectorConfiguration validConfig = 
createFileConfiguration(".");
+        final boolean hasColorError = 
validationState.getValidationErrors().stream()
+            .anyMatch(result -> result.getSubject() != null && 
result.getSubject().contains("First Primary Color"));
+        assertTrue(hasColorError);
+
+        final ConnectorConfiguration validConfig = 
createFileAndColorsConfiguration(".", "red");
         configure(connectorNode, validConfig);
 
         final ValidationState updatedValidationState = 
connectorNode.performValidation();
@@ -523,10 +518,19 @@ public class StandardConnectorNodeIT {
     }
 
     private ConnectorConfiguration createFileConfiguration(final String 
filename) {
-        // File configuration step
         final StepConfiguration fileStepConfig = new 
StepConfiguration(Map.of("File Path", new StringLiteralValue(filename)));
         final NamedStepConfiguration fileConfigurationStepConfiguration = new 
NamedStepConfiguration("File", fileStepConfig);
 
         return new 
ConnectorConfiguration(Set.of(fileConfigurationStepConfiguration));
     }
+
+    private ConnectorConfiguration createFileAndColorsConfiguration(final 
String filename, final String color) {
+        final StepConfiguration fileStepConfig = new 
StepConfiguration(Map.of("File Path", new StringLiteralValue(filename)));
+        final NamedStepConfiguration fileConfigurationStepConfiguration = new 
NamedStepConfiguration("File", fileStepConfig);
+
+        final StepConfiguration colorsStepConfig = new 
StepConfiguration(Map.of("First Primary Color", new StringLiteralValue(color)));
+        final NamedStepConfiguration colorsConfigurationStepConfiguration = 
new NamedStepConfiguration("Colors", colorsStepConfig);
+
+        return new 
ConnectorConfiguration(Set.of(fileConfigurationStepConfiguration, 
colorsConfigurationStepConfiguration));
+    }
 }
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/TestStandardConnectorNode.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/TestStandardConnectorNode.java
index 8b0b619cf5..03da830e03 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/TestStandardConnectorNode.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/components/connector/TestStandardConnectorNode.java
@@ -594,7 +594,7 @@ public class TestStandardConnectorNode {
         }
 
         @Override
-        public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
+        public List<ConfigurationStep> getConfigurationSteps() {
             return List.of();
         }
 
@@ -647,7 +647,7 @@ public class TestStandardConnectorNode {
         }
 
         @Override
-        public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
+        public List<ConfigurationStep> getConfigurationSteps() {
             final ConfigurationStep testStep = new ConfigurationStep.Builder()
                 .name("testStep")
                 .build();
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/flow/NopConnector.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/flow/NopConnector.java
index b8f6c30aaf..b4b7c7d9be 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/flow/NopConnector.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/flow/NopConnector.java
@@ -92,7 +92,7 @@ public class NopConnector implements Connector {
     }
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
+    public List<ConfigurationStep> getConfigurationSteps() {
         return List.of(new ConfigurationStep.Builder()
             .name("Test Group")
             .description("A test configuration step")
diff --git 
a/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/DummyConnector.java
 
b/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/DummyConnector.java
index c824f8be67..61738f428a 100644
--- 
a/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/DummyConnector.java
+++ 
b/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/test/java/org/apache/nifi/nar/DummyConnector.java
@@ -61,7 +61,7 @@ public class DummyConnector implements Connector {
     }
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
+    public List<ConfigurationStep> getConfigurationSteps() {
         return List.of();
     }
 
diff --git 
a/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/connectors/tests/system/AssetConnector.java
 
b/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/connectors/tests/system/AssetConnector.java
index cbab02f64c..2e927bb038 100644
--- 
a/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/connectors/tests/system/AssetConnector.java
+++ 
b/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/connectors/tests/system/AssetConnector.java
@@ -69,7 +69,7 @@ public class AssetConnector extends AbstractConnector {
     }
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
+    public List<ConfigurationStep> getConfigurationSteps() {
         return List.of(ASSET_CONFIGURATION_STEP);
     }
 
diff --git 
a/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/connectors/tests/system/NopConnector.java
 
b/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/connectors/tests/system/NopConnector.java
index 5d927096db..702a4574ad 100644
--- 
a/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/connectors/tests/system/NopConnector.java
+++ 
b/nifi-system-tests/nifi-system-test-extensions-bundle/nifi-system-test-extensions/src/main/java/org/apache/nifi/connectors/tests/system/NopConnector.java
@@ -98,7 +98,7 @@ public class NopConnector extends AbstractConnector {
     }
 
     @Override
-    public List<ConfigurationStep> getConfigurationSteps(final FlowContext 
flowContext) {
+    public List<ConfigurationStep> getConfigurationSteps() {
         return configurationSteps;
     }
 

Reply via email to