Skip to content

Commit

Permalink
NIFI-13196: Added new isAutoTerminated(Relationship) method to Proces…
Browse files Browse the repository at this point in the history
…sContext, which simply delegates to Connectable.isAutoTerminated(Relationship)

This closes #8790

Signed-off-by: Joseph Witt <joewitt@apache.org>
  • Loading branch information
markap14 authored and joewitt committed May 10, 2024
1 parent 196f6bb commit 62fbd8e
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -43,6 +34,15 @@
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
*/
Expand Down Expand Up @@ -250,6 +250,11 @@ public Set<Relationship> getAvailableRelationships() {
return new HashSet<>(connectable.getRelationships());
}

@Override
public boolean isAutoTerminated(final Relationship relationship) {
return connectable.isAutoTerminated(relationship);
}

@Override
public boolean hasIncomingConnection() {
return connectable.hasIncomingConnection();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,11 @@ public Set<Relationship> getAvailableRelationships() {
return set;
}

@Override
public boolean isAutoTerminated(final Relationship relationship) {
return procNode.isAutoTerminated(relationship);
}

@Override
public String getControllerServiceName(final String serviceIdentifier) {
verifyTaskActive();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@ public Set<Relationship> getAvailableRelationships() {
return Collections.emptySet();
}

@Override
public boolean isAutoTerminated(final Relationship relationship) {
return false;
}

@Override
public boolean hasIncomingConnection() {
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,11 @@ public Set<Relationship> getAvailableRelationships() {
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));
}
Expand Down

0 comments on commit 62fbd8e

Please sign in to comment.