Repository: nifi Updated Branches: refs/heads/master 51b8ecd01 -> b19ff7cf3
NIFI-1215: - Only showing the run duration setting when applicable. - Showing the user a warning that a source processor with a non 0 run duration could lose data when NiFi is restarted. Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/b19ff7cf Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/b19ff7cf Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/b19ff7cf Branch: refs/heads/master Commit: b19ff7cf37162934cafabdf46dedd4afc46f2a82 Parents: 51b8ecd Author: Matt Gilman <[email protected]> Authored: Wed Dec 16 10:53:15 2015 -0500 Committer: Matt Gilman <[email protected]> Committed: Wed Dec 16 10:53:15 2015 -0500 ---------------------------------------------------------------------- .../apache/nifi/web/api/dto/ProcessorDTO.java | 15 ++++++++++ .../org/apache/nifi/web/api/dto/DtoFactory.java | 1 + .../partials/canvas/processor-configuration.jsp | 11 ++++++-- .../WEB-INF/partials/processor-details.jsp | 3 +- .../main/webapp/css/processor-configuration.css | 17 ++++++++++-- .../js/nf/canvas/nf-processor-configuration.js | 29 ++++++++++++++++---- 6 files changed, 63 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/b19ff7cf/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 866d77c..0e4ddde 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 Boolean supportsBatching; private String inputRequirement; private ProcessorConfigDTO config; @@ -150,6 +151,20 @@ public class ProcessorDTO extends NiFiComponentDTO { } /** + * @return whether this processor supports batching + */ + @ApiModelProperty( + value = "Whether the processor supports batching. This makes the run duration settings available." + ) + public Boolean getSupportsBatching() { + return supportsBatching; + } + + public void setSupportsBatching(Boolean supportsBatching) { + this.supportsBatching = supportsBatching; + } + + /** * Gets the available relationships that this processor currently supports. * * @return The available relationships http://git-wip-us.apache.org/repos/asf/nifi/blob/b19ff7cf/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 c16653e..f26d1b7 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 @@ -1484,6 +1484,7 @@ public final class DtoFactory { dto.setDescription(getCapabilityDescription(node.getClass())); dto.setSupportsParallelProcessing(!node.isTriggeredSerially()); dto.setSupportsEventDriven(node.isEventDrivenSupported()); + dto.setSupportsBatching(node.isHighThroughputSupported()); dto.setConfig(createProcessorConfigDto(node)); final Collection<ValidationResult> validationErrors = node.getValidationErrors(); http://git-wip-us.apache.org/repos/asf/nifi/blob/b19ff7cf/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/processor-configuration.jsp ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/processor-configuration.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/processor-configuration.jsp index 3516de7..0363f72 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/processor-configuration.jsp +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/canvas/processor-configuration.jsp @@ -103,7 +103,7 @@ </div> </div> <div id="event-driven-warning" class="hidden"> - <div id="event-driven-warning-icon"></div> + <div class="processor-configuration-warning-icon"></div> This strategy is experimental </div> <div class="clear"></div> @@ -164,11 +164,12 @@ </div> </div> <div class="spacer"> </div> - <div class="settings-right"> + <div id="run-duration-setting-container" class="settings-right"> <div class="setting"> <div class="setting-name"> Run duration - <img class="setting-icon icon-info" src="images/iconInfo.png" alt="Info" title="When scheduled to run, the processor will continue running for this duration. A run duration of 0ms will execute once when scheduled."/> + <img class="setting-icon icon-info" src="images/iconInfo.png" alt="Info" + title="When scheduled to run, the processor will continue running for up to this duration. A run duration of 0ms will execute once when scheduled."/> </div> <div class="setting-field" style="overflow: visible;"> <div id="run-duration-container"> @@ -189,6 +190,10 @@ <div id="max-run-duration-explanation">Higher throughput</div> <div class="clear"></div> </div> + <div id="run-duration-data-loss" class="hidden"> + <div class="processor-configuration-warning-icon"></div> + Source Processors with a run duration greater than 0ms and no incoming connections could lose data when NiFi is shutdown. + </div> </div> </div> </div> http://git-wip-us.apache.org/repos/asf/nifi/blob/b19ff7cf/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/processor-details.jsp ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/processor-details.jsp b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/processor-details.jsp index 31df7c9..5375174 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/processor-details.jsp +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/WEB-INF/partials/processor-details.jsp @@ -129,7 +129,8 @@ <div class="setting"> <div class="setting-name"> Run duration - <img class="setting-icon icon-info" src="images/iconInfo.png" alt="Info" title="The amount of time this processor will run for when scheduled."/> + <img class="setting-icon icon-info" src="images/iconInfo.png" alt="Info" + title="When scheduled to run, the processor will continue running for up to this duration. A run duration of 0ms will execute once when scheduled."/> </div> <div class="setting-field"> <span id="read-only-run-duration"></span> http://git-wip-us.apache.org/repos/asf/nifi/blob/b19ff7cf/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-configuration.css ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-configuration.css b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-configuration.css index 1dc52f3..1186aaa 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-configuration.css +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/css/processor-configuration.css @@ -113,13 +113,15 @@ div.processor-enabled-container { #event-driven-warning { padding-top: 22px; color: #f00; + float: left; + float: left; + margin-left: 10px; } -#event-driven-warning-icon { +div.processor-configuration-warning-icon { float: left; margin-top: -2px; - margin-right: 5px; - margin-left: 5px; + margin-right: 8px; width: 18px; height: 16px; background-image: url(../images/iconAlert.png); @@ -216,6 +218,15 @@ div.relationship-description { line-height: normal; } +#run-duration-data-loss { + margin-top: 15px; + color: #f00; +} + +#run-duration-data-loss div.processor-configuration-warning-icon { + margin-top: 4px; +} + #min-run-duration-explanation { float: left; } http://git-wip-us.apache.org/repos/asf/nifi/blob/b19ff7cf/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-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-processor-configuration.js b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js index 2e48579..6d04a00 100644 --- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js +++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-ui/src/main/webapp/js/nf/canvas/nf-processor-configuration.js @@ -271,8 +271,10 @@ nf.ProcessorConfiguration = (function () { processorConfigDto['comments'] = $('#processor-comments').val(); // run duration - var runDurationIndex = $('#run-duration-slider').slider('value'); - processorConfigDto['runDurationMillis'] = RUN_DURATION_VALUES[runDurationIndex]; + if ($('#run-duration-setting-container').is(':visible')) { + var runDurationIndex = $('#run-duration-slider').slider('value'); + processorConfigDto['runDurationMillis'] = RUN_DURATION_VALUES[runDurationIndex]; + } // relationships processorConfigDto['autoTerminatedRelationships'] = marshalRelationships(); @@ -528,7 +530,15 @@ nf.ProcessorConfiguration = (function () { // initialize the run duration slider $('#run-duration-slider').slider({ min: 0, - max: RUN_DURATION_VALUES.length - 1 + max: RUN_DURATION_VALUES.length - 1, + change: function (event, ui) { + var processor = $('#processor-configuration').data('processorDetails'); + if (ui.value > 0 && (processor.inputRequirement === 'INPUT_FORBIDDEN' || processor.inputRequirement === 'INPUT_ALLOWED')) { + $('#run-duration-data-loss').show(); + } else { + $('#run-duration-data-loss').hide(); + } + } }); // initialize the property table @@ -598,9 +608,16 @@ nf.ProcessorConfiguration = (function () { $('#yield-duration').val(processor.config['yieldDuration']); $('#processor-comments').val(processor.config['comments']); - // set the run duration - var runDuration = RUN_DURATION_VALUES.indexOf(processor.config['runDurationMillis']); - $('#run-duration-slider').slider('value', runDuration); + // set the run duration if applicable + if (processor.supportsBatching === true) { + $('#run-duration-setting-container').show(); + + // set the run duration slider value + var runDuration = RUN_DURATION_VALUES.indexOf(processor.config['runDurationMillis']); + $('#run-duration-slider').slider('value', runDuration); + } else { + $('#run-duration-setting-container').hide(); + } // select the appropriate bulletin level $('#bulletin-level-combo').combo('setSelectedOption', {
