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 acd54791a522e1bfee3b608f20c6465608ad116a Author: Mark Payne <[email protected]> AuthorDate: Fri Jan 9 16:44:18 2026 -0500 NIFI-15434: Ensure that we start or stop connectors on flow sync (#10737) --- .../serialization/VersionedFlowSynchronizer.java | 17 ++++++++++++----- .../nifi/tests/system/connectors/ConnectorCrudIT.java | 4 ++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/VersionedFlowSynchronizer.java b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/VersionedFlowSynchronizer.java index 197800c470..000a4897a5 100644 --- a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/VersionedFlowSynchronizer.java +++ b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/serialization/VersionedFlowSynchronizer.java @@ -26,15 +26,15 @@ import org.apache.nifi.authorization.ManagedAuthorizer; import org.apache.nifi.bundle.BundleCoordinate; import org.apache.nifi.cluster.protocol.DataFlow; import org.apache.nifi.cluster.protocol.StandardDataFlow; -import org.apache.nifi.components.connector.NamedStepConfiguration; -import org.apache.nifi.components.connector.ConnectorConfiguration; import org.apache.nifi.components.connector.AssetReference; -import org.apache.nifi.components.connector.ConnectorValueReference; -import org.apache.nifi.components.connector.SecretReference; -import org.apache.nifi.components.connector.StringLiteralValue; +import org.apache.nifi.components.connector.ConnectorConfiguration; import org.apache.nifi.components.connector.ConnectorNode; import org.apache.nifi.components.connector.ConnectorRepository; +import org.apache.nifi.components.connector.ConnectorValueReference; import org.apache.nifi.components.connector.FlowUpdateException; +import org.apache.nifi.components.connector.NamedStepConfiguration; +import org.apache.nifi.components.connector.SecretReference; +import org.apache.nifi.components.connector.StringLiteralValue; import org.apache.nifi.components.validation.ValidationStatus; import org.apache.nifi.connectable.Connectable; import org.apache.nifi.connectable.Position; @@ -1169,6 +1169,13 @@ public class VersionedFlowSynchronizer implements FlowSynchronizer { final List<VersionedConfigurationStep> activeFlowConfig = versionedConnector.getActiveFlowConfiguration(); final List<VersionedConfigurationStep> workingFlowConfig = versionedConnector.getWorkingFlowConfiguration(); connectorRepository.inheritConfiguration(connectorNode, activeFlowConfig, workingFlowConfig, versionedConnector.getBundle()); + + final ScheduledState desiredState = versionedConnector.getScheduledState(); + if (desiredState == ScheduledState.RUNNING) { + connectorRepository.startConnector(connectorNode); + } else if (desiredState == ScheduledState.ENABLED) { + connectorRepository.stopConnector(connectorNode); + } } catch (final FlowUpdateException e) { throw new RuntimeException(connectorNode + " failed to inherit configuration", e); } diff --git a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/connectors/ConnectorCrudIT.java b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/connectors/ConnectorCrudIT.java index 78728935cc..fb616c6d4b 100644 --- a/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/connectors/ConnectorCrudIT.java +++ b/nifi-system-tests/nifi-system-test-suite/src/test/java/org/apache/nifi/tests/system/connectors/ConnectorCrudIT.java @@ -18,6 +18,7 @@ package org.apache.nifi.tests.system.connectors; import org.apache.nifi.components.ConfigVerificationResult.Outcome; +import org.apache.nifi.components.connector.ConnectorState; import org.apache.nifi.tests.system.NiFiSystemIT; import org.apache.nifi.toolkit.client.NiFiClientException; import org.apache.nifi.web.api.dto.ConfigVerificationResultDTO; @@ -67,6 +68,9 @@ public class ConnectorCrudIT extends NiFiSystemIT { final ConnectorEntity connectorAfterRestart = getNifiClient().getConnectorClient().getConnector(connector.getId()); assertNotNull(connectorAfterRestart); + final String connectorState = connectorAfterRestart.getComponent().getState(); + assertEquals(ConnectorState.STOPPED.name(), connectorState); + final ConnectorConfigurationDTO activeConfig = connectorAfterRestart.getComponent().getActiveConfiguration(); final Map<String, ConnectorValueReferenceDTO> activeProperties = activeConfig.getConfigurationStepConfigurations().getFirst().getPropertyGroupConfigurations().getFirst().getPropertyValues(); final String activeIgnoredProperty = activeProperties.get("Ignored Property").getValue();
