You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by jw...@apache.org on 2017/05/24 17:46:40 UTC
nifi git commit: NIFI-3799 Add Input Requirement Info to Docs
Repository: nifi
Updated Branches:
refs/heads/master 08b66b5b6 -> fb7d6d115
NIFI-3799 Add Input Requirement Info to Docs
Added input requirement info for processor documentation
This closes #1756.
Signed-off-by: James Wing <jv...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/fb7d6d11
Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/fb7d6d11
Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/fb7d6d11
Branch: refs/heads/master
Commit: fb7d6d1150bfa4338b31e73c244d039f57819c94
Parents: 08b66b5
Author: Pierre Villard <pi...@gmail.com>
Authored: Fri May 5 15:05:02 2017 +0200
Committer: James Wing <jv...@gmail.com>
Committed: Wed May 24 10:45:45 2017 -0700
----------------------------------------------------------------------
.../html/HtmlDocumentationWriter.java | 33 ++++++++++++++++++++
.../example/FullyDocumentedProcessor.java | 3 ++
.../html/ProcessorDocumentationWriterTest.java | 6 ++++
3 files changed, 42 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi/blob/fb7d6d11/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
index 6497e41..899af2b 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
@@ -18,6 +18,7 @@ package org.apache.nifi.documentation.html;
import org.apache.nifi.annotation.behavior.DynamicProperties;
import org.apache.nifi.annotation.behavior.DynamicProperty;
+import org.apache.nifi.annotation.behavior.InputRequirement;
import org.apache.nifi.annotation.behavior.Restricted;
import org.apache.nifi.annotation.behavior.Stateful;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
@@ -146,6 +147,7 @@ public class HtmlDocumentationWriter implements DocumentationWriter {
writeAdditionalBodyInfo(configurableComponent, xmlStreamWriter);
writeStatefulInfo(configurableComponent, xmlStreamWriter);
writeRestrictedInfo(configurableComponent, xmlStreamWriter);
+ writeInputRequirementInfo(configurableComponent, xmlStreamWriter);
writeSeeAlso(configurableComponent, xmlStreamWriter);
xmlStreamWriter.writeEndElement();
}
@@ -168,6 +170,37 @@ public class HtmlDocumentationWriter implements DocumentationWriter {
}
/**
+ * Add in the documentation information regarding the component whether it accepts an
+ * incoming relationship or not.
+ *
+ * @param configurableComponent the component to describe
+ * @param xmlStreamWriter the stream writer to use
+ * @throws XMLStreamException thrown if there was a problem writing the XML
+ */
+ private void writeInputRequirementInfo(ConfigurableComponent configurableComponent, XMLStreamWriter xmlStreamWriter)
+ throws XMLStreamException {
+ final InputRequirement inputRequirement = configurableComponent.getClass().getAnnotation(InputRequirement.class);
+
+ if(inputRequirement != null) {
+ writeSimpleElement(xmlStreamWriter, "h3", "Input requirement: ");
+ switch (inputRequirement.value()) {
+ case INPUT_FORBIDDEN:
+ xmlStreamWriter.writeCharacters("This component does not allow an incoming relationship.");
+ break;
+ case INPUT_ALLOWED:
+ xmlStreamWriter.writeCharacters("This component allows an incoming relationship.");
+ break;
+ case INPUT_REQUIRED:
+ xmlStreamWriter.writeCharacters("This component requires an incoming relationship.");
+ break;
+ default:
+ xmlStreamWriter.writeCharacters("This component does not have input requirement.");
+ break;
+ }
+ }
+ }
+
+ /**
* Write the description of the Stateful annotation if provided in this component.
*
* @param configurableComponent the component to describe
http://git-wip-us.apache.org/repos/asf/nifi/blob/fb7d6d11/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedProcessor.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedProcessor.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedProcessor.java
index bc1be1f..b129886 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedProcessor.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/example/FullyDocumentedProcessor.java
@@ -18,11 +18,13 @@ package org.apache.nifi.documentation.example;
import org.apache.nifi.annotation.behavior.DynamicProperty;
import org.apache.nifi.annotation.behavior.DynamicRelationship;
+import org.apache.nifi.annotation.behavior.InputRequirement;
import org.apache.nifi.annotation.behavior.ReadsAttribute;
import org.apache.nifi.annotation.behavior.Restricted;
import org.apache.nifi.annotation.behavior.Stateful;
import org.apache.nifi.annotation.behavior.WritesAttribute;
import org.apache.nifi.annotation.behavior.WritesAttributes;
+import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
import org.apache.nifi.annotation.documentation.CapabilityDescription;
import org.apache.nifi.annotation.documentation.SeeAlso;
import org.apache.nifi.annotation.documentation.Tags;
@@ -56,6 +58,7 @@ import java.util.Set;
@DynamicRelationship(name = "name from dynamic property", description = "all files that match the properties XPath")
@Stateful(scopes = {Scope.CLUSTER, Scope.LOCAL}, description = "state management description")
@Restricted("processor restriction description")
+@InputRequirement(Requirement.INPUT_FORBIDDEN)
public class FullyDocumentedProcessor extends AbstractProcessor {
public static final PropertyDescriptor DIRECTORY = new PropertyDescriptor.Builder().name("Input Directory")
http://git-wip-us.apache.org/repos/asf/nifi/blob/fb7d6d11/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/ProcessorDocumentationWriterTest.java
----------------------------------------------------------------------
diff --git a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/ProcessorDocumentationWriterTest.java b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/ProcessorDocumentationWriterTest.java
index c6d867a..06a559c 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/ProcessorDocumentationWriterTest.java
+++ b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/test/java/org/apache/nifi/documentation/html/ProcessorDocumentationWriterTest.java
@@ -81,6 +81,9 @@ public class ProcessorDocumentationWriterTest {
assertNotContains(results, "No tags provided.");
assertNotContains(results, "Additional Details...");
+ // input requirement
+ assertContains(results, "This component does not allow an incoming relationship.");
+
// verify the right OnRemoved and OnShutdown methods were called
Assert.assertEquals(0, processor.getOnRemovedArgs());
Assert.assertEquals(0, processor.getOnRemovedNoArgs());
@@ -122,6 +125,9 @@ public class ProcessorDocumentationWriterTest {
// state management
assertContains(results, "This component is not restricted.");
+
+ // input requirement
+ assertNotContains(results, "Input requirement:");
}
@Test