You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: nifi-connector-mock-bundle/nifi-connector-mock-server/src/main/java/org/apache/nifi/mock/connector/server/StandardConnectorMockServer.java
Copy file name to clipboardExpand all lines: nifi-connector-mock-bundle/nifi-connector-mock-test-bundle/nifi-connector-mock-integration-tests/src/test/java/org/apache/nifi/mock/connectors/tests/CreateConnectorIT.java
assertTrue(message.contains("com.example.nonexistent:missing-nar:1.0.0"), "Expected exception message to contain missing bundle coordinates but was: " + message);
55
+
assertTrue(message.contains("com.example.nonexistent.MissingProcessor"), "Expected exception message to contain missing processor type but was: " + message);
Copy file name to clipboardExpand all lines: nifi-connector-mock-bundle/nifi-connector-mock-test-bundle/nifi-connector-mock-test-connectors/src/main/resources/META-INF/services/org.apache.nifi.components.connector.Connector
Copy file name to clipboardExpand all lines: nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/GhostConnector.java
+7-1Lines changed: 7 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -33,10 +33,12 @@ public class GhostConnector implements Connector {
Copy file name to clipboardExpand all lines: nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/components/connector/StandardConnectorNode.java
* Ensures that all bundles required by the given Process Group can be resolved. We do this in order to make the Connector
751
+
* invalid if any Processor or Controller Service cannot be properly instantiated due to missing bundles. We intentionally
752
+
* differentiate between making the Connector invalid versus Ghosting the Connector for a few reasons:
753
+
* <ul>
754
+
* <li>
755
+
* Ghosting the Connector would prevent us from even getting the Configuration Steps, and it results in all Properties becoming sensitive. This can lead to confusion.
756
+
* </li>
757
+
* <li>
758
+
* The flow may change dynamically and so it's possible for a Connector to be valid given its initial flow and then become invalid
759
+
* based on configuration because the new configuration requires a new component that is unavailable. We would not suddenly change from
760
+
* a valid Connector to a Ghosted Connector, we could only become invalid. We do not want a missing component in the Initial Flow to be
761
+
* treated differently than a missing component from a subsequent flow update.
762
+
* </li>
763
+
* <li>
764
+
* Ghosting should be reserved for situations where the extension itself is missing.
765
+
* </li>
766
+
* </ul>
767
+
*
768
+
* @param group the process group to validate
769
+
* @param bundleLookup the bundle lookup
770
+
* @return a ValidationResult describing the missing bundles if any are missing; null if all bundles can be resolved
0 commit comments