Hello Lino

First welcome to the community and thank you for contributing.  It is
great that you selected something and dove in.  Please take a look
here https://cwiki.apache.org/confluence/display/NIFI/Contributor+Guide
to get a sense of how to best submit contributions that can then help
most effectively drive the review process.

Could attach a patch to the JIRA (the text you have in the email looks
like the right structure) or could submit a PR through Github.

Thanks
Joe

On Thu, Feb 11, 2016 at 9:40 AM, Pasqualino S. Ferrentino
<[email protected]> wrote:
>
> Hi all,
>
>  my name is Lino Ferrentino and this is my first post.
>
> I have worked on NiFi to solve the issue
>
> https://issues.apache.org/jira/browse/NIFI-1003
>
> and I enclose here a patch which I have tested
> with the current 0.5 snapshot tree.
>
> It adds a flag to the relationship. This flag tells the
> processor to terminate it automatically, so in this
> case we can add new relationships to a processor
> and make the processor still runnable (otherwise the
> framework will report a validation error).
>
> I paste below the patch, hoping that it is in the correct format.
>
> Lino
>
>
>
>
> From 51b9d70cbac7d79457cc62fbe8fb5c5df4cc2920 Mon Sep 17 00:00:00 2001
> From: Pasqualino Ferrentino <[email protected]>
> Date: Thu, 11 Feb 2016 01:10:24 -0600
> Subject: [PATCH] A relationship can be auto-terminable. In this case the 
> processor will auto-terminate the relationship and allow the user to run it 
> even he does not connect those relationship and he does not terminate them
>
> ---
>  .../org/apache/nifi/processor/Relationship.java    |   18 ++++++++++++++++++
>  .../nifi/controller/StandardProcessorNode.java     |    2 ++
>  2 files changed, 20 insertions(+), 0 deletions(-)
>
> diff --git 
> a/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java 
> b/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java
> index d9f13be..3c32e09 100644
> --- a/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java
> +++ b/nifi-api/src/main/java/org/apache/nifi/processor/Relationship.java
> @@ -41,9 +41,17 @@ public final class Relationship implements 
> Comparable<Relationship> {
>       */
>      private final int hashCode;
>
> +    /**
> +     * The flag which tells the controller to auto terminate this
> +     * relationship, so that the processor can be run even if it does
> +     * not have connections from this relationship
> +     */
> +    private final boolean isAutoTerminate;
> +
>      protected Relationship(final Builder builder) {
>          this.name = builder.name == null ? null : builder.name.intern();
>          this.description = builder.description;
> +        this.isAutoTerminate = builder.autoTerminate;
>          this.hashCode = 301 + this.name.hashCode(); // compute only once, 
> since it gets called a bunch and will never change
>      }
>
> @@ -71,6 +79,7 @@ public final class Relationship implements 
> Comparable<Relationship> {
>
>          private String name = "";
>          private String description = "";
> +        private boolean autoTerminate = false;
>
>          public Builder name(final String name) {
>              if (null != name) {
> @@ -86,6 +95,11 @@ public final class Relationship implements 
> Comparable<Relationship> {
>              return this;
>          }
>
> +        public Builder autoTerminateDefault(boolean autoTerminate) {
> +            this.autoTerminate = autoTerminate;
> +            return this;
> +        }
> +
>          public Relationship build() {
>              return new Relationship(this);
>          }
> @@ -99,6 +113,10 @@ public final class Relationship implements 
> Comparable<Relationship> {
>          return this.description;
>      }
>
> +    public boolean isAutoTerminated() {
> +        return this.isAutoTerminate;
> +    }
> +
>      @Override
>      public boolean equals(final Object other) {
>          if (other == null) {
> diff --git 
> a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java
>  
> b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java
> index 2db506c..931d26a 100644
> --- 
> a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java
> +++ 
> b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java
> @@ -304,6 +304,8 @@ public class StandardProcessorNode extends ProcessorNode 
> implements Connectable
>
>      @Override
>      public boolean isAutoTerminated(final Relationship relationship) {
> +        if (relationship.isAutoTerminated() && 
> getConnections(relationship).isEmpty())
> +            return true;
>          final Set<Relationship> terminatable = 
> undefinedRelationshipsToTerminate.get();
>          if (terminatable == null) {
>              return false;
> --
> 1.7.1
>
>
>
>

Reply via email to