This is an automated email from the ASF dual-hosted git repository.
joewitt 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 62fbd8e8b1 NIFI-13196: Added new isAutoTerminated(Relationship) method
to ProcessContext, which simply delegates to
Connectable.isAutoTerminated(Relationship) This closes #8790
62fbd8e8b1 is described below
commit 62fbd8e8b187e6db2e639eb30f3078238a2da165
Author: Mark Payne <[email protected]>
AuthorDate: Thu May 9 15:55:06 2024 -0400
NIFI-13196: Added new isAutoTerminated(Relationship) method to
ProcessContext, which simply delegates to
Connectable.isAutoTerminated(Relationship)
This closes #8790
Signed-off-by: Joseph Witt <[email protected]>
---
.../org/apache/nifi/processor/ProcessContext.java | 7 +++++++
.../scheduling/ConnectableProcessContext.java | 23 +++++++++++++---------
.../nifi/processor/StandardProcessContext.java | 5 +++++
.../org/apache/nifi/mock/MockProcessContext.java | 5 +++++
.../org/apache/nifi/util/MockProcessContext.java | 5 +++++
5 files changed, 36 insertions(+), 9 deletions(-)
diff --git
a/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java
b/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java
index b419e96367..448414a47b 100644
--- a/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java
+++ b/nifi-api/src/main/java/org/apache/nifi/processor/ProcessContext.java
@@ -108,6 +108,13 @@ public interface ProcessContext extends PropertyContext,
ClusterContext {
*/
Set<Relationship> getAvailableRelationships();
+ /**
+ * Indicates whether or not the given relationship is configured to be
auto-terminated
+ * @param relationship the relationship
+ * @return <code>true</code> if the given relationship is auto-terminated,
<code>false</code> otherwise
+ */
+ boolean isAutoTerminated(Relationship relationship);
+
/**
* @return true if the processor has one or more incoming connections,
* false otherwise
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/scheduling/ConnectableProcessContext.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/scheduling/ConnectableProcessContext.java
index 3d046411b5..b9e211b6f0 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/scheduling/ConnectableProcessContext.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/scheduling/ConnectableProcessContext.java
@@ -16,15 +16,6 @@
*/
package org.apache.nifi.controller.repository.scheduling;
-import java.time.Duration;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.PropertyValue;
import org.apache.nifi.components.resource.ResourceReference;
@@ -43,6 +34,15 @@ import org.apache.nifi.processor.exception.ProcessException;
import org.apache.nifi.scheduling.ExecutionNode;
import org.apache.nifi.util.Connectables;
+import java.time.Duration;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
/**
* This class is essentially an empty shell for {@link Connectable}s that are
not Processors
*/
@@ -250,6 +250,11 @@ public class ConnectableProcessContext implements
ProcessContext {
return new HashSet<>(connectable.getRelationships());
}
+ @Override
+ public boolean isAutoTerminated(final Relationship relationship) {
+ return connectable.isAutoTerminated(relationship);
+ }
+
@Override
public boolean hasIncomingConnection() {
return connectable.hasIncomingConnection();
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/processor/StandardProcessContext.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/processor/StandardProcessContext.java
index e3aa93bb8f..2164348f1d 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/processor/StandardProcessContext.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/processor/StandardProcessContext.java
@@ -309,6 +309,11 @@ public class StandardProcessContext implements
ProcessContext, ControllerService
return set;
}
+ @Override
+ public boolean isAutoTerminated(final Relationship relationship) {
+ return procNode.isAutoTerminated(relationship);
+ }
+
@Override
public String getControllerServiceName(final String serviceIdentifier) {
verifyTaskActive();
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/main/java/org/apache/nifi/mock/MockProcessContext.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/main/java/org/apache/nifi/mock/MockProcessContext.java
index c4b0978f56..d3a75d64ec 100644
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/main/java/org/apache/nifi/mock/MockProcessContext.java
+++
b/nifi-framework-bundle/nifi-framework/nifi-framework-nar-utils/src/main/java/org/apache/nifi/mock/MockProcessContext.java
@@ -85,6 +85,11 @@ public class MockProcessContext implements ProcessContext {
return Collections.emptySet();
}
+ @Override
+ public boolean isAutoTerminated(final Relationship relationship) {
+ return false;
+ }
+
@Override
public boolean hasIncomingConnection() {
return true;
diff --git
a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
index 2b96099093..cfd396a58b 100644
--- a/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
+++ b/nifi-mock/src/main/java/org/apache/nifi/util/MockProcessContext.java
@@ -444,6 +444,11 @@ public class MockProcessContext extends
MockControllerServiceLookup implements P
return relationships;
}
+ @Override
+ public boolean isAutoTerminated(final Relationship relationship) {
+ return false;
+ }
+
public void setUnavailableRelationships(final Set<Relationship>
relationships) {
this.unavailableRelationships = Collections.unmodifiableSet(new
HashSet<>(relationships));
}