Modified: nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html?rev=1695810&r1=1695809&r2=1695810&view=diff ============================================================================== --- nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html (original) +++ nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html Fri Aug 14 01:50:54 2015 @@ -450,112 +450,113 @@ body.book #toc,body.book #preamble,body. <h1>Apache NiFi Expression Language Guide</h1> <div class="details"> <span id="author" class="author">Apache NiFi Team</span><br> -<span id="email" class="email"><a href="mailto:d...@nifi.incubator.apache.org">d...@nifi.incubator.apache.org</a></span><br> +<span id="email" class="email"><a href="mailto:d...@nifi.apache.org">d...@nifi.apache.org</a></span><br> </div> <div id="toc" class="toc"> <div id="toctitle">Table of Contents</div> <ul class="sectlevel1"> -<li><a href="expression-language-guide.html#overview">Overview</a></li> -<li><a href="expression-language-guide.html#structure">Structure of a NiFi Expression</a></li> -<li><a href="expression-language-guide.html#usage">Expression Language in the Application</a> +<li><a href="#overview">Overview</a></li> +<li><a href="#structure">Structure of a NiFi Expression</a></li> +<li><a href="#usage">Expression Language in the Application</a> <ul class="sectlevel2"> -<li><a href="expression-language-guide.html#editor">Expression Language Editor</a></li> +<li><a href="#editor">Expression Language Editor</a></li> </ul> </li> -<li><a href="expression-language-guide.html#functions">Functions</a> +<li><a href="#functions">Functions</a> <ul class="sectlevel2"> -<li><a href="expression-language-guide.html#types">Data Types</a></li> +<li><a href="#types">Data Types</a></li> </ul> </li> -<li><a href="expression-language-guide.html#boolean">Boolean Logic</a> +<li><a href="#boolean">Boolean Logic</a> <ul class="sectlevel2"> -<li><a href="expression-language-guide.html#isnull">isNull</a></li> -<li><a href="expression-language-guide.html#notnull">notNull</a></li> -<li><a href="expression-language-guide.html#isempty">isEmpty</a></li> -<li><a href="expression-language-guide.html#equals">equals</a></li> -<li><a href="expression-language-guide.html#equalsignorecase">equalsIgnoreCase</a></li> -<li><a href="expression-language-guide.html#gt">gt</a></li> -<li><a href="expression-language-guide.html#ge">ge</a></li> -<li><a href="expression-language-guide.html#lt">lt</a></li> -<li><a href="expression-language-guide.html#le">le</a></li> -<li><a href="expression-language-guide.html#and">and</a></li> -<li><a href="expression-language-guide.html#or">or</a></li> -<li><a href="expression-language-guide.html#not">not</a></li> +<li><a href="#isnull">isNull</a></li> +<li><a href="#notnull">notNull</a></li> +<li><a href="#isempty">isEmpty</a></li> +<li><a href="#equals">equals</a></li> +<li><a href="#equalsignorecase">equalsIgnoreCase</a></li> +<li><a href="#gt">gt</a></li> +<li><a href="#ge">ge</a></li> +<li><a href="#lt">lt</a></li> +<li><a href="#le">le</a></li> +<li><a href="#and">and</a></li> +<li><a href="#or">or</a></li> +<li><a href="#not">not</a></li> </ul> </li> -<li><a href="expression-language-guide.html#strings">String Manipulation</a> +<li><a href="#strings">String Manipulation</a> <ul class="sectlevel2"> -<li><a href="expression-language-guide.html#toupper">toUpper</a></li> -<li><a href="expression-language-guide.html#tolower">toLower</a></li> -<li><a href="expression-language-guide.html#trim">trim</a></li> -<li><a href="expression-language-guide.html#urlencode">urlEncode</a></li> -<li><a href="expression-language-guide.html#urldecode">urlDecode</a></li> -<li><a href="expression-language-guide.html#substring">substring</a></li> -<li><a href="expression-language-guide.html#substringbefore">substringBefore</a></li> -<li><a href="expression-language-guide.html#substringbeforelast">substringBeforeLast</a></li> -<li><a href="expression-language-guide.html#substringafter">substringAfter</a></li> -<li><a href="expression-language-guide.html#substringafterlast">substringAfterLast</a></li> -<li><a href="expression-language-guide.html#append">append</a></li> -<li><a href="expression-language-guide.html#prepend">prepend</a></li> -<li><a href="expression-language-guide.html#replace">replace</a></li> -<li><a href="expression-language-guide.html#replaceall">replaceAll</a></li> -<li><a href="expression-language-guide.html#replacenull">replaceNull</a></li> -<li><a href="expression-language-guide.html#replaceempty">replaceEmpty</a></li> -<li><a href="expression-language-guide.html#length">length</a></li> +<li><a href="#toupper">toUpper</a></li> +<li><a href="#tolower">toLower</a></li> +<li><a href="#trim">trim</a></li> +<li><a href="#urlencode">urlEncode</a></li> +<li><a href="#urldecode">urlDecode</a></li> +<li><a href="#substring">substring</a></li> +<li><a href="#substringbefore">substringBefore</a></li> +<li><a href="#substringbeforelast">substringBeforeLast</a></li> +<li><a href="#substringafter">substringAfter</a></li> +<li><a href="#substringafterlast">substringAfterLast</a></li> +<li><a href="#append">append</a></li> +<li><a href="#prepend">prepend</a></li> +<li><a href="#replace">replace</a></li> +<li><a href="#replaceall">replaceAll</a></li> +<li><a href="#replacenull">replaceNull</a></li> +<li><a href="#replaceempty">replaceEmpty</a></li> +<li><a href="#length">length</a></li> </ul> </li> -<li><a href="expression-language-guide.html#searching">Searching</a> +<li><a href="#searching">Searching</a> <ul class="sectlevel2"> -<li><a href="expression-language-guide.html#startswith">startsWith</a></li> -<li><a href="expression-language-guide.html#endswith">endsWith</a></li> -<li><a href="expression-language-guide.html#contains">contains</a></li> -<li><a href="expression-language-guide.html#find">find</a></li> -<li><a href="expression-language-guide.html#matches">matches</a></li> -<li><a href="expression-language-guide.html#indexof">indexOf</a></li> -<li><a href="expression-language-guide.html#lastindexof">lastIndexOf</a></li> +<li><a href="#startswith">startsWith</a></li> +<li><a href="#endswith">endsWith</a></li> +<li><a href="#contains">contains</a></li> +<li><a href="#find">find</a></li> +<li><a href="#matches">matches</a></li> +<li><a href="#indexof">indexOf</a></li> +<li><a href="#lastindexof">lastIndexOf</a></li> </ul> </li> -<li><a href="expression-language-guide.html#numbers">Mathematical Operations and Numeric Manipulation</a> +<li><a href="#numbers">Mathematical Operations and Numeric Manipulation</a> <ul class="sectlevel2"> -<li><a href="expression-language-guide.html#plus">plus</a></li> -<li><a href="expression-language-guide.html#minus">minus</a></li> -<li><a href="expression-language-guide.html#multiply">multiply</a></li> -<li><a href="expression-language-guide.html#divide">divide</a></li> -<li><a href="expression-language-guide.html#mod">mod</a></li> -<li><a href="expression-language-guide.html#toradix">toRadix</a></li> +<li><a href="#plus">plus</a></li> +<li><a href="#minus">minus</a></li> +<li><a href="#multiply">multiply</a></li> +<li><a href="#divide">divide</a></li> +<li><a href="#mod">mod</a></li> +<li><a href="#toradix">toRadix</a></li> </ul> </li> -<li><a href="expression-language-guide.html#dates">Date Manipulation</a> +<li><a href="#dates">Date Manipulation</a> <ul class="sectlevel2"> -<li><a href="expression-language-guide.html#format">format</a></li> -<li><a href="expression-language-guide.html#todate">toDate</a></li> -<li><a href="expression-language-guide.html#now">now</a></li> +<li><a href="#format">format</a></li> +<li><a href="#todate">toDate</a></li> +<li><a href="#now">now</a></li> </ul> </li> -<li><a href="expression-language-guide.html#type_cast">Type Coercion</a> +<li><a href="#type_cast">Type Coercion</a> <ul class="sectlevel2"> -<li><a href="expression-language-guide.html#tostring">toString</a></li> -<li><a href="expression-language-guide.html#tonumber">toNumber</a></li> +<li><a href="#tostring">toString</a></li> +<li><a href="#tonumber">toNumber</a></li> </ul> </li> -<li><a href="expression-language-guide.html#subjectless">Subjectless Functions</a> +<li><a href="#subjectless">Subjectless Functions</a> <ul class="sectlevel2"> -<li><a href="expression-language-guide.html#ip">ip</a></li> -<li><a href="expression-language-guide.html#hostname">hostname</a></li> -<li><a href="expression-language-guide.html#uuid">UUID</a></li> -<li><a href="expression-language-guide.html#nextint">nextInt</a></li> +<li><a href="#ip">ip</a></li> +<li><a href="#hostname">hostname</a></li> +<li><a href="#uuid">UUID</a></li> +<li><a href="#nextint">nextInt</a></li> +<li><a href="#literal">literal</a></li> </ul> </li> -<li><a href="expression-language-guide.html#multi">Evaluating Multiple Attributes</a> +<li><a href="#multi">Evaluating Multiple Attributes</a> <ul class="sectlevel2"> -<li><a href="expression-language-guide.html#anyattribute">anyAttribute</a></li> -<li><a href="expression-language-guide.html#allattributes">allAttributes</a></li> -<li><a href="expression-language-guide.html#anymatchingattribute">anyMatchingAttribute</a></li> -<li><a href="expression-language-guide.html#allmatchingattributes">allMatchingAttributes</a></li> -<li><a href="expression-language-guide.html#anydelineatedvalue">anyDelineatedValue</a></li> -<li><a href="expression-language-guide.html#alldelineatedvalues">allDelineatedValues</a></li> -<li><a href="expression-language-guide.html#join">join</a></li> -<li><a href="expression-language-guide.html#count">count</a></li> +<li><a href="#anyattribute">anyAttribute</a></li> +<li><a href="#allattributes">allAttributes</a></li> +<li><a href="#anymatchingattribute">anyMatchingAttribute</a></li> +<li><a href="#allmatchingattributes">allMatchingAttributes</a></li> +<li><a href="#anydelineatedvalue">anyDelineatedValue</a></li> +<li><a href="#alldelineatedvalues">allDelineatedValues</a></li> +<li><a href="#join">join</a></li> +<li><a href="#count">count</a></li> </ul> </li> </ul> @@ -563,7 +564,7 @@ body.book #toc,body.book #preamble,body. </div> <div id="content"> <div class="sect1"> -<h2 id="overview"><a class="anchor" href="expression-language-guide.html#overview"></a>Overview</h2> +<h2 id="overview"><a class="anchor" href="#overview"></a>Overview</h2> <div class="sectionbody"> <div class="paragraph"> <p>All data in Apache NiFi is represented by an abstraction called a FlowFile. @@ -594,7 +595,7 @@ and manipulate their values.</p> </div> </div> <div class="sect1"> -<h2 id="structure"><a class="anchor" href="expression-language-guide.html#structure"></a>Structure of a NiFi Expression</h2> +<h2 id="structure"><a class="anchor" href="#structure"></a>Structure of a NiFi Expression</h2> <div class="sectionbody"> <div class="paragraph"> <p>The NiFi Expression Language always begins with the start delimiter <code>${</code> and ends @@ -709,7 +710,7 @@ the Expression Language will return a <c <p>There also exist some functions that expect to have no subject. These functions are invoked simply by calling the function at the beginning of the Expression, such as <code>${hostname()}</code>. These functions can then be changed together, as well. For example, <code>${hostname():toUpper()}</code>. Attempting to -evaluate the function with subject will result in an error. In the <a href="expression-language-guide.html#functions">Functions</a> +evaluate the function with subject will result in an error. In the <a href="#functions">Functions</a> section below, these functions will clearly indicate in their descriptions that they do not require a subject.</p> </div> @@ -728,7 +729,7 @@ in <code>file</code> and <code>name</cod </div> </div> <div class="sect1"> -<h2 id="usage"><a class="anchor" href="expression-language-guide.html#usage"></a>Expression Language in the Application</h2> +<h2 id="usage"><a class="anchor" href="#usage"></a>Expression Language in the Application</h2> <div class="sectionbody"> <div class="paragraph"> <p>The Expression Language is used heavily throughout the NiFi application for configuring Processor @@ -740,14 +741,14 @@ whether or not the Expression Language i <div class="paragraph"> <p>In the application, when configuring a Processor property, the User Interface provides an Information icon ( -<span class="image"><img src="images/iconInfo.png" alt="Info"></span> +<span class="image"><img src="./images/iconInfo.png" alt="Info"></span> ) next to the name of the Property. Hovering over this icon with the mouse will provide a tooltip that provides helpful information about the Property. This information includes a description of the Property, the default value (if any), historically configured values (if any), and whether or not this Property supports the expression language.</p> </div> <div class="sect2"> -<h3 id="editor"><a class="anchor" href="expression-language-guide.html#editor"></a>Expression Language Editor</h3> +<h3 id="editor"><a class="anchor" href="#editor"></a>Expression Language Editor</h3> <div class="paragraph"> <p>When configuring the value of a Processor property, the NiFi User Interface provides help with the Expression Language using the Expression Language editor. Once an Expression is begin by typing <code>${</code>, @@ -768,17 +769,17 @@ it with the mouse or using the arrow key </div> </div> <div class="sect1"> -<h2 id="functions"><a class="anchor" href="expression-language-guide.html#functions"></a>Functions</h2> +<h2 id="functions"><a class="anchor" href="#functions"></a>Functions</h2> <div class="sectionbody"> <div class="paragraph"> <p>Functions provide a convenient way to manipulate and compare values of attributes. The Expression Language provides many different functions to meet the needs of a automated dataflow. Each function takes zero or more arguments and returns a single value. These functions can then be chained together to create -powerful Expressions to evaluate conditions and manipulate values. See <a href="expression-language-guide.html#structure">Structure of a NiFi Expression</a> for more information +powerful Expressions to evaluate conditions and manipulate values. See <a href="#structure">Structure of a NiFi Expression</a> for more information on how to call and chain functions together.</p> </div> <div class="sect2"> -<h3 id="types"><a class="anchor" href="expression-language-guide.html#types"></a>Data Types</h3> +<h3 id="types"><a class="anchor" href="#types"></a>Data Types</h3> <div class="paragraph"> <p>Each argument to a function and each value returned from a function has a specific data type. The Expression Language supports four different data types:</p> @@ -805,13 +806,13 @@ Expression Language as Numbers, represen <div class="paragraph"> <p>The Expression Language is generally able to automatically coerce a value of one data type to the appropriate data type for a function. However, functions do exist to manually coerce a value into a specific data type. -See the <a href="expression-language-guide.html#type_cast">Type Coercion</a> section for more information.</p> +See the <a href="#type_cast">Type Coercion</a> section for more information.</p> </div> </div> </div> </div> <div class="sect1"> -<h2 id="boolean"><a class="anchor" href="expression-language-guide.html#boolean"></a>Boolean Logic</h2> +<h2 id="boolean"><a class="anchor" href="#boolean"></a>Boolean Logic</h2> <div class="sectionbody"> <div class="paragraph"> <p>One of the most powerful features of the Expression Language is the ability to compare an attribute value against @@ -820,7 +821,7 @@ functions are used for performing boolea Each of these functions returns a value of type Boolean.</p> </div> <div class="sect2 function"> -<h3 id="isnull"><a class="anchor" href="expression-language-guide.html#isnull"></a>isNull</h3> +<h3 id="isnull"><a class="anchor" href="#isnull"></a>isNull</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>isNull</code> function returns <code>true</code> if the subject is null, <code>false</code> otherwise. This is typically used to determine if an attribute exists.</span></p> @@ -840,7 +841,7 @@ if an attribute exists.</span></p> </div> </div> <div class="sect2 function"> -<h3 id="notnull"><a class="anchor" href="expression-language-guide.html#notnull"></a>notNull</h3> +<h3 id="notnull"><a class="anchor" href="#notnull"></a>notNull</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>notNull</code> function returns the opposite value of the <code>isNull</code> function. That is, it will return <code>true</code> if the subject exists and <code>false</code> otherwise.</span></p> @@ -860,7 +861,7 @@ subject exists and <code>false</code> ot </div> </div> <div class="sect2 function"> -<h3 id="isempty"><a class="anchor" href="expression-language-guide.html#isempty"></a>isEmpty</h3> +<h3 id="isempty"><a class="anchor" href="#isempty"></a>isEmpty</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>isEmpty</code> function returns <code>true</code> if the Subject is null or contains only white-space (new line, carriage return, space, tab), <code>false</code> otherwise.</span></p> @@ -880,11 +881,11 @@ subject exists and <code>false</code> ot </div> </div> <div class="sect2 function"> -<h3 id="equals"><a class="anchor" href="expression-language-guide.html#equals"></a>equals</h3> +<h3 id="equals"><a class="anchor" href="#equals"></a>equals</h3> <div class="paragraph description"> <p><strong>Description</strong>: <span class="description">The <code>equals</code> function is very widely used and determines if its subject is equal to another String value. Note that the <code>equals</code> function performs a direct comparison of two String values. Take care not to confuse this - function with the <a href="expression-language-guide.html#matches">matches</a> function, which evaluates its subject against a Regular Expression.</span></p> + function with the <a href="#matches">matches</a> function, which evaluates its subject against a Regular Expression.</span></p> </div> <div class="paragraph subject"> <p><strong>Subject Type</strong>: <span class="subject">Any</span></p> @@ -910,7 +911,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="equalsignorecase"><a class="anchor" href="expression-language-guide.html#equalsignorecase"></a>equalsIgnoreCase</h3> +<h3 id="equalsignorecase"><a class="anchor" href="#equalsignorecase"></a>equalsIgnoreCase</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Similar to the <code>equals</code> function, the <code>equalsIgnoreCase</code> function compares its subject against a String value but returns <code>true</code> if the two values differ only by case (upper case vs. lower case).</span></p> @@ -937,7 +938,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="gt"><a class="anchor" href="expression-language-guide.html#gt"></a>gt</h3> +<h3 id="gt"><a class="anchor" href="#gt"></a>gt</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>gt</code> function is used for numeric comparison and returns <code>true</code> if the subject is Greater Than its argument. If either the subject or the argument cannot be coerced into a Number, @@ -965,7 +966,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="ge"><a class="anchor" href="expression-language-guide.html#ge"></a>ge</h3> +<h3 id="ge"><a class="anchor" href="#ge"></a>ge</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>ge</code> function is used for numeric comparison and returns <code>true</code> if the subject is Greater Than Or Equal To its argument. If either the subject or the argument cannot be coerced into a Number, @@ -993,7 +994,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="lt"><a class="anchor" href="expression-language-guide.html#lt"></a>lt</h3> +<h3 id="lt"><a class="anchor" href="#lt"></a>lt</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>lt</code> function is used for numeric comparison and returns <code>true</code> if the subject is Less Than its argument. If either the subject or the argument cannot be coerced into a Number, @@ -1021,7 +1022,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="le"><a class="anchor" href="expression-language-guide.html#le"></a>le</h3> +<h3 id="le"><a class="anchor" href="#le"></a>le</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>le</code> function is used for numeric comparison and returns <code>true</code> if the subject is Less Than Or Equal To its argument. If either the subject or the argument cannot be coerced into a Number, @@ -1049,7 +1050,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="and"><a class="anchor" href="expression-language-guide.html#and"></a>and</h3> +<h3 id="and"><a class="anchor" href="#and"></a>and</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>and</code> function takes as a single argument a Boolean value and returns <code>true</code> if both the Subject and the argument are <code>true</code>. If either the subject or the argument is <code>false</code> or cannot be coerced into a Boolean, @@ -1083,7 +1084,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="or"><a class="anchor" href="expression-language-guide.html#or"></a>or</h3> +<h3 id="or"><a class="anchor" href="#or"></a>or</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>or</code> function takes as a single argument a Boolean value and returns <code>true</code> if either the Subject or the argument is <code>true</code>. If both the subject and the argument are <code>false</code>, the function returns <code>false</code>. If @@ -1118,7 +1119,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="not"><a class="anchor" href="expression-language-guide.html#not"></a>not</h3> +<h3 id="not"><a class="anchor" href="#not"></a>not</h3> <div class="paragraph description"> <p><strong>Description</strong>: <span class="description">The <code>not</code> function returns the negation of the Boolean value of the subject.</span></p> </div> @@ -1140,13 +1141,13 @@ or we could check if the value of the at </div> </div> <div class="sect1"> -<h2 id="strings"><a class="anchor" href="expression-language-guide.html#strings"></a>String Manipulation</h2> +<h2 id="strings"><a class="anchor" href="#strings"></a>String Manipulation</h2> <div class="sectionbody"> <div class="paragraph"> <p>Each of the following functions manipulates a String in some way.</p> </div> <div class="sect2 function"> -<h3 id="toupper"><a class="anchor" href="expression-language-guide.html#toupper"></a>toUpper</h3> +<h3 id="toupper"><a class="anchor" href="#toupper"></a>toUpper</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">This function converts the Subject into an all upper-case String. Said another way, it replaces any lowercase letter with the uppercase equivalent.</span></p> @@ -1166,7 +1167,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="tolower"><a class="anchor" href="expression-language-guide.html#tolower"></a>toLower</h3> +<h3 id="tolower"><a class="anchor" href="#tolower"></a>toLower</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">This function converts the Subject into an all lower-case String. Said another way, it replaces any uppercase letter with the lowercase equivalent.</span></p> @@ -1186,7 +1187,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="trim"><a class="anchor" href="expression-language-guide.html#trim"></a>trim</h3> +<h3 id="trim"><a class="anchor" href="#trim"></a>trim</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>trim</code> function will remove any leading or trailing white space from its subject.</span></p> </div> @@ -1205,7 +1206,7 @@ or we could check if the value of the at </div> </div> <div class="sect2 function"> -<h3 id="urlencode"><a class="anchor" href="expression-language-guide.html#urlencode"></a>urlEncode</h3> +<h3 id="urlencode"><a class="anchor" href="#urlencode"></a>urlEncode</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns a URL-friendly version of the Subject. This is useful, for instance, when using an attribute value to indicate the URL of a website.</span></p> @@ -1221,12 +1222,12 @@ or we could check if the value of the at </div> <div class="paragraph"> <p><strong>Examples</strong>: We can URL-Encode an attribute named "url" by using the Expression <code>${url:urlEncode()}</code>. If - the value of the "url" attribute is "https://nifi.incubator.apache.org/some value with spaces", this - Expression will then return "https://nifi.incubator.apache.org/some%20value%20with%20spaces".</p> + the value of the "url" attribute is "https://nifi.apache.org/some value with spaces", this + Expression will then return "https://nifi.apache.org/some%20value%20with%20spaces".</p> </div> </div> <div class="sect2 function"> -<h3 id="urldecode"><a class="anchor" href="expression-language-guide.html#urldecode"></a>urlDecode</h3> +<h3 id="urldecode"><a class="anchor" href="#urldecode"></a>urlDecode</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Converts a URL-friendly version of the Subject into a human-readable form.</span></p> </div> @@ -1241,12 +1242,12 @@ or we could check if the value of the at </div> <div class="paragraph"> <p><strong>Examples</strong>: If we have a URL-Encoded attribute named "url" with the value - "https://nifi.incubator.apache.org/some%20value%20with%20spaces", then the Expression - <code>${url:urlDecode()}</code> will return "https://nifi.incubator.apache.org/some value with spaces".</p> + "https://nifi.apache.org/some%20value%20with%20spaces", then the Expression + <code>${url:urlDecode()}</code> will return "https://nifi.apache.org/some value with spaces".</p> </div> </div> <div class="sect2 function"> -<h3 id="substring"><a class="anchor" href="expression-language-guide.html#substring"></a>substring</h3> +<h3 id="substring"><a class="anchor" href="#substring"></a>substring</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns a portion of the Subject, given a <em>starting index</em> and an optional <em>ending index</em>. @@ -1325,7 +1326,7 @@ then the following Expressions will resu </table> </div> <div class="sect2 function"> -<h3 id="substringbefore"><a class="anchor" href="expression-language-guide.html#substringbefore"></a>substringBefore</h3> +<h3 id="substringbefore"><a class="anchor" href="#substringbefore"></a>substringBefore</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns a portion of the Subject, starting with the first character of the Subject and ending with the character immediately before the first occurrence of the argument. If @@ -1382,7 +1383,7 @@ then the following Expressions will resu </table> </div> <div class="sect2 function"> -<h3 id="substringbeforelast"><a class="anchor" href="expression-language-guide.html#substringbeforelast"></a>substringBeforeLast</h3> +<h3 id="substringbeforelast"><a class="anchor" href="#substringbeforelast"></a>substringBeforeLast</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns a portion of the Subject, starting with the first character of the Subject and ending with the character immediately before the last occurrence of the argument. If @@ -1439,7 +1440,7 @@ then the following Expressions will resu </table> </div> <div class="sect2 function"> -<h3 id="substringafter"><a class="anchor" href="expression-language-guide.html#substringafter"></a>substringAfter</h3> +<h3 id="substringafter"><a class="anchor" href="#substringafter"></a>substringAfter</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns a portion of the Subject, starting with the character immediately after the first occurrence of the argument and extending to the end of the Subject. If @@ -1496,7 +1497,7 @@ then the following Expressions will resu </table> </div> <div class="sect2 function"> -<h3 id="substringafterlast"><a class="anchor" href="expression-language-guide.html#substringafterlast"></a>substringAfterLast</h3> +<h3 id="substringafterlast"><a class="anchor" href="#substringafterlast"></a>substringAfterLast</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns a portion of the Subject, starting with the character immediately after the last occurrence of the argument and extending to the end of the Subject. If @@ -1553,7 +1554,7 @@ then the following Expressions will resu </table> </div> <div class="sect2 function"> -<h3 id="append"><a class="anchor" href="expression-language-guide.html#append"></a>append</h3> +<h3 id="append"><a class="anchor" href="#append"></a>append</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>append</code> function returns the result of appending the argument to the value of the Subject. If the Subject is null, returns the argument itself.</span></p> @@ -1580,7 +1581,7 @@ then the following Expressions will resu </div> </div> <div class="sect2 function"> -<h3 id="prepend"><a class="anchor" href="expression-language-guide.html#prepend"></a>prepend</h3> +<h3 id="prepend"><a class="anchor" href="#prepend"></a>prepend</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>prepend</code> function returns the result of prepending the argument to the value of the Subject. If the subject is null, returns the argument itself.</span></p> @@ -1607,7 +1608,7 @@ then the following Expressions will resu </div> </div> <div class="sect2 function"> -<h3 id="replace"><a class="anchor" href="expression-language-guide.html#replace"></a>replace</h3> +<h3 id="replace"><a class="anchor" href="#replace"></a>replace</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Replaces occurrences of one String within the Subject with another String.</span></p> </div> @@ -1665,7 +1666,7 @@ Expressions will provide the following r </table> </div> <div class="sect2 function"> -<h3 id="replaceall"><a class="anchor" href="expression-language-guide.html#replaceall"></a>replaceAll</h3> +<h3 id="replaceall"><a class="anchor" href="#replaceall"></a>replaceAll</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>replaceAll</code> function takes two String arguments: a Regular Expression (NiFi uses the Java Pattern syntax), and a replacement string. The return value is the result of substituting the replacement string for @@ -1729,7 +1730,7 @@ Expressions will provide the following r </table> </div> <div class="sect2 function"> -<h3 id="replacenull"><a class="anchor" href="expression-language-guide.html#replacenull"></a>replaceNull</h3> +<h3 id="replacenull"><a class="anchor" href="#replacenull"></a>replaceNull</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>replaceNull</code> function returns the argument if the Subject is null. Otherwise, returns the Subject.</span></p> @@ -1757,7 +1758,7 @@ Expressions will provide the following r </div> </div> <div class="sect2 function"> -<h3 id="replaceempty"><a class="anchor" href="expression-language-guide.html#replaceempty"></a>replaceEmpty</h3> +<h3 id="replaceempty"><a class="anchor" href="#replaceempty"></a>replaceEmpty</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>replaceEmpty</code> function returns the argument if the Subject is null or if the Subject consists only of white space (new line, carriage return, tab, space). Otherwise, @@ -1786,7 +1787,7 @@ Expressions will provide the following r </div> </div> <div class="sect2 function"> -<h3 id="length"><a class="anchor" href="expression-language-guide.html#length"></a>length</h3> +<h3 id="length"><a class="anchor" href="#length"></a>length</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns the length of the Subject</span></p> </div> @@ -1808,13 +1809,13 @@ Expressions will provide the following r </div> </div> <div class="sect1"> -<h2 id="searching"><a class="anchor" href="expression-language-guide.html#searching"></a>Searching</h2> +<h2 id="searching"><a class="anchor" href="#searching"></a>Searching</h2> <div class="sectionbody"> <div class="paragraph"> <p>Each of the following functions is used to search its subject for some value.</p> </div> <div class="sect2 function"> -<h3 id="startswith"><a class="anchor" href="expression-language-guide.html#startswith"></a>startsWith</h3> +<h3 id="startswith"><a class="anchor" href="#startswith"></a>startsWith</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject starts with the String provided as the argument, <code>false</code> otherwise.</span></p> @@ -1842,7 +1843,7 @@ Expressions will provide the following r </div> </div> <div class="sect2 function"> -<h3 id="endswith"><a class="anchor" href="expression-language-guide.html#endswith"></a>endsWith</h3> +<h3 id="endswith"><a class="anchor" href="#endswith"></a>endsWith</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject ends with the String provided as the argument, <code>false</code> otherwise.</span></p> @@ -1870,7 +1871,7 @@ Expressions will provide the following r </div> </div> <div class="sect2 function"> -<h3 id="contains"><a class="anchor" href="expression-language-guide.html#contains"></a>contains</h3> +<h3 id="contains"><a class="anchor" href="#contains"></a>contains</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject contains the value of the argument anywhere in the value.</span></p> </div> @@ -1897,7 +1898,7 @@ Expressions will provide the following r </div> </div> <div class="sect2 function"> -<h3 id="find"><a class="anchor" href="expression-language-guide.html#find"></a>find</h3> +<h3 id="find"><a class="anchor" href="#find"></a>find</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject contains any sequence of characters that matches the Regular Expression provided by the argument.</span></p> @@ -1952,7 +1953,7 @@ Expressions will provide the following r </table> </div> <div class="sect2 function"> -<h3 id="matches"><a class="anchor" href="expression-language-guide.html#matches"></a>matches</h3> +<h3 id="matches"><a class="anchor" href="#matches"></a>matches</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns <code>true</code> if the Subject exactly matches the Regular Expression provided by the argument.</span></p> </div> @@ -2006,7 +2007,7 @@ Expressions will provide the following r </table> </div> <div class="sect2 function"> -<h3 id="indexof"><a class="anchor" href="expression-language-guide.html#indexof"></a>indexOf</h3> +<h3 id="indexof"><a class="anchor" href="#indexof"></a>indexOf</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns the index of the first character in the Subject that matches the String value provided as an argument. If the argument is found multiple times within the Subject, the value returned is the @@ -2065,7 +2066,7 @@ Expressions will provide the following r </table> </div> <div class="sect2 function"> -<h3 id="lastindexof"><a class="anchor" href="expression-language-guide.html#lastindexof"></a>lastIndexOf</h3> +<h3 id="lastindexof"><a class="anchor" href="#lastindexof"></a>lastIndexOf</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns the index of the first character in the Subject that matches the String value provided as an argument. If the argument is found multiple times within the Subject, the value returned is the @@ -2126,10 +2127,10 @@ Expressions will provide the following r </div> </div> <div class="sect1"> -<h2 id="numbers"><a class="anchor" href="expression-language-guide.html#numbers"></a>Mathematical Operations and Numeric Manipulation</h2> +<h2 id="numbers"><a class="anchor" href="#numbers"></a>Mathematical Operations and Numeric Manipulation</h2> <div class="sectionbody"> <div class="sect2 function"> -<h3 id="plus"><a class="anchor" href="expression-language-guide.html#plus"></a>plus</h3> +<h3 id="plus"><a class="anchor" href="#plus"></a>plus</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Adds a numeric value to the Subject. If either the argument or the Subject cannot be coerced into a Number, returns <code>null</code>.</span></p> @@ -2156,7 +2157,7 @@ Expressions will provide the following r </div> </div> <div class="sect2 function"> -<h3 id="minus"><a class="anchor" href="expression-language-guide.html#minus"></a>minus</h3> +<h3 id="minus"><a class="anchor" href="#minus"></a>minus</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Subtracts a numeric value from the Subject.</span></p> </div> @@ -2182,7 +2183,7 @@ Expressions will provide the following r </div> </div> <div class="sect2 function"> -<h3 id="multiply"><a class="anchor" href="expression-language-guide.html#multiply"></a>multiply</h3> +<h3 id="multiply"><a class="anchor" href="#multiply"></a>multiply</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Multiplies a numeric value by the Subject and returns the product.</span></p> </div> @@ -2208,7 +2209,7 @@ Expressions will provide the following r </div> </div> <div class="sect2 function"> -<h3 id="divide"><a class="anchor" href="expression-language-guide.html#divide"></a>divide</h3> +<h3 id="divide"><a class="anchor" href="#divide"></a>divide</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Divides a numeric value by the Subject and returns the result, rounded down to the nearest integer.</span></p> </div> @@ -2234,7 +2235,7 @@ Expressions will provide the following r </div> </div> <div class="sect2 function"> -<h3 id="mod"><a class="anchor" href="expression-language-guide.html#mod"></a>mod</h3> +<h3 id="mod"><a class="anchor" href="#mod"></a>mod</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Performs a modular division of the Subject by the argument. That is, this function will divide the Subject by the value of the argument and return not the quotient but rather the remainder.</span></p> @@ -2261,7 +2262,7 @@ Expressions will provide the following r </div> </div> <div class="sect2 function"> -<h3 id="toradix"><a class="anchor" href="expression-language-guide.html#toradix"></a>toRadix</h3> +<h3 id="toradix"><a class="anchor" href="#toradix"></a>toRadix</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Converts the Subject from a Base 10 number to a different Radix (or number base). An optional second argument can be used to indicate the minimum number of characters to be used. If the converted value @@ -2335,10 +2336,10 @@ Expressions will provide the following r </div> </div> <div class="sect1"> -<h2 id="dates"><a class="anchor" href="expression-language-guide.html#dates"></a>Date Manipulation</h2> +<h2 id="dates"><a class="anchor" href="#dates"></a>Date Manipulation</h2> <div class="sectionbody"> <div class="sect2 function"> -<h3 id="format"><a class="anchor" href="expression-language-guide.html#format"></a>format</h3> +<h3 id="format"><a class="anchor" href="#format"></a>format</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Formats a number as a date/time according to the format specified by the argument. The argument must be a String that is a valid Java SimpleDateFormat format. The Subject is expected to be a Number that @@ -2395,7 +2396,7 @@ Expressions will provide the following r </table> </div> <div class="sect2 function"> -<h3 id="todate"><a class="anchor" href="expression-language-guide.html#todate"></a>toDate</h3> +<h3 id="todate"><a class="anchor" href="#todate"></a>toDate</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Converts a String into a Number, based on the format specified by the argument. The argument must be a String that is a valid Java SimpleDateFormat syntax. The Subject is expected to be a String @@ -2424,16 +2425,14 @@ Expressions will provide the following r and Midnight GMT on January 1, 2014. The Expression <code>${time:toDate("yyyy/MM/dd HH:mm:ss.SSS'Z'")}</code> will result in the number of milliseconds between Midnight GMT on January 1, 1970 and 15:36:03.264 GMT on December 31, 2014.</p> </div> -<div class="literalblock"> -<div class="content"> -<pre>Often, this function is used in conjunction with the <<format>> function to change the format of a date/time. For example, +<div class="paragraph"> +<p>Often, this function is used in conjunction with the <a href="#format">format</a> function to change the format of a date/time. For example, if the attribute "date" has the value "12-24-2014" and we want to change the format to "2014/12/24", we can do so by -chaining together the two functions: `${date:toDate('MM-dd-yyyy'):format('yyyy/MM/dd')}`.</pre> -</div> +chaining together the two functions: <code>${date:toDate('MM-dd-yyyy'):format('yyyy/MM/dd')}</code>.</p> </div> </div> <div class="sect2 function"> -<h3 id="now"><a class="anchor" href="expression-language-guide.html#now"></a>now</h3> +<h3 id="now"><a class="anchor" href="#now"></a>now</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">The <code>now</code> function returns the current date and time as the number of milliseconds since Midnight GMT on January 1, 1970.</span></p> @@ -2448,17 +2447,17 @@ chaining together the two functions: `${ <p><strong>Return Type</strong>: <span class="returnType">Number</span></p> </div> <div class="paragraph"> -<p><strong>Examples</strong>: We can format the current date and time by using the <code>now</code> function in conjunction with the <a href="expression-language-guide.html#format">format</a> function: +<p><strong>Examples</strong>: We can format the current date and time by using the <code>now</code> function in conjunction with the <a href="#format">format</a> function: <code>${now():format('yyyy/MM/dd HH:mm:ss')}</code>.</p> </div> </div> </div> </div> <div class="sect1"> -<h2 id="type_cast"><a class="anchor" href="expression-language-guide.html#type_cast"></a>Type Coercion</h2> +<h2 id="type_cast"><a class="anchor" href="#type_cast"></a>Type Coercion</h2> <div class="sectionbody"> <div class="sect2 function"> -<h3 id="tostring"><a class="anchor" href="expression-language-guide.html#tostring"></a>toString</h3> +<h3 id="tostring"><a class="anchor" href="#tostring"></a>toString</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Coerces the Subject into a String</span></p> </div> @@ -2477,7 +2476,7 @@ chaining together the two functions: `${ </div> </div> <div class="sect2 function"> -<h3 id="tonumber"><a class="anchor" href="expression-language-guide.html#tonumber"></a>toNumber</h3> +<h3 id="tonumber"><a class="anchor" href="#tonumber"></a>toNumber</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Coerces the Subject into a Number</span></p> </div> @@ -2497,7 +2496,7 @@ chaining together the two functions: `${ </div> </div> <div class="sect1"> -<h2 id="subjectless"><a class="anchor" href="expression-language-guide.html#subjectless"></a>Subjectless Functions</h2> +<h2 id="subjectless"><a class="anchor" href="#subjectless"></a>Subjectless Functions</h2> <div class="sectionbody"> <div class="paragraph"> <p>While the majority of functions in the Expression Language are called by using the syntax @@ -2508,7 +2507,7 @@ without a subject. Attempting to call a an error when validating the function.</p> </div> <div class="sect2 function"> -<h3 id="ip"><a class="anchor" href="expression-language-guide.html#ip"></a>ip</h3> +<h3 id="ip"><a class="anchor" href="#ip"></a>ip</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns the IP address of the machine.</span></p> </div> @@ -2522,11 +2521,11 @@ an error when validating the function.</ <p><strong>Return Type</strong>: <span class="returnType">String</span></p> </div> <div class="paragraph"> -<p><strong>Examples</strong>: The IP address of the machine can be obtained by using the Expresison <code>${ip()}</code>.</p> +<p><strong>Examples</strong>: The IP address of the machine can be obtained by using the Expression <code>${ip()}</code>.</p> </div> </div> <div class="sect2 function"> -<h3 id="hostname"><a class="anchor" href="expression-language-guide.html#hostname"></a>hostname</h3> +<h3 id="hostname"><a class="anchor" href="#hostname"></a>hostname</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns the Hostname of the machine. An optional argument of type Boolean can be provided to specify whether or not the Fully Qualified Domain Name should be used. If <code>false</code>, or not specified, @@ -2556,7 +2555,7 @@ fully qualified. If not specified, defau </div> </div> <div class="sect2 function"> -<h3 id="uuid"><a class="anchor" href="expression-language-guide.html#uuid"></a>UUID</h3> +<h3 id="uuid"><a class="anchor" href="#uuid"></a>UUID</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns a randomly generated UUID.</span></p> </div> @@ -2574,7 +2573,7 @@ fully qualified. If not specified, defau </div> </div> <div class="sect2 function"> -<h3 id="nextint"><a class="anchor" href="expression-language-guide.html#nextint"></a>nextInt</h3> +<h3 id="nextint"><a class="anchor" href="#nextint"></a>nextInt</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Returns a one-up value (starting at 0) and increasing over the lifetime of the running instance of NiFi. This value is not persisted across restarts and is not guaranteed to be unique across a cluster. @@ -2596,10 +2595,41 @@ fully qualified. If not specified, defau integer (6) and divides the result by 2, returning a value of <code>3</code>.</p> </div> </div> +<div class="sect2 function"> +<h3 id="literal"><a class="anchor" href="#literal"></a>literal</h3> +<div class="paragraph"> +<p><strong>Description</strong>: <span class="description">Returns its argument as a literal String value. This is useful in order to treat a string or a number + at the beginning of an Expression as an actual value, rather than treating it as an attribute name. Additionally, it + can be used when the argument is an embedded Expression that we would then like to evaluate additional functions against.</span></p> +</div> +<div class="paragraph"> +<p><strong>Subject Type</strong>: <span class="subjectless">No Subject</span></p> +</div> +<div class="paragraph"> +<p><strong>Arguments</strong>:</p> +</div> +<div class="ulist"> +<ul> +<li> +<p><span class="argName"><em>value</em></span> : <span class="argDesc">The value to be treated as a literal string, number, or boolean value.</span></p> +</li> +</ul> +</div> +<div class="paragraph"> +<p><strong>Return Type</strong>: <span class="returnType">String</span></p> +</div> +<div class="paragraph"> +<p><strong>Examples</strong>: <code>${literal(2):gt(1)}</code> returns <code>true</code></p> +</div> +<div class="paragraph"> +<p><code>${literal( ${allMatchingAttributes('a.*'):count()} ):gt(3)}</code> returns true if there are more than 3 attributes whose +names begin with the letter <code>a</code>.</p> +</div> +</div> </div> </div> <div class="sect1"> -<h2 id="multi"><a class="anchor" href="expression-language-guide.html#multi"></a>Evaluating Multiple Attributes</h2> +<h2 id="multi"><a class="anchor" href="#multi"></a>Evaluating Multiple Attributes</h2> <div class="sectionbody"> <div class="paragraph"> <p>When it becomes necessary to evaluate the same conditions against multiple attributes, this can be accomplished by means of the @@ -2607,7 +2637,7 @@ fully qualified. If not specified, defau provides several functions for evaluating the same conditions against groups of attributes at the same time.</p> </div> <div class="sect2 function"> -<h3 id="anyattribute"><a class="anchor" href="expression-language-guide.html#anyattribute"></a>anyAttribute</h3> +<h3 id="anyattribute"><a class="anchor" href="#anyattribute"></a>anyAttribute</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Checks to see if any of the given attributes, match the given condition. This function has no subject and takes one or more arguments that are the names of attributes to which the remainder of the Expression is to be applied. If any of the attributes specified, @@ -2657,7 +2687,7 @@ provides several functions for evaluatin </table> </div> <div class="sect2 function"> -<h3 id="allattributes"><a class="anchor" href="expression-language-guide.html#allattributes"></a>allAttributes</h3> +<h3 id="allattributes"><a class="anchor" href="#allattributes"></a>allAttributes</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Checks to see if any of the given attributes, match the given condition. This function has no subject and takes one or more arguments that are the names of attributes to which the remainder of the Expression is to be applied. If all of the attributes specified, @@ -2707,7 +2737,7 @@ provides several functions for evaluatin </table> </div> <div class="sect2 function"> -<h3 id="anymatchingattribute"><a class="anchor" href="expression-language-guide.html#anymatchingattribute"></a>anyMatchingAttribute</h3> +<h3 id="anymatchingattribute"><a class="anchor" href="#anymatchingattribute"></a>anyMatchingAttribute</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Checks to see if any of the given attributes, match the given condition. This function has no subject and takes one or more arguments that are Regular Expressions to match against attribute names. Any attribute whose name matches one of the supplied @@ -2758,7 +2788,7 @@ provides several functions for evaluatin </table> </div> <div class="sect2 function"> -<h3 id="allmatchingattributes"><a class="anchor" href="expression-language-guide.html#allmatchingattributes"></a>allMatchingAttributes</h3> +<h3 id="allmatchingattributes"><a class="anchor" href="#allmatchingattributes"></a>allMatchingAttributes</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Checks to see if any of the given attributes, match the given condition. This function has no subject and takes one or more arguments that are Regular Expressions to match against attribute names. Any attribute whose name matches one of the supplied @@ -2810,7 +2840,7 @@ provides several functions for evaluatin </table> </div> <div class="sect2 function"> -<h3 id="anydelineatedvalue"><a class="anchor" href="expression-language-guide.html#anydelineatedvalue"></a>anyDelineatedValue</h3> +<h3 id="anydelineatedvalue"><a class="anchor" href="#anydelineatedvalue"></a>anyDelineatedValue</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Splits a String apart according to a delimiter that is provided, and then evaluates each of the values against the rest of the Expression. If the Expression, when evaluated against any of the individual values, returns <code>true</code>, this @@ -2863,7 +2893,7 @@ though it does not have to be.</span></p </table> </div> <div class="sect2 function"> -<h3 id="alldelineatedvalues"><a class="anchor" href="expression-language-guide.html#alldelineatedvalues"></a>allDelineatedValues</h3> +<h3 id="alldelineatedvalues"><a class="anchor" href="#alldelineatedvalues"></a>allDelineatedValues</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Splits a String apart according to a delimiter that is provided, and then evaluates each of the values against the rest of the Expression. If the Expression, when evaluated against all of the individual values, returns <code>true</code> in each @@ -2924,7 +2954,7 @@ an embedded Expression, though it does n </table> </div> <div class="sect2 function"> -<h3 id="join"><a class="anchor" href="expression-language-guide.html#join"></a>join</h3> +<h3 id="join"><a class="anchor" href="#join"></a>join</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Aggregate function that concatenates multiple values with the specified delimiter. This function may be used only in conjunction with the <code>allAttributes</code>, <code>allMatchingAttributes</code>, and <code>allDelineatedValues</code> @@ -2973,7 +3003,7 @@ an embedded Expression, though it does n </table> </div> <div class="sect2 function"> -<h3 id="count"><a class="anchor" href="expression-language-guide.html#count"></a>count</h3> +<h3 id="count"><a class="anchor" href="#count"></a>count</h3> <div class="paragraph"> <p><strong>Description</strong>: <span class="description">Aggregate function that counts the number of non-null, non-false values returned by the <code>allAttributes</code>, <code>allMatchingAttributes</code>, and <code>allDelineatedValues</code>. This function @@ -3032,7 +3062,7 @@ an embedded Expression, though it does n </div> <div id="footer"> <div id="footer-text"> -Last updated 2015-05-11 15:23:17 EDT +Last updated 2015-07-23 13:20:05 PDT </div> </div> </body>
Added: nifi/site/trunk/docs/nifi-docs/html/images/controller-services-edit-buttons2.png URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/images/controller-services-edit-buttons2.png?rev=1695810&view=auto ============================================================================== Binary file - no diff available. Propchange: nifi/site/trunk/docs/nifi-docs/html/images/controller-services-edit-buttons2.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: nifi/site/trunk/docs/nifi-docs/html/images/iconConnection.png URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/images/iconConnection.png?rev=1695810&view=auto ============================================================================== Binary file - no diff available. Propchange: nifi/site/trunk/docs/nifi-docs/html/images/iconConnection.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: nifi/site/trunk/docs/nifi-docs/html/images/nifi_first_launch_screenshot.png URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/images/nifi_first_launch_screenshot.png?rev=1695810&view=auto ============================================================================== Binary file - no diff available. Propchange: nifi/site/trunk/docs/nifi-docs/html/images/nifi_first_launch_screenshot.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: nifi/site/trunk/docs/nifi-docs/html/images/provenance-table.png URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/images/provenance-table.png?rev=1695810&view=auto ============================================================================== Binary file - no diff available. Propchange: nifi/site/trunk/docs/nifi-docs/html/images/provenance-table.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: nifi/site/trunk/docs/nifi-docs/html/images/reporting-tasks-edit-buttons.png URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/images/reporting-tasks-edit-buttons.png?rev=1695810&view=auto ============================================================================== Binary file - no diff available. Propchange: nifi/site/trunk/docs/nifi-docs/html/images/reporting-tasks-edit-buttons.png ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Modified: nifi/site/trunk/docs/nifi-docs/html/overview.html URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/overview.html?rev=1695810&r1=1695809&r2=1695810&view=diff ============================================================================== --- nifi/site/trunk/docs/nifi-docs/html/overview.html (original) +++ nifi/site/trunk/docs/nifi-docs/html/overview.html Fri Aug 14 01:50:54 2015 @@ -450,23 +450,23 @@ body.book #toc,body.book #preamble,body. <h1>Apache NiFi Overview</h1> <div class="details"> <span id="author" class="author">Apache NiFi Team</span><br> -<span id="email" class="email"><a href="mailto:d...@nifi.incubator.apache.org">d...@nifi.incubator.apache.org</a></span><br> +<span id="email" class="email"><a href="mailto:d...@nifi.apache.org">d...@nifi.apache.org</a></span><br> </div> <div id="toc" class="toc"> <div id="toctitle">Table of Contents</div> <ul class="sectlevel1"> -<li><a href="overview.html#what-is-apache-nifi">What is Apache NiFi?</a></li> -<li><a href="overview.html#the-core-concepts-of-nifi">The core concepts of NiFi</a></li> -<li><a href="overview.html#nifi-architecture">NiFi Architecture</a></li> -<li><a href="overview.html#performance-expectations-and-characteristics-of-nifi">Performance Expectations and Characteristics of NiFi</a></li> -<li><a href="overview.html#high-level-overview-of-key-nifi-features">High Level Overview of Key NiFi Features</a></li> -<li><a href="overview.html#references">References</a></li> +<li><a href="#what-is-apache-nifi">What is Apache NiFi?</a></li> +<li><a href="#the-core-concepts-of-nifi">The core concepts of NiFi</a></li> +<li><a href="#nifi-architecture">NiFi Architecture</a></li> +<li><a href="#performance-expectations-and-characteristics-of-nifi">Performance Expectations and Characteristics of NiFi</a></li> +<li><a href="#high-level-overview-of-key-nifi-features">High Level Overview of Key NiFi Features</a></li> +<li><a href="#references">References</a></li> </ul> </div> </div> <div id="content"> <div class="sect1"> -<h2 id="what-is-apache-nifi"><a class="anchor" href="overview.html#what-is-apache-nifi"></a>What is Apache NiFi?</h2> +<h2 id="what-is-apache-nifi"><a class="anchor" href="#what-is-apache-nifi"></a>What is Apache NiFi?</h2> <div class="sectionbody"> <div class="paragraph"> <p>Put simply NiFi was built to automate the flow of data between systems. While @@ -476,7 +476,7 @@ problem space has been around ever since where some of the systems created data and some of the systems consumed data. The problems and solution patterns that emerged have been discussed and articulated extensively. A comprehensive and readily consumed form is found in -the <em>Enterprise Integration Patterns</em> <a href="overview.html#eip">[eip]</a>.</p> +the <em>Enterprise Integration Patterns</em> <a href="#eip">[eip]</a>.</p> </div> <div class="paragraph"> <p>Some of the high-level challenges of dataflow include:</p> @@ -518,8 +518,8 @@ the <em>Enterprise Integration Patterns< architecture. Now though there are a number of active and rapidly evolving movements making dataflow a lot more interesting and a lot more vital to the success of a given enterprise. These include things like; Service Oriented -Architecture <a href="overview.html#soa">[soa]</a>, the rise of the API <a href="overview.html#api">[api]</a><a href="overview.html#api2">[api2]</a>, Internet of Things <a href="overview.html#iot">[iot]</a>, -and Big Data <a href="overview.html#bigdata">[bigdata]</a>. In addition, the level of rigor necessary for +Architecture <a href="#soa">[soa]</a>, the rise of the API <a href="#api">[api]</a><a href="#api2">[api2]</a>, Internet of Things <a href="#iot">[iot]</a>, +and Big Data <a href="#bigdata">[bigdata]</a>. In addition, the level of rigor necessary for compliance, privacy, and security is constantly on the rise. Even still with all of these new concepts coming about, the patterns and needs of dataflow are still largely the same. The primary differences then are the scope of @@ -530,11 +530,11 @@ modern dataflow challenges.</p> </div> </div> <div class="sect1"> -<h2 id="the-core-concepts-of-nifi"><a class="anchor" href="overview.html#the-core-concepts-of-nifi"></a>The core concepts of NiFi</h2> +<h2 id="the-core-concepts-of-nifi"><a class="anchor" href="#the-core-concepts-of-nifi"></a>The core concepts of NiFi</h2> <div class="sectionbody"> <div class="paragraph"> <p>NiFi’s fundamental design concepts closely relate to the main ideas of Flow Based -Programming <a href="overview.html#fbp">[fbp]</a>. Here are some of +Programming <a href="#fbp">[fbp]</a>. Here are some of the main NiFi concepts and how they map to FBP:</p> </div> <table class="tableblock frame-all grid-rows spread"> @@ -561,7 +561,7 @@ content of zero or more bytes.</p></td> <tr> <td class="tableblock halign-left valign-top"><p class="tableblock">FlowFile Processor</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Black Box</p></td> -<td class="tableblock halign-left valign-top"><p class="tableblock">Processors actually perform the work. In <a href="overview.html#eip">[eip]</a> terms a processor is +<td class="tableblock halign-left valign-top"><p class="tableblock">Processors actually perform the work. In <a href="#eip">[eip]</a> terms a processor is doing some combination of data Routing, Transformation, or Mediation between systems. Processors have access to attributes of a given FlowFile and its content stream. Processors can operate on zero or more FlowFiles in a given unit of work @@ -594,7 +594,7 @@ composition of other components.</p></td </tbody> </table> <div class="paragraph"> -<p>This design model, also similar to <a href="overview.html#seda">[seda]</a>, provides many beneficial consequences that help NiFi +<p>This design model, also similar to <a href="#seda">[seda]</a>, provides many beneficial consequences that help NiFi to be a very effective platform for building powerful and scalable dataflows. A few of these benefits include:</p> </div> @@ -626,11 +626,11 @@ A few of these benefits include:</p> </div> </div> <div class="sect1"> -<h2 id="nifi-architecture"><a class="anchor" href="overview.html#nifi-architecture"></a>NiFi Architecture</h2> +<h2 id="nifi-architecture"><a class="anchor" href="#nifi-architecture"></a>NiFi Architecture</h2> <div class="sectionbody"> <div class="imageblock"> <div class="content"> -<img src="images/nifi-arch.png" alt="NiFi Architecture Diagram"> +<img src="./images/nifi-arch.png" alt="NiFi Architecture Diagram"> </div> </div> <div class="paragraph"> @@ -670,7 +670,7 @@ components of NiFi then living within th </div> <div class="imageblock"> <div class="content"> -<img src="images/nifi-arch-cluster.png" alt="NiFi Cluster Architecture Diagram"> +<img src="./images/nifi-arch-cluster.png" alt="NiFi Cluster Architecture Diagram"> </div> </div> <div class="paragraph"> @@ -688,7 +688,7 @@ cannot occur until the NCM is restored.< </div> </div> <div class="sect1"> -<h2 id="performance-expectations-and-characteristics-of-nifi"><a class="anchor" href="overview.html#performance-expectations-and-characteristics-of-nifi"></a>Performance Expectations and Characteristics of NiFi</h2> +<h2 id="performance-expectations-and-characteristics-of-nifi"><a class="anchor" href="#performance-expectations-and-characteristics-of-nifi"></a>Performance Expectations and Characteristics of NiFi</h2> <div class="sectionbody"> <div class="paragraph"> <p>NiFi is designed to fully leverage the capabilities of the underlying host system @@ -740,7 +740,7 @@ how well the application will run over t </div> </div> <div class="sect1"> -<h2 id="high-level-overview-of-key-nifi-features"><a class="anchor" href="overview.html#high-level-overview-of-key-nifi-features"></a>High Level Overview of Key NiFi Features</h2> +<h2 id="high-level-overview-of-key-nifi-features"><a class="anchor" href="#high-level-overview-of-key-nifi-features"></a>High Level Overview of Key NiFi Features</h2> <div class="sectionbody"> <div class="dlist"> <dl> @@ -856,7 +856,7 @@ about loading, and to exchange data on s </div> </div> <div class="sect1"> -<h2 id="references"><a class="anchor" href="overview.html#references"></a>References</h2> +<h2 id="references"><a class="anchor" href="#references"></a>References</h2> <div class="sectionbody"> <div class="ulist bibliography"> <ul class="bibliography"> @@ -891,7 +891,7 @@ about loading, and to exchange data on s </div> <div id="footer"> <div id="footer-text"> -Last updated 2015-05-11 15:23:17 EDT +Last updated 2015-07-23 13:20:05 PDT </div> </div> </body>