Repository: incubator-nifi
Updated Branches:
  refs/heads/develop 40b55efbd -> cc3be416b


NIFI-680 Processor docs don't always need to mention Sensitive properties or EL


Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/47847ab4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/47847ab4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/47847ab4

Branch: refs/heads/develop
Commit: 47847ab404d325663ed08b400da81337a79e298d
Parents: 33848b3
Author: danbress <[email protected]>
Authored: Sat Jun 20 18:07:39 2015 -0400
Committer: danbress <[email protected]>
Committed: Sat Jun 20 18:07:39 2015 -0400

----------------------------------------------------------------------
 .../html/HtmlDocumentationWriter.java           | 75 +++++++++++++++-----
 1 file changed, 59 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/47847ab4/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
index d7bad78..7586484 100644
--- 
a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
+++ 
b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-documentation/src/main/java/org/apache/nifi/documentation/html/HtmlDocumentationWriter.java
@@ -268,25 +268,38 @@ public class HtmlDocumentationWriter implements 
DocumentationWriter {
      */
     protected void writeProperties(final ConfigurableComponent 
configurableComponent,
             final XMLStreamWriter xmlStreamWriter) throws XMLStreamException {
+
+        final List<PropertyDescriptor> properties = 
configurableComponent.getPropertyDescriptors();
         writeSimpleElement(xmlStreamWriter, "h3", "Properties: ");
-        xmlStreamWriter.writeStartElement("p");
-        xmlStreamWriter.writeCharacters("In the list below, the names of 
required properties appear in ");
-        writeSimpleElement(xmlStreamWriter, "strong", "bold");
-        xmlStreamWriter.writeCharacters(". Any "
-                + "other properties (not in bold) are considered optional. The 
table also "
-                + "indicates any default values, whether a property supports 
the ");
-        writeLink(xmlStreamWriter, "NiFi Expression Language", 
"../../html/expression-language-guide.html");
-        xmlStreamWriter.writeCharacters(", and whether a property is 
considered "
-                + "\"sensitive\", meaning that its value will be encrypted. 
Before entering a "
-                + "value in a sensitive property, ensure that the ");
-        writeSimpleElement(xmlStreamWriter, "strong", "nifi.properties");
-        xmlStreamWriter.writeCharacters(" file has " + "an entry for the 
property ");
-        writeSimpleElement(xmlStreamWriter, "strong", 
"nifi.sensitive.props.key");
-        xmlStreamWriter.writeCharacters(".");
-        xmlStreamWriter.writeEndElement();
 
-        List<PropertyDescriptor> properties = 
configurableComponent.getPropertyDescriptors();
         if (properties.size() > 0) {
+            final boolean containsExpressionLanguage = 
containsExpressionLanguage(configurableComponent);
+            final boolean containsSensitiveProperties = 
containsSensitiveProperties(configurableComponent);
+            xmlStreamWriter.writeStartElement("p");
+            xmlStreamWriter.writeCharacters("In the list below, the names of 
required properties appear in ");
+            writeSimpleElement(xmlStreamWriter, "strong", "bold");
+            xmlStreamWriter.writeCharacters(". Any other properties (not in 
bold) are considered optional. " +
+                    "The table also indicates any default values");
+            if (containsExpressionLanguage) {
+                if (!containsSensitiveProperties) {
+                    xmlStreamWriter.writeCharacters(", and ");
+                } else {
+                    xmlStreamWriter.writeCharacters(", ");
+                }
+                xmlStreamWriter.writeCharacters("whether a property supports 
the ");
+                writeLink(xmlStreamWriter, "NiFi Expression Language", 
"../../html/expression-language-guide.html");
+            }
+            if (containsSensitiveProperties) {
+                xmlStreamWriter.writeCharacters(", and whether a property is 
considered " + "\"sensitive\", meaning that its value will be encrypted. Before 
entering a "
+                        + "value in a sensitive property, ensure that the ");
+
+                writeSimpleElement(xmlStreamWriter, "strong", 
"nifi.properties");
+                xmlStreamWriter.writeCharacters(" file has " + "an entry for 
the property ");
+                writeSimpleElement(xmlStreamWriter, "strong", 
"nifi.sensitive.props.key");
+            }
+            xmlStreamWriter.writeCharacters(".");
+            xmlStreamWriter.writeEndElement();
+
             xmlStreamWriter.writeStartElement("table");
             xmlStreamWriter.writeAttribute("id", "properties");
 
@@ -345,6 +358,36 @@ public class HtmlDocumentationWriter implements 
DocumentationWriter {
         }
     }
 
+    /**
+     * Indicates whether or not the component contains at least one sensitive 
property.
+     *
+     * @param component the component to interogate
+     * @return whether or not the component contains at least one sensitive 
property.
+     */
+    private boolean containsSensitiveProperties(final ConfigurableComponent 
component) {
+        for (PropertyDescriptor descriptor : 
component.getPropertyDescriptors()) {
+            if (descriptor.isSensitive()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Indicates whether or not the component contains at least one property 
that supports Expression Language.
+     *
+     * @param component the component to interogate
+     * @return whether or not the component contains at least one sensitive 
property.
+     */
+    private boolean containsExpressionLanguage(final ConfigurableComponent 
component) {
+        for (PropertyDescriptor descriptor : 
component.getPropertyDescriptors()) {
+            if (descriptor.isExpressionLanguageSupported()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     private void writeDynamicProperties(final ConfigurableComponent 
configurableComponent,
             final XMLStreamWriter xmlStreamWriter) throws XMLStreamException {
 

Reply via email to