NIFI-810: - Adding basic support for preventing connection when appropriate. - Updating validation when [dis]connecting processors.
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/13edcfda Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/13edcfda Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/13edcfda Branch: refs/heads/master Commit: 13edcfda2ef830e1b160b31f7cd3bea874ccd3f0 Parents: 4afd8f8 Author: Matt Gilman <matt.c.gil...@gmail.com> Authored: Fri Sep 25 17:46:58 2015 -0400 Committer: Mark Payne <marka...@hotmail.com> Committed: Wed Oct 7 17:26:14 2015 -0400 ---------------------------------------------------------------------- .../org/apache/nifi/web/api/dto/ProcessorDTO.java | 15 +++++++++++++++ .../org/apache/nifi/controller/TemplateManager.java | 1 + .../java/org/apache/nifi/web/api/dto/DtoFactory.java | 1 + .../src/main/webapp/js/nf/canvas/nf-actions.js | 4 +++- .../src/main/webapp/js/nf/canvas/nf-canvas-utils.js | 13 ++++++++++--- .../js/nf/canvas/nf-connection-configuration.js | 8 ++++++-- 6 files changed, 36 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/13edcfda/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorDTO.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorDTO.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorDTO.java index c65c46a..866d77c 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorDTO.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-client-dto/src/main/java/org/apache/nifi/web/api/dto/ProcessorDTO.java @@ -36,6 +36,7 @@ public class ProcessorDTO extends NiFiComponentDTO { private String description; private Boolean supportsParallelProcessing; private Boolean supportsEventDriven; + private String inputRequirement; private ProcessorConfigDTO config; @@ -121,6 +122,20 @@ public class ProcessorDTO extends NiFiComponentDTO { } /** + * @return the input requirement of this processor + */ + @ApiModelProperty( + value = "The input requirement for this processor." + ) + public String getInputRequirement() { + return inputRequirement; + } + + public void setInputRequirement(String inputRequirement) { + this.inputRequirement = inputRequirement; + } + + /** * @return whether this processor supports event driven scheduling */ @ApiModelProperty( http://git-wip-us.apache.org/repos/asf/nifi/blob/13edcfda/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/TemplateManager.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/TemplateManager.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/TemplateManager.java index 7b8e173..a332e05 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/TemplateManager.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/TemplateManager.java @@ -320,6 +320,7 @@ public class TemplateManager { // remove validation errors processorDTO.setValidationErrors(null); + processorDTO.setInputRequirement(null); } } http://git-wip-us.apache.org/repos/asf/nifi/blob/13edcfda/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java index 76bce6f..16b114e 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/dto/DtoFactory.java @@ -1402,6 +1402,7 @@ public final class DtoFactory { dto.setPosition(createPositionDto(node.getPosition())); dto.setStyle(node.getStyle()); dto.setParentGroupId(node.getProcessGroup().getIdentifier()); + dto.setInputRequirement(node.getInputRequirement().name()); dto.setType(node.getProcessor().getClass().getCanonicalName()); dto.setName(node.getName()); http://git-wip-us.apache.org/repos/asf/nifi/blob/13edcfda/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js index 3b47a8d..c6ef75f 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-actions.js @@ -737,7 +737,9 @@ nf.Actions = (function () { var destinationData = destination.datum(); // update the destination component accordingly - if (nf.CanvasUtils.isRemoteProcessGroup(destination)) { + if (nf.CanvasUtils.isProcessor(destination)) { + nf.Processor.reload(destinationData.component); + } else if (nf.CanvasUtils.isRemoteProcessGroup(destination)) { nf.RemoteProcessGroup.reload(destinationData.component); } } else { http://git-wip-us.apache.org/repos/asf/nifi/blob/13edcfda/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js index 9f56e30..1be551f 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-canvas-utils.js @@ -1371,9 +1371,16 @@ nf.CanvasUtils = (function () { return false; } - return nf.CanvasUtils.isProcessor(selection) || nf.CanvasUtils.isProcessGroup(selection) || - nf.CanvasUtils.isRemoteProcessGroup(selection) || nf.CanvasUtils.isOutputPort(selection) || - nf.CanvasUtils.isFunnel(selection); + if (nf.CanvasUtils.isProcessGroup(selection) || nf.CanvasUtils.isRemoteProcessGroup(selection) || + nf.CanvasUtils.isOutputPort(selection) || nf.CanvasUtils.isFunnel(selection)) { + return true; + } + + // if processor, ensure it supports input + if (nf.CanvasUtils.isProcessor(selection)) { + var destinationData = selection.datum(); + return destinationData.component.inputRequirement !== 'INPUT_FORBIDDEN'; + } } }; }()); \ No newline at end of file http://git-wip-us.apache.org/repos/asf/nifi/blob/13edcfda/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js index cc246cf..1bafa7d 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-connection-configuration.js @@ -870,7 +870,9 @@ nf.ConnectionConfiguration = (function () { } // update the destination component accordingly - if (nf.CanvasUtils.isRemoteProcessGroup(destination)) { + if (nf.CanvasUtils.isProcessor(destination)) { + nf.Processor.reload(destinationData.component); + } else if (nf.CanvasUtils.isRemoteProcessGroup(destination)) { nf.RemoteProcessGroup.reload(destinationData.component); } @@ -958,7 +960,9 @@ nf.ConnectionConfiguration = (function () { } // update the destination component accordingly - if (nf.CanvasUtils.isRemoteProcessGroup(destination)) { + if (nf.CanvasUtils.isProcessor(destination)) { + nf.Processor.reload(destinationData.component); + } else if (nf.CanvasUtils.isRemoteProcessGroup(destination)) { nf.RemoteProcessGroup.reload(destinationData.component); } }