You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by jo...@apache.org on 2015/04/27 13:45:12 UTC

[01/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Repository: incubator-nifi
Updated Branches:
  refs/heads/develop 87e829682 -> 548188939


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitText.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitText.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitText.java
index 893ed29..aeb887a 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitText.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitText.java
@@ -81,17 +81,22 @@ public class TestSplitText {
         runner.assertTransferCount(SplitText.REL_ORIGINAL, 1);
         runner.assertTransferCount(SplitText.REL_SPLITS, 4);
 
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitText.REL_SPLITS);
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitText.REL_SPLITS);
 
         final String expected0 = "Header Line #1\nHeader Line #2\nLine #1";
         final String expected1 = "Line #2\nLine #3\nLine #4";
         final String expected2 = "Line #5\nLine #6\nLine #7";
         final String expected3 = "Line #8\nLine #9\nLine #10";
 
-        splits.get(0).assertContentEquals(expected0);
-        splits.get(1).assertContentEquals(expected1);
-        splits.get(2).assertContentEquals(expected2);
-        splits.get(3).assertContentEquals(expected3);
+        splits.get(0).
+                assertContentEquals(expected0);
+        splits.get(1).
+                assertContentEquals(expected1);
+        splits.get(2).
+                assertContentEquals(expected2);
+        splits.get(3).
+                assertContentEquals(expected3);
     }
 
     @Test
@@ -107,11 +112,14 @@ public class TestSplitText {
         runner.assertTransferCount(SplitText.REL_ORIGINAL, 1);
         runner.assertTransferCount(SplitText.REL_SPLITS, 4);
 
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitText.REL_SPLITS);
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitText.REL_SPLITS);
         for (int i = 0; i < splits.size(); i++) {
             final MockFlowFile split = splits.get(i);
-            split.assertContentEquals(file.getParent().resolve((i + 1) + ".txt"));
-            split.assertAttributeEquals(SplitText.FRAGMENT_INDEX, String.valueOf(i + 1));
+            split.assertContentEquals(file.getParent().
+                    resolve((i + 1) + ".txt"));
+            split.assertAttributeEquals(SplitText.FRAGMENT_INDEX, String.
+                    valueOf(i + 1));
         }
     }
 
@@ -128,16 +136,26 @@ public class TestSplitText {
         runner.assertTransferCount(SplitText.REL_ORIGINAL, 1);
         runner.assertTransferCount(SplitText.REL_SPLITS, 2);
 
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitText.REL_SPLITS);
-        splits.get(0).assertContentEquals(file.getParent().resolve("5.txt"));
-        splits.get(0).assertAttributeEquals(SplitText.FRAGMENT_INDEX, String.valueOf(1));
-        splits.get(1).assertContentEquals(file.getParent().resolve("6.txt"));
-        splits.get(1).assertAttributeEquals(SplitText.FRAGMENT_INDEX, String.valueOf(2));
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitText.REL_SPLITS);
+        splits.get(0).
+                assertContentEquals(file.getParent().
+                        resolve("5.txt"));
+        splits.get(0).
+                assertAttributeEquals(SplitText.FRAGMENT_INDEX, String.
+                        valueOf(1));
+        splits.get(1).
+                assertContentEquals(file.getParent().
+                        resolve("6.txt"));
+        splits.get(1).
+                assertAttributeEquals(SplitText.FRAGMENT_INDEX, String.
+                        valueOf(2));
     }
 
     @Test
     public void testSplitThenMerge() throws IOException {
-        final TestRunner splitRunner = TestRunners.newTestRunner(new SplitText());
+        final TestRunner splitRunner = TestRunners.
+                newTestRunner(new SplitText());
         splitRunner.setProperty(SplitText.LINE_SPLIT_COUNT, "3");
         splitRunner.setProperty(SplitText.REMOVE_TRAILING_NEWLINES, "false");
 
@@ -148,15 +166,20 @@ public class TestSplitText {
         splitRunner.assertTransferCount(SplitText.REL_ORIGINAL, 1);
         splitRunner.assertTransferCount(SplitText.REL_FAILURE, 0);
 
-        final List<MockFlowFile> splits = splitRunner.getFlowFilesForRelationship(SplitText.REL_SPLITS);
+        final List<MockFlowFile> splits = splitRunner.
+                getFlowFilesForRelationship(SplitText.REL_SPLITS);
         for (final MockFlowFile flowFile : splits) {
-            flowFile.assertAttributeEquals(SplitText.SEGMENT_ORIGINAL_FILENAME, originalFilename);
+            flowFile.
+                    assertAttributeEquals(SplitText.SEGMENT_ORIGINAL_FILENAME, originalFilename);
             flowFile.assertAttributeEquals(SplitText.FRAGMENT_COUNT, "4");
         }
 
-        final TestRunner mergeRunner = TestRunners.newTestRunner(new MergeContent());
-        mergeRunner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
-        mergeRunner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
+        final TestRunner mergeRunner = TestRunners.
+                newTestRunner(new MergeContent());
+        mergeRunner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
+        mergeRunner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
         mergeRunner.enqueue(splits.toArray(new MockFlowFile[0]));
         mergeRunner.run();
 
@@ -164,10 +187,13 @@ public class TestSplitText {
         mergeRunner.assertTransferCount(MergeContent.REL_ORIGINAL, 4);
         mergeRunner.assertTransferCount(MergeContent.REL_FAILURE, 0);
 
-        final List<MockFlowFile> packed = mergeRunner.getFlowFilesForRelationship(MergeContent.REL_MERGED);
+        final List<MockFlowFile> packed = mergeRunner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED);
         MockFlowFile flowFile = packed.get(0);
-        flowFile.assertAttributeEquals(CoreAttributes.FILENAME.key(), originalFilename);
-        assertEquals(Files.size(dataPath.resolve(originalFilename)), flowFile.getSize());
+        flowFile.
+                assertAttributeEquals(CoreAttributes.FILENAME.key(), originalFilename);
+        assertEquals(Files.size(dataPath.resolve(originalFilename)), flowFile.
+                getSize());
         flowFile.assertContentEquals(file);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitXml.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitXml.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitXml.java
index 8078f26..3f9e426 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitXml.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitXml.java
@@ -97,7 +97,8 @@ public class TestSplitXml {
         for (MockFlowFile out : flowfiles) {
             final byte[] outData = out.toByteArray();
             final String outXml = new String(outData, "UTF-8");
-            saxParser.parse(new InputSource(new StringReader(outXml)), new DefaultHandler());
+            saxParser.
+                    parse(new InputSource(new StringReader(outXml)), new DefaultHandler());
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestTransformXml.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestTransformXml.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestTransformXml.java
index 17a3cd5..620cb77 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestTransformXml.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestTransformXml.java
@@ -39,15 +39,18 @@ public class TestTransformXml {
 
     @Test
     public void testStylesheetNotFound() throws IOException {
-        final TestRunner controller = TestRunners.newTestRunner(TransformXml.class);
-        controller.setProperty(TransformXml.XSLT_FILE_NAME, "/no/path/to/math.xsl");
+        final TestRunner controller = TestRunners.
+                newTestRunner(TransformXml.class);
+        controller.
+                setProperty(TransformXml.XSLT_FILE_NAME, "/no/path/to/math.xsl");
         controller.assertNotValid();
     }
 
     @Test
     public void testNonXmlContent() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new TransformXml());
-        runner.setProperty(TransformXml.XSLT_FILE_NAME, "src/test/resources/TestTransformXml/math.xsl");
+        runner.
+                setProperty(TransformXml.XSLT_FILE_NAME, "src/test/resources/TestTransformXml/math.xsl");
 
         final Map<String, String> attributes = new HashMap<>();
         runner.enqueue("not xml".getBytes(), attributes);
@@ -55,7 +58,9 @@ public class TestTransformXml {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(TransformXml.REL_FAILURE);
-        final MockFlowFile original = runner.getFlowFilesForRelationship(TransformXml.REL_FAILURE).get(0);
+        final MockFlowFile original = runner.
+                getFlowFilesForRelationship(TransformXml.REL_FAILURE).
+                get(0);
         final String originalContent = new String(original.toByteArray(), StandardCharsets.UTF_8);
         System.out.println("originalContent:\n" + originalContent);
 
@@ -67,25 +72,32 @@ public class TestTransformXml {
     public void testTransformMath() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new TransformXml());
         runner.setProperty("header", "Test for mod");
-        runner.setProperty(TransformXml.XSLT_FILE_NAME, "src/test/resources/TestTransformXml/math.xsl");
+        runner.
+                setProperty(TransformXml.XSLT_FILE_NAME, "src/test/resources/TestTransformXml/math.xsl");
 
         final Map<String, String> attributes = new HashMap<>();
-        runner.enqueue(Paths.get("src/test/resources/TestTransformXml/math.xml"), attributes);
+        runner.
+                enqueue(Paths.
+                        get("src/test/resources/TestTransformXml/math.xml"), attributes);
         runner.run();
 
         runner.assertAllFlowFilesTransferred(TransformXml.REL_SUCCESS);
-        final MockFlowFile transformed = runner.getFlowFilesForRelationship(TransformXml.REL_SUCCESS).get(0);
+        final MockFlowFile transformed = runner.
+                getFlowFilesForRelationship(TransformXml.REL_SUCCESS).
+                get(0);
         final String transformedContent = new String(transformed.toByteArray(), StandardCharsets.UTF_8);
         System.out.println("transformedContent:\n" + transformedContent);
 
-        transformed.assertContentEquals(Paths.get("src/test/resources/TestTransformXml/math.html"));
+        transformed.assertContentEquals(Paths.
+                get("src/test/resources/TestTransformXml/math.html"));
     }
 
     @Ignore("this test fails")
     @Test
     public void testTransformCsv() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new TransformXml());
-        runner.setProperty(TransformXml.XSLT_FILE_NAME, "src/test/resources/TestTransformXml/tokens.xsl");
+        runner.
+                setProperty(TransformXml.XSLT_FILE_NAME, "src/test/resources/TestTransformXml/tokens.xsl");
         runner.setProperty("uuid_0", "${uuid_0}");
         runner.setProperty("uuid_1", "${uuid_1}");
 
@@ -101,7 +113,8 @@ public class TestTransformXml {
 
         String line = null;
         while ((line = reader.readLine()) != null) {
-            builder.append(line).append("\n");
+            builder.append(line).
+                    append("\n");
         }
         builder.append("</data>");
         String data = builder.toString();
@@ -110,11 +123,14 @@ public class TestTransformXml {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(TransformXml.REL_SUCCESS);
-        final MockFlowFile transformed = runner.getFlowFilesForRelationship(TransformXml.REL_SUCCESS).get(0);
+        final MockFlowFile transformed = runner.
+                getFlowFilesForRelationship(TransformXml.REL_SUCCESS).
+                get(0);
         final String transformedContent = new String(transformed.toByteArray(), StandardCharsets.ISO_8859_1);
         System.out.println("transformedContent:\n" + transformedContent);
 
-        transformed.assertContentEquals(Paths.get("src/test/resources/TestTransformXml/tokens.xml"));
+        transformed.assertContentEquals(Paths.
+                get("src/test/resources/TestTransformXml/tokens.xml"));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestUnpackContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestUnpackContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestUnpackContent.java
index e2d7cdb..6035e08 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestUnpackContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestUnpackContent.java
@@ -36,12 +36,14 @@ import org.junit.Test;
 
 public class TestUnpackContent {
 
-    private static final Path dataPath = Paths.get("src/test/resources/TestUnpackContent");
+    private static final Path dataPath = Paths.
+            get("src/test/resources/TestUnpackContent");
 
     @Test
     public void testTar() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new UnpackContent());
-        runner.setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.TAR_FORMAT);
+        runner.
+                setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.TAR_FORMAT);
 
         runner.enqueue(dataPath.resolve("data.tar"));
         runner.run();
@@ -50,11 +52,15 @@ public class TestUnpackContent {
         runner.assertTransferCount(UnpackContent.REL_ORIGINAL, 1);
         runner.assertTransferCount(UnpackContent.REL_FAILURE, 0);
 
-        final List<MockFlowFile> unpacked = runner.getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
+        final List<MockFlowFile> unpacked = runner.
+                getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
         for (final MockFlowFile flowFile : unpacked) {
-            final String filename = flowFile.getAttribute(CoreAttributes.FILENAME.key());
-            final String folder = flowFile.getAttribute(CoreAttributes.PATH.key());
-            final Path path = dataPath.resolve(folder).resolve(filename);
+            final String filename = flowFile.
+                    getAttribute(CoreAttributes.FILENAME.key());
+            final String folder = flowFile.getAttribute(CoreAttributes.PATH.
+                    key());
+            final Path path = dataPath.resolve(folder).
+                    resolve(filename);
             assertTrue(Files.exists(path));
 
             flowFile.assertContentEquals(path.toFile());
@@ -64,7 +70,8 @@ public class TestUnpackContent {
     @Test
     public void testZip() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new UnpackContent());
-        runner.setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.ZIP_FORMAT);
+        runner.
+                setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.ZIP_FORMAT);
         runner.enqueue(dataPath.resolve("data.zip"));
 
         runner.run();
@@ -73,11 +80,15 @@ public class TestUnpackContent {
         runner.assertTransferCount(UnpackContent.REL_ORIGINAL, 1);
         runner.assertTransferCount(UnpackContent.REL_FAILURE, 0);
 
-        final List<MockFlowFile> unpacked = runner.getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
+        final List<MockFlowFile> unpacked = runner.
+                getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
         for (final MockFlowFile flowFile : unpacked) {
-            final String filename = flowFile.getAttribute(CoreAttributes.FILENAME.key());
-            final String folder = flowFile.getAttribute(CoreAttributes.PATH.key());
-            final Path path = dataPath.resolve(folder).resolve(filename);
+            final String filename = flowFile.
+                    getAttribute(CoreAttributes.FILENAME.key());
+            final String folder = flowFile.getAttribute(CoreAttributes.PATH.
+                    key());
+            final Path path = dataPath.resolve(folder).
+                    resolve(filename);
             assertTrue(Files.exists(path));
 
             flowFile.assertContentEquals(path.toFile());
@@ -87,7 +98,8 @@ public class TestUnpackContent {
     @Test
     public void testFlowFileStreamV3() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new UnpackContent());
-        runner.setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.FLOWFILE_STREAM_FORMAT_V3);
+        runner.
+                setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.FLOWFILE_STREAM_FORMAT_V3);
         runner.enqueue(dataPath.resolve("data.flowfilev3"));
 
         runner.run();
@@ -96,11 +108,15 @@ public class TestUnpackContent {
         runner.assertTransferCount(UnpackContent.REL_ORIGINAL, 1);
         runner.assertTransferCount(UnpackContent.REL_FAILURE, 0);
 
-        final List<MockFlowFile> unpacked = runner.getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
+        final List<MockFlowFile> unpacked = runner.
+                getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
         for (final MockFlowFile flowFile : unpacked) {
-            final String filename = flowFile.getAttribute(CoreAttributes.FILENAME.key());
-            final String folder = flowFile.getAttribute(CoreAttributes.PATH.key());
-            final Path path = dataPath.resolve(folder).resolve(filename);
+            final String filename = flowFile.
+                    getAttribute(CoreAttributes.FILENAME.key());
+            final String folder = flowFile.getAttribute(CoreAttributes.PATH.
+                    key());
+            final Path path = dataPath.resolve(folder).
+                    resolve(filename);
             assertTrue(Files.exists(path));
 
             flowFile.assertContentEquals(path.toFile());
@@ -110,7 +126,8 @@ public class TestUnpackContent {
     @Test
     public void testFlowFileStreamV2() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new UnpackContent());
-        runner.setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.FLOWFILE_STREAM_FORMAT_V2);
+        runner.
+                setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.FLOWFILE_STREAM_FORMAT_V2);
         runner.enqueue(dataPath.resolve("data.flowfilev2"));
 
         runner.run();
@@ -119,11 +136,15 @@ public class TestUnpackContent {
         runner.assertTransferCount(UnpackContent.REL_ORIGINAL, 1);
         runner.assertTransferCount(UnpackContent.REL_FAILURE, 0);
 
-        final List<MockFlowFile> unpacked = runner.getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
+        final List<MockFlowFile> unpacked = runner.
+                getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
         for (final MockFlowFile flowFile : unpacked) {
-            final String filename = flowFile.getAttribute(CoreAttributes.FILENAME.key());
-            final String folder = flowFile.getAttribute(CoreAttributes.PATH.key());
-            final Path path = dataPath.resolve(folder).resolve(filename);
+            final String filename = flowFile.
+                    getAttribute(CoreAttributes.FILENAME.key());
+            final String folder = flowFile.getAttribute(CoreAttributes.PATH.
+                    key());
+            final Path path = dataPath.resolve(folder).
+                    resolve(filename);
             assertTrue(Files.exists(path));
 
             flowFile.assertContentEquals(path.toFile());
@@ -132,8 +153,10 @@ public class TestUnpackContent {
 
     @Test
     public void testTarThenMerge() throws IOException {
-        final TestRunner unpackRunner = TestRunners.newTestRunner(new UnpackContent());
-        unpackRunner.setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.TAR_FORMAT);
+        final TestRunner unpackRunner = TestRunners.
+                newTestRunner(new UnpackContent());
+        unpackRunner.
+                setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.TAR_FORMAT);
 
         unpackRunner.enqueue(dataPath.resolve("data.tar"));
         unpackRunner.run();
@@ -142,14 +165,19 @@ public class TestUnpackContent {
         unpackRunner.assertTransferCount(UnpackContent.REL_ORIGINAL, 1);
         unpackRunner.assertTransferCount(UnpackContent.REL_FAILURE, 0);
 
-        final List<MockFlowFile> unpacked = unpackRunner.getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
+        final List<MockFlowFile> unpacked = unpackRunner.
+                getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
         for (final MockFlowFile flowFile : unpacked) {
-            assertEquals(flowFile.getAttribute(UnpackContent.SEGMENT_ORIGINAL_FILENAME), "data");
+            assertEquals(flowFile.
+                    getAttribute(UnpackContent.SEGMENT_ORIGINAL_FILENAME), "data");
         }
 
-        final TestRunner mergeRunner = TestRunners.newTestRunner(new MergeContent());
-        mergeRunner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_TAR);
-        mergeRunner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
+        final TestRunner mergeRunner = TestRunners.
+                newTestRunner(new MergeContent());
+        mergeRunner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_TAR);
+        mergeRunner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
         mergeRunner.setProperty(MergeContent.KEEP_PATH, "true");
         mergeRunner.enqueue(unpacked.toArray(new MockFlowFile[0]));
         mergeRunner.run();
@@ -158,16 +186,20 @@ public class TestUnpackContent {
         mergeRunner.assertTransferCount(MergeContent.REL_ORIGINAL, 2);
         mergeRunner.assertTransferCount(MergeContent.REL_FAILURE, 0);
 
-        final List<MockFlowFile> packed = mergeRunner.getFlowFilesForRelationship(MergeContent.REL_MERGED);
+        final List<MockFlowFile> packed = mergeRunner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED);
         for (final MockFlowFile flowFile : packed) {
-            flowFile.assertAttributeEquals(CoreAttributes.FILENAME.key(), "data.tar");
+            flowFile.
+                    assertAttributeEquals(CoreAttributes.FILENAME.key(), "data.tar");
         }
     }
 
     @Test
     public void testZipThenMerge() throws IOException {
-        final TestRunner unpackRunner = TestRunners.newTestRunner(new UnpackContent());
-        unpackRunner.setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.ZIP_FORMAT);
+        final TestRunner unpackRunner = TestRunners.
+                newTestRunner(new UnpackContent());
+        unpackRunner.
+                setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.ZIP_FORMAT);
 
         unpackRunner.enqueue(dataPath.resolve("data.zip"));
         unpackRunner.run();
@@ -176,14 +208,19 @@ public class TestUnpackContent {
         unpackRunner.assertTransferCount(UnpackContent.REL_ORIGINAL, 1);
         unpackRunner.assertTransferCount(UnpackContent.REL_FAILURE, 0);
 
-        final List<MockFlowFile> unpacked = unpackRunner.getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
+        final List<MockFlowFile> unpacked = unpackRunner.
+                getFlowFilesForRelationship(UnpackContent.REL_SUCCESS);
         for (final MockFlowFile flowFile : unpacked) {
-            assertEquals(flowFile.getAttribute(UnpackContent.SEGMENT_ORIGINAL_FILENAME), "data");
+            assertEquals(flowFile.
+                    getAttribute(UnpackContent.SEGMENT_ORIGINAL_FILENAME), "data");
         }
 
-        final TestRunner mergeRunner = TestRunners.newTestRunner(new MergeContent());
-        mergeRunner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_ZIP);
-        mergeRunner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
+        final TestRunner mergeRunner = TestRunners.
+                newTestRunner(new MergeContent());
+        mergeRunner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_ZIP);
+        mergeRunner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
         mergeRunner.setProperty(MergeContent.KEEP_PATH, "true");
         mergeRunner.enqueue(unpacked.toArray(new MockFlowFile[0]));
         mergeRunner.run();
@@ -192,16 +229,20 @@ public class TestUnpackContent {
         mergeRunner.assertTransferCount(MergeContent.REL_ORIGINAL, 2);
         mergeRunner.assertTransferCount(MergeContent.REL_FAILURE, 0);
 
-        final List<MockFlowFile> packed = mergeRunner.getFlowFilesForRelationship(MergeContent.REL_MERGED);
+        final List<MockFlowFile> packed = mergeRunner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED);
         for (final MockFlowFile flowFile : packed) {
-            flowFile.assertAttributeEquals(CoreAttributes.FILENAME.key(), "data.zip");
+            flowFile.
+                    assertAttributeEquals(CoreAttributes.FILENAME.key(), "data.zip");
         }
     }
 
     @Test
     public void testZipHandlesBadData() throws IOException {
-        final TestRunner unpackRunner = TestRunners.newTestRunner(new UnpackContent());
-        unpackRunner.setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.ZIP_FORMAT);
+        final TestRunner unpackRunner = TestRunners.
+                newTestRunner(new UnpackContent());
+        unpackRunner.
+                setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.ZIP_FORMAT);
 
         unpackRunner.enqueue(dataPath.resolve("data.tar"));
         unpackRunner.run();
@@ -213,8 +254,10 @@ public class TestUnpackContent {
 
     @Test
     public void testTarHandlesBadData() throws IOException {
-        final TestRunner unpackRunner = TestRunners.newTestRunner(new UnpackContent());
-        unpackRunner.setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.TAR_FORMAT);
+        final TestRunner unpackRunner = TestRunners.
+                newTestRunner(new UnpackContent());
+        unpackRunner.
+                setProperty(UnpackContent.PACKAGING_FORMAT, UnpackContent.TAR_FORMAT);
 
         unpackRunner.enqueue(dataPath.resolve("data.zip"));
         unpackRunner.run();

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java
index 9701e75..d550183 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestValidateXml.java
@@ -31,7 +31,8 @@ public class TestValidateXml {
     @Test
     public void testValid() throws IOException, SAXException {
         final TestRunner runner = TestRunners.newTestRunner(new ValidateXml());
-        runner.setProperty(ValidateXml.SCHEMA_FILE, "src/test/resources/TestXml/XmlBundle.xsd");
+        runner.
+                setProperty(ValidateXml.SCHEMA_FILE, "src/test/resources/TestXml/XmlBundle.xsd");
 
         runner.enqueue(Paths.get("src/test/resources/TestXml/xml-snippet.xml"));
         runner.run();

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/json-sample.json
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/json-sample.json b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/json-sample.json
index 09de806..1037289 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/json-sample.json
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestJson/json-sample.json
@@ -1,415 +1,415 @@
 [
-  {
-    "_id": "54df94072d5dbf7dc6340cc5",
-    "index": 0,
-    "guid": "b9f636cb-b939-42a9-b067-70d286116271",
-    "isActive": true,
-    "balance": "$3,200.07",
-    "picture": "http://placehold.it/32x32",
-    "age": 20,
-    "eyeColor": "brown",
-    "name": {
-      "first": "Shaffer",
-      "last": "Pearson"
+    {
+        "_id": "54df94072d5dbf7dc6340cc5",
+        "index": 0,
+        "guid": "b9f636cb-b939-42a9-b067-70d286116271",
+        "isActive": true,
+        "balance": "$3,200.07",
+        "picture": "http://placehold.it/32x32",
+        "age": 20,
+        "eyeColor": "brown",
+        "name": {
+            "first": "Shaffer",
+            "last": "Pearson"
+        },
+        "company": "DATAGEN",
+        "email": "shaffer.pearson@datagen.co.uk",
+        "phone": "+1 (972) 588-2272",
+        "address": "662 Rewe Street, Starks, California, 9066",
+        "about": "Aliquip exercitation ad duis irure consectetur magna aliquip amet. Exercitation labore ex laboris non dolor eu. In magna amet non nulla sit laboris do aliqua aliquip. Est elit ipsum ad ea in Lorem mollit Lorem laborum. Ad labore minim aliqua dolore reprehenderit commodo nulla fugiat eiusmod nostrud cillum est. Deserunt minim in non aliqua non.\r\n",
+        "registered": "Wednesday, January 7, 2015 5:51 PM",
+        "latitude": -50.359159,
+        "longitude": -94.01781,
+        "tags": [
+            "ea",
+            "enim",
+            "commodo",
+            "magna",
+            "sunt",
+            "dolore",
+            "aute"
+        ],
+        "range": [
+            0,
+            1,
+            2,
+            3,
+            4,
+            5,
+            6,
+            7,
+            8,
+            9
+        ],
+        "friends": [
+            {
+                "id": 0,
+                "name": "Holloway Kim"
+            },
+            {
+                "id": 1,
+                "name": "Clark Medina"
+            },
+            {
+                "id": 2,
+                "name": "Rosemarie Salazar"
+            }
+        ],
+        "greeting": "Hello, Shaffer! You have 9 unread messages.",
+        "favoriteFruit": "apple"
     },
-    "company": "DATAGEN",
-    "email": "shaffer.pearson@datagen.co.uk",
-    "phone": "+1 (972) 588-2272",
-    "address": "662 Rewe Street, Starks, California, 9066",
-    "about": "Aliquip exercitation ad duis irure consectetur magna aliquip amet. Exercitation labore ex laboris non dolor eu. In magna amet non nulla sit laboris do aliqua aliquip. Est elit ipsum ad ea in Lorem mollit Lorem laborum. Ad labore minim aliqua dolore reprehenderit commodo nulla fugiat eiusmod nostrud cillum est. Deserunt minim in non aliqua non.\r\n",
-    "registered": "Wednesday, January 7, 2015 5:51 PM",
-    "latitude": -50.359159,
-    "longitude": -94.01781,
-    "tags": [
-      "ea",
-      "enim",
-      "commodo",
-      "magna",
-      "sunt",
-      "dolore",
-      "aute"
-    ],
-    "range": [
-      0,
-      1,
-      2,
-      3,
-      4,
-      5,
-      6,
-      7,
-      8,
-      9
-    ],
-    "friends": [
-      {
-        "id": 0,
-        "name": "Holloway Kim"
-      },
-      {
-        "id": 1,
-        "name": "Clark Medina"
-      },
-      {
-        "id": 2,
-        "name": "Rosemarie Salazar"
-      }
-    ],
-    "greeting": "Hello, Shaffer! You have 9 unread messages.",
-    "favoriteFruit": "apple"
-  },
-  {
-    "_id": "54df94073ab1785758096418",
-    "index": 1,
-    "guid": "fda79e72-6489-41f5-bbd5-a5e7d2996dda",
-    "isActive": false,
-    "balance": "$1,416.15",
-    "picture": "http://placehold.it/32x32",
-    "age": 38,
-    "eyeColor": "blue",
-    "name": {
-      "first": "Frazier",
-      "last": "Ramsey"
+    {
+        "_id": "54df94073ab1785758096418",
+        "index": 1,
+        "guid": "fda79e72-6489-41f5-bbd5-a5e7d2996dda",
+        "isActive": false,
+        "balance": "$1,416.15",
+        "picture": "http://placehold.it/32x32",
+        "age": 38,
+        "eyeColor": "blue",
+        "name": {
+            "first": "Frazier",
+            "last": "Ramsey"
+        },
+        "company": "STREZZO",
+        "email": "frazier.ramsey@strezzo.biz",
+        "phone": "+1 (909) 448-2724",
+        "address": "624 Cedar Street, Iola, North Carolina, 2827",
+        "about": "Sit sunt eiusmod irure ipsum Lorem irure aliquip cupidatat in proident dolore sunt adipisicing. Aute ipsum reprehenderit aute aliquip ad id pariatur dolor dolore et exercitation. Pariatur est adipisicing eu aliqua ea sint qui. Fugiat officia voluptate anim dolore cupidatat amet. Amet cillum dolor magna elit fugiat.\r\n",
+        "registered": "Sunday, January 5, 2014 1:18 PM",
+        "latitude": -14.729254,
+        "longitude": 126.396861,
+        "tags": [
+            "non",
+            "laboris",
+            "nulla",
+            "commodo",
+            "nostrud",
+            "qui",
+            "ea"
+        ],
+        "range": [
+            0,
+            1,
+            2,
+            3,
+            4,
+            5,
+            6,
+            7,
+            8,
+            9
+        ],
+        "friends": [
+            {
+                "id": 0,
+                "name": "Valenzuela Stone"
+            },
+            {
+                "id": 1,
+                "name": "King Munoz"
+            },
+            {
+                "id": 2,
+                "name": "Kari Woodard"
+            }
+        ],
+        "greeting": "Hello, Frazier! You have 7 unread messages.",
+        "favoriteFruit": "strawberry"
     },
-    "company": "STREZZO",
-    "email": "frazier.ramsey@strezzo.biz",
-    "phone": "+1 (909) 448-2724",
-    "address": "624 Cedar Street, Iola, North Carolina, 2827",
-    "about": "Sit sunt eiusmod irure ipsum Lorem irure aliquip cupidatat in proident dolore sunt adipisicing. Aute ipsum reprehenderit aute aliquip ad id pariatur dolor dolore et exercitation. Pariatur est adipisicing eu aliqua ea sint qui. Fugiat officia voluptate anim dolore cupidatat amet. Amet cillum dolor magna elit fugiat.\r\n",
-    "registered": "Sunday, January 5, 2014 1:18 PM",
-    "latitude": -14.729254,
-    "longitude": 126.396861,
-    "tags": [
-      "non",
-      "laboris",
-      "nulla",
-      "commodo",
-      "nostrud",
-      "qui",
-      "ea"
-    ],
-    "range": [
-      0,
-      1,
-      2,
-      3,
-      4,
-      5,
-      6,
-      7,
-      8,
-      9
-    ],
-    "friends": [
-      {
-        "id": 0,
-        "name": "Valenzuela Stone"
-      },
-      {
-        "id": 1,
-        "name": "King Munoz"
-      },
-      {
-        "id": 2,
-        "name": "Kari Woodard"
-      }
-    ],
-    "greeting": "Hello, Frazier! You have 7 unread messages.",
-    "favoriteFruit": "strawberry"
-  },
-  {
-    "_id": "54df9407369a4d3f1b4aed39",
-    "index": 2,
-    "guid": "b6a68edb-4ddd-487b-b104-f02bec805e4c",
-    "isActive": true,
-    "balance": "$2,487.31",
-    "picture": "http://placehold.it/32x32",
-    "age": 27,
-    "eyeColor": "green",
-    "name": {
-      "first": "Cindy",
-      "last": "Shepherd"
+    {
+        "_id": "54df9407369a4d3f1b4aed39",
+        "index": 2,
+        "guid": "b6a68edb-4ddd-487b-b104-f02bec805e4c",
+        "isActive": true,
+        "balance": "$2,487.31",
+        "picture": "http://placehold.it/32x32",
+        "age": 27,
+        "eyeColor": "green",
+        "name": {
+            "first": "Cindy",
+            "last": "Shepherd"
+        },
+        "company": "EMTRAK",
+        "email": "cindy.shepherd@emtrak.org",
+        "phone": "+1 (867) 466-3223",
+        "address": "659 Colin Place, Vaughn, Washington, 1106",
+        "about": "Nulla sunt aliquip eiusmod occaecat duis officia eiusmod aliqua cillum ut. Irure eu est nulla dolor laborum eiusmod Lorem dolore culpa aliquip veniam duis. Sint cupidatat laboris commodo sunt consequat ullamco culpa ad labore. Velit do voluptate quis occaecat ex ipsum cupidatat occaecat dolor officia laborum labore.\r\n",
+        "registered": "Thursday, June 26, 2014 9:56 PM",
+        "latitude": 85.829527,
+        "longitude": -79.452723,
+        "tags": [
+            "cillum",
+            "do",
+            "veniam",
+            "dolore",
+            "voluptate",
+            "et",
+            "adipisicing"
+        ],
+        "range": [
+            0,
+            1,
+            2,
+            3,
+            4,
+            5,
+            6,
+            7,
+            8,
+            9
+        ],
+        "friends": [
+            {
+                "id": 0,
+                "name": "Decker Carver"
+            },
+            {
+                "id": 1,
+                "name": "Donaldson Burgess"
+            },
+            {
+                "id": 2,
+                "name": "Santana Heath"
+            }
+        ],
+        "greeting": "Hello, Cindy! You have 8 unread messages.",
+        "favoriteFruit": "strawberry"
     },
-    "company": "EMTRAK",
-    "email": "cindy.shepherd@emtrak.org",
-    "phone": "+1 (867) 466-3223",
-    "address": "659 Colin Place, Vaughn, Washington, 1106",
-    "about": "Nulla sunt aliquip eiusmod occaecat duis officia eiusmod aliqua cillum ut. Irure eu est nulla dolor laborum eiusmod Lorem dolore culpa aliquip veniam duis. Sint cupidatat laboris commodo sunt consequat ullamco culpa ad labore. Velit do voluptate quis occaecat ex ipsum cupidatat occaecat dolor officia laborum labore.\r\n",
-    "registered": "Thursday, June 26, 2014 9:56 PM",
-    "latitude": 85.829527,
-    "longitude": -79.452723,
-    "tags": [
-      "cillum",
-      "do",
-      "veniam",
-      "dolore",
-      "voluptate",
-      "et",
-      "adipisicing"
-    ],
-    "range": [
-      0,
-      1,
-      2,
-      3,
-      4,
-      5,
-      6,
-      7,
-      8,
-      9
-    ],
-    "friends": [
-      {
-        "id": 0,
-        "name": "Decker Carver"
-      },
-      {
-        "id": 1,
-        "name": "Donaldson Burgess"
-      },
-      {
-        "id": 2,
-        "name": "Santana Heath"
-      }
-    ],
-    "greeting": "Hello, Cindy! You have 8 unread messages.",
-    "favoriteFruit": "strawberry"
-  },
-  {
-    "_id": "54df94076f342042d027ca67",
-    "index": 3,
-    "guid": "ac591519-1642-4092-9646-17b4b7a9e38b",
-    "isActive": false,
-    "balance": "$3,480.12",
-    "picture": "http://placehold.it/32x32",
-    "age": 37,
-    "eyeColor": "green",
-    "name": {
-      "first": "Colon",
-      "last": "Gamble"
+    {
+        "_id": "54df94076f342042d027ca67",
+        "index": 3,
+        "guid": "ac591519-1642-4092-9646-17b4b7a9e38b",
+        "isActive": false,
+        "balance": "$3,480.12",
+        "picture": "http://placehold.it/32x32",
+        "age": 37,
+        "eyeColor": "green",
+        "name": {
+            "first": "Colon",
+            "last": "Gamble"
+        },
+        "company": "RONELON",
+        "email": "colon.gamble@ronelon.net",
+        "phone": "+1 (988) 431-2933",
+        "address": "472 Ryerson Street, Gwynn, Wyoming, 4200",
+        "about": "Ad duis nostrud laboris id aute reprehenderit veniam aute aute laborum exercitation laborum. In minim quis in sunt minim labore deserunt id dolor ea sit. Ipsum tempor Lorem aliqua ad sit quis duis exercitation quis. Dolore voluptate aute ut est non quis do aute exercitation consectetur reprehenderit proident quis.\r\n",
+        "registered": "Tuesday, July 29, 2014 1:38 PM",
+        "latitude": -9.922105,
+        "longitude": -170.581901,
+        "tags": [
+            "fugiat",
+            "incididunt",
+            "proident",
+            "laboris",
+            "id",
+            "ullamco",
+            "non"
+        ],
+        "range": [
+            0,
+            1,
+            2,
+            3,
+            4,
+            5,
+            6,
+            7,
+            8,
+            9
+        ],
+        "friends": [
+            {
+                "id": 0,
+                "name": "Shawn Collins"
+            },
+            {
+                "id": 1,
+                "name": "Holland West"
+            },
+            {
+                "id": 2,
+                "name": "Daniel Fischer"
+            }
+        ],
+        "greeting": "Hello, Colon! You have 7 unread messages.",
+        "favoriteFruit": "strawberry"
     },
-    "company": "RONELON",
-    "email": "colon.gamble@ronelon.net",
-    "phone": "+1 (988) 431-2933",
-    "address": "472 Ryerson Street, Gwynn, Wyoming, 4200",
-    "about": "Ad duis nostrud laboris id aute reprehenderit veniam aute aute laborum exercitation laborum. In minim quis in sunt minim labore deserunt id dolor ea sit. Ipsum tempor Lorem aliqua ad sit quis duis exercitation quis. Dolore voluptate aute ut est non quis do aute exercitation consectetur reprehenderit proident quis.\r\n",
-    "registered": "Tuesday, July 29, 2014 1:38 PM",
-    "latitude": -9.922105,
-    "longitude": -170.581901,
-    "tags": [
-      "fugiat",
-      "incididunt",
-      "proident",
-      "laboris",
-      "id",
-      "ullamco",
-      "non"
-    ],
-    "range": [
-      0,
-      1,
-      2,
-      3,
-      4,
-      5,
-      6,
-      7,
-      8,
-      9
-    ],
-    "friends": [
-      {
-        "id": 0,
-        "name": "Shawn Collins"
-      },
-      {
-        "id": 1,
-        "name": "Holland West"
-      },
-      {
-        "id": 2,
-        "name": "Daniel Fischer"
-      }
-    ],
-    "greeting": "Hello, Colon! You have 7 unread messages.",
-    "favoriteFruit": "strawberry"
-  },
-  {
-    "_id": "54df94075774d288fc86a912",
-    "index": 4,
-    "guid": "daec0340-7900-4a65-92fc-22e727577660",
-    "isActive": true,
-    "balance": "$3,042.74",
-    "picture": "http://placehold.it/32x32",
-    "age": 36,
-    "eyeColor": "brown",
-    "name": {
-      "first": "Carter",
-      "last": "Russo"
+    {
+        "_id": "54df94075774d288fc86a912",
+        "index": 4,
+        "guid": "daec0340-7900-4a65-92fc-22e727577660",
+        "isActive": true,
+        "balance": "$3,042.74",
+        "picture": "http://placehold.it/32x32",
+        "age": 36,
+        "eyeColor": "brown",
+        "name": {
+            "first": "Carter",
+            "last": "Russo"
+        },
+        "company": "NORALEX",
+        "email": "carter.russo@noralex.biz",
+        "phone": "+1 (819) 543-3605",
+        "address": "147 Everit Street, Saticoy, Missouri, 5963",
+        "about": "Ea irure non pariatur ipsum. Magna eu enim anim Lorem quis sint cillum. Voluptate proident commodo dolor aute consectetur reprehenderit dolor nostrud ipsum cillum magna dolor. Reprehenderit sit consequat pariatur enim do occaecat exercitation reprehenderit.\r\n",
+        "registered": "Saturday, January 25, 2014 10:12 PM",
+        "latitude": -65.101248,
+        "longitude": 19.867506,
+        "tags": [
+            "dolore",
+            "et",
+            "ex",
+            "eu",
+            "nostrud",
+            "ex",
+            "ad"
+        ],
+        "range": [
+            0,
+            1,
+            2,
+            3,
+            4,
+            5,
+            6,
+            7,
+            8,
+            9
+        ],
+        "friends": [
+            {
+                "id": 0,
+                "name": "Felicia Hull"
+            },
+            {
+                "id": 1,
+                "name": "Jerri Mays"
+            },
+            {
+                "id": 2,
+                "name": "Jo Justice"
+            }
+        ],
+        "greeting": "Hello, Carter! You have 7 unread messages.",
+        "favoriteFruit": "apple"
     },
-    "company": "NORALEX",
-    "email": "carter.russo@noralex.biz",
-    "phone": "+1 (819) 543-3605",
-    "address": "147 Everit Street, Saticoy, Missouri, 5963",
-    "about": "Ea irure non pariatur ipsum. Magna eu enim anim Lorem quis sint cillum. Voluptate proident commodo dolor aute consectetur reprehenderit dolor nostrud ipsum cillum magna dolor. Reprehenderit sit consequat pariatur enim do occaecat exercitation reprehenderit.\r\n",
-    "registered": "Saturday, January 25, 2014 10:12 PM",
-    "latitude": -65.101248,
-    "longitude": 19.867506,
-    "tags": [
-      "dolore",
-      "et",
-      "ex",
-      "eu",
-      "nostrud",
-      "ex",
-      "ad"
-    ],
-    "range": [
-      0,
-      1,
-      2,
-      3,
-      4,
-      5,
-      6,
-      7,
-      8,
-      9
-    ],
-    "friends": [
-      {
-        "id": 0,
-        "name": "Felicia Hull"
-      },
-      {
-        "id": 1,
-        "name": "Jerri Mays"
-      },
-      {
-        "id": 2,
-        "name": "Jo Justice"
-      }
-    ],
-    "greeting": "Hello, Carter! You have 7 unread messages.",
-    "favoriteFruit": "apple"
-  },
-  {
-    "_id": "54df940741be468e58e87dd3",
-    "index": 5,
-    "guid": "16a037a3-fe30-4c51-8d09-f24ad54f4719",
-    "isActive": true,
-    "balance": "$1,979.92",
-    "picture": "http://placehold.it/32x32",
-    "age": 20,
-    "eyeColor": "blue",
-    "name": {
-      "first": "Claudia",
-      "last": "Houston"
+    {
+        "_id": "54df940741be468e58e87dd3",
+        "index": 5,
+        "guid": "16a037a3-fe30-4c51-8d09-f24ad54f4719",
+        "isActive": true,
+        "balance": "$1,979.92",
+        "picture": "http://placehold.it/32x32",
+        "age": 20,
+        "eyeColor": "blue",
+        "name": {
+            "first": "Claudia",
+            "last": "Houston"
+        },
+        "company": "FISHLAND",
+        "email": "claudia.houston@fishland.com",
+        "phone": "+1 (860) 498-3802",
+        "address": "821 Remsen Avenue, Ada, Vermont, 3101",
+        "about": "Lorem eu deserunt et non id consectetur laborum voluptate id magna labore. Dolore enim voluptate mollit culpa cupidatat officia do aute voluptate Lorem commodo. Nisi nostrud amet in labore ullamco nisi magna adipisicing voluptate aliquip qui consequat enim. Pariatur adipisicing nostrud ut deserunt ad excepteur. Lorem do voluptate adipisicing et laborum commodo nulla excepteur laborum quis tempor proident velit.\r\n",
+        "registered": "Thursday, August 7, 2014 7:48 AM",
+        "latitude": 34.6075,
+        "longitude": -2.643176,
+        "tags": [
+            "enim",
+            "eu",
+            "sint",
+            "qui",
+            "elit",
+            "laboris",
+            "commodo"
+        ],
+        "range": [
+            0,
+            1,
+            2,
+            3,
+            4,
+            5,
+            6,
+            7,
+            8,
+            9
+        ],
+        "friends": [
+            {
+                "id": 0,
+                "name": "Boyd Morrison"
+            },
+            {
+                "id": 1,
+                "name": "Wendi Sandoval"
+            },
+            {
+                "id": 2,
+                "name": "Mindy Bush"
+            }
+        ],
+        "greeting": "Hello, Claudia! You have 8 unread messages.",
+        "favoriteFruit": "apple"
     },
-    "company": "FISHLAND",
-    "email": "claudia.houston@fishland.com",
-    "phone": "+1 (860) 498-3802",
-    "address": "821 Remsen Avenue, Ada, Vermont, 3101",
-    "about": "Lorem eu deserunt et non id consectetur laborum voluptate id magna labore. Dolore enim voluptate mollit culpa cupidatat officia do aute voluptate Lorem commodo. Nisi nostrud amet in labore ullamco nisi magna adipisicing voluptate aliquip qui consequat enim. Pariatur adipisicing nostrud ut deserunt ad excepteur. Lorem do voluptate adipisicing et laborum commodo nulla excepteur laborum quis tempor proident velit.\r\n",
-    "registered": "Thursday, August 7, 2014 7:48 AM",
-    "latitude": 34.6075,
-    "longitude": -2.643176,
-    "tags": [
-      "enim",
-      "eu",
-      "sint",
-      "qui",
-      "elit",
-      "laboris",
-      "commodo"
-    ],
-    "range": [
-      0,
-      1,
-      2,
-      3,
-      4,
-      5,
-      6,
-      7,
-      8,
-      9
-    ],
-    "friends": [
-      {
-        "id": 0,
-        "name": "Boyd Morrison"
-      },
-      {
-        "id": 1,
-        "name": "Wendi Sandoval"
-      },
-      {
-        "id": 2,
-        "name": "Mindy Bush"
-      }
-    ],
-    "greeting": "Hello, Claudia! You have 8 unread messages.",
-    "favoriteFruit": "apple"
-  },
-  {
-    "_id": "54df9407fbfc2103751de2e7",
-    "index": 6,
-    "guid": "60241980-5362-41dd-b6e5-e55f174904cf",
-    "isActive": true,
-    "balance": "$3,106.83",
-    "picture": "http://placehold.it/32x32",
-    "age": 40,
-    "eyeColor": "green",
-    "name": {
-      "first": "Beulah",
-      "last": "Myers"
-    },
-    "company": "UNI",
-    "email": "beulah.myers@uni.tv",
-    "phone": "+1 (969) 407-3571",
-    "address": "661 Matthews Court, Osage, Delaware, 1167",
-    "about": "Officia ipsum reprehenderit in nostrud Lorem labore consectetur nulla quis officia ullamco. Eiusmod ipsum deserunt consectetur cillum et duis do esse veniam occaecat Lorem dolor consequat. Lorem esse cupidatat aute et ut.\r\n",
-    "registered": "Sunday, January 25, 2015 8:22 PM",
-    "latitude": 72.620891,
-    "longitude": 155.859974,
-    "tags": [
-      "minim",
-      "fugiat",
-      "irure",
-      "culpa",
-      "exercitation",
-      "labore",
-      "commodo"
-    ],
-    "range": [
-      0,
-      1,
-      2,
-      3,
-      4,
-      5,
-      6,
-      7,
-      8,
-      9
-    ],
-    "friends": [
-      {
-        "id": 0,
-        "name": "Corina Francis"
-      },
-      {
-        "id": 1,
-        "name": "Vera Carson"
-      },
-      {
-        "id": 2,
-        "name": "Blevins Camacho"
-      }
-    ],
-    "greeting": "Hello, Beulah! You have 8 unread messages.",
-    "favoriteFruit": "apple"
-  }
+    {
+        "_id": "54df9407fbfc2103751de2e7",
+        "index": 6,
+        "guid": "60241980-5362-41dd-b6e5-e55f174904cf",
+        "isActive": true,
+        "balance": "$3,106.83",
+        "picture": "http://placehold.it/32x32",
+        "age": 40,
+        "eyeColor": "green",
+        "name": {
+            "first": "Beulah",
+            "last": "Myers"
+        },
+        "company": "UNI",
+        "email": "beulah.myers@uni.tv",
+        "phone": "+1 (969) 407-3571",
+        "address": "661 Matthews Court, Osage, Delaware, 1167",
+        "about": "Officia ipsum reprehenderit in nostrud Lorem labore consectetur nulla quis officia ullamco. Eiusmod ipsum deserunt consectetur cillum et duis do esse veniam occaecat Lorem dolor consequat. Lorem esse cupidatat aute et ut.\r\n",
+        "registered": "Sunday, January 25, 2015 8:22 PM",
+        "latitude": 72.620891,
+        "longitude": 155.859974,
+        "tags": [
+            "minim",
+            "fugiat",
+            "irure",
+            "culpa",
+            "exercitation",
+            "labore",
+            "commodo"
+        ],
+        "range": [
+            0,
+            1,
+            2,
+            3,
+            4,
+            5,
+            6,
+            7,
+            8,
+            9
+        ],
+        "friends": [
+            {
+                "id": 0,
+                "name": "Corina Francis"
+            },
+            {
+                "id": 1,
+                "name": "Vera Carson"
+            },
+            {
+                "id": 2,
+                "name": "Blevins Camacho"
+            }
+        ],
+        "greeting": "Hello, Beulah! You have 8 unread messages.",
+        "favoriteFruit": "apple"
+    }
 ]
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
index d87f5d1..5b95094 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java
@@ -92,7 +92,8 @@ public class ControllerStatusReportingTask extends AbstractReportingTask {
         connectionBorderLine = connectionBorderBuilder.toString();
 
         processorLineFormat = context.getProperty(SHOW_DELTAS).asBoolean() ? PROCESSOR_LINE_FORMAT_WITH_DELTA : PROCESSOR_LINE_FORMAT_NO_DELTA;
-        processorHeader = String.format(processorLineFormat, "Processor Name", "Processor ID", "Processor Type", "Run Status", "Flow Files In", "Flow Files Out", "Bytes Read", "Bytes Written", "Tasks", "Proc Time");
+        processorHeader = String.format(processorLineFormat, "Processor Name", "Processor ID", "Processor Type", "Run Status", "Flow Files In",
+                "Flow Files Out", "Bytes Read", "Bytes Written", "Tasks", "Proc Time");
 
         final StringBuilder processorBorderBuilder = new StringBuilder(processorHeader.length());
         for (int i = 0; i < processorHeader.length(); i++) {
@@ -150,13 +151,7 @@ public class ControllerStatusReportingTask extends AbstractReportingTask {
         }
     }
 
-    /**
-     * Recursively prints the status of all connections in this group.
-     *
-     * @param groupStatus
-     * @param group
-     * @param builder
-     */
+    // Recursively prints the status of all connections in this group.
     private void printConnectionStatus(final ProcessGroupStatus groupStatus, final StringBuilder builder, final boolean showDeltas) {
         final List<ConnectionStatus> connectionStatuses = new ArrayList<>();
         populateConnectionStatuses(groupStatus, connectionStatuses);
@@ -254,13 +249,7 @@ public class ControllerStatusReportingTask extends AbstractReportingTask {
         return sb.toString();
     }
 
-    /**
-     * Recursively the status of all processors in this group.
-     *
-     * @param groupStatus
-     * @param group
-     * @param builder
-     */
+    // Recursively the status of all processors in this group.
     private void printProcessorStatus(final ProcessGroupStatus groupStatus, final StringBuilder builder, final boolean showDeltas) {
         final List<ProcessorStatus> processorStatuses = new ArrayList<>();
         populateProcessorStatuses(groupStatus, processorStatuses);

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java
index 8f17c7b..bb8971a 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java
@@ -255,7 +255,8 @@ public class MonitorMemory extends AbstractReportingTask {
         public ValidationResult validate(final String subject, final String input, final ValidationContext context) {
 
             if (!PERCENTAGE_PATTERN.matcher(input).matches() && !DATA_SIZE_PATTERN.matcher(input).matches()) {
-                return new ValidationResult.Builder().input(input).subject(subject).valid(false).explanation("Valid value is a number in the range of 0-99 followed by a percent sign (e.g. 65%) or a Data Size (e.g. 100 MB)").build();
+                return new ValidationResult.Builder().input(input).subject(subject).valid(false)
+                        .explanation("Valid value is a number in the range of 0-99 followed by a percent sign (e.g. 65%) or a Data Size (e.g. 100 MB)").build();
             }
 
             return new ValidationResult.Builder().input(input).subject(subject).valid(true).build();


[05/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java
index aae4411..99d5858 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXQuery.java
@@ -43,7 +43,8 @@ import org.junit.Test;
 
 public class TestEvaluateXQuery {
 
-    private static final Path XML_SNIPPET = Paths.get("src/test/resources/TestXml/fruit.xml");
+    private static final Path XML_SNIPPET = Paths.
+            get("src/test/resources/TestXml/fruit.xml");
     private static final String[] fruitNames = {"apple", "apple", "banana", "orange", "blueberry", "raspberry", "none"};
 
     private static final String[] methods = {EvaluateXQuery.OUTPUT_METHOD_XML, EvaluateXQuery.OUTPUT_METHOD_HTML, EvaluateXQuery.OUTPUT_METHOD_TEXT};
@@ -55,11 +56,15 @@ public class TestEvaluateXQuery {
         for (int i = 0; i < methods.length; i++) {
             for (int j = 0; j < booleans.length; j++) {
                 for (int k = 0; k < booleans.length; k++) {
-                    Properties props = EvaluateXQuery.getTransformerProperties(methods[i], booleans[j], booleans[k]);
+                    Properties props = EvaluateXQuery.
+                            getTransformerProperties(methods[i], booleans[j], booleans[k]);
                     assertEquals(3, props.size());
-                    assertEquals(methods[i], props.getProperty(OutputKeys.METHOD));
-                    assertEquals(booleans[j] ? "yes" : "no", props.getProperty(OutputKeys.INDENT));
-                    assertEquals(booleans[k] ? "yes" : "no", props.getProperty(OutputKeys.OMIT_XML_DECLARATION));
+                    assertEquals(methods[i], props.
+                            getProperty(OutputKeys.METHOD));
+                    assertEquals(booleans[j] ? "yes" : "no", props.
+                            getProperty(OutputKeys.INDENT));
+                    assertEquals(booleans[k] ? "yes" : "no", props.
+                            getProperty(OutputKeys.OMIT_XML_DECLARATION));
                 }
             }
         }
@@ -157,10 +162,14 @@ public class TestEvaluateXQuery {
         List<String> resultStrings = new ArrayList<>();
 
         runnerProps.clear();
-        runnerProps.put(EvaluateXQuery.DESTINATION.getName(), EvaluateXQuery.DESTINATION_CONTENT);
+        runnerProps.
+                put(EvaluateXQuery.DESTINATION.getName(), EvaluateXQuery.DESTINATION_CONTENT);
         runnerProps.put(EvaluateXQuery.XML_OUTPUT_METHOD.getName(), method);
-        runnerProps.put(EvaluateXQuery.XML_OUTPUT_INDENT.getName(), Boolean.toString(indent));
-        runnerProps.put(EvaluateXQuery.XML_OUTPUT_OMIT_XML_DECLARATION.getName(), Boolean.toString(omitDeclaration));
+        runnerProps.put(EvaluateXQuery.XML_OUTPUT_INDENT.getName(), Boolean.
+                toString(indent));
+        runnerProps.
+                put(EvaluateXQuery.XML_OUTPUT_OMIT_XML_DECLARATION.getName(), Boolean.
+                        toString(omitDeclaration));
         runnerProps.put("xquery", xQuery);
         resultFlowFiles = runXquery(xml, runnerProps);
 
@@ -176,22 +185,26 @@ public class TestEvaluateXQuery {
 
     @Test(expected = java.lang.AssertionError.class)
     public void testBadXQuery() throws Exception {
-        doXqueryTest(XML_SNIPPET, "counttttttt(*:fruitbasket/fruit)", Arrays.asList("7"));
+        doXqueryTest(XML_SNIPPET, "counttttttt(*:fruitbasket/fruit)", Arrays.
+                asList("7"));
     }
 
     @Test
     public void testXQueries() throws Exception {
 
         /* count matches */
-        doXqueryTest(XML_SNIPPET, "count(*:fruitbasket/fruit)", Arrays.asList("7"));
+        doXqueryTest(XML_SNIPPET, "count(*:fruitbasket/fruit)", Arrays.
+                asList("7"));
         doXqueryTest(XML_SNIPPET, "count(//fruit)", Arrays.asList("7"));
 
         /* Using a namespace */
-        doXqueryTest(XML_SNIPPET, "declare namespace fb = \"http://namespace/1\"; count(fb:fruitbasket/fruit)", Arrays.asList("7"));
+        doXqueryTest(XML_SNIPPET, "declare namespace fb = \"http://namespace/1\"; count(fb:fruitbasket/fruit)", Arrays.
+                asList("7"));
 
         /* determine if node exists */
         doXqueryTest(XML_SNIPPET, "boolean(//fruit[1])", Arrays.asList("true"));
-        doXqueryTest(XML_SNIPPET, "boolean(//fruit[100])", Arrays.asList("false"));
+        doXqueryTest(XML_SNIPPET, "boolean(//fruit[100])", Arrays.
+                asList("false"));
 
         /* XML first match */
         doXqueryTest(XML_SNIPPET, "//fruit[1]", Arrays.asList(
@@ -229,13 +242,16 @@ public class TestEvaluateXQuery {
                 + "</wrap>"));
 
         /* String all matches fruit names*/
-        doXqueryTest(XML_SNIPPET, "for $x in //fruit return $x/name/text()", Arrays.asList(fruitNames));
+        doXqueryTest(XML_SNIPPET, "for $x in //fruit return $x/name/text()", Arrays.
+                asList(fruitNames));
 
         /* String first match fruit name (XPath)*/
-        doXqueryTest(XML_SNIPPET, "//fruit[1]/name/text()", Arrays.asList("apple"));
+        doXqueryTest(XML_SNIPPET, "//fruit[1]/name/text()", Arrays.
+                asList("apple"));
 
         /* String first match fruit color (XPath)*/
-        doXqueryTest(XML_SNIPPET, "//fruit[1]/color/text()", Arrays.asList("red"));
+        doXqueryTest(XML_SNIPPET, "//fruit[1]/color/text()", Arrays.
+                asList("red"));
 
         /* String first match fruit name (XQuery)*/
         doXqueryTest(XML_SNIPPET, "for $x in //fruit[1] return string-join(($x/name/text() , $x/color/text()), ' - ')",
@@ -280,25 +296,31 @@ public class TestEvaluateXQuery {
 
         /* String all matches name only, comma delimited (one result)*/
         doXqueryTest(XML_SNIPPET, "string-join((for $x in //fruit return $x/name/text()), ', ')",
-                Arrays.asList("apple, apple, banana, orange, blueberry, raspberry, none"));
+                Arrays.
+                asList("apple, apple, banana, orange, blueberry, raspberry, none"));
 
         /* String all matches color and name, comma delimited (one result)*/
         doXqueryTest(XML_SNIPPET, "string-join((for $y in (for $x in //fruit return string-join(($x/color/text() , $x/name/text()), ' ')) return $y), ', ')",
-                Arrays.asList("red apple, green apple, yellow banana, orange orange, blue blueberry, red raspberry, none"));
+                Arrays.
+                asList("red apple, green apple, yellow banana, orange orange, blue blueberry, red raspberry, none"));
 
         /* String all matches color and name, comma delimited using let(one result)*/
         doXqueryTest(XML_SNIPPET, "string-join((for $y in (for $x in //fruit let $d := string-join(($x/color/text() , $x/name/text()), ' ')  return $d) return $y), ', ')",
-                Arrays.asList("red apple, green apple, yellow banana, orange orange, blue blueberry, red raspberry, none"));
+                Arrays.
+                asList("red apple, green apple, yellow banana, orange orange, blue blueberry, red raspberry, none"));
 
 
         /* Query for attribute */
-        doXqueryTest(XML_SNIPPET, "string(//fruit[1]/@taste)", Arrays.asList("crisp"));
+        doXqueryTest(XML_SNIPPET, "string(//fruit[1]/@taste)", Arrays.
+                asList("crisp"));
 
         /* Query for comment */
-        doXqueryTest(XML_SNIPPET, "//fruit/comment()", Arrays.asList(" Apples are my favorite "));
+        doXqueryTest(XML_SNIPPET, "//fruit/comment()", Arrays.
+                asList(" Apples are my favorite "));
 
         /* Query for processing instruction */
-        doXqueryTest(XML_SNIPPET, "//processing-instruction()[name()='xml-stylesheet']", Arrays.asList("type=\"text/xsl\" href=\"foo.xsl\""));
+        doXqueryTest(XML_SNIPPET, "//processing-instruction()[name()='xml-stylesheet']", Arrays.
+                asList("type=\"text/xsl\" href=\"foo.xsl\""));
 
     }
 
@@ -310,7 +332,8 @@ public class TestEvaluateXQuery {
         // test read from content, write to attribute
         {
             runnerProps.clear();
-            runnerProps.put(EvaluateXQuery.DESTINATION.getName(), EvaluateXQuery.DESTINATION_ATTRIBUTE);
+            runnerProps.
+                    put(EvaluateXQuery.DESTINATION.getName(), EvaluateXQuery.DESTINATION_ATTRIBUTE);
             runnerProps.put("xquery", xQuery);
             resultFlowFiles = runXquery(xml, runnerProps);
 
@@ -323,8 +346,10 @@ public class TestEvaluateXQuery {
                 if (expectedResults.size() > 1) {
                     key += "." + ((int) i + 1);
                 }
-                final String actual = out.getAttribute(key).replaceAll(">\\s+<", "><");
-                final String expected = expectedResults.get(i).replaceAll(">\\s+<", "><");
+                final String actual = out.getAttribute(key).
+                        replaceAll(">\\s+<", "><");
+                final String expected = expectedResults.get(i).
+                        replaceAll(">\\s+<", "><");
                 assertEquals(expected, actual);
             }
         }
@@ -332,7 +357,8 @@ public class TestEvaluateXQuery {
         // test read from content, write to content
         {
             runnerProps.clear();
-            runnerProps.put(EvaluateXQuery.DESTINATION.getName(), EvaluateXQuery.DESTINATION_CONTENT);
+            runnerProps.
+                    put(EvaluateXQuery.DESTINATION.getName(), EvaluateXQuery.DESTINATION_CONTENT);
             runnerProps.put("xquery", xQuery);
             resultFlowFiles = runXquery(xml, runnerProps);
 
@@ -342,9 +368,11 @@ public class TestEvaluateXQuery {
 
                 final MockFlowFile out = resultFlowFiles.get(i);
                 final byte[] outData = out.toByteArray();
-                final String outXml = new String(outData, "UTF-8").replaceAll(">\\s+<", "><");
+                final String outXml = new String(outData, "UTF-8").
+                        replaceAll(">\\s+<", "><");
                 final String actual = outXml;
-                final String expected = expectedResults.get(i).replaceAll(">\\s+<", "><");
+                final String expected = expectedResults.get(i).
+                        replaceAll(">\\s+<", "><");
                 assertEquals(expected, actual);
             }
         }
@@ -356,7 +384,8 @@ public class TestEvaluateXQuery {
 
     private List<MockFlowFile> runXquery(Path xml, Map<String, String> runnerProps, Map<String, String> flowFileAttributes) throws Exception {
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
 
         for (Entry<String, String> entry : runnerProps.entrySet()) {
             testRunner.setProperty(entry.getKey(), entry.getValue());
@@ -372,81 +401,109 @@ public class TestEvaluateXQuery {
 
     @Test
     public void testRootPath() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("xquery.result1", "/");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0);
-        final String attributeString = out.getAttribute("xquery.result1").replaceAll(">\\s+<", "><");
-        final String xmlSnippetString = new String(Files.readAllBytes(XML_SNIPPET), "UTF-8").replaceAll(">\\s+<", "><");
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0);
+        final String attributeString = out.getAttribute("xquery.result1").
+                replaceAll(">\\s+<", "><");
+        final String xmlSnippetString = new String(Files.
+                readAllBytes(XML_SNIPPET), "UTF-8").replaceAll(">\\s+<", "><");
 
         assertEquals(xmlSnippetString, attributeString);
     }
 
     @Test
     public void testCheckIfElementExists() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
-        testRunner.setProperty("xquery.result.exist.1", "boolean(/*:fruitbasket/fruit[1])");
-        testRunner.setProperty("xquery.result.exist.2", "boolean(/*:fruitbasket/fruit[100])");
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
+        testRunner.
+                setProperty("xquery.result.exist.1", "boolean(/*:fruitbasket/fruit[1])");
+        testRunner.
+                setProperty("xquery.result.exist.2", "boolean(/*:fruitbasket/fruit[100])");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0);
         out.assertAttributeEquals("xquery.result.exist.1", "true");
         out.assertAttributeEquals("xquery.result.exist.2", "false");
     }
 
     @Test
     public void testUnmatchedContent() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
         testRunner.setProperty("xquery.result.exist.2", "/*:fruitbasket/node2");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_NO_MATCH, 1);
-        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).get(0).assertContentEquals(XML_SNIPPET);
+        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).
+                get(0).
+                assertContentEquals(XML_SNIPPET);
     }
 
     @Test
     public void testUnmatchedAttribute() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("xquery.result.exist.2", "/*:fruitbasket/node2");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_NO_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).
+                get(0);
         out.assertAttributeEquals("xquery.result.exist.2", null);
-        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).get(0).assertContentEquals(XML_SNIPPET);
+        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).
+                get(0).
+                assertContentEquals(XML_SNIPPET);
     }
 
     @Test
     public void testNoXQueryAttribute() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_NO_MATCH, 1);
-        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).get(0).assertContentEquals(XML_SNIPPET);
+        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).
+                get(0).
+                assertContentEquals(XML_SNIPPET);
     }
 
     @Test(expected = java.lang.AssertionError.class)
     public void testNoXQueryContent() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
@@ -454,8 +511,10 @@ public class TestEvaluateXQuery {
 
     @Test
     public void testOneMatchOneUnmatchAttribute() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("some.property", "//fruit/name/text()");
         testRunner.setProperty("xquery.result.exist.2", "/*:fruitbasket/node2");
 
@@ -464,37 +523,51 @@ public class TestEvaluateXQuery {
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 1);
 
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0);
 
         for (int i = 0; i < fruitNames.length; i++) {
-            final String outXml = out.getAttribute("some.property." + ((int) i + 1));
+            final String outXml = out.
+                    getAttribute("some.property." + ((int) i + 1));
             assertEquals(fruitNames[i], outXml.trim());
         }
 
         out.assertAttributeEquals("xquery.result.exist.2", null);
-        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0).assertContentEquals(XML_SNIPPET);
+        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0).
+                assertContentEquals(XML_SNIPPET);
     }
 
     @Test
     public void testMatchedEmptyStringAttribute() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
-        testRunner.setProperty("xquery.result.exist.2", "/*:fruitbasket/*[name='none']/color/text()");
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
+        testRunner.
+                setProperty("xquery.result.exist.2", "/*:fruitbasket/*[name='none']/color/text()");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_NO_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).
+                get(0);
 
         out.assertAttributeEquals("xquery.result.exist.2", null);
-        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).get(0).assertContentEquals(XML_SNIPPET);
+        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_NO_MATCH).
+                get(0).
+                assertContentEquals(XML_SNIPPET);
     }
 
     @Test(expected = java.lang.AssertionError.class)
     public void testMultipleXPathForContent() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
         testRunner.setProperty("some.property.1", "/*:fruitbasket/fruit[1]");
         testRunner.setProperty("some.property.2", "/*:fruitbasket/fruit[2]");
 
@@ -504,71 +577,98 @@ public class TestEvaluateXQuery {
 
     @Test
     public void testWriteStringToAttribute() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
-        testRunner.setProperty("xquery.result2", "/*:fruitbasket/fruit[1]/name/text()");
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
+        testRunner.
+                setProperty("xquery.result2", "/*:fruitbasket/fruit[1]/name/text()");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0);
         out.assertAttributeEquals("xquery.result2", "apple");
-        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0).assertContentEquals(XML_SNIPPET);
+        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0).
+                assertContentEquals(XML_SNIPPET);
     }
 
     @Test
     public void testWriteStringToContent() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
-        testRunner.setProperty("some.property", "/*:fruitbasket/fruit[1]/name/text()");
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
+        testRunner.
+                setProperty("some.property", "/*:fruitbasket/fruit[1]/name/text()");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0);
         final byte[] outData = testRunner.getContentAsByteArray(out);
         final String outXml = new String(outData, "UTF-8");
-        assertTrue(outXml.trim().equals("apple"));
+        assertTrue(outXml.trim().
+                equals("apple"));
     }
 
     @Test
     public void testWriteXmlToAttribute() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("some.property", "/*:fruitbasket/fruit[1]/name");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0);
         final String outXml = out.getAttribute("some.property");
-        assertTrue(outXml.contains("<name xmlns:ns=\"http://namespace/1\">apple</name>"));
-        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0).assertContentEquals(XML_SNIPPET);
+        assertTrue(outXml.
+                contains("<name xmlns:ns=\"http://namespace/1\">apple</name>"));
+        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0).
+                assertContentEquals(XML_SNIPPET);
     }
 
     @Test
     public void testWriteXmlToContent() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
         testRunner.setProperty("some.property", "/*:fruitbasket/fruit[1]/name");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0);
         final byte[] outData = testRunner.getContentAsByteArray(out);
         final String outXml = new String(outData, "UTF-8");
-        assertTrue(outXml.contains("<name xmlns:ns=\"http://namespace/1\">apple</name>"));
+        assertTrue(outXml.
+                contains("<name xmlns:ns=\"http://namespace/1\">apple</name>"));
     }
 
     @Test
     public void testMatchesMultipleStringContent() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
         testRunner.setProperty("some.property", "//fruit/name/text()");
 
         testRunner.enqueue(XML_SNIPPET);
@@ -576,7 +676,8 @@ public class TestEvaluateXQuery {
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 7);
 
-        final List<MockFlowFile> flowFilesForRelMatch = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH);
+        final List<MockFlowFile> flowFilesForRelMatch = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH);
         for (int i = 0; i < flowFilesForRelMatch.size(); i++) {
 
             final MockFlowFile out = flowFilesForRelMatch.get(i);
@@ -588,8 +689,10 @@ public class TestEvaluateXQuery {
 
     @Test
     public void testMatchesMultipleStringAttribute() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("some.property", "//fruit/name/text()");
 
         testRunner.enqueue(XML_SNIPPET);
@@ -597,19 +700,26 @@ public class TestEvaluateXQuery {
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 1);
 
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0);
 
         for (int i = 0; i < fruitNames.length; i++) {
-            final String outXml = out.getAttribute("some.property." + ((int) i + 1));
+            final String outXml = out.
+                    getAttribute("some.property." + ((int) i + 1));
             assertEquals(fruitNames[i], outXml.trim());
         }
-        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0).assertContentEquals(XML_SNIPPET);
+        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0).
+                assertContentEquals(XML_SNIPPET);
     }
 
     @Test
     public void testMatchesMultipleXmlContent() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_CONTENT);
         testRunner.setProperty("some.property", "//fruit/name");
 
         testRunner.enqueue(XML_SNIPPET);
@@ -617,7 +727,8 @@ public class TestEvaluateXQuery {
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 7);
 
-        final List<MockFlowFile> flowFilesForRelMatch = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH);
+        final List<MockFlowFile> flowFilesForRelMatch = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH);
         for (int i = 0; i < flowFilesForRelMatch.size(); i++) {
 
             final MockFlowFile out = flowFilesForRelMatch.get(i);
@@ -630,8 +741,10 @@ public class TestEvaluateXQuery {
 
     @Test
     public void testMatchesMultipleXmlAttribute() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXQuery());
-        testRunner.setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXQuery());
+        testRunner.
+                setProperty(EvaluateXQuery.DESTINATION, EvaluateXQuery.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("some.property", "//fruit/name");
 
         testRunner.enqueue(XML_SNIPPET);
@@ -639,13 +752,18 @@ public class TestEvaluateXQuery {
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXQuery.REL_MATCH, 1);
 
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0);
 
         for (int i = 0; i < fruitNames.length; i++) {
-            final String outXml = out.getAttribute("some.property." + ((int) i + 1));
+            final String outXml = out.
+                    getAttribute("some.property." + ((int) i + 1));
             String expectedXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><name xmlns:ns=\"http://namespace/1\">" + fruitNames[i] + "</name>";
             assertEquals(expectedXml, outXml.trim());
         }
-        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).get(0).assertContentEquals(XML_SNIPPET);
+        testRunner.getFlowFilesForRelationship(EvaluateXQuery.REL_MATCH).
+                get(0).
+                assertContentEquals(XML_SNIPPET);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java
index 897973c..0907f38 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteProcess.java
@@ -34,43 +34,49 @@ public class TestExecuteProcess {
         final List<String> nullArgs = ExecuteProcess.splitArgs(null);
         assertNotNull(nullArgs);
         assertTrue(nullArgs.isEmpty());
-        
+
         final List<String> zeroArgs = ExecuteProcess.splitArgs("  ");
         assertNotNull(zeroArgs);
         assertTrue(zeroArgs.isEmpty());
-        
+
         final List<String> singleArg = ExecuteProcess.splitArgs("    hello   ");
         assertEquals(1, singleArg.size());
         assertEquals("hello", singleArg.get(0));
-        
-        final List<String> twoArg = ExecuteProcess.splitArgs("   hello    good-bye   ");
+
+        final List<String> twoArg = ExecuteProcess.
+                splitArgs("   hello    good-bye   ");
         assertEquals(2, twoArg.size());
         assertEquals("hello", twoArg.get(0));
         assertEquals("good-bye", twoArg.get(1));
-        
-        final List<String> singleQuotedArg = ExecuteProcess.splitArgs("  \"hello\" ");
+
+        final List<String> singleQuotedArg = ExecuteProcess.
+                splitArgs("  \"hello\" ");
         assertEquals(1, singleQuotedArg.size());
         assertEquals("hello", singleQuotedArg.get(0));
-        
-        final List<String> twoQuotedArg = ExecuteProcess.splitArgs("   hello \"good   bye\"");
+
+        final List<String> twoQuotedArg = ExecuteProcess.
+                splitArgs("   hello \"good   bye\"");
         assertEquals(2, twoQuotedArg.size());
         assertEquals("hello", twoQuotedArg.get(0));
         assertEquals("good   bye", twoQuotedArg.get(1));
     }
-    
+
     @Test
     public void testEcho() {
-        System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi", "TRACE");
-        
-        final TestRunner runner = TestRunners.newTestRunner(ExecuteProcess.class);
+        System.
+                setProperty("org.slf4j.simpleLogger.log.org.apache.nifi", "TRACE");
+
+        final TestRunner runner = TestRunners.
+                newTestRunner(ExecuteProcess.class);
         runner.setProperty(ExecuteProcess.COMMAND, "echo");
         runner.setProperty(ExecuteProcess.COMMAND_ARGUMENTS, "test-args");
         runner.setProperty(ExecuteProcess.BATCH_DURATION, "500 millis");
-        
+
         runner.run();
 
-        final List<MockFlowFile> flowFiles = runner.getFlowFilesForRelationship(ExecuteProcess.REL_SUCCESS);
-        for ( final MockFlowFile flowFile : flowFiles ) {
+        final List<MockFlowFile> flowFiles = runner.
+                getFlowFilesForRelationship(ExecuteProcess.REL_SUCCESS);
+        for (final MockFlowFile flowFile : flowFiles) {
             System.out.println(flowFile);
             System.out.println(new String(flowFile.toByteArray()));
         }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java
index 755637a..f95d644 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExecuteStreamCommand.java
@@ -48,8 +48,10 @@ public class TestExecuteStreamCommand {
     public static void init() {
         System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "info");
         System.setProperty("org.slf4j.simpleLogger.showDateTime", "true");
-        System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.ExecuteStreamCommand", "debug");
-        System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.TestExecuteStreamCommand", "debug");
+        System.
+                setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.ExecuteStreamCommand", "debug");
+        System.
+                setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.TestExecuteStreamCommand", "debug");
         LOGGER = LoggerFactory.getLogger(TestExecuteStreamCommand.class);
     }
 
@@ -59,32 +61,46 @@ public class TestExecuteStreamCommand {
         File dummy = new File("src/test/resources/ExecuteCommand/1000bytes.txt");
         String jarPath = exJar.getAbsolutePath();
         exJar.setExecutable(true);
-        final TestRunner controller = TestRunners.newTestRunner(ExecuteStreamCommand.class);
+        final TestRunner controller = TestRunners.
+                newTestRunner(ExecuteStreamCommand.class);
         controller.setValidateExpressionUsage(false);
         controller.enqueue(dummy.toPath());
         controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
-        controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" + jarPath);
+        controller.
+                setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" + jarPath);
         controller.run(1);
-        controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-        controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+        controller.
+                assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
+        controller.
+                assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
 
-        List<MockFlowFile> flowFiles = controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+        List<MockFlowFile> flowFiles = controller.
+                getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
         MockFlowFile outputFlowFile = flowFiles.get(0);
         byte[] byteArray = outputFlowFile.toByteArray();
         String result = new String(byteArray);
-        assertTrue("Test was a success\r\n".equals(result) || "Test was a success\n".equals(result));
+        assertTrue("Test was a success\r\n".equals(result) || "Test was a success\n".
+                equals(result));
         assertEquals("0", outputFlowFile.getAttribute("execution.status"));
         assertEquals("java", outputFlowFile.getAttribute("execution.command"));
-        assertEquals("-jar;", outputFlowFile.getAttribute("execution.command.args").substring(0, 5));
+        assertEquals("-jar;", outputFlowFile.
+                getAttribute("execution.command.args").
+                substring(0, 5));
         String attribute = outputFlowFile.getAttribute("execution.command.args");
         String expected = "src" + File.separator + "test" + File.separator + "resources" + File.separator + "ExecuteCommand" + File.separator
                 + "TestSuccess.jar";
-        assertEquals(expected, attribute.substring(attribute.length() - expected.length()));
-
-        MockFlowFile originalFlowFile = controller.getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP).get(0);
-        assertEquals(outputFlowFile.getAttribute("execution.status"), originalFlowFile.getAttribute("execution.status"));
-        assertEquals(outputFlowFile.getAttribute("execution.command"), originalFlowFile.getAttribute("execution.command"));
-        assertEquals(outputFlowFile.getAttribute("execution.command.args"), originalFlowFile.getAttribute("execution.command.args"));
+        assertEquals(expected, attribute.
+                substring(attribute.length() - expected.length()));
+
+        MockFlowFile originalFlowFile = controller.
+                getFlowFilesForRelationship(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP).
+                get(0);
+        assertEquals(outputFlowFile.getAttribute("execution.status"), originalFlowFile.
+                getAttribute("execution.status"));
+        assertEquals(outputFlowFile.getAttribute("execution.command"), originalFlowFile.
+                getAttribute("execution.command"));
+        assertEquals(outputFlowFile.getAttribute("execution.command.args"), originalFlowFile.
+                getAttribute("execution.command.args"));
     }
 
     @Test
@@ -93,17 +109,25 @@ public class TestExecuteStreamCommand {
         File dummy = new File("src/test/resources/ExecuteCommand/1000bytes.txt");
         String jarPath = exJar.getAbsolutePath();
         exJar.setExecutable(true);
-        final TestRunner controller = TestRunners.newTestRunner(ExecuteStreamCommand.class);
+        final TestRunner controller = TestRunners.
+                newTestRunner(ExecuteStreamCommand.class);
         controller.setValidateExpressionUsage(false);
         controller.enqueue(dummy.toPath());
         controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
-        controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" + jarPath);
+        controller.
+                setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" + jarPath);
         controller.run(1);
-        controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-        controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
-        List<MockFlowFile> flowFiles = controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
-        assertEquals(0, flowFiles.get(0).getSize());
-        assertEquals("Error: Unable to access jarfile", flowFiles.get(0).getAttribute("execution.error").substring(0, 31));
+        controller.
+                assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
+        controller.
+                assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+        List<MockFlowFile> flowFiles = controller.
+                getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+        assertEquals(0, flowFiles.get(0).
+                getSize());
+        assertEquals("Error: Unable to access jarfile", flowFiles.get(0).
+                getAttribute("execution.error").
+                substring(0, 31));
     }
 
     @Test
@@ -122,20 +146,28 @@ public class TestExecuteStreamCommand {
         fos.close();
         String jarPath = exJar.getAbsolutePath();
         exJar.setExecutable(true);
-        final TestRunner controller = TestRunners.newTestRunner(ExecuteStreamCommand.class);
+        final TestRunner controller = TestRunners.
+                newTestRunner(ExecuteStreamCommand.class);
         controller.setValidateExpressionUsage(false);
         controller.enqueue(dummy100MBytes.toPath());
         controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
-        controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" + jarPath);
+        controller.
+                setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" + jarPath);
         controller.run(1);
-        controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-        controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
-        List<MockFlowFile> flowFiles = controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
-        byte[] byteArray = flowFiles.get(0).toByteArray();
+        controller.
+                assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
+        controller.
+                assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+        List<MockFlowFile> flowFiles = controller.
+                getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+        byte[] byteArray = flowFiles.get(0).
+                toByteArray();
         String result = new String(byteArray);
 
-        assertTrue(result.contains(File.separator + "nifi-standard-processors:ModifiedResult\r\n")
-                || result.contains(File.separator + "nifi-standard-processors:ModifiedResult\n"));
+        assertTrue(result.
+                contains(File.separator + "nifi-standard-processors:ModifiedResult\r\n")
+                || result.
+                contains(File.separator + "nifi-standard-processors:ModifiedResult\n"));
     }
 
     @Test
@@ -144,20 +176,28 @@ public class TestExecuteStreamCommand {
         File dummy = new File("src/test/resources/ExecuteCommand/1000bytes.txt");
         String jarPath = exJar.getAbsolutePath();
         exJar.setExecutable(true);
-        final TestRunner controller = TestRunners.newTestRunner(ExecuteStreamCommand.class);
+        final TestRunner controller = TestRunners.
+                newTestRunner(ExecuteStreamCommand.class);
         controller.setValidateExpressionUsage(false);
         controller.enqueue(dummy.toPath());
         controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target");
         controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "java");
-        controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" + jarPath);
+        controller.
+                setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "-jar;" + jarPath);
         controller.run(1);
-        controller.assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
-        controller.assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
-        List<MockFlowFile> flowFiles = controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
-        byte[] byteArray = flowFiles.get(0).toByteArray();
+        controller.
+                assertTransferCount(ExecuteStreamCommand.ORIGINAL_RELATIONSHIP, 1);
+        controller.
+                assertTransferCount(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP, 1);
+        List<MockFlowFile> flowFiles = controller.
+                getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+        byte[] byteArray = flowFiles.get(0).
+                toByteArray();
         String result = new String(byteArray);
-        assertTrue(result.contains(File.separator + "nifi-standard-processors" + File.separator + "target:ModifiedResult\r\n")
-                || result.contains(File.separator + "nifi-standard-processors" + File.separator + "target:ModifiedResult\n"));
+        assertTrue(result.
+                contains(File.separator + "nifi-standard-processors" + File.separator + "target:ModifiedResult\r\n")
+                || result.
+                contains(File.separator + "nifi-standard-processors" + File.separator + "target:ModifiedResult\n"));
     }
 
     // this is dependent on window with cygwin...so it's not enabled
@@ -167,7 +207,8 @@ public class TestExecuteStreamCommand {
         File testFile = new File("target/test.txt");
         testFile.delete();
         File dummy = new File("src/test/resources/ExecuteCommand/1000bytes.txt");
-        final TestRunner controller = TestRunners.newTestRunner(ExecuteStreamCommand.class);
+        final TestRunner controller = TestRunners.
+                newTestRunner(ExecuteStreamCommand.class);
         controller.setValidateExpressionUsage(false);
         controller.enqueue(dummy.toPath());
         controller.enqueue(dummy.toPath());
@@ -176,13 +217,17 @@ public class TestExecuteStreamCommand {
         controller.enqueue(dummy.toPath());
         controller.setProperty(ExecuteStreamCommand.WORKING_DIR, "target/xx1");
         controller.setThreadCount(6);
-        controller.setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "c:\\cygwin\\bin\\touch");
-        controller.setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "test.txt");
+        controller.
+                setProperty(ExecuteStreamCommand.EXECUTION_COMMAND, "c:\\cygwin\\bin\\touch");
+        controller.
+                setProperty(ExecuteStreamCommand.EXECUTION_ARGUMENTS, "test.txt");
         controller.assertValid();
         controller.run(6);
-        List<MockFlowFile> flowFiles = controller.getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
+        List<MockFlowFile> flowFiles = controller.
+                getFlowFilesForRelationship(ExecuteStreamCommand.OUTPUT_STREAM_RELATIONSHIP);
         assertEquals(5, flowFiles.size());
-        assertEquals(0, flowFiles.get(0).getSize());
+        assertEquals(0, flowFiles.get(0).
+                getSize());
 
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExtractText.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExtractText.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExtractText.java
index 2025767..045a4f9 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExtractText.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestExtractText.java
@@ -37,13 +37,15 @@ public class TestExtractText {
     @Test
     public void testProcessor() throws Exception {
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new ExtractText());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new ExtractText());
 
         testRunner.setProperty("regex.result1", "(?s)(.*)");
         testRunner.setProperty("regex.result2", "(?s).*(bar1).*");
-        testRunner.setProperty("regex.result3", "(?s).*?(bar\\d).*");	// reluctant gets first
-        testRunner.setProperty("regex.result4", "(?s).*?(?:bar\\d).*?(bar\\d).*?(bar3).*"); // reluctant w/ repeated pattern gets second
-        testRunner.setProperty("regex.result5", "(?s).*(bar\\d).*");	// greedy gets last
+        testRunner.setProperty("regex.result3", "(?s).*?(bar\\d).*"); // reluctant gets first
+        testRunner.
+                setProperty("regex.result4", "(?s).*?(?:bar\\d).*?(bar\\d).*?(bar3).*"); // reluctant w/ repeated pattern gets second
+        testRunner.setProperty("regex.result5", "(?s).*(bar\\d).*"); // greedy gets last
         testRunner.setProperty("regex.result6", "(?s)^(.*)$");
         testRunner.setProperty("regex.result7", "(?s)(XXX)");
 
@@ -51,7 +53,9 @@ public class TestExtractText {
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(ExtractText.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(ExtractText.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(ExtractText.REL_MATCH).
+                get(0);
         out.assertAttributeEquals("regex.result1", SAMPLE_STRING);
         out.assertAttributeEquals("regex.result2", "bar1");
         out.assertAttributeEquals("regex.result3", "bar1");
@@ -68,15 +72,16 @@ public class TestExtractText {
     @Test
     public void testProcessorWithDotall() throws Exception {
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new ExtractText());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new ExtractText());
 
         testRunner.setProperty(ExtractText.DOTALL, "true");
 
         testRunner.setProperty("regex.result1", "(.*)");
         testRunner.setProperty("regex.result2", ".*(bar1).*");
-        testRunner.setProperty("regex.result3", ".*?(bar\\d).*");	// reluctant gets first
+        testRunner.setProperty("regex.result3", ".*?(bar\\d).*"); // reluctant gets first
         testRunner.setProperty("regex.result4", ".*?(?:bar\\d).*?(bar\\d).*"); // reluctant w/ repeated pattern gets second
-        testRunner.setProperty("regex.result5", ".*(bar\\d).*");	// greedy gets last
+        testRunner.setProperty("regex.result5", ".*(bar\\d).*"); // greedy gets last
         testRunner.setProperty("regex.result6", "^(.*)$");
         testRunner.setProperty("regex.result7", "^(XXX)$");
 
@@ -84,7 +89,9 @@ public class TestExtractText {
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(ExtractText.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(ExtractText.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(ExtractText.REL_MATCH).
+                get(0);
         out.assertAttributeEquals("regex.result1", SAMPLE_STRING);
         out.assertAttributeEquals("regex.result2", "bar1");
         out.assertAttributeEquals("regex.result3", "bar1");
@@ -98,7 +105,8 @@ public class TestExtractText {
     @Test
     public void testProcessorWithMultiline() throws Exception {
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new ExtractText());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new ExtractText());
 
         testRunner.setProperty(ExtractText.MULTILINE, "true");
 
@@ -116,22 +124,25 @@ public class TestExtractText {
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(ExtractText.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(ExtractText.REL_MATCH).get(0);
-        out.assertAttributeEquals("regex.result1", "foo"); 	// matches everything on the first line
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(ExtractText.REL_MATCH).
+                get(0);
+        out.assertAttributeEquals("regex.result1", "foo"); // matches everything on the first line
         out.assertAttributeEquals("regex.result2", "bar1");
         out.assertAttributeEquals("regex.result3", "bar1");
-        out.assertAttributeEquals("regex.result4", null);	// null because no line has two bar's
+        out.assertAttributeEquals("regex.result4", null); // null because no line has two bar's
         out.assertAttributeEquals("regex.result4b", "bar2"); // included newlines in regex
-        out.assertAttributeEquals("regex.result5", "bar1");	//still gets first because no lines with multiple bar's 
-        out.assertAttributeEquals("regex.result5b", "bar3");// included newlines in regex
-        out.assertAttributeEquals("regex.result6", "foo");	// matches all of first line
-        out.assertAttributeEquals("regex.result7", null);	// no match
+        out.assertAttributeEquals("regex.result5", "bar1"); //still gets first because no lines with multiple bar's
+        out.assertAttributeEquals("regex.result5b", "bar3"); // included newlines in regex
+        out.assertAttributeEquals("regex.result6", "foo"); // matches all of first line
+        out.assertAttributeEquals("regex.result7", null); // no match
     }
 
     @Test
     public void testProcessorWithMultilineAndDotall() throws Exception {
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new ExtractText());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new ExtractText());
 
         testRunner.setProperty(ExtractText.MULTILINE, "true");
         testRunner.setProperty(ExtractText.DOTALL, "true");
@@ -150,7 +161,9 @@ public class TestExtractText {
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(ExtractText.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(ExtractText.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(ExtractText.REL_MATCH).
+                get(0);
 
         out.assertAttributeEquals("regex.result1", SAMPLE_STRING);
         out.assertAttributeEquals("regex.result2", "bar1");
@@ -166,7 +179,8 @@ public class TestExtractText {
     @Test
     public void testProcessorWithNoMatches() throws Exception {
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new ExtractText());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new ExtractText());
 
         testRunner.setProperty(ExtractText.MULTILINE, "true");
         testRunner.setProperty(ExtractText.DOTALL, "true");
@@ -183,7 +197,9 @@ public class TestExtractText {
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(ExtractText.REL_NO_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(ExtractText.REL_NO_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(ExtractText.REL_NO_MATCH).
+                get(0);
 
         out.assertAttributeEquals("regex.result1", null);
         out.assertAttributeEquals("regex.result2", null);
@@ -198,7 +214,8 @@ public class TestExtractText {
 
     @Test(expected = java.lang.AssertionError.class)
     public void testNoCaptureGroups() throws UnsupportedEncodingException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new ExtractText());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new ExtractText());
         testRunner.setProperty("regex.result1", ".*");
         testRunner.enqueue(SAMPLE_STRING.getBytes("UTF-8"));
         testRunner.run();
@@ -206,7 +223,8 @@ public class TestExtractText {
 
     @Test
     public void testNoFlowFile() throws UnsupportedEncodingException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new ExtractText());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new ExtractText());
         testRunner.run();
         testRunner.assertAllFlowFilesTransferred(ExtractText.REL_MATCH, 0);
 
@@ -214,7 +232,8 @@ public class TestExtractText {
 
     @Test
     public void testMatchOutsideBuffer() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new ExtractText());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new ExtractText());
 
         testRunner.setProperty(ExtractText.MAX_BUFFER_SIZE, "3 B");//only read the first 3 chars ("foo")
 
@@ -225,10 +244,12 @@ public class TestExtractText {
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(ExtractText.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(ExtractText.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(ExtractText.REL_MATCH).
+                get(0);
 
         out.assertAttributeEquals("regex.result1", "foo");
-        out.assertAttributeEquals("regex.result2", null); 	// null because outsk
+        out.assertAttributeEquals("regex.result2", null); // null because outsk
     }
 
     @Test
@@ -246,53 +267,63 @@ public class TestExtractText {
         // UNIX_LINES
         testRunner = TestRunners.newTestRunner(processor);
         testRunner.setProperty(ExtractText.UNIX_LINES, "true");
-        assertEquals(Pattern.UNIX_LINES, processor.getCompileFlags(testRunner.getProcessContext()));
+        assertEquals(Pattern.UNIX_LINES, processor.getCompileFlags(testRunner.
+                getProcessContext()));
 
         // CASE_INSENSITIVE
         testRunner = TestRunners.newTestRunner(processor);
         testRunner.setProperty(ExtractText.CASE_INSENSITIVE, "true");
-        assertEquals(Pattern.CASE_INSENSITIVE, processor.getCompileFlags(testRunner.getProcessContext()));
+        assertEquals(Pattern.CASE_INSENSITIVE, processor.
+                getCompileFlags(testRunner.getProcessContext()));
 
         // COMMENTS
         testRunner = TestRunners.newTestRunner(processor);
         testRunner.setProperty(ExtractText.COMMENTS, "true");
-        assertEquals(Pattern.COMMENTS, processor.getCompileFlags(testRunner.getProcessContext()));
+        assertEquals(Pattern.COMMENTS, processor.getCompileFlags(testRunner.
+                getProcessContext()));
 
         // MULTILINE
         testRunner = TestRunners.newTestRunner(processor);
         testRunner.setProperty(ExtractText.MULTILINE, "true");
-        assertEquals(Pattern.MULTILINE, processor.getCompileFlags(testRunner.getProcessContext()));
+        assertEquals(Pattern.MULTILINE, processor.getCompileFlags(testRunner.
+                getProcessContext()));
 
         // LITERAL
         testRunner = TestRunners.newTestRunner(processor);
         testRunner.setProperty(ExtractText.LITERAL, "true");
-        assertEquals(Pattern.LITERAL, processor.getCompileFlags(testRunner.getProcessContext()));
+        assertEquals(Pattern.LITERAL, processor.getCompileFlags(testRunner.
+                getProcessContext()));
 
         // DOTALL
         testRunner = TestRunners.newTestRunner(processor);
         testRunner.setProperty(ExtractText.DOTALL, "true");
-        assertEquals(Pattern.DOTALL, processor.getCompileFlags(testRunner.getProcessContext()));
+        assertEquals(Pattern.DOTALL, processor.getCompileFlags(testRunner.
+                getProcessContext()));
 
         // UNICODE_CASE
         testRunner = TestRunners.newTestRunner(processor);
         testRunner.setProperty(ExtractText.UNICODE_CASE, "true");
-        assertEquals(Pattern.UNICODE_CASE, processor.getCompileFlags(testRunner.getProcessContext()));
+        assertEquals(Pattern.UNICODE_CASE, processor.getCompileFlags(testRunner.
+                getProcessContext()));
 
         // CANON_EQ
         testRunner = TestRunners.newTestRunner(processor);
         testRunner.setProperty(ExtractText.CANON_EQ, "true");
-        assertEquals(Pattern.CANON_EQ, processor.getCompileFlags(testRunner.getProcessContext()));
+        assertEquals(Pattern.CANON_EQ, processor.getCompileFlags(testRunner.
+                getProcessContext()));
 
         // UNICODE_CHARACTER_CLASS
         testRunner = TestRunners.newTestRunner(processor);
         testRunner.setProperty(ExtractText.UNICODE_CHARACTER_CLASS, "true");
-        assertEquals(Pattern.UNICODE_CHARACTER_CLASS, processor.getCompileFlags(testRunner.getProcessContext()));
+        assertEquals(Pattern.UNICODE_CHARACTER_CLASS, processor.
+                getCompileFlags(testRunner.getProcessContext()));
 
         // DOTALL and MULTILINE
         testRunner = TestRunners.newTestRunner(processor);
         testRunner.setProperty(ExtractText.DOTALL, "true");
         testRunner.setProperty(ExtractText.MULTILINE, "true");
-        assertEquals(Pattern.DOTALL | Pattern.MULTILINE, processor.getCompileFlags(testRunner.getProcessContext()));
+        assertEquals(Pattern.DOTALL | Pattern.MULTILINE, processor.
+                getCompileFlags(testRunner.getProcessContext()));
     }
 
     @Test
@@ -301,7 +332,6 @@ public class TestExtractText {
         final ExtractText processor = new ExtractText();
         final TestRunner testRunner = TestRunners.newTestRunner(processor);
 
-//		testRunner.setProperty("regex.result1", "(.*)");
         testRunner.enqueue("foo".getBytes("UTF-8"));
         testRunner.run();
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetFile.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetFile.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetFile.java
index 018cbdc..f0526d9 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetFile.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetFile.java
@@ -46,7 +46,8 @@ public class TestGetFile {
     public void testFilePickedUp() throws IOException {
         final File directory = new File("target/test/data/in");
         deleteDirectory(directory);
-        assertTrue("Unable to create test data directory " + directory.getAbsolutePath(), directory.exists() || directory.mkdirs());
+        assertTrue("Unable to create test data directory " + directory.
+                getAbsolutePath(), directory.exists() || directory.mkdirs());
 
         final File inFile = new File("src/test/resources/hello.txt");
         final Path inPath = inFile.toPath();
@@ -61,12 +62,16 @@ public class TestGetFile {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(GetFile.REL_SUCCESS, 1);
-        final List<MockFlowFile> successFiles = runner.getFlowFilesForRelationship(GetFile.REL_SUCCESS);
-        successFiles.get(0).assertContentEquals("Hello, World!".getBytes("UTF-8"));
+        final List<MockFlowFile> successFiles = runner.
+                getFlowFilesForRelationship(GetFile.REL_SUCCESS);
+        successFiles.get(0).
+                assertContentEquals("Hello, World!".getBytes("UTF-8"));
 
-        final String path = successFiles.get(0).getAttribute("path");
+        final String path = successFiles.get(0).
+                getAttribute("path");
         assertEquals("/", path);
-        final String absolutePath = successFiles.get(0).getAttribute(CoreAttributes.ABSOLUTE_PATH.key());
+        final String absolutePath = successFiles.get(0).
+                getAttribute(CoreAttributes.ABSOLUTE_PATH.key());
         assertEquals(absTargetPathStr, absolutePath);
     }
 
@@ -77,7 +82,8 @@ public class TestGetFile {
                     deleteDirectory(file);
                 }
 
-                assertTrue("Could not delete " + file.getAbsolutePath(), file.delete());
+                assertTrue("Could not delete " + file.getAbsolutePath(), file.
+                        delete());
             }
         }
     }
@@ -89,7 +95,8 @@ public class TestGetFile {
 
         final File directory = new File("target/test/data/in/" + dirStruc);
         deleteDirectory(directory);
-        assertTrue("Unable to create test data directory " + directory.getAbsolutePath(), directory.exists() || directory.mkdirs());
+        assertTrue("Unable to create test data directory " + directory.
+                getAbsolutePath(), directory.exists() || directory.mkdirs());
 
         final File inFile = new File("src/test/resources/hello.txt");
         final Path inPath = inFile.toPath();
@@ -98,12 +105,15 @@ public class TestGetFile {
         Files.copy(inPath, targetPath);
 
         final TestRunner runner = TestRunners.newTestRunner(new GetFile());
-        runner.setProperty(GetFile.DIRECTORY, "target/test/data/in/${now():format('yyyy/MM/dd')}");
+        runner.
+                setProperty(GetFile.DIRECTORY, "target/test/data/in/${now():format('yyyy/MM/dd')}");
         runner.run();
 
         runner.assertAllFlowFilesTransferred(GetFile.REL_SUCCESS, 1);
-        final List<MockFlowFile> successFiles = runner.getFlowFilesForRelationship(GetFile.REL_SUCCESS);
-        successFiles.get(0).assertContentEquals("Hello, World!".getBytes("UTF-8"));
+        final List<MockFlowFile> successFiles = runner.
+                getFlowFilesForRelationship(GetFile.REL_SUCCESS);
+        successFiles.get(0).
+                assertContentEquals("Hello, World!".getBytes("UTF-8"));
     }
 
     @Test
@@ -113,14 +123,16 @@ public class TestGetFile {
 
         final File directory = new File("target/test/data/in/" + dirStruc);
         deleteDirectory(new File("target/test/data/in"));
-        assertTrue("Unable to create test data directory " + directory.getAbsolutePath(), directory.exists() || directory.mkdirs());
+        assertTrue("Unable to create test data directory " + directory.
+                getAbsolutePath(), directory.exists() || directory.mkdirs());
 
         final File inFile = new File("src/test/resources/hello.txt");
         final Path inPath = inFile.toPath();
         final File destFile = new File(directory, inFile.getName());
         final Path targetPath = destFile.toPath();
         final Path absTargetPath = targetPath.toAbsolutePath();
-        final String absTargetPathStr = absTargetPath.getParent().toString() + "/";
+        final String absTargetPathStr = absTargetPath.getParent().
+                toString() + "/";
         Files.copy(inPath, targetPath);
 
         final TestRunner runner = TestRunners.newTestRunner(new GetFile());
@@ -128,12 +140,16 @@ public class TestGetFile {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(GetFile.REL_SUCCESS, 1);
-        final List<MockFlowFile> successFiles = runner.getFlowFilesForRelationship(GetFile.REL_SUCCESS);
-        successFiles.get(0).assertContentEquals("Hello, World!".getBytes("UTF-8"));
+        final List<MockFlowFile> successFiles = runner.
+                getFlowFilesForRelationship(GetFile.REL_SUCCESS);
+        successFiles.get(0).
+                assertContentEquals("Hello, World!".getBytes("UTF-8"));
 
-        final String path = successFiles.get(0).getAttribute("path");
+        final String path = successFiles.get(0).
+                getAttribute("path");
         assertEquals(dirStruc, path.replace('\\', '/'));
-        final String absolutePath = successFiles.get(0).getAttribute(CoreAttributes.ABSOLUTE_PATH.key());
+        final String absolutePath = successFiles.get(0).
+                getAttribute(CoreAttributes.ABSOLUTE_PATH.key());
         assertEquals(absTargetPathStr, absolutePath);
     }
 
@@ -141,7 +157,8 @@ public class TestGetFile {
     public void testAttributes() throws IOException {
         final File directory = new File("target/test/data/in/");
         deleteDirectory(directory);
-        assertTrue("Unable to create test data directory " + directory.getAbsolutePath(), directory.exists() || directory.mkdirs());
+        assertTrue("Unable to create test data directory " + directory.
+                getAbsolutePath(), directory.exists() || directory.mkdirs());
 
         final File inFile = new File("src/test/resources/hello.txt");
         final Path inPath = inFile.toPath();
@@ -158,7 +175,8 @@ public class TestGetFile {
 
         boolean verifyPermissions = false;
         try {
-            Files.setPosixFilePermissions(targetPath, PosixFilePermissions.fromString("r--r-----"));
+            Files.setPosixFilePermissions(targetPath, PosixFilePermissions.
+                    fromString("r--r-----"));
             verifyPermissions = true;
         } catch (Exception donothing) {
         }
@@ -168,19 +186,22 @@ public class TestGetFile {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(GetFile.REL_SUCCESS, 1);
-        final List<MockFlowFile> successFiles = runner.getFlowFilesForRelationship(GetFile.REL_SUCCESS);
+        final List<MockFlowFile> successFiles = runner.
+                getFlowFilesForRelationship(GetFile.REL_SUCCESS);
 
         if (verifyLastModified) {
             try {
                 final DateFormat formatter = new SimpleDateFormat(GetFile.FILE_MODIFY_DATE_ATTR_FORMAT, Locale.US);
-                final Date fileModifyTime = formatter.parse(successFiles.get(0).getAttribute("file.lastModifiedTime"));
+                final Date fileModifyTime = formatter.parse(successFiles.get(0).
+                        getAttribute("file.lastModifiedTime"));
                 assertEquals(new Date(1000000000), fileModifyTime);
             } catch (ParseException e) {
                 fail();
             }
         }
         if (verifyPermissions) {
-            successFiles.get(0).assertAttributeEquals("file.permissions", "r--r-----");
+            successFiles.get(0).
+                    assertAttributeEquals("file.permissions", "r--r-----");
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetHTTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetHTTP.java
index f52b212..7a76ffd 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetHTTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetHTTP.java
@@ -48,13 +48,15 @@ import org.junit.Test;
 public class TestGetHTTP {
 
     private TestRunner controller;
-    
+
     @BeforeClass
     public static void before() {
         System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "info");
         System.setProperty("org.slf4j.simpleLogger.showDateTime", "true");
-        System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.GetHTTP", "debug");
-        System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.TestGetHTTP", "debug");
+        System.
+                setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.GetHTTP", "debug");
+        System.
+                setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.TestGetHTTP", "debug");
         File confDir = new File("conf");
         if (!confDir.exists()) {
             confDir.mkdir();
@@ -73,43 +75,47 @@ public class TestGetHTTP {
         assertTrue(confDir.delete());
     }
 
-
     @Test
     public final void testContentModified() throws Exception {
         // set up web service
         ServletHandler handler = new ServletHandler();
         handler.addServletWithMapping(RESTServiceContentModified.class, "/*");
-        
+
         // create the service
         TestServer server = new TestServer();
         server.addHandler(handler);
-        
+
         try {
             server.startServer();
-            
+
             // this is the base url with the random port
             String destination = server.getUrl();
-            
+
             // set up NiFi mock controller
             controller = TestRunners.newTestRunner(GetHTTP.class);
             controller.setProperty(GetHTTP.CONNECTION_TIMEOUT, "5 secs");
             controller.setProperty(GetHTTP.URL, destination);
             controller.setProperty(GetHTTP.FILENAME, "testFile");
-            controller.setProperty(GetHTTP.ACCEPT_CONTENT_TYPE, "application/json");
-            
+            controller.
+                    setProperty(GetHTTP.ACCEPT_CONTENT_TYPE, "application/json");
+
             GetHTTP getHTTPProcessor = (GetHTTP) controller.getProcessor();
             assertEquals("", getHTTPProcessor.entityTagRef.get());
-            assertEquals("Thu, 01 Jan 1970 00:00:00 GMT", getHTTPProcessor.lastModifiedRef.get());
+            assertEquals("Thu, 01 Jan 1970 00:00:00 GMT", getHTTPProcessor.lastModifiedRef.
+                    get());
             controller.run(2);
 
             // verify the lastModified and entityTag are updated
             assertFalse("".equals(getHTTPProcessor.entityTagRef.get()));
-            assertFalse("Thu, 01 Jan 1970 00:00:00 GMT".equals(getHTTPProcessor.lastModifiedRef.get()));
+            assertFalse("Thu, 01 Jan 1970 00:00:00 GMT".
+                    equals(getHTTPProcessor.lastModifiedRef.get()));
             // ran twice, but got one...which is good
             controller.assertTransferCount(GetHTTP.REL_SUCCESS, 1);
 
             // verify remote.source flowfile attribute
-            controller.getFlowFilesForRelationship(GetHTTP.REL_SUCCESS).get(0).assertAttributeEquals("gethttp.remote.source", "localhost");
+            controller.getFlowFilesForRelationship(GetHTTP.REL_SUCCESS).
+                    get(0).
+                    assertAttributeEquals("gethttp.remote.source", "localhost");
 
             controller.clearTransferState();
 
@@ -147,7 +153,8 @@ public class TestGetHTTP {
             // turn off checking for Etag, turn on checking for lastModified, but change value
             RESTServiceContentModified.IGNORE_LAST_MODIFIED = false;
             RESTServiceContentModified.IGNORE_ETAG = true;
-            RESTServiceContentModified.modificationDate = System.currentTimeMillis() / 1000 * 1000 + 5000;
+            RESTServiceContentModified.modificationDate = System.
+                    currentTimeMillis() / 1000 * 1000 + 5000;
             String lastMod = getHTTPProcessor.lastModifiedRef.get();
             controller.run(2);
             // ran twice, got 1...but should have new cached etag
@@ -169,32 +176,34 @@ public class TestGetHTTP {
         for (File file : files) {
             assertTrue("Failed to delete " + file.getName(), file.delete());
         }
-        
+
         // set up web service
         ServletHandler handler = new ServletHandler();
         handler.addServletWithMapping(RESTServiceContentModified.class, "/*");
-        
+
         // create the service
         TestServer server = new TestServer();
         server.addHandler(handler);
-        
+
         try {
             server.startServer();
-            
+
             // get the server url
             String destination = server.getUrl();
-            
+
             // set up NiFi mock controller
             controller = TestRunners.newTestRunner(GetHTTP.class);
             controller.setProperty(GetHTTP.CONNECTION_TIMEOUT, "5 secs");
             controller.setProperty(GetHTTP.FILENAME, "testFile");
             controller.setProperty(GetHTTP.URL, destination);
-            controller.setProperty(GetHTTP.ACCEPT_CONTENT_TYPE, "application/json");
-            
+            controller.
+                    setProperty(GetHTTP.ACCEPT_CONTENT_TYPE, "application/json");
+
             GetHTTP getHTTPProcessor = (GetHTTP) controller.getProcessor();
-            
+
             assertEquals("", getHTTPProcessor.entityTagRef.get());
-            assertEquals("Thu, 01 Jan 1970 00:00:00 GMT", getHTTPProcessor.lastModifiedRef.get());
+            assertEquals("Thu, 01 Jan 1970 00:00:00 GMT", getHTTPProcessor.lastModifiedRef.
+                    get());
             controller.run(2);
 
             // verify the lastModified and entityTag are updated
@@ -217,7 +226,8 @@ public class TestGetHTTP {
             assertEquals(etag, props.getProperty(GetHTTP.ETAG));
             assertEquals(lastMod, props.getProperty(GetHTTP.LAST_MODIFIED));
 
-            ProcessorInitializationContext pic = new MockProcessorInitializationContext(controller.getProcessor(),
+            ProcessorInitializationContext pic = new MockProcessorInitializationContext(controller.
+                    getProcessor(),
                     (MockProcessContext) controller.getProcessContext());
             // init causes read from file
             getHTTPProcessor.init(pic);
@@ -249,14 +259,14 @@ public class TestGetHTTP {
         // set up web service
         ServletHandler handler = new ServletHandler();
         handler.addServletWithMapping(UserAgentTestingServlet.class, "/*");
-        
+
         // create the service
         TestServer server = new TestServer();
         server.addHandler(handler);
-        
+
         try {
             server.startServer();
-            
+
             String destination = server.getUrl();
 
             // set up NiFi mock controller
@@ -264,8 +274,9 @@ public class TestGetHTTP {
             controller.setProperty(GetHTTP.CONNECTION_TIMEOUT, "5 secs");
             controller.setProperty(GetHTTP.URL, destination);
             controller.setProperty(GetHTTP.FILENAME, "testFile");
-            controller.setProperty(GetHTTP.ACCEPT_CONTENT_TYPE, "application/json");
-            
+            controller.
+                    setProperty(GetHTTP.ACCEPT_CONTENT_TYPE, "application/json");
+
             controller.run();
             controller.assertTransferCount(GetHTTP.REL_SUCCESS, 0);
 
@@ -278,63 +289,70 @@ public class TestGetHTTP {
             server.shutdownServer();
         }
     }
-    
+
     private Map<String, String> getSslProperties() {
         Map<String, String> props = new HashMap<String, String>();
-        props.put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
-        props.put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
+        props.
+                put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
+        props.
+                put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
         props.put(StandardSSLContextService.KEYSTORE_TYPE.getName(), "JKS");
-        props.put(StandardSSLContextService.TRUSTSTORE.getName(), "src/test/resources/localhost-ts.jks");
-        props.put(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName(), "localtest");
+        props.
+                put(StandardSSLContextService.TRUSTSTORE.getName(), "src/test/resources/localhost-ts.jks");
+        props.
+                put(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName(), "localtest");
         props.put(StandardSSLContextService.TRUSTSTORE_TYPE.getName(), "JKS");
         return props;
     }
-    
+
     private void useSSLContextService() {
         final SSLContextService service = new StandardSSLContextService();
         try {
-            controller.addControllerService("ssl-service", service, getSslProperties());
+            controller.
+                    addControllerService("ssl-service", service, getSslProperties());
             controller.enableControllerService(service);
         } catch (InitializationException ex) {
             ex.printStackTrace();
             Assert.fail("Could not create SSL Context Service");
         }
-        
+
         controller.setProperty(GetHTTP.SSL_CONTEXT_SERVICE, "ssl-service");
     }
-    
+
     @Test
     public final void testSecure() throws Exception {
         // set up web service
         ServletHandler handler = new ServletHandler();
         handler.addServletWithMapping(HelloWorldServlet.class, "/*");
-        
+
         // create the service
         TestServer server = new TestServer(getSslProperties());
         server.addHandler(handler);
-        
+
         try {
             server.startServer();
-            
+
             String destination = server.getSecureUrl();
 
             // set up NiFi mock controller
             controller = TestRunners.newTestRunner(GetHTTP.class);
             useSSLContextService();
-            
+
             controller.setProperty(GetHTTP.CONNECTION_TIMEOUT, "5 secs");
             controller.setProperty(GetHTTP.URL, destination);
             controller.setProperty(GetHTTP.FILENAME, "testFile");
-            controller.setProperty(GetHTTP.ACCEPT_CONTENT_TYPE, "application/json");
-            
+            controller.
+                    setProperty(GetHTTP.ACCEPT_CONTENT_TYPE, "application/json");
+
             controller.run();
             controller.assertAllFlowFilesTransferred(GetHTTP.REL_SUCCESS, 1);
-            final MockFlowFile mff = controller.getFlowFilesForRelationship(GetHTTP.REL_SUCCESS).get(0);
+            final MockFlowFile mff = controller.
+                    getFlowFilesForRelationship(GetHTTP.REL_SUCCESS).
+                    get(0);
             mff.assertContentEquals("Hello, World!");
         } finally {
             server.shutdownServer();
         }
     }
-    
-    
+
 }


[14/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
index c1af0ea..11e75ed 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetHTTP.java
@@ -91,7 +91,7 @@ import org.apache.nifi.util.StopWatch;
 
 @Tags({"get", "fetch", "poll", "http", "https", "ingest", "source", "input"})
 @CapabilityDescription("Fetches a file via HTTP")
-@WritesAttribute(attribute="filename", description="the filename is set to the name of the file on the remote server")
+@WritesAttribute(attribute = "filename", description = "the filename is set to the name of the file on the remote server")
 public class GetHTTP extends AbstractSessionFactoryProcessor {
 
     static final int PERSISTENCE_INTERVAL_MSEC = 10000;
@@ -112,8 +112,7 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
             .build();
     public static final PropertyDescriptor FOLLOW_REDIRECTS = new PropertyDescriptor.Builder()
             .name("Follow Redirects")
-            .description(
-                    "If we receive a 3xx HTTP Status Code from the server, indicates whether or not we should follow the redirect that the server specifies")
+            .description("If we receive a 3xx HTTP Status Code from the server, indicates whether or not we should follow the redirect that the server specifies")
             .defaultValue("false")
             .allowableValues("true", "false")
             .build();
@@ -132,8 +131,7 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
             .build();
     public static final PropertyDescriptor DATA_TIMEOUT = new PropertyDescriptor.Builder()
             .name("Data Timeout")
-            .description(
-                    "How long to wait between receiving segments of data from the remote server before giving up and discarding the partial file")
+            .description("How long to wait between receiving segments of data from the remote server before giving up and discarding the partial file")
             .required(true)
             .defaultValue("30 sec")
             .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
@@ -170,8 +168,10 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
             .identifiesControllerService(SSLContextService.class)
             .build();
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success")
-            .description("All files are transferred to the success relationship").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("All files are transferred to the success relationship")
+            .build();
 
     public static final String LAST_MODIFIED_DATE_PATTERN_RFC1123 = "EEE, dd MMM yyyy HH:mm:ss zzz";
 
@@ -275,28 +275,23 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
         return results;
     }
 
-    
-    private SSLContext createSSLContext(final SSLContextService service) throws KeyStoreException, IOException, NoSuchAlgorithmException, 
-        CertificateException, KeyManagementException, UnrecoverableKeyException 
-    {
-        final KeyStore truststore  = KeyStore.getInstance(service.getTrustStoreType());
+    private SSLContext createSSLContext(final SSLContextService service)
+            throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException, KeyManagementException, UnrecoverableKeyException {
+        final KeyStore truststore = KeyStore.getInstance(service.getTrustStoreType());
         try (final InputStream in = new FileInputStream(new File(service.getTrustStoreFile()))) {
             truststore.load(in, service.getTrustStorePassword().toCharArray());
         }
-        
-        final KeyStore keystore  = KeyStore.getInstance(service.getKeyStoreType());
+
+        final KeyStore keystore = KeyStore.getInstance(service.getKeyStoreType());
         try (final InputStream in = new FileInputStream(new File(service.getKeyStoreFile()))) {
             keystore.load(in, service.getKeyStorePassword().toCharArray());
         }
-        
-        SSLContext sslContext = SSLContexts.custom()
-                .loadTrustMaterial(truststore, new TrustSelfSignedStrategy())
-                .loadKeyMaterial(keystore, service.getKeyStorePassword().toCharArray())
-                .build();
-        
+
+        SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(truststore, new TrustSelfSignedStrategy()).loadKeyMaterial(keystore, service.getKeyStorePassword().toCharArray()).build();
+
         return sslContext;
     }
-    
+
     @Override
     public void onTrigger(final ProcessContext context, final ProcessSessionFactory sessionFactory) throws ProcessException {
         final ProcessorLog logger = getLogger();
@@ -318,13 +313,13 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
         } catch (URISyntaxException swallow) {
             // this won't happen as the url has already been validated
         }
-        
+
         // get the ssl context service
         final SSLContextService sslContextService = context.getProperty(SSL_CONTEXT_SERVICE).asControllerService(SSLContextService.class);
-        
+
         // create the connection manager
         final HttpClientConnectionManager conMan;
-        if ( sslContextService == null ) {
+        if (sslContextService == null) {
             conMan = new BasicHttpClientConnectionManager();
         } else {
             final SSLContext sslContext;
@@ -333,16 +328,14 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
             } catch (final Exception e) {
                 throw new ProcessException(e);
             }
-            
-            final SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new String[] { "TLSv1" }, null,
-                    SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
-    
-            final Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
-                    .register("https", sslsf).build();
-    
+
+            final SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new String[]{"TLSv1"}, null, SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
+
+            final Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create().register("https", sslsf).build();
+
             conMan = new BasicHttpClientConnectionManager(socketFactoryRegistry);
         }
-        
+
         try {
             // build the request configuration
             final RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();
@@ -351,25 +344,25 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
             requestConfigBuilder.setRedirectsEnabled(false);
             requestConfigBuilder.setSocketTimeout(context.getProperty(DATA_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue());
             requestConfigBuilder.setRedirectsEnabled(context.getProperty(FOLLOW_REDIRECTS).asBoolean());
-            
+
             // build the http client
             final HttpClientBuilder clientBuilder = HttpClientBuilder.create();
             clientBuilder.setConnectionManager(conMan);
-            
+
             // include the user agent
             final String userAgent = context.getProperty(USER_AGENT).getValue();
             if (userAgent != null) {
                 clientBuilder.setUserAgent(userAgent);
             }
-            
+
             // set the ssl context if necessary
             if (sslContextService != null) {
                 clientBuilder.setSslcontext(sslContextService.createSSLContext(ClientAuth.REQUIRED));
             }
-            
+
             final String username = context.getProperty(USERNAME).getValue();
             final String password = context.getProperty(PASSWORD).getValue();
-            
+
             // set the credentials if appropriate
             if (username != null) {
                 final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
@@ -383,7 +376,7 @@ public class GetHTTP extends AbstractSessionFactoryProcessor {
 
             // create the http client
             final HttpClient client = clientBuilder.build();
-            
+
             // create request
             final HttpGet get = new HttpGet(url);
             get.setConfig(requestConfigBuilder.build());

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSTopic.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSTopic.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSTopic.java
index ecec781..94b49fe 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSTopic.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetJMSTopic.java
@@ -112,8 +112,8 @@ public class GetJMSTopic extends JmsConsumer {
             return;
         }
 
-        // decrypt the passwords so the persisted and current properties can be compared... 
-        // we can modify this properties instance since the unsubscribe method will reload 
+        // decrypt the passwords so the persisted and current properties can be compared...
+        // we can modify this properties instance since the unsubscribe method will reload
         // the properties from disk
         decryptPassword(persistedProps, context);
         decryptPassword(currentProps, context);
@@ -168,13 +168,12 @@ public class GetJMSTopic extends JmsConsumer {
     }
 
     /**
-     * Attempts to locate the password in the specified properties. If found,
-     * decrypts it using the specified context.
+     * Attempts to locate the password in the specified properties. If found, decrypts it using the specified context.
      *
-     * @param properties
-     * @param context
+     * @param properties properties
+     * @param context context
      */
-    public void decryptPassword(final Properties properties, final ProcessContext context) {
+    protected void decryptPassword(final Properties properties, final ProcessContext context) {
         final String encryptedPassword = properties.getProperty(PASSWORD.getName());
 
         // if the is in the properties, decrypt it
@@ -192,8 +191,8 @@ public class GetJMSTopic extends JmsConsumer {
     /**
      * Persists the subscription details for future use.
      *
-     * @param context
-     * @throws IOException
+     * @param context context
+     * @throws IOException ex
      */
     private void persistSubscriptionInfo(final ProcessContext context) throws IOException {
         final Properties props = getSubscriptionPropertiesFromContext(context);
@@ -203,11 +202,10 @@ public class GetJMSTopic extends JmsConsumer {
     }
 
     /**
-     * Returns the subscription details from the specified context. Note: if a
-     * password is set, the resulting entry will be encrypted.
+     * Returns the subscription details from the specified context. Note: if a password is set, the resulting entry will be encrypted.
      *
-     * @param context
-     * @return
+     * @param context context
+     * @return Returns the subscription details from the specified context
      */
     private Properties getSubscriptionPropertiesFromContext(final ProcessContext context) {
         final String unencryptedPassword = context.getProperty(PASSWORD).getValue();
@@ -235,11 +233,10 @@ public class GetJMSTopic extends JmsConsumer {
     }
 
     /**
-     * Loads the subscription details from disk. Since the details are coming
-     * from disk, if a password is set, the resulting entry will be encrypted.
+     * Loads the subscription details from disk. Since the details are coming from disk, if a password is set, the resulting entry will be encrypted.
      *
-     * @return
-     * @throws IOException
+     * @return properties
+     * @throws IOException ex
      */
     private Properties getSubscriptionPropertiesFromFile() throws IOException {
         final Path subscriptionPath = getSubscriptionPath();
@@ -257,11 +254,10 @@ public class GetJMSTopic extends JmsConsumer {
     }
 
     /**
-     * Loads subscription info from the Subscription File and unsubscribes from
-     * the subscription, if the file exists; otherwise, does nothing
+     * Loads subscription info from the Subscription File and unsubscribes from the subscription, if the file exists; otherwise, does nothing
      *
-     * @throws IOException
-     * @throws JMSException
+     * @throws IOException ex
+     * @throws JMSException ex
      */
     private void unsubscribe(final ProcessContext context) throws IOException, JMSException {
         final Properties props = getSubscriptionPropertiesFromFile();
@@ -272,7 +268,8 @@ public class GetJMSTopic extends JmsConsumer {
         final String serverUrl = props.getProperty(URL.getName());
         final String username = props.getProperty(USERNAME.getName());
         final String encryptedPassword = props.getProperty(PASSWORD.getName());
-        final String subscriptionName = props.getProperty(SUBSCRIPTION_NAME_PROPERTY);
+        final String subscriptionName = props.
+                getProperty(SUBSCRIPTION_NAME_PROPERTY);
         final String jmsProvider = props.getProperty(JMS_PROVIDER.getName());
 
         final String password = encryptedPassword == null ? null : context.decrypt(encryptedPassword);
@@ -281,15 +278,6 @@ public class GetJMSTopic extends JmsConsumer {
         unsubscribe(serverUrl, username, password, subscriptionName, jmsProvider, timeoutMillis);
     }
 
-    /**
-     * Unsubscribes from a subscription using the supplied parameters
-     *
-     * @param url
-     * @param username
-     * @param password
-     * @param subscriptionId
-     * @throws JMSException
-     */
     private void unsubscribe(final String url, final String username, final String password, final String subscriptionId, final String jmsProvider, final int timeoutMillis) throws JMSException {
         final Connection connection;
         if (username == null && password == null) {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java
index b9c348b..a157316 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetSFTP.java
@@ -38,13 +38,18 @@ import org.apache.nifi.processors.standard.util.SFTPTransfer;
 @SideEffectFree
 @Tags({"sftp", "get", "retrieve", "files", "fetch", "remote", "ingest", "source", "input"})
 @CapabilityDescription("Fetches files from an SFTP Server and creates FlowFiles from them")
-@WritesAttributes({ @WritesAttribute(attribute = "filename", description = "The filename is set to the name of the file on the remote server"),
-    @WritesAttribute(attribute = "path", description = "The path is set to the path of the file's directory on the remote server. For example, if the <Remote Path> property is set to /tmp, files picked up from /tmp will have the path attribute set to /tmp. If the <Search Recursively> property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to /tmp/abc/1/2/3"),
+@WritesAttributes({
+    @WritesAttribute(attribute = "filename", description = "The filename is set to the name of the file on the remote server"),
+    @WritesAttribute(attribute = "path", description = "The path is set to the path of the file's directory on the remote server. "
+            + "For example, if the <Remote Path> property is set to /tmp, files picked up from /tmp will have the path attribute set "
+            + "to /tmp. If the <Search Recursively> property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path "
+            + "attribute will be set to /tmp/abc/1/2/3"),
     @WritesAttribute(attribute = "file.lastModifiedTime", description = "The date and time that the source file was last modified"),
     @WritesAttribute(attribute = "file.owner", description = "The numeric owner id of the source file"),
     @WritesAttribute(attribute = "file.group", description = "The numeric group id of the source file"),
     @WritesAttribute(attribute = "file.permissions", description = "The read/write/execute permissions of the source file"),
-    @WritesAttribute(attribute = "absolute.path", description = "The full/absolute path from where a file was picked up. The current 'path' attribute is still populated, but may be a relative path")})
+    @WritesAttribute(attribute = "absolute.path", description = "The full/absolute path from where a file was picked up. The current 'path' "
+            + "attribute is still populated, but may be a relative path")})
 @SeeAlso(PutSFTP.class)
 public class GetSFTP extends GetFileTransfer {
 
@@ -90,7 +95,10 @@ public class GetSFTP extends GetFileTransfer {
         final boolean privateKeySpecified = context.getProperty(SFTPTransfer.PRIVATE_KEY_PATH).getValue() != null;
 
         if (!passwordSpecified && !privateKeySpecified) {
-            results.add(new ValidationResult.Builder().subject("Password").explanation("Either the Private Key Passphrase or the Password must be supplied").valid(false).build());
+            results.add(new ValidationResult.Builder().subject("Password")
+                    .explanation("Either the Private Key Passphrase or the Password must be supplied")
+                    .valid(false)
+                    .build());
         }
 
         return results;

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java
index 76bfadf..e7f28be 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpRequest.java
@@ -76,141 +76,156 @@ import org.eclipse.jetty.util.ssl.SslContextFactory;
 import com.sun.jersey.api.client.ClientResponse.Status;
 
 @Tags({"http", "https", "request", "listen", "ingress", "web service"})
-@CapabilityDescription("Starts an HTTP Server and listens for HTTP Requests. For each request, creates a FlowFile and transfers to 'success'. This Processor is designed to be used in conjunction with the HandleHttpResponse Processor in order to create a Web Service")
-@WritesAttributes({@WritesAttribute(attribute = "http.context.identifier", description="An identifier that allows the HandleHttpRequest and HandleHttpResponse to coordinate which FlowFile belongs to which HTTP Request/Response."),
-    @WritesAttribute(attribute = "mime.type", description="The MIME Type of the data, according to the HTTP Header \"Content-Type\""),
-    @WritesAttribute(attribute = "http.servlet.path", description="The part of the request URL that is considered the Servlet Path"),
-    @WritesAttribute(attribute = "http.context.path", description="The part of the request URL that is considered to be the Context Path"),
-    @WritesAttribute(attribute = "http.method", description="The HTTP Method that was used for the request, such as GET or POST"),
-    @WritesAttribute(attribute = "http.query.string", description="The query string portion of hte Request URL"),
-    @WritesAttribute(attribute = "http.remote.host", description="The hostname of the requestor"),
-    @WritesAttribute(attribute = "http.remote.addr", description="The hostname:port combination of the requestor"),
-    @WritesAttribute(attribute = "http.remote.user", description="The username of the requestor"),
-    @WritesAttribute(attribute = "http.request.uri", description="The full Request URL"),
-    @WritesAttribute(attribute = "http.auth.type", description="The type of HTTP Authorization used"),
-    @WritesAttribute(attribute = "http.principal.name", description="The name of the authenticated user making the request"),
-    @WritesAttribute(attribute = "http.subject.dn", description="The Distinguished Name of the requestor. This value will not be populated unless the Processor is configured to use an SSLContext Service"),
-    @WritesAttribute(attribute = "http.issuer.dn", description="The Distinguished Name of the entity that issued the Subject's certificate. This value will not be populated unless the Processor is configured to use an SSLContext Service"),
-    @WritesAttribute(attribute = "http.headers.XXX", description="Each of the HTTP Headers that is received in the request will be added as an attribute, prefixed with \"http.headers.\" For example, if the request contains an HTTP Header named \"x-my-header\", then the value will be added to an attribute named \"http.headers.x-my-header\"")})
-@SeeAlso(value={HandleHttpResponse.class}, classNames={"org.apache.nifi.http.StandardHttpContextMap", "org.apache.nifi.ssl.StandardSSLContextService"})
+@CapabilityDescription("Starts an HTTP Server and listens for HTTP Requests. For each request, creates a FlowFile and transfers to 'success'. "
+        + "This Processor is designed to be used in conjunction with the HandleHttpResponse Processor in order to create a Web Service")
+@WritesAttributes({
+    @WritesAttribute(attribute = "http.context.identifier", description = "An identifier that allows the HandleHttpRequest and HandleHttpResponse "
+            + "to coordinate which FlowFile belongs to which HTTP Request/Response."),
+    @WritesAttribute(attribute = "mime.type", description = "The MIME Type of the data, according to the HTTP Header \"Content-Type\""),
+    @WritesAttribute(attribute = "http.servlet.path", description = "The part of the request URL that is considered the Servlet Path"),
+    @WritesAttribute(attribute = "http.context.path", description = "The part of the request URL that is considered to be the Context Path"),
+    @WritesAttribute(attribute = "http.method", description = "The HTTP Method that was used for the request, such as GET or POST"),
+    @WritesAttribute(attribute = "http.query.string", description = "The query string portion of hte Request URL"),
+    @WritesAttribute(attribute = "http.remote.host", description = "The hostname of the requestor"),
+    @WritesAttribute(attribute = "http.remote.addr", description = "The hostname:port combination of the requestor"),
+    @WritesAttribute(attribute = "http.remote.user", description = "The username of the requestor"),
+    @WritesAttribute(attribute = "http.request.uri", description = "The full Request URL"),
+    @WritesAttribute(attribute = "http.auth.type", description = "The type of HTTP Authorization used"),
+    @WritesAttribute(attribute = "http.principal.name", description = "The name of the authenticated user making the request"),
+    @WritesAttribute(attribute = "http.subject.dn", description = "The Distinguished Name of the requestor. This value will not be populated "
+            + "unless the Processor is configured to use an SSLContext Service"),
+    @WritesAttribute(attribute = "http.issuer.dn", description = "The Distinguished Name of the entity that issued the Subject's certificate. "
+            + "This value will not be populated unless the Processor is configured to use an SSLContext Service"),
+    @WritesAttribute(attribute = "http.headers.XXX", description = "Each of the HTTP Headers that is received in the request will be added as an "
+            + "attribute, prefixed with \"http.headers.\" For example, if the request contains an HTTP Header named \"x-my-header\", then the value "
+            + "will be added to an attribute named \"http.headers.x-my-header\"")})
+@SeeAlso(value = {HandleHttpResponse.class},
+        classNames = {"org.apache.nifi.http.StandardHttpContextMap", "org.apache.nifi.ssl.StandardSSLContextService"})
 public class HandleHttpRequest extends AbstractProcessor {
+
     public static final String HTTP_CONTEXT_ID = "http.context.identifier";
-    private static final Pattern URL_QUERY_PARAM_DELIMITER = Pattern.compile("&");
-    
+    private static final Pattern URL_QUERY_PARAM_DELIMITER = Pattern.
+            compile("&");
+
     // Allowable values for client auth
-    public static final AllowableValue CLIENT_NONE = new AllowableValue("No Authentication", "No Authentication", "Processor will not authenticate clients. Anyone can communicate with this Processor anonymously");
-    public static final AllowableValue CLIENT_WANT = new AllowableValue("Want Authentication", "Want Authentication", "Processor will try to verify the client but if unable to verify will allow the client to communicate anonymously");
-    public static final AllowableValue CLIENT_NEED = new AllowableValue("Need Authentication", "Need Authentication", "Processor will reject communications from any client unless the client provides a certificate that is trusted by the TrustStore specified in the SSL Context Service");
-    
-    
+    public static final AllowableValue CLIENT_NONE = new AllowableValue("No Authentication", "No Authentication",
+            "Processor will not authenticate clients. Anyone can communicate with this Processor anonymously");
+    public static final AllowableValue CLIENT_WANT = new AllowableValue("Want Authentication", "Want Authentication",
+            "Processor will try to verify the client but if unable to verify will allow the client to communicate anonymously");
+    public static final AllowableValue CLIENT_NEED = new AllowableValue("Need Authentication", "Need Authentication",
+            "Processor will reject communications from any client unless the client provides a certificate that is trusted by the TrustStore"
+            + "specified in the SSL Context Service");
+
     public static final PropertyDescriptor PORT = new PropertyDescriptor.Builder()
-        .name("Listening Port")
-        .description("The Port to listen on for incoming HTTP requests")
-        .required(true)
-        .addValidator(StandardValidators.createLongValidator(0L, 65535L, true))
-        .expressionLanguageSupported(false)
-        .defaultValue("80")
-        .build();
+            .name("Listening Port")
+            .description("The Port to listen on for incoming HTTP requests")
+            .required(true)
+            .addValidator(StandardValidators.createLongValidator(0L, 65535L, true))
+            .expressionLanguageSupported(false)
+            .defaultValue("80")
+            .build();
     public static final PropertyDescriptor HOSTNAME = new PropertyDescriptor.Builder()
-        .name("Hostname")
-        .description("The Hostname to bind to. If not specified, will bind to all hosts")
-        .required(false)
-        .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-        .expressionLanguageSupported(false)
-        .build();
+            .name("Hostname")
+            .description("The Hostname to bind to. If not specified, will bind to all hosts")
+            .required(false)
+            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+            .expressionLanguageSupported(false)
+            .build();
     public static final PropertyDescriptor HTTP_CONTEXT_MAP = new PropertyDescriptor.Builder()
-        .name("HTTP Context Map")
-        .description("The HTTP Context Map Controller Service to use for caching the HTTP Request Information")
-        .required(true)
-        .identifiesControllerService(HttpContextMap.class)
-        .build();
+            .name("HTTP Context Map")
+            .description("The HTTP Context Map Controller Service to use for caching the HTTP Request Information")
+            .required(true)
+            .identifiesControllerService(HttpContextMap.class)
+            .build();
     public static final PropertyDescriptor SSL_CONTEXT = new PropertyDescriptor.Builder()
-        .name("SSL Context Service")
-        .description("The SSL Context Service to use in order to secure the server. If specified, the server will accept only HTTPS requests; otherwise, the server will accept only HTTP requests")
-        .required(false)
-        .identifiesControllerService(SSLContextService.class)
-        .build();
+            .name("SSL Context Service")
+            .description("The SSL Context Service to use in order to secure the server. If specified, the server will accept only HTTPS requests; "
+                    + "otherwise, the server will accept only HTTP requests")
+            .required(false)
+            .identifiesControllerService(SSLContextService.class)
+            .build();
     public static final PropertyDescriptor URL_CHARACTER_SET = new PropertyDescriptor.Builder()
-        .name("Default URL Character Set")
-        .description("The character set to use for decoding URL parameters if the HTTP Request does not supply one")
-        .required(true)
-        .defaultValue("UTF-8")
-        .addValidator(StandardValidators.CHARACTER_SET_VALIDATOR)
-        .build();
+            .name("Default URL Character Set")
+            .description("The character set to use for decoding URL parameters if the HTTP Request does not supply one")
+            .required(true)
+            .defaultValue("UTF-8")
+            .addValidator(StandardValidators.CHARACTER_SET_VALIDATOR)
+            .build();
     public static final PropertyDescriptor PATH_REGEX = new PropertyDescriptor.Builder()
-        .name("Allowed Paths")
-        .description("A Regular Expression that specifies the valid HTTP Paths that are allowed in the incoming URL Requests. If this value is specified and the path of the HTTP Requests does not match this Regular Expression, the Processor will respond with a 404: NotFound")
-        .required(false)
-        .addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR)
-        .expressionLanguageSupported(false)
-        .build();
+            .name("Allowed Paths")
+            .description("A Regular Expression that specifies the valid HTTP Paths that are allowed in the incoming URL Requests. If this value is "
+                    + "specified and the path of the HTTP Requests does not match this Regular Expression, the Processor will respond with a "
+                    + "404: NotFound")
+            .required(false)
+            .addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR)
+            .expressionLanguageSupported(false)
+            .build();
     public static final PropertyDescriptor ALLOW_GET = new PropertyDescriptor.Builder()
-        .name("Allow GET")
-        .description("Allow HTTP GET Method")
-        .required(true)
-        .allowableValues("true", "false")
-        .defaultValue("true")
-        .build();
+            .name("Allow GET")
+            .description("Allow HTTP GET Method")
+            .required(true)
+            .allowableValues("true", "false")
+            .defaultValue("true")
+            .build();
     public static final PropertyDescriptor ALLOW_POST = new PropertyDescriptor.Builder()
-        .name("Allow POST")
-        .description("Allow HTTP POST Method")
-        .required(true)
-        .allowableValues("true", "false")
-        .defaultValue("true")
-        .build();
-    public static final PropertyDescriptor ALLOW_PUT = new PropertyDescriptor.Builder()
-        .name("Allow PUT")
-        .description("Allow HTTP PUT Method")
-        .required(true)
-        .allowableValues("true", "false")
-        .defaultValue("true")
-        .build();
+            .name("Allow POST")
+            .description("Allow HTTP POST Method")
+            .required(true)
+            .allowableValues("true", "false")
+            .defaultValue("true")
+            .build();
+    public static final PropertyDescriptor ALLOW_PUT = new PropertyDescriptor.Builder().
+            name("Allow PUT").
+            description("Allow HTTP PUT Method").
+            required(true).
+            allowableValues("true", "false").
+            defaultValue("true").
+            build();
     public static final PropertyDescriptor ALLOW_DELETE = new PropertyDescriptor.Builder()
-        .name("Allow DELETE")
-        .description("Allow HTTP DELETE Method")
-        .required(true)
-        .allowableValues("true", "false")
-        .defaultValue("true")
-        .build();
+            .name("Allow DELETE")
+            .description("Allow HTTP DELETE Method")
+            .required(true)
+            .allowableValues("true", "false")
+            .defaultValue("true")
+            .build();
     public static final PropertyDescriptor ALLOW_HEAD = new PropertyDescriptor.Builder()
-        .name("Allow HEAD")
-        .description("Allow HTTP HEAD Method")
-        .required(true)
-        .allowableValues("true", "false")
-        .defaultValue("false")
-        .build();
+            .name("Allow HEAD")
+            .description("Allow HTTP HEAD Method")
+            .required(true)
+            .allowableValues("true", "false")
+            .defaultValue("false")
+            .build();
     public static final PropertyDescriptor ALLOW_OPTIONS = new PropertyDescriptor.Builder()
-        .name("Allow OPTIONS")
-        .description("Allow HTTP OPTIONS Method")
-        .required(true)
-        .allowableValues("true", "false")
-        .defaultValue("false")
-        .build();
+            .name("Allow OPTIONS")
+            .description("Allow HTTP OPTIONS Method")
+            .required(true)
+            .allowableValues("true", "false")
+            .defaultValue("false")
+            .build();
     public static final PropertyDescriptor ADDITIONAL_METHODS = new PropertyDescriptor.Builder()
-        .name("Additional HTTP Methods")
-        .description("A comma-separated list of non-standard HTTP Methods that should be allowed")
-        .required(false)
-        .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-        .expressionLanguageSupported(false)
-        .build();
+            .name("Additional HTTP Methods")
+            .description("A comma-separated list of non-standard HTTP Methods that should be allowed")
+            .required(false)
+            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+            .expressionLanguageSupported(false)
+            .build();
     public static final PropertyDescriptor CLIENT_AUTH = new PropertyDescriptor.Builder()
-        .name("Client Authentication")
-        .description("Specifies whether or not the Processor should authenticate clients. This value is ignored if the <SSL Context Service> Property is not specified or the SSL Context provided uses only a KeyStore and not a TrustStore.")
-        .required(true)
-        .allowableValues(CLIENT_NONE, CLIENT_WANT, CLIENT_NEED)
-        .defaultValue(CLIENT_NONE.getValue())
-        .build();
-    
-    
+            .name("Client Authentication")
+            .description("Specifies whether or not the Processor should authenticate clients. This value is ignored if the <SSL Context Service> "
+                    + "Property is not specified or the SSL Context provided uses only a KeyStore and not a TrustStore.")
+            .required(true)
+            .allowableValues(CLIENT_NONE, CLIENT_WANT, CLIENT_NEED)
+            .defaultValue(CLIENT_NONE.getValue())
+            .build();
+
     public static final Relationship REL_SUCCESS = new Relationship.Builder()
-        .name("success")
-        .description("All content that is received is routed to the 'success' relationship")
-        .build();
-    
+            .name("success")
+            .description("All content that is received is routed to the 'success' relationship")
+            .build();
+
     private volatile Server server;
     private final BlockingQueue<HttpRequestContainer> containerQueue = new LinkedBlockingQueue<>(50);
-    
-    
+
     @Override
     protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
         final List<PropertyDescriptor> descriptors = new ArrayList<>();
@@ -231,39 +246,38 @@ public class HandleHttpRequest extends AbstractProcessor {
 
         return descriptors;
     }
-    
+
     @Override
     public Set<Relationship> getRelationships() {
         return Collections.singleton(REL_SUCCESS);
     }
-    
-    
+
     @OnScheduled
     public void initializeServer(final ProcessContext context) throws Exception {
         final String host = context.getProperty(HOSTNAME).getValue();
         final int port = context.getProperty(PORT).asInteger();
         final SSLContextService sslService = context.getProperty(SSL_CONTEXT).asControllerService(SSLContextService.class);
-        
+
         final String clientAuthValue = context.getProperty(CLIENT_AUTH).getValue();
         final boolean need;
         final boolean want;
-        if ( CLIENT_NEED.equals(clientAuthValue) ) {
+        if (CLIENT_NEED.equals(clientAuthValue)) {
             need = true;
             want = false;
-        } else if ( CLIENT_WANT.equals(clientAuthValue) ) {
+        } else if (CLIENT_WANT.equals(clientAuthValue)) {
             need = false;
             want = true;
         } else {
             need = false;
             want = false;
         }
-        
+
         final SslContextFactory sslFactory = (sslService == null) ? null : createSslFactory(sslService, need, want);
         final Server server = new Server(port);
-        
+
         // create the http configuration
         final HttpConfiguration httpConfiguration = new HttpConfiguration();
-        if ( sslFactory == null ) {
+        if (sslFactory == null) {
             // create the connector
             final ServerConnector http = new ServerConnector(server, new HttpConnectionFactory(httpConfiguration));
 
@@ -274,7 +288,7 @@ public class HandleHttpRequest extends AbstractProcessor {
             http.setPort(port);
 
             // add this connector
-            server.setConnectors(new Connector[] {http});
+            server.setConnectors(new Connector[]{http});
         } else {
             // add some secure config
             final HttpConfiguration httpsConfiguration = new HttpConfiguration(httpConfiguration);
@@ -283,9 +297,7 @@ public class HandleHttpRequest extends AbstractProcessor {
             httpsConfiguration.addCustomizer(new SecureRequestCustomizer());
 
             // build the connector
-            final ServerConnector https = new ServerConnector(server,
-                    new SslConnectionFactory(sslFactory, "http/1.1"),
-                    new HttpConnectionFactory(httpsConfiguration));
+            final ServerConnector https = new ServerConnector(server, new SslConnectionFactory(sslFactory, "http/1.1"), new HttpConnectionFactory(httpsConfiguration));
 
             // set host and port
             if (StringUtils.isNotBlank(host)) {
@@ -294,87 +306,88 @@ public class HandleHttpRequest extends AbstractProcessor {
             https.setPort(port);
 
             // add this connector
-            server.setConnectors(new Connector[] {https});
+            server.setConnectors(new Connector[]{https});
         }
-        
+
         final Set<String> allowedMethods = new HashSet<>();
-        if ( context.getProperty(ALLOW_GET).asBoolean() ) {
+        if (context.getProperty(ALLOW_GET).asBoolean()) {
             allowedMethods.add("GET");
         }
-        if ( context.getProperty(ALLOW_POST).asBoolean() ) {
+        if (context.getProperty(ALLOW_POST).asBoolean()) {
             allowedMethods.add("POST");
         }
-        if ( context.getProperty(ALLOW_PUT).asBoolean() ) {
+        if (context.getProperty(ALLOW_PUT).asBoolean()) {
             allowedMethods.add("PUT");
         }
-        if ( context.getProperty(ALLOW_DELETE).asBoolean() ) {
+        if (context.getProperty(ALLOW_DELETE).asBoolean()) {
             allowedMethods.add("DELETE");
         }
-        if ( context.getProperty(ALLOW_HEAD).asBoolean() ) {
+        if (context.getProperty(ALLOW_HEAD).asBoolean()) {
             allowedMethods.add("HEAD");
         }
-        if ( context.getProperty(ALLOW_OPTIONS).asBoolean() ) {
+        if (context.getProperty(ALLOW_OPTIONS).asBoolean()) {
             allowedMethods.add("OPTIONS");
         }
-        
+
         final String additionalMethods = context.getProperty(ADDITIONAL_METHODS).getValue();
-        if ( additionalMethods != null ) {
-            for ( final String additionalMethod : additionalMethods.split(",") ) {
+        if (additionalMethods != null) {
+            for (final String additionalMethod : additionalMethods.split(",")) {
                 final String trimmed = additionalMethod.trim();
-                if ( !trimmed.isEmpty() ) {
+                if (!trimmed.isEmpty()) {
                     allowedMethods.add(trimmed.toUpperCase());
                 }
             }
         }
-        
+
         final String pathRegex = context.getProperty(PATH_REGEX).getValue();
         final Pattern pathPattern = (pathRegex == null) ? null : Pattern.compile(pathRegex);
-        
+
         server.setHandler(new AbstractHandler() {
             @Override
-            public void handle(final String target, final Request baseRequest, final HttpServletRequest request, 
-                        final HttpServletResponse response) throws IOException, ServletException {
-                
+            public void handle(final String target, final Request baseRequest, final HttpServletRequest request, final HttpServletResponse response)
+                    throws IOException, ServletException {
+
                 final String requestUri = request.getRequestURI();
-                if ( !allowedMethods.contains(request.getMethod().toUpperCase()) ) {
-                    getLogger().info("Sending back METHOD_NOT_ALLOWED response to {}; method was {}; request URI was {}", 
-                            new Object[] {request.getRemoteAddr(), request.getMethod(), requestUri});
+                if (!allowedMethods.contains(request.getMethod().toUpperCase())) {
+                    getLogger().info("Sending back METHOD_NOT_ALLOWED response to {}; method was {}; request URI was {}",
+                            new Object[]{request.getRemoteAddr(), request.getMethod(), requestUri});
                     response.sendError(Status.METHOD_NOT_ALLOWED.getStatusCode());
                     return;
                 }
-                
-                if ( pathPattern != null ) {
+
+                if (pathPattern != null) {
                     final URI uri;
                     try {
                         uri = new URI(requestUri);
                     } catch (final URISyntaxException e) {
                         throw new ServletException(e);
                     }
-                    
-                    if ( !pathPattern.matcher(uri.getPath()).matches() ) {
+
+                    if (!pathPattern.matcher(uri.getPath()).matches()) {
                         response.sendError(Status.NOT_FOUND.getStatusCode());
-                        getLogger().info("Sending back NOT_FOUND response to {}; request was {} {}", 
-                                new Object[] {request.getRemoteAddr(), request.getMethod(), requestUri});
+                        getLogger().info("Sending back NOT_FOUND response to {}; request was {} {}",
+                                new Object[]{request.getRemoteAddr(), request.getMethod(), requestUri});
                         return;
                     }
                 }
-                
+
                 // If destination queues full, send back a 503: Service Unavailable.
-                if ( context.getAvailableRelationships().isEmpty() ) {
+                if (context.getAvailableRelationships().isEmpty()) {
                     response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
                     return;
                 }
-                
+
                 // Right now, that information, though, is only in the ProcessSession, not the ProcessContext,
                 // so it is not known to us. Should see if it can be added to the ProcessContext.
                 final AsyncContext async = baseRequest.startAsync();
                 final boolean added = containerQueue.offer(new HttpRequestContainer(request, response, async));
-                
-                if ( added ) {
-                    getLogger().debug("Added Http Request to queue for {} {} from {}", new Object[] {request.getMethod(), requestUri, request.getRemoteAddr()});
+
+                if (added) {
+                    getLogger().debug("Added Http Request to queue for {} {} from {}",
+                            new Object[]{request.getMethod(), requestUri, request.getRemoteAddr()});
                 } else {
-                    getLogger().info("Sending back a SERVICE_UNAVAILABLE response to {}; request was {} {}", 
-                            new Object[] {request.getRemoteAddr(), request.getMethod(), request.getRemoteAddr()});
+                    getLogger().info("Sending back a SERVICE_UNAVAILABLE response to {}; request was {} {}",
+                            new Object[]{request.getRemoteAddr(), request.getMethod(), request.getRemoteAddr()});
 
                     response.sendError(Status.SERVICE_UNAVAILABLE.getStatusCode());
                     response.flushBuffer();
@@ -382,63 +395,63 @@ public class HandleHttpRequest extends AbstractProcessor {
                 }
             }
         });
-        
+
         this.server = server;
         server.start();
-        
+
         getLogger().info("Server started and listening on port " + getPort());
     }
-    
+
     protected int getPort() {
-        for ( final Connector connector : server.getConnectors() ) {
-            if ( connector instanceof ServerConnector ) {
+        for (final Connector connector : server.getConnectors()) {
+            if (connector instanceof ServerConnector) {
                 return ((ServerConnector) connector).getLocalPort();
             }
         }
-        
+
         throw new IllegalStateException("Server is not listening on any ports");
     }
-    
+
     protected int getRequestQueueSize() {
         return containerQueue.size();
     }
-    
+
     private SslContextFactory createSslFactory(final SSLContextService sslService, final boolean needClientAuth, final boolean wantClientAuth) {
         final SslContextFactory sslFactory = new SslContextFactory();
-        
+
         sslFactory.setNeedClientAuth(needClientAuth);
         sslFactory.setWantClientAuth(wantClientAuth);
-        
-        if ( sslService.isKeyStoreConfigured() ) {
+
+        if (sslService.isKeyStoreConfigured()) {
             sslFactory.setKeyStorePath(sslService.getKeyStoreFile());
             sslFactory.setKeyStorePassword(sslService.getKeyStorePassword());
             sslFactory.setKeyStoreType(sslService.getKeyStoreType());
         }
 
-        if ( sslService.isTrustStoreConfigured() ) {
+        if (sslService.isTrustStoreConfigured()) {
             sslFactory.setTrustStorePath(sslService.getTrustStoreFile());
             sslFactory.setTrustStorePassword(sslService.getTrustStorePassword());
             sslFactory.setTrustStoreType(sslService.getTrustStoreType());
         }
-        
+
         return sslFactory;
     }
-    
+
     @OnStopped
     public void shutdown() throws Exception {
-        if ( server != null ) {
+        if (server != null) {
             getLogger().debug("Shutting down server");
             server.stop();
             server.destroy();
             server.join();
-            getLogger().info("Shut down {}", new Object[] {server});
+            getLogger().info("Shut down {}", new Object[]{server});
         }
     }
-    
+
     @Override
     public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
         final HttpRequestContainer container = containerQueue.poll();
-        if ( container == null ) {
+        if (container == null) {
             return;
         }
 
@@ -448,13 +461,14 @@ public class HandleHttpRequest extends AbstractProcessor {
         try {
             flowFile = session.importFrom(request.getInputStream(), flowFile);
         } catch (final IOException e) {
-            getLogger().error("Failed to receive content from HTTP Request from {} due to {}", new Object[] {request.getRemoteAddr(), e});
+            getLogger().error("Failed to receive content from HTTP Request from {} due to {}",
+                    new Object[]{request.getRemoteAddr(), e});
             session.remove(flowFile);
             return;
         }
-        
+
         final String charset = request.getCharacterEncoding() == null ? context.getProperty(URL_CHARACTER_SET).getValue() : request.getCharacterEncoding();
-        
+
         final String contextIdentifier = UUID.randomUUID().toString();
         final Map<String, String> attributes = new HashMap<>();
         try {
@@ -465,7 +479,7 @@ public class HandleHttpRequest extends AbstractProcessor {
             putAttribute(attributes, "http.method", request.getMethod());
             putAttribute(attributes, "http.local.addr", request.getLocalAddr());
             putAttribute(attributes, "http.local.name", request.getLocalName());
-            if ( request.getQueryString() != null ) {
+            if (request.getQueryString() != null) {
                 putAttribute(attributes, "http.query.string", URLDecoder.decode(request.getQueryString(), charset));
             }
             putAttribute(attributes, "http.remote.host", request.getRemoteHost());
@@ -474,26 +488,26 @@ public class HandleHttpRequest extends AbstractProcessor {
             putAttribute(attributes, "http.request.uri", request.getRequestURI());
             putAttribute(attributes, "http.request.url", request.getRequestURL().toString());
             putAttribute(attributes, "http.auth.type", request.getAuthType());
-            
+
             putAttribute(attributes, "http.requested.session.id", request.getRequestedSessionId());
-            if ( request.getDispatcherType() != null ) {
+            if (request.getDispatcherType() != null) {
                 putAttribute(attributes, "http.dispatcher.type", request.getDispatcherType().name());
             }
             putAttribute(attributes, "http.character.encoding", request.getCharacterEncoding());
             putAttribute(attributes, "http.locale", request.getLocale());
             putAttribute(attributes, "http.server.name", request.getServerName());
             putAttribute(attributes, "http.server.port", request.getServerPort());
-            
+
             final Enumeration<String> paramEnumeration = request.getParameterNames();
-            while ( paramEnumeration.hasMoreElements() ) {
+            while (paramEnumeration.hasMoreElements()) {
                 final String paramName = paramEnumeration.nextElement();
                 final String value = request.getParameter(paramName);
                 attributes.put("http.param." + paramName, value);
             }
-            
+
             final Cookie[] cookies = request.getCookies();
-            if ( cookies != null ) {
-                for ( final Cookie cookie : cookies ) {
+            if (cookies != null) {
+                for (final Cookie cookie : cookies) {
                     final String name = cookie.getName();
                     final String cookiePrefix = "http.cookie." + name + ".";
                     attributes.put(cookiePrefix + "value", cookie.getValue());
@@ -504,25 +518,25 @@ public class HandleHttpRequest extends AbstractProcessor {
                     attributes.put(cookiePrefix + "secure", String.valueOf(cookie.getSecure()));
                 }
             }
-            
+
             final String queryString = request.getQueryString();
-            if ( queryString != null ) {
+            if (queryString != null) {
                 final String[] params = URL_QUERY_PARAM_DELIMITER.split(queryString);
-                for ( final String keyValueString : params ) {
+                for (final String keyValueString : params) {
                     final int indexOf = keyValueString.indexOf("=");
-                    if ( indexOf < 0 ) {
+                    if (indexOf < 0) {
                         // no =, then it's just a key with no value
                         attributes.put("http.query.param." + URLDecoder.decode(keyValueString, charset), "");
                     } else {
                         final String key = keyValueString.substring(0, indexOf);
                         final String value;
-                        
-                        if ( indexOf == keyValueString.length() - 1 ) {
+
+                        if (indexOf == keyValueString.length() - 1) {
                             value = "";
                         } else {
                             value = keyValueString.substring(indexOf + 1);
                         }
-                        
+
                         attributes.put("http.query.param." + URLDecoder.decode(key, charset), URLDecoder.decode(value, charset));
                     }
                 }
@@ -530,79 +544,81 @@ public class HandleHttpRequest extends AbstractProcessor {
         } catch (final UnsupportedEncodingException uee) {
             throw new ProcessException("Invalid character encoding", uee);  // won't happen because charset has been validated
         }
-        
+
         final Enumeration<String> headerNames = request.getHeaderNames();
-        while ( headerNames.hasMoreElements() ) {
+        while (headerNames.hasMoreElements()) {
             final String headerName = headerNames.nextElement();
             final String headerValue = request.getHeader(headerName);
             putAttribute(attributes, "http.headers." + headerName, headerValue);
         }
-        
+
         final Principal principal = request.getUserPrincipal();
-        if ( principal != null ) {
+        if (principal != null) {
             putAttribute(attributes, "http.principal.name", principal.getName());
         }
-        
+
         final X509Certificate certs[] = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
         final String subjectDn;
-        if ( certs != null && certs.length > 0 ) {
+        if (certs != null && certs.length > 0) {
             final X509Certificate cert = certs[0];
             subjectDn = cert.getSubjectDN().getName();
             final String issuerDn = cert.getIssuerDN().getName();
-            
+
             putAttribute(attributes, "http.subject.dn", subjectDn);
             putAttribute(attributes, "http.issuer.dn", issuerDn);
         } else {
             subjectDn = null;
         }
-        
+
         flowFile = session.putAllAttributes(flowFile, attributes);
-        
+
         final HttpContextMap contextMap = context.getProperty(HTTP_CONTEXT_MAP).asControllerService(HttpContextMap.class);
-		final boolean registered = contextMap.register(contextIdentifier, request, container.getResponse(), container.getContext());
-		
-		if ( !registered ) {
-            getLogger().warn("Received request from {} but could not process it because too many requests are already outstanding; responding with SERVICE_UNAVAILABLE", new Object[] {request.getRemoteAddr()});
-            
+        final boolean registered = contextMap.register(contextIdentifier, request, container.getResponse(), container.getContext());
+
+        if (!registered) {
+            getLogger().warn("Received request from {} but could not process it because too many requests are already outstanding; responding with SERVICE_UNAVAILABLE",
+                    new Object[]{request.getRemoteAddr()});
+
             try {
                 container.getResponse().setStatus(Status.SERVICE_UNAVAILABLE.getStatusCode());
                 container.getResponse().flushBuffer();
                 container.getContext().complete();
             } catch (final Exception e) {
-                getLogger().warn("Failed to respond with SERVICE_UNAVAILABLE message to {} due to {}", new Object[] {request.getRemoteAddr(), e});
+                getLogger().warn("Failed to respond with SERVICE_UNAVAILABLE message to {} due to {}",
+                        new Object[]{request.getRemoteAddr(), e});
             }
-            
+
             return;
         }
-        
+
         final long receiveMillis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start);
         session.getProvenanceReporter().receive(flowFile, request.getRequestURI(), "Received from " + request.getRemoteAddr() + (subjectDn == null ? "" : " with DN=" + subjectDn), receiveMillis);
         session.transfer(flowFile, REL_SUCCESS);
-        getLogger().info("Transferring {} to 'success'; received from {}", new Object[] {flowFile, request.getRemoteAddr()});
+        getLogger().info("Transferring {} to 'success'; received from {}", new Object[]{flowFile, request.getRemoteAddr()});
     }
-    
+
     private void putAttribute(final Map<String, String> map, final String key, final Object value) {
-        if ( value == null ) {
+        if (value == null) {
             return;
         }
-        
+
         putAttribute(map, key, value.toString());
     }
-    
+
     private void putAttribute(final Map<String, String> map, final String key, final String value) {
-        if ( value == null ) {
+        if (value == null) {
             return;
         }
-        
+
         map.put(key, value);
     }
-    
-    
+
     private static class HttpRequestContainer {
+
         private final HttpServletRequest request;
         private final HttpServletResponse response;
         private final AsyncContext context;
-        
+
         public HttpRequestContainer(final HttpServletRequest request, final HttpServletResponse response, final AsyncContext async) {
             this.request = request;
             this.response = response;

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java
index bfe53ef..0201730 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HandleHttpResponse.java
@@ -42,38 +42,41 @@ import org.apache.nifi.processor.exception.ProcessException;
 import org.apache.nifi.processor.util.StandardValidators;
 
 @Tags({"http", "https", "response", "egress", "web service"})
-@CapabilityDescription("Sends an HTTP Response to the Requestor that generated a FlowFile. This Processor is designed to be used in conjunction with the HandleHttpRequest in order to create a web service.")
-@DynamicProperty(name="An HTTP header name", value="An HTTP header value", description="These HTTPHeaders are set in the HTTP Response")
-@ReadsAttribute(attribute="http.context.identifier", description="The value of this attribute is used to lookup the HTTP Response so that the proper message can be sent back to the requestor. If this attribute is missing, the FlowFile will be routed to 'failure.'")
-@SeeAlso(value={HandleHttpRequest.class}, classNames={"org.apache.nifi.http.StandardHttpContextMap", "org.apache.nifi.ssl.StandardSSLContextService"})
+@CapabilityDescription("Sends an HTTP Response to the Requestor that generated a FlowFile. This Processor is designed to be used in conjunction with "
+        + "the HandleHttpRequest in order to create a web service.")
+@DynamicProperty(name = "An HTTP header name", value = "An HTTP header value", description = "These HTTPHeaders are set in the HTTP Response")
+@ReadsAttribute(attribute = "http.context.identifier", description = "The value of this attribute is used to lookup the HTTP Response so that the "
+        + "proper message can be sent back to the requestor. If this attribute is missing, the FlowFile will be routed to 'failure.'")
+@SeeAlso(value = {HandleHttpRequest.class}, classNames = {"org.apache.nifi.http.StandardHttpContextMap", "org.apache.nifi.ssl.StandardSSLContextService"})
 public class HandleHttpResponse extends AbstractProcessor {
+
     public static final Pattern NUMBER_PATTERN = Pattern.compile("[0-9]+");
     public static final String HTTP_CONTEXT_ID = "http.context.identifier";
 
     public static final PropertyDescriptor STATUS_CODE = new PropertyDescriptor.Builder()
-        .name("HTTP Status Code")
-        .description("The HTTP Status Code to use when responding to the HTTP Request. See Section 10 of RFC 2616 for more information.")
-        .required(true)
-        .addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR)
-        .expressionLanguageSupported(true)
-        .build();
+            .name("HTTP Status Code")
+            .description("The HTTP Status Code to use when responding to the HTTP Request. See Section 10 of RFC 2616 for more information.")
+            .required(true)
+            .addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR)
+            .expressionLanguageSupported(true)
+            .build();
     public static final PropertyDescriptor HTTP_CONTEXT_MAP = new PropertyDescriptor.Builder()
-        .name("HTTP Context Map")
-        .description("The HTTP Context Map Controller Service to use for caching the HTTP Request Information")
-        .required(true)
-        .identifiesControllerService(HttpContextMap.class)
-        .build();
-    
+            .name("HTTP Context Map")
+            .description("The HTTP Context Map Controller Service to use for caching the HTTP Request Information")
+            .required(true)
+            .identifiesControllerService(HttpContextMap.class)
+            .build();
+
     public static final Relationship REL_SUCCESS = new Relationship.Builder()
-        .name("success")
-        .description("FlowFiles will be routed to this Relationship after the response has been successfully sent to the requestor")
-        .build();
+            .name("success")
+            .description("FlowFiles will be routed to this Relationship after the response has been successfully sent to the requestor")
+            .build();
     public static final Relationship REL_FAILURE = new Relationship.Builder()
-        .name("failure")
-        .description("FlowFiles will be routed to this Relationship if the Processor is unable to respond to the requestor. This may happen, for instance, if the connection times out or if NiFi is restarted before responding to the HTTP Request.")
-        .build();
+            .name("failure")
+            .description("FlowFiles will be routed to this Relationship if the Processor is unable to respond to the requestor. This may happen, "
+                    + "for instance, if the connection times out or if NiFi is restarted before responding to the HTTP Request.")
+            .build();
 
-    
     @Override
     public final List<PropertyDescriptor> getSupportedPropertyDescriptors() {
         final List<PropertyDescriptor> properties = new ArrayList<>();
@@ -81,7 +84,7 @@ public class HandleHttpResponse extends AbstractProcessor {
         properties.add(HTTP_CONTEXT_MAP);
         return properties;
     }
-    
+
     @Override
     public Set<Relationship> getRelationships() {
         final Set<Relationship> relationships = new HashSet<>();
@@ -89,96 +92,96 @@ public class HandleHttpResponse extends AbstractProcessor {
         relationships.add(REL_FAILURE);
         return relationships;
     }
-    
+
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
         return new PropertyDescriptor.Builder()
-            .description("Specifies the value to send for the '" + propertyDescriptorName + "' HTTP Header")
-            .name(propertyDescriptorName)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .dynamic(true)
-            .expressionLanguageSupported(true)
-            .build();
+                .description("Specifies the value to send for the '" + propertyDescriptorName + "' HTTP Header")
+                .name(propertyDescriptorName)
+                .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+                .dynamic(true)
+                .expressionLanguageSupported(true)
+                .build();
     }
-    
-    
+
     @Override
     public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
         FlowFile flowFile = session.get();
-        if ( flowFile == null ) {
+        if (flowFile == null) {
             return;
         }
-        
+
         final String contextIdentifier = flowFile.getAttribute(HTTP_CONTEXT_ID);
-        if ( contextIdentifier == null ) {
+        if (contextIdentifier == null) {
             session.transfer(flowFile, REL_FAILURE);
-            getLogger().warn("Failed to respond to HTTP request for {} because FlowFile did not have an "
-                    + "'http.context.identifier' attribute", new Object[] {flowFile});
+            getLogger().warn("Failed to respond to HTTP request for {} because FlowFile did not have an 'http.context.identifier' attribute",
+                    new Object[]{flowFile});
             return;
         }
-        
+
         final String statusCodeValue = context.getProperty(STATUS_CODE).evaluateAttributeExpressions(flowFile).getValue();
-        if ( !isNumber(statusCodeValue) ) {
+        if (!isNumber(statusCodeValue)) {
             session.transfer(flowFile, REL_FAILURE);
-            getLogger().error("Failed to response to HTTP request for {} because status code was '{}', which is not a valid number", new Object[] {flowFile, statusCodeValue});
+            getLogger().error("Failed to response to HTTP request for {} because status code was '{}', which is not a valid number", new Object[]{flowFile, statusCodeValue});
         }
-        
+
         final HttpContextMap contextMap = context.getProperty(HTTP_CONTEXT_MAP).asControllerService(HttpContextMap.class);
         final HttpServletResponse response = contextMap.getResponse(contextIdentifier);
-        if ( response == null ) {
+        if (response == null) {
             session.transfer(flowFile, REL_FAILURE);
-            getLogger().error("Failed to respond to HTTP request for {} because FlowFile had an '{}' "
-                    + "attribute of {} but could not find an HTTP Response Object for this identifier", new Object[] {flowFile, HTTP_CONTEXT_ID, contextIdentifier});
+            getLogger().error("Failed to respond to HTTP request for {} because FlowFile had an '{}' attribute of {} but could not find an HTTP Response Object for this identifier",
+                    new Object[]{flowFile, HTTP_CONTEXT_ID, contextIdentifier});
             return;
         }
-        
+
         final int statusCode = Integer.parseInt(statusCodeValue);
         response.setStatus(statusCode);
-        
-        for ( final Map.Entry<PropertyDescriptor, String> entry : context.getProperties().entrySet() ) {
+
+        for (final Map.Entry<PropertyDescriptor, String> entry : context.getProperties().entrySet()) {
             final PropertyDescriptor descriptor = entry.getKey();
-            if ( descriptor.isDynamic() ) {
+            if (descriptor.isDynamic()) {
                 final String headerName = descriptor.getName();
                 final String headerValue = context.getProperty(descriptor).evaluateAttributeExpressions(flowFile).getValue();
-                
-                if ( !headerValue.trim().isEmpty() ) {
+
+                if (!headerValue.trim().isEmpty()) {
                     response.setHeader(headerName, headerValue);
                 }
             }
         }
-        
+
         try {
             session.exportTo(flowFile, response.getOutputStream());
             response.flushBuffer();
         } catch (final IOException ioe) {
             session.transfer(flowFile, REL_FAILURE);
-            getLogger().error("Failed to respond to HTTP request for {} due to {}", new Object[] {flowFile, ioe});
+            getLogger().
+                    error("Failed to respond to HTTP request for {} due to {}", new Object[]{flowFile, ioe});
             return;
         }
-        
+
         try {
             contextMap.complete(contextIdentifier);
         } catch (final IllegalStateException ise) {
-            getLogger().error("Failed to complete HTTP Transaction for {} due to {}", new Object[] {flowFile, ise});
+            getLogger().error("Failed to complete HTTP Transaction for {} due to {}", new Object[]{flowFile, ise});
             session.transfer(flowFile, REL_FAILURE);
             return;
         }
-        
+
         session.transfer(flowFile, REL_SUCCESS);
-        getLogger().info("Successfully responded to HTTP Request for {} with status code {}", new Object[] {flowFile, statusCode});
+        getLogger().info("Successfully responded to HTTP Request for {} with status code {}", new Object[]{flowFile, statusCode});
     }
 
     private static boolean isNumber(final String value) {
-        if ( value.length() == 0 ) {
+        if (value.length() == 0) {
             return false;
         }
-        
-        for (int i=0; i < value.length(); i++) {
-            if ( !Character.isDigit(value.charAt(i)) ) {
+
+        for (int i = 0; i < value.length(); i++) {
+            if (!Character.isDigit(value.charAt(i))) {
                 return false;
             }
         }
-        
+
         return true;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashAttribute.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashAttribute.java
index c5493e8..9187aad 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashAttribute.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashAttribute.java
@@ -115,12 +115,14 @@ import org.apache.nifi.processor.util.StandardValidators;
         + "and the value of the property is a regular expression that, if matched by the attribute value, will cause that attribute "
         + "to be used as part of the hash. If the regular expression contains a capturing group, only the value of the capturing "
         + "group will be used.")
-@WritesAttribute(attribute="<Hash Value Attribute Key>", description="This Processor adds an attribute whose value is the result of Hashing the existing FlowFile attributes. The name of this attribute is specified by the <Hash Value Attribute Key> property.")
-@DynamicProperty(name="A flowfile attribute key for attribute inspection", value="A Regular Expression", description="This regular expression is evaluated against the " +
- "flowfile attribute values. If the regular expression contains a capturing " +
- "group, the value of that group will be used when comparing flow file " +
- "attributes. Otherwise, the original flow file attribute's value will be used " +
- "if and only if the value matches the given regular expression.")
+@WritesAttribute(attribute = "<Hash Value Attribute Key>", description = "This Processor adds an attribute whose value is the result of "
+        + "Hashing the existing FlowFile attributes. The name of this attribute is specified by the <Hash Value Attribute Key> property.")
+@DynamicProperty(name = "A flowfile attribute key for attribute inspection", value = "A Regular Expression",
+        description = "This regular expression is evaluated against the "
+        + "flowfile attribute values. If the regular expression contains a capturing "
+        + "group, the value of that group will be used when comparing flow file "
+        + "attributes. Otherwise, the original flow file attribute's value will be used "
+        + "if and only if the value matches the given regular expression.")
 public class HashAttribute extends AbstractProcessor {
 
     public static final PropertyDescriptor HASH_VALUE_ATTRIBUTE = new PropertyDescriptor.Builder()
@@ -130,12 +132,19 @@ public class HashAttribute extends AbstractProcessor {
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("Used for FlowFiles that have a hash value added").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("Used for FlowFiles that are missing required attributes").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("Used for FlowFiles that have a hash value added")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("Used for FlowFiles that are missing required attributes")
+            .build();
 
     private Set<Relationship> relationships;
     private List<PropertyDescriptor> properties;
-    private final AtomicReference<Map<String, Pattern>> regexMapRef = new AtomicReference<>(Collections.<String, Pattern>emptyMap());
+    private final AtomicReference<Map<String, Pattern>> regexMapRef = new AtomicReference<>(Collections.
+            <String, Pattern>emptyMap());
 
     @Override
     protected void init(final ProcessorInitializationContext context) {
@@ -162,11 +171,12 @@ public class HashAttribute extends AbstractProcessor {
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
         return new PropertyDescriptor.Builder()
-                .name(propertyDescriptorName)
-                .addValidator(StandardValidators.createRegexValidator(0, 1, false))
-                .required(false)
-                .dynamic(true)
-                .build();
+                .name(propertyDescriptorName).
+                addValidator(StandardValidators.
+                        createRegexValidator(0, 1, false)).
+                required(false).
+                dynamic(true).
+                build();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashContent.java
index 99fd58b..526754e 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/HashContent.java
@@ -51,8 +51,10 @@ import org.apache.nifi.util.ObjectHolder;
 @EventDriven
 @SupportsBatching
 @Tags({"hash", "content", "MD5", "SHA-1", "SHA-256"})
-@CapabilityDescription("Calculates a hash value for the Content of a FlowFile and puts that hash value on the FlowFile as an attribute whose name is determined by the <Hash Attribute Name> property")
-@WritesAttribute(attribute="<Hash Attribute Name>", description="This Processor adds an attribute whose value is the result of Hashing the existing FlowFile attributes. The name of this attribute is specified by the <Hash Attribute Name> property")
+@CapabilityDescription("Calculates a hash value for the Content of a FlowFile and puts that hash value on the FlowFile as an attribute whose name "
+        + "is determined by the <Hash Attribute Name> property")
+@WritesAttribute(attribute = "<Hash Attribute Name>", description = "This Processor adds an attribute whose value is the result of Hashing the "
+        + "existing FlowFile attributes. The name of this attribute is specified by the <Hash Attribute Name> property")
 public class HashContent extends AbstractProcessor {
 
     public static final PropertyDescriptor ATTRIBUTE_NAME = new PropertyDescriptor.Builder()
@@ -71,10 +73,14 @@ public class HashContent extends AbstractProcessor {
             .defaultValue("MD5")
             .build();
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success")
-            .description("FlowFiles that are process successfully will be sent to this relationship").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure")
-            .description("Any FlowFile that cannot be processed successfully will be sent to this relationship without any attribute being added").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("FlowFiles that are process successfully will be sent to this relationship")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("Any FlowFile that cannot be processed successfully will be sent to this relationship without any attribute being added")
+            .build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java
index e31a465..5f16ff3 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java
@@ -47,17 +47,14 @@ import org.apache.tika.mime.MediaType;
 import org.apache.tika.mime.MimeType;
 import org.apache.tika.mime.MimeTypeException;
 
-
 /**
  * <p>
- * Attempts to detect the MIME Type of a FlowFile by examining its contents. If
- * the MIME Type is determined, it is added to an attribute with the name
- * mime.type. In addition, mime.extension is set if a common file extension is known.
+ * Attempts to detect the MIME Type of a FlowFile by examining its contents. If the MIME Type is determined, it is added to an attribute with the name mime.type. In addition, mime.extension is set if
+ * a common file extension is known.
  * </p>
  *
  * <p>
- * MIME Type detection is performed by Apache Tika; more information about
- * detection is available at http://tika.apache.org.
+ * MIME Type detection is performed by Apache Tika; more information about detection is available at http://tika.apache.org.
  *
  * <ul>
  * <li>application/flowfile-v3</li>
@@ -73,10 +70,14 @@ import org.apache.tika.mime.MimeTypeException;
         + "an attribute with the name 'mime.type' is added with the value being the MIME Type. If the MIME Type cannot be determined, "
         + "the value will be set to 'application/octet-stream'. In addition, the attribute mime.extension will be set if a common file "
         + "extension for the MIME Type is known.")
-@WritesAttribute(attribute="mime.type", description="This Processor sets the FlowFile's mime.type attribute to the detected MIME Type. If unable to detect the MIME Type, the attribute's value will be set to application/octet-stream")
+@WritesAttribute(attribute = "mime.type", description = "This Processor sets the FlowFile's mime.type attribute to the detected MIME Type. "
+        + "If unable to detect the MIME Type, the attribute's value will be set to application/octet-stream")
 public class IdentifyMimeType extends AbstractProcessor {
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("All FlowFiles are routed to success").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("All FlowFiles are routed to success")
+            .build();
 
     public static final MediaType FLOWFILE_V1 = new MediaType("application", "flowfile-v1");
     public static final MediaType FLOWFILE_V3 = new MediaType("application", "flowfile-v3");


[02/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextWithMapping.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextWithMapping.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextWithMapping.java
index 080f4b2..89f330b 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextWithMapping.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextWithMapping.java
@@ -36,15 +36,23 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testSimple() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
-        final String mappingFile = Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").toFile().getAbsolutePath();
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
+        final String mappingFile = Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").
+                toFile().
+                getAbsolutePath();
         runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, mappingFile);
 
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "roses are apple\n"
                 + "violets are blueberry\n"
@@ -55,8 +63,12 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testExpressionLanguageInText() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
-        final String mappingFile = Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").toFile().getAbsolutePath();
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
+        final String mappingFile = Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").
+                toFile().
+                getAbsolutePath();
         runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, mappingFile);
 
         String text = "${foo} red ${baz}";
@@ -64,8 +76,11 @@ public class TestReplaceTextWithMapping {
         runner.enqueue(text.getBytes());
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "${foo} apple ${baz}";
         assertEquals(expected, outputString);
@@ -73,19 +88,27 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testExpressionLanguageInText2() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
-        final String mappingFile = Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").toFile().getAbsolutePath();
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
+        final String mappingFile = Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").
+                toFile().
+                getAbsolutePath();
         runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, mappingFile);
         runner.setProperty(ReplaceTextWithMapping.REGEX, "\\|(.*?)\\|");
-        runner.setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
+        runner.
+                setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
 
         String text = "${foo}|red|${baz}";
 
         runner.enqueue(text.getBytes());
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "${foo}|apple|${baz}";
         assertEquals(expected, outputString);
@@ -93,19 +116,27 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testExpressionLanguageInText3() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
-        final String mappingFile = Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").toFile().getAbsolutePath();
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
+        final String mappingFile = Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").
+                toFile().
+                getAbsolutePath();
         runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, mappingFile);
         runner.setProperty(ReplaceTextWithMapping.REGEX, ".*\\|(.*?)\\|.*");
-        runner.setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
+        runner.
+                setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
 
         String text = "${foo}|red|${baz}";
 
         runner.enqueue(text.getBytes());
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "${foo}|apple|${baz}";
         assertEquals(expected, outputString);
@@ -113,16 +144,25 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testWithMatchingGroupAndContext() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
         runner.setProperty(ReplaceTextWithMapping.REGEX, "-(.*?)-");
-        runner.setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").toFile().getAbsolutePath());
-
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors.txt"));
+        runner.
+                setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").
+                toFile().
+                getAbsolutePath());
+
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors.txt"));
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "-roses- are -apple-\n"
                 + "violets are -blueberry-\n"
@@ -133,16 +173,25 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testBackReference() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
         runner.setProperty(ReplaceTextWithMapping.REGEX, "(\\S+)");
-        runner.setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-backreference-mapping.txt").toFile().getAbsolutePath());
-
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
+        runner.
+                setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-backreference-mapping.txt").
+                toFile().
+                getAbsolutePath());
+
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "roses are red apple\n"
                 + "violets are blue blueberry\n"
@@ -153,32 +202,47 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testRoutesToFailureIfTooLarge() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
         runner.setProperty(ReplaceTextWithMapping.REGEX, "[123]");
         runner.setProperty(ReplaceTextWithMapping.MAX_BUFFER_SIZE, "1 b");
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").toFile().getAbsolutePath());
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-mapping.txt").
+                toFile().
+                getAbsolutePath());
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("abc", "Good");
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors.txt"));
 
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_FAILURE, 1);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_FAILURE, 1);
     }
 
     @Test
     public void testBackReferenceWithTooLargeOfIndexIsEscaped() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
         runner.setProperty(ReplaceTextWithMapping.REGEX, "-(.*?)-");
-        runner.setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping.txt").toFile().getAbsolutePath());
-
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors.txt"));
+        runner.
+                setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping.txt").
+                toFile().
+                getAbsolutePath());
+
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors.txt"));
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "-roses- are -red$2 apple-\n"
                 + "violets are -blue$2 blueberry-\n"
@@ -189,14 +253,23 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testBackReferenceWithTooLargeOfIndexIsEscapedSimple() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping-simple.txt").toFile().getAbsolutePath());
-
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE,
+                Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-excessive-backreference-mapping-simple.txt").
+                toFile().
+                getAbsolutePath());
+
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "roses are red$1 apple\n"
                 + "violets are blue$1 blueberry\n"
@@ -207,16 +280,25 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testBackReferenceWithInvalidReferenceIsEscaped() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
         runner.setProperty(ReplaceTextWithMapping.REGEX, "(\\S+)");
-        runner.setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-invalid-backreference-mapping.txt").toFile().getAbsolutePath());
-
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
+        runner.
+                setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-invalid-backreference-mapping.txt").
+                toFile().
+                getAbsolutePath());
+
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "roses are red$d apple\n"
                 + "violets are blue$d blueberry\n"
@@ -227,16 +309,25 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testEscapingDollarSign() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
         runner.setProperty(ReplaceTextWithMapping.REGEX, "-(.*?)-");
-        runner.setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt").toFile().getAbsolutePath());
-
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors.txt"));
+        runner.
+                setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt").
+                toFile().
+                getAbsolutePath());
+
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors.txt"));
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "-roses- are -$1 apple-\n"
                 + "violets are -$1 blueberry-\n"
@@ -247,14 +338,22 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testEscapingDollarSignSimple() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt").toFile().getAbsolutePath());
-
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-escaped-dollar-mapping.txt").
+                toFile().
+                getAbsolutePath());
+
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "roses are $1 apple\n"
                 + "violets are $1 blueberry\n"
@@ -265,14 +364,22 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testReplaceWithEmptyString() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-blank-mapping.txt").toFile().getAbsolutePath());
-
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-blank-mapping.txt").
+                toFile().
+                getAbsolutePath());
+
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "roses are \n"
                 + "violets are \n"
@@ -283,14 +390,22 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testReplaceWithSpaceInString() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-space-mapping.txt").toFile().getAbsolutePath());
-
-        runner.enqueue(Paths.get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-space-mapping.txt").
+                toFile().
+                getAbsolutePath());
+
+        runner.enqueue(Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors-without-dashes.txt"));
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = "roses are really red\n"
                 + "violets are super blue\n"
@@ -301,17 +416,26 @@ public class TestReplaceTextWithMapping {
 
     @Test
     public void testWithNoMatch() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
         runner.setProperty(ReplaceTextWithMapping.REGEX, "-(.*?)-");
-        runner.setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-fruit-no-match-mapping.txt").toFile().getAbsolutePath());
-
-        final Path path = Paths.get("src/test/resources/TestReplaceTextWithMapping/colors.txt");
+        runner.
+                setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "1");
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-fruit-no-match-mapping.txt").
+                toFile().
+                getAbsolutePath());
+
+        final Path path = Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors.txt");
         runner.enqueue(path);
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).get(0);
+        runner.
+                assertAllFlowFilesTransferred(ReplaceTextWithMapping.REL_SUCCESS, 1);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceTextWithMapping.REL_SUCCESS).
+                get(0);
         String outputString = new String(out.toByteArray());
         String expected = new String(Files.readAllBytes(path));
         assertEquals(expected, outputString);
@@ -319,12 +443,18 @@ public class TestReplaceTextWithMapping {
 
     @Test(expected = java.lang.AssertionError.class)
     public void testMatchingGroupForLookupKeyTooLarge() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ReplaceTextWithMapping());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ReplaceTextWithMapping());
         runner.setProperty(ReplaceTextWithMapping.REGEX, "-(.*?)-");
-        runner.setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "2");
-        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.get("src/test/resources/TestReplaceTextWithMapping/color-mapping.txt").toFile().getAbsolutePath());
-
-        final Path path = Paths.get("src/test/resources/TestReplaceTextWithMapping/colors.txt");
+        runner.
+                setProperty(ReplaceTextWithMapping.MATCHING_GROUP_FOR_LOOKUP_KEY, "2");
+        runner.setProperty(ReplaceTextWithMapping.MAPPING_FILE, Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/color-mapping.txt").
+                toFile().
+                getAbsolutePath());
+
+        final Path path = Paths.
+                get("src/test/resources/TestReplaceTextWithMapping/colors.txt");
         runner.enqueue(path);
         runner.run();
     }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnAttribute.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnAttribute.java
index 7c2ea8b..56996fe 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnAttribute.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnAttribute.java
@@ -40,7 +40,8 @@ public class TestRouteOnAttribute {
     public void testInvalidOnMisconfiguredProperty() {
         final RouteOnAttribute proc = new RouteOnAttribute();
         final MockProcessContext ctx = new MockProcessContext(proc);
-        final ValidationResult validationResult = ctx.setProperty("RouteA", "${a:equals('b')"); // Missing closing brace
+        final ValidationResult validationResult = ctx.
+                setProperty("RouteA", "${a:equals('b')"); // Missing closing brace
         assertFalse(validationResult.isValid());
     }
 
@@ -48,13 +49,15 @@ public class TestRouteOnAttribute {
     public void testInvalidOnNonBooleanProperty() {
         final RouteOnAttribute proc = new RouteOnAttribute();
         final MockProcessContext ctx = new MockProcessContext(proc);
-        final ValidationResult validationResult = ctx.setProperty("RouteA", "${a:length()"); // Should be boolean
+        final ValidationResult validationResult = ctx.
+                setProperty("RouteA", "${a:length()"); // Should be boolean
         assertFalse(validationResult.isValid());
     }
 
     @Test
     public void testSimpleEquals() {
-        final TestRunner runner = TestRunners.newTestRunner(new RouteOnAttribute());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new RouteOnAttribute());
         runner.setProperty("RouteA", "${a:equals('b')}");
 
         final Map<String, String> attributes = new HashMap<>();
@@ -63,16 +66,24 @@ public class TestRouteOnAttribute {
 
         runner.run();
 
-        runner.assertAllFlowFilesTransferred(new Relationship.Builder().name("RouteA").build(), 1);
-        final List<MockFlowFile> flowFiles = runner.getFlowFilesForRelationship("RouteA");
-        flowFiles.get(0).assertAttributeEquals("a", "b");
-        flowFiles.get(0).assertAttributeEquals(RouteOnAttribute.ROUTE_ATTRIBUTE_KEY, "RouteA");
+        runner.assertAllFlowFilesTransferred(new Relationship.Builder().
+                name("RouteA").
+                build(), 1);
+        final List<MockFlowFile> flowFiles = runner.
+                getFlowFilesForRelationship("RouteA");
+        flowFiles.get(0).
+                assertAttributeEquals("a", "b");
+        flowFiles.get(0).
+                assertAttributeEquals(RouteOnAttribute.ROUTE_ATTRIBUTE_KEY, "RouteA");
     }
 
     @Test
     public void testMatchAll() {
-        final TestRunner runner = TestRunners.newTestRunner(new RouteOnAttribute());
-        runner.setProperty(RouteOnAttribute.ROUTE_STRATEGY, RouteOnAttribute.ROUTE_ALL_MATCH.getValue());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new RouteOnAttribute());
+        runner.
+                setProperty(RouteOnAttribute.ROUTE_STRATEGY, RouteOnAttribute.ROUTE_ALL_MATCH.
+                        getValue());
         runner.setProperty("RouteA", "${a:equals('b')}");
         runner.setProperty("RouteB", "${b:equals('a')}");
 
@@ -92,27 +103,36 @@ public class TestRouteOnAttribute {
 
         runner.run(4);
 
-        final List<MockFlowFile> match = runner.getFlowFilesForRelationship(RouteOnAttribute.REL_MATCH);
-        final List<MockFlowFile> noMatch = runner.getFlowFilesForRelationship(RouteOnAttribute.REL_NO_MATCH);
+        final List<MockFlowFile> match = runner.
+                getFlowFilesForRelationship(RouteOnAttribute.REL_MATCH);
+        final List<MockFlowFile> noMatch = runner.
+                getFlowFilesForRelationship(RouteOnAttribute.REL_NO_MATCH);
 
         assertEquals(1, match.size());
         assertEquals(3, noMatch.size());
 
         for (final MockFlowFile ff : noMatch) {
-            ff.assertAttributeEquals(RouteOnAttribute.ROUTE_ATTRIBUTE_KEY, "unmatched");
+            ff.
+                    assertAttributeEquals(RouteOnAttribute.ROUTE_ATTRIBUTE_KEY, "unmatched");
         }
 
-        final Map<String, String> matchedAttrs = match.iterator().next().getAttributes();
+        final Map<String, String> matchedAttrs = match.iterator().
+                next().
+                getAttributes();
         assertEquals("b", matchedAttrs.get("a"));
         assertEquals("a", matchedAttrs.get("b"));
-        assertEquals("matched", matchedAttrs.get(RouteOnAttribute.ROUTE_ATTRIBUTE_KEY));
+        assertEquals("matched", matchedAttrs.
+                get(RouteOnAttribute.ROUTE_ATTRIBUTE_KEY));
     }
 
     @Test
     public void testMatchAny() {
-        final TestRunner runner = TestRunners.newTestRunner(new RouteOnAttribute());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new RouteOnAttribute());
         runner.setThreadCount(4);
-        runner.setProperty(RouteOnAttribute.ROUTE_STRATEGY, RouteOnAttribute.ROUTE_ANY_MATCHES.getValue());
+        runner.
+                setProperty(RouteOnAttribute.ROUTE_STRATEGY, RouteOnAttribute.ROUTE_ANY_MATCHES.
+                        getValue());
         runner.setProperty("RouteA", "${a:equals('b')}");
         runner.setProperty("RouteB", "${b:equals('a')}");
 
@@ -132,16 +152,20 @@ public class TestRouteOnAttribute {
 
         runner.run(4);
 
-        final List<MockFlowFile> match = runner.getFlowFilesForRelationship(RouteOnAttribute.REL_MATCH);
-        final List<MockFlowFile> noMatch = runner.getFlowFilesForRelationship(RouteOnAttribute.REL_NO_MATCH);
+        final List<MockFlowFile> match = runner.
+                getFlowFilesForRelationship(RouteOnAttribute.REL_MATCH);
+        final List<MockFlowFile> noMatch = runner.
+                getFlowFilesForRelationship(RouteOnAttribute.REL_NO_MATCH);
 
         assertEquals(2, match.size());
         assertEquals(2, noMatch.size());
 
         // Get attributes for both matching FlowFiles
         final Iterator<MockFlowFile> itr = match.iterator();
-        final Map<String, String> attrs1 = itr.next().getAttributes();
-        final Map<String, String> attrs2 = itr.next().getAttributes();
+        final Map<String, String> attrs1 = itr.next().
+                getAttributes();
+        final Map<String, String> attrs2 = itr.next().
+                getAttributes();
 
         // Both matches should map a -> b
         assertEquals("b", attrs1.get("a"));

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnContent.java
index f42dbbd..96c281a 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestRouteOnContent.java
@@ -31,8 +31,10 @@ public class TestRouteOnContent {
 
     @Test
     public void testCloning() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new RouteOnContent());
-        runner.setProperty(RouteOnContent.MATCH_REQUIREMENT, RouteOnContent.MATCH_SUBSEQUENCE);
+        final TestRunner runner = TestRunners.
+                newTestRunner(new RouteOnContent());
+        runner.
+                setProperty(RouteOnContent.MATCH_REQUIREMENT, RouteOnContent.MATCH_SUBSEQUENCE);
         runner.setProperty("hello", "Hello");
         runner.setProperty("world", "World");
 
@@ -46,8 +48,10 @@ public class TestRouteOnContent {
 
     @Test
     public void testSubstituteAttributes() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new RouteOnContent());
-        runner.setProperty(RouteOnContent.MATCH_REQUIREMENT, RouteOnContent.MATCH_SUBSEQUENCE);
+        final TestRunner runner = TestRunners.
+                newTestRunner(new RouteOnContent());
+        runner.
+                setProperty(RouteOnContent.MATCH_REQUIREMENT, RouteOnContent.MATCH_SUBSEQUENCE);
         runner.setProperty("attr", "Hel${highLow}");
 
         final Map<String, String> attributes = new HashMap<>();
@@ -60,8 +64,10 @@ public class TestRouteOnContent {
 
     @Test
     public void testBufferSize() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new RouteOnContent());
-        runner.setProperty(RouteOnContent.MATCH_REQUIREMENT, RouteOnContent.MATCH_ALL);
+        final TestRunner runner = TestRunners.
+                newTestRunner(new RouteOnContent());
+        runner.
+                setProperty(RouteOnContent.MATCH_REQUIREMENT, RouteOnContent.MATCH_ALL);
         runner.setProperty(RouteOnContent.BUFFER_SIZE, "3 B");
         runner.setProperty("rel", "Hel");
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanAttribute.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanAttribute.java
index 6317131..982cf57 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanAttribute.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanAttribute.java
@@ -30,7 +30,8 @@ public class TestScanAttribute {
     @Test
     public void testSingleMatch() {
         final TestRunner runner = TestRunners.newTestRunner(new ScanAttribute());
-        runner.setProperty(ScanAttribute.DICTIONARY_FILE, "src/test/resources/ScanAttribute/dictionary1");
+        runner.
+                setProperty(ScanAttribute.DICTIONARY_FILE, "src/test/resources/ScanAttribute/dictionary1");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("abc", "world");
@@ -66,8 +67,10 @@ public class TestScanAttribute {
     @Test
     public void testAllMatch() {
         final TestRunner runner = TestRunners.newTestRunner(new ScanAttribute());
-        runner.setProperty(ScanAttribute.DICTIONARY_FILE, "src/test/resources/ScanAttribute/dictionary1");
-        runner.setProperty(ScanAttribute.MATCHING_CRITERIA, ScanAttribute.MATCH_CRITERIA_ALL);
+        runner.
+                setProperty(ScanAttribute.DICTIONARY_FILE, "src/test/resources/ScanAttribute/dictionary1");
+        runner.
+                setProperty(ScanAttribute.MATCHING_CRITERIA, ScanAttribute.MATCH_CRITERIA_ALL);
         runner.setProperty(ScanAttribute.ATTRIBUTE_PATTERN, "a.*");
 
         final Map<String, String> attributes = new HashMap<>();
@@ -103,7 +106,8 @@ public class TestScanAttribute {
     @Test
     public void testWithEmptyEntries() {
         final TestRunner runner = TestRunners.newTestRunner(new ScanAttribute());
-        runner.setProperty(ScanAttribute.DICTIONARY_FILE, "src/test/resources/ScanAttribute/dictionary-with-empty-new-lines");
+        runner.
+                setProperty(ScanAttribute.DICTIONARY_FILE, "src/test/resources/ScanAttribute/dictionary-with-empty-new-lines");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("abc", "");
@@ -123,7 +127,8 @@ public class TestScanAttribute {
     @Test
     public void testWithDictionaryFilter() {
         final TestRunner runner = TestRunners.newTestRunner(new ScanAttribute());
-        runner.setProperty(ScanAttribute.DICTIONARY_FILE, "src/test/resources/ScanAttribute/dictionary-with-extra-info");
+        runner.
+                setProperty(ScanAttribute.DICTIONARY_FILE, "src/test/resources/ScanAttribute/dictionary-with-extra-info");
         runner.setProperty(ScanAttribute.DICTIONARY_FILTER, "(.*)<greeting>");
 
         final Map<String, String> attributes = new HashMap<>();

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanContent.java
index 8c36845..442aa63 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestScanContent.java
@@ -50,15 +50,22 @@ public class TestScanContent {
             final byte[] termBytes = baos.toByteArray();
 
             final Path dictionaryPath = Paths.get("target/dictionary");
-            Files.write(dictionaryPath, termBytes, StandardOpenOption.CREATE, StandardOpenOption.WRITE);
+            Files.
+                    write(dictionaryPath, termBytes, StandardOpenOption.CREATE, StandardOpenOption.WRITE);
 
-            final TestRunner runner = TestRunners.newTestRunner(new ScanContent());
+            final TestRunner runner = TestRunners.
+                    newTestRunner(new ScanContent());
             runner.setThreadCount(1);
-            runner.setProperty(ScanContent.DICTIONARY, dictionaryPath.toString());
-            runner.setProperty(ScanContent.DICTIONARY_ENCODING, ScanContent.BINARY_ENCODING);
+            runner.
+                    setProperty(ScanContent.DICTIONARY, dictionaryPath.
+                            toString());
+            runner.
+                    setProperty(ScanContent.DICTIONARY_ENCODING, ScanContent.BINARY_ENCODING);
 
-            runner.enqueue(Paths.get("src/test/resources/TestScanContent/helloWorld"));
-            runner.enqueue(Paths.get("src/test/resources/TestScanContent/wellthengood-bye"));
+            runner.enqueue(Paths.
+                    get("src/test/resources/TestScanContent/helloWorld"));
+            runner.enqueue(Paths.
+                    get("src/test/resources/TestScanContent/wellthengood-bye"));
             runner.enqueue(new byte[0]);
 
             while (!runner.isQueueEmpty()) {
@@ -72,13 +79,18 @@ public class TestScanContent {
 
             runner.assertTransferCount(ScanContent.REL_MATCH, 2);
             runner.assertTransferCount(ScanContent.REL_NO_MATCH, 1);
-            final List<MockFlowFile> matched = runner.getFlowFilesForRelationship(ScanContent.REL_MATCH);
-            final List<MockFlowFile> unmatched = runner.getFlowFilesForRelationship(ScanContent.REL_NO_MATCH);
+            final List<MockFlowFile> matched = runner.
+                    getFlowFilesForRelationship(ScanContent.REL_MATCH);
+            final List<MockFlowFile> unmatched = runner.
+                    getFlowFilesForRelationship(ScanContent.REL_NO_MATCH);
 
-            matched.get(0).assertAttributeEquals(ScanContent.MATCH_ATTRIBUTE_KEY, "hello");
-            matched.get(1).assertAttributeEquals(ScanContent.MATCH_ATTRIBUTE_KEY, "good-bye");
+            matched.get(0).
+                    assertAttributeEquals(ScanContent.MATCH_ATTRIBUTE_KEY, "hello");
+            matched.get(1).
+                    assertAttributeEquals(ScanContent.MATCH_ATTRIBUTE_KEY, "good-bye");
 
-            unmatched.get(0).assertAttributeNotExists(ScanContent.MATCH_ATTRIBUTE_KEY);
+            unmatched.get(0).
+                    assertAttributeNotExists(ScanContent.MATCH_ATTRIBUTE_KEY);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSegmentContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSegmentContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSegmentContent.java
index a712f7c..7a6001c 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSegmentContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSegmentContent.java
@@ -32,13 +32,15 @@ public class TestSegmentContent {
 
     @Test
     public void test() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new SegmentContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new SegmentContent());
         testRunner.setProperty(SegmentContent.SIZE, "4 B");
 
         testRunner.enqueue(new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9});
         testRunner.run();
 
-        final List<MockFlowFile> flowFiles = testRunner.getFlowFilesForRelationship(SegmentContent.REL_SEGMENTS);
+        final List<MockFlowFile> flowFiles = testRunner.
+                getFlowFilesForRelationship(SegmentContent.REL_SEGMENTS);
         assertEquals(3, flowFiles.size());
 
         final MockFlowFile out1 = flowFiles.get(0);
@@ -52,14 +54,17 @@ public class TestSegmentContent {
 
     @Test
     public void testTransferSmall() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new SegmentContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new SegmentContent());
         testRunner.setProperty(SegmentContent.SIZE, "4 KB");
 
         testRunner.enqueue(new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9});
         testRunner.run();
 
         testRunner.assertTransferCount(SegmentContent.REL_SEGMENTS, 1);
-        final MockFlowFile out1 = testRunner.getFlowFilesForRelationship(SegmentContent.REL_SEGMENTS).get(0);
+        final MockFlowFile out1 = testRunner.
+                getFlowFilesForRelationship(SegmentContent.REL_SEGMENTS).
+                get(0);
         out1.assertContentEquals(new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9});
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestServer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestServer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestServer.java
index abdff6e..b9c623e 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestServer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestServer.java
@@ -28,8 +28,9 @@ import org.eclipse.jetty.util.ssl.SslContextFactory;
  * Test server to assist with unit tests that requires a server to be stood up.
  */
 public class TestServer {
+
     public static final String NEED_CLIENT_AUTH = "clientAuth";
-    
+
     private Server jetty;
     private boolean secure = false;
 
@@ -39,29 +40,23 @@ public class TestServer {
     public TestServer() {
         createServer(null);
     }
-    
+
     /**
      * Creates the test server.
      *
-     * @param sslProperties     SSLProps to be used in the secure connection. The keys
-     *                          should should use the StandardSSLContextService properties. 
+     * @param sslProperties SSLProps to be used in the secure connection. The
+     * keys should should use the StandardSSLContextService properties.
      */
     public TestServer(final Map<String, String> sslProperties) {
         createServer(sslProperties);
     }
 
-    /**
-     * Creates the server.
-     *
-     * @param webappContext
-     * @return
-     */
     private void createServer(final Map<String, String> sslProperties) {
         jetty = new Server();
 
         // create the unsecure connector
         createConnector();
-        
+
         // create the secure connector if sslProperties are specified
         if (sslProperties != null) {
             createSecureConnector(sslProperties);
@@ -78,29 +73,30 @@ public class TestServer {
         http.setPort(0);
         jetty.addConnector(http);
     }
-    
-    /**
-     * Creates the https connector.
-     *
-     * @return
-     */
+
     private void createSecureConnector(final Map<String, String> sslProperties) {
         SslContextFactory ssl = new SslContextFactory();
-        
-        if ( sslProperties.get(StandardSSLContextService.KEYSTORE.getName()) != null ) {
-            ssl.setKeyStorePath(sslProperties.get(StandardSSLContextService.KEYSTORE.getName()));
-            ssl.setKeyStorePassword(sslProperties.get(StandardSSLContextService.KEYSTORE_PASSWORD.getName()));
-            ssl.setKeyStoreType(sslProperties.get(StandardSSLContextService.KEYSTORE_TYPE.getName()));
+
+        if (sslProperties.get(StandardSSLContextService.KEYSTORE.getName()) != null) {
+            ssl.setKeyStorePath(sslProperties.
+                    get(StandardSSLContextService.KEYSTORE.getName()));
+            ssl.setKeyStorePassword(sslProperties.
+                    get(StandardSSLContextService.KEYSTORE_PASSWORD.getName()));
+            ssl.setKeyStoreType(sslProperties.
+                    get(StandardSSLContextService.KEYSTORE_TYPE.getName()));
         }
-        
-        if ( sslProperties.get(StandardSSLContextService.TRUSTSTORE.getName()) != null ) {
-            ssl.setTrustStorePath(sslProperties.get(StandardSSLContextService.TRUSTSTORE.getName()));
-            ssl.setTrustStorePassword(sslProperties.get(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName()));
-            ssl.setTrustStoreType(sslProperties.get(StandardSSLContextService.TRUSTSTORE_TYPE.getName()));
+
+        if (sslProperties.get(StandardSSLContextService.TRUSTSTORE.getName()) != null) {
+            ssl.setTrustStorePath(sslProperties.
+                    get(StandardSSLContextService.TRUSTSTORE.getName()));
+            ssl.setTrustStorePassword(sslProperties.
+                    get(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName()));
+            ssl.setTrustStoreType(sslProperties.
+                    get(StandardSSLContextService.TRUSTSTORE_TYPE.getName()));
         }
-        
+
         final String clientAuth = sslProperties.get(NEED_CLIENT_AUTH);
-        if ( clientAuth == null ) {
+        if (clientAuth == null) {
             ssl.setNeedClientAuth(true);
         } else {
             ssl.setNeedClientAuth(Boolean.parseBoolean(clientAuth));
@@ -114,7 +110,7 @@ public class TestServer {
 
         // add the connector
         jetty.addConnector(https);
-        
+
         // mark secure as enabled
         secure = true;
     }
@@ -128,25 +124,15 @@ public class TestServer {
             }
         }
     }
-    
+
     public void addHandler(Handler handler) {
         ((HandlerCollection) jetty.getHandler()).addHandler(handler);
     }
-    
-    /**
-     * Starts the server.
-     *
-     * @throws Exception
-     */
+
     public void startServer() throws Exception {
         jetty.start();
     }
 
-    /**
-     * Stops the server.
-     *
-     * @throws Exception
-     */
     public void shutdownServer() throws Exception {
         jetty.stop();
         jetty.destroy();
@@ -158,7 +144,7 @@ public class TestServer {
         }
         return ((ServerConnector) jetty.getConnectors()[0]).getLocalPort();
     }
-    
+
     private int getSecurePort() {
         if (!jetty.isStarted()) {
             throw new IllegalStateException("Jetty server not started");
@@ -166,20 +152,10 @@ public class TestServer {
         return ((ServerConnector) jetty.getConnectors()[1]).getLocalPort();
     }
 
-    /**
-     * Returns the url for the server.
-     *
-     * @return
-     */
     public String getUrl() {
         return "http://localhost:" + getPort();
     }
-    
-    /**
-     * Returns the secure url for the server.
-     * 
-     * @return 
-     */
+
     public String getSecureUrl() {
         String url = null;
         if (secure) {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitContent.java
index 07c255b..ea3da22 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitContent.java
@@ -32,10 +32,13 @@ public class TestSplitContent {
     @Test
     public void testTextFormatLeadingPosition() {
         final TestRunner runner = TestRunners.newTestRunner(new SplitContent());
-        runner.setProperty(SplitContent.FORMAT, SplitContent.UTF8_FORMAT.getValue());
+        runner.setProperty(SplitContent.FORMAT, SplitContent.UTF8_FORMAT.
+                getValue());
         runner.setProperty(SplitContent.BYTE_SEQUENCE, "ub");
         runner.setProperty(SplitContent.KEEP_SEQUENCE, "true");
-        runner.setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.LEADING_POSITION.getValue());
+        runner.
+                setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.LEADING_POSITION.
+                        getValue());
 
         runner.enqueue("rub-a-dub-dub".getBytes());
         runner.run();
@@ -44,23 +47,31 @@ public class TestSplitContent {
         runner.assertTransferCount(SplitContent.REL_SPLITS, 4);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
-        splits.get(0).assertContentEquals("r");
-        splits.get(1).assertContentEquals("ub-a-d");
-        splits.get(2).assertContentEquals("ub-d");
-        splits.get(3).assertContentEquals("ub");
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        splits.get(0).
+                assertContentEquals("r");
+        splits.get(1).
+                assertContentEquals("ub-a-d");
+        splits.get(2).
+                assertContentEquals("ub-d");
+        splits.get(3).
+                assertContentEquals("ub");
     }
-    
-    
+
     @Test
     public void testTextFormatSplits() {
         final TestRunner runner = TestRunners.newTestRunner(new SplitContent());
-        runner.setProperty(SplitContent.FORMAT, SplitContent.UTF8_FORMAT.getValue());
+        runner.setProperty(SplitContent.FORMAT, SplitContent.UTF8_FORMAT.
+                getValue());
         runner.setProperty(SplitContent.BYTE_SEQUENCE, "test");
         runner.setProperty(SplitContent.KEEP_SEQUENCE, "true");
-        runner.setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.LEADING_POSITION.getValue());
+        runner.
+                setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.LEADING_POSITION.
+                        getValue());
 
-        final byte[] input = "This is a test. This is another test. And this is yet another test. Finally this is the last Test.".getBytes();
+        final byte[] input = "This is a test. This is another test. And this is yet another test. Finally this is the last Test.".
+                getBytes();
         runner.enqueue(input);
         runner.run();
 
@@ -68,75 +79,109 @@ public class TestSplitContent {
         runner.assertTransferCount(SplitContent.REL_SPLITS, 4);
 
         runner.assertQueueEmpty();
-        List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
-        splits.get(0).assertContentEquals("This is a ");
-        splits.get(1).assertContentEquals("test. This is another ");
-        splits.get(2).assertContentEquals("test. And this is yet another ");
-        splits.get(3).assertContentEquals("test. Finally this is the last Test.");
+        List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        splits.get(0).
+                assertContentEquals("This is a ");
+        splits.get(1).
+                assertContentEquals("test. This is another ");
+        splits.get(2).
+                assertContentEquals("test. And this is yet another ");
+        splits.get(3).
+                assertContentEquals("test. Finally this is the last Test.");
         runner.clearTransferState();
-        
+
         runner.setProperty(SplitContent.KEEP_SEQUENCE, "false");
         runner.enqueue(input);
         runner.run();
         runner.assertTransferCount(SplitContent.REL_ORIGINAL, 1);
         runner.assertTransferCount(SplitContent.REL_SPLITS, 4);
         splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
-        splits.get(0).assertContentEquals("This is a ");
-        splits.get(1).assertContentEquals(". This is another ");
-        splits.get(2).assertContentEquals(". And this is yet another ");
-        splits.get(3).assertContentEquals(". Finally this is the last Test.");
+        splits.get(0).
+                assertContentEquals("This is a ");
+        splits.get(1).
+                assertContentEquals(". This is another ");
+        splits.get(2).
+                assertContentEquals(". And this is yet another ");
+        splits.get(3).
+                assertContentEquals(". Finally this is the last Test.");
         runner.clearTransferState();
-        
+
         runner.setProperty(SplitContent.KEEP_SEQUENCE, "true");
-        runner.setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.TRAILING_POSITION.getValue());
+        runner.
+                setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.TRAILING_POSITION.
+                        getValue());
         runner.enqueue(input);
         runner.run();
         runner.assertTransferCount(SplitContent.REL_ORIGINAL, 1);
         runner.assertTransferCount(SplitContent.REL_SPLITS, 4);
         splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
-        splits.get(0).assertContentEquals("This is a test");
-        splits.get(1).assertContentEquals(". This is another test");
-        splits.get(2).assertContentEquals(". And this is yet another test");
-        splits.get(3).assertContentEquals(". Finally this is the last Test.");
+        splits.get(0).
+                assertContentEquals("This is a test");
+        splits.get(1).
+                assertContentEquals(". This is another test");
+        splits.get(2).
+                assertContentEquals(". And this is yet another test");
+        splits.get(3).
+                assertContentEquals(". Finally this is the last Test.");
         runner.clearTransferState();
-        
+
         runner.setProperty(SplitContent.KEEP_SEQUENCE, "true");
-        runner.setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.TRAILING_POSITION.getValue());
-        runner.enqueue("This is a test. This is another test. And this is yet another test. Finally this is the last test".getBytes());
+        runner.
+                setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.TRAILING_POSITION.
+                        getValue());
+        runner.
+                enqueue("This is a test. This is another test. And this is yet another test. Finally this is the last test".
+                        getBytes());
         runner.run();
         runner.assertTransferCount(SplitContent.REL_ORIGINAL, 1);
         runner.assertTransferCount(SplitContent.REL_SPLITS, 4);
         splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
-        splits.get(0).assertContentEquals("This is a test");
-        splits.get(1).assertContentEquals(". This is another test");
-        splits.get(2).assertContentEquals(". And this is yet another test");
-        splits.get(3).assertContentEquals(". Finally this is the last test");
+        splits.get(0).
+                assertContentEquals("This is a test");
+        splits.get(1).
+                assertContentEquals(". This is another test");
+        splits.get(2).
+                assertContentEquals(". And this is yet another test");
+        splits.get(3).
+                assertContentEquals(". Finally this is the last test");
         runner.clearTransferState();
-        
+
         runner.setProperty(SplitContent.KEEP_SEQUENCE, "true");
-        runner.setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.LEADING_POSITION.getValue());
-        runner.enqueue("This is a test. This is another test. And this is yet another test. Finally this is the last test".getBytes());
+        runner.
+                setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.LEADING_POSITION.
+                        getValue());
+        runner.
+                enqueue("This is a test. This is another test. And this is yet another test. Finally this is the last test".
+                        getBytes());
         runner.run();
         runner.assertTransferCount(SplitContent.REL_ORIGINAL, 1);
         runner.assertTransferCount(SplitContent.REL_SPLITS, 5);
         splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
-        splits.get(0).assertContentEquals("This is a ");
-        splits.get(1).assertContentEquals("test. This is another ");
-        splits.get(2).assertContentEquals("test. And this is yet another ");
-        splits.get(3).assertContentEquals("test. Finally this is the last ");
-        splits.get(4).assertContentEquals("test");
-        
+        splits.get(0).
+                assertContentEquals("This is a ");
+        splits.get(1).
+                assertContentEquals("test. This is another ");
+        splits.get(2).
+                assertContentEquals("test. And this is yet another ");
+        splits.get(3).
+                assertContentEquals("test. Finally this is the last ");
+        splits.get(4).
+                assertContentEquals("test");
+
         runner.clearTransferState();
     }
-    
-    
+
     @Test
     public void testTextFormatTrailingPosition() {
         final TestRunner runner = TestRunners.newTestRunner(new SplitContent());
-        runner.setProperty(SplitContent.FORMAT, SplitContent.UTF8_FORMAT.getValue());
+        runner.setProperty(SplitContent.FORMAT, SplitContent.UTF8_FORMAT.
+                getValue());
         runner.setProperty(SplitContent.BYTE_SEQUENCE, "ub");
         runner.setProperty(SplitContent.KEEP_SEQUENCE, "true");
-        runner.setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.TRAILING_POSITION.getValue());
+        runner.
+                setProperty(SplitContent.BYTE_SEQUENCE_LOCATION, SplitContent.TRAILING_POSITION.
+                        getValue());
 
         runner.enqueue("rub-a-dub-dub".getBytes());
         runner.run();
@@ -145,27 +190,32 @@ public class TestSplitContent {
         runner.assertTransferCount(SplitContent.REL_SPLITS, 3);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
-        splits.get(0).assertContentEquals("rub");
-        splits.get(1).assertContentEquals("-a-dub");
-        splits.get(2).assertContentEquals("-dub");
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        splits.get(0).
+                assertContentEquals("rub");
+        splits.get(1).
+                assertContentEquals("-a-dub");
+        splits.get(2).
+                assertContentEquals("-dub");
     }
-    
-    
+
     @Test
     public void testSmallSplits() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new SplitContent());
         runner.setProperty(SplitContent.KEEP_SEQUENCE, "false");
         runner.setProperty(SplitContent.BYTE_SEQUENCE.getName(), "FFFF");
 
-        runner.enqueue(new byte[]{1, 2, 3, 4, 5, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, 5, 4, 3, 2, 1});
+        runner.
+                enqueue(new byte[]{1, 2, 3, 4, 5, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, 5, 4, 3, 2, 1});
         runner.run();
 
         runner.assertTransferCount(SplitContent.REL_ORIGINAL, 1);
         runner.assertTransferCount(SplitContent.REL_SPLITS, 2);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
         final MockFlowFile split1 = splits.get(0);
         final MockFlowFile split2 = splits.get(1);
 
@@ -186,7 +236,8 @@ public class TestSplitContent {
         runner.assertTransferCount(SplitContent.REL_SPLITS, 2);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
         final MockFlowFile split1 = splits.get(0);
         final MockFlowFile split2 = splits.get(1);
 
@@ -210,7 +261,8 @@ public class TestSplitContent {
         runner.assertTransferCount(SplitContent.REL_SPLITS, 2);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
         final MockFlowFile split1 = splits.get(0);
         final MockFlowFile split2 = splits.get(1);
 
@@ -235,7 +287,8 @@ public class TestSplitContent {
         runner.assertTransferCount(SplitContent.REL_SPLITS, 2);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
         final MockFlowFile split1 = splits.get(0);
         final MockFlowFile split2 = splits.get(1);
 
@@ -257,7 +310,8 @@ public class TestSplitContent {
         runner.assertTransferCount(SplitContent.REL_SPLITS, 1);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
         final MockFlowFile split1 = splits.get(0);
 
         split1.assertContentEquals(new byte[]{1, 2, 3, 4});
@@ -277,7 +331,8 @@ public class TestSplitContent {
         runner.assertTransferCount(SplitContent.REL_SPLITS, 1);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
         final MockFlowFile split1 = splits.get(0);
 
         split1.assertContentEquals(new byte[]{1, 2, 3, 4, 5, 5, 5, 5});
@@ -297,7 +352,8 @@ public class TestSplitContent {
         runner.assertTransferCount(SplitContent.REL_SPLITS, 1);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
         final MockFlowFile split1 = splits.get(0);
 
         split1.assertContentEquals(new byte[]{1, 2, 3, 4});
@@ -317,9 +373,12 @@ public class TestSplitContent {
         runner.assertTransferCount(SplitContent.REL_SPLITS, 2);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
-        splits.get(0).assertContentEquals(new byte[]{5, 5, 5, 5});
-        splits.get(1).assertContentEquals(new byte[]{1, 2, 3, 4});
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        splits.get(0).
+                assertContentEquals(new byte[]{5, 5, 5, 5});
+        splits.get(1).
+                assertContentEquals(new byte[]{1, 2, 3, 4});
     }
 
     @Test
@@ -328,23 +387,29 @@ public class TestSplitContent {
         runner.setProperty(SplitContent.KEEP_SEQUENCE, "true");
         runner.setProperty(SplitContent.BYTE_SEQUENCE.getName(), "FFFF");
 
-        runner.enqueue(new byte[]{1, 2, 3, 4, 5, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, 5, 4, 3, 2, 1});
+        runner.
+                enqueue(new byte[]{1, 2, 3, 4, 5, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, 5, 4, 3, 2, 1});
         runner.run();
 
         runner.assertTransferCount(SplitContent.REL_ORIGINAL, 1);
         runner.assertTransferCount(SplitContent.REL_SPLITS, 2);
 
         runner.assertQueueEmpty();
-        final List<MockFlowFile> splits = runner.getFlowFilesForRelationship(SplitContent.REL_SPLITS);
+        final List<MockFlowFile> splits = runner.
+                getFlowFilesForRelationship(SplitContent.REL_SPLITS);
         final MockFlowFile split1 = splits.get(0);
         final MockFlowFile split2 = splits.get(1);
 
-        split1.assertContentEquals(new byte[]{1, 2, 3, 4, 5, (byte) 0xFF, (byte) 0xFF});
+        split1.
+                assertContentEquals(new byte[]{1, 2, 3, 4, 5, (byte) 0xFF, (byte) 0xFF});
         split2.assertContentEquals(new byte[]{(byte) 0xFF, 5, 4, 3, 2, 1});
 
-        final TestRunner mergeRunner = TestRunners.newTestRunner(new MergeContent());
-        mergeRunner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
-        mergeRunner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
+        final TestRunner mergeRunner = TestRunners.
+                newTestRunner(new MergeContent());
+        mergeRunner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
+        mergeRunner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
         mergeRunner.enqueue(splits.toArray(new MockFlowFile[0]));
         mergeRunner.run();
 
@@ -352,7 +417,9 @@ public class TestSplitContent {
         mergeRunner.assertTransferCount(MergeContent.REL_ORIGINAL, 2);
         mergeRunner.assertTransferCount(MergeContent.REL_FAILURE, 0);
 
-        final List<MockFlowFile> packed = mergeRunner.getFlowFilesForRelationship(MergeContent.REL_MERGED);
-        packed.get(0).assertContentEquals(new byte[]{1, 2, 3, 4, 5, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, 5, 4, 3, 2, 1});
+        final List<MockFlowFile> packed = mergeRunner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED);
+        packed.get(0).
+                assertContentEquals(new byte[]{1, 2, 3, 4, 5, (byte) 0xFF, (byte) 0xFF, (byte) 0xFF, 5, 4, 3, 2, 1});
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitJson.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitJson.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitJson.java
index fc07386..9503182 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitJson.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestSplitJson.java
@@ -35,15 +35,18 @@ import java.nio.file.Paths;
 
 public class TestSplitJson {
 
-    private static final Path JSON_SNIPPET = Paths.get("src/test/resources/TestJson/json-sample.json");
-    private static final Path XML_SNIPPET = Paths.get("src/test/resources/TestXml/xml-snippet.xml");
+    private static final Path JSON_SNIPPET = Paths.
+            get("src/test/resources/TestJson/json-sample.json");
+    private static final Path XML_SNIPPET = Paths.
+            get("src/test/resources/TestXml/xml-snippet.xml");
 
     @Test(expected = AssertionError.class)
     public void testInvalidJsonPath() {
         final TestRunner testRunner = TestRunners.newTestRunner(new SplitJson());
         testRunner.setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$..");
 
-        Assert.fail("An improper JsonPath expression was not detected as being invalid.");
+        Assert.
+                fail("An improper JsonPath expression was not detected as being invalid.");
     }
 
     @Test
@@ -55,7 +58,9 @@ public class TestSplitJson {
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(SplitJson.REL_FAILURE, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(SplitJson.REL_FAILURE).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(SplitJson.REL_FAILURE).
+                get(0);
         // Verify that the content was unchanged
         out.assertContentEquals(XML_SNIPPET);
     }
@@ -71,28 +76,36 @@ public class TestSplitJson {
         Relationship expectedRel = SplitJson.REL_FAILURE;
 
         testRunner.assertAllFlowFilesTransferred(expectedRel, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(expectedRel).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(expectedRel).
+                get(0);
         out.assertContentEquals(JSON_SNIPPET);
     }
 
     @Test
     public void testSplit_arrayResult_oneValue() throws Exception {
         final TestRunner testRunner = TestRunners.newTestRunner(new SplitJson());
-        testRunner.setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$[0].range[?(@ == 0)]");
+        testRunner.
+                setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$[0].range[?(@ == 0)]");
 
         testRunner.enqueue(JSON_SNIPPET);
         testRunner.run();
 
         testRunner.assertTransferCount(SplitJson.REL_ORIGINAL, 1);
         testRunner.assertTransferCount(SplitJson.REL_SPLIT, 1);
-        testRunner.getFlowFilesForRelationship(SplitJson.REL_ORIGINAL).get(0).assertContentEquals(JSON_SNIPPET);
-        testRunner.getFlowFilesForRelationship(SplitJson.REL_SPLIT).get(0).assertContentEquals("0");
+        testRunner.getFlowFilesForRelationship(SplitJson.REL_ORIGINAL).
+                get(0).
+                assertContentEquals(JSON_SNIPPET);
+        testRunner.getFlowFilesForRelationship(SplitJson.REL_SPLIT).
+                get(0).
+                assertContentEquals("0");
     }
 
     @Test
     public void testSplit_arrayResult_multipleValues() throws Exception {
         final TestRunner testRunner = TestRunners.newTestRunner(new SplitJson());
-        testRunner.setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$[0].range");
+        testRunner.
+                setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$[0].range");
 
         testRunner.enqueue(JSON_SNIPPET);
         testRunner.run();
@@ -101,49 +114,63 @@ public class TestSplitJson {
 
         testRunner.assertTransferCount(SplitJson.REL_ORIGINAL, 1);
         testRunner.assertTransferCount(SplitJson.REL_SPLIT, numSplitsExpected);
-        final MockFlowFile originalOut = testRunner.getFlowFilesForRelationship(SplitJson.REL_ORIGINAL).get(0);
+        final MockFlowFile originalOut = testRunner.
+                getFlowFilesForRelationship(SplitJson.REL_ORIGINAL).
+                get(0);
         originalOut.assertContentEquals(JSON_SNIPPET);
     }
 
     @Test
     public void testSplit_arrayResult_nonScalarValues() throws Exception {
         final TestRunner testRunner = TestRunners.newTestRunner(new SplitJson());
-        testRunner.setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$[*].name");
+        testRunner.
+                setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$[*].name");
 
         testRunner.enqueue(JSON_SNIPPET);
         testRunner.run();
 
         testRunner.assertTransferCount(SplitJson.REL_ORIGINAL, 1);
         testRunner.assertTransferCount(SplitJson.REL_SPLIT, 7);
-        testRunner.getFlowFilesForRelationship(SplitJson.REL_ORIGINAL).get(0).assertContentEquals(JSON_SNIPPET);
-        testRunner.getFlowFilesForRelationship(SplitJson.REL_SPLIT).get(0).assertContentEquals("{\"first\":\"Shaffer\",\"last\":\"Pearson\"}");
+        testRunner.getFlowFilesForRelationship(SplitJson.REL_ORIGINAL).
+                get(0).
+                assertContentEquals(JSON_SNIPPET);
+        testRunner.getFlowFilesForRelationship(SplitJson.REL_SPLIT).
+                get(0).
+                assertContentEquals("{\"first\":\"Shaffer\",\"last\":\"Pearson\"}");
     }
 
     @Test
     public void testSplit_pathNotFound() throws Exception {
         final TestRunner testRunner = TestRunners.newTestRunner(new SplitJson());
-        testRunner.setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$.nonexistent");
+        testRunner.
+                setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$.nonexistent");
 
         testRunner.enqueue(JSON_SNIPPET);
         testRunner.run();
 
         testRunner.assertTransferCount(SplitJson.REL_FAILURE, 1);
-        testRunner.getFlowFilesForRelationship(SplitJson.REL_FAILURE).get(0).assertContentEquals(JSON_SNIPPET);
+        testRunner.getFlowFilesForRelationship(SplitJson.REL_FAILURE).
+                get(0).
+                assertContentEquals(JSON_SNIPPET);
     }
 
     @Test
     public void testSplit_pathToNullValue() throws Exception {
         final TestRunner testRunner = TestRunners.newTestRunner(new SplitJson());
-        testRunner.setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$.nullField");
+        testRunner.
+                setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$.nullField");
 
-        ProcessSession session = testRunner.getProcessSessionFactory().createSession();
+        ProcessSession session = testRunner.getProcessSessionFactory().
+                createSession();
         FlowFile ff = session.create();
 
         ff = session.write(ff, new OutputStreamCallback() {
             @Override
             public void process(OutputStream out) throws IOException {
                 try (OutputStream outputStream = new BufferedOutputStream(out)) {
-                    outputStream.write("{\"stringField\": \"String Value\", \"nullField\": null}".getBytes(StandardCharsets.UTF_8));
+                    outputStream.
+                            write("{\"stringField\": \"String Value\", \"nullField\": null}".
+                                    getBytes(StandardCharsets.UTF_8));
                 }
             }
         });
@@ -157,16 +184,20 @@ public class TestSplitJson {
     @Test
     public void testSplit_pathToArrayWithNulls_emptyStringRepresentation() throws Exception {
         final TestRunner testRunner = TestRunners.newTestRunner(new SplitJson());
-        testRunner.setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$.arrayOfNulls");
+        testRunner.
+                setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$.arrayOfNulls");
 
-        ProcessSession session = testRunner.getProcessSessionFactory().createSession();
+        ProcessSession session = testRunner.getProcessSessionFactory().
+                createSession();
         FlowFile ff = session.create();
 
         ff = session.write(ff, new OutputStreamCallback() {
             @Override
             public void process(OutputStream out) throws IOException {
                 try (OutputStream outputStream = new BufferedOutputStream(out)) {
-                    outputStream.write("{\"stringField\": \"String Value\", \"arrayOfNulls\": [null, null, null]}".getBytes(StandardCharsets.UTF_8));
+                    outputStream.
+                            write("{\"stringField\": \"String Value\", \"arrayOfNulls\": [null, null, null]}".
+                                    getBytes(StandardCharsets.UTF_8));
                 }
             }
         });
@@ -178,25 +209,31 @@ public class TestSplitJson {
         int expectedFiles = 3;
         testRunner.assertTransferCount(SplitJson.REL_SPLIT, expectedFiles);
         for (int i = 0; i < expectedFiles; i++) {
-            testRunner.getFlowFilesForRelationship(SplitJson.REL_SPLIT).get(i).assertContentEquals("");
+            testRunner.getFlowFilesForRelationship(SplitJson.REL_SPLIT).
+                    get(i).
+                    assertContentEquals("");
         }
     }
 
     @Test
     public void testSplit_pathToArrayWithNulls_nullStringRepresentation() throws Exception {
         final TestRunner testRunner = TestRunners.newTestRunner(new SplitJson());
-        testRunner.setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$.arrayOfNulls");
+        testRunner.
+                setProperty(SplitJson.ARRAY_JSON_PATH_EXPRESSION, "$.arrayOfNulls");
         testRunner.setProperty(SplitJson.NULL_VALUE_DEFAULT_REPRESENTATION,
                 AbstractJsonPathProcessor.NULL_STRING_OPTION);
 
-        ProcessSession session = testRunner.getProcessSessionFactory().createSession();
+        ProcessSession session = testRunner.getProcessSessionFactory().
+                createSession();
         FlowFile ff = session.create();
 
         ff = session.write(ff, new OutputStreamCallback() {
             @Override
             public void process(OutputStream out) throws IOException {
                 try (OutputStream outputStream = new BufferedOutputStream(out)) {
-                    outputStream.write("{\"stringField\": \"String Value\", \"arrayOfNulls\": [null, null, null]}".getBytes(StandardCharsets.UTF_8));
+                    outputStream.
+                            write("{\"stringField\": \"String Value\", \"arrayOfNulls\": [null, null, null]}".
+                                    getBytes(StandardCharsets.UTF_8));
                 }
             }
         });
@@ -208,7 +245,9 @@ public class TestSplitJson {
         int expectedFiles = 3;
         testRunner.assertTransferCount(SplitJson.REL_SPLIT, expectedFiles);
         for (int i = 0; i < expectedFiles; i++) {
-            testRunner.getFlowFilesForRelationship(SplitJson.REL_SPLIT).get(i).assertContentEquals("null");
+            testRunner.getFlowFilesForRelationship(SplitJson.REL_SPLIT).
+                    get(i).
+                    assertContentEquals("null");
         }
     }
 }


[03/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestModifyBytes.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestModifyBytes.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestModifyBytes.java
index 329aace..2c58b80 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestModifyBytes.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestModifyBytes.java
@@ -41,11 +41,14 @@ public class TestModifyBytes {
         runner.setProperty(ModifyBytes.START_OFFSET, "1 MB");
         runner.setProperty(ModifyBytes.END_OFFSET, "1 MB");
 
-        runner.enqueue(Paths.get("src/test/resources/TestModifyBytes/testFile.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestModifyBytes/testFile.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ModifyBytes.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("".getBytes("UTF-8"));
     }
 
@@ -55,12 +58,16 @@ public class TestModifyBytes {
         runner.setProperty(ModifyBytes.START_OFFSET, "0 MB");
         runner.setProperty(ModifyBytes.END_OFFSET, "0 MB");
 
-        runner.enqueue(Paths.get("src/test/resources/TestModifyBytes/testFile.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestModifyBytes/testFile.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ModifyBytes.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestModifyBytes/testFile.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestModifyBytes/testFile.txt")));
     }
 
     @Test
@@ -69,14 +76,18 @@ public class TestModifyBytes {
         runner.setProperty(ModifyBytes.START_OFFSET, "12 B"); //REMOVE - '<<<HEADER>>>'
         runner.setProperty(ModifyBytes.END_OFFSET, "0 MB");
 
-        runner.enqueue(Paths.get("src/test/resources/TestModifyBytes/testFile.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestModifyBytes/testFile.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ModifyBytes.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).
+                get(0);
         final String outContent = new String(out.toByteArray(), StandardCharsets.UTF_8);
         System.out.println(outContent);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestModifyBytes/noHeader.txt")));
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestModifyBytes/noHeader.txt")));
     }
 
     @Test
@@ -85,11 +96,14 @@ public class TestModifyBytes {
         runner.setProperty(ModifyBytes.START_OFFSET, "181 B");
         runner.setProperty(ModifyBytes.END_OFFSET, "0 B");
 
-        runner.enqueue(Paths.get("src/test/resources/TestModifyBytes/testFile.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestModifyBytes/testFile.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ModifyBytes.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).
+                get(0);
         final String outContent = new String(out.toByteArray(), StandardCharsets.UTF_8);
         System.out.println(outContent);
         out.assertContentEquals("<<<FOOTER>>>".getBytes("UTF-8"));
@@ -101,11 +115,14 @@ public class TestModifyBytes {
         runner.setProperty(ModifyBytes.START_OFFSET, "0 B");
         runner.setProperty(ModifyBytes.END_OFFSET, "181 B");
 
-        runner.enqueue(Paths.get("src/test/resources/TestModifyBytes/testFile.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestModifyBytes/testFile.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ModifyBytes.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("<<<HEADER>>>".getBytes("UTF-8"));
     }
 
@@ -115,14 +132,18 @@ public class TestModifyBytes {
         runner.setProperty(ModifyBytes.START_OFFSET, "0 B");
         runner.setProperty(ModifyBytes.END_OFFSET, "12 B");
 
-        runner.enqueue(Paths.get("src/test/resources/TestModifyBytes/testFile.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestModifyBytes/testFile.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ModifyBytes.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).
+                get(0);
         final String outContent = new String(out.toByteArray(), StandardCharsets.UTF_8);
         System.out.println(outContent);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestModifyBytes/noFooter.txt")));
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestModifyBytes/noFooter.txt")));
     }
 
     @Test
@@ -131,14 +152,18 @@ public class TestModifyBytes {
         runner.setProperty(ModifyBytes.START_OFFSET, "12 B");
         runner.setProperty(ModifyBytes.END_OFFSET, "12 B");
 
-        runner.enqueue(Paths.get("src/test/resources/TestModifyBytes/testFile.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestModifyBytes/testFile.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ModifyBytes.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).
+                get(0);
         final String outContent = new String(out.toByteArray(), StandardCharsets.UTF_8);
         System.out.println(outContent);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestModifyBytes/noFooter_noHeader.txt")));
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestModifyBytes/noFooter_noHeader.txt")));
     }
 
     @Test
@@ -147,11 +172,14 @@ public class TestModifyBytes {
         runner.setProperty(ModifyBytes.START_OFFSET, "97 B");
         runner.setProperty(ModifyBytes.END_OFFSET, "97 B");
 
-        runner.enqueue(Paths.get("src/test/resources/TestModifyBytes/testFile.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestModifyBytes/testFile.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ModifyBytes.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("".getBytes("UTF-8"));
     }
 
@@ -161,11 +189,14 @@ public class TestModifyBytes {
         runner.setProperty(ModifyBytes.START_OFFSET, "94 B");
         runner.setProperty(ModifyBytes.END_OFFSET, "96 B");
 
-        runner.enqueue(Paths.get("src/test/resources/TestModifyBytes/testFile.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/TestModifyBytes/testFile.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ModifyBytes.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ModifyBytes.REL_SUCCESS).
+                get(0);
         final String outContent = new String(out.toByteArray(), StandardCharsets.UTF_8);
         System.out.println(outContent);
         out.assertContentEquals("Dew".getBytes("UTF-8"));
@@ -178,13 +209,15 @@ public class TestModifyBytes {
     private byte[] translateNewLines(final Path path) throws IOException {
         final byte[] data = Files.readAllBytes(path);
         final String text = new String(data, StandardCharsets.UTF_8);
-        return translateNewLines(text).getBytes(StandardCharsets.UTF_8);
+        return translateNewLines(text).
+                getBytes(StandardCharsets.UTF_8);
     }
 
     private String translateNewLines(final String text) {
         final String lineSeparator = System.getProperty("line.separator");
         final Pattern pattern = Pattern.compile("\n", Pattern.MULTILINE);
-        final String translated = pattern.matcher(text).replaceAll(lineSeparator);
+        final String translated = pattern.matcher(text).
+                replaceAll(lineSeparator);
         return translated;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMonitorActivity.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMonitorActivity.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMonitorActivity.java
index 1805716..9e970f1 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMonitorActivity.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMonitorActivity.java
@@ -31,7 +31,8 @@ public class TestMonitorActivity {
 
     @Test
     public void testFirstMessage() throws InterruptedException, IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new MonitorActivity());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new MonitorActivity());
         runner.setProperty(MonitorActivity.CONTINUALLY_SEND_MESSAGES, "false");
         runner.setProperty(MonitorActivity.THRESHOLD, "100 millis");
 
@@ -65,9 +66,12 @@ public class TestMonitorActivity {
         runner.assertTransferCount(MonitorActivity.REL_SUCCESS, 1);
         runner.assertTransferCount(MonitorActivity.REL_ACTIVITY_RESTORED, 1);
 
-        MockFlowFile restoredFlowFile = runner.getFlowFilesForRelationship(MonitorActivity.REL_ACTIVITY_RESTORED).get(0);
+        MockFlowFile restoredFlowFile = runner.
+                getFlowFilesForRelationship(MonitorActivity.REL_ACTIVITY_RESTORED).
+                get(0);
         String flowFileContent = new String(restoredFlowFile.toByteArray());
-        Assert.assertTrue(Pattern.matches("Activity restored at time: (.*) after being inactive for 0 minutes", flowFileContent));
+        Assert.assertTrue(Pattern.
+                matches("Activity restored at time: (.*) after being inactive for 0 minutes", flowFileContent));
         restoredFlowFile.assertAttributeNotExists("key");
         restoredFlowFile.assertAttributeNotExists("key1");
 
@@ -92,16 +96,20 @@ public class TestMonitorActivity {
         runner.assertTransferCount(MonitorActivity.REL_ACTIVITY_RESTORED, 1);
         runner.assertTransferCount(MonitorActivity.REL_SUCCESS, 1);
 
-        restoredFlowFile = runner.getFlowFilesForRelationship(MonitorActivity.REL_ACTIVITY_RESTORED).get(0);
+        restoredFlowFile = runner.
+                getFlowFilesForRelationship(MonitorActivity.REL_ACTIVITY_RESTORED).
+                get(0);
         flowFileContent = new String(restoredFlowFile.toByteArray());
-        Assert.assertTrue(Pattern.matches("Activity restored at time: (.*) after being inactive for 0 minutes", flowFileContent));
+        Assert.assertTrue(Pattern.
+                matches("Activity restored at time: (.*) after being inactive for 0 minutes", flowFileContent));
         restoredFlowFile.assertAttributeNotExists("key");
         restoredFlowFile.assertAttributeNotExists("key1");
     }
 
     @Test
     public void testFirstMessageWithInherit() throws InterruptedException, IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new MonitorActivity());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new MonitorActivity());
         runner.setProperty(MonitorActivity.CONTINUALLY_SEND_MESSAGES, "false");
         runner.setProperty(MonitorActivity.THRESHOLD, "100 millis");
         runner.setProperty(MonitorActivity.COPY_ATTRIBUTES, "true");
@@ -109,7 +117,9 @@ public class TestMonitorActivity {
         runner.enqueue(new byte[0]);
         runner.run();
         runner.assertAllFlowFilesTransferred(MonitorActivity.REL_SUCCESS, 1);
-        MockFlowFile originalFlowFile = runner.getFlowFilesForRelationship(MonitorActivity.REL_SUCCESS).get(0);
+        MockFlowFile originalFlowFile = runner.
+                getFlowFilesForRelationship(MonitorActivity.REL_SUCCESS).
+                get(0);
         runner.clearTransferState();
 
         Thread.sleep(1000L);
@@ -137,22 +147,33 @@ public class TestMonitorActivity {
         runner.assertTransferCount(MonitorActivity.REL_SUCCESS, 1);
         runner.assertTransferCount(MonitorActivity.REL_ACTIVITY_RESTORED, 1);
 
-        MockFlowFile restoredFlowFile = runner.getFlowFilesForRelationship(MonitorActivity.REL_ACTIVITY_RESTORED).get(0);
+        MockFlowFile restoredFlowFile = runner.
+                getFlowFilesForRelationship(MonitorActivity.REL_ACTIVITY_RESTORED).
+                get(0);
         String flowFileContent = new String(restoredFlowFile.toByteArray());
-        Assert.assertTrue(Pattern.matches("Activity restored at time: (.*) after being inactive for 0 minutes", flowFileContent));
+        Assert.assertTrue(Pattern.
+                matches("Activity restored at time: (.*) after being inactive for 0 minutes", flowFileContent));
         restoredFlowFile.assertAttributeEquals("key", "value");
         restoredFlowFile.assertAttributeEquals("key1", "value1");
 
         // verify the UUIDs are not the same
-        restoredFlowFile.assertAttributeNotEquals(CoreAttributes.UUID.key(), originalFlowFile.getAttribute(CoreAttributes.UUID.key()));
-        restoredFlowFile.assertAttributeNotEquals(CoreAttributes.FILENAME.key(), originalFlowFile.getAttribute(CoreAttributes.FILENAME.key()));
+        restoredFlowFile.
+                assertAttributeNotEquals(CoreAttributes.UUID.key(), originalFlowFile.
+                        getAttribute(CoreAttributes.UUID.key()));
+        restoredFlowFile.
+                assertAttributeNotEquals(CoreAttributes.FILENAME.key(), originalFlowFile.
+                        getAttribute(CoreAttributes.FILENAME.key()));
         Assert.assertTrue(
-                String.format("file sizes match when they shouldn't original=%1$s restored=%2$s",
+                String.
+                format("file sizes match when they shouldn't original=%1$s restored=%2$s",
                         originalFlowFile.getSize(), restoredFlowFile.getSize()),
                 restoredFlowFile.getSize() != originalFlowFile.getSize());
-        Assert.assertTrue(String.format("lineage start dates match when they shouldn't original=%1$s restored=%2$s",
-                originalFlowFile.getLineageStartDate(), restoredFlowFile.getLineageStartDate()),
-                restoredFlowFile.getLineageStartDate() != originalFlowFile.getLineageStartDate());
+        Assert.assertTrue(String.
+                format("lineage start dates match when they shouldn't original=%1$s restored=%2$s",
+                        originalFlowFile.getLineageStartDate(), restoredFlowFile.
+                        getLineageStartDate()),
+                restoredFlowFile.getLineageStartDate() != originalFlowFile.
+                getLineageStartDate());
 
         runner.clearTransferState();
         runner.setProperty(MonitorActivity.CONTINUALLY_SEND_MESSAGES, "true");
@@ -175,19 +196,30 @@ public class TestMonitorActivity {
         runner.assertTransferCount(MonitorActivity.REL_ACTIVITY_RESTORED, 1);
         runner.assertTransferCount(MonitorActivity.REL_SUCCESS, 1);
 
-        restoredFlowFile = runner.getFlowFilesForRelationship(MonitorActivity.REL_ACTIVITY_RESTORED).get(0);
+        restoredFlowFile = runner.
+                getFlowFilesForRelationship(MonitorActivity.REL_ACTIVITY_RESTORED).
+                get(0);
         flowFileContent = new String(restoredFlowFile.toByteArray());
-        Assert.assertTrue(Pattern.matches("Activity restored at time: (.*) after being inactive for 0 minutes", flowFileContent));
+        Assert.assertTrue(Pattern.
+                matches("Activity restored at time: (.*) after being inactive for 0 minutes", flowFileContent));
         restoredFlowFile.assertAttributeEquals("key", "value");
         restoredFlowFile.assertAttributeEquals("key1", "value1");
-        restoredFlowFile.assertAttributeNotEquals(CoreAttributes.UUID.key(), originalFlowFile.getAttribute(CoreAttributes.UUID.key()));
-        restoredFlowFile.assertAttributeNotEquals(CoreAttributes.FILENAME.key(), originalFlowFile.getAttribute(CoreAttributes.FILENAME.key()));
+        restoredFlowFile.
+                assertAttributeNotEquals(CoreAttributes.UUID.key(), originalFlowFile.
+                        getAttribute(CoreAttributes.UUID.key()));
+        restoredFlowFile.
+                assertAttributeNotEquals(CoreAttributes.FILENAME.key(), originalFlowFile.
+                        getAttribute(CoreAttributes.FILENAME.key()));
         Assert.assertTrue(
-                String.format("file sizes match when they shouldn't original=%1$s restored=%2$s",
+                String.
+                format("file sizes match when they shouldn't original=%1$s restored=%2$s",
                         originalFlowFile.getSize(), restoredFlowFile.getSize()),
                 restoredFlowFile.getSize() != originalFlowFile.getSize());
-        Assert.assertTrue(String.format("lineage start dates match when they shouldn't original=%1$s restored=%2$s",
-                originalFlowFile.getLineageStartDate(), restoredFlowFile.getLineageStartDate()),
-                restoredFlowFile.getLineageStartDate() != originalFlowFile.getLineageStartDate());
+        Assert.assertTrue(String.
+                format("lineage start dates match when they shouldn't original=%1$s restored=%2$s",
+                        originalFlowFile.getLineageStartDate(), restoredFlowFile.
+                        getLineageStartDate()),
+                restoredFlowFile.getLineageStartDate() != originalFlowFile.
+                getLineageStartDate());
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPostHTTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPostHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPostHTTP.java
index dcda136..f4c4367 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPostHTTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPostHTTP.java
@@ -34,24 +34,25 @@ import org.junit.After;
 import org.junit.Test;
 
 public class TestPostHTTP {
+
     private TestServer server;
     private TestRunner runner;
     private CaptureServlet servlet;
-    
+
     private void setup(final Map<String, String> sslProperties) throws Exception {
         // set up web service
         ServletHandler handler = new ServletHandler();
         handler.addServletWithMapping(CaptureServlet.class, "/*");
         servlet = (CaptureServlet) handler.getServlets()[0].getServlet();
-        
+
         // create the service
         server = new TestServer(sslProperties);
         server.addHandler(handler);
         server.startServer();
-        
+
         runner = TestRunners.newTestRunner(PostHTTP.class);
     }
-    
+
     @After
     public void cleanup() throws Exception {
         if (server != null) {
@@ -59,92 +60,113 @@ public class TestPostHTTP {
             server = null;
         }
     }
-    
+
     @Test
     public void testTruststoreSSLOnly() throws Exception {
         final Map<String, String> sslProps = new HashMap<>();
         sslProps.put(TestServer.NEED_CLIENT_AUTH, "false");
-        sslProps.put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
-        sslProps.put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
+        sslProps.
+                put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
+        sslProps.
+                put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
         sslProps.put(StandardSSLContextService.KEYSTORE_TYPE.getName(), "JKS");
         setup(sslProps);
-        
+
         final SSLContextService sslContextService = new StandardSSLContextService();
         runner.addControllerService("ssl-context", sslContextService);
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE, "src/test/resources/localhost-ts.jks");
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_PASSWORD, "localtest");
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_TYPE, "JKS");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE, "src/test/resources/localhost-ts.jks");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_PASSWORD, "localtest");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_TYPE, "JKS");
         runner.enableControllerService(sslContextService);
-        
+
         runner.setProperty(PostHTTP.URL, server.getSecureUrl());
         runner.setProperty(PostHTTP.SSL_CONTEXT_SERVICE, "ssl-context");
-        
+
         runner.enqueue("Hello world".getBytes());
         runner.run();
-        
+
         runner.assertAllFlowFilesTransferred(PostHTTP.REL_SUCCESS, 1);
     }
-    
-    
+
     @Test
     public void testTwoWaySSL() throws Exception {
         final Map<String, String> sslProps = new HashMap<>();
-        sslProps.put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
-        sslProps.put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
+        sslProps.
+                put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
+        sslProps.
+                put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
         sslProps.put(StandardSSLContextService.KEYSTORE_TYPE.getName(), "JKS");
-        sslProps.put(StandardSSLContextService.TRUSTSTORE.getName(), "src/test/resources/localhost-ts.jks");
-        sslProps.put(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName(), "localtest");
+        sslProps.
+                put(StandardSSLContextService.TRUSTSTORE.getName(), "src/test/resources/localhost-ts.jks");
+        sslProps.
+                put(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName(), "localtest");
         sslProps.put(StandardSSLContextService.TRUSTSTORE_TYPE.getName(), "JKS");
         sslProps.put(TestServer.NEED_CLIENT_AUTH, "true");
         setup(sslProps);
-        
+
         final SSLContextService sslContextService = new StandardSSLContextService();
         runner.addControllerService("ssl-context", sslContextService);
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE, "src/test/resources/localhost-ts.jks");
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_PASSWORD, "localtest");
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_TYPE, "JKS");
-        runner.setProperty(sslContextService, StandardSSLContextService.KEYSTORE, "src/test/resources/localhost-ks.jks");
-        runner.setProperty(sslContextService, StandardSSLContextService.KEYSTORE_PASSWORD, "localtest");
-        runner.setProperty(sslContextService, StandardSSLContextService.KEYSTORE_TYPE, "JKS");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE, "src/test/resources/localhost-ts.jks");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_PASSWORD, "localtest");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_TYPE, "JKS");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.KEYSTORE, "src/test/resources/localhost-ks.jks");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.KEYSTORE_PASSWORD, "localtest");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.KEYSTORE_TYPE, "JKS");
         runner.enableControllerService(sslContextService);
-        
+
         runner.setProperty(PostHTTP.URL, server.getSecureUrl());
         runner.setProperty(PostHTTP.SSL_CONTEXT_SERVICE, "ssl-context");
-        
+
         runner.enqueue("Hello world".getBytes());
         runner.run();
-        
+
         runner.assertAllFlowFilesTransferred(PostHTTP.REL_SUCCESS, 1);
     }
-    
+
     @Test
     public void testOneWaySSLWhenServerConfiguredForTwoWay() throws Exception {
         final Map<String, String> sslProps = new HashMap<>();
-        sslProps.put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
-        sslProps.put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
+        sslProps.
+                put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
+        sslProps.
+                put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
         sslProps.put(StandardSSLContextService.KEYSTORE_TYPE.getName(), "JKS");
-        sslProps.put(StandardSSLContextService.TRUSTSTORE.getName(), "src/test/resources/localhost-ts.jks");
-        sslProps.put(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName(), "localtest");
+        sslProps.
+                put(StandardSSLContextService.TRUSTSTORE.getName(), "src/test/resources/localhost-ts.jks");
+        sslProps.
+                put(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName(), "localtest");
         sslProps.put(StandardSSLContextService.TRUSTSTORE_TYPE.getName(), "JKS");
         sslProps.put(TestServer.NEED_CLIENT_AUTH, "true");
         setup(sslProps);
-        
+
         final SSLContextService sslContextService = new StandardSSLContextService();
         runner.addControllerService("ssl-context", sslContextService);
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE, "src/test/resources/localhost-ts.jks");
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_PASSWORD, "localtest");
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_TYPE, "JKS");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE, "src/test/resources/localhost-ts.jks");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_PASSWORD, "localtest");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_TYPE, "JKS");
         runner.enableControllerService(sslContextService);
-        
+
         runner.setProperty(PostHTTP.URL, server.getSecureUrl());
         runner.setProperty(PostHTTP.SSL_CONTEXT_SERVICE, "ssl-context");
-        
+
         runner.enqueue("Hello world".getBytes());
         runner.run();
-        
+
         runner.assertAllFlowFilesTransferred(PostHTTP.REL_FAILURE, 1);
     }
-    
+
     @Test
     public void testSendAsFlowFile() throws Exception {
         setup(null);
@@ -153,97 +175,108 @@ public class TestPostHTTP {
 
         final Map<String, String> attrs = new HashMap<>();
         attrs.put("abc", "cba");
-        
+
         runner.enqueue("Hello".getBytes(), attrs);
         attrs.put("abc", "abc");
         attrs.put("filename", "xyz.txt");
         runner.enqueue("World".getBytes(), attrs);
-        
+
         runner.run(1);
         runner.assertAllFlowFilesTransferred(PostHTTP.REL_SUCCESS);
-        
+
         final byte[] lastPost = servlet.getLastPost();
         final ByteArrayOutputStream baos = new ByteArrayOutputStream();
         final ByteArrayInputStream bais = new ByteArrayInputStream(lastPost);
-        
+
         FlowFileUnpackagerV3 unpacker = new FlowFileUnpackagerV3();
-        
+
         // unpack first flowfile received
-        Map<String, String> receivedAttrs = unpacker.unpackageFlowFile(bais, baos);
+        Map<String, String> receivedAttrs = unpacker.
+                unpackageFlowFile(bais, baos);
         byte[] contentReceived = baos.toByteArray();
         assertEquals("Hello", new String(contentReceived));
         assertEquals("cba", receivedAttrs.get("abc"));
-        
-        assertTrue( unpacker.hasMoreData() );
-        
+
+        assertTrue(unpacker.hasMoreData());
+
         baos.reset();
         receivedAttrs = unpacker.unpackageFlowFile(bais, baos);
         contentReceived = baos.toByteArray();
-        
+
         assertEquals("World", new String(contentReceived));
         assertEquals("abc", receivedAttrs.get("abc"));
         assertEquals("xyz.txt", receivedAttrs.get("filename"));
     }
-    
-    
+
     @Test
     public void testSendAsFlowFileSecure() throws Exception {
         final Map<String, String> sslProps = new HashMap<>();
-        sslProps.put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
-        sslProps.put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
+        sslProps.
+                put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
+        sslProps.
+                put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
         sslProps.put(StandardSSLContextService.KEYSTORE_TYPE.getName(), "JKS");
-        sslProps.put(StandardSSLContextService.TRUSTSTORE.getName(), "src/test/resources/localhost-ts.jks");
-        sslProps.put(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName(), "localtest");
+        sslProps.
+                put(StandardSSLContextService.TRUSTSTORE.getName(), "src/test/resources/localhost-ts.jks");
+        sslProps.
+                put(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName(), "localtest");
         sslProps.put(StandardSSLContextService.TRUSTSTORE_TYPE.getName(), "JKS");
         sslProps.put(TestServer.NEED_CLIENT_AUTH, "true");
         setup(sslProps);
-        
+
         final SSLContextService sslContextService = new StandardSSLContextService();
         runner.addControllerService("ssl-context", sslContextService);
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE, "src/test/resources/localhost-ts.jks");
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_PASSWORD, "localtest");
-        runner.setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_TYPE, "JKS");
-        runner.setProperty(sslContextService, StandardSSLContextService.KEYSTORE, "src/test/resources/localhost-ks.jks");
-        runner.setProperty(sslContextService, StandardSSLContextService.KEYSTORE_PASSWORD, "localtest");
-        runner.setProperty(sslContextService, StandardSSLContextService.KEYSTORE_TYPE, "JKS");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE, "src/test/resources/localhost-ts.jks");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_PASSWORD, "localtest");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.TRUSTSTORE_TYPE, "JKS");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.KEYSTORE, "src/test/resources/localhost-ks.jks");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.KEYSTORE_PASSWORD, "localtest");
+        runner.
+                setProperty(sslContextService, StandardSSLContextService.KEYSTORE_TYPE, "JKS");
         runner.enableControllerService(sslContextService);
-        
+
         runner.setProperty(PostHTTP.URL, server.getSecureUrl());
         runner.setProperty(PostHTTP.SEND_AS_FLOWFILE, "true");
         runner.setProperty(PostHTTP.SSL_CONTEXT_SERVICE, "ssl-context");
 
         final Map<String, String> attrs = new HashMap<>();
         attrs.put("abc", "cba");
-        
+
         runner.enqueue("Hello".getBytes(), attrs);
         attrs.put("abc", "abc");
         attrs.put("filename", "xyz.txt");
         runner.enqueue("World".getBytes(), attrs);
-        
+
         runner.run(1);
         runner.assertAllFlowFilesTransferred(PostHTTP.REL_SUCCESS);
-        
+
         final byte[] lastPost = servlet.getLastPost();
         final ByteArrayOutputStream baos = new ByteArrayOutputStream();
         final ByteArrayInputStream bais = new ByteArrayInputStream(lastPost);
-        
+
         FlowFileUnpackagerV3 unpacker = new FlowFileUnpackagerV3();
-        
+
         // unpack first flowfile received
-        Map<String, String> receivedAttrs = unpacker.unpackageFlowFile(bais, baos);
+        Map<String, String> receivedAttrs = unpacker.
+                unpackageFlowFile(bais, baos);
         byte[] contentReceived = baos.toByteArray();
         assertEquals("Hello", new String(contentReceived));
         assertEquals("cba", receivedAttrs.get("abc"));
-        
-        assertTrue( unpacker.hasMoreData() );
-        
+
+        assertTrue(unpacker.hasMoreData());
+
         baos.reset();
         receivedAttrs = unpacker.unpackageFlowFile(bais, baos);
         contentReceived = baos.toByteArray();
-        
+
         assertEquals("World", new String(contentReceived));
         assertEquals("abc", receivedAttrs.get("abc"));
         assertEquals("xyz.txt", receivedAttrs.get("filename"));
     }
-    
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java
index b0ce477..313790e 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestPutEmail.java
@@ -19,19 +19,18 @@ package org.apache.nifi.processors.standard;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.nifi.flowfile.FlowFile;
-import org.apache.nifi.processor.ProcessContext;
-import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
 import org.apache.nifi.util.TestRunner;
 import org.apache.nifi.util.TestRunners;
+import static org.junit.Assert.assertEquals;
 import org.junit.Test;
 
-import static org.junit.Assert.*;
-
 public class TestPutEmail {
 
     @Test
-    public void testHostNotFound() {
+    public void testHostNotFound() {
         // verifies that files are routed to failure when the SMTP host doesn't exist
         final TestRunner runner = TestRunners.newTestRunner(new PutEmail());
         runner.setProperty(PutEmail.SMTP_HOSTNAME, "host-doesnt-exist123");
@@ -47,37 +46,44 @@ public class TestPutEmail {
         runner.assertQueueEmpty();
         runner.assertAllFlowFilesTransferred(PutEmail.REL_FAILURE);
     }
-    
-    @Test
-    public void testEmailPropertyFormatters() {
-        // verifies that files are routed to failure when the SMTP host doesn't exist
-        final TestRunner runner = TestRunners.newTestRunner(new PutEmail());
-        runner.setProperty(PutEmail.HEADER_XMAILER, "TestingNiFi");
-        runner.setProperty(PutEmail.SMTP_HOSTNAME, "smtp-host");
-        runner.setProperty(PutEmail.SMTP_SOCKET_FACTORY, "${dynamicSocketFactory}");
-        runner.setProperty(PutEmail.HEADER_XMAILER, "TestingNiFi");
-        runner.setProperty(PutEmail.FROM, "test@apache.org");
-        runner.setProperty(PutEmail.MESSAGE, "Message Body");
-        runner.setProperty(PutEmail.TO, "recipient@apache.org");
-        
-        ProcessSession session = runner.getProcessSessionFactory().createSession();
-        FlowFile ff = session.create();
-        ff = session.putAttribute(ff, "dynamicSocketFactory", "testingSocketFactory");
-        ProcessContext context = runner.getProcessContext();
-        
-        String xmailer = context.getProperty(PutEmail.HEADER_XMAILER).evaluateAttributeExpressions(ff).getValue();
-        assertEquals("X-Mailer Header", "TestingNiFi", xmailer);
-        
-        String socketFactory = context.getProperty(PutEmail.SMTP_SOCKET_FACTORY).evaluateAttributeExpressions(ff).getValue();
-        assertEquals("Socket Factory", "testingSocketFactory", socketFactory);
-        
-        final Map<String, String> attributes = new HashMap<>();
-        runner.enqueue("Some Text".getBytes(), attributes);
-
-        runner.run();
-
-        runner.assertQueueEmpty();
-        runner.assertAllFlowFilesTransferred(PutEmail.REL_FAILURE);
-    }
-    
+
+    @Test
+    public void testEmailPropertyFormatters() {
+        // verifies that files are routed to failure when the SMTP host doesn't exist
+        final TestRunner runner = TestRunners.newTestRunner(new PutEmail());
+        runner.setProperty(PutEmail.HEADER_XMAILER, "TestingNiFi");
+        runner.setProperty(PutEmail.SMTP_HOSTNAME, "smtp-host");
+        runner.
+                setProperty(PutEmail.SMTP_SOCKET_FACTORY, "${dynamicSocketFactory}");
+        runner.setProperty(PutEmail.HEADER_XMAILER, "TestingNiFi");
+        runner.setProperty(PutEmail.FROM, "test@apache.org");
+        runner.setProperty(PutEmail.MESSAGE, "Message Body");
+        runner.setProperty(PutEmail.TO, "recipient@apache.org");
+
+        ProcessSession session = runner.getProcessSessionFactory().
+                createSession();
+        FlowFile ff = session.create();
+        ff = session.
+                putAttribute(ff, "dynamicSocketFactory", "testingSocketFactory");
+        ProcessContext context = runner.getProcessContext();
+
+        String xmailer = context.getProperty(PutEmail.HEADER_XMAILER).
+                evaluateAttributeExpressions(ff).
+                getValue();
+        assertEquals("X-Mailer Header", "TestingNiFi", xmailer);
+
+        String socketFactory = context.getProperty(PutEmail.SMTP_SOCKET_FACTORY).
+                evaluateAttributeExpressions(ff).
+                getValue();
+        assertEquals("Socket Factory", "testingSocketFactory", socketFactory);
+
+        final Map<String, String> attributes = new HashMap<>();
+        runner.enqueue("Some Text".getBytes(), attributes);
+
+        runner.run();
+
+        runner.assertQueueEmpty();
+        runner.assertAllFlowFilesTransferred(PutEmail.REL_FAILURE);
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java
index e340468..4722a84 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceText.java
@@ -42,7 +42,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("Hlleo, World!".getBytes("UTF-8"));
     }
 
@@ -57,7 +59,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("H[ell]o, World!");
     }
 
@@ -74,7 +78,9 @@ public class TestReplaceText {
         runner.enqueue(Paths.get("src/test/resources/hello.txt"), attributes);
         runner.run();
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         final String actual = new String(out.toByteArray(), StandardCharsets.UTF_8);
         System.out.println(actual);
         Assert.assertEquals(expected, actual);
@@ -92,7 +98,9 @@ public class TestReplaceText {
         runner.enqueue(Paths.get("src/test/resources/hello.txt"), attributes);
         runner.run();
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         final String actual = new String(out.toByteArray(), StandardCharsets.UTF_8);
         Assert.assertEquals("Hell123o, World!", actual);
     }
@@ -111,7 +119,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("Hello, World!");
     }
 
@@ -129,7 +139,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("H[$1]o, World!");
     }
 
@@ -148,7 +160,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("Good-bye, World!");
     }
 
@@ -167,7 +181,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("Hello, World!");
     }
 
@@ -186,7 +202,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("Hell$2o, World!");
     }
 
@@ -205,7 +223,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("H$do, World!");
     }
 
@@ -224,7 +244,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("H$1o, World!");
     }
 
@@ -239,7 +261,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("Ho, World!");
     }
 
@@ -254,7 +278,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("Hello, World!");
     }
 
@@ -269,7 +295,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("HeRRo, WorRd!");
     }
 
@@ -287,7 +315,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("Good");
     }
 
@@ -323,7 +353,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("Good");
     }
 
@@ -332,7 +364,8 @@ public class TestReplaceText {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
         runner.setProperty(ReplaceText.REGEX, ".*");
-        runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "${filename}\t${now():format(\"yyyy/MM/dd'T'HHmmss'Z'\")}\t${fileSize}\n");
+        runner.
+                setProperty(ReplaceText.REPLACEMENT_VALUE, "${filename}\t${now():format(\"yyyy/MM/dd'T'HHmmss'Z'\")}\t${fileSize}\n");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("filename", "abc.txt");
@@ -341,7 +374,9 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         final String outContent = new String(out.toByteArray(), StandardCharsets.UTF_8);
         Assert.assertTrue(outContent.startsWith("abc.txt\t"));
         System.out.println(outContent);
@@ -353,7 +388,8 @@ public class TestReplaceText {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
         runner.setProperty(ReplaceText.REGEX, "(?s)(^.*)");
-        runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "attribute header\n\n${filename}\n\ndata header\n\n$1\n\nfooter");
+        runner.
+                setProperty(ReplaceText.REPLACEMENT_VALUE, "attribute header\n\n${filename}\n\ndata header\n\n$1\n\nfooter");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("filename", "abc.txt");
@@ -362,9 +398,12 @@ public class TestReplaceText {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         final String outContent = new String(out.toByteArray(), StandardCharsets.UTF_8);
-        Assert.assertTrue(outContent.equals("attribute header\n\nabc.txt\n\ndata header\n\nHello\nWorld!\n\nfooter"));
+        Assert.assertTrue(outContent.
+                equals("attribute header\n\nabc.txt\n\ndata header\n\nHello\nWorld!\n\nfooter"));
         System.out.println(outContent);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextLineByLine.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextLineByLine.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextLineByLine.java
index 1c0ea57..9c19369 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextLineByLine.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestReplaceTextLineByLine.java
@@ -40,236 +40,300 @@ public class TestReplaceTextLineByLine {
     public void testSimple() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "odo");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "ood");
 
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/food.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/food.txt")));
     }
 
     @Test
     public void testBackReference() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "(DODO)");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "[$1]");
 
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/[DODO].txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/[DODO].txt")));
     }
 
     @Test
     public void testReplacementWithExpressionLanguageIsEscaped() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "(jo)");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "[${abc}]");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("abc", "$1");
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
 
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/cu[$1]_Po[$1].txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/cu[$1]_Po[$1].txt")));
     }
 
     @Test
     public void testRegexWithExpressionLanguage() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "${replaceKey}");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "${replaceValue}");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("replaceKey", "Riley");
         attributes.put("replaceValue", "Spider");
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
 
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/Spider.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/Spider.txt")));
     }
 
     @Test
     public void testRegexWithExpressionLanguageIsEscaped() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "${replaceKey}");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "${replaceValue}");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("replaceKey", "R.*y");
         attributes.put("replaceValue", "Spider");
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
 
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
     }
 
     @Test
     public void testBackReferenceWithTooLargeOfIndexIsEscaped() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "(lu)");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "$1$2");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("replaceKey", "R.*y");
         attributes.put("replaceValue", "Spiderman");
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
 
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/Blu$2e_clu$2e.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/Blu$2e_clu$2e.txt")));
     }
 
     @Test
     public void testBackReferenceWithInvalidReferenceIsEscaped() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "(ew)");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "$d");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("replaceKey", "H.*o");
         attributes.put("replaceValue", "Good-bye");
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
 
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/D$d_h$d.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/D$d_h$d.txt")));
     }
 
     @Test
     public void testEscapingDollarSign() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "(DO)");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "\\$1");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("replaceKey", "H.*o");
         attributes.put("replaceValue", "Good-bye");
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
 
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/$1$1.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/$1$1.txt")));
     }
 
     @Test
     public void testReplaceWithEmptyString() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "(jo)");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "");
 
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/cu_Po.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/cu_Po.txt")));
     }
 
     @Test
     public void testWithNoMatch() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "Z");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "Morning");
 
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
     }
 
     @Test
     public void testWithMultipleMatches() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "l");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "R");
 
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/BRue_cRue_RiRey.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/BRue_cRue_RiRey.txt")));
     }
 
     @Test
     public void testAttributeToContent() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, ".*");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "${abc}");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("abc", "Good");
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
 
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
-        out.assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/Good.txt")));
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
+        out.
+                assertContentEquals(translateNewLines(new File("src/test/resources/TestReplaceTextLineByLine/Good.txt")));
     }
 
     @Test
     public void testAttributeToContentWindows() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, ".*");
         runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "${abc}");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("abc", "Good");
-        runner.enqueue("<<<HEADER>>>\r\n<<BODY>>\r\n<<<FOOTER>>>\r".getBytes(), attributes);
+        runner.
+                enqueue("<<<HEADER>>>\r\n<<BODY>>\r\n<<<FOOTER>>>\r".getBytes(), attributes);
 
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         out.assertContentEquals("GoodGoodGood");
     }
 
@@ -277,31 +341,39 @@ public class TestReplaceTextLineByLine {
     public void testProblematicCase1() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, ".*");
-        runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "${filename}\t${now():format(\"yyyy/MM/dd'T'HHmmss'Z'\")}\t${fileSize}\n");
+        runner.
+                setProperty(ReplaceText.REPLACEMENT_VALUE, "${filename}\t${now():format(\"yyyy/MM/dd'T'HHmmss'Z'\")}\t${fileSize}\n");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("filename", "abc.txt");
-        runner.enqueue(translateNewLines(Paths.get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
+        runner.enqueue(translateNewLines(Paths.
+                get("src/test/resources/TestReplaceTextLineByLine/testFile.txt")), attributes);
 
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         final String outContent = translateNewLines(new String(out.toByteArray(), StandardCharsets.UTF_8));
         Assert.assertTrue(outContent.startsWith("abc.txt\t"));
         System.out.println(outContent);
-        Assert.assertTrue(outContent.endsWith("193\n") || outContent.endsWith("203\r\n"));
+        Assert.assertTrue(outContent.endsWith("193\n") || outContent.
+                endsWith("203\r\n"));
     }
 
     @Test
     public void testGetExistingContent() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new ReplaceText());
         runner.setValidateExpressionUsage(false);
-        runner.setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
+        runner.
+                setProperty(ReplaceText.EVALUATION_MODE, ReplaceText.LINE_BY_LINE);
         runner.setProperty(ReplaceText.REGEX, "(?s)(^.*)");
-        runner.setProperty(ReplaceText.REPLACEMENT_VALUE, "attribute header\n\n${filename}\n\ndata header\n\n$1\n\nfooter\n");
+        runner.
+                setProperty(ReplaceText.REPLACEMENT_VALUE, "attribute header\n\n${filename}\n\ndata header\n\n$1\n\nfooter\n");
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("filename", "abc.txt");
@@ -310,11 +382,14 @@ public class TestReplaceTextLineByLine {
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ReplaceText.REL_SUCCESS, 1);
-        final MockFlowFile out = runner.getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).get(0);
+        final MockFlowFile out = runner.
+                getFlowFilesForRelationship(ReplaceText.REL_SUCCESS).
+                get(0);
         final String outContent = new String(out.toByteArray(), StandardCharsets.UTF_8);
         System.out.println(outContent);
-        Assert.assertTrue(outContent.equals("attribute header\n\nabc.txt\n\ndata header\n\nHello\n\n\nfooter\n"
-                + "attribute header\n\nabc.txt\n\ndata header\n\nWorld!\n\nfooter\n"));
+        Assert.assertTrue(outContent.
+                equals("attribute header\n\nabc.txt\n\ndata header\n\nHello\n\n\nfooter\n"
+                        + "attribute header\n\nabc.txt\n\ndata header\n\nWorld!\n\nfooter\n"));
 
     }
 
@@ -325,13 +400,15 @@ public class TestReplaceTextLineByLine {
     private byte[] translateNewLines(final Path path) throws IOException {
         final byte[] data = Files.readAllBytes(path);
         final String text = new String(data, StandardCharsets.UTF_8);
-        return translateNewLines(text).getBytes(StandardCharsets.UTF_8);
+        return translateNewLines(text).
+                getBytes(StandardCharsets.UTF_8);
     }
 
     private String translateNewLines(final String text) {
         final String lineSeparator = System.getProperty("line.separator");
         final Pattern pattern = Pattern.compile("\n", Pattern.MULTILINE);
-        final String translated = pattern.matcher(text).replaceAll(lineSeparator);
+        final String translated = pattern.matcher(text).
+                replaceAll(lineSeparator);
         return translated;
     }
 }


[12/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java
index d67ed09..6b906c2 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PostHTTP.java
@@ -121,7 +121,7 @@ import com.sun.jersey.api.client.ClientResponse.Status;
 @SupportsBatching
 @Tags({"http", "https", "remote", "copy", "archive"})
 @CapabilityDescription("Performs an HTTP Post with the content of the FlowFile")
-@ReadsAttribute(attribute="mime.type", description="If not sending data as a FlowFile, the mime.type attribute will be used to set the HTTP Header for Content-Type")
+@ReadsAttribute(attribute = "mime.type", description = "If not sending data as a FlowFile, the mime.type attribute will be used to set the HTTP Header for Content-Type")
 public class PostHTTP extends AbstractProcessor {
 
     public static final String CONTENT_TYPE = "Content-Type";
@@ -143,7 +143,8 @@ public class PostHTTP extends AbstractProcessor {
 
     public static final PropertyDescriptor URL = new PropertyDescriptor.Builder()
             .name("URL")
-            .description("The URL to POST to. The first part of the URL must be static. However, the path of the URL may be defined using the Attribute Expression Language. For example, https://${hostname} is not valid, but https://1.1.1.1:8080/files/${nf.file.name} is valid.")
+            .description("The URL to POST to. The first part of the URL must be static. However, the path of the URL may be defined using the Attribute Expression Language. "
+                    + "For example, https://${hostname} is not valid, but https://1.1.1.1:8080/files/${nf.file.name} is valid.")
             .required(true)
             .addValidator(StandardValidators.createRegexMatchingValidator(Pattern.compile("https?\\://.*")))
             .addValidator(StandardValidators.URL_VALIDATOR)
@@ -210,7 +211,9 @@ public class PostHTTP extends AbstractProcessor {
             .build();
     public static final PropertyDescriptor MAX_BATCH_SIZE = new PropertyDescriptor.Builder()
             .name("Max Batch Size")
-            .description("If the Send as FlowFile property is true, specifies the max data size for a batch of FlowFiles to send in a single HTTP POST. If not specified, each FlowFile will be sent separately. If the Send as FlowFile property is false, this property is ignored")
+            .description("If the Send as FlowFile property is true, specifies the max data size for a batch of FlowFiles to send in a single "
+                    + "HTTP POST. If not specified, each FlowFile will be sent separately. If the Send as FlowFile property is false, this "
+                    + "property is ignored")
             .required(false)
             .addValidator(StandardValidators.DATA_SIZE_VALIDATOR)
             .defaultValue("100 MB")
@@ -230,8 +233,14 @@ public class PostHTTP extends AbstractProcessor {
             .identifiesControllerService(SSLContextService.class)
             .build();
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("Files that are successfully send will be transferred to success").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("Files that fail to send will transferred to failure").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("Files that are successfully send will be transferred to success")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("Files that fail to send will transferred to failure")
+            .build();
 
     private Set<Relationship> relationships;
     private List<PropertyDescriptor> properties;
@@ -281,9 +290,7 @@ public class PostHTTP extends AbstractProcessor {
         if (context.getProperty(URL).getValue().startsWith("https") && context.getProperty(SSL_CONTEXT_SERVICE).getValue() == null) {
             results.add(new ValidationResult.Builder()
                     .explanation("URL is set to HTTPS protocol but no SSLContext has been specified")
-                    .valid(false)
-                    .subject("SSL Context")
-                    .build());
+                    .valid(false).subject("SSL Context").build());
         }
 
         return results;
@@ -325,7 +332,7 @@ public class PostHTTP extends AbstractProcessor {
 
         final PoolingHttpClientConnectionManager conMan;
         final SSLContextService sslContextService = context.getProperty(SSL_CONTEXT_SERVICE).asControllerService(SSLContextService.class);
-        if ( sslContextService == null ) {
+        if (sslContextService == null) {
             conMan = new PoolingHttpClientConnectionManager();
         } else {
             final SSLContext sslContext;
@@ -334,16 +341,14 @@ public class PostHTTP extends AbstractProcessor {
             } catch (final Exception e) {
                 throw new ProcessException(e);
             }
-            
-            final SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new String[] { "TLSv1" }, null,
-                    SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
-    
-            final Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
-                    .register("https", sslsf).build();
-            
+
+            final SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new String[]{"TLSv1"}, null, SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
+
+            final Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create().register("https", sslsf).build();
+
             conMan = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
         }
-        
+
         conMan.setDefaultMaxPerRoute(context.getMaxConcurrentTasks());
         conMan.setMaxTotal(context.getMaxConcurrentTasks());
         config = new Config(conMan);
@@ -351,15 +356,13 @@ public class PostHTTP extends AbstractProcessor {
 
         return (existingConfig == null) ? config : existingConfig;
     }
-    
-    
-    private SSLContext createSSLContext(final SSLContextService service) throws KeyStoreException, IOException, NoSuchAlgorithmException, 
-        CertificateException, KeyManagementException, UnrecoverableKeyException 
-    {
+
+    private SSLContext createSSLContext(final SSLContextService service)
+            throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException, KeyManagementException, UnrecoverableKeyException {
         SSLContextBuilder builder = SSLContexts.custom();
         final String trustFilename = service.getTrustStoreFile();
-        if ( trustFilename != null ) {
-            final KeyStore truststore  = KeyStore.getInstance(service.getTrustStoreType());
+        if (trustFilename != null) {
+            final KeyStore truststore = KeyStore.getInstance(service.getTrustStoreType());
             try (final InputStream in = new FileInputStream(new File(service.getTrustStoreFile()))) {
                 truststore.load(in, service.getTrustStorePassword().toCharArray());
             }
@@ -367,14 +370,14 @@ public class PostHTTP extends AbstractProcessor {
         }
 
         final String keyFilename = service.getKeyStoreFile();
-        if ( keyFilename != null ) {
-            final KeyStore keystore  = KeyStore.getInstance(service.getKeyStoreType());
+        if (keyFilename != null) {
+            final KeyStore keystore = KeyStore.getInstance(service.getKeyStoreType());
             try (final InputStream in = new FileInputStream(new File(service.getKeyStoreFile()))) {
                 keystore.load(in, service.getKeyStorePassword().toCharArray());
             }
             builder = builder.loadKeyMaterial(keystore, service.getKeyStorePassword().toCharArray());
         }
-        
+
         SSLContext sslContext = builder.build();
         return sslContext;
     }
@@ -391,7 +394,7 @@ public class PostHTTP extends AbstractProcessor {
         requestConfigBuilder.setRedirectsEnabled(false);
         requestConfigBuilder.setSocketTimeout(context.getProperty(DATA_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue());
         final RequestConfig requestConfig = requestConfigBuilder.build();
-        
+
         final StreamThrottler throttler = throttlerRef.get();
         final ProcessorLog logger = getLogger();
 
@@ -415,8 +418,9 @@ public class PostHTTP extends AbstractProcessor {
             try {
                 new java.net.URL(url);
             } catch (final MalformedURLException e) {
-                logger.error("After substituting attribute values for {}, URL is {}; this is not a valid URL, so routing to failure",
-                        new Object[]{flowFile, url});
+                logger.
+                        error("After substituting attribute values for {}, URL is {}; this is not a valid URL, so routing to failure",
+                                new Object[]{flowFile, url});
                 flowFile = session.penalize(flowFile);
                 session.transfer(flowFile, REL_FAILURE);
                 continue;
@@ -434,36 +438,37 @@ public class PostHTTP extends AbstractProcessor {
             if (client == null || destinationAccepts == null) {
                 final Config config = getConfig(url, context);
                 final HttpClientConnectionManager conMan = config.getConnectionManager();
-                
+
                 final HttpClientBuilder clientBuilder = HttpClientBuilder.create();
                 clientBuilder.setConnectionManager(conMan);
                 clientBuilder.setUserAgent(userAgent);
-                clientBuilder.addInterceptorFirst(new HttpResponseInterceptor() {
-                    @Override
-                    public void process(final HttpResponse response, final HttpContext httpContext) throws HttpException, IOException {
-                        HttpCoreContext coreContext = HttpCoreContext.adapt(httpContext);
-                        ManagedHttpClientConnection conn = coreContext.getConnection(ManagedHttpClientConnection.class);
-                        if ( !conn.isOpen() ) {
-                            return;
-                        }
-                        
-                        SSLSession sslSession = conn.getSSLSession();
-                        
-                        if ( sslSession != null ) {
-                            final X509Certificate[] certChain = sslSession.getPeerCertificateChain();
-                            if (certChain == null || certChain.length == 0) {
-                                throw new SSLPeerUnverifiedException("No certificates found");
+                clientBuilder.
+                        addInterceptorFirst(new HttpResponseInterceptor() {
+                            @Override
+                            public void process(final HttpResponse response, final HttpContext httpContext) throws HttpException, IOException {
+                                HttpCoreContext coreContext = HttpCoreContext.adapt(httpContext);
+                                ManagedHttpClientConnection conn = coreContext.getConnection(ManagedHttpClientConnection.class);
+                                if (!conn.isOpen()) {
+                                    return;
+                                }
+
+                                SSLSession sslSession = conn.getSSLSession();
+
+                                if (sslSession != null) {
+                                    final X509Certificate[] certChain = sslSession.getPeerCertificateChain();
+                                    if (certChain == null || certChain.length == 0) {
+                                        throw new SSLPeerUnverifiedException("No certificates found");
+                                    }
+
+                                    final X509Certificate cert = certChain[0];
+                                    dnHolder.set(cert.getSubjectDN().getName().trim());
+                                }
                             }
+                        });
 
-                            final X509Certificate cert = certChain[0];
-                            dnHolder.set(cert.getSubjectDN().getName().trim());
-                        }
-                    }
-                });
-                
                 clientBuilder.disableAutomaticRetries();
                 clientBuilder.disableContentCompression();
-                
+
                 final String username = context.getProperty(USERNAME).getValue();
                 final String password = context.getProperty(PASSWORD).getValue();
                 // set the credentials if appropriate
@@ -473,7 +478,7 @@ public class PostHTTP extends AbstractProcessor {
                         credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username));
                     } else {
                         credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
-                    };
+                    }
                     clientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                 }
                 client = clientBuilder.build();
@@ -492,7 +497,8 @@ public class PostHTTP extends AbstractProcessor {
                     } catch (IOException e) {
                         flowFile = session.penalize(flowFile);
                         session.transfer(flowFile, REL_FAILURE);
-                        logger.error("Unable to communicate with destination {} to determine whether or not it can accept flowfiles/gzip; routing {} to failure due to {}", new Object[]{url, flowFile, e});
+                        logger.error("Unable to communicate with destination {} to determine whether or not it can accept "
+                                + "flowfiles/gzip; routing {} to failure due to {}", new Object[]{url, flowFile, e});
                         context.yield();
                         return;
                     }
@@ -580,7 +586,7 @@ public class PostHTTP extends AbstractProcessor {
         entity.setChunked(context.getProperty(CHUNKED_ENCODING).asBoolean());
         post.setEntity(entity);
         post.setConfig(requestConfig);
-        
+
         final String contentType;
         if (sendAsFlowFile) {
             if (accepts.isFlowFileV3Accepted()) {
@@ -590,7 +596,8 @@ public class PostHTTP extends AbstractProcessor {
             } else if (accepts.isFlowFileV1Accepted()) {
                 contentType = APPLICATION_FLOW_FILE_V1;
             } else {
-                logger.error("Cannot send data to {} because the destination does not accept FlowFiles and this processor is configured to deliver FlowFiles; rolling back session", new Object[]{url});
+                logger.error("Cannot send data to {} because the destination does not accept FlowFiles and this processor is "
+                        + "configured to deliver FlowFiles; rolling back session", new Object[]{url});
                 session.rollback();
                 context.yield();
                 return;
@@ -646,11 +653,11 @@ public class PostHTTP extends AbstractProcessor {
             }
             return;
         } finally {
-            if ( response != null ) {
+            if (response != null) {
                 try {
                     response.close();
                 } catch (IOException e) {
-                    getLogger().warn("Failed to close HTTP Response due to {}", new Object[] {e});
+                    getLogger().warn("Failed to close HTTP Response due to {}", new Object[]{e});
                 }
             }
         }
@@ -676,7 +683,8 @@ public class PostHTTP extends AbstractProcessor {
             if (holdUri == null) {
                 for (FlowFile flowFile : toSend) {
                     flowFile = session.penalize(flowFile);
-                    logger.error("Failed to Post {} to {}: sent content and received status code {}:{} but no Hold URI", new Object[]{flowFile, url, responseCode, responseReason});
+                    logger.error("Failed to Post {} to {}: sent content and received status code {}:{} but no Hold URI",
+                            new Object[]{flowFile, url, responseCode, responseReason});
                     session.transfer(flowFile, REL_FAILURE);
                 }
                 return;
@@ -687,7 +695,9 @@ public class PostHTTP extends AbstractProcessor {
             if (responseCode == HttpServletResponse.SC_SERVICE_UNAVAILABLE) {
                 for (FlowFile flowFile : toSend) {
                     flowFile = session.penalize(flowFile);
-                    logger.error("Failed to Post {} to {}: response code was {}:{}; will yield processing, since the destination is temporarily unavailable", new Object[]{flowFile, url, responseCode, responseReason});
+                    logger.error("Failed to Post {} to {}: response code was {}:{}; will yield processing, "
+                            + "since the destination is temporarily unavailable",
+                            new Object[]{flowFile, url, responseCode, responseReason});
                     session.transfer(flowFile, REL_FAILURE);
                 }
                 context.yield();
@@ -697,14 +707,15 @@ public class PostHTTP extends AbstractProcessor {
             if (responseCode >= 300) {
                 for (FlowFile flowFile : toSend) {
                     flowFile = session.penalize(flowFile);
-                    logger.error("Failed to Post {} to {}: response code was {}:{}", new Object[]{flowFile, url, responseCode, responseReason});
+                    logger.error("Failed to Post {} to {}: response code was {}:{}",
+                            new Object[]{flowFile, url, responseCode, responseReason});
                     session.transfer(flowFile, REL_FAILURE);
                 }
                 return;
             }
 
-            logger.info("Successfully Posted {} to {} in {} at a rate of {}", new Object[]{
-                flowFileDescription, url, FormatUtils.formatMinutesSeconds(uploadMillis, TimeUnit.MILLISECONDS), uploadDataRate});
+            logger.info("Successfully Posted {} to {} in {} at a rate of {}",
+                    new Object[]{flowFileDescription, url, FormatUtils.formatMinutesSeconds(uploadMillis, TimeUnit.MILLISECONDS), uploadDataRate});
 
             for (final FlowFile flowFile : toSend) {
                 session.getProvenanceReporter().send(flowFile, url, "Remote DN=" + dnHolder.get(), uploadMillis, true);
@@ -759,8 +770,7 @@ public class PostHTTP extends AbstractProcessor {
                     return;
                 }
 
-                logger.info("Successfully Posted {} to {} in {} milliseconds at a rate of {}",
-                        new Object[]{flowFileDescription, url, uploadMillis, uploadDataRate});
+                logger.info("Successfully Posted {} to {} in {} milliseconds at a rate of {}", new Object[]{flowFileDescription, url, uploadMillis, uploadDataRate});
 
                 for (FlowFile flowFile : toSend) {
                     session.getProvenanceReporter().send(flowFile, url);
@@ -773,7 +783,8 @@ public class PostHTTP extends AbstractProcessor {
 
             if (!isScheduled()) {
                 context.yield();
-                logger.warn("Failed to delete Hold that destination placed on {}; Processor has been stopped so routing FlowFile(s) to failure", new Object[]{flowFileDescription});
+                logger.
+                        warn("Failed to delete Hold that destination placed on {}; Processor has been stopped so routing FlowFile(s) to failure", new Object[]{flowFileDescription});
                 for (FlowFile flowFile : toSend) {
                     flowFile = session.penalize(flowFile);
                     session.transfer(flowFile, REL_FAILURE);
@@ -783,7 +794,6 @@ public class PostHTTP extends AbstractProcessor {
         }
     }
 
-
     private DestinationAccepts getDestinationAcceptance(final HttpClient client, final String uri, final ProcessorLog logger, final String transactionId) throws IOException {
         final HttpHead head = new HttpHead(uri);
         head.addHeader(TRANSACTION_ID_HEADER, transactionId);
@@ -856,7 +866,8 @@ public class PostHTTP extends AbstractProcessor {
 
             return new DestinationAccepts(acceptsFlowFileV3, acceptsFlowFileV2, acceptsFlowFileV1, acceptsGzip, protocolVersion);
         } else {
-            logger.warn("Unable to communicate with destination; when attempting to perform an HTTP HEAD, got unexpected response code of " + statusCode + ": " + response.getStatusLine().getReasonPhrase());
+            logger.warn("Unable to communicate with destination; when attempting to perform an HTTP HEAD, got unexpected response code of "
+                    + statusCode + ": " + response.getStatusLine().getReasonPhrase());
             return new DestinationAccepts(false, false, false, false, null);
         }
     }
@@ -869,8 +880,7 @@ public class PostHTTP extends AbstractProcessor {
         private final boolean gzip;
         private final Integer protocolVersion;
 
-        public DestinationAccepts(final boolean flowFileV3, final boolean flowFileV2, final boolean flowFileV1,
-                final boolean gzip, final Integer protocolVersion) {
+        public DestinationAccepts(final boolean flowFileV3, final boolean flowFileV2, final boolean flowFileV1, final boolean gzip, final Integer protocolVersion) {
             this.flowFileV3 = flowFileV3;
             this.flowFileV2 = flowFileV2;
             this.flowFileV1 = flowFileV1;

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java
index 144dd5b..8cad06f 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutEmail.java
@@ -74,7 +74,7 @@ public class PutEmail extends AbstractProcessor {
             .name("SMTP Hostname")
             .description("The hostname of the SMTP host")
             .required(true)
-		    .expressionLanguageSupported(true)
+            .expressionLanguageSupported(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .build();
     public static final PropertyDescriptor SMTP_PORT = new PropertyDescriptor.Builder()
@@ -82,142 +82,151 @@ public class PutEmail extends AbstractProcessor {
             .description("The Port used for SMTP communications")
             .required(true)
             .defaultValue("25")
-		    .expressionLanguageSupported(true)
+            .expressionLanguageSupported(true)
             .addValidator(StandardValidators.PORT_VALIDATOR)
             .build();
     public static final PropertyDescriptor SMTP_USERNAME = new PropertyDescriptor.Builder()
             .name("SMTP Username")
             .description("Username for the SMTP account")
-		    .expressionLanguageSupported(true)
+            .expressionLanguageSupported(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .required(false)
             .build();
     public static final PropertyDescriptor SMTP_PASSWORD = new PropertyDescriptor.Builder()
             .name("SMTP Password")
             .description("Password for the SMTP account")
-		    .expressionLanguageSupported(true)
+            .expressionLanguageSupported(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .required(false)
             .sensitive(true)
             .build();
     public static final PropertyDescriptor SMTP_AUTH = new PropertyDescriptor.Builder()
-		    .name("SMTP Auth")
-		    .description("Flag indicating whether authentication should be used")
-		    .required(true)
-		    .expressionLanguageSupported(true)
-		    .addValidator(StandardValidators.BOOLEAN_VALIDATOR)
-            .defaultValue("true")
-            .build();
-    public static final PropertyDescriptor SMTP_TLS = new PropertyDescriptor.Builder()
-		    .name("SMTP TLS")
-		    .description("Flag indicating whether TLS should be enabled")
-		    .required(true)
-		    .expressionLanguageSupported(true)
-		    .addValidator(StandardValidators.BOOLEAN_VALIDATOR)
-		    .defaultValue("false")
-		    .build();
-    public static final PropertyDescriptor SMTP_SOCKET_FACTORY = new PropertyDescriptor.Builder()
-		    .name("SMTP Socket Factory")
-		    .description("Socket Factory to use for SMTP Connection")
-		    .required(true)
-		    .expressionLanguageSupported(true)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-		    .defaultValue("javax.net.ssl.SSLSocketFactory")
-		    .build();
-    public static final PropertyDescriptor HEADER_XMAILER = new PropertyDescriptor.Builder()
-		    .name("SMTP X-Mailer Header")
-		    .description("X-Mailer used in the header of the outgoing email")
-		    .required(true)
-		    .expressionLanguageSupported(true)
-		    .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-		    .defaultValue("NiFi")
-		    .build();
-    public static final PropertyDescriptor CONTENT_TYPE = new PropertyDescriptor.Builder()
-		    .name("Content Type")
-		    .description("Mime Type used to interpret the contents of the email, such as text/plain or text/html")
-		    .required(true)
-		    .expressionLanguageSupported(true)
-		    .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-		    .defaultValue("text/plain")
-		    .build();
-    public static final PropertyDescriptor FROM = new PropertyDescriptor.Builder()
-            .name("From")
-            .description("Specifies the Email address to use as the sender")
+            .name("SMTP Auth")
+            .description("Flag indicating whether authentication should be used")
             .required(true)
             .expressionLanguageSupported(true)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor TO = new PropertyDescriptor.Builder()
-            .name("To")
-            .description("The recipients to include in the To-Line of the email")
-            .required(false)
-            .expressionLanguageSupported(true)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor CC = new PropertyDescriptor.Builder()
-            .name("CC")
-            .description("The recipients to include in the CC-Line of the email")
-            .required(false)
-            .expressionLanguageSupported(true)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor BCC = new PropertyDescriptor.Builder()
-            .name("BCC")
-            .description("The recipients to include in the BCC-Line of the email")
-            .required(false)
-            .expressionLanguageSupported(true)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+            .addValidator(StandardValidators.BOOLEAN_VALIDATOR)
+            .defaultValue("true")
             .build();
-    public static final PropertyDescriptor SUBJECT = new PropertyDescriptor.Builder()
-            .name("Subject")
-            .description("The email subject")
+    public static final PropertyDescriptor SMTP_TLS = new PropertyDescriptor.Builder()
+            .name("SMTP TLS")
+            .description("Flag indicating whether TLS should be enabled")
             .required(true)
             .expressionLanguageSupported(true)
-            .defaultValue("Message from NiFi")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+            .addValidator(StandardValidators.BOOLEAN_VALIDATOR)
+            .defaultValue("false")
             .build();
-    public static final PropertyDescriptor MESSAGE = new PropertyDescriptor.Builder()
-            .name("Message")
-            .description("The body of the email message")
+    public static final PropertyDescriptor SMTP_SOCKET_FACTORY = new PropertyDescriptor.Builder()
+            .name("SMTP Socket Factory")
+            .description("Socket Factory to use for SMTP Connection")
             .required(true)
             .expressionLanguageSupported(true)
-            .defaultValue("")
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+            .defaultValue("javax.net.ssl.SSLSocketFactory")
             .build();
-    public static final PropertyDescriptor ATTACH_FILE = new PropertyDescriptor.Builder()
-            .name("Attach File")
-            .description("Specifies whether or not the FlowFile content should be attached to the email")
-            .required(true)
-            .allowableValues("true", "false")
-            .defaultValue("false")
-            .build();
-    public static final PropertyDescriptor INCLUDE_ALL_ATTRIBUTES = new PropertyDescriptor.Builder()
-            .name("Include All Attributes In Message")
-            .description("Specifies whether or not all FlowFile attributes should be recorded in the body of the email message")
-            .required(true)
-            .allowableValues("true", "false")
-            .defaultValue("false")
-            .build();
-    
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("FlowFiles that are successfully sent will be routed to this relationship").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("FlowFiles that fail to send will be routed to this relationship").build();
+    public static final PropertyDescriptor HEADER_XMAILER = new PropertyDescriptor.Builder().
+            name("SMTP X-Mailer Header").
+            description("X-Mailer used in the header of the outgoing email").
+            required(true).
+            expressionLanguageSupported(true).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            defaultValue("NiFi").
+            build();
+    public static final PropertyDescriptor CONTENT_TYPE = new PropertyDescriptor.Builder().
+            name("Content Type").
+            description("Mime Type used to interpret the contents of the email, such as text/plain or text/html").
+            required(true).
+            expressionLanguageSupported(true).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            defaultValue("text/plain").
+            build();
+    public static final PropertyDescriptor FROM = new PropertyDescriptor.Builder().
+            name("From").
+            description("Specifies the Email address to use as the sender").
+            required(true).
+            expressionLanguageSupported(true).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
+    public static final PropertyDescriptor TO = new PropertyDescriptor.Builder()
+            .name("To").
+            description("The recipients to include in the To-Line of the email").
+            required(false).
+            expressionLanguageSupported(true).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
+    public static final PropertyDescriptor CC = new PropertyDescriptor.Builder()
+            .name("CC").
+            description("The recipients to include in the CC-Line of the email").
+            required(false).
+            expressionLanguageSupported(true).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
+    public static final PropertyDescriptor BCC = new PropertyDescriptor.Builder().
+            name("BCC").
+            description("The recipients to include in the BCC-Line of the email").
+            required(false).
+            expressionLanguageSupported(true).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
+    public static final PropertyDescriptor SUBJECT = new PropertyDescriptor.Builder().
+            name("Subject").
+            description("The email subject").
+            required(true).
+            expressionLanguageSupported(true).
+            defaultValue("Message from NiFi").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
+    public static final PropertyDescriptor MESSAGE = new PropertyDescriptor.Builder().
+            name("Message").
+            description("The body of the email message").
+            required(true).
+            expressionLanguageSupported(true).
+            defaultValue("").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
+    public static final PropertyDescriptor ATTACH_FILE = new PropertyDescriptor.Builder().
+            name("Attach File").
+            description("Specifies whether or not the FlowFile content should be attached to the email").
+            required(true).
+            allowableValues("true", "false").
+            defaultValue("false").
+            build();
+    public static final PropertyDescriptor INCLUDE_ALL_ATTRIBUTES = new PropertyDescriptor.Builder().
+            name("Include All Attributes In Message").
+            description("Specifies whether or not all FlowFile attributes should be recorded in the body of the email message").
+            required(true).
+            allowableValues("true", "false").
+            defaultValue("false").
+            build();
+
+    public static final Relationship REL_SUCCESS = new Relationship.Builder().
+            name("success").
+            description("FlowFiles that are successfully sent will be routed to this relationship").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("FlowFiles that fail to send will be routed to this relationship").
+            build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
-    
+
     /**
-     * Mapping of the mail properties to the NiFi PropertyDescriptors that will be evaluated at runtime
+     * Mapping of the mail properties to the NiFi PropertyDescriptors that will
+     * be evaluated at runtime
      */
-    private static Map<String, PropertyDescriptor> propertyToContext = new HashMap<String, PropertyDescriptor>();
+    private static final Map<String, PropertyDescriptor> propertyToContext = new HashMap<>();
+
     static {
-    	propertyToContext.put("mail.smtp.host", SMTP_HOSTNAME);
-	    propertyToContext.put("mail.smtp.port", SMTP_PORT);
-	    propertyToContext.put("mail.smtp.socketFactory.port", SMTP_PORT);
-	    propertyToContext.put("mail.smtp.socketFactory.class", SMTP_SOCKET_FACTORY);
-	    propertyToContext.put("mail.smtp.auth", SMTP_AUTH);
-	    propertyToContext.put("mail.smtp.starttls.enable", SMTP_TLS);
-	    propertyToContext.put("mail.smtp.user", SMTP_USERNAME);
-	    propertyToContext.put("mail.smtp.password", SMTP_PASSWORD);
+        propertyToContext.put("mail.smtp.host", SMTP_HOSTNAME);
+        propertyToContext.put("mail.smtp.port", SMTP_PORT);
+        propertyToContext.put("mail.smtp.socketFactory.port", SMTP_PORT);
+        propertyToContext.
+                put("mail.smtp.socketFactory.class", SMTP_SOCKET_FACTORY);
+        propertyToContext.put("mail.smtp.auth", SMTP_AUTH);
+        propertyToContext.put("mail.smtp.starttls.enable", SMTP_TLS);
+        propertyToContext.put("mail.smtp.user", SMTP_USERNAME);
+        propertyToContext.put("mail.smtp.password", SMTP_PASSWORD);
     }
 
     @Override
@@ -260,14 +269,21 @@ public class PutEmail extends AbstractProcessor {
 
     @Override
     protected Collection<ValidationResult> customValidate(final ValidationContext context) {
-        final List<ValidationResult> errors = new ArrayList<>(super.customValidate(context));
+        final List<ValidationResult> errors = new ArrayList<>(super.
+                customValidate(context));
 
-        final String to = context.getProperty(TO).getValue();
-        final String cc = context.getProperty(CC).getValue();
-        final String bcc = context.getProperty(BCC).getValue();
+        final String to = context.getProperty(TO).
+                getValue();
+        final String cc = context.getProperty(CC).
+                getValue();
+        final String bcc = context.getProperty(BCC).
+                getValue();
 
         if (to == null && cc == null && bcc == null) {
-            errors.add(new ValidationResult.Builder().subject("To, CC, BCC").valid(false).explanation("Must specify at least one To/CC/BCC address").build());
+            errors.add(new ValidationResult.Builder().subject("To, CC, BCC").
+                    valid(false).
+                    explanation("Must specify at least one To/CC/BCC address").
+                    build());
         }
 
         return errors;
@@ -280,142 +296,187 @@ public class PutEmail extends AbstractProcessor {
             return;
         }
 
-        final Properties properties = this.getMailPropertiesFromFlowFile(context, flowFile);
-        
+        final Properties properties = this.
+                getMailPropertiesFromFlowFile(context, flowFile);
+
         final Session mailSession = this.createMailSession(properties);
-        
+
         final Message message = new MimeMessage(mailSession);
         final ProcessorLog logger = getLogger();
 
         try {
-            message.setFrom(InternetAddress.parse(context.getProperty(FROM).evaluateAttributeExpressions(flowFile).getValue())[0]);
+            message.setFrom(InternetAddress.parse(context.getProperty(FROM).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue())[0]);
 
-            final InternetAddress[] toAddresses = toInetAddresses(context.getProperty(TO).evaluateAttributeExpressions(flowFile).getValue());
+            final InternetAddress[] toAddresses = toInetAddresses(context.
+                    getProperty(TO).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue());
             message.setRecipients(RecipientType.TO, toAddresses);
 
-            final InternetAddress[] ccAddresses = toInetAddresses(context.getProperty(CC).evaluateAttributeExpressions(flowFile).getValue());
+            final InternetAddress[] ccAddresses = toInetAddresses(context.
+                    getProperty(CC).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue());
             message.setRecipients(RecipientType.CC, ccAddresses);
 
-            final InternetAddress[] bccAddresses = toInetAddresses(context.getProperty(BCC).evaluateAttributeExpressions(flowFile).getValue());
+            final InternetAddress[] bccAddresses = toInetAddresses(context.
+                    getProperty(BCC).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue());
             message.setRecipients(RecipientType.BCC, bccAddresses);
 
-            message.setHeader("X-Mailer", context.getProperty(HEADER_XMAILER).evaluateAttributeExpressions(flowFile).getValue());
-            message.setSubject(context.getProperty(SUBJECT).evaluateAttributeExpressions(flowFile).getValue());
-            String messageText = context.getProperty(MESSAGE).evaluateAttributeExpressions(flowFile).getValue();
+            message.setHeader("X-Mailer", context.getProperty(HEADER_XMAILER).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue());
+            message.setSubject(context.getProperty(SUBJECT).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue());
+            String messageText = context.getProperty(MESSAGE).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue();
 
-            if (context.getProperty(INCLUDE_ALL_ATTRIBUTES).asBoolean()) {
+            if (context.getProperty(INCLUDE_ALL_ATTRIBUTES).
+                    asBoolean()) {
                 messageText = formatAttributes(flowFile, messageText);
             }
-            
-            String contentType = context.getProperty(CONTENT_TYPE).evaluateAttributeExpressions(flowFile).getValue();
+
+            String contentType = context.getProperty(CONTENT_TYPE).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue();
             message.setContent(messageText, contentType);
             message.setSentDate(new Date());
-            
-            if (context.getProperty(ATTACH_FILE).asBoolean()) {
+
+            if (context.getProperty(ATTACH_FILE).
+                    asBoolean()) {
                 final MimeBodyPart mimeText = new PreencodedMimeBodyPart("base64");
-                mimeText.setDataHandler(new DataHandler(new ByteArrayDataSource(Base64.encodeBase64(messageText.getBytes("UTF-8")), "text/plain; charset=\"utf-8\"")));
+                mimeText.
+                        setDataHandler(new DataHandler(new ByteArrayDataSource(Base64.
+                                                encodeBase64(messageText.
+                                                        getBytes("UTF-8")), "text/plain; charset=\"utf-8\"")));
                 final MimeBodyPart mimeFile = new MimeBodyPart();
                 session.read(flowFile, new InputStreamCallback() {
                     @Override
                     public void process(final InputStream stream) throws IOException {
                         try {
-                            mimeFile.setDataHandler(new DataHandler(new ByteArrayDataSource(stream, "application/octet-stream")));
+                            mimeFile.
+                                    setDataHandler(new DataHandler(new ByteArrayDataSource(stream, "application/octet-stream")));
                         } catch (final Exception e) {
                             throw new IOException(e);
                         }
                     }
                 });
 
-                mimeFile.setFileName(flowFile.getAttribute(CoreAttributes.FILENAME.key()));
+                mimeFile.setFileName(flowFile.
+                        getAttribute(CoreAttributes.FILENAME.key()));
                 MimeMultipart multipart = new MimeMultipart();
                 multipart.addBodyPart(mimeText);
                 multipart.addBodyPart(mimeFile);
                 message.setContent(multipart);
             }
-            
+
             Transport.send(message);
 
-            session.getProvenanceReporter().send(flowFile, "mailto:" + message.getAllRecipients()[0].toString());
+            session.getProvenanceReporter().
+                    send(flowFile, "mailto:" + message.getAllRecipients()[0].
+                            toString());
             session.transfer(flowFile, REL_SUCCESS);
-            logger.info("Sent email as a result of receiving {}", new Object[]{flowFile});
+            logger.
+                    info("Sent email as a result of receiving {}", new Object[]{flowFile});
         } catch (final ProcessException | MessagingException | IOException e) {
             context.yield();
-            logger.error("Failed to send email for {}: {}; routing to failure", new Object[]{flowFile, e});
+            logger.
+                    error("Failed to send email for {}: {}; routing to failure", new Object[]{flowFile, e});
             session.transfer(flowFile, REL_FAILURE);
         }
     }
 
     /**
-     * Based on the input properties, determine whether an authenticate or unauthenticated session
-     * should be used. If authenticated, creates a Password Authenticator for use in sending the email.
-     * 
-     * @param properties
-     * @return
+     * Based on the input properties, determine whether an authenticate or
+     * unauthenticated session should be used. If authenticated, creates a
+     * Password Authenticator for use in sending the email.
+     *
+     * @param properties mail properties
+     * @return session
      */
-	private Session createMailSession(final Properties properties) {
-		String authValue = properties.getProperty("mail.smtp.auth");
+    private Session createMailSession(final Properties properties) {
+        String authValue = properties.getProperty("mail.smtp.auth");
         Boolean auth = Boolean.valueOf(authValue);
-        
+
         /*
          * Conditionally create a password authenticator if the 'auth' parameter is set.
          */
-        final Session mailSession = auth ? Session.getInstance(properties, new Authenticator() {
-        	@Override
-        	public PasswordAuthentication getPasswordAuthentication() {
-        		String username = properties.getProperty("mail.smtp.user"),
-        				password = properties.getProperty("mail.smtp.password");
-        		return new PasswordAuthentication(username, password);
-        	}
-        }) : Session.getInstance(properties); // without auth
-		return mailSession;
-	}
+        final Session mailSession = auth ? Session.
+                getInstance(properties, new Authenticator() {
+                    @Override
+                    public PasswordAuthentication getPasswordAuthentication() {
+                        String username = properties.
+                        getProperty("mail.smtp.user"),
+                        password = properties.getProperty("mail.smtp.password");
+                        return new PasswordAuthentication(username, password);
+                    }
+                }) : Session.getInstance(properties); // without auth
+        return mailSession;
+    }
 
     /**
-     * Uses the mapping of javax.mail properties to NiFi PropertyDescriptors to build
-     * the required Properties object to be used for sending this email
-     * 
-     * @param context
-     * @param flowFile
-     * @return
+     * Uses the mapping of javax.mail properties to NiFi PropertyDescriptors to
+     * build the required Properties object to be used for sending this email
+     *
+     * @param context context
+     * @param flowFile flowFile
+     * @return mail properties
      */
     private Properties getMailPropertiesFromFlowFile(final ProcessContext context, final FlowFile flowFile) {
 
         final Properties properties = new Properties();
-        
+
         final ProcessorLog logger = this.getLogger();
-        
-        for(Entry<String, PropertyDescriptor> entry : propertyToContext.entrySet()) {
-        	
-        	// Evaluate the property descriptor against the flow file
-        	String flowFileValue = context.getProperty(entry.getValue()).evaluateAttributeExpressions(flowFile).getValue();
-        	
-        	String property = entry.getKey();
-        	
-        	logger.debug("Evaluated Mail Property: {} with Value: {}", new Object[]{property, flowFileValue});
-        	
-        	// Nullable values are not allowed, so filter out
-        	if(null != flowFileValue) {
-        		properties.setProperty(property, flowFileValue);
-        	}
-        	
+
+        for (Entry<String, PropertyDescriptor> entry : propertyToContext.
+                entrySet()) {
+
+            // Evaluate the property descriptor against the flow file
+            String flowFileValue = context.getProperty(entry.getValue()).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue();
+
+            String property = entry.getKey();
+
+            logger.
+                    debug("Evaluated Mail Property: {} with Value: {}", new Object[]{property, flowFileValue});
+
+            // Nullable values are not allowed, so filter out
+            if (null != flowFileValue) {
+                properties.setProperty(property, flowFileValue);
+            }
+
         }
-        
+
         return properties;
-        
-	}
 
-	public static final String BODY_SEPARATOR = "\n\n--------------------------------------------------\n";
+    }
+
+    public static final String BODY_SEPARATOR = "\n\n--------------------------------------------------\n";
 
     private static String formatAttributes(final FlowFile flowFile, final String messagePrepend) {
         StringBuilder message = new StringBuilder(messagePrepend);
         message.append(BODY_SEPARATOR);
         message.append("\nStandard FlowFile Metadata:");
-        message.append(String.format("\n\t%1$s = '%2$s'", "id", flowFile.getId()));
-        message.append(String.format("\n\t%1$s = '%2$s'", "entryDate", new Date(flowFile.getEntryDate())));
-        message.append(String.format("\n\t%1$s = '%2$s'", "fileSize", flowFile.getSize()));
+        message.append(String.
+                format("\n\t%1$s = '%2$s'", "id", flowFile.getId()));
+        message.append(String.
+                format("\n\t%1$s = '%2$s'", "entryDate", new Date(flowFile.
+                                getEntryDate())));
+        message.append(String.format("\n\t%1$s = '%2$s'", "fileSize", flowFile.
+                getSize()));
         message.append("\nFlowFile Attributes:");
-        for (Entry<String, String> attribute : flowFile.getAttributes().entrySet()) {
-            message.append(String.format("\n\t%1$s = '%2$s'", attribute.getKey(), attribute.getValue()));
+        for (Entry<String, String> attribute : flowFile.getAttributes().
+                entrySet()) {
+            message.append(String.
+                    format("\n\t%1$s = '%2$s'", attribute.getKey(), attribute.
+                            getValue()));
         }
         message.append("\n");
         return message.toString();

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java
index 6e75661..6786bf0 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFTP.java
@@ -44,20 +44,23 @@ import org.apache.nifi.processors.standard.util.FTPTransfer;
 @Tags({"remote", "copy", "egress", "put", "ftp", "archive", "files"})
 @CapabilityDescription("Sends FlowFiles to an FTP Server")
 @SeeAlso(GetFTP.class)
-@DynamicProperties({@DynamicProperty(name="pre.cmd._____", value="Not used", description="The command specified in the key will be executed before doing a put.  You may add these optional properties " +
-                        " to send any commands to the FTP server before the file is actually transferred (before the put command)." +
-                        " This option is only available for the PutFTP processor, as only FTP has this functionality. This is" +
-                        " essentially the same as sending quote commands to an FTP server from the command line.  While this is the same as sending a quote command, it is very important that" +
-                        " you leave off the ."),
-    @DynamicProperty(name="post.cmd._____", value="Not used", description="The command specified in the key will be executed after doing a put.  You may add these optional properties " +
-                        " to send any commands to the FTP server before the file is actually transferred (before the put command)." +
-                        " This option is only available for the PutFTP processor, as only FTP has this functionality. This is" +
-                        " essentially the same as sending quote commands to an FTP server from the command line.  While this is the same as sending a quote command, it is very important that" +
-                        " you leave off the .")})
+@DynamicProperties({
+    @DynamicProperty(name = "pre.cmd._____", value = "Not used", description = "The command specified in the key will be executed before doing a put.  You may add these optional properties "
+            + " to send any commands to the FTP server before the file is actually transferred (before the put command)."
+            + " This option is only available for the PutFTP processor, as only FTP has this functionality. This is"
+            + " essentially the same as sending quote commands to an FTP server from the command line.  While this is the same as sending a quote command, it is very important that"
+            + " you leave off the ."),
+    @DynamicProperty(name = "post.cmd._____", value = "Not used", description = "The command specified in the key will be executed after doing a put.  You may add these optional properties "
+            + " to send any commands to the FTP server before the file is actually transferred (before the put command)."
+            + " This option is only available for the PutFTP processor, as only FTP has this functionality. This is"
+            + " essentially the same as sending quote commands to an FTP server from the command line.  While this is the same as sending a quote command, it is very important that"
+            + " you leave off the .")})
 public class PutFTP extends PutFileTransfer<FTPTransfer> {
 
-    private static final Pattern PRE_SEND_CMD_PATTERN = Pattern.compile("^pre\\.cmd\\.(\\d+)$");
-    private static final Pattern POST_SEND_CMD_PATTERN = Pattern.compile("^post\\.cmd\\.(\\d+)$");
+    private static final Pattern PRE_SEND_CMD_PATTERN = Pattern.
+            compile("^pre\\.cmd\\.(\\d+)$");
+    private static final Pattern POST_SEND_CMD_PATTERN = Pattern.
+            compile("^post\\.cmd\\.(\\d+)$");
 
     private final AtomicReference<List<PropertyDescriptor>> preSendDescriptorRef = new AtomicReference<>();
     private final AtomicReference<List<PropertyDescriptor>> postSendDescriptorRef = new AtomicReference<>();
@@ -90,7 +93,7 @@ public class PutFTP extends PutFileTransfer<FTPTransfer> {
         properties.add(FTPTransfer.PROXY_PORT);
         properties.add(FTPTransfer.HTTP_PROXY_USERNAME);
         properties.add(FTPTransfer.HTTP_PROXY_PASSWORD);
-        
+
         this.properties = Collections.unmodifiableList(properties);
     }
 
@@ -101,12 +104,14 @@ public class PutFTP extends PutFileTransfer<FTPTransfer> {
 
     @Override
     protected void beforePut(final FlowFile flowFile, final ProcessContext context, final FTPTransfer transfer) throws IOException {
-        transfer.sendCommands(getCommands(preSendDescriptorRef.get(), context, flowFile), flowFile);
+        transfer.
+                sendCommands(getCommands(preSendDescriptorRef.get(), context, flowFile), flowFile);
     }
 
     @Override
     protected void afterPut(final FlowFile flowFile, final ProcessContext context, final FTPTransfer transfer) throws IOException {
-        transfer.sendCommands(getCommands(postSendDescriptorRef.get(), context, flowFile), flowFile);
+        transfer.
+                sendCommands(getCommands(postSendDescriptorRef.get(), context, flowFile), flowFile);
     }
 
     @Override
@@ -117,10 +122,10 @@ public class PutFTP extends PutFileTransfer<FTPTransfer> {
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
         return new PropertyDescriptor.Builder()
-                .name(propertyDescriptorName)
-                .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-                .dynamic(true)
-                .build();
+                .name(propertyDescriptorName).
+                addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+                dynamic(true).
+                build();
     }
 
     @OnScheduled
@@ -128,7 +133,8 @@ public class PutFTP extends PutFileTransfer<FTPTransfer> {
         final Map<Integer, PropertyDescriptor> preDescriptors = new TreeMap<>();
         final Map<Integer, PropertyDescriptor> postDescriptors = new TreeMap<>();
 
-        for (final PropertyDescriptor descriptor : context.getProperties().keySet()) {
+        for (final PropertyDescriptor descriptor : context.getProperties().
+                keySet()) {
             final String name = descriptor.getName();
             final Matcher preMatcher = PRE_SEND_CMD_PATTERN.matcher(name);
             if (preMatcher.matches()) {
@@ -143,8 +149,10 @@ public class PutFTP extends PutFileTransfer<FTPTransfer> {
             }
         }
 
-        final List<PropertyDescriptor> preDescriptorList = new ArrayList<>(preDescriptors.values());
-        final List<PropertyDescriptor> postDescriptorList = new ArrayList<>(postDescriptors.values());
+        final List<PropertyDescriptor> preDescriptorList = new ArrayList<>(preDescriptors.
+                values());
+        final List<PropertyDescriptor> postDescriptorList = new ArrayList<>(postDescriptors.
+                values());
         this.preSendDescriptorRef.set(preDescriptorList);
         this.postSendDescriptorRef.set(postDescriptorList);
     }
@@ -152,7 +160,9 @@ public class PutFTP extends PutFileTransfer<FTPTransfer> {
     private List<String> getCommands(final List<PropertyDescriptor> descriptors, final ProcessContext context, final FlowFile flowFile) {
         final List<String> cmds = new ArrayList<>();
         for (final PropertyDescriptor descriptor : descriptors) {
-            cmds.add(context.getProperty(descriptor).evaluateAttributeExpressions(flowFile).getValue());
+            cmds.add(context.getProperty(descriptor).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue());
         }
 
         return cmds;

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java
index ba78133..ce03491 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFile.java
@@ -64,65 +64,76 @@ public class PutFile extends AbstractProcessor {
     public static final String FILE_MODIFY_DATE_ATTRIBUTE = "file.lastModifiedTime";
     public static final String FILE_MODIFY_DATE_ATTR_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ";
 
-    public static final PropertyDescriptor DIRECTORY = new PropertyDescriptor.Builder()
-            .name("Directory")
-            .description("The directory to which files should be written. You may use expression language such as /aa/bb/${path}")
-            .required(true)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor MAX_DESTINATION_FILES = new PropertyDescriptor.Builder()
-            .name("Maximum File Count")
-            .description("Specifies the maximum number of files that can exist in the output directory")
-            .required(false)
-            .addValidator(StandardValidators.INTEGER_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor CONFLICT_RESOLUTION = new PropertyDescriptor.Builder()
-            .name("Conflict Resolution Strategy")
-            .description("Indicates what should happen when a file with the same name already exists in the output directory")
-            .required(true)
-            .defaultValue(FAIL_RESOLUTION)
-            .allowableValues(REPLACE_RESOLUTION, IGNORE_RESOLUTION, FAIL_RESOLUTION)
-            .build();
-    public static final PropertyDescriptor CHANGE_LAST_MODIFIED_TIME = new PropertyDescriptor.Builder()
-            .name("Last Modified Time")
-            .description("Sets the lastModifiedTime on the output file to the value of this attribute.  Format must be yyyy-MM-dd'T'HH:mm:ssZ.  You may also use expression language such as ${file.lastModifiedTime}.")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor CHANGE_PERMISSIONS = new PropertyDescriptor.Builder()
-            .name("Permissions")
-            .description("Sets the permissions on the output file to the value of this attribute.  Format must be either UNIX rwxrwxrwx with a - in place of denied permissions (e.g. rw-r--r--) or an octal number (e.g. 644).  You may also use expression language such as ${file.permissions}.")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor CHANGE_OWNER = new PropertyDescriptor.Builder()
-            .name("Owner")
-            .description("Sets the owner on the output file to the value of this attribute.  You may also use expression language such as ${file.owner}.")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor CHANGE_GROUP = new PropertyDescriptor.Builder()
-            .name("Group")
-            .description("Sets the group on the output file to the value of this attribute.  You may also use expression language such as ${file.group}.")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor CREATE_DIRS = new PropertyDescriptor.Builder()
-            .name("Create Missing Directories")
-            .description("If true, then missing destination directories will be created. If false, flowfiles are penalized and sent to failure.")
-            .required(true)
-            .allowableValues("true", "false")
-            .defaultValue("true")
-            .build();
+    public static final PropertyDescriptor DIRECTORY = new PropertyDescriptor.Builder().
+            name("Directory").
+            description("The directory to which files should be written. You may use expression language such as /aa/bb/${path}").
+            required(true).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor MAX_DESTINATION_FILES = new PropertyDescriptor.Builder().
+            name("Maximum File Count").
+            description("Specifies the maximum number of files that can exist in the output directory").
+            required(false).
+            addValidator(StandardValidators.INTEGER_VALIDATOR).
+            build();
+    public static final PropertyDescriptor CONFLICT_RESOLUTION = new PropertyDescriptor.Builder().
+            name("Conflict Resolution Strategy").
+            description("Indicates what should happen when a file with the same name already exists in the output directory").
+            required(true).
+            defaultValue(FAIL_RESOLUTION).
+            allowableValues(REPLACE_RESOLUTION, IGNORE_RESOLUTION, FAIL_RESOLUTION).
+            build();
+    public static final PropertyDescriptor CHANGE_LAST_MODIFIED_TIME = new PropertyDescriptor.Builder().
+            name("Last Modified Time").
+            description("Sets the lastModifiedTime on the output file to the value of this attribute.  Format must be yyyy-MM-dd'T'HH:mm:ssZ.  "
+                    + "You may also use expression language such as ${file.lastModifiedTime}.").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor CHANGE_PERMISSIONS = new PropertyDescriptor.Builder().
+            name("Permissions").
+            description("Sets the permissions on the output file to the value of this attribute.  Format must be either UNIX rwxrwxrwx with a - in "
+                    + "place of denied permissions (e.g. rw-r--r--) or an octal number (e.g. 644).  You may also use expression language such as "
+                    + "${file.permissions}.").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor CHANGE_OWNER = new PropertyDescriptor.Builder().
+            name("Owner").
+            description("Sets the owner on the output file to the value of this attribute.  You may also use expression language such as "
+                    + "${file.owner}.").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor CHANGE_GROUP = new PropertyDescriptor.Builder().
+            name("Group").
+            description("Sets the group on the output file to the value of this attribute.  You may also use expression language such "
+                    + "as ${file.group}.").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor CREATE_DIRS = new PropertyDescriptor.Builder().
+            name("Create Missing Directories").
+            description("If true, then missing destination directories will be created. If false, flowfiles are penalized and sent to failure.").
+            required(true).
+            allowableValues("true", "false").
+            defaultValue("true").
+            build();
 
     public static final int MAX_FILE_LOCK_ATTEMPTS = 10;
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("Files that have been successfully written to the output directory are transferred to this relationship").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("Files that could not be written to the output directory for some reason are transferred to this relationship").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder().
+            name("success").
+            description("Files that have been successfully written to the output directory are transferred to this relationship").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("Files that could not be written to the output directory for some reason are transferred to this relationship").
+            build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
@@ -166,24 +177,35 @@ public class PutFile extends AbstractProcessor {
         }
 
         final StopWatch stopWatch = new StopWatch(true);
-        final Path configuredRootDirPath = Paths.get(context.getProperty(DIRECTORY).evaluateAttributeExpressions(flowFile).getValue());
-        final String conflictResponse = context.getProperty(CONFLICT_RESOLUTION).getValue();
-        final Integer maxDestinationFiles = context.getProperty(MAX_DESTINATION_FILES).asInteger();
+        final Path configuredRootDirPath = Paths.get(context.
+                getProperty(DIRECTORY).
+                evaluateAttributeExpressions(flowFile).
+                getValue());
+        final String conflictResponse = context.getProperty(CONFLICT_RESOLUTION).
+                getValue();
+        final Integer maxDestinationFiles = context.
+                getProperty(MAX_DESTINATION_FILES).
+                asInteger();
         final ProcessorLog logger = getLogger();
 
         Path tempDotCopyFile = null;
         try {
             final Path rootDirPath = configuredRootDirPath;
-            final Path tempCopyFile = rootDirPath.resolve("." + flowFile.getAttribute(CoreAttributes.FILENAME.key()));
-            final Path copyFile = rootDirPath.resolve(flowFile.getAttribute(CoreAttributes.FILENAME.key()));
+            final Path tempCopyFile = rootDirPath.resolve("." + flowFile.
+                    getAttribute(CoreAttributes.FILENAME.key()));
+            final Path copyFile = rootDirPath.resolve(flowFile.
+                    getAttribute(CoreAttributes.FILENAME.key()));
 
             if (!Files.exists(rootDirPath)) {
-                if (context.getProperty(CREATE_DIRS).asBoolean()) {
+                if (context.getProperty(CREATE_DIRS).
+                        asBoolean()) {
                     Files.createDirectories(rootDirPath);
                 } else {
                     flowFile = session.penalize(flowFile);
                     session.transfer(flowFile, REL_FAILURE);
-                    logger.error("Penalizing {} and routing to 'failure' because the output directory {} does not exist and Processor is configured not to create missing directories", new Object[]{flowFile, rootDirPath});
+                    logger.
+                            error("Penalizing {} and routing to 'failure' because the output directory {} does not exist and Processor is "
+                                    + "configured not to create missing directories", new Object[]{flowFile, rootDirPath});
                     return;
                 }
             }
@@ -194,11 +216,14 @@ public class PutFile extends AbstractProcessor {
 
             final Path finalCopyFileDir = finalCopyFile.getParent();
             if (Files.exists(finalCopyFileDir) && maxDestinationFiles != null) { // check if too many files already
-                final int numFiles = finalCopyFileDir.toFile().list().length;
+                final int numFiles = finalCopyFileDir.toFile().
+                        list().length;
 
                 if (numFiles >= maxDestinationFiles) {
                     flowFile = session.penalize(flowFile);
-                    logger.info("Penalizing {} and routing to 'failure' because the output directory {} has {} files, which exceeds the configured maximum number of files", new Object[]{flowFile, finalCopyFileDir, numFiles});
+                    logger.
+                            info("Penalizing {} and routing to 'failure' because the output directory {} has {} files, which exceeds the "
+                                    + "configured maximum number of files", new Object[]{flowFile, finalCopyFileDir, numFiles});
                     session.transfer(flowFile, REL_FAILURE);
                     return;
                 }
@@ -208,15 +233,18 @@ public class PutFile extends AbstractProcessor {
                 switch (conflictResponse) {
                     case REPLACE_RESOLUTION:
                         Files.delete(finalCopyFile);
-                        logger.info("Deleted {} as configured in order to replace with the contents of {}", new Object[]{finalCopyFile, flowFile});
+                        logger.
+                                info("Deleted {} as configured in order to replace with the contents of {}", new Object[]{finalCopyFile, flowFile});
                         break;
                     case IGNORE_RESOLUTION:
                         session.transfer(flowFile, REL_SUCCESS);
-                        logger.info("Transferring {} to success because file with same name already exists", new Object[]{flowFile});
+                        logger.
+                                info("Transferring {} to success because file with same name already exists", new Object[]{flowFile});
                         return;
                     case FAIL_RESOLUTION:
                         flowFile = session.penalize(flowFile);
-                        logger.info("Penalizing {} and routing to failure as configured because file with the same name already exists", new Object[]{flowFile});
+                        logger.
+                                info("Penalizing {} and routing to failure as configured because file with the same name already exists", new Object[]{flowFile});
                         session.transfer(flowFile, REL_FAILURE);
                         return;
                     default:
@@ -226,53 +254,82 @@ public class PutFile extends AbstractProcessor {
 
             session.exportTo(flowFile, dotCopyFile, false);
 
-            final String lastModifiedTime = context.getProperty(CHANGE_LAST_MODIFIED_TIME).evaluateAttributeExpressions(flowFile).getValue();
-            if (lastModifiedTime != null && !lastModifiedTime.trim().isEmpty()) {
+            final String lastModifiedTime = context.
+                    getProperty(CHANGE_LAST_MODIFIED_TIME).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue();
+            if (lastModifiedTime != null && !lastModifiedTime.trim().
+                    isEmpty()) {
                 try {
                     final DateFormat formatter = new SimpleDateFormat(FILE_MODIFY_DATE_ATTR_FORMAT, Locale.US);
-                    final Date fileModifyTime = formatter.parse(lastModifiedTime);
-                    dotCopyFile.toFile().setLastModified(fileModifyTime.getTime());
+                    final Date fileModifyTime = formatter.
+                            parse(lastModifiedTime);
+                    dotCopyFile.toFile().
+                            setLastModified(fileModifyTime.getTime());
                 } catch (Exception e) {
-                    logger.warn("Could not set file lastModifiedTime to {} because {}", new Object[]{lastModifiedTime, e});
+                    logger.
+                            warn("Could not set file lastModifiedTime to {} because {}", new Object[]{lastModifiedTime, e});
                 }
             }
 
-            final String permissions = context.getProperty(CHANGE_PERMISSIONS).evaluateAttributeExpressions(flowFile).getValue();
-            if (permissions != null && !permissions.trim().isEmpty()) {
+            final String permissions = context.getProperty(CHANGE_PERMISSIONS).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue();
+            if (permissions != null && !permissions.trim().
+                    isEmpty()) {
                 try {
                     String perms = stringPermissions(permissions);
                     if (!perms.isEmpty()) {
-                        Files.setPosixFilePermissions(dotCopyFile, PosixFilePermissions.fromString(perms));
+                        Files.
+                                setPosixFilePermissions(dotCopyFile, PosixFilePermissions.
+                                        fromString(perms));
                     }
                 } catch (Exception e) {
-                    logger.warn("Could not set file permissions to {} because {}", new Object[]{permissions, e});
+                    logger.
+                            warn("Could not set file permissions to {} because {}", new Object[]{permissions, e});
                 }
             }
 
-            final String owner = context.getProperty(CHANGE_OWNER).evaluateAttributeExpressions(flowFile).getValue();
-            if (owner != null && !owner.trim().isEmpty()) {
+            final String owner = context.getProperty(CHANGE_OWNER).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue();
+            if (owner != null && !owner.trim().
+                    isEmpty()) {
                 try {
-                    UserPrincipalLookupService lookupService = dotCopyFile.getFileSystem().getUserPrincipalLookupService();
-                    Files.setOwner(dotCopyFile, lookupService.lookupPrincipalByName(owner));
+                    UserPrincipalLookupService lookupService = dotCopyFile.
+                            getFileSystem().
+                            getUserPrincipalLookupService();
+                    Files.setOwner(dotCopyFile, lookupService.
+                            lookupPrincipalByName(owner));
                 } catch (Exception e) {
-                    logger.warn("Could not set file owner to {} because {}", new Object[]{owner, e});
+                    logger.
+                            warn("Could not set file owner to {} because {}", new Object[]{owner, e});
                 }
             }
 
-            final String group = context.getProperty(CHANGE_GROUP).evaluateAttributeExpressions(flowFile).getValue();
-            if (group != null && !group.trim().isEmpty()) {
+            final String group = context.getProperty(CHANGE_GROUP).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue();
+            if (group != null && !group.trim().
+                    isEmpty()) {
                 try {
-                    UserPrincipalLookupService lookupService = dotCopyFile.getFileSystem().getUserPrincipalLookupService();
-                    PosixFileAttributeView view = Files.getFileAttributeView(dotCopyFile, PosixFileAttributeView.class);
-                    view.setGroup(lookupService.lookupPrincipalByGroupName(group));
+                    UserPrincipalLookupService lookupService = dotCopyFile.
+                            getFileSystem().
+                            getUserPrincipalLookupService();
+                    PosixFileAttributeView view = Files.
+                            getFileAttributeView(dotCopyFile, PosixFileAttributeView.class);
+                    view.setGroup(lookupService.
+                            lookupPrincipalByGroupName(group));
                 } catch (Exception e) {
-                    logger.warn("Could not set file group to {} because {}", new Object[]{group, e});
+                    logger.
+                            warn("Could not set file group to {} because {}", new Object[]{group, e});
                 }
             }
 
             boolean renamed = false;
             for (int i = 0; i < 10; i++) { // try rename up to 10 times.
-                if (dotCopyFile.toFile().renameTo(finalCopyFile.toFile())) {
+                if (dotCopyFile.toFile().
+                        renameTo(finalCopyFile.toFile())) {
                     renamed = true;
                     break;// rename was successful
                 }
@@ -280,27 +337,36 @@ public class PutFile extends AbstractProcessor {
             }
 
             if (!renamed) {
-                if (Files.exists(dotCopyFile) && dotCopyFile.toFile().delete()) {
-                    logger.debug("Deleted dot copy file {}", new Object[]{dotCopyFile});
+                if (Files.exists(dotCopyFile) && dotCopyFile.toFile().
+                        delete()) {
+                    logger.
+                            debug("Deleted dot copy file {}", new Object[]{dotCopyFile});
                 }
                 throw new ProcessException("Could not rename: " + dotCopyFile);
             } else {
-                logger.info("Produced copy of {} at location {}", new Object[]{flowFile, finalCopyFile});
+                logger.
+                        info("Produced copy of {} at location {}", new Object[]{flowFile, finalCopyFile});
             }
 
-            session.getProvenanceReporter().send(flowFile, finalCopyFile.toFile().toURI().toString(), stopWatch.getElapsed(TimeUnit.MILLISECONDS));
+            session.getProvenanceReporter().
+                    send(flowFile, finalCopyFile.toFile().
+                            toURI().
+                            toString(), stopWatch.
+                            getElapsed(TimeUnit.MILLISECONDS));
             session.transfer(flowFile, REL_SUCCESS);
         } catch (final Throwable t) {
             if (tempDotCopyFile != null) {
                 try {
                     Files.deleteIfExists(tempDotCopyFile);
                 } catch (final Exception e) {
-                    logger.error("Unable to remove temporary file {} due to {}", new Object[]{tempDotCopyFile, e});
+                    logger.
+                            error("Unable to remove temporary file {} due to {}", new Object[]{tempDotCopyFile, e});
                 }
             }
 
             flowFile = session.penalize(flowFile);
-            logger.error("Penalizing {} and transferring to failure due to {}", new Object[]{flowFile, t});
+            logger.
+                    error("Penalizing {} and transferring to failure due to {}", new Object[]{flowFile, t});
             session.transfer(flowFile, REL_FAILURE);
         }
     }
@@ -309,9 +375,11 @@ public class PutFile extends AbstractProcessor {
         String permissions = "";
         final Pattern rwxPattern = Pattern.compile("^[rwx-]{9}$");
         final Pattern numPattern = Pattern.compile("\\d+");
-        if (rwxPattern.matcher(perms).matches()) {
+        if (rwxPattern.matcher(perms).
+                matches()) {
             permissions = perms;
-        } else if (numPattern.matcher(perms).matches()) {
+        } else if (numPattern.matcher(perms).
+                matches()) {
             try {
                 int number = Integer.parseInt(perms, 8);
                 StringBuilder permBuilder = new StringBuilder();


[16/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
NIFI-271 chipping away - more work left in standard bundle


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

Branch: refs/heads/develop
Commit: 548188939c44ed02d8b0ef8e0bbd4513afaade60
Parents: 87e8296
Author: joewitt <jo...@apache.org>
Authored: Mon Apr 27 07:44:57 2015 -0400
Committer: joewitt <jo...@apache.org>
Committed: Mon Apr 27 07:44:57 2015 -0400

----------------------------------------------------------------------
 .../web/StandardContentViewerController.java    |   9 +-
 .../standard/AbstractJsonPathProcessor.java     |  19 +-
 .../standard/Base64EncodeContent.java           |  11 +-
 .../nifi/processors/standard/BinFiles.java      | 170 ++--
 .../processors/standard/CompressContent.java    |  38 +-
 .../nifi/processors/standard/ControlRate.java   |  39 +-
 .../standard/ConvertCharacterSet.java           |  37 +-
 .../processors/standard/DetectDuplicate.java    |  28 +-
 .../processors/standard/DistributeLoad.java     |  89 +-
 .../nifi/processors/standard/EncodeContent.java |  27 +-
 .../processors/standard/EncryptContent.java     |  23 +-
 .../processors/standard/EvaluateJsonPath.java   |  91 ++-
 .../standard/EvaluateRegularExpression.java     |  31 +-
 .../nifi/processors/standard/EvaluateXPath.java |  89 +-
 .../processors/standard/EvaluateXQuery.java     |  63 +-
 .../processors/standard/ExecuteProcess.java     |  19 +-
 .../standard/ExecuteStreamCommand.java          |  71 +-
 .../nifi/processors/standard/ExtractText.java   |  26 +-
 .../processors/standard/GenerateFlowFile.java   |  10 +-
 .../apache/nifi/processors/standard/GetFTP.java |  14 +-
 .../nifi/processors/standard/GetFile.java       |  32 +-
 .../processors/standard/GetFileTransfer.java    |   9 +-
 .../nifi/processors/standard/GetHTTP.java       |  69 +-
 .../nifi/processors/standard/GetJMSTopic.java   |  50 +-
 .../nifi/processors/standard/GetSFTP.java       |  16 +-
 .../processors/standard/HandleHttpRequest.java  | 468 ++++++-----
 .../processors/standard/HandleHttpResponse.java | 127 +--
 .../nifi/processors/standard/HashAttribute.java |  38 +-
 .../nifi/processors/standard/HashContent.java   |  18 +-
 .../processors/standard/IdentifyMimeType.java   |  17 +-
 .../nifi/processors/standard/InvokeHTTP.java    | 149 ++--
 .../nifi/processors/standard/JmsConsumer.java   | 100 +--
 .../nifi/processors/standard/ListenHTTP.java    |  18 +-
 .../nifi/processors/standard/ListenUDP.java     | 133 ++-
 .../nifi/processors/standard/LogAttribute.java  |   5 +-
 .../nifi/processors/standard/MergeContent.java  | 180 ++--
 .../nifi/processors/standard/ModifyBytes.java   |   3 -
 .../processors/standard/MonitorActivity.java    |  27 +-
 .../nifi/processors/standard/PostHTTP.java      | 152 ++--
 .../nifi/processors/standard/PutEmail.java      | 423 +++++-----
 .../apache/nifi/processors/standard/PutFTP.java |  56 +-
 .../nifi/processors/standard/PutFile.java       | 264 +++---
 .../processors/standard/PutFileTransfer.java    | 127 ++-
 .../apache/nifi/processors/standard/PutJMS.java | 133 ++-
 .../nifi/processors/standard/PutSFTP.java       |   9 +-
 .../nifi/processors/standard/ReplaceText.java   | 163 ++--
 .../standard/ReplaceTextWithMapping.java        | 215 +++--
 .../processors/standard/RouteOnAttribute.java   | 111 ++-
 .../processors/standard/RouteOnContent.java     | 149 ++--
 .../nifi/processors/standard/ScanAttribute.java | 115 ++-
 .../nifi/processors/standard/ScanContent.java   |  83 +-
 .../processors/standard/SegmentContent.java     |  75 +-
 .../nifi/processors/standard/SplitContent.java  | 163 ++--
 .../nifi/processors/standard/SplitJson.java     |  74 +-
 .../nifi/processors/standard/SplitText.java     | 142 ++--
 .../nifi/processors/standard/SplitXml.java      |  61 +-
 .../nifi/processors/standard/TransformXml.java  | 121 +--
 .../nifi/processors/standard/UnpackContent.java | 216 +++--
 .../nifi/processors/standard/ValidateXml.java   |  45 +-
 .../servlets/ContentAcknowledgmentServlet.java  |  53 +-
 .../standard/servlets/ListenHTTPServlet.java    | 156 ++--
 .../nifi/processors/standard/util/Bin.java      |   6 +-
 .../processors/standard/util/BinManager.java    |  26 +-
 .../standard/util/DocumentReaderCallback.java   |   3 +-
 .../processors/standard/util/FTPTransfer.java   | 351 +++++---
 .../nifi/processors/standard/util/FTPUtils.java |  38 +-
 .../nifi/processors/standard/util/FileInfo.java |   3 +-
 .../processors/standard/util/FileTransfer.java  | 356 ++++----
 .../processors/standard/util/JmsFactory.java    | 127 ++-
 .../standard/util/JmsProcessingSummary.java     | 100 ++-
 .../processors/standard/util/JmsProperties.java | 257 +++---
 .../util/JsonPathExpressionValidator.java       | 107 ++-
 .../standard/util/SFTPConnection.java           |   9 -
 .../processors/standard/util/SFTPTransfer.java  | 342 +++++---
 .../processors/standard/util/SFTPUtils.java     | 179 ++--
 .../standard/util/UDPStreamConsumer.java        |  25 +-
 .../util/ValidatingBase32InputStream.java       |   1 -
 .../standard/util/WrappedMessageConsumer.java   |   9 +-
 .../standard/util/WrappedMessageProducer.java   |   9 +-
 .../standard/util/XmlSplitterSaxParser.java     |  11 +-
 .../additionalDetails.html                      |   6 +-
 .../additionalDetails.html                      |   2 +-
 .../org/apache/tika/mime/custom-mimetypes.xml   | 144 ++--
 .../src/test/java/TestIngestAndUpdate.java      |   3 +-
 .../processors/standard/CaptureServlet.java     |  12 +-
 .../processors/standard/HelloWorldServlet.java  |   3 +-
 .../standard/RESTServiceContentModified.java    |  15 +-
 .../standard/TestBase64EncodeContent.java       |  41 +-
 .../standard/TestCompressContent.java           |  96 ++-
 .../processors/standard/TestControlRate.java    |   6 +-
 .../standard/TestConvertCharacterSet.java       |  13 +-
 .../standard/TestDetectDuplicate.java           |  36 +-
 .../processors/standard/TestDistributeLoad.java |  21 +-
 .../processors/standard/TestEncodeContent.java  |  66 +-
 .../processors/standard/TestEncryptContent.java |  29 +-
 .../standard/TestEvaluateJsonPath.java          | 222 +++--
 .../processors/standard/TestEvaluateXPath.java  | 105 ++-
 .../processors/standard/TestEvaluateXQuery.java | 312 ++++---
 .../processors/standard/TestExecuteProcess.java |  36 +-
 .../standard/TestExecuteStreamCommand.java      | 131 ++-
 .../processors/standard/TestExtractText.java    | 104 ++-
 .../nifi/processors/standard/TestGetFile.java   |  63 +-
 .../nifi/processors/standard/TestGetHTTP.java   | 112 +--
 .../processors/standard/TestGetJMSQueue.java    |  63 +-
 .../standard/TestHandleHttpRequest.java         |  49 +-
 .../standard/TestHandleHttpResponse.java        | 109 ++-
 .../processors/standard/TestHashAttribute.java  |   6 +-
 .../processors/standard/TestHashContent.java    |   4 +-
 .../standard/TestIdentifyMimeType.java          |  15 +-
 .../processors/standard/TestInvokeHTTP.java     |  94 ++-
 .../processors/standard/TestJmsConsumer.java    | 224 ++---
 .../nifi/processors/standard/TestListenUDP.java |  38 +-
 .../processors/standard/TestMergeContent.java   | 180 ++--
 .../processors/standard/TestModifyBytes.java    |  81 +-
 .../standard/TestMonitorActivity.java           |  78 +-
 .../nifi/processors/standard/TestPostHTTP.java  | 189 +++--
 .../nifi/processors/standard/TestPutEmail.java  |  84 +-
 .../processors/standard/TestReplaceText.java    |  81 +-
 .../standard/TestReplaceTextLineByLine.java     | 203 +++--
 .../standard/TestReplaceTextWithMapping.java    | 318 +++++---
 .../standard/TestRouteOnAttribute.java          |  64 +-
 .../processors/standard/TestRouteOnContent.java |  18 +-
 .../processors/standard/TestScanAttribute.java  |  15 +-
 .../processors/standard/TestScanContent.java    |  34 +-
 .../processors/standard/TestSegmentContent.java |  13 +-
 .../nifi/processors/standard/TestServer.java    |  84 +-
 .../processors/standard/TestSplitContent.java   | 213 +++--
 .../nifi/processors/standard/TestSplitJson.java |  91 ++-
 .../nifi/processors/standard/TestSplitText.java |  70 +-
 .../nifi/processors/standard/TestSplitXml.java  |   3 +-
 .../processors/standard/TestTransformXml.java   |  40 +-
 .../processors/standard/TestUnpackContent.java  | 129 ++-
 .../processors/standard/TestValidateXml.java    |   3 +-
 .../test/resources/TestJson/json-sample.json    | 814 +++++++++----------
 .../ControllerStatusReportingTask.java          |  19 +-
 .../apache/nifi/controller/MonitorMemory.java   |   3 +-
 136 files changed, 7415 insertions(+), 5020 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java
index 6ce315e..98f7683 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-content-viewer/src/main/java/org/apache/nifi/web/StandardContentViewerController.java
@@ -35,9 +35,6 @@ import javax.xml.transform.stream.StreamSource;
 import org.apache.nifi.web.ViewableContent.DisplayMode;
 import org.codehaus.jackson.map.ObjectMapper;
 
-/**
- *
- */
 @WebServlet(name = "StandardContentViewer", urlPatterns = {"/view-content"})
 public class StandardContentViewerController extends HttpServlet {
 
@@ -51,11 +48,11 @@ public class StandardContentViewerController extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         final ViewableContent content = (ViewableContent) request.getAttribute(ViewableContent.CONTENT_REQUEST_ATTRIBUTE);
-        
+
         // handle json/xml
         if ("application/json".equals(content.getContentType()) || "application/xml".equals(content.getContentType()) || "text/plain".equals(content.getContentType())) {
             final String formatted;
-            
+
             // leave the content alone if specified
             if (DisplayMode.Original.equals(content.getDisplayMode())) {
                 formatted = content.getContent();
@@ -90,7 +87,7 @@ public class StandardContentViewerController extends HttpServlet {
                     formatted = content.getContent();
                 }
             }
-            
+
             // defer to the jsp
             request.setAttribute("mode", content.getContentType());
             request.setAttribute("content", formatted);

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractJsonPathProcessor.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractJsonPathProcessor.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractJsonPathProcessor.java
index 93b835e..9e77dab 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractJsonPathProcessor.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractJsonPathProcessor.java
@@ -42,15 +42,16 @@ import java.util.Map;
 import java.util.Objects;
 
 /**
- * Provides common functionality used for processors interacting and manipulating JSON data via JsonPath.
+ * Provides common functionality used for processors interacting and
+ * manipulating JSON data via JsonPath.
  *
  * @see <a href="http://json.org">http://json.org</a>
- * @see <a href="https://github.com/jayway/JsonPath">https://github.com/jayway/JsonPath</a>
+ * @see
+ * <a href="https://github.com/jayway/JsonPath">https://github.com/jayway/JsonPath</a>
  */
 public abstract class AbstractJsonPathProcessor extends AbstractProcessor {
 
-    private static final Configuration STRICT_PROVIDER_CONFIGURATION =
-            Configuration.builder().jsonProvider(new JsonSmartJsonProvider(JSONParser.MODE_RFC4627)).build();
+    private static final Configuration STRICT_PROVIDER_CONFIGURATION = Configuration.builder().jsonProvider(new JsonSmartJsonProvider(JSONParser.MODE_RFC4627)).build();
 
     private static final JsonProvider JSON_PROVIDER = STRICT_PROVIDER_CONFIGURATION.jsonProvider();
 
@@ -89,8 +90,9 @@ public abstract class AbstractJsonPathProcessor extends AbstractProcessor {
     }
 
     /**
-     * Determines the context by which JsonSmartJsonProvider would treat the value.  {@link java.util.Map} and
-     * {@link java.util.List} objects can be rendered as JSON elements, everything else is treated as a scalar.
+     * Determines the context by which JsonSmartJsonProvider would treat the
+     * value. {@link java.util.Map} and {@link java.util.List} objects can be
+     * rendered as JSON elements, everything else is treated as a scalar.
      *
      * @param obj item to be inspected if it is a scalar or a JSON element
      * @return false, if the object is a supported type; true otherwise
@@ -126,12 +128,11 @@ public abstract class AbstractJsonPathProcessor extends AbstractProcessor {
         /**
          * An optional hook to act on the compute value
          */
-
         abstract void cacheComputedValue(String subject, String input, JsonPath computedJsonPath);
 
         /**
-         * A hook for implementing classes to determine if a cached value is stale for a compiled JsonPath represented
-         * by either a validation
+         * A hook for implementing classes to determine if a cached value is
+         * stale for a compiled JsonPath represented by either a validation
          */
         abstract boolean isStale(String subject, String input);
     }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/Base64EncodeContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/Base64EncodeContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/Base64EncodeContent.java
index fa930d0..d0b78a5 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/Base64EncodeContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/Base64EncodeContent.java
@@ -63,9 +63,14 @@ public class Base64EncodeContent extends AbstractProcessor {
             .allowableValues(ENCODE_MODE, DECODE_MODE)
             .defaultValue(ENCODE_MODE)
             .build();
-
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("Any FlowFile that is successfully encoded or decoded will be routed to success").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("Any FlowFile that cannot be encoded or decoded will be routed to failure").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("Any FlowFile that is successfully encoded or decoded will be routed to success")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("Any FlowFile that cannot be encoded or decoded will be routed to failure")
+            .build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java
index 3d7dba1..6452c23 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java
@@ -87,18 +87,24 @@ public abstract class BinFiles extends AbstractSessionFactoryProcessor {
 
     public static final PropertyDescriptor MAX_BIN_AGE = new PropertyDescriptor.Builder()
             .name("Max Bin Age")
-            .description("The maximum age of a Bin that will trigger a Bin to be complete. Expected format is <duration> <time unit> where <duration> is a positive integer and time unit is one of seconds, minutes, hours")
+            .description("The maximum age of a Bin that will trigger a Bin to be complete. Expected format is <duration> <time unit> "
+                    + "where <duration> is a positive integer and time unit is one of seconds, minutes, hours")
             .required(false)
             .addValidator(StandardValidators.createTimePeriodValidator(1, TimeUnit.SECONDS, Integer.MAX_VALUE, TimeUnit.SECONDS))
             .build();
 
-    public static final Relationship REL_ORIGINAL = new Relationship.Builder().name("original").description("The FlowFiles that were used to create the bundle").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("If the bundle cannot be created, all FlowFiles that would have been used to created the bundle will be transferred to failure").build();
+    public static final Relationship REL_ORIGINAL = new Relationship.Builder()
+            .name("original")
+            .description("The FlowFiles that were used to create the bundle")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("If the bundle cannot be created, all FlowFiles that would have been used to created the bundle will be transferred to failure")
+            .build();
 
     private final BinManager binManager = new BinManager();
     private final Queue<Bin> readyBins = new LinkedBlockingQueue<>();
 
-
     @OnStopped
     public final void resetState() {
         binManager.purge();
@@ -111,80 +117,63 @@ public abstract class BinFiles extends AbstractSessionFactoryProcessor {
         }
     }
 
-
-	/**
-	 * Allows general pre-processing of a flow file before it is offered to a
-	 * bin. This is called before getGroupId().
-	 * 
-	 * @param context
-	 * @param session
-	 * @param flowFile
-	 * @return The flow file, possibly altered
-	 */
+    /**
+     * Allows general pre-processing of a flow file before it is offered to a bin. This is called before getGroupId().
+     *
+     * @param context context
+     * @param session session
+     * @param flowFile flowFile
+     * @return The flow file, possibly altered
+     */
     protected abstract FlowFile preprocessFlowFile(final ProcessContext context, final ProcessSession session, final FlowFile flowFile);
-    
+
     /**
-     * Returns a group ID representing a bin.  This allows flow files to be
-     * binned into like groups.
-     * @param context 
-     * @param flowFile
+     * Returns a group ID representing a bin. This allows flow files to be binned into like groups.
+     *
+     * @param context context
+     * @param flowFile flowFile
      * @return The appropriate group ID
      */
     protected abstract String getGroupId(final ProcessContext context, final FlowFile flowFile);
 
     /**
-     * Performs any additional setup of the bin manager.  Called during the
-     * OnScheduled phase.
+     * Performs any additional setup of the bin manager. Called during the OnScheduled phase.
+     *
      * @param binManager The bin manager
-     * @param context
+     * @param context context
      */
     protected abstract void setUpBinManager(BinManager binManager, ProcessContext context);
-    
+
     /**
-	 * Processes a single bin. Implementing class is responsible for committing
-	 * each session
-	 * 
-	 * @param unmodifiableBin
-	 *            A reference to a single bin of flow file/session wrappers
-	 * @param binContents
-	 *            A copy of the contents of the bin
-	 * @param context
-	 *            The context
-	 * @param session
-	 *            The session that created the bin
-	 * @param logger
-	 *            The logger
-	 * @return Return true if the input bin was already committed. E.g., in case of a
-	 * failure, the implementation may choose to transfer all binned files
-	 * to Failure and commit their sessions.  If false, the 
-	 * processBins() method will transfer the files to Original and commit
-	 * the sessions
-	 * 
-	 * @throws ProcessException if any problem arises while processing a bin
-	 *             of FlowFiles. All flow files in the
-	 *             bin will be transferred to failure and the ProcessSession provided by
-	 *             the 'session' argument rolled back
-	 */
-	protected abstract boolean processBin(Bin unmodifiableBin, 
-	        List<FlowFileSessionWrapper> binContents, ProcessContext context, ProcessSession session) throws ProcessException;
+     * Processes a single bin. Implementing class is responsible for committing each session
+     *
+     * @param unmodifiableBin A reference to a single bin of flow file/session wrappers
+     * @param binContents A copy of the contents of the bin
+     * @param context The context
+     * @param session The session that created the bin
+     * @return Return true if the input bin was already committed. E.g., in case of a failure, the implementation may choose to transfer all binned files to Failure and commit their sessions. If
+     * false, the processBins() method will transfer the files to Original and commit the sessions
+     *
+     * @throws ProcessException if any problem arises while processing a bin of FlowFiles. All flow files in the bin will be transferred to failure and the ProcessSession provided by the 'session'
+     * argument rolled back
+     */
+    protected abstract boolean processBin(Bin unmodifiableBin, List<FlowFileSessionWrapper> binContents, ProcessContext context, ProcessSession session) throws ProcessException;
 
     /**
-	 * Allows additional custom validation to be done. This will be called from
-	 * the parent's customValidation method.
-	 * 
-	 * @param context
-	 *            The context
-	 * @return Validation results indicating problems
-	 */
+     * Allows additional custom validation to be done. This will be called from the parent's customValidation method.
+     *
+     * @param context The context
+     * @return Validation results indicating problems
+     */
     protected Collection<ValidationResult> additionalCustomValidation(final ValidationContext context) {
-    	return new ArrayList<ValidationResult>();
+        return new ArrayList<>();
     }
-	
+
     @Override
     public final void onTrigger(final ProcessContext context, final ProcessSessionFactory sessionFactory) throws ProcessException {
         int binsAdded = binFlowFiles(context, sessionFactory);
-        getLogger().debug("Binned {} FlowFiles", new Object[] {binsAdded});
-        
+        getLogger().debug("Binned {} FlowFiles", new Object[]{binsAdded});
+
         if (!isScheduled()) {
             return;
         }
@@ -232,11 +221,12 @@ public abstract class BinFiles extends AbstractSessionFactoryProcessor {
 
         final List<FlowFileSessionWrapper> binCopy = new ArrayList<>(bin.getContents());
 
-    	boolean binAlreadyCommitted = false;
+        boolean binAlreadyCommitted = false;
         try {
-        	binAlreadyCommitted = this.processBin(bin, binCopy, context, session);
+            binAlreadyCommitted = this.processBin(bin, binCopy, context, session);
         } catch (final ProcessException e) {
-            logger.error("Failed to process bundle of {} files due to {}", new Object[]{binCopy.size(), e});
+            logger.
+                    error("Failed to process bundle of {} files due to {}", new Object[]{binCopy.size(), e});
 
             for (final FlowFileSessionWrapper wrapper : binCopy) {
                 wrapper.getSession().transfer(wrapper.getFlowFile(), REL_FAILURE);
@@ -251,7 +241,7 @@ public abstract class BinFiles extends AbstractSessionFactoryProcessor {
         // across multiple sessions, we cannot guarantee atomicity across the sessions
         session.commit();
         // If this bin's session has been committed, move on.
-        if ( !binAlreadyCommitted ) {
+        if (!binAlreadyCommitted) {
             for (final FlowFileSessionWrapper wrapper : bin.getContents()) {
                 wrapper.getSession().transfer(wrapper.getFlowFile(), REL_ORIGINAL);
                 wrapper.getSession().commit();
@@ -260,8 +250,8 @@ public abstract class BinFiles extends AbstractSessionFactoryProcessor {
 
         return 1;
     }
-    
-	private int binFlowFiles(final ProcessContext context, final ProcessSessionFactory sessionFactory) {
+
+    private int binFlowFiles(final ProcessContext context, final ProcessSessionFactory sessionFactory) {
         int binsAdded = 0;
         while (binManager.getBinCount() < context.getProperty(MAX_BIN_COUNT).asInteger().intValue()) {
             if (!isScheduled()) {
@@ -297,21 +287,22 @@ public abstract class BinFiles extends AbstractSessionFactoryProcessor {
     public final void onScheduled(final ProcessContext context) throws IOException {
         binManager.setMinimumSize(context.getProperty(MIN_SIZE).asDataSize(DataUnit.B).longValue());
 
-        if (context.getProperty(MAX_BIN_AGE).isSet() ) {
+        if (context.getProperty(MAX_BIN_AGE).isSet()) {
             binManager.setMaxBinAge(context.getProperty(MAX_BIN_AGE).asTimePeriod(TimeUnit.SECONDS).intValue());
         } else {
             binManager.setMaxBinAge(Integer.MAX_VALUE);
         }
-        
-        if ( context.getProperty(MAX_SIZE).isSet() ) {
-            binManager.setMaximumSize(context.getProperty(MAX_SIZE).asDataSize(DataUnit.B).longValue());
+
+        if (context.getProperty(MAX_SIZE).isSet()) {
+            binManager.setMaximumSize(context.getProperty(MAX_SIZE).
+                    asDataSize(DataUnit.B).longValue());
         } else {
             binManager.setMaximumSize(Long.MAX_VALUE);
         }
-        
+
         binManager.setMinimumEntries(context.getProperty(MIN_ENTRIES).asInteger());
 
-        if ( context.getProperty(MAX_ENTRIES).isSet() ) {
+        if (context.getProperty(MAX_ENTRIES).isSet()) {
             binManager.setMaximumEntries(context.getProperty(MAX_ENTRIES).asInteger().intValue());
         } else {
             binManager.setMaximumEntries(Integer.MAX_VALUE);
@@ -319,31 +310,46 @@ public abstract class BinFiles extends AbstractSessionFactoryProcessor {
 
         this.setUpBinManager(binManager, context);
     }
-    
-	@Override
+
+    @Override
     protected final Collection<ValidationResult> customValidate(final ValidationContext context) {
-        final List<ValidationResult> problems = new ArrayList<>(super.customValidate(context));
+        final List<ValidationResult> problems = new ArrayList<>(super.
+                customValidate(context));
 
         final long minBytes = context.getProperty(MIN_SIZE).asDataSize(DataUnit.B).longValue();
         final Double maxBytes = context.getProperty(MAX_SIZE).asDataSize(DataUnit.B);
 
         if (maxBytes != null && maxBytes.longValue() < minBytes) {
-            problems.add(new ValidationResult.Builder().subject(MIN_SIZE.getName()).input(
-                    context.getProperty(MIN_SIZE).getValue()).valid(false).explanation("Min Size must be less than or equal to Max Size").build());
+            problems.add(
+                    new ValidationResult.Builder()
+                    .subject(MIN_SIZE.getName())
+                    .input(context.getProperty(MIN_SIZE).getValue())
+                    .valid(false)
+                    .explanation("Min Size must be less than or equal to Max Size")
+                    .build()
+            );
         }
 
-        final Long min = context.getProperty(MIN_ENTRIES).asLong();
-        final Long max = context.getProperty(MAX_ENTRIES).asLong();
+        final Long min = context.getProperty(MIN_ENTRIES).
+                asLong();
+        final Long max = context.getProperty(MAX_ENTRIES).
+                asLong();
 
         if (min != null && max != null) {
             if (min > max) {
-                problems.add(new ValidationResult.Builder().subject(MIN_ENTRIES.getName()).input(context.getProperty(MIN_ENTRIES).getValue()).valid(false).explanation("Min Entries must be less than or equal to Max Entries").build());
+                problems.add(
+                        new ValidationResult.Builder().subject(MIN_ENTRIES.getName())
+                        .input(context.getProperty(MIN_ENTRIES).getValue())
+                        .valid(false)
+                        .explanation("Min Entries must be less than or equal to Max Entries")
+                        .build()
+                );
             }
         }
-        
+
         Collection<ValidationResult> otherProblems = this.additionalCustomValidation(context);
         if (otherProblems != null) {
-        	problems.addAll(otherProblems);
+            problems.addAll(otherProblems);
         }
 
         return problems;

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CompressContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CompressContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CompressContent.java
index 5896a62..d9946da 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CompressContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/CompressContent.java
@@ -67,9 +67,12 @@ import org.tukaani.xz.XZOutputStream;
 @SideEffectFree
 @SupportsBatching
 @Tags({"content", "compress", "decompress", "gzip", "bzip2", "lzma", "xz-lzma2"})
-@CapabilityDescription("Compresses or decompresses the contents of FlowFiles using a user-specified compression algorithm and updates the mime.type attribute as appropriate")
-@ReadsAttribute(attribute="mime.type", description="If the Compression Format is set to use mime.type attribute, this attribute is used to determine the compression type. Otherwise, this attribute is ignored.")
-@WritesAttribute(attribute="mime.type", description="If the Mode property is set to compress, the appropriate MIME Type is set. If the Mode property is set to decompress and the file is successfully decompressed, this attribute is removed, as the MIME Type is no longer known.")
+@CapabilityDescription("Compresses or decompresses the contents of FlowFiles using a user-specified compression algorithm and updates the mime.type "
+        + "attribute as appropriate")
+@ReadsAttribute(attribute = "mime.type", description = "If the Compression Format is set to use mime.type attribute, this attribute is used to "
+        + "determine the compression type. Otherwise, this attribute is ignored.")
+@WritesAttribute(attribute = "mime.type", description = "If the Mode property is set to compress, the appropriate MIME Type is set. If the Mode "
+        + "property is set to decompress and the file is successfully decompressed, this attribute is removed, as the MIME Type is no longer known.")
 public class CompressContent extends AbstractProcessor {
 
     public static final String COMPRESSION_FORMAT_ATTRIBUTE = "use mime.type attribute";
@@ -90,7 +93,8 @@ public class CompressContent extends AbstractProcessor {
             .build();
     public static final PropertyDescriptor COMPRESSION_LEVEL = new PropertyDescriptor.Builder()
             .name("Compression Level")
-            .description("The compression level to use; this is valid only when using GZIP compression. A lower value results in faster processing but less compression; a value of 0 indicates no compression but simply archiving")
+            .description("The compression level to use; this is valid only when using GZIP compression. A lower value results in faster processing "
+                    + "but less compression; a value of 0 indicates no compression but simply archiving")
             .defaultValue("1")
             .required(true)
             .allowableValues("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
@@ -104,14 +108,21 @@ public class CompressContent extends AbstractProcessor {
             .build();
     public static final PropertyDescriptor UPDATE_FILENAME = new PropertyDescriptor.Builder()
             .name("Update Filename")
-            .description("If true, will remove the filename extension when decompressing data (only if the extension indicates the appropriate compression format) and add the appropriate extension when compressing data")
+            .description("If true, will remove the filename extension when decompressing data (only if the extension indicates the appropriate "
+                    + "compression format) and add the appropriate extension when compressing data")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
             .build();
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("FlowFiles will be transferred to the success relationship after successfully being compressed or decompressed").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("FlowFiles will be transferred to the failure relationship if they fail to compress/decompress").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("FlowFiles will be transferred to the success relationship after successfully being compressed or decompressed")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("FlowFiles will be transferred to the failure relationship if they fail to compress/decompress")
+            .build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
@@ -135,7 +146,8 @@ public class CompressContent extends AbstractProcessor {
         mimeTypeMap.put("application/gzip", COMPRESSION_FORMAT_GZIP);
         mimeTypeMap.put("application/bzip2", COMPRESSION_FORMAT_BZIP2);
         mimeTypeMap.put("application/x-lzma", COMPRESSION_FORMAT_LZMA);
-        this.compressionFormatMimeTypeMap = Collections.unmodifiableMap(mimeTypeMap);
+        this.compressionFormatMimeTypeMap = Collections.
+                unmodifiableMap(mimeTypeMap);
     }
 
     @Override
@@ -274,7 +286,8 @@ public class CompressContent extends AbstractProcessor {
 
             final long sizeAfterCompression = flowFile.getSize();
             if (MODE_DECOMPRESS.equalsIgnoreCase(compressionMode)) {
-                flowFile = session.removeAttribute(flowFile, CoreAttributes.MIME_TYPE.key());
+                flowFile = session.
+                        removeAttribute(flowFile, CoreAttributes.MIME_TYPE.key());
 
                 if (context.getProperty(UPDATE_FILENAME).asBoolean()) {
                     final String filename = flowFile.getAttribute(CoreAttributes.FILENAME.key());
@@ -283,7 +296,8 @@ public class CompressContent extends AbstractProcessor {
                     }
                 }
             } else {
-                flowFile = session.putAttribute(flowFile, CoreAttributes.MIME_TYPE.key(), mimeTypeRef.get());
+                flowFile = session.
+                        putAttribute(flowFile, CoreAttributes.MIME_TYPE.key(), mimeTypeRef.get());
 
                 if (context.getProperty(UPDATE_FILENAME).asBoolean()) {
                     final String filename = flowFile.getAttribute(CoreAttributes.FILENAME.key());
@@ -291,8 +305,8 @@ public class CompressContent extends AbstractProcessor {
                 }
             }
 
-            logger.info("Successfully {}ed {} using {} compression format; size changed from {} to {} bytes", new Object[]{
-                compressionMode.toLowerCase(), flowFile, compressionFormat, sizeBeforeCompression, sizeAfterCompression});
+            logger.info("Successfully {}ed {} using {} compression format; size changed from {} to {} bytes",
+                    new Object[]{compressionMode.toLowerCase(), flowFile, compressionFormat, sizeBeforeCompression, sizeAfterCompression});
             session.getProvenanceReporter().modifyContent(flowFile, stopWatch.getDuration(TimeUnit.MILLISECONDS));
             session.transfer(flowFile, REL_SUCCESS);
         } catch (final ProcessException e) {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ControlRate.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ControlRate.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ControlRate.java
index 83febb5..10cd45d 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ControlRate.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ControlRate.java
@@ -71,13 +71,16 @@ public class ControlRate extends AbstractProcessor {
             .build();
     public static final PropertyDescriptor MAX_RATE = new PropertyDescriptor.Builder()
             .name("Maximum Rate")
-            .description("The maximum rate at which data should pass through this processor. The format of this property is expected to be a positive integer, or a Data Size (such as '1 MB') if Rate Control Criteria is set to 'data rate'.")
+            .description("The maximum rate at which data should pass through this processor. The format of this property is expected to be a "
+                    + "positive integer, or a Data Size (such as '1 MB') if Rate Control Criteria is set to 'data rate'.")
             .required(true)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) // validated in customValidate b/c dependent on Rate Control Criteria
             .build();
     public static final PropertyDescriptor RATE_CONTROL_ATTRIBUTE_NAME = new PropertyDescriptor.Builder()
             .name("Rate Controlled Attribute")
-            .description("The name of an attribute whose values build toward the rate limit if Rate Control Criteria is set to 'attribute value'. The value of the attribute referenced by this property must be a positive integer, or the FlowFile will be routed to failure. This value is ignored if Rate Control Criteria is not set to 'attribute value'. Changing this value resets the rate counters.")
+            .description("The name of an attribute whose values build toward the rate limit if Rate Control Criteria is set to 'attribute value'. "
+                    + "The value of the attribute referenced by this property must be a positive integer, or the FlowFile will be routed to failure. "
+                    + "This value is ignored if Rate Control Criteria is not set to 'attribute value'. Changing this value resets the rate counters.")
             .required(false)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .expressionLanguageSupported(false)
@@ -91,14 +94,21 @@ public class ControlRate extends AbstractProcessor {
             .build();
     public static final PropertyDescriptor GROUPING_ATTRIBUTE_NAME = new PropertyDescriptor.Builder()
             .name("Grouping Attribute")
-            .description("By default, a single \"throttle\" is used for all FlowFiles. If this value is specified, a separate throttle is used for each value specified by the attribute with this name. Changing this value resets the rate counters.")
+            .description("By default, a single \"throttle\" is used for all FlowFiles. If this value is specified, a separate throttle is used for "
+                    + "each value specified by the attribute with this name. Changing this value resets the rate counters.")
             .required(false)
             .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
             .expressionLanguageSupported(false)
             .build();
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("All FlowFiles are transferred to this relationship").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("FlowFiles will be routed to this relationship if they are missing a necessary attribute or the attribute is not in the expected format").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("All FlowFiles are transferred to this relationship")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("FlowFiles will be routed to this relationship if they are missing a necessary attribute or the attribute is not in the expected format")
+            .build();
 
     private static final Pattern POSITIVE_LONG_PATTERN = Pattern.compile("0*[1-9][0-9]*");
     private static final String DEFAULT_GROUP_ATTRIBUTE = ControlRate.class.getName() + "###____DEFAULT_GROUP_ATTRIBUTE___###";
@@ -146,7 +156,10 @@ public class ControlRate extends AbstractProcessor {
                 rateValidator = StandardValidators.POSITIVE_LONG_VALIDATOR;
                 final String rateAttr = context.getProperty(RATE_CONTROL_ATTRIBUTE_NAME).getValue();
                 if (rateAttr == null) {
-                    validationResults.add(new ValidationResult.Builder().subject(RATE_CONTROL_ATTRIBUTE_NAME.getName()).explanation("<Rate Controlled Attribute> property must be set if using <Rate Control Criteria> of 'attribute value'").build());
+                    validationResults.add(new ValidationResult.Builder().
+                            subject(RATE_CONTROL_ATTRIBUTE_NAME.getName()).
+                            explanation("<Rate Controlled Attribute> property must be set if using <Rate Control Criteria> of 'attribute value'").
+                            build());
                 }
                 break;
             case FLOWFILE_RATE:
@@ -167,7 +180,10 @@ public class ControlRate extends AbstractProcessor {
     public void onPropertyModified(final PropertyDescriptor descriptor, final String oldValue, final String newValue) {
         super.onPropertyModified(descriptor, oldValue, newValue);
 
-        if (descriptor.equals(RATE_CONTROL_CRITERIA) || descriptor.equals(RATE_CONTROL_ATTRIBUTE_NAME) || descriptor.equals(GROUPING_ATTRIBUTE_NAME) || descriptor.equals(TIME_PERIOD)) {
+        if (descriptor.equals(RATE_CONTROL_CRITERIA)
+                || descriptor.equals(RATE_CONTROL_ATTRIBUTE_NAME)
+                || descriptor.equals(GROUPING_ATTRIBUTE_NAME)
+                || descriptor.equals(TIME_PERIOD)) {
             // if the criteria that is being used to determine limits/throttles is changed, we must clear our throttle map.
             throttleMap.clear();
         } else if (descriptor.equals(MAX_RATE)) {
@@ -227,8 +243,7 @@ public class ControlRate extends AbstractProcessor {
             case ATTRIBUTE_RATE:
                 final String attributeValue = flowFile.getAttribute(rateControlAttributeName);
                 if (attributeValue == null) {
-                    logger.error("routing {} to 'failure' because FlowFile is missing required attribute {}",
-                            new Object[]{flowFile, rateControlAttributeName});
+                    logger.error("routing {} to 'failure' because FlowFile is missing required attribute {}", new Object[]{flowFile, rateControlAttributeName});
                     session.transfer(flowFile, REL_FAILURE);
                     return;
                 }
@@ -266,7 +281,8 @@ public class ControlRate extends AbstractProcessor {
         throttle.lock();
         try {
             if (throttle.tryAdd(rateValue)) {
-                logger.info("transferring {} to 'success'", new Object[]{flowFile});
+                logger.
+                        info("transferring {} to 'success'", new Object[]{flowFile});
                 session.transfer(flowFile, REL_SUCCESS);
             } else {
                 flowFile = session.penalize(flowFile);
@@ -361,7 +377,8 @@ public class ControlRate extends AbstractProcessor {
                 return false;
             }
 
-            logger.debug("current sum for throttle is {}, so allowing rate of {} through", new Object[]{sum == null ? 0 : sum.getValue(), value});
+            logger.debug("current sum for throttle is {}, so allowing rate of {} through",
+                    new Object[]{sum == null ? 0 : sum.getValue(), value});
 
             final long transferred = timedBuffer.add(new TimestampedLong(value)).getValue();
             if (transferred > maxRateValue) {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ConvertCharacterSet.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ConvertCharacterSet.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ConvertCharacterSet.java
index 119a3f2..c8d22d3 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ConvertCharacterSet.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ConvertCharacterSet.java
@@ -45,33 +45,24 @@ import java.util.concurrent.TimeUnit;
 
 /**
  * <p>
- * This processor reads files in as text according to the specified character
- * set and it outputs another text file according to the given characeter set.
- * The character sets supported depend on the version of the JRE and is platform
- * specific. In addition, the JVM can be expanded with additional character sets
- * to support. More information on which character sets are supported can be
- * found in the JDK documentation under the docs directory in the following
- * path: ....\technotes\guides\intl\encoding.doc.html</p>
+ * This processor reads files in as text according to the specified character set and it outputs another text file according to the given characeter set. The character sets supported depend on the
+ * version of the JRE and is platform specific. In addition, the JVM can be expanded with additional character sets to support. More information on which character sets are supported can be found in
+ * the JDK documentation under the docs directory in the following path: ....\technotes\guides\intl\encoding.doc.html</p>
  *
  * <p>
- * The conversion process is very passive. For conversions that do not map
- * perfectly the conversion will replace unmappable or unrecognized input using
- * the '?' character.
+ * The conversion process is very passive. For conversions that do not map perfectly the conversion will replace unmappable or unrecognized input using the '?' character.
  *
  * <p>
- * The following properties are required: <ul> <li><b>input.charset</b> - The
- * character set of the original file contents</li> <li><b>output.charset</b> -
- * The character set of the resulting file</li> </ul> </p>
+ * The following properties are required: <ul> <li><b>input.charset</b> - The character set of the original file contents</li> <li><b>output.charset</b> - The character set of the resulting file</li>
+ * </ul> </p>
  *
  * <p>
  * The following properties are optional: <ul> <li><b>N/A</b> - </li> </ul>
  * </p>
  *
  * <p>
- * The following relationships are required: <ul> <li><b>success</b> - the id of
- * the processor to transfer successfully converted files</li>
- * <li><b>failure</b> - the id of the processor to transfer unsuccessfully
- * converted files</li> </ul> </p>
+ * The following relationships are required: <ul> <li><b>success</b> - the id of the processor to transfer successfully converted files</li>
+ * <li><b>failure</b> - the id of the processor to transfer unsuccessfully converted files</li> </ul> </p>
  */
 @EventDriven
 @SideEffectFree
@@ -126,8 +117,12 @@ public class ConvertCharacterSet extends AbstractProcessor {
     public void onTrigger(final ProcessContext context, final ProcessSession session) {
         final ProcessorLog logger = getLogger();
 
-        final Charset inputCharset = Charset.forName(context.getProperty(INPUT_CHARSET).getValue());
-        final Charset outputCharset = Charset.forName(context.getProperty(OUTPUT_CHARSET).getValue());
+        final Charset inputCharset = Charset.forName(context.
+                getProperty(INPUT_CHARSET).
+                getValue());
+        final Charset outputCharset = Charset.forName(context.
+                getProperty(OUTPUT_CHARSET).
+                getValue());
         final CharBuffer charBuffer = CharBuffer.allocate(MAX_BUFFER_SIZE);
 
         final CharsetDecoder decoder = inputCharset.newDecoder();
@@ -164,8 +159,8 @@ public class ConvertCharacterSet extends AbstractProcessor {
             });
 
             session.getProvenanceReporter().modifyContent(flowFile, stopWatch.getElapsed(TimeUnit.MILLISECONDS));
-            logger.info("successfully converted characters from {} to {} for {}", new Object[]{
-                context.getProperty(INPUT_CHARSET).getValue(), context.getProperty(OUTPUT_CHARSET).getValue(), flowFile});
+            logger.info("successfully converted characters from {} to {} for {}", 
+                    new Object[]{context.getProperty(INPUT_CHARSET).getValue(), context.getProperty(OUTPUT_CHARSET).getValue(), flowFile});
             session.transfer(flowFile, REL_SUCCESS);
         } catch (final Exception e) {
             throw new ProcessException(e);

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DetectDuplicate.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DetectDuplicate.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DetectDuplicate.java
index cd0a21b..5e1fffa 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DetectDuplicate.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DetectDuplicate.java
@@ -56,8 +56,10 @@ import org.apache.nifi.processor.util.StandardValidators;
         + "If so, routes the FlowFile to 'duplicate' with an attribute named 'original.identifier' that specifies the original FlowFile's"
         + "\"description\", which is specified in the <FlowFile Description> property. If the FlowFile is not determined to be a duplicate, the Processor "
         + "routes the FlowFile to 'non-duplicate'")
-@WritesAttribute(attribute="original.flowfile.description", description="All FlowFiles routed to the duplicate relationship will have an attribute added named original.flowfile.description. The value of this attribute is determined by the attributes of the original copy of the data and by the FlowFile Description property.")
-@SeeAlso(classNames={"org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService", "org.apache.nifi.distributed.cache.server.map.DistributedMapCacheServer"})
+@WritesAttribute(attribute = "original.flowfile.description", description = "All FlowFiles routed to the duplicate relationship will have "
+        + "an attribute added named original.flowfile.description. The value of this attribute is determined by the attributes of the original "
+        + "copy of the data and by the FlowFile Description property.")
+@SeeAlso(classNames = {"org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService", "org.apache.nifi.distributed.cache.server.map.DistributedMapCacheServer"})
 public class DetectDuplicate extends AbstractProcessor {
 
     public static final String ORIGINAL_DESCRIPTION_ATTRIBUTE_NAME = "original.flowfile.description";
@@ -80,8 +82,8 @@ public class DetectDuplicate extends AbstractProcessor {
             .build();
     public static final PropertyDescriptor FLOWFILE_DESCRIPTION = new PropertyDescriptor.Builder()
             .name("FlowFile Description")
-            .description(
-                    "When a FlowFile is added to the cache, this value is stored along with it so that if a duplicate is found, this description of the original FlowFile will be added to the duplicate's \""
+            .description("When a FlowFile is added to the cache, this value is stored along with it so that if a duplicate is found, this "
+                    + "description of the original FlowFile will be added to the duplicate's \""
                     + ORIGINAL_DESCRIPTION_ATTRIBUTE_NAME + "\" attribute")
             .required(true)
             .addValidator(StandardValidators.createAttributeExpressionLanguageValidator(ResultType.STRING, true))
@@ -96,12 +98,18 @@ public class DetectDuplicate extends AbstractProcessor {
             .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
             .build();
 
-    public static final Relationship REL_DUPLICATE = new Relationship.Builder().name("duplicate")
-            .description("If a FlowFile has been detected to be a duplicate, it will be routed to this relationship").build();
-    public static final Relationship REL_NON_DUPLICATE = new Relationship.Builder().name("non-duplicate")
-            .description("If a FlowFile's Cache Entry Identifier was not found in the cache, it will be routed to this relationship").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure")
-            .description("If unable to communicate with the cache, the FlowFile will be penalized and routed to this relationship").build();
+    public static final Relationship REL_DUPLICATE = new Relationship.Builder()
+            .name("duplicate")
+            .description("If a FlowFile has been detected to be a duplicate, it will be routed to this relationship")
+            .build();
+    public static final Relationship REL_NON_DUPLICATE = new Relationship.Builder()
+            .name("non-duplicate")
+            .description("If a FlowFile's Cache Entry Identifier was not found in the cache, it will be routed to this relationship")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("If unable to communicate with the cache, the FlowFile will be penalized and routed to this relationship")
+            .build();
     private final Set<Relationship> relationships;
 
     private final Serializer<String> keySerializer = new StringSerializer();

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DistributeLoad.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DistributeLoad.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DistributeLoad.java
index 920041b..585ba1d 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DistributeLoad.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/DistributeLoad.java
@@ -63,9 +63,11 @@ import org.apache.nifi.processor.util.StandardValidators;
         + "strategy, the default is to assign each destination a weighting of 1 (evenly distributed). However, optional properties"
         + "can be added to the change this; adding a property with the name '5' and value '10' means that the relationship with name "
         + "'5' will be receive 10 FlowFiles in each iteration instead of 1.")
-@DynamicProperty(name="The relationship name(positive number)", value="The relationship Weight(positive number)", description="adding a property with the name '5' and value '10' means that the relationship with name "
+@DynamicProperty(name = "The relationship name(positive number)", value = "The relationship Weight(positive number)", description = "adding a "
+        + "property with the name '5' and value '10' means that the relationship with name "
         + "'5' will be receive 10 FlowFiles in each iteration instead of 1.")
-@DynamicRelationship(name="A number 1..<Number Of Relationships>", description="FlowFiles are sent to this relationship per the <Distribution Strategy>")
+@DynamicRelationship(name = "A number 1..<Number Of Relationships>", description = "FlowFiles are sent to this relationship per the "
+        + "<Distribution Strategy>")
 public class DistributeLoad extends AbstractProcessor {
 
     public static final String STRATEGY_ROUND_ROBIN = "round robin";
@@ -81,8 +83,9 @@ public class DistributeLoad extends AbstractProcessor {
             .build();
     public static final PropertyDescriptor DISTRIBUTION_STRATEGY = new PropertyDescriptor.Builder()
             .name("Distribution Strategy")
-            .description(
-                    "Determines how the load will be distributed. If using Round Robin, will not distribute any FlowFiles unless all destinations can accept FlowFiles; when using Next Available, will distribute FlowFiles as long as at least 1 destination can accept FlowFiles.")
+            .description("Determines how the load will be distributed. If using Round Robin, will not distribute any FlowFiles unless all "
+                    + "destinations can accept FlowFiles; when using Next Available, will distribute FlowFiles as long as at least 1 "
+                    + "destination can accept FlowFiles.")
             .required(true)
             .allowableValues(STRATEGY_ROUND_ROBIN, STRATEGY_NEXT_AVAILABLE, STRATEGY_LOAD_DISTRIBUTION_SERVICE)
             .defaultValue(STRATEGY_ROUND_ROBIN)
@@ -96,43 +99,29 @@ public class DistributeLoad extends AbstractProcessor {
 
                 @Override
                 public ValidationResult validate(String subject, String input, ValidationContext context) {
-                    ValidationResult result = new ValidationResult.Builder()
-                    .subject(subject)
-                    .valid(true)
-                    .input(input)
-                    .explanation("Good FQDNs")
-                    .build();
+                    ValidationResult result = new ValidationResult.Builder().subject(subject).valid(true).input(input).explanation("Good FQDNs").build();
                     if (null == input) {
-                        result = new ValidationResult.Builder()
-                        .subject(subject)
-                        .input(input)
-                        .valid(false)
-                        .explanation("Need to specify delimited list of FQDNs")
-                        .build();
+                        result = new ValidationResult.Builder().subject(subject).input(input).valid(false)
+                        .explanation("Need to specify delimited list of FQDNs").build();
                         return result;
                     }
                     String[] hostNames = input.split("(?:,+|;+|\\s+)");
                     for (String hostName : hostNames) {
                         if (StringUtils.isNotBlank(hostName) && !hostName.contains(".")) {
-                            result = new ValidationResult.Builder()
-                            .subject(subject)
-                            .input(input)
-                            .valid(false)
-                            .explanation("Need a FQDN rather than a simple host name.")
-                            .build();
+                            result = new ValidationResult.Builder().subject(subject).input(input).valid(false)
+                            .explanation("Need a FQDN rather than a simple host name.").build();
                             return result;
                         }
                     }
                     return result;
                 }
-            })
-            .build();
+            }).build();
     public static final PropertyDescriptor LOAD_DISTRIBUTION_SERVICE_TEMPLATE = new PropertyDescriptor.Builder()
-            .name("Load Distribution Service ID")
-            .description("The identifier of the Load Distribution Service")
-            .required(true)
-            .identifiesControllerService(LoadDistributionService.class)
-            .build();
+            .name("Load Distribution Service ID").
+            description("The identifier of the Load Distribution Service").
+            required(true).
+            identifiesControllerService(LoadDistributionService.class).
+            build();
 
     private List<PropertyDescriptor> properties;
     private final AtomicReference<Set<Relationship>> relationshipsRef = new AtomicReference<>();
@@ -155,7 +144,8 @@ public class DistributeLoad extends AbstractProcessor {
     }
 
     private static Relationship createRelationship(final int num) {
-        return new Relationship.Builder().name(String.valueOf(num)).description("Where to route flowfiles for this relationship index").build();
+        return new Relationship.Builder().name(String.valueOf(num))
+                .description("Where to route flowfiles for this relationship index").build();
     }
 
     @Override
@@ -210,12 +200,12 @@ public class DistributeLoad extends AbstractProcessor {
         try {
             final int value = Integer.parseInt(propertyDescriptorName);
             if (value <= 0 || value > numRelationships) {
-                return new PropertyDescriptor.Builder().addValidator(new InvalidPropertyNameValidator(propertyDescriptorName))
-                        .name(propertyDescriptorName).build();
+                return new PropertyDescriptor.Builder()
+                        .addValidator(new InvalidPropertyNameValidator(propertyDescriptorName)).name(propertyDescriptorName).build();
             }
         } catch (final NumberFormatException e) {
-            return new PropertyDescriptor.Builder().addValidator(new InvalidPropertyNameValidator(propertyDescriptorName))
-                    .name(propertyDescriptorName).build();
+            return new PropertyDescriptor.Builder()
+                    .addValidator(new InvalidPropertyNameValidator(propertyDescriptorName)).name(propertyDescriptorName).build();
         }
 
         // validate that the property value is valid
@@ -232,19 +222,15 @@ public class DistributeLoad extends AbstractProcessor {
                 // make sure Hostnames and Controller service are set
                 PropertyValue propDesc = validationContext.getProperty(HOSTNAMES);
                 if (null == propDesc || null == propDesc.getValue() || propDesc.getValue().isEmpty()) {
-                    results.add(new ValidationResult.Builder()
-                            .subject(HOSTNAMES.getName())
-                            .explanation("Must specify Hostnames when using 'Load Distribution Strategy'")
-                            .valid(false)
-                            .build());
+                    results.add(new ValidationResult.Builder().subject(HOSTNAMES.getName())
+                            .explanation("Must specify Hostnames when using 'Load Distribution Strategy'").valid(false).build());
                 }
                 propDesc = validationContext.getProperty(LOAD_DISTRIBUTION_SERVICE_TEMPLATE);
                 if (null == propDesc || null == propDesc.getValue() || propDesc.getValue().isEmpty()) {
                     results.add(new ValidationResult.Builder()
                             .subject(LOAD_DISTRIBUTION_SERVICE_TEMPLATE.getName())
                             .explanation("Must specify 'Load Distribution Service ID' when using 'Load Distribution Strategy'")
-                            .valid(false)
-                            .build());
+                            .valid(false).build());
                 }
                 if (results.isEmpty()) {
                     int numRels = validationContext.getProperty(NUM_RELATIONSHIPS).asInteger();
@@ -260,13 +246,13 @@ public class DistributeLoad extends AbstractProcessor {
                         results.add(new ValidationResult.Builder()
                                 .subject("Number of Relationships and Hostnames")
                                 .explanation("Number of Relationships must be equal to, or greater than, the number of host names")
-                                .valid(false)
-                                .build());
+                                .valid(false).build());
                     } else {
                         // create new relationships with descriptions of hostname
                         Set<Relationship> relsWithDesc = new TreeSet<>();
                         for (int i = 0; i < numHosts; i++) {
-                            relsWithDesc.add(new Relationship.Builder().name(String.valueOf(i + 1)).description(hostNames[i]).build());
+                            relsWithDesc.add(new Relationship.Builder().name(String.valueOf(i + 1))
+                                    .description(hostNames[i]).build());
                         }
                         // add add'l rels if configuration requires it...it probably shouldn't
                         for (int i = numHosts + 1; i <= numRels; i++) {
@@ -341,7 +327,8 @@ public class DistributeLoad extends AbstractProcessor {
         final List<Relationship> relationshipList = new ArrayList<>();
         for (final Map.Entry<Integer, Integer> entry : weightings.entrySet()) {
             final String relationshipName = String.valueOf(entry.getKey());
-            final Relationship relationship = new Relationship.Builder().name(relationshipName).build();
+            final Relationship relationship = new Relationship.Builder().
+                    name(relationshipName).build();
             for (int i = 0; i < entry.getValue(); i++) {
                 relationshipList.add(relationship);
             }
@@ -389,8 +376,7 @@ public class DistributeLoad extends AbstractProcessor {
         public ValidationResult validate(final String subject, final String input, final ValidationContext validationContext) {
             return new ValidationResult.Builder().subject("Property Name").input(propertyName)
                     .explanation("Property Name must be a positive integer between 1 and the number of relationships (inclusive)")
-                    .valid(false)
-                    .build();
+                    .valid(false).build();
         }
     }
 
@@ -400,12 +386,9 @@ public class DistributeLoad extends AbstractProcessor {
     private static interface DistributionStrategy {
 
         /**
-         * Returns a mapping of FlowFile to Relationship or <code>null</code> if
-         * the needed relationships are not available to accept files.
-         *
-         * @param session
-         * @param flowFiles
-         * @return
+         * @param session session
+         * @param flowFiles flowFile
+         * @return a mapping of FlowFile to Relationship or <code>null</code> if the needed relationships are not available to accept files
          */
         Relationship mapToRelationship(ProcessContext context, FlowFile flowFile);
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncodeContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncodeContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncodeContent.java
index 2465b56..3e26857 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncodeContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncodeContent.java
@@ -65,7 +65,7 @@ public class EncodeContent extends AbstractProcessor {
     // List of support encodings.
     public static final String BASE64_ENCODING = "base64";
     public static final String BASE32_ENCODING = "base32";
-    public static final String HEX_ENCODING    = "hex";
+    public static final String HEX_ENCODING = "hex";
 
     public static final PropertyDescriptor MODE = new PropertyDescriptor.Builder()
             .name("Mode")
@@ -83,8 +83,14 @@ public class EncodeContent extends AbstractProcessor {
             .defaultValue(BASE64_ENCODING)
             .build();
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("Any FlowFile that is successfully encoded or decoded will be routed to success").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("Any FlowFile that cannot be encoded or decoded will be routed to failure").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("Any FlowFile that is successfully encoded or decoded will be routed to success")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("Any FlowFile that cannot be encoded or decoded will be routed to failure")
+            .build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
@@ -163,6 +169,7 @@ public class EncodeContent extends AbstractProcessor {
     }
 
     private class EncodeBase64 implements StreamCallback {
+
         @Override
         public void process(InputStream in, OutputStream out) throws IOException {
             try (Base64OutputStream bos = new Base64OutputStream(out)) {
@@ -172,6 +179,7 @@ public class EncodeContent extends AbstractProcessor {
     }
 
     private class DecodeBase64 implements StreamCallback {
+
         @Override
         public void process(InputStream in, OutputStream out) throws IOException {
             try (Base64InputStream bis = new Base64InputStream(new ValidatingBase64InputStream(in))) {
@@ -181,6 +189,7 @@ public class EncodeContent extends AbstractProcessor {
     }
 
     private class EncodeBase32 implements StreamCallback {
+
         @Override
         public void process(InputStream in, OutputStream out) throws IOException {
             try (Base32OutputStream bos = new Base32OutputStream(out)) {
@@ -190,6 +199,7 @@ public class EncodeContent extends AbstractProcessor {
     }
 
     private class DecodeBase32 implements StreamCallback {
+
         @Override
         public void process(InputStream in, OutputStream out) throws IOException {
             try (Base32InputStream bis = new Base32InputStream(new ValidatingBase32InputStream(in))) {
@@ -198,10 +208,10 @@ public class EncodeContent extends AbstractProcessor {
         }
     }
 
-    private static final byte[] HEX_CHARS = {'0', '1', '2', '3', '4', '5', '6', '7',
-            '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
+    private static final byte[] HEX_CHARS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
 
     private class EncodeHex implements StreamCallback {
+
         @Override
         public void process(InputStream in, OutputStream out) throws IOException {
             int len;
@@ -209,16 +219,17 @@ public class EncodeContent extends AbstractProcessor {
             byte[] outBuf = new byte[inBuf.length * 2];
             while ((len = in.read(inBuf)) > 0) {
                 for (int i = 0; i < len; i++) {
-                    outBuf[i*2] = HEX_CHARS[(inBuf[i] & 0xF0) >>> 4];
-                    outBuf[i*2 +1] = HEX_CHARS[inBuf[i] & 0x0F];
+                    outBuf[i * 2] = HEX_CHARS[(inBuf[i] & 0xF0) >>> 4];
+                    outBuf[i * 2 + 1] = HEX_CHARS[inBuf[i] & 0x0F];
                 }
-                out.write(outBuf, 0, len*2);
+                out.write(outBuf, 0, len * 2);
             }
             out.flush();
         }
     }
 
     private class DecodeHex implements StreamCallback {
+
         @Override
         public void process(InputStream in, OutputStream out) throws IOException {
             int len;

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java
index 69cb18e..c0f6301 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EncryptContent.java
@@ -38,7 +38,6 @@ import org.apache.nifi.util.StopWatch;
 
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 
-import javax.crypto.*;
 import javax.crypto.spec.PBEKeySpec;
 import javax.crypto.spec.PBEParameterSpec;
 
@@ -50,8 +49,17 @@ import java.security.InvalidKeyException;
 import java.security.SecureRandom;
 import java.security.Security;
 import java.text.Normalizer;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 import java.util.concurrent.TimeUnit;
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.SecretKey;
+import javax.crypto.SecretKeyFactory;
 
 @EventDriven
 @SideEffectFree
@@ -87,14 +95,19 @@ public class EncryptContent extends AbstractProcessor {
             .sensitive(true)
             .build();
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("Any FlowFile that is successfully encrypted or decrypted will be routed to success").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("Any FlowFile that cannot be encrypted or decrypted will be routed to failure").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("Any FlowFile that is successfully encrypted or decrypted will be routed to success")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("Any FlowFile that cannot be encrypted or decrypted will be routed to failure")
+            .build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
 
     static {
-        // add BouncyCastle encryption providers
         Security.addProvider(new BouncyCastleProvider());
     }
 


[11/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java
index da80546..893aee9 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutFileTransfer.java
@@ -43,13 +43,23 @@ import java.util.concurrent.TimeUnit;
 
 /**
  * Base class for PutFTP & PutSFTP
+ *
  * @param <T>
  */
 public abstract class PutFileTransfer<T extends FileTransfer> extends AbstractProcessor {
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("FlowFiles that are successfully sent will be routed to success").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("FlowFiles that failed to send to the remote system; failure is usually looped back to this processor").build();
-    public static final Relationship REL_REJECT = new Relationship.Builder().name("reject").description("FlowFiles that were rejected by the destination system").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder().
+            name("success").
+            description("FlowFiles that are successfully sent will be routed to success").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("FlowFiles that failed to send to the remote system; failure is usually looped back to this processor").
+            build();
+    public static final Relationship REL_REJECT = new Relationship.Builder().
+            name("reject").
+            description("FlowFiles that were rejected by the destination system").
+            build();
 
     private final Set<Relationship> relationships;
 
@@ -85,26 +95,42 @@ public abstract class PutFileTransfer<T extends FileTransfer> extends AbstractPr
         }
 
         final ProcessorLog logger = getLogger();
-        final String hostname = context.getProperty(FileTransfer.HOSTNAME).evaluateAttributeExpressions(flowFile).getValue();
+        final String hostname = context.getProperty(FileTransfer.HOSTNAME).
+                evaluateAttributeExpressions(flowFile).
+                getValue();
 
-        final int maxNumberOfFiles = context.getProperty(FileTransfer.BATCH_SIZE).asInteger();
+        final int maxNumberOfFiles = context.
+                getProperty(FileTransfer.BATCH_SIZE).
+                asInteger();
         int fileCount = 0;
         try (final T transfer = getFileTransfer(context)) {
             do {
-                final String rootPath = context.getProperty(FileTransfer.REMOTE_PATH).evaluateAttributeExpressions(flowFile).getValue();
+                final String rootPath = context.
+                        getProperty(FileTransfer.REMOTE_PATH).
+                        evaluateAttributeExpressions(flowFile).
+                        getValue();
                 final String workingDirPath;
                 if (rootPath == null) {
                     workingDirPath = null;
                 } else {
                     File workingDirectory = new File(rootPath);
-                    if (!workingDirectory.getPath().startsWith("/") && !workingDirectory.getPath().startsWith("\\")) {
-                        workingDirectory = new File(transfer.getHomeDirectory(flowFile), workingDirectory.getPath());
+                    if (!workingDirectory.getPath().
+                            startsWith("/") && !workingDirectory.getPath().
+                            startsWith("\\")) {
+                        workingDirectory = new File(transfer.
+                                getHomeDirectory(flowFile), workingDirectory.
+                                getPath());
                     }
-                    workingDirPath = workingDirectory.getPath().replace("\\", "/");
+                    workingDirPath = workingDirectory.getPath().
+                            replace("\\", "/");
                 }
 
-                final boolean rejectZeroByteFiles = context.getProperty(FileTransfer.REJECT_ZERO_BYTE).asBoolean();
-                final ConflictResult conflictResult = identifyAndResolveConflictFile(context.getProperty(FileTransfer.CONFLICT_RESOLUTION).getValue(),
+                final boolean rejectZeroByteFiles = context.
+                        getProperty(FileTransfer.REJECT_ZERO_BYTE).
+                        asBoolean();
+                final ConflictResult conflictResult = identifyAndResolveConflictFile(context.
+                        getProperty(FileTransfer.CONFLICT_RESOLUTION).
+                        getValue(),
                         transfer, workingDirPath, flowFile, rejectZeroByteFiles, logger);
 
                 if (conflictResult.isTransfer()) {
@@ -118,28 +144,37 @@ public abstract class PutFileTransfer<T extends FileTransfer> extends AbstractPr
                         @Override
                         public void process(final InputStream in) throws IOException {
                             try (final InputStream bufferedIn = new BufferedInputStream(in)) {
-                                if (workingDirPath != null && context.getProperty(SFTPTransfer.CREATE_DIRECTORY).asBoolean()) {
-                                    transfer.ensureDirectoryExists(flowFileToTransfer, new File(workingDirPath));
+                                if (workingDirPath != null && context.
+                                        getProperty(SFTPTransfer.CREATE_DIRECTORY).
+                                        asBoolean()) {
+                                    transfer.
+                                            ensureDirectoryExists(flowFileToTransfer, new File(workingDirPath));
                                 }
 
-                                fullPathRef.set(transfer.put(flowFileToTransfer, workingDirPath, conflictResult.getFileName(), bufferedIn));
+                                fullPathRef.set(transfer.
+                                        put(flowFileToTransfer, workingDirPath, conflictResult.
+                                                getFileName(), bufferedIn));
                             }
                         }
                     });
                     afterPut(flowFile, context, transfer);
 
                     stopWatch.stop();
-                    final String dataRate = stopWatch.calculateDataRate(flowFile.getSize());
-                    final long millis = stopWatch.getDuration(TimeUnit.MILLISECONDS);
-                    logger.info("Successfully transfered {} to {} on remote host {} in {} milliseconds at a rate of {}",
-                            new Object[]{flowFile, fullPathRef.get(), hostname, millis, dataRate});
+                    final String dataRate = stopWatch.
+                            calculateDataRate(flowFile.getSize());
+                    final long millis = stopWatch.
+                            getDuration(TimeUnit.MILLISECONDS);
+                    logger.
+                            info("Successfully transfered {} to {} on remote host {} in {} milliseconds at a rate of {}",
+                                    new Object[]{flowFile, fullPathRef.get(), hostname, millis, dataRate});
 
                     String fullPathWithSlash = fullPathRef.get();
                     if (!fullPathWithSlash.startsWith("/")) {
                         fullPathWithSlash = "/" + fullPathWithSlash;
                     }
                     final String destinationUri = transfer.getProtocolName() + "://" + hostname + fullPathWithSlash;
-                    session.getProvenanceReporter().send(flowFile, destinationUri, millis);
+                    session.getProvenanceReporter().
+                            send(flowFile, destinationUri, millis);
                 }
 
                 if (conflictResult.isPenalize()) {
@@ -148,20 +183,28 @@ public abstract class PutFileTransfer<T extends FileTransfer> extends AbstractPr
 
                 session.transfer(flowFile, conflictResult.getRelationship());
                 session.commit();
-            } while (isScheduled() && (getRelationships().size() == context.getAvailableRelationships().size()) && (++fileCount < maxNumberOfFiles) && ((flowFile = session.get()) != null));
+            } while (isScheduled() && (getRelationships().
+                    size() == context.getAvailableRelationships().
+                    size()) && (++fileCount < maxNumberOfFiles) && ((flowFile = session.
+                    get()) != null));
         } catch (final IOException e) {
             context.yield();
-            logger.error("Unable to transfer {} to remote host {} due to {}", new Object[]{flowFile, hostname, e});
+            logger.
+                    error("Unable to transfer {} to remote host {} due to {}", new Object[]{flowFile, hostname, e});
             flowFile = session.penalize(flowFile);
             session.transfer(flowFile, REL_FAILURE);
         } catch (final FlowFileAccessException e) {
             context.yield();
-            logger.error("Unable to transfer {} to remote host {} due to {}", new Object[]{flowFile, hostname, e.getCause()});
+            logger.
+                    error("Unable to transfer {} to remote host {} due to {}", new Object[]{flowFile, hostname, e.
+                        getCause()});
             flowFile = session.penalize(flowFile);
             session.transfer(flowFile, REL_FAILURE);
         } catch (final ProcessException e) {
             context.yield();
-            logger.error("Unable to transfer {} to remote host {} due to {}: {}; routing to failure", new Object[]{flowFile, hostname, e, e.getCause()});
+            logger.
+                    error("Unable to transfer {} to remote host {} due to {}: {}; routing to failure", new Object[]{flowFile, hostname, e, e.
+                        getCause()});
             flowFile = session.penalize(flowFile);
             session.transfer(flowFile, REL_FAILURE);
         }
@@ -179,53 +222,62 @@ public abstract class PutFileTransfer<T extends FileTransfer> extends AbstractPr
         if (rejectZeroByteFiles) {
             final long sizeInBytes = flowFile.getSize();
             if (sizeInBytes == 0) {
-                logger.warn("Rejecting {} because it is zero bytes", new Object[]{flowFile});
+                logger.
+                        warn("Rejecting {} because it is zero bytes", new Object[]{flowFile});
                 return new ConflictResult(REL_REJECT, false, fileName, true);
             }
         }
 
         //Second, check if the user doesn't care about detecting naming conflicts ahead of time
-        if (conflictResolutionType.equalsIgnoreCase(FileTransfer.CONFLICT_RESOLUTION_NONE)) {
+        if (conflictResolutionType.
+                equalsIgnoreCase(FileTransfer.CONFLICT_RESOLUTION_NONE)) {
             return new ConflictResult(destinationRelationship, transferFile, fileName, penalizeFile);
         }
 
-        final FileInfo remoteFileInfo = transfer.getRemoteFileInfo(flowFile, path, fileName);
+        final FileInfo remoteFileInfo = transfer.
+                getRemoteFileInfo(flowFile, path, fileName);
         if (remoteFileInfo == null) {
             return new ConflictResult(destinationRelationship, transferFile, fileName, penalizeFile);
         }
 
         if (remoteFileInfo.isDirectory()) {
-            logger.info("Resolving conflict by rejecting {} due to conflicting filename with a directory or file already on remote server", new Object[]{flowFile});
+            logger.
+                    info("Resolving conflict by rejecting {} due to conflicting filename with a directory or file already on remote server", new Object[]{flowFile});
             return new ConflictResult(REL_REJECT, false, fileName, false);
         }
 
-        logger.info("Discovered a filename conflict on the remote server for {} so handling using configured Conflict Resolution of {}",
-                new Object[]{flowFile, conflictResolutionType});
+        logger.
+                info("Discovered a filename conflict on the remote server for {} so handling using configured Conflict Resolution of {}",
+                        new Object[]{flowFile, conflictResolutionType});
 
         switch (conflictResolutionType.toUpperCase()) {
             case FileTransfer.CONFLICT_RESOLUTION_REJECT:
                 destinationRelationship = REL_REJECT;
                 transferFile = false;
                 penalizeFile = false;
-                logger.info("Resolving conflict by rejecting {} due to conflicting filename with a directory or file already on remote server", new Object[]{flowFile});
+                logger.
+                        info("Resolving conflict by rejecting {} due to conflicting filename with a directory or file already on remote server", new Object[]{flowFile});
                 break;
             case FileTransfer.CONFLICT_RESOLUTION_REPLACE:
                 transfer.deleteFile(path, fileName);
                 destinationRelationship = REL_SUCCESS;
                 transferFile = true;
                 penalizeFile = false;
-                logger.info("Resolving filename conflict for {} with remote server by deleting remote file and replacing with flow file", new Object[]{flowFile});
+                logger.
+                        info("Resolving filename conflict for {} with remote server by deleting remote file and replacing with flow file", new Object[]{flowFile});
                 break;
             case FileTransfer.CONFLICT_RESOLUTION_RENAME:
                 boolean uniqueNameGenerated = false;
                 for (int i = 1; i < 100 && !uniqueNameGenerated; i++) {
                     String possibleFileName = i + "." + fileName;
 
-                    final FileInfo renamedFileInfo = transfer.getRemoteFileInfo(flowFile, path, possibleFileName);
+                    final FileInfo renamedFileInfo = transfer.
+                            getRemoteFileInfo(flowFile, path, possibleFileName);
                     uniqueNameGenerated = (renamedFileInfo == null);
                     if (uniqueNameGenerated) {
                         fileName = possibleFileName;
-                        logger.info("Attempting to resolve filename conflict for {} on the remote server by using a newly generated filename of: {}", new Object[]{flowFile, fileName});
+                        logger.
+                                info("Attempting to resolve filename conflict for {} on the remote server by using a newly generated filename of: {}", new Object[]{flowFile, fileName});
                         destinationRelationship = REL_SUCCESS;
                         transferFile = true;
                         penalizeFile = false;
@@ -236,20 +288,23 @@ public abstract class PutFileTransfer<T extends FileTransfer> extends AbstractPr
                     destinationRelationship = REL_REJECT;
                     transferFile = false;
                     penalizeFile = false;
-                    logger.info("Could not determine a unique name after 99 attempts for.  Switching resolution mode to REJECT for " + flowFile);
+                    logger.
+                            info("Could not determine a unique name after 99 attempts for.  Switching resolution mode to REJECT for " + flowFile);
                 }
                 break;
             case FileTransfer.CONFLICT_RESOLUTION_IGNORE:
                 destinationRelationship = REL_SUCCESS;
                 transferFile = false;
                 penalizeFile = false;
-                logger.info("Resolving conflict for {}  by not transferring file and and still considering the process a success.", new Object[]{flowFile});
+                logger.
+                        info("Resolving conflict for {}  by not transferring file and and still considering the process a success.", new Object[]{flowFile});
                 break;
             case FileTransfer.CONFLICT_RESOLUTION_FAIL:
                 destinationRelationship = REL_FAILURE;
                 transferFile = false;
                 penalizeFile = true;
-                logger.info("Resolved filename conflict for {} as configured by routing to FAILURE relationship.", new Object[]{flowFile});
+                logger.
+                        info("Resolved filename conflict for {} as configured by routing to FAILURE relationship.", new Object[]{flowFile});
             default:
                 break;
         }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutJMS.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutJMS.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutJMS.java
index c7c78a1..b37471e 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutJMS.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutJMS.java
@@ -96,10 +96,14 @@ public class PutJMS extends AbstractProcessor {
     public static final Charset UTF8 = Charset.forName("UTF-8");
     public static final int DEFAULT_MESSAGE_PRIORITY = 4;
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success")
-            .description("All FlowFiles that are sent to the JMS destination are routed to this relationship").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure")
-            .description("All FlowFiles that cannot be routed to the JMS destination are routed to this relationship").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder().
+            name("success").
+            description("All FlowFiles that are sent to the JMS destination are routed to this relationship").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("All FlowFiles that cannot be routed to the JMS destination are routed to this relationship").
+            build();
 
     private final Queue<WrappedMessageProducer> producerQueue = new LinkedBlockingQueue<>();
     private final List<PropertyDescriptor> properties;
@@ -152,7 +156,10 @@ public class PutJMS extends AbstractProcessor {
     @Override
     public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
         final ProcessorLog logger = getLogger();
-        final List<FlowFile> flowFiles = session.get(context.getProperty(BATCH_SIZE).asInteger().intValue());
+        final List<FlowFile> flowFiles = session.get(context.
+                getProperty(BATCH_SIZE).
+                asInteger().
+                intValue());
         if (flowFiles.isEmpty()) {
             return;
         }
@@ -160,10 +167,14 @@ public class PutJMS extends AbstractProcessor {
         WrappedMessageProducer wrappedProducer = producerQueue.poll();
         if (wrappedProducer == null) {
             try {
-                wrappedProducer = JmsFactory.createMessageProducer(context, true);
-                logger.info("Connected to JMS server {}", new Object[]{context.getProperty(URL).getValue()});
+                wrappedProducer = JmsFactory.
+                        createMessageProducer(context, true);
+                logger.info("Connected to JMS server {}", new Object[]{context.
+                    getProperty(URL).
+                    getValue()});
             } catch (final JMSException e) {
-                logger.error("Failed to connect to JMS Server due to {}", new Object[]{e});
+                logger.
+                        error("Failed to connect to JMS Server due to {}", new Object[]{e});
                 session.transfer(flowFiles, REL_FAILURE);
                 context.yield();
                 return;
@@ -173,7 +184,9 @@ public class PutJMS extends AbstractProcessor {
         final Session jmsSession = wrappedProducer.getSession();
         final MessageProducer producer = wrappedProducer.getProducer();
 
-        final int maxBufferSize = context.getProperty(MAX_BUFFER_SIZE).asDataSize(DataUnit.B).intValue();
+        final int maxBufferSize = context.getProperty(MAX_BUFFER_SIZE).
+                asDataSize(DataUnit.B).
+                intValue();
 
         try {
             final Set<FlowFile> successfulFlowFiles = new HashSet<>();
@@ -181,7 +194,8 @@ public class PutJMS extends AbstractProcessor {
             for (FlowFile flowFile : flowFiles) {
                 if (flowFile.getSize() > maxBufferSize) {
                     session.transfer(flowFile, REL_FAILURE);
-                    logger.warn("Routing {} to failure because its size exceeds the configured max", new Object[]{flowFile});
+                    logger.
+                            warn("Routing {} to failure because its size exceeds the configured max", new Object[]{flowFile});
                     continue;
                 }
 
@@ -194,18 +208,29 @@ public class PutJMS extends AbstractProcessor {
                     }
                 });
 
-                final Long ttl = context.getProperty(MESSAGE_TTL).asTimePeriod(TimeUnit.MILLISECONDS);
+                final Long ttl = context.getProperty(MESSAGE_TTL).
+                        asTimePeriod(TimeUnit.MILLISECONDS);
 
-                final String replyToQueueName = context.getProperty(REPLY_TO_QUEUE).evaluateAttributeExpressions(flowFile).getValue();
-                final Destination replyToQueue = replyToQueueName == null ? null : JmsFactory.createQueue(context, replyToQueueName);
+                final String replyToQueueName = context.
+                        getProperty(REPLY_TO_QUEUE).
+                        evaluateAttributeExpressions(flowFile).
+                        getValue();
+                final Destination replyToQueue = replyToQueueName == null ? null : JmsFactory.
+                        createQueue(context, replyToQueueName);
 
                 int priority = DEFAULT_MESSAGE_PRIORITY;
                 try {
-                    final Integer priorityInt = context.getProperty(MESSAGE_PRIORITY).evaluateAttributeExpressions(flowFile).asInteger();
+                    final Integer priorityInt = context.
+                            getProperty(MESSAGE_PRIORITY).
+                            evaluateAttributeExpressions(flowFile).
+                            asInteger();
                     priority = priorityInt == null ? priority : priorityInt;
                 } catch (final NumberFormatException e) {
-                    logger.warn("Invalid value for JMS Message Priority: {}; defaulting to priority of {}", new Object[]{
-                        context.getProperty(MESSAGE_PRIORITY).evaluateAttributeExpressions(flowFile).getValue(), DEFAULT_MESSAGE_PRIORITY});
+                    logger.
+                            warn("Invalid value for JMS Message Priority: {}; defaulting to priority of {}", new Object[]{
+                                context.getProperty(MESSAGE_PRIORITY).
+                                evaluateAttributeExpressions(flowFile).
+                                getValue(), DEFAULT_MESSAGE_PRIORITY});
                 }
 
                 try {
@@ -217,14 +242,16 @@ public class PutJMS extends AbstractProcessor {
                     }
                     producer.send(message);
                 } catch (final JMSException e) {
-                    logger.error("Failed to send {} to JMS Server due to {}", new Object[]{flowFile, e});
+                    logger.
+                            error("Failed to send {} to JMS Server due to {}", new Object[]{flowFile, e});
                     session.transfer(flowFiles, REL_FAILURE);
                     context.yield();
 
                     try {
                         jmsSession.rollback();
                     } catch (final JMSException jmse) {
-                        logger.warn("Unable to roll back JMS Session due to {}", new Object[]{jmse});
+                        logger.
+                                warn("Unable to roll back JMS Session due to {}", new Object[]{jmse});
                     }
 
                     wrappedProducer.close(logger);
@@ -232,17 +259,22 @@ public class PutJMS extends AbstractProcessor {
                 }
 
                 successfulFlowFiles.add(flowFile);
-                session.getProvenanceReporter().send(flowFile, "jms://" + context.getProperty(URL).getValue());
+                session.getProvenanceReporter().
+                        send(flowFile, "jms://" + context.getProperty(URL).
+                                getValue());
             }
 
             try {
                 jmsSession.commit();
 
                 session.transfer(successfulFlowFiles, REL_SUCCESS);
-                final String flowFileDescription = successfulFlowFiles.size() > 10 ? successfulFlowFiles.size() + " FlowFiles" : successfulFlowFiles.toString();
-                logger.info("Sent {} to JMS Server and transferred to 'success'", new Object[]{flowFileDescription});
+                final String flowFileDescription = successfulFlowFiles.size() > 10 ? successfulFlowFiles.
+                        size() + " FlowFiles" : successfulFlowFiles.toString();
+                logger.
+                        info("Sent {} to JMS Server and transferred to 'success'", new Object[]{flowFileDescription});
             } catch (JMSException e) {
-                logger.error("Failed to commit JMS Session due to {}; rolling back session", new Object[]{e});
+                logger.
+                        error("Failed to commit JMS Session due to {}; rolling back session", new Object[]{e});
                 session.rollback();
                 wrappedProducer.close(logger);
             }
@@ -257,19 +289,22 @@ public class PutJMS extends AbstractProcessor {
             final FlowFile flowFile, final Destination replyToQueue, final Integer priority) throws JMSException {
         final Message message;
 
-        switch (context.getProperty(MESSAGE_TYPE).getValue()) {
+        switch (context.getProperty(MESSAGE_TYPE).
+                getValue()) {
             case MSG_TYPE_EMPTY: {
                 message = jmsSession.createTextMessage("");
                 break;
             }
             case MSG_TYPE_STREAM: {
-                final StreamMessage streamMessage = jmsSession.createStreamMessage();
+                final StreamMessage streamMessage = jmsSession.
+                        createStreamMessage();
                 streamMessage.writeBytes(messageContent);
                 message = streamMessage;
                 break;
             }
             case MSG_TYPE_TEXT: {
-                message = jmsSession.createTextMessage(new String(messageContent, UTF8));
+                message = jmsSession.
+                        createTextMessage(new String(messageContent, UTF8));
                 break;
             }
             case MSG_TYPE_MAP: {
@@ -278,7 +313,8 @@ public class PutJMS extends AbstractProcessor {
             }
             case MSG_TYPE_BYTE:
             default: {
-                final BytesMessage bytesMessage = jmsSession.createBytesMessage();
+                final BytesMessage bytesMessage = jmsSession.
+                        createBytesMessage();
                 bytesMessage.writeBytes(messageContent);
                 message = bytesMessage;
             }
@@ -294,7 +330,8 @@ public class PutJMS extends AbstractProcessor {
             message.setJMSPriority(priority);
         }
 
-        if (context.getProperty(ATTRIBUTES_TO_JMS_PROPS).asBoolean()) {
+        if (context.getProperty(ATTRIBUTES_TO_JMS_PROPS).
+                asBoolean()) {
             copyAttributesToJmsProps(flowFile, message);
         }
 
@@ -332,7 +369,7 @@ public class PutJMS extends AbstractProcessor {
      * @param flowFile The flow file whose metadata should be examined for JMS
      * properties.
      * @param message The JMS message to which we want to add properties.
-     * @throws JMSException
+     * @throws JMSException ex
      */
     private void copyAttributesToJmsProps(final FlowFile flowFile, final Message message) throws JMSException {
         final ProcessorLog logger = getLogger();
@@ -342,38 +379,50 @@ public class PutJMS extends AbstractProcessor {
             final String key = entry.getKey();
             final String value = entry.getValue();
 
-            if (key.toLowerCase().startsWith(ATTRIBUTE_PREFIX.toLowerCase())
-                    && !key.toLowerCase().endsWith(ATTRIBUTE_TYPE_SUFFIX.toLowerCase())) {
+            if (key.toLowerCase().
+                    startsWith(ATTRIBUTE_PREFIX.toLowerCase())
+                    && !key.toLowerCase().
+                    endsWith(ATTRIBUTE_TYPE_SUFFIX.toLowerCase())) {
 
-                final String jmsPropName = key.substring(ATTRIBUTE_PREFIX.length());
+                final String jmsPropName = key.substring(ATTRIBUTE_PREFIX.
+                        length());
                 final String type = attributes.get(key + ATTRIBUTE_TYPE_SUFFIX);
 
                 try {
                     if (type == null || type.equalsIgnoreCase(PROP_TYPE_STRING)) {
                         message.setStringProperty(jmsPropName, value);
                     } else if (type.equalsIgnoreCase(PROP_TYPE_INTEGER)) {
-                        message.setIntProperty(jmsPropName, Integer.parseInt(value));
+                        message.setIntProperty(jmsPropName, Integer.
+                                parseInt(value));
                     } else if (type.equalsIgnoreCase(PROP_TYPE_BOOLEAN)) {
-                        message.setBooleanProperty(jmsPropName, Boolean.parseBoolean(value));
+                        message.setBooleanProperty(jmsPropName, Boolean.
+                                parseBoolean(value));
                     } else if (type.equalsIgnoreCase(PROP_TYPE_SHORT)) {
-                        message.setShortProperty(jmsPropName, Short.parseShort(value));
+                        message.setShortProperty(jmsPropName, Short.
+                                parseShort(value));
                     } else if (type.equalsIgnoreCase(PROP_TYPE_LONG)) {
-                        message.setLongProperty(jmsPropName, Long.parseLong(value));
+                        message.setLongProperty(jmsPropName, Long.
+                                parseLong(value));
                     } else if (type.equalsIgnoreCase(PROP_TYPE_BYTE)) {
-                        message.setByteProperty(jmsPropName, Byte.parseByte(value));
+                        message.setByteProperty(jmsPropName, Byte.
+                                parseByte(value));
                     } else if (type.equalsIgnoreCase(PROP_TYPE_DOUBLE)) {
-                        message.setDoubleProperty(jmsPropName, Double.parseDouble(value));
+                        message.setDoubleProperty(jmsPropName, Double.
+                                parseDouble(value));
                     } else if (type.equalsIgnoreCase(PROP_TYPE_FLOAT)) {
-                        message.setFloatProperty(jmsPropName, Float.parseFloat(value));
+                        message.setFloatProperty(jmsPropName, Float.
+                                parseFloat(value));
                     } else if (type.equalsIgnoreCase(PROP_TYPE_OBJECT)) {
                         message.setObjectProperty(jmsPropName, value);
                     } else {
-                        logger.warn("Attribute key '{}' for {} has value '{}', but expected one of: integer, string, object, byte, double, float, long, short, boolean; not adding this property",
-                                new Object[]{key, flowFile, value});
+                        logger.
+                                warn("Attribute key '{}' for {} has value '{}', but expected one of: integer, string, object, byte, double, float, long, short, boolean; not adding this property",
+                                        new Object[]{key, flowFile, value});
                     }
                 } catch (NumberFormatException e) {
-                    logger.warn("Attribute key '{}' for {} has value '{}', but attribute key '{}' has value '{}'. Not adding this JMS property",
-                            new Object[]{key, flowFile, value, key + ATTRIBUTE_TYPE_SUFFIX, PROP_TYPE_INTEGER});
+                    logger.
+                            warn("Attribute key '{}' for {} has value '{}', but attribute key '{}' has value '{}'. Not adding this JMS property",
+                                    new Object[]{key, flowFile, value, key + ATTRIBUTE_TYPE_SUFFIX, PROP_TYPE_INTEGER});
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java
index 300878f..395ddee 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSFTP.java
@@ -34,7 +34,8 @@ import org.apache.nifi.processors.standard.util.SFTPTransfer;
 @Tags({"remote", "copy", "egress", "put", "sftp", "archive", "files"})
 @CapabilityDescription("Sends FlowFiles to an SFTP Server")
 @SeeAlso(GetSFTP.class)
-@DynamicProperty(name="Disable Directory Listing", value="true or false", description="Disables directory listings before operations which might fail, such as configurations which create directory structures.")
+@DynamicProperty(name = "Disable Directory Listing", value = "true or false",
+        description = "Disables directory listings before operations which might fail, such as configurations which create directory structures.")
 public class PutSFTP extends PutFileTransfer<SFTPTransfer> {
 
     private List<PropertyDescriptor> properties;
@@ -75,10 +76,12 @@ public class PutSFTP extends PutFileTransfer<SFTPTransfer> {
 
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(String propertyDescriptorName) {
-        if (SFTPTransfer.DISABLE_DIRECTORY_LISTING.getName().equalsIgnoreCase(propertyDescriptorName)) {
+        if (SFTPTransfer.DISABLE_DIRECTORY_LISTING.getName().
+                equalsIgnoreCase(propertyDescriptorName)) {
             return SFTPTransfer.DISABLE_DIRECTORY_LISTING;
         }
-        return super.getSupportedDynamicPropertyDescriptor(propertyDescriptorName);
+        return super.
+                getSupportedDynamicPropertyDescriptor(propertyDescriptorName);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java
index 111dead..d061c33 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceText.java
@@ -67,47 +67,54 @@ public class ReplaceText extends AbstractProcessor {
     private final Pattern backReferencePattern = Pattern.compile("\\$(\\d+)");
     private static final byte[] ZERO_BYTE_BUFFER = new byte[0];
     // Properties
-    public static final PropertyDescriptor REGEX = new PropertyDescriptor.Builder()
-            .name("Regular Expression")
-            .description("The Regular Expression to search for in the FlowFile content")
-            .required(true)
-            .addValidator(StandardValidators.createRegexValidator(0, Integer.MAX_VALUE, true))
-            .expressionLanguageSupported(true)
-            .defaultValue("(.*)")
-            .build();
-    public static final PropertyDescriptor REPLACEMENT_VALUE = new PropertyDescriptor.Builder()
-            .name("Replacement Value")
-            .description("The value to replace the regular expression with. Back-references to Regular Expression capturing groups are supported, but back-references that reference capturing groups that do not exist in the regular expression will be treated as literal value.")
-            .required(true)
-            .defaultValue("$1")
-            .addValidator(Validator.VALID)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor CHARACTER_SET = new PropertyDescriptor.Builder()
-            .name("Character Set")
-            .description("The Character Set in which the file is encoded")
-            .required(true)
-            .addValidator(StandardValidators.CHARACTER_SET_VALIDATOR)
-            .defaultValue("UTF-8")
-            .build();
-    public static final PropertyDescriptor MAX_BUFFER_SIZE = new PropertyDescriptor.Builder()
-            .name("Maximum Buffer Size")
-            .description("Specifies the maximum amount of data to buffer (per file or per line, depending on the Evaluation Mode) in order to apply the regular expressions. If 'Entire Text' (in Evaluation Mode) is selected and the FlowFile is larger than this value, the FlowFile will be routed to 'failure'. "
-                    + "In 'Line-by-Line' Mode, if a single line is larger than this value, the FlowFile will be routed to 'failure'. A default value of 1 MB is provided, primarily for 'Entire Text' mode. In 'Line-by-Line' Mode, a value such as 8 KB or 16 KB is suggested. This value is ignored and the buffer is not used if 'Regular Expression' is set to '.*'")
-            .required(true)
-            .addValidator(StandardValidators.DATA_SIZE_VALIDATOR)
-            .defaultValue("1 MB")
-            .build();
-    public static final PropertyDescriptor EVALUATION_MODE = new PropertyDescriptor.Builder()
-            .name("Evaluation Mode")
-            .description("Evaluate the 'Regular Expression' against each line (Line-by-Line) or buffer the entire file into memory (Entire Text) and then evaluate the 'Regular Expression'.")
-            .allowableValues(LINE_BY_LINE, ENTIRE_TEXT)
-            .defaultValue(ENTIRE_TEXT)
-            .required(true)
-            .build();
+    public static final PropertyDescriptor REGEX = new PropertyDescriptor.Builder().
+            name("Regular Expression").
+            description("The Regular Expression to search for in the FlowFile content").
+            required(true).
+            addValidator(StandardValidators.
+                    createRegexValidator(0, Integer.MAX_VALUE, true)).
+            expressionLanguageSupported(true).
+            defaultValue("(.*)").
+            build();
+    public static final PropertyDescriptor REPLACEMENT_VALUE = new PropertyDescriptor.Builder().
+            name("Replacement Value").
+            description("The value to replace the regular expression with. Back-references to Regular Expression capturing groups are supported, but back-references that reference capturing groups that do not exist in the regular expression will be treated as literal value.").
+            required(true).
+            defaultValue("$1").
+            addValidator(Validator.VALID).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor CHARACTER_SET = new PropertyDescriptor.Builder().
+            name("Character Set").
+            description("The Character Set in which the file is encoded").
+            required(true).
+            addValidator(StandardValidators.CHARACTER_SET_VALIDATOR).
+            defaultValue("UTF-8").
+            build();
+    public static final PropertyDescriptor MAX_BUFFER_SIZE = new PropertyDescriptor.Builder().
+            name("Maximum Buffer Size").
+            description("Specifies the maximum amount of data to buffer (per file or per line, depending on the Evaluation Mode) in order to apply the regular expressions. If 'Entire Text' (in Evaluation Mode) is selected and the FlowFile is larger than this value, the FlowFile will be routed to 'failure'. "
+                    + "In 'Line-by-Line' Mode, if a single line is larger than this value, the FlowFile will be routed to 'failure'. A default value of 1 MB is provided, primarily for 'Entire Text' mode. In 'Line-by-Line' Mode, a value such as 8 KB or 16 KB is suggested. This value is ignored and the buffer is not used if 'Regular Expression' is set to '.*'").
+            required(true).
+            addValidator(StandardValidators.DATA_SIZE_VALIDATOR).
+            defaultValue("1 MB").
+            build();
+    public static final PropertyDescriptor EVALUATION_MODE = new PropertyDescriptor.Builder().
+            name("Evaluation Mode").
+            description("Evaluate the 'Regular Expression' against each line (Line-by-Line) or buffer the entire file into memory (Entire Text) and then evaluate the 'Regular Expression'.").
+            allowableValues(LINE_BY_LINE, ENTIRE_TEXT).
+            defaultValue(ENTIRE_TEXT).
+            required(true).
+            build();
     // Relationships
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("FlowFiles that have been successfully updated are routed to this relationship, as well as FlowFiles whose content does not match the given Regular Expression").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("FlowFiles that could not be updated are routed to this relationship").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder().
+            name("success").
+            description("FlowFiles that have been successfully updated are routed to this relationship, as well as FlowFiles whose content does not match the given Regular Expression").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("FlowFiles that could not be updated are routed to this relationship").
+            build();
     //
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
@@ -140,15 +147,19 @@ public class ReplaceText extends AbstractProcessor {
 
     @Override
     public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException {
-        final List<FlowFile> flowFiles = session.get(FlowFileFilters.newSizeBasedFilter(1, DataUnit.MB, 100));
+        final List<FlowFile> flowFiles = session.get(FlowFileFilters.
+                newSizeBasedFilter(1, DataUnit.MB, 100));
         if (flowFiles.isEmpty()) {
             return;
         }
 
         final ProcessorLog logger = getLogger();
-        final String unsubstitutedRegex = context.getProperty(REGEX).getValue();
-        String unsubstitutedReplacement = context.getProperty(REPLACEMENT_VALUE).getValue();
-        if (unsubstitutedRegex.equals("(.*)") && unsubstitutedReplacement.equals("$1")) {
+        final String unsubstitutedRegex = context.getProperty(REGEX).
+                getValue();
+        String unsubstitutedReplacement = context.getProperty(REPLACEMENT_VALUE).
+                getValue();
+        if (unsubstitutedRegex.equals("(.*)") && unsubstitutedReplacement.
+                equals("$1")) {
             // This pattern says replace content with itself. We can highly optimize this process by simply transferring
             // all FlowFiles to the 'success' relationship
             session.transfer(flowFiles, REL_SUCCESS);
@@ -169,17 +180,26 @@ public class ReplaceText extends AbstractProcessor {
             }
         };
 
-        final String regexValue = context.getProperty(REGEX).evaluateAttributeExpressions().getValue();
-        final int numCapturingGroups = Pattern.compile(regexValue).matcher("").groupCount();
+        final String regexValue = context.getProperty(REGEX).
+                evaluateAttributeExpressions().
+                getValue();
+        final int numCapturingGroups = Pattern.compile(regexValue).
+                matcher("").
+                groupCount();
 
         final boolean skipBuffer = ".*".equals(unsubstitutedRegex);
 
-        final Charset charset = Charset.forName(context.getProperty(CHARACTER_SET).getValue());
-        final int maxBufferSize = context.getProperty(MAX_BUFFER_SIZE).asDataSize(DataUnit.B).intValue();
+        final Charset charset = Charset.forName(context.
+                getProperty(CHARACTER_SET).
+                getValue());
+        final int maxBufferSize = context.getProperty(MAX_BUFFER_SIZE).
+                asDataSize(DataUnit.B).
+                intValue();
 
         final byte[] buffer = skipBuffer ? ZERO_BYTE_BUFFER : new byte[maxBufferSize];
 
-        final String evaluateMode = context.getProperty(EVALUATION_MODE).getValue();
+        final String evaluateMode = context.getProperty(EVALUATION_MODE).
+                getValue();
 
         for (FlowFile flowFile : flowFiles) {
             if (evaluateMode.equalsIgnoreCase(ENTIRE_TEXT)) {
@@ -189,8 +209,11 @@ public class ReplaceText extends AbstractProcessor {
                 }
             }
 
-            String replacement = context.getProperty(REPLACEMENT_VALUE).evaluateAttributeExpressions(flowFile, escapeBackRefDecorator).getValue();
-            final Matcher backRefMatcher = backReferencePattern.matcher(replacement);
+            String replacement = context.getProperty(REPLACEMENT_VALUE).
+                    evaluateAttributeExpressions(flowFile, escapeBackRefDecorator).
+                    getValue();
+            final Matcher backRefMatcher = backReferencePattern.
+                    matcher(replacement);
             while (backRefMatcher.find()) {
                 final String backRefNum = backRefMatcher.group(1);
                 if (backRefNum.startsWith("0")) {
@@ -208,7 +231,8 @@ public class ReplaceText extends AbstractProcessor {
                 }
 
                 if (backRefIndex > numCapturingGroups) {
-                    final StringBuilder sb = new StringBuilder(replacement.length() + 1);
+                    final StringBuilder sb = new StringBuilder(replacement.
+                            length() + 1);
                     final int groupStart = backRefMatcher.start(1);
 
                     sb.append(replacement.substring(0, groupStart - 1));
@@ -226,12 +250,14 @@ public class ReplaceText extends AbstractProcessor {
             if (skipBuffer) {
                 final StopWatch stopWatch = new StopWatch(true);
                 if (evaluateMode.equalsIgnoreCase(ENTIRE_TEXT)) {
-                    flowFile = session.write(flowFile, new OutputStreamCallback() {
-                        @Override
-                        public void process(final OutputStream out) throws IOException {
-                            out.write(replacementValue.getBytes(charset));
-                        }
-                    });
+                    flowFile = session.
+                            write(flowFile, new OutputStreamCallback() {
+                                @Override
+                                public void process(final OutputStream out) throws IOException {
+                                    out.
+                                    write(replacementValue.getBytes(charset));
+                                }
+                            });
                 } else {
                     flowFile = session.write(flowFile, new StreamCallback() {
                         @Override
@@ -245,14 +271,19 @@ public class ReplaceText extends AbstractProcessor {
                         }
                     });
                 }
-                session.getProvenanceReporter().modifyContent(flowFile, stopWatch.getElapsed(TimeUnit.MILLISECONDS));
+                session.getProvenanceReporter().
+                        modifyContent(flowFile, stopWatch.
+                                getElapsed(TimeUnit.MILLISECONDS));
                 session.transfer(flowFile, REL_SUCCESS);
-                logger.info("Transferred {} to 'success'", new Object[]{flowFile});
+                logger.
+                        info("Transferred {} to 'success'", new Object[]{flowFile});
                 continue;
             }
 
             final StopWatch stopWatch = new StopWatch(true);
-            final String regex = context.getProperty(REGEX).evaluateAttributeExpressions(flowFile, quotedAttributeDecorator).getValue();
+            final String regex = context.getProperty(REGEX).
+                    evaluateAttributeExpressions(flowFile, quotedAttributeDecorator).
+                    getValue();
 
             if (evaluateMode.equalsIgnoreCase(ENTIRE_TEXT)) {
                 final int flowFileSize = (int) flowFile.getSize();
@@ -261,7 +292,8 @@ public class ReplaceText extends AbstractProcessor {
                     public void process(final InputStream in, final OutputStream out) throws IOException {
                         StreamUtils.fillBuffer(in, buffer, false);
                         final String contentString = new String(buffer, 0, flowFileSize, charset);
-                        final String updatedValue = contentString.replaceAll(regex, replacementValue);
+                        final String updatedValue = contentString.
+                                replaceAll(regex, replacementValue);
                         out.write(updatedValue.getBytes(charset));
                     }
                 });
@@ -273,7 +305,8 @@ public class ReplaceText extends AbstractProcessor {
                                 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out, charset));) {
                             String oneLine;
                             while (null != (oneLine = br.readLine())) {
-                                final String updatedValue = oneLine.replaceAll(regex, replacementValue);
+                                final String updatedValue = oneLine.
+                                        replaceAll(regex, replacementValue);
                                 bw.write(updatedValue);
                             }
                         }
@@ -282,7 +315,9 @@ public class ReplaceText extends AbstractProcessor {
             }
 
             logger.info("Transferred {} to 'success'", new Object[]{flowFile});
-            session.getProvenanceReporter().modifyContent(flowFile, stopWatch.getElapsed(TimeUnit.MILLISECONDS));
+            session.getProvenanceReporter().
+                    modifyContent(flowFile, stopWatch.
+                            getElapsed(TimeUnit.MILLISECONDS));
             session.transfer(flowFile, REL_SUCCESS);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceTextWithMapping.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceTextWithMapping.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceTextWithMapping.java
index c4dd83a..a8a2919 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceTextWithMapping.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ReplaceTextWithMapping.java
@@ -71,52 +71,62 @@ import org.apache.commons.lang3.StringUtils;
 @CapabilityDescription("Updates the content of a FlowFile by evaluating a Regular Expression against it and replacing the section of the content that matches the Regular Expression with some alternate value provided in a mapping file.")
 public class ReplaceTextWithMapping extends AbstractProcessor {
 
-    public static final PropertyDescriptor REGEX = new PropertyDescriptor.Builder()
-            .name("Regular Expression")
-            .description("The Regular Expression to search for in the FlowFile content")
-            .required(true)
-            .addValidator(StandardValidators.createRegexValidator(0, Integer.MAX_VALUE, true))
-            .expressionLanguageSupported(true)
-            .defaultValue("\\S+")
-            .build();
-    public static final PropertyDescriptor MATCHING_GROUP_FOR_LOOKUP_KEY = new PropertyDescriptor.Builder()
-            .name("Matching Group")
-            .description("The number of the matching group of the provided regex to replace with the corresponding value from the mapping file (if it exists).")
-            .addValidator(StandardValidators.INTEGER_VALIDATOR)
-            .required(true)
-            .expressionLanguageSupported(true)
-            .defaultValue("0").build();
-    public static final PropertyDescriptor MAPPING_FILE = new PropertyDescriptor.Builder()
-            .name("Mapping File")
-            .description("The name of the file (including the full path) containing the Mappings.")
-            .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
-            .required(true)
-            .build();
-    public static final PropertyDescriptor MAPPING_FILE_REFRESH_INTERVAL = new PropertyDescriptor.Builder()
-            .name("Mapping File Refresh Interval")
-            .description("The polling interval in seconds to check for updates to the mapping file. The default is 60s.")
-            .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .required(true)
-            .defaultValue("60s").build();
-    public static final PropertyDescriptor CHARACTER_SET = new PropertyDescriptor.Builder()
-            .name("Character Set")
-            .description("The Character Set in which the file is encoded")
-            .required(true)
-            .addValidator(StandardValidators.CHARACTER_SET_VALIDATOR)
-            .defaultValue("UTF-8")
-            .build();
-    public static final PropertyDescriptor MAX_BUFFER_SIZE = new PropertyDescriptor.Builder()
-            .name("Maximum Buffer Size")
-            .description("Specifies the maximum amount of data to buffer (per file) in order to apply the regular expressions. If a FlowFile is larger than this value, the FlowFile will be routed to 'failure'")
-            .required(true)
-            .addValidator(StandardValidators.DATA_SIZE_VALIDATOR)
-            .defaultValue("1 MB")
-            .build();
-
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("FlowFiles that have been successfully updated are routed to this relationship, as well as FlowFiles whose content does not match the given Regular Expression").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("FlowFiles that could not be updated are routed to this relationship").build();
-
-    private final Pattern backReferencePattern = Pattern.compile("[^\\\\]\\$(\\d+)");
+    public static final PropertyDescriptor REGEX = new PropertyDescriptor.Builder().
+            name("Regular Expression").
+            description("The Regular Expression to search for in the FlowFile content").
+            required(true).
+            addValidator(StandardValidators.
+                    createRegexValidator(0, Integer.MAX_VALUE, true)).
+            expressionLanguageSupported(true).
+            defaultValue("\\S+").
+            build();
+    public static final PropertyDescriptor MATCHING_GROUP_FOR_LOOKUP_KEY = new PropertyDescriptor.Builder().
+            name("Matching Group").
+            description("The number of the matching group of the provided regex to replace with the corresponding value from the mapping file (if it exists).").
+            addValidator(StandardValidators.INTEGER_VALIDATOR).
+            required(true).
+            expressionLanguageSupported(true).
+            defaultValue("0").
+            build();
+    public static final PropertyDescriptor MAPPING_FILE = new PropertyDescriptor.Builder().
+            name("Mapping File").
+            description("The name of the file (including the full path) containing the Mappings.").
+            addValidator(StandardValidators.FILE_EXISTS_VALIDATOR).
+            required(true).
+            build();
+    public static final PropertyDescriptor MAPPING_FILE_REFRESH_INTERVAL = new PropertyDescriptor.Builder().
+            name("Mapping File Refresh Interval").
+            description("The polling interval in seconds to check for updates to the mapping file. The default is 60s.").
+            addValidator(StandardValidators.TIME_PERIOD_VALIDATOR).
+            required(true).
+            defaultValue("60s").
+            build();
+    public static final PropertyDescriptor CHARACTER_SET = new PropertyDescriptor.Builder().
+            name("Character Set").
+            description("The Character Set in which the file is encoded").
+            required(true).
+            addValidator(StandardValidators.CHARACTER_SET_VALIDATOR).
+            defaultValue("UTF-8").
+            build();
+    public static final PropertyDescriptor MAX_BUFFER_SIZE = new PropertyDescriptor.Builder().
+            name("Maximum Buffer Size").
+            description("Specifies the maximum amount of data to buffer (per file) in order to apply the regular expressions. If a FlowFile is larger than this value, the FlowFile will be routed to 'failure'").
+            required(true).
+            addValidator(StandardValidators.DATA_SIZE_VALIDATOR).
+            defaultValue("1 MB").
+            build();
+
+    public static final Relationship REL_SUCCESS = new Relationship.Builder().
+            name("success").
+            description("FlowFiles that have been successfully updated are routed to this relationship, as well as FlowFiles whose content does not match the given Regular Expression").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("FlowFiles that could not be updated are routed to this relationship").
+            build();
+
+    private final Pattern backReferencePattern = Pattern.
+            compile("[^\\\\]\\$(\\d+)");
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
@@ -129,14 +139,26 @@ public class ReplaceTextWithMapping extends AbstractProcessor {
 
     @Override
     protected Collection<ValidationResult> customValidate(final ValidationContext context) {
-        final List<ValidationResult> errors = new ArrayList<>(super.customValidate(context));
-
-        final String regexValue = context.getProperty(REGEX).evaluateAttributeExpressions().getValue();
-        final int numCapturingGroups = Pattern.compile(regexValue).matcher("").groupCount();
-        final int groupToMatch = context.getProperty(MATCHING_GROUP_FOR_LOOKUP_KEY).evaluateAttributeExpressions().asInteger();
+        final List<ValidationResult> errors = new ArrayList<>(super.
+                customValidate(context));
+
+        final String regexValue = context.getProperty(REGEX).
+                evaluateAttributeExpressions().
+                getValue();
+        final int numCapturingGroups = Pattern.compile(regexValue).
+                matcher("").
+                groupCount();
+        final int groupToMatch = context.
+                getProperty(MATCHING_GROUP_FOR_LOOKUP_KEY).
+                evaluateAttributeExpressions().
+                asInteger();
 
         if (groupToMatch > numCapturingGroups) {
-            errors.add(new ValidationResult.Builder().subject("Insufficient Matching Groups").valid(false).explanation("The specified matching group does not exist for the regular expression provided").build());
+            errors.add(new ValidationResult.Builder().
+                    subject("Insufficient Matching Groups").
+                    valid(false).
+                    explanation("The specified matching group does not exist for the regular expression provided").
+                    build());
         }
         return errors;
     }
@@ -178,7 +200,9 @@ public class ReplaceTextWithMapping extends AbstractProcessor {
 
         final ProcessorLog logger = getLogger();
 
-        final int maxBufferSize = context.getProperty(MAX_BUFFER_SIZE).asDataSize(DataUnit.B).intValue();
+        final int maxBufferSize = context.getProperty(MAX_BUFFER_SIZE).
+                asDataSize(DataUnit.B).
+                intValue();
 
         for (FlowFile flowFile : flowFiles) {
             if (flowFile.getSize() > maxBufferSize) {
@@ -188,10 +212,13 @@ public class ReplaceTextWithMapping extends AbstractProcessor {
 
             final StopWatch stopWatch = new StopWatch(true);
 
-            flowFile = session.write(flowFile, new ReplaceTextCallback(context, flowFile, maxBufferSize));
+            flowFile = session.
+                    write(flowFile, new ReplaceTextCallback(context, flowFile, maxBufferSize));
 
             logger.info("Transferred {} to 'success'", new Object[]{flowFile});
-            session.getProvenanceReporter().modifyContent(flowFile, stopWatch.getElapsed(TimeUnit.MILLISECONDS));
+            session.getProvenanceReporter().
+                    modifyContent(flowFile, stopWatch.
+                            getElapsed(TimeUnit.MILLISECONDS));
             session.transfer(flowFile, REL_SUCCESS);
         }
     }
@@ -225,34 +252,42 @@ public class ReplaceTextWithMapping extends AbstractProcessor {
                 // if not queried mapping file lastUpdate time in
                 // mapppingRefreshPeriodSecs, do so.
                 long currentTimeSecs = System.currentTimeMillis() / 1000;
-                long mappingRefreshPeriodSecs = context.getProperty(MAPPING_FILE_REFRESH_INTERVAL).asTimePeriod(TimeUnit.SECONDS);
+                long mappingRefreshPeriodSecs = context.
+                        getProperty(MAPPING_FILE_REFRESH_INTERVAL).
+                        asTimePeriod(TimeUnit.SECONDS);
 
                 boolean retry = (currentTimeSecs > (mappingTestTime.get() + mappingRefreshPeriodSecs));
                 if (retry) {
                     mappingTestTime.set(System.currentTimeMillis() / 1000);
                     // see if the mapping file needs to be reloaded
-                    final String fileName = context.getProperty(MAPPING_FILE).getValue();
+                    final String fileName = context.getProperty(MAPPING_FILE).
+                            getValue();
                     final File file = new File(fileName);
                     if (file.exists() && file.isFile() && file.canRead()) {
                         if (file.lastModified() > lastModified.get()) {
                             lastModified.getAndSet(file.lastModified());
                             try (FileInputStream is = new FileInputStream(file)) {
-                                logger.info("Reloading mapping file: {}", new Object[]{fileName});
+                                logger.
+                                        info("Reloading mapping file: {}", new Object[]{fileName});
 
                                 final Map<String, String> mapping = loadMappingFile(is);
                                 final ConfigurationState newState = new ConfigurationState(
                                         mapping);
                                 configurationStateRef.set(newState);
                             } catch (IOException e) {
-                                logger.error("Error reading mapping file: {}", new Object[]{e.getMessage()});
+                                logger.
+                                        error("Error reading mapping file: {}", new Object[]{e.
+                                            getMessage()});
                             }
                         }
                     } else {
-                        logger.error("Mapping file does not exist or is not readable: {}", new Object[]{fileName});
+                        logger.
+                                error("Mapping file does not exist or is not readable: {}", new Object[]{fileName});
                     }
                 }
             } catch (Exception e) {
-                logger.error("Error loading mapping file: {}", new Object[]{e.getMessage()});
+                logger.error("Error loading mapping file: {}", new Object[]{e.
+                    getMessage()});
             } finally {
                 processorLock.unlock();
             }
@@ -263,7 +298,7 @@ public class ReplaceTextWithMapping extends AbstractProcessor {
      * Loads a file containing mappings.
      *
      * @param is
-     * @return 
+     * @return
      * @throws IOException
      */
     protected Map<String, String> loadMappingFile(InputStream is) throws IOException {
@@ -319,24 +354,34 @@ public class ReplaceTextWithMapping extends AbstractProcessor {
         };
 
         private ReplaceTextCallback(ProcessContext context, FlowFile flowFile, int maxBufferSize) {
-            this.regex = context.getProperty(REGEX).evaluateAttributeExpressions(flowFile, quotedAttributeDecorator).getValue();
+            this.regex = context.getProperty(REGEX).
+                    evaluateAttributeExpressions(flowFile, quotedAttributeDecorator).
+                    getValue();
             this.flowFile = flowFile;
 
-            this.charset = Charset.forName(context.getProperty(CHARACTER_SET).getValue());
+            this.charset = Charset.forName(context.getProperty(CHARACTER_SET).
+                    getValue());
 
-            final String regexValue = context.getProperty(REGEX).evaluateAttributeExpressions().getValue();
-            this.numCapturingGroups = Pattern.compile(regexValue).matcher("").groupCount();
+            final String regexValue = context.getProperty(REGEX).
+                    evaluateAttributeExpressions().
+                    getValue();
+            this.numCapturingGroups = Pattern.compile(regexValue).
+                    matcher("").
+                    groupCount();
 
             this.buffer = new byte[maxBufferSize];
 
-            this.groupToMatch = context.getProperty(MATCHING_GROUP_FOR_LOOKUP_KEY).evaluateAttributeExpressions().asInteger();
+            this.groupToMatch = context.
+                    getProperty(MATCHING_GROUP_FOR_LOOKUP_KEY).
+                    evaluateAttributeExpressions().
+                    asInteger();
         }
 
         @Override
         public void process(final InputStream in, final OutputStream out) throws IOException {
 
-            final Map<String, String> mapping = configurationStateRef.get()
-                    .getMapping();
+            final Map<String, String> mapping = configurationStateRef.get().
+                    getMapping();
 
             StreamUtils.fillBuffer(in, buffer, false);
 
@@ -344,7 +389,8 @@ public class ReplaceTextWithMapping extends AbstractProcessor {
 
             final String contentString = new String(buffer, 0, flowFileSize, charset);
 
-            final Matcher matcher = Pattern.compile(regex).matcher(contentString);
+            final Matcher matcher = Pattern.compile(regex).
+                    matcher(contentString);
 
             matcher.reset();
             boolean result = matcher.find();
@@ -355,26 +401,37 @@ public class ReplaceTextWithMapping extends AbstractProcessor {
                     String rv = mapping.get(matched);
 
                     if (rv == null) {
-                        String replacement = matcher.group().replace("$", "\\$");
+                        String replacement = matcher.group().
+                                replace("$", "\\$");
                         matcher.appendReplacement(sb, replacement);
                     } else {
                         String allRegexMatched = matcher.group(); //this is everything that matched the regex
 
-                        int scaledStart = matcher.start(groupToMatch) - matcher.start();
-                        int scaledEnd = scaledStart + matcher.group(groupToMatch).length();
+                        int scaledStart = matcher.start(groupToMatch) - matcher.
+                                start();
+                        int scaledEnd = scaledStart + matcher.
+                                group(groupToMatch).
+                                length();
 
                         StringBuilder replacementBuilder = new StringBuilder();
 
-                        replacementBuilder.append(allRegexMatched.substring(0, scaledStart).replace("$", "\\$"));
-                        replacementBuilder.append(fillReplacementValueBackReferences(rv, numCapturingGroups));
-                        replacementBuilder.append(allRegexMatched.substring(scaledEnd).replace("$", "\\$"));
-
-                        matcher.appendReplacement(sb, replacementBuilder.toString());
+                        replacementBuilder.append(allRegexMatched.
+                                substring(0, scaledStart).
+                                replace("$", "\\$"));
+                        replacementBuilder.
+                                append(fillReplacementValueBackReferences(rv, numCapturingGroups));
+                        replacementBuilder.append(allRegexMatched.
+                                substring(scaledEnd).
+                                replace("$", "\\$"));
+
+                        matcher.appendReplacement(sb, replacementBuilder.
+                                toString());
                     }
                     result = matcher.find();
                 } while (result);
                 matcher.appendTail(sb);
-                out.write(sb.toString().getBytes(charset));
+                out.write(sb.toString().
+                        getBytes(charset));
                 return;
             }
             out.write(contentString.getBytes(charset));

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java
index 374e6ec..ff231d7 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnAttribute.java
@@ -67,9 +67,9 @@ import org.apache.nifi.processor.util.StandardValidators;
 @SupportsBatching
 @Tags({"attributes", "routing", "Attribute Expression Language", "regexp", "regex", "Regular Expression", "Expression Language"})
 @CapabilityDescription("Routes FlowFiles based on their Attributes using the Attribute Expression Language")
-@DynamicProperty(name="Relationship Name", value="Attribute Expression Language", supportsExpressionLanguage=true, description="Routes FlowFiles whose " + 
-"attributes match the Attribute Expression Language specified in the Dynamic Property Value to the Relationship specified in the Dynamic Property Key")
-@DynamicRelationship(name="Name from Dynamic Property", description="FlowFiles that match the Dynamic Property's Attribute Expression Language")
+@DynamicProperty(name = "Relationship Name", value = "Attribute Expression Language", supportsExpressionLanguage = true, description = "Routes FlowFiles whose "
+        + "attributes match the Attribute Expression Language specified in the Dynamic Property Value to the Relationship specified in the Dynamic Property Key")
+@DynamicRelationship(name = "Name from Dynamic Property", description = "FlowFiles that match the Dynamic Property's Attribute Expression Language")
 public class RouteOnAttribute extends AbstractProcessor {
 
     public static final String ROUTE_ATTRIBUTE_KEY = "RouteOnAttribute.Route";
@@ -95,26 +95,27 @@ public class RouteOnAttribute extends AbstractProcessor {
             "Requires that at least one user-defined expression evaluate to 'true' for hte FlowFile to be considered a match"
     );
 
-    public static final PropertyDescriptor ROUTE_STRATEGY = new PropertyDescriptor.Builder()
-            .name("Routing Strategy")
-            .description("Specifies how to determine which relationship to use when evaluating the Expression Language")
-            .required(true)
-            .allowableValues(ROUTE_PROPERTY_NAME, ROUTE_ALL_MATCH, ROUTE_ANY_MATCHES)
-            .defaultValue(ROUTE_PROPERTY_NAME.getValue())
-            .build();
+    public static final PropertyDescriptor ROUTE_STRATEGY = new PropertyDescriptor.Builder().
+            name("Routing Strategy").
+            description("Specifies how to determine which relationship to use when evaluating the Expression Language").
+            required(true).
+            allowableValues(ROUTE_PROPERTY_NAME, ROUTE_ALL_MATCH, ROUTE_ANY_MATCHES).
+            defaultValue(ROUTE_PROPERTY_NAME.getValue()).
+            build();
 
     public static final Relationship REL_NO_MATCH = new Relationship.Builder()
-            .name("unmatched")
-            .description("FlowFiles that do not match any user-define expression will be routed here")
-            .build();
+            .name("unmatched").
+            description("FlowFiles that do not match any user-define expression will be routed here").
+            build();
     public static final Relationship REL_MATCH = new Relationship.Builder()
-            .name("matched")
-            .description("FlowFiles will be routed to 'match' if one or all Expressions match, depending on the configuration of the Routing Strategy property")
-            .build();
+            .name("matched").
+            description("FlowFiles will be routed to 'match' if one or all Expressions match, depending on the configuration of the Routing Strategy property").
+            build();
 
     private AtomicReference<Set<Relationship>> relationships = new AtomicReference<>();
     private List<PropertyDescriptor> properties;
-    private volatile String configuredRouteStrategy = ROUTE_STRATEGY.getDefaultValue();
+    private volatile String configuredRouteStrategy = ROUTE_STRATEGY.
+            getDefaultValue();
     private volatile Set<String> dynamicPropertyNames = new HashSet<>();
 
     @Override
@@ -141,12 +142,13 @@ public class RouteOnAttribute extends AbstractProcessor {
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
         return new PropertyDescriptor.Builder()
-                .required(false)
-                .name(propertyDescriptorName)
-                .addValidator(StandardValidators.createAttributeExpressionLanguageValidator(ResultType.BOOLEAN, false))
-                .dynamic(true)
-                .expressionLanguageSupported(true)
-                .build();
+                .required(false).
+                name(propertyDescriptorName).
+                addValidator(StandardValidators.
+                        createAttributeExpressionLanguageValidator(ResultType.BOOLEAN, false)).
+                dynamic(true).
+                expressionLanguageSupported(true).
+                build();
     }
 
     @Override
@@ -161,7 +163,8 @@ public class RouteOnAttribute extends AbstractProcessor {
                 newDynamicPropertyNames.add(descriptor.getName());
             }
 
-            this.dynamicPropertyNames = Collections.unmodifiableSet(newDynamicPropertyNames);
+            this.dynamicPropertyNames = Collections.
+                    unmodifiableSet(newDynamicPropertyNames);
         }
 
         // formulate the new set of Relationships
@@ -170,7 +173,8 @@ public class RouteOnAttribute extends AbstractProcessor {
         final String routeStrategy = configuredRouteStrategy;
         if (ROUTE_PROPERTY_NAME.equals(routeStrategy)) {
             for (final String propName : allDynamicProps) {
-                newRelationships.add(new Relationship.Builder().name(propName).build());
+                newRelationships.add(new Relationship.Builder().name(propName).
+                        build());
             }
         } else {
             newRelationships.add(REL_MATCH);
@@ -189,26 +193,32 @@ public class RouteOnAttribute extends AbstractProcessor {
 
         final ProcessorLog logger = getLogger();
         final Map<Relationship, PropertyValue> propertyMap = new HashMap<>();
-        for (final PropertyDescriptor descriptor : context.getProperties().keySet()) {
+        for (final PropertyDescriptor descriptor : context.getProperties().
+                keySet()) {
             if (!descriptor.isDynamic()) {
                 continue;
             }
 
-            propertyMap.put(new Relationship.Builder().name(descriptor.getName()).build(), context.getProperty(descriptor));
+            propertyMap.put(new Relationship.Builder().
+                    name(descriptor.getName()).
+                    build(), context.getProperty(descriptor));
         }
 
         final Set<Relationship> matchingRelationships = new HashSet<>();
-        for (final Map.Entry<Relationship, PropertyValue> entry : propertyMap.entrySet()) {
+        for (final Map.Entry<Relationship, PropertyValue> entry : propertyMap.
+                entrySet()) {
             final PropertyValue value = entry.getValue();
 
-            final boolean matches = value.evaluateAttributeExpressions(flowFile).asBoolean();
+            final boolean matches = value.evaluateAttributeExpressions(flowFile).
+                    asBoolean();
             if (matches) {
                 matchingRelationships.add(entry.getKey());
             }
         }
 
         final Set<Relationship> destinationRelationships = new HashSet<>();
-        switch (context.getProperty(ROUTE_STRATEGY).getValue()) {
+        switch (context.getProperty(ROUTE_STRATEGY).
+                getValue()) {
             case routeAllMatchValue:
                 if (matchingRelationships.size() == propertyMap.size()) {
                     destinationRelationships.add(REL_MATCH);
@@ -231,35 +241,52 @@ public class RouteOnAttribute extends AbstractProcessor {
 
         if (destinationRelationships.isEmpty()) {
             logger.info(this + " routing " + flowFile + " to unmatched");
-            flowFile = session.putAttribute(flowFile, ROUTE_ATTRIBUTE_KEY, REL_NO_MATCH.getName());
-            session.getProvenanceReporter().route(flowFile, REL_NO_MATCH);
+            flowFile = session.
+                    putAttribute(flowFile, ROUTE_ATTRIBUTE_KEY, REL_NO_MATCH.
+                            getName());
+            session.getProvenanceReporter().
+                    route(flowFile, REL_NO_MATCH);
             session.transfer(flowFile, REL_NO_MATCH);
         } else {
-            final Iterator<Relationship> relationshipNameIterator = destinationRelationships.iterator();
-            final Relationship firstRelationship = relationshipNameIterator.next();
+            final Iterator<Relationship> relationshipNameIterator = destinationRelationships.
+                    iterator();
+            final Relationship firstRelationship = relationshipNameIterator.
+                    next();
             final Map<Relationship, FlowFile> transferMap = new HashMap<>();
             final Set<FlowFile> clones = new HashSet<>();
 
             // make all the clones for any remaining relationships
             while (relationshipNameIterator.hasNext()) {
-                final Relationship relationship = relationshipNameIterator.next();
+                final Relationship relationship = relationshipNameIterator.
+                        next();
                 final FlowFile cloneFlowFile = session.clone(flowFile);
                 clones.add(cloneFlowFile);
                 transferMap.put(relationship, cloneFlowFile);
             }
 
             // now transfer any clones generated
-            for (final Map.Entry<Relationship, FlowFile> entry : transferMap.entrySet()) {
-                logger.info(this + " cloned " + flowFile + " into " + entry.getValue() + " and routing clone to relationship " + entry.getKey());
-                FlowFile updatedFlowFile = session.putAttribute(entry.getValue(), ROUTE_ATTRIBUTE_KEY, entry.getKey().getName());
-                session.getProvenanceReporter().route(updatedFlowFile, entry.getKey());
+            for (final Map.Entry<Relationship, FlowFile> entry : transferMap.
+                    entrySet()) {
+                logger.info(this + " cloned " + flowFile + " into " + entry.
+                        getValue() + " and routing clone to relationship " + entry.
+                        getKey());
+                FlowFile updatedFlowFile = session.
+                        putAttribute(entry.getValue(), ROUTE_ATTRIBUTE_KEY, entry.
+                                getKey().
+                                getName());
+                session.getProvenanceReporter().
+                        route(updatedFlowFile, entry.getKey());
                 session.transfer(updatedFlowFile, entry.getKey());
             }
 
             //now transfer the original flow file
-            logger.info("Routing {} to {}", new Object[]{flowFile, firstRelationship});
-            session.getProvenanceReporter().route(flowFile, firstRelationship);
-            flowFile = session.putAttribute(flowFile, ROUTE_ATTRIBUTE_KEY, firstRelationship.getName());
+            logger.
+                    info("Routing {} to {}", new Object[]{flowFile, firstRelationship});
+            session.getProvenanceReporter().
+                    route(flowFile, firstRelationship);
+            flowFile = session.
+                    putAttribute(flowFile, ROUTE_ATTRIBUTE_KEY, firstRelationship.
+                            getName());
             session.transfer(flowFile, firstRelationship);
         }
     }


[08/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
index c3d7bbf..0a076ca 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPTransfer.java
@@ -56,54 +56,54 @@ public class FTPTransfer implements FileTransfer {
     public static final String PROXY_TYPE_HTTP = Proxy.Type.HTTP.name();
     public static final String PROXY_TYPE_SOCKS = Proxy.Type.SOCKS.name();
 
-    public static final PropertyDescriptor CONNECTION_MODE = new PropertyDescriptor.Builder()
-            .name("Connection Mode")
-            .description("The FTP Connection Mode")
-            .allowableValues(CONNECTION_MODE_ACTIVE, CONNECTION_MODE_PASSIVE)
-            .defaultValue(CONNECTION_MODE_PASSIVE)
-            .build();
-    public static final PropertyDescriptor TRANSFER_MODE = new PropertyDescriptor.Builder()
-            .name("Transfer Mode")
-            .description("The FTP Transfer Mode")
-            .allowableValues(TRANSFER_MODE_BINARY, TRANSFER_MODE_ASCII)
-            .defaultValue(TRANSFER_MODE_BINARY)
-            .build();
-    public static final PropertyDescriptor PORT = new PropertyDescriptor.Builder()
-            .name("Port")
-            .description("The port that the remote system is listening on for file transfers")
-            .addValidator(StandardValidators.PORT_VALIDATOR)
-            .required(true)
-            .defaultValue("21")
-            .build();
-    public static final PropertyDescriptor PROXY_TYPE = new PropertyDescriptor.Builder()
-            .name("Proxy Type")
-            .description("Proxy type used for file transfers")
-            .allowableValues(PROXY_TYPE_DIRECT, PROXY_TYPE_HTTP, PROXY_TYPE_SOCKS)
-            .defaultValue(PROXY_TYPE_DIRECT)
-            .build();
-    public static final PropertyDescriptor PROXY_HOST = new PropertyDescriptor.Builder()
-            .name("Proxy Host")
-            .description("The fully qualified hostname or IP address of the proxy server")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor PROXY_PORT = new PropertyDescriptor.Builder()
-            .name("Proxy Port")
-            .description("The port of the proxy server")
-            .addValidator(StandardValidators.PORT_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor HTTP_PROXY_USERNAME = new PropertyDescriptor.Builder()
-            .name("Http Proxy Username")
-            .description("Http Proxy Username")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .required(false)
-            .build();
-    public static final PropertyDescriptor HTTP_PROXY_PASSWORD = new PropertyDescriptor.Builder()
-            .name("Http Proxy Password")
-            .description("Http Proxy Password")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .required(false)
-            .sensitive(true)
-            .build();
+    public static final PropertyDescriptor CONNECTION_MODE = new PropertyDescriptor.Builder().
+            name("Connection Mode").
+            description("The FTP Connection Mode").
+            allowableValues(CONNECTION_MODE_ACTIVE, CONNECTION_MODE_PASSIVE).
+            defaultValue(CONNECTION_MODE_PASSIVE).
+            build();
+    public static final PropertyDescriptor TRANSFER_MODE = new PropertyDescriptor.Builder().
+            name("Transfer Mode").
+            description("The FTP Transfer Mode").
+            allowableValues(TRANSFER_MODE_BINARY, TRANSFER_MODE_ASCII).
+            defaultValue(TRANSFER_MODE_BINARY).
+            build();
+    public static final PropertyDescriptor PORT = new PropertyDescriptor.Builder().
+            name("Port").
+            description("The port that the remote system is listening on for file transfers").
+            addValidator(StandardValidators.PORT_VALIDATOR).
+            required(true).
+            defaultValue("21").
+            build();
+    public static final PropertyDescriptor PROXY_TYPE = new PropertyDescriptor.Builder().
+            name("Proxy Type").
+            description("Proxy type used for file transfers").
+            allowableValues(PROXY_TYPE_DIRECT, PROXY_TYPE_HTTP, PROXY_TYPE_SOCKS).
+            defaultValue(PROXY_TYPE_DIRECT).
+            build();
+    public static final PropertyDescriptor PROXY_HOST = new PropertyDescriptor.Builder().
+            name("Proxy Host").
+            description("The fully qualified hostname or IP address of the proxy server").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
+    public static final PropertyDescriptor PROXY_PORT = new PropertyDescriptor.Builder().
+            name("Proxy Port").
+            description("The port of the proxy server").
+            addValidator(StandardValidators.PORT_VALIDATOR).
+            build();
+    public static final PropertyDescriptor HTTP_PROXY_USERNAME = new PropertyDescriptor.Builder().
+            name("Http Proxy Username").
+            description("Http Proxy Username").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            required(false).
+            build();
+    public static final PropertyDescriptor HTTP_PROXY_PASSWORD = new PropertyDescriptor.Builder().
+            name("Http Proxy Password").
+            description("Http Proxy Password").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            required(false).
+            sensitive(true).
+            build();
 
     private final ProcessorLog logger;
 
@@ -135,7 +135,8 @@ public class FTPTransfer implements FileTransfer {
                 client.disconnect();
             }
         } catch (final Exception ex) {
-            logger.warn("Failed to close FTPClient due to {}", new Object[]{ex.toString()}, ex);
+            logger.warn("Failed to close FTPClient due to {}", new Object[]{ex.
+                toString()}, ex);
         }
         client = null;
     }
@@ -148,9 +149,13 @@ public class FTPTransfer implements FileTransfer {
 
     @Override
     public List<FileInfo> getListing() throws IOException {
-        final String path = ctx.getProperty(FileTransfer.REMOTE_PATH).evaluateAttributeExpressions().getValue();
+        final String path = ctx.getProperty(FileTransfer.REMOTE_PATH).
+                evaluateAttributeExpressions().
+                getValue();
         final int depth = 0;
-        final int maxResults = ctx.getProperty(FileTransfer.REMOTE_POLL_BATCH_SIZE).asInteger();
+        final int maxResults = ctx.
+                getProperty(FileTransfer.REMOTE_POLL_BATCH_SIZE).
+                asInteger();
         return getListing(path, depth, maxResults);
     }
 
@@ -161,27 +166,43 @@ public class FTPTransfer implements FileTransfer {
         }
 
         if (depth >= 100) {
-            logger.warn(this + " had to stop recursively searching directories at a recursive depth of " + depth + " to avoid memory issues");
+            logger.
+                    warn(this + " had to stop recursively searching directories at a recursive depth of " + depth + " to avoid memory issues");
             return listing;
         }
 
-        final boolean ignoreDottedFiles = ctx.getProperty(FileTransfer.IGNORE_DOTTED_FILES).asBoolean();
-        final boolean recurse = ctx.getProperty(FileTransfer.RECURSIVE_SEARCH).asBoolean();
-        final String fileFilterRegex = ctx.getProperty(FileTransfer.FILE_FILTER_REGEX).getValue();
-        final Pattern pattern = (fileFilterRegex == null) ? null : Pattern.compile(fileFilterRegex);
-        final String pathFilterRegex = ctx.getProperty(FileTransfer.PATH_FILTER_REGEX).getValue();
-        final Pattern pathPattern = (!recurse || pathFilterRegex == null) ? null : Pattern.compile(pathFilterRegex);
-        final String remotePath = ctx.getProperty(FileTransfer.REMOTE_PATH).evaluateAttributeExpressions().getValue();
+        final boolean ignoreDottedFiles = ctx.
+                getProperty(FileTransfer.IGNORE_DOTTED_FILES).
+                asBoolean();
+        final boolean recurse = ctx.getProperty(FileTransfer.RECURSIVE_SEARCH).
+                asBoolean();
+        final String fileFilterRegex = ctx.
+                getProperty(FileTransfer.FILE_FILTER_REGEX).
+                getValue();
+        final Pattern pattern = (fileFilterRegex == null) ? null : Pattern.
+                compile(fileFilterRegex);
+        final String pathFilterRegex = ctx.
+                getProperty(FileTransfer.PATH_FILTER_REGEX).
+                getValue();
+        final Pattern pathPattern = (!recurse || pathFilterRegex == null) ? null : Pattern.
+                compile(pathFilterRegex);
+        final String remotePath = ctx.getProperty(FileTransfer.REMOTE_PATH).
+                evaluateAttributeExpressions().
+                getValue();
 
         // check if this directory path matches the PATH_FILTER_REGEX
         boolean pathFilterMatches = true;
         if (pathPattern != null) {
             Path reldir = path == null ? Paths.get(".") : Paths.get(path);
             if (remotePath != null) {
-                reldir = Paths.get(remotePath).relativize(reldir);
+                reldir = Paths.get(remotePath).
+                        relativize(reldir);
             }
-            if (reldir != null && !reldir.toString().isEmpty()) {
-                if (!pathPattern.matcher(reldir.toString().replace("\\", "/")).matches()) {
+            if (reldir != null && !reldir.toString().
+                    isEmpty()) {
+                if (!pathPattern.matcher(reldir.toString().
+                        replace("\\", "/")).
+                        matches()) {
                     pathFilterMatches = false;
                 }
             }
@@ -192,12 +213,14 @@ public class FTPTransfer implements FileTransfer {
         int count = 0;
         final FTPFile[] files;
 
-        if (path == null || path.trim().isEmpty()) {
+        if (path == null || path.trim().
+                isEmpty()) {
             files = client.listFiles(".");
         } else {
             files = client.listFiles(path);
         }
-        if (files.length == 0 && path != null && !path.trim().isEmpty()) {
+        if (files.length == 0 && path != null && !path.trim().
+                isEmpty()) {
             // throw exception if directory doesn't exist
             final boolean cdSuccessful = setWorkingDirectory(path);
             if (!cdSuccessful) {
@@ -216,20 +239,24 @@ public class FTPTransfer implements FileTransfer {
             }
 
             final File newFullPath = new File(path, filename);
-            final String newFullForwardPath = newFullPath.getPath().replace("\\", "/");
+            final String newFullForwardPath = newFullPath.getPath().
+                    replace("\\", "/");
 
             if (recurse && file.isDirectory()) {
                 try {
-                    listing.addAll(getListing(newFullForwardPath, depth + 1, maxResults - count));
+                    listing.
+                            addAll(getListing(newFullForwardPath, depth + 1, maxResults - count));
                 } catch (final IOException e) {
-                    logger.error("Unable to get listing from " + newFullForwardPath + "; skipping this subdirectory");
+                    logger.
+                            error("Unable to get listing from " + newFullForwardPath + "; skipping this subdirectory");
                 }
             }
 
             // if is not a directory and is not a link and it matches
             // FILE_FILTER_REGEX - then let's add it
             if (!file.isDirectory() && !file.isSymbolicLink() && pathFilterMatches) {
-                if (pattern == null || pattern.matcher(filename).matches()) {
+                if (pattern == null || pattern.matcher(filename).
+                        matches()) {
                     listing.add(newFileInfo(file, path));
                     count++;
                 }
@@ -248,27 +275,38 @@ public class FTPTransfer implements FileTransfer {
             return null;
         }
         final File newFullPath = new File(path, file.getName());
-        final String newFullForwardPath = newFullPath.getPath().replace("\\", "/");
+        final String newFullForwardPath = newFullPath.getPath().
+                replace("\\", "/");
         StringBuilder perms = new StringBuilder();
-        perms.append(file.hasPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION) ? "r" : "-");
-        perms.append(file.hasPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION) ? "w" : "-");
-        perms.append(file.hasPermission(FTPFile.USER_ACCESS, FTPFile.EXECUTE_PERMISSION) ? "x" : "-");
-        perms.append(file.hasPermission(FTPFile.GROUP_ACCESS, FTPFile.READ_PERMISSION) ? "r" : "-");
-        perms.append(file.hasPermission(FTPFile.GROUP_ACCESS, FTPFile.WRITE_PERMISSION) ? "w" : "-");
-        perms.append(file.hasPermission(FTPFile.GROUP_ACCESS, FTPFile.EXECUTE_PERMISSION) ? "x" : "-");
-        perms.append(file.hasPermission(FTPFile.WORLD_ACCESS, FTPFile.READ_PERMISSION) ? "r" : "-");
-        perms.append(file.hasPermission(FTPFile.WORLD_ACCESS, FTPFile.WRITE_PERMISSION) ? "w" : "-");
-        perms.append(file.hasPermission(FTPFile.WORLD_ACCESS, FTPFile.EXECUTE_PERMISSION) ? "x" : "-");
+        perms.append(file.
+                hasPermission(FTPFile.USER_ACCESS, FTPFile.READ_PERMISSION) ? "r" : "-");
+        perms.append(file.
+                hasPermission(FTPFile.USER_ACCESS, FTPFile.WRITE_PERMISSION) ? "w" : "-");
+        perms.append(file.
+                hasPermission(FTPFile.USER_ACCESS, FTPFile.EXECUTE_PERMISSION) ? "x" : "-");
+        perms.append(file.
+                hasPermission(FTPFile.GROUP_ACCESS, FTPFile.READ_PERMISSION) ? "r" : "-");
+        perms.append(file.
+                hasPermission(FTPFile.GROUP_ACCESS, FTPFile.WRITE_PERMISSION) ? "w" : "-");
+        perms.append(file.
+                hasPermission(FTPFile.GROUP_ACCESS, FTPFile.EXECUTE_PERMISSION) ? "x" : "-");
+        perms.append(file.
+                hasPermission(FTPFile.WORLD_ACCESS, FTPFile.READ_PERMISSION) ? "r" : "-");
+        perms.append(file.
+                hasPermission(FTPFile.WORLD_ACCESS, FTPFile.WRITE_PERMISSION) ? "w" : "-");
+        perms.append(file.
+                hasPermission(FTPFile.WORLD_ACCESS, FTPFile.EXECUTE_PERMISSION) ? "x" : "-");
 
         FileInfo.Builder builder = new FileInfo.Builder()
-                .filename(file.getName())
-                .fullPathFileName(newFullForwardPath)
-                .directory(file.isDirectory())
-                .size(file.getSize())
-                .lastModifiedTime(file.getTimestamp().getTimeInMillis())
-                .permissions(perms.toString())
-                .owner(file.getUser())
-                .group(file.getGroup());
+                .filename(file.getName()).
+                fullPathFileName(newFullForwardPath).
+                directory(file.isDirectory()).
+                size(file.getSize()).
+                lastModifiedTime(file.getTimestamp().
+                        getTimeInMillis()).
+                permissions(perms.toString()).
+                owner(file.getUser()).
+                group(file.getGroup());
         return builder.build();
     }
 
@@ -305,7 +343,8 @@ public class FTPTransfer implements FileTransfer {
         final FTPFile[] files = client.listFiles(path);
         FTPFile matchingFile = null;
         for (final FTPFile file : files) {
-            if (file.getName().equalsIgnoreCase(remoteFileName)) {
+            if (file.getName().
+                    equalsIgnoreCase(remoteFileName)) {
                 matchingFile = file;
                 break;
             }
@@ -320,16 +359,20 @@ public class FTPTransfer implements FileTransfer {
 
     @Override
     public void ensureDirectoryExists(final FlowFile flowFile, final File directoryName) throws IOException {
-        if (directoryName.getParent() != null && !directoryName.getParentFile().equals(new File(File.separator))) {
+        if (directoryName.getParent() != null && !directoryName.getParentFile().
+                equals(new File(File.separator))) {
             ensureDirectoryExists(flowFile, directoryName.getParentFile());
         }
 
-        final String remoteDirectory = directoryName.getAbsolutePath().replace("\\", "/").replaceAll("^.\\:", "");
+        final String remoteDirectory = directoryName.getAbsolutePath().
+                replace("\\", "/").
+                replaceAll("^.\\:", "");
         final FTPClient client = getClient(flowFile);
         final boolean cdSuccessful = setWorkingDirectory(remoteDirectory);
 
         if (!cdSuccessful) {
-            logger.debug("Remote Directory {} does not exist; creating it", new Object[]{remoteDirectory});
+            logger.
+                    debug("Remote Directory {} does not exist; creating it", new Object[]{remoteDirectory});
             if (client.makeDirectory(remoteDirectory)) {
                 logger.debug("Created {}", new Object[]{remoteDirectory});
             } else {
@@ -367,19 +410,26 @@ public class FTPTransfer implements FileTransfer {
             fullPath = workingDir.endsWith("/") ? workingDir + filename : workingDir + "/" + filename;
         }
 
-        String tempFilename = ctx.getProperty(TEMP_FILENAME).evaluateAttributeExpressions(flowFile).getValue();
+        String tempFilename = ctx.getProperty(TEMP_FILENAME).
+                evaluateAttributeExpressions(flowFile).
+                getValue();
         if (tempFilename == null) {
-            final boolean dotRename = ctx.getProperty(DOT_RENAME).asBoolean();
+            final boolean dotRename = ctx.getProperty(DOT_RENAME).
+                    asBoolean();
             tempFilename = dotRename ? "." + filename : filename;
         }
 
         final boolean storeSuccessful = client.storeFile(tempFilename, content);
         if (!storeSuccessful) {
-            throw new IOException("Failed to store file " + tempFilename + " to " + fullPath + " due to: " + client.getReplyString());
+            throw new IOException("Failed to store file " + tempFilename + " to " + fullPath + " due to: " + client.
+                    getReplyString());
         }
 
-        final String lastModifiedTime = ctx.getProperty(LAST_MODIFIED_TIME).evaluateAttributeExpressions(flowFile).getValue();
-        if (lastModifiedTime != null && !lastModifiedTime.trim().isEmpty()) {
+        final String lastModifiedTime = ctx.getProperty(LAST_MODIFIED_TIME).
+                evaluateAttributeExpressions(flowFile).
+                getValue();
+        if (lastModifiedTime != null && !lastModifiedTime.trim().
+                isEmpty()) {
             try {
                 final DateFormat informat = new SimpleDateFormat(FILE_MODIFY_DATE_ATTR_FORMAT, Locale.US);
                 final Date fileModifyTime = informat.parse(lastModifiedTime);
@@ -387,32 +437,43 @@ public class FTPTransfer implements FileTransfer {
                 final String time = outformat.format(fileModifyTime);
                 if (!client.setModificationTime(tempFilename, time)) {
                     // FTP server probably doesn't support MFMT command
-                    logger.warn("Could not set lastModifiedTime on {} to {}", new Object[]{flowFile, lastModifiedTime});
+                    logger.
+                            warn("Could not set lastModifiedTime on {} to {}", new Object[]{flowFile, lastModifiedTime});
                 }
             } catch (final Exception e) {
-                logger.error("Failed to set lastModifiedTime on {} to {} due to {}", new Object[]{flowFile, lastModifiedTime, e});
+                logger.
+                        error("Failed to set lastModifiedTime on {} to {} due to {}", new Object[]{flowFile, lastModifiedTime, e});
             }
         }
-        final String permissions = ctx.getProperty(PERMISSIONS).evaluateAttributeExpressions(flowFile).getValue();
-        if (permissions != null && !permissions.trim().isEmpty()) {
+        final String permissions = ctx.getProperty(PERMISSIONS).
+                evaluateAttributeExpressions(flowFile).
+                getValue();
+        if (permissions != null && !permissions.trim().
+                isEmpty()) {
             try {
                 int perms = numberPermissions(permissions);
                 if (perms >= 0) {
-                    if (!client.sendSiteCommand("chmod " + Integer.toOctalString(perms) + " " + tempFilename)) {
-                        logger.warn("Could not set permission on {} to {}", new Object[]{flowFile, permissions});
+                    if (!client.sendSiteCommand("chmod " + Integer.
+                            toOctalString(perms) + " " + tempFilename)) {
+                        logger.
+                                warn("Could not set permission on {} to {}", new Object[]{flowFile, permissions});
                     }
                 }
             } catch (final Exception e) {
-                logger.error("Failed to set permission on {} to {} due to {}", new Object[]{flowFile, permissions, e});
+                logger.
+                        error("Failed to set permission on {} to {} due to {}", new Object[]{flowFile, permissions, e});
             }
         }
 
         if (!filename.equals(tempFilename)) {
             try {
-                logger.debug("Renaming remote path from {} to {} for {}", new Object[]{tempFilename, filename, flowFile});
-                final boolean renameSuccessful = client.rename(tempFilename, filename);
+                logger.
+                        debug("Renaming remote path from {} to {} for {}", new Object[]{tempFilename, filename, flowFile});
+                final boolean renameSuccessful = client.
+                        rename(tempFilename, filename);
                 if (!renameSuccessful) {
-                    throw new IOException("Failed to rename temporary file " + tempFilename + " to " + fullPath + " due to: " + client.getReplyString());
+                    throw new IOException("Failed to rename temporary file " + tempFilename + " to " + fullPath + " due to: " + client.
+                            getReplyString());
                 }
             } catch (final IOException e) {
                 try {
@@ -434,7 +495,8 @@ public class FTPTransfer implements FileTransfer {
             setWorkingDirectory(path);
         }
         if (!client.deleteFile(remoteFileName)) {
-            throw new IOException("Failed to remove file " + remoteFileName + " due to " + client.getReplyString());
+            throw new IOException("Failed to remove file " + remoteFileName + " due to " + client.
+                    getReplyString());
         }
     }
 
@@ -443,7 +505,8 @@ public class FTPTransfer implements FileTransfer {
         final FTPClient client = getClient(null);
         final boolean success = client.removeDirectory(remoteDirectoryName);
         if (!success) {
-            throw new IOException("Failed to remove directory " + remoteDirectoryName + " due to " + client.getReplyString());
+            throw new IOException("Failed to remove directory " + remoteDirectoryName + " due to " + client.
+                    getReplyString());
         }
     }
 
@@ -462,11 +525,14 @@ public class FTPTransfer implements FileTransfer {
             if (!cmd.isEmpty()) {
                 int result;
                 result = client.sendCommand(cmd);
-                logger.debug(this + " sent command to the FTP server: " + cmd + " for " + flowFile);
+                logger.
+                        debug(this + " sent command to the FTP server: " + cmd + " for " + flowFile);
 
-                if (FTPReply.isNegativePermanent(result) || FTPReply.isNegativeTransient(result)) {
+                if (FTPReply.isNegativePermanent(result) || FTPReply.
+                        isNegativeTransient(result)) {
                     throw new IOException(this + " negative reply back from FTP server cmd: "
-                            + cmd + " reply:" + result + ": " + client.getReplyString() + " for " + flowFile);
+                            + cmd + " reply:" + result + ": " + client.
+                            getReplyString() + " for " + flowFile);
                 }
             }
         }
@@ -474,7 +540,9 @@ public class FTPTransfer implements FileTransfer {
 
     private FTPClient getClient(final FlowFile flowFile) throws IOException {
         if (client != null) {
-            String desthost = ctx.getProperty(HOSTNAME).evaluateAttributeExpressions(flowFile).getValue();
+            String desthost = ctx.getProperty(HOSTNAME).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue();
             if (remoteHostName.equals(desthost)) {
                 // destination matches so we can keep our current session
                 resetWorkingDirectory();
@@ -485,24 +553,38 @@ public class FTPTransfer implements FileTransfer {
             }
         }
 
-        final Proxy.Type proxyType = Proxy.Type.valueOf(ctx.getProperty(PROXY_TYPE).getValue());
-        final String proxyHost = ctx.getProperty(PROXY_HOST).getValue();
-        final Integer proxyPort = ctx.getProperty(PROXY_PORT).asInteger();
+        final Proxy.Type proxyType = Proxy.Type.valueOf(ctx.
+                getProperty(PROXY_TYPE).
+                getValue());
+        final String proxyHost = ctx.getProperty(PROXY_HOST).
+                getValue();
+        final Integer proxyPort = ctx.getProperty(PROXY_PORT).
+                asInteger();
         FTPClient client;
         if (proxyType == Proxy.Type.HTTP) {
-            client = new FTPHTTPClient(proxyHost, proxyPort, ctx.getProperty(HTTP_PROXY_USERNAME).getValue(), ctx.getProperty(HTTP_PROXY_PASSWORD).getValue());
+            client = new FTPHTTPClient(proxyHost, proxyPort, ctx.
+                    getProperty(HTTP_PROXY_USERNAME).
+                    getValue(), ctx.getProperty(HTTP_PROXY_PASSWORD).
+                    getValue());
         } else {
             client = new FTPClient();
             if (proxyType == Proxy.Type.SOCKS) {
-                client.setSocketFactory(new SocksProxySocketFactory(new Proxy(proxyType, new InetSocketAddress(proxyHost, proxyPort))));
+                client.
+                        setSocketFactory(new SocksProxySocketFactory(new Proxy(proxyType, new InetSocketAddress(proxyHost, proxyPort))));
             }
         }
         this.client = client;
-        client.setDataTimeout(ctx.getProperty(DATA_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue());
-        client.setDefaultTimeout(ctx.getProperty(CONNECTION_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue());
+        client.setDataTimeout(ctx.getProperty(DATA_TIMEOUT).
+                asTimePeriod(TimeUnit.MILLISECONDS).
+                intValue());
+        client.setDefaultTimeout(ctx.getProperty(CONNECTION_TIMEOUT).
+                asTimePeriod(TimeUnit.MILLISECONDS).
+                intValue());
         client.setRemoteVerificationEnabled(false);
 
-        final String remoteHostname = ctx.getProperty(HOSTNAME).evaluateAttributeExpressions(flowFile).getValue();
+        final String remoteHostname = ctx.getProperty(HOSTNAME).
+                evaluateAttributeExpressions(flowFile).
+                getValue();
         this.remoteHostName = remoteHostname;
         InetAddress inetAddress = null;
         try {
@@ -514,26 +596,35 @@ public class FTPTransfer implements FileTransfer {
             inetAddress = InetAddress.getByName(remoteHostname);
         }
 
-        client.connect(inetAddress, ctx.getProperty(PORT).asInteger());
+        client.connect(inetAddress, ctx.getProperty(PORT).
+                asInteger());
         this.closed = false;
-        client.setDataTimeout(ctx.getProperty(DATA_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue());
-        client.setSoTimeout(ctx.getProperty(CONNECTION_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue());
-
-        final String username = ctx.getProperty(USERNAME).getValue();
-        final String password = ctx.getProperty(PASSWORD).getValue();
+        client.setDataTimeout(ctx.getProperty(DATA_TIMEOUT).
+                asTimePeriod(TimeUnit.MILLISECONDS).
+                intValue());
+        client.setSoTimeout(ctx.getProperty(CONNECTION_TIMEOUT).
+                asTimePeriod(TimeUnit.MILLISECONDS).
+                intValue());
+
+        final String username = ctx.getProperty(USERNAME).
+                getValue();
+        final String password = ctx.getProperty(PASSWORD).
+                getValue();
         final boolean loggedIn = client.login(username, password);
         if (!loggedIn) {
             throw new IOException("Could not login for user '" + username + "'");
         }
 
-        final String connectionMode = ctx.getProperty(CONNECTION_MODE).getValue();
+        final String connectionMode = ctx.getProperty(CONNECTION_MODE).
+                getValue();
         if (connectionMode.equalsIgnoreCase(CONNECTION_MODE_ACTIVE)) {
             client.enterLocalActiveMode();
         } else {
             client.enterLocalPassiveMode();
         }
 
-        final String transferMode = ctx.getProperty(TRANSFER_MODE).getValue();
+        final String transferMode = ctx.getProperty(TRANSFER_MODE).
+                getValue();
         final int fileType = (transferMode.equalsIgnoreCase(TRANSFER_MODE_ASCII)) ? FTPClient.ASCII_FILE_TYPE : FTPClient.BINARY_FILE_TYPE;
         if (!client.setFileType(fileType)) {
             throw new IOException("Unable to set transfer mode to type " + transferMode);
@@ -547,7 +638,8 @@ public class FTPTransfer implements FileTransfer {
         int number = -1;
         final Pattern rwxPattern = Pattern.compile("^[rwx-]{9}$");
         final Pattern numPattern = Pattern.compile("\\d+");
-        if (rwxPattern.matcher(perms).matches()) {
+        if (rwxPattern.matcher(perms).
+                matches()) {
             number = 0;
             if (perms.charAt(0) == 'r') {
                 number |= 0x100;
@@ -576,7 +668,8 @@ public class FTPTransfer implements FileTransfer {
             if (perms.charAt(8) == 'x') {
                 number |= 0x1;
             }
-        } else if (numPattern.matcher(perms).matches()) {
+        } else if (numPattern.matcher(perms).
+                matches()) {
             try {
                 number = Integer.parseInt(perms, 8);
             } catch (NumberFormatException ignore) {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPUtils.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPUtils.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPUtils.java
index 03a0d55..fa7722b 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPUtils.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FTPUtils.java
@@ -112,9 +112,11 @@ public class FTPUtils {
         final String transferModeVal = conf.transferMode;
         final String transferMode = (null == transferModeVal) ? BINARY_TRANSFER_MODE : transferModeVal;
         final String networkDataTimeoutVal = conf.dataTimeout;
-        final int networkDataTimeout = (null == networkDataTimeoutVal) ? 0 : Integer.parseInt(networkDataTimeoutVal);
+        final int networkDataTimeout = (null == networkDataTimeoutVal) ? 0 : Integer.
+                parseInt(networkDataTimeoutVal);
         final String networkSocketTimeoutVal = conf.connectionTimeout;
-        final int networkSocketTimeout = (null == networkSocketTimeoutVal) ? 0 : Integer.parseInt(networkSocketTimeoutVal);
+        final int networkSocketTimeout = (null == networkSocketTimeoutVal) ? 0 : Integer.
+                parseInt(networkSocketTimeoutVal);
 
         final FTPClient client = new FTPClient();
         if (networkDataTimeout > 0) {
@@ -180,14 +182,16 @@ public class FTPUtils {
         @Override
         public void protocolCommandSent(final ProtocolCommandEvent event) {
             if (logger.isDebugEnabled()) {
-                logger.debug(processor + " : " + event.getMessage().trim());
+                logger.debug(processor + " : " + event.getMessage().
+                        trim());
             }
         }
 
         @Override
         public void protocolReplyReceived(final ProtocolCommandEvent event) {
             if (logger.isDebugEnabled()) {
-                logger.debug(processor + " : " + event.getMessage().trim());
+                logger.debug(processor + " : " + event.getMessage().
+                        trim());
             }
         }
 
@@ -212,19 +216,26 @@ public class FTPUtils {
     public static void changeWorkingDirectory(final FTPClient client, final String dirPath, final boolean createDirs, final Processor processor) throws IOException {
         final String currentWorkingDirectory = client.printWorkingDirectory();
         final File dir = new File(dirPath);
-        logger.debug(processor + " attempting to change directory from " + currentWorkingDirectory + " to " + dir.getPath());
+        logger.
+                debug(processor + " attempting to change directory from " + currentWorkingDirectory + " to " + dir.
+                        getPath());
         boolean dirExists = false;
-        final String forwardPaths = dir.getPath().replaceAll(Matcher.quoteReplacement("\\"), Matcher.quoteReplacement("/"));
+        final String forwardPaths = dir.getPath().
+                replaceAll(Matcher.quoteReplacement("\\"), Matcher.
+                        quoteReplacement("/"));
         //always use forward paths for long string attempt
         try {
             dirExists = client.changeWorkingDirectory(forwardPaths);
             if (dirExists) {
-                logger.debug(processor + " changed working directory to '" + forwardPaths + "' from '" + currentWorkingDirectory + "'");
+                logger.
+                        debug(processor + " changed working directory to '" + forwardPaths + "' from '" + currentWorkingDirectory + "'");
             } else {
-                logger.debug(processor + " could not change directory to '" + forwardPaths + "' from '" + currentWorkingDirectory + "' so trying the hard way.");
+                logger.
+                        debug(processor + " could not change directory to '" + forwardPaths + "' from '" + currentWorkingDirectory + "' so trying the hard way.");
             }
         } catch (final IOException ioe) {
-            logger.debug(processor + " could not change directory to '" + forwardPaths + "' from '" + currentWorkingDirectory + "' so trying the hard way.");
+            logger.
+                    debug(processor + " could not change directory to '" + forwardPaths + "' from '" + currentWorkingDirectory + "' so trying the hard way.");
         }
         if (!dirExists) {  //coulnd't navigate directly...begin hard work
             final Deque<String> stack = new LinkedList<>();
@@ -245,12 +256,15 @@ public class FTPUtils {
                     exists = false;
                 }
                 if (!exists && createDirs) {
-                    logger.debug(processor + " creating new directory and changing to it " + dirName);
+                    logger.
+                            debug(processor + " creating new directory and changing to it " + dirName);
                     client.makeDirectory(dirName);
-                    if (!(client.makeDirectory(dirName) || client.changeWorkingDirectory(dirName))) {
+                    if (!(client.makeDirectory(dirName) || client.
+                            changeWorkingDirectory(dirName))) {
                         throw new IOException(processor + " could not create and change to newly created directory " + dirName);
                     } else {
-                        logger.debug(processor + " successfully changed working directory to " + dirName);
+                        logger.
+                                debug(processor + " successfully changed working directory to " + dirName);
                     }
                 } else if (!exists) {
                     throw new IOException(processor + " could not change directory to '" + dirName + "' from '" + currentWorkingDirectory + "'");

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileInfo.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileInfo.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileInfo.java
index c57b4e0..6605ff6 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileInfo.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileInfo.java
@@ -67,7 +67,8 @@ public class FileInfo implements Comparable<FileInfo>, Serializable {
     public int hashCode() {
         final int prime = 31;
         int result = 1;
-        result = prime * result + ((fullPathFileName == null) ? 0 : fullPathFileName.hashCode());
+        result = prime * result + ((fullPathFileName == null) ? 0 : fullPathFileName.
+                hashCode());
         return result;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileTransfer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileTransfer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileTransfer.java
index ece0e59..3af00fa 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileTransfer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/FileTransfer.java
@@ -50,125 +50,125 @@ public interface FileTransfer extends Closeable {
 
     void ensureDirectoryExists(FlowFile flowFile, File remoteDirectory) throws IOException;
 
-    public static final PropertyDescriptor HOSTNAME = new PropertyDescriptor.Builder()
-            .name("Hostname")
-            .description("The fully qualified hostname or IP address of the remote system")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .required(true)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor USERNAME = new PropertyDescriptor.Builder()
-            .name("Username")
-            .description("Username")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .required(true)
-            .build();
-    public static final PropertyDescriptor PASSWORD = new PropertyDescriptor.Builder()
-            .name("Password")
-            .description("Password for the user account")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .required(false)
-            .sensitive(true)
-            .build();
-    public static final PropertyDescriptor DATA_TIMEOUT = new PropertyDescriptor.Builder()
-            .name("Data Timeout")
-            .description("Amount of time to wait before timing out while transferring data")
-            .required(true)
-            .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .defaultValue("30 sec")
-            .build();
-    public static final PropertyDescriptor CONNECTION_TIMEOUT = new PropertyDescriptor.Builder()
-            .name("Connection Timeout")
-            .description("Amount of time to wait before timing out while creating a connection")
-            .required(true)
-            .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .defaultValue("30 sec")
-            .build();
-    public static final PropertyDescriptor REMOTE_PATH = new PropertyDescriptor.Builder()
-            .name("Remote Path")
-            .description("The path on the remote system from which to pull or push files")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor CREATE_DIRECTORY = new PropertyDescriptor.Builder()
-            .name("Create Directory")
-            .description("Specifies whether or not the remote directory should be created if it does not exist.")
-            .required(true)
-            .allowableValues("true", "false")
-            .defaultValue("false")
-            .build();
-
-    public static final PropertyDescriptor USE_COMPRESSION = new PropertyDescriptor.Builder()
-            .name("Use Compression")
-            .description("Indicates whether or not ZLIB compression should be used when transferring files")
-            .allowableValues("true", "false")
-            .defaultValue("false")
-            .required(true)
-            .build();
+    public static final PropertyDescriptor HOSTNAME = new PropertyDescriptor.Builder().
+            name("Hostname").
+            description("The fully qualified hostname or IP address of the remote system").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            required(true).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor USERNAME = new PropertyDescriptor.Builder().
+            name("Username").
+            description("Username").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            required(true).
+            build();
+    public static final PropertyDescriptor PASSWORD = new PropertyDescriptor.Builder().
+            name("Password").
+            description("Password for the user account").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            required(false).
+            sensitive(true).
+            build();
+    public static final PropertyDescriptor DATA_TIMEOUT = new PropertyDescriptor.Builder().
+            name("Data Timeout").
+            description("Amount of time to wait before timing out while transferring data").
+            required(true).
+            addValidator(StandardValidators.TIME_PERIOD_VALIDATOR).
+            defaultValue("30 sec").
+            build();
+    public static final PropertyDescriptor CONNECTION_TIMEOUT = new PropertyDescriptor.Builder().
+            name("Connection Timeout").
+            description("Amount of time to wait before timing out while creating a connection").
+            required(true).
+            addValidator(StandardValidators.TIME_PERIOD_VALIDATOR).
+            defaultValue("30 sec").
+            build();
+    public static final PropertyDescriptor REMOTE_PATH = new PropertyDescriptor.Builder().
+            name("Remote Path").
+            description("The path on the remote system from which to pull or push files").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor CREATE_DIRECTORY = new PropertyDescriptor.Builder().
+            name("Create Directory").
+            description("Specifies whether or not the remote directory should be created if it does not exist.").
+            required(true).
+            allowableValues("true", "false").
+            defaultValue("false").
+            build();
+
+    public static final PropertyDescriptor USE_COMPRESSION = new PropertyDescriptor.Builder().
+            name("Use Compression").
+            description("Indicates whether or not ZLIB compression should be used when transferring files").
+            allowableValues("true", "false").
+            defaultValue("false").
+            required(true).
+            build();
 
     // GET-specific properties
-    public static final PropertyDescriptor RECURSIVE_SEARCH = new PropertyDescriptor.Builder()
-            .name("Search Recursively")
-            .description("If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories")
-            .required(true)
-            .defaultValue("false")
-            .allowableValues("true", "false")
-            .build();
-    public static final PropertyDescriptor FILE_FILTER_REGEX = new PropertyDescriptor.Builder()
-            .name("File Filter Regex")
-            .description("Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched")
-            .required(false)
-            .addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor PATH_FILTER_REGEX = new PropertyDescriptor.Builder()
-            .name("Path Filter Regex")
-            .description("When " + RECURSIVE_SEARCH.getName() + " is true, then only subdirectories whose path matches the given Regular Expression will be scanned")
-            .required(false)
-            .addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor MAX_SELECTS = new PropertyDescriptor.Builder()
-            .name("Max Selects")
-            .description("The maximum number of files to pull in a single connection")
-            .defaultValue("100")
-            .required(true)
-            .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor REMOTE_POLL_BATCH_SIZE = new PropertyDescriptor.Builder()
-            .name("Remote Poll Batch Size")
-            .description("The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical.  Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.")
-            .defaultValue("5000")
-            .addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR)
-            .required(true)
-            .build();
-    public static final PropertyDescriptor DELETE_ORIGINAL = new PropertyDescriptor.Builder()
-            .name("Delete Original")
-            .description("Determines whether or not the file is deleted from the remote system after it has been successfully transferred")
-            .defaultValue("true")
-            .allowableValues("true", "false")
-            .required(true)
-            .build();
-    public static final PropertyDescriptor POLLING_INTERVAL = new PropertyDescriptor.Builder()
-            .name("Polling Interval")
-            .description("Determines how long to wait between fetching the listing for new files")
-            .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .required(true)
-            .defaultValue("60 sec")
-            .build();
-    public static final PropertyDescriptor IGNORE_DOTTED_FILES = new PropertyDescriptor.Builder()
-            .name("Ignore Dotted Files")
-            .description("If true, files whose names begin with a dot (\".\") will be ignored")
-            .allowableValues("true", "false")
-            .defaultValue("true")
-            .required(true)
-            .build();
-    public static final PropertyDescriptor USE_NATURAL_ORDERING = new PropertyDescriptor.Builder()
-            .name("Use Natural Ordering")
-            .description("If true, will pull files in the order in which they are naturally listed; otherwise, the order in which the files will be pulled is not defined")
-            .allowableValues("true", "false")
-            .defaultValue("false")
-            .required(true)
-            .build();
+    public static final PropertyDescriptor RECURSIVE_SEARCH = new PropertyDescriptor.Builder().
+            name("Search Recursively").
+            description("If true, will pull files from arbitrarily nested subdirectories; otherwise, will not traverse subdirectories").
+            required(true).
+            defaultValue("false").
+            allowableValues("true", "false").
+            build();
+    public static final PropertyDescriptor FILE_FILTER_REGEX = new PropertyDescriptor.Builder().
+            name("File Filter Regex").
+            description("Provides a Java Regular Expression for filtering Filenames; if a filter is supplied, only files whose names match that Regular Expression will be fetched").
+            required(false).
+            addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR).
+            build();
+    public static final PropertyDescriptor PATH_FILTER_REGEX = new PropertyDescriptor.Builder().
+            name("Path Filter Regex").
+            description("When " + RECURSIVE_SEARCH.getName() + " is true, then only subdirectories whose path matches the given Regular Expression will be scanned").
+            required(false).
+            addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR).
+            build();
+    public static final PropertyDescriptor MAX_SELECTS = new PropertyDescriptor.Builder().
+            name("Max Selects").
+            description("The maximum number of files to pull in a single connection").
+            defaultValue("100").
+            required(true).
+            addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR).
+            build();
+    public static final PropertyDescriptor REMOTE_POLL_BATCH_SIZE = new PropertyDescriptor.Builder().
+            name("Remote Poll Batch Size").
+            description("The value specifies how many file paths to find in a given directory on the remote system when doing a file listing. This value in general should not need to be modified but when polling against a remote system with a tremendous number of files this value can be critical.  Setting this value too high can result very poor performance and setting it too low can cause the flow to be slower than normal.").
+            defaultValue("5000").
+            addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR).
+            required(true).
+            build();
+    public static final PropertyDescriptor DELETE_ORIGINAL = new PropertyDescriptor.Builder().
+            name("Delete Original").
+            description("Determines whether or not the file is deleted from the remote system after it has been successfully transferred").
+            defaultValue("true").
+            allowableValues("true", "false").
+            required(true).
+            build();
+    public static final PropertyDescriptor POLLING_INTERVAL = new PropertyDescriptor.Builder().
+            name("Polling Interval").
+            description("Determines how long to wait between fetching the listing for new files").
+            addValidator(StandardValidators.TIME_PERIOD_VALIDATOR).
+            required(true).
+            defaultValue("60 sec").
+            build();
+    public static final PropertyDescriptor IGNORE_DOTTED_FILES = new PropertyDescriptor.Builder().
+            name("Ignore Dotted Files").
+            description("If true, files whose names begin with a dot (\".\") will be ignored").
+            allowableValues("true", "false").
+            defaultValue("true").
+            required(true).
+            build();
+    public static final PropertyDescriptor USE_NATURAL_ORDERING = new PropertyDescriptor.Builder().
+            name("Use Natural Ordering").
+            description("If true, will pull files in the order in which they are naturally listed; otherwise, the order in which the files will be pulled is not defined").
+            allowableValues("true", "false").
+            defaultValue("false").
+            required(true).
+            build();
 
     // PUT-specific properties
     public static final String FILE_MODIFY_DATE_ATTR_FORMAT = "yyyy-MM-dd'T'HH:mm:ssZ";
@@ -179,66 +179,66 @@ public interface FileTransfer extends Closeable {
     public static final String CONFLICT_RESOLUTION_REJECT = "REJECT";
     public static final String CONFLICT_RESOLUTION_FAIL = "FAIL";
     public static final String CONFLICT_RESOLUTION_NONE = "NONE";
-    public static final PropertyDescriptor CONFLICT_RESOLUTION = new PropertyDescriptor.Builder()
-            .name("Conflict Resolution")
-            .description("Determines how to handle the problem of filename collisions")
-            .required(true)
-            .allowableValues(CONFLICT_RESOLUTION_REPLACE, CONFLICT_RESOLUTION_IGNORE, CONFLICT_RESOLUTION_RENAME, CONFLICT_RESOLUTION_REJECT, CONFLICT_RESOLUTION_FAIL, CONFLICT_RESOLUTION_NONE)
-            .defaultValue(CONFLICT_RESOLUTION_NONE)
-            .build();
-    public static final PropertyDescriptor REJECT_ZERO_BYTE = new PropertyDescriptor.Builder()
-            .name("Reject Zero-Byte Files")
-            .description("Determines whether or not Zero-byte files should be rejected without attempting to transfer")
-            .allowableValues("true", "false")
-            .defaultValue("true")
-            .build();
-    public static final PropertyDescriptor DOT_RENAME = new PropertyDescriptor.Builder()
-            .name("Dot Rename")
-            .description("If true, then the filename of the sent file is prepended with a \".\" and then renamed back to the original once the file is completely sent. Otherwise, there is no rename. This property is ignored if the Temporary Filename property is set.")
-            .allowableValues("true", "false")
-            .defaultValue("true")
-            .build();
-    public static final PropertyDescriptor TEMP_FILENAME = new PropertyDescriptor.Builder()
-            .name("Temporary Filename")
-            .description("If set, the filename of the sent file will be equal to the value specified during the transfer and after successful completion will be renamed to the original filename. If this value is set, the Dot Rename property is ignored.")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .required(false)
-            .build();
-    public static final PropertyDescriptor LAST_MODIFIED_TIME = new PropertyDescriptor.Builder()
-            .name("Last Modified Time")
-            .description("The lastModifiedTime to assign to the file after transferring it. If not set, the lastModifiedTime will not be changed. Format must be yyyy-MM-dd'T'HH:mm:ssZ. You may also use expression language such as ${file.lastModifiedTime}. If the value is invalid, the processor will not be invalid but will fail to change lastModifiedTime of the file.")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor PERMISSIONS = new PropertyDescriptor.Builder()
-            .name("Permissions")
-            .description("The permissions to assign to the file after transferring it. Format must be either UNIX rwxrwxrwx with a - in place of denied permissions (e.g. rw-r--r--) or an octal number (e.g. 644). If not set, the permissions will not be changed. You may also use expression language such as ${file.permissions}. If the value is invalid, the processor will not be invalid but will fail to change permissions of the file.")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor REMOTE_OWNER = new PropertyDescriptor.Builder()
-            .name("Remote Owner")
-            .description("Integer value representing the User ID to set on the file after transferring it. If not set, the owner will not be set. You may also use expression language such as ${file.owner}. If the value is invalid, the processor will not be invalid but will fail to change the owner of the file.")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor REMOTE_GROUP = new PropertyDescriptor.Builder()
-            .name("Remote Group")
-            .description("Integer value representing the Group ID to set on the file after transferring it. If not set, the group will not be set. You may also use expression language such as ${file.group}. If the value is invalid, the processor will not be invalid but will fail to change the group of the file.")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor BATCH_SIZE = new PropertyDescriptor.Builder()
-            .name("Batch Size")
-            .description("The maximum number of FlowFiles to send in a single connection")
-            .required(true)
-            .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
-            .defaultValue("500")
-            .build();
+    public static final PropertyDescriptor CONFLICT_RESOLUTION = new PropertyDescriptor.Builder().
+            name("Conflict Resolution").
+            description("Determines how to handle the problem of filename collisions").
+            required(true).
+            allowableValues(CONFLICT_RESOLUTION_REPLACE, CONFLICT_RESOLUTION_IGNORE, CONFLICT_RESOLUTION_RENAME, CONFLICT_RESOLUTION_REJECT, CONFLICT_RESOLUTION_FAIL, CONFLICT_RESOLUTION_NONE).
+            defaultValue(CONFLICT_RESOLUTION_NONE).
+            build();
+    public static final PropertyDescriptor REJECT_ZERO_BYTE = new PropertyDescriptor.Builder().
+            name("Reject Zero-Byte Files").
+            description("Determines whether or not Zero-byte files should be rejected without attempting to transfer").
+            allowableValues("true", "false").
+            defaultValue("true").
+            build();
+    public static final PropertyDescriptor DOT_RENAME = new PropertyDescriptor.Builder().
+            name("Dot Rename").
+            description("If true, then the filename of the sent file is prepended with a \".\" and then renamed back to the original once the file is completely sent. Otherwise, there is no rename. This property is ignored if the Temporary Filename property is set.").
+            allowableValues("true", "false").
+            defaultValue("true").
+            build();
+    public static final PropertyDescriptor TEMP_FILENAME = new PropertyDescriptor.Builder().
+            name("Temporary Filename").
+            description("If set, the filename of the sent file will be equal to the value specified during the transfer and after successful completion will be renamed to the original filename. If this value is set, the Dot Rename property is ignored.").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            required(false).
+            build();
+    public static final PropertyDescriptor LAST_MODIFIED_TIME = new PropertyDescriptor.Builder().
+            name("Last Modified Time").
+            description("The lastModifiedTime to assign to the file after transferring it. If not set, the lastModifiedTime will not be changed. Format must be yyyy-MM-dd'T'HH:mm:ssZ. You may also use expression language such as ${file.lastModifiedTime}. If the value is invalid, the processor will not be invalid but will fail to change lastModifiedTime of the file.").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor PERMISSIONS = new PropertyDescriptor.Builder().
+            name("Permissions").
+            description("The permissions to assign to the file after transferring it. Format must be either UNIX rwxrwxrwx with a - in place of denied permissions (e.g. rw-r--r--) or an octal number (e.g. 644). If not set, the permissions will not be changed. You may also use expression language such as ${file.permissions}. If the value is invalid, the processor will not be invalid but will fail to change permissions of the file.").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor REMOTE_OWNER = new PropertyDescriptor.Builder().
+            name("Remote Owner").
+            description("Integer value representing the User ID to set on the file after transferring it. If not set, the owner will not be set. You may also use expression language such as ${file.owner}. If the value is invalid, the processor will not be invalid but will fail to change the owner of the file.").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor REMOTE_GROUP = new PropertyDescriptor.Builder().
+            name("Remote Group").
+            description("Integer value representing the Group ID to set on the file after transferring it. If not set, the group will not be set. You may also use expression language such as ${file.group}. If the value is invalid, the processor will not be invalid but will fail to change the group of the file.").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor BATCH_SIZE = new PropertyDescriptor.Builder().
+            name("Batch Size").
+            description("The maximum number of FlowFiles to send in a single connection").
+            required(true).
+            addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR).
+            defaultValue("500").
+            build();
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java
index a1dd8f6..0f50cdf 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsFactory.java
@@ -104,9 +104,12 @@ public class JmsFactory {
 
         final ConnectionFactory connectionFactory = createConnectionFactory(context);
 
-        final String username = context.getProperty(USERNAME).getValue();
-        final String password = context.getProperty(PASSWORD).getValue();
-        final Connection connection = (username == null && password == null) ? connectionFactory.createConnection()
+        final String username = context.getProperty(USERNAME).
+                getValue();
+        final String password = context.getProperty(PASSWORD).
+                getValue();
+        final Connection connection = (username == null && password == null) ? connectionFactory.
+                createConnection()
                 : connectionFactory.createConnection(username, password);
 
         connection.setClientID(clientId);
@@ -116,12 +119,17 @@ public class JmsFactory {
 
     public static Connection createConnection(final String url, final String jmsProvider, final String username, final String password, final int timeoutMillis) throws JMSException {
         final ConnectionFactory connectionFactory = createConnectionFactory(url, timeoutMillis, jmsProvider);
-        return (username == null && password == null) ? connectionFactory.createConnection() : connectionFactory.createConnection(username, password);
+        return (username == null && password == null) ? connectionFactory.
+                createConnection() : connectionFactory.
+                createConnection(username, password);
     }
 
     public static String createClientId(final ProcessContext context) {
-        final String clientIdPrefix = context.getProperty(CLIENT_ID_PREFIX).getValue();
-        return CLIENT_ID_FIXED_PREFIX + (clientIdPrefix == null ? "" : clientIdPrefix) + "-" + UUID.randomUUID().toString();
+        final String clientIdPrefix = context.getProperty(CLIENT_ID_PREFIX).
+                getValue();
+        return CLIENT_ID_FIXED_PREFIX + (clientIdPrefix == null ? "" : clientIdPrefix) + "-" + UUID.
+                randomUUID().
+                toString();
     }
 
     public static boolean clientIdPrefixEquals(final String one, final String two) {
@@ -130,11 +138,14 @@ public class JmsFactory {
         } else if (two == null) {
             return false;
         }
-        int uuidLen = UUID.randomUUID().toString().length();
+        int uuidLen = UUID.randomUUID().
+                toString().
+                length();
         if (one.length() <= uuidLen || two.length() <= uuidLen) {
             return false;
         }
-        return one.substring(0, one.length() - uuidLen).equals(two.substring(0, two.length() - uuidLen));
+        return one.substring(0, one.length() - uuidLen).
+                equals(two.substring(0, two.length() - uuidLen));
     }
 
     public static byte[] createByteArray(final Message message) throws JMSException {
@@ -153,7 +164,8 @@ public class JmsFactory {
     }
 
     private static byte[] getMessageBytes(TextMessage message) throws JMSException {
-        return (message.getText() == null) ? new byte[0] : message.getText().getBytes();
+        return (message.getText() == null) ? new byte[0] : message.getText().
+                getBytes();
     }
 
     private static byte[] getMessageBytes(BytesMessage message) throws JMSException {
@@ -192,7 +204,8 @@ public class JmsFactory {
             String key = (String) elements.nextElement();
             map.put(key, message.getString(key));
         }
-        return map.toString().getBytes();
+        return map.toString().
+                getBytes();
     }
 
     private static byte[] getMessageBytes(ObjectMessage message) throws JMSException {
@@ -211,7 +224,9 @@ public class JmsFactory {
     }
 
     public static Session createSession(final ProcessContext context, final Connection connection, final boolean transacted) throws JMSException {
-        final String configuredAckMode = context.getProperty(ACKNOWLEDGEMENT_MODE).getValue();
+        final String configuredAckMode = context.
+                getProperty(ACKNOWLEDGEMENT_MODE).
+                getValue();
         return createSession(connection, configuredAckMode, transacted);
     }
 
@@ -232,11 +247,14 @@ public class JmsFactory {
         Session jmsSession = null;
         try {
             connection = JmsFactory.createConnection(context);
-            jmsSession = JmsFactory.createSession(context, connection, DEFAULT_IS_TRANSACTED);
+            jmsSession = JmsFactory.
+                    createSession(context, connection, DEFAULT_IS_TRANSACTED);
 
-            final String messageSelector = context.getProperty(MESSAGE_SELECTOR).getValue();
+            final String messageSelector = context.getProperty(MESSAGE_SELECTOR).
+                    getValue();
             final Destination destination = createQueue(context);
-            final MessageConsumer messageConsumer = jmsSession.createConsumer(destination, messageSelector, false);
+            final MessageConsumer messageConsumer = jmsSession.
+                    createConsumer(destination, messageSelector, false);
 
             return new WrappedMessageConsumer(connection, jmsSession, messageConsumer);
         } catch (JMSException e) {
@@ -262,15 +280,20 @@ public class JmsFactory {
         Session jmsSession = null;
         try {
             connection = JmsFactory.createConnection(context, clientId);
-            jmsSession = JmsFactory.createSession(context, connection, DEFAULT_IS_TRANSACTED);
+            jmsSession = JmsFactory.
+                    createSession(context, connection, DEFAULT_IS_TRANSACTED);
 
-            final String messageSelector = context.getProperty(MESSAGE_SELECTOR).getValue();
+            final String messageSelector = context.getProperty(MESSAGE_SELECTOR).
+                    getValue();
             final Topic topic = createTopic(context);
             final MessageConsumer messageConsumer;
-            if (context.getProperty(DURABLE_SUBSCRIPTION).asBoolean()) {
-                messageConsumer = jmsSession.createDurableSubscriber(topic, clientId, messageSelector, false);
+            if (context.getProperty(DURABLE_SUBSCRIPTION).
+                    asBoolean()) {
+                messageConsumer = jmsSession.
+                        createDurableSubscriber(topic, clientId, messageSelector, false);
             } else {
-                messageConsumer = jmsSession.createConsumer(topic, messageSelector, false);
+                messageConsumer = jmsSession.
+                        createConsumer(topic, messageSelector, false);
             }
 
             return new WrappedMessageConsumer(connection, jmsSession, messageConsumer);
@@ -286,7 +309,8 @@ public class JmsFactory {
     }
 
     private static Destination getDestination(final ProcessContext context) throws JMSException {
-        final String destinationType = context.getProperty(DESTINATION_TYPE).getValue();
+        final String destinationType = context.getProperty(DESTINATION_TYPE).
+                getValue();
         switch (destinationType) {
             case DESTINATION_TYPE_TOPIC:
                 return createTopic(context);
@@ -306,10 +330,12 @@ public class JmsFactory {
 
         try {
             connection = JmsFactory.createConnection(context);
-            jmsSession = JmsFactory.createSession(context, connection, transacted);
+            jmsSession = JmsFactory.
+                    createSession(context, connection, transacted);
 
             final Destination destination = getDestination(context);
-            final MessageProducer messageProducer = jmsSession.createProducer(destination);
+            final MessageProducer messageProducer = jmsSession.
+                    createProducer(destination);
 
             return new WrappedMessageProducer(connection, jmsSession, messageProducer);
         } catch (JMSException e) {
@@ -324,11 +350,13 @@ public class JmsFactory {
     }
 
     public static Destination createQueue(final ProcessContext context) {
-        return createQueue(context, context.getProperty(DESTINATION_NAME).getValue());
+        return createQueue(context, context.getProperty(DESTINATION_NAME).
+                getValue());
     }
 
     public static Queue createQueue(final ProcessContext context, final String queueName) {
-        return createQueue(context.getProperty(JMS_PROVIDER).getValue(), queueName);
+        return createQueue(context.getProperty(JMS_PROVIDER).
+                getValue(), queueName);
     }
 
     public static Queue createQueue(final String jmsProvider, final String queueName) {
@@ -340,8 +368,10 @@ public class JmsFactory {
     }
 
     private static Topic createTopic(final ProcessContext context) {
-        final String topicName = context.getProperty(DESTINATION_NAME).getValue();
-        switch (context.getProperty(JMS_PROVIDER).getValue()) {
+        final String topicName = context.getProperty(DESTINATION_NAME).
+                getValue();
+        switch (context.getProperty(JMS_PROVIDER).
+                getValue()) {
             case ACTIVEMQ_PROVIDER:
             default:
                 return new ActiveMQTopic(topicName);
@@ -349,9 +379,13 @@ public class JmsFactory {
     }
 
     private static ConnectionFactory createConnectionFactory(final ProcessContext context) throws JMSException {
-        final String url = context.getProperty(URL).getValue();
-        final int timeoutMillis = context.getProperty(TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue();
-        final String provider = context.getProperty(JMS_PROVIDER).getValue();
+        final String url = context.getProperty(URL).
+                getValue();
+        final int timeoutMillis = context.getProperty(TIMEOUT).
+                asTimePeriod(TimeUnit.MILLISECONDS).
+                intValue();
+        final String provider = context.getProperty(JMS_PROVIDER).
+                getValue();
         return createConnectionFactory(url, timeoutMillis, provider);
     }
 
@@ -378,7 +412,8 @@ public class JmsFactory {
 
             if (value == null) {
                 attributes.put(ATTRIBUTE_PREFIX + propName, "");
-                attributes.put(ATTRIBUTE_PREFIX + propName + ATTRIBUTE_TYPE_SUFFIX, "Unknown");
+                attributes.
+                        put(ATTRIBUTE_PREFIX + propName + ATTRIBUTE_TYPE_SUFFIX, "Unknown");
                 continue;
             }
 
@@ -406,30 +441,42 @@ public class JmsFactory {
                 propType = PROP_TYPE_OBJECT;
             }
 
-            attributes.put(ATTRIBUTE_PREFIX + propName + ATTRIBUTE_TYPE_SUFFIX, propType);
+            attributes.
+                    put(ATTRIBUTE_PREFIX + propName + ATTRIBUTE_TYPE_SUFFIX, propType);
         }
 
         if (message.getJMSCorrelationID() != null) {
-            attributes.put(ATTRIBUTE_PREFIX + JMS_CORRELATION_ID, message.getJMSCorrelationID());
+            attributes.put(ATTRIBUTE_PREFIX + JMS_CORRELATION_ID, message.
+                    getJMSCorrelationID());
         }
         if (message.getJMSDestination() != null) {
-            attributes.put(ATTRIBUTE_PREFIX + JMS_DESTINATION, message.getJMSDestination().toString());
+            attributes.put(ATTRIBUTE_PREFIX + JMS_DESTINATION, message.
+                    getJMSDestination().
+                    toString());
         }
         if (message.getJMSMessageID() != null) {
-            attributes.put(ATTRIBUTE_PREFIX + JMS_MESSAGE_ID, message.getJMSMessageID());
+            attributes.put(ATTRIBUTE_PREFIX + JMS_MESSAGE_ID, message.
+                    getJMSMessageID());
         }
         if (message.getJMSReplyTo() != null) {
-            attributes.put(ATTRIBUTE_PREFIX + JMS_REPLY_TO, message.getJMSReplyTo().toString());
+            attributes.put(ATTRIBUTE_PREFIX + JMS_REPLY_TO, message.
+                    getJMSReplyTo().
+                    toString());
         }
         if (message.getJMSType() != null) {
             attributes.put(ATTRIBUTE_PREFIX + JMS_TYPE, message.getJMSType());
         }
 
-        attributes.put(ATTRIBUTE_PREFIX + JMS_DELIVERY_MODE, String.valueOf(message.getJMSDeliveryMode()));
-        attributes.put(ATTRIBUTE_PREFIX + JMS_EXPIRATION, String.valueOf(message.getJMSExpiration()));
-        attributes.put(ATTRIBUTE_PREFIX + JMS_PRIORITY, String.valueOf(message.getJMSPriority()));
-        attributes.put(ATTRIBUTE_PREFIX + JMS_REDELIVERED, String.valueOf(message.getJMSRedelivered()));
-        attributes.put(ATTRIBUTE_PREFIX + JMS_TIMESTAMP, String.valueOf(message.getJMSTimestamp()));
+        attributes.put(ATTRIBUTE_PREFIX + JMS_DELIVERY_MODE, String.
+                valueOf(message.getJMSDeliveryMode()));
+        attributes.put(ATTRIBUTE_PREFIX + JMS_EXPIRATION, String.
+                valueOf(message.getJMSExpiration()));
+        attributes.put(ATTRIBUTE_PREFIX + JMS_PRIORITY, String.valueOf(message.
+                getJMSPriority()));
+        attributes.put(ATTRIBUTE_PREFIX + JMS_REDELIVERED, String.
+                valueOf(message.getJMSRedelivered()));
+        attributes.put(ATTRIBUTE_PREFIX + JMS_TIMESTAMP, String.valueOf(message.
+                getJMSTimestamp()));
         return attributes;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProcessingSummary.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProcessingSummary.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProcessingSummary.java
index 02a4096..5da67fe 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProcessingSummary.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProcessingSummary.java
@@ -20,64 +20,62 @@ import javax.jms.Message;
 
 import org.apache.nifi.flowfile.FlowFile;
 
-
 /**
- * 	Data structure which allows to collect processing summary data. 
- * 
+ * Data structure which allows to collect processing summary data.
+ *
  */
 public class JmsProcessingSummary {
-	
-	private int			messagesReceived;
-	private long		bytesReceived;
-	private Message 	lastMessageReceived;
-	private int	 		flowFilesCreated;
-	private FlowFile	lastFlowFile;			// helps testing
 
-	public JmsProcessingSummary() {
-		super();
-		this.messagesReceived 	= 0;
-		this.bytesReceived 		= 0;
-		this.lastMessageReceived = null;
-		this.flowFilesCreated 	= 0;
-		this.lastFlowFile 		= null;
-	}
-	
-	public JmsProcessingSummary(long bytesReceived, Message lastMessageReceived, FlowFile lastFlowFile) {
-		super();
-		this.messagesReceived 	= 1;
-		this.bytesReceived 		= bytesReceived;
-		this.lastMessageReceived = lastMessageReceived;
-		this.flowFilesCreated 	= 1;
-		this.lastFlowFile 		= lastFlowFile;
-	}
-	
-	public void add(JmsProcessingSummary jmsProcessingSummary) {
-		this.messagesReceived 	+= jmsProcessingSummary.messagesReceived;
-		this.bytesReceived 		+= jmsProcessingSummary.bytesReceived;
-		this.lastMessageReceived = jmsProcessingSummary.lastMessageReceived;
-		this.flowFilesCreated 	+= jmsProcessingSummary.flowFilesCreated;
-		this.lastFlowFile 		=  jmsProcessingSummary.lastFlowFile;
-	}
+    private int messagesReceived;
+    private long bytesReceived;
+    private Message lastMessageReceived;
+    private int flowFilesCreated;
+    private FlowFile lastFlowFile; // helps testing
 
-	public int getMessagesReceived() {
-		return messagesReceived;
-	}
+    public JmsProcessingSummary() {
+        super();
+        this.messagesReceived = 0;
+        this.bytesReceived = 0;
+        this.lastMessageReceived = null;
+        this.flowFilesCreated = 0;
+        this.lastFlowFile = null;
+    }
 
-	public long getBytesReceived() {
-		return bytesReceived;
-	}
+    public JmsProcessingSummary(long bytesReceived, Message lastMessageReceived, FlowFile lastFlowFile) {
+        super();
+        this.messagesReceived = 1;
+        this.bytesReceived = bytesReceived;
+        this.lastMessageReceived = lastMessageReceived;
+        this.flowFilesCreated = 1;
+        this.lastFlowFile = lastFlowFile;
+    }
 
-	public Message getLastMessageReceived() {
-		return lastMessageReceived;
-	}
+    public void add(JmsProcessingSummary jmsProcessingSummary) {
+        this.messagesReceived += jmsProcessingSummary.messagesReceived;
+        this.bytesReceived += jmsProcessingSummary.bytesReceived;
+        this.lastMessageReceived = jmsProcessingSummary.lastMessageReceived;
+        this.flowFilesCreated += jmsProcessingSummary.flowFilesCreated;
+        this.lastFlowFile = jmsProcessingSummary.lastFlowFile;
+    }
 
-	public int getFlowFilesCreated() {
-		return flowFilesCreated;
-	}
+    public int getMessagesReceived() {
+        return messagesReceived;
+    }
 
-	public FlowFile getLastFlowFile() {
-		return lastFlowFile;
-	}
-	
-}
+    public long getBytesReceived() {
+        return bytesReceived;
+    }
+
+    public Message getLastMessageReceived() {
+        return lastMessageReceived;
+    }
 
+    public int getFlowFilesCreated() {
+        return flowFilesCreated;
+    }
+
+    public FlowFile getLastFlowFile() {
+        return lastFlowFile;
+    }
+
+}


[15/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java
index 7f92213..042e4a6 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateJsonPath.java
@@ -45,7 +45,14 @@ import org.apache.nifi.util.ObjectHolder;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
@@ -64,8 +71,10 @@ import java.util.concurrent.ConcurrentMap;
         + "If Destination is 'flowfile-content' and the JsonPath does not evaluate to a defined path, the FlowFile will be routed to 'unmatched' without having its contents modified. "
         + "If Destination is flowfile-attribute and the expression matches nothing, attributes will be created with "
         + "empty strings as the value, and the FlowFile will always be routed to 'matched.'")
-@DynamicProperty(name = "A FlowFile attribute(if <Destination> is set to 'flowfile-attribute')", value = "A JsonPath expression", description = "If <Destination>='flowfile-attribute' then that FlowFile attribute " +
-        "will be set to any JSON objects that match the JsonPath.  If <Destination>='flowfile-content' then the FlowFile content will be updated to any JSON objects that match the JsonPath.")
+@DynamicProperty(name = "A FlowFile attribute(if <Destination> is set to 'flowfile-attribute')",
+        value = "A JsonPath expression", description = "If <Destination>='flowfile-attribute' then that FlowFile attribute "
+        + "will be set to any JSON objects that match the JsonPath.  If <Destination>='flowfile-content' then the FlowFile "
+        + "content will be updated to any JSON objects that match the JsonPath.")
 public class EvaluateJsonPath extends AbstractJsonPathProcessor {
 
     public static final String DESTINATION_ATTRIBUTE = "flowfile-attribute";
@@ -77,34 +86,47 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor {
 
     public static final String PATH_NOT_FOUND_IGNORE = "ignore";
     public static final String PATH_NOT_FOUND_WARN = "warn";
-    
+
     public static final PropertyDescriptor DESTINATION = new PropertyDescriptor.Builder()
             .name("Destination")
-            .description("Indicates whether the results of the JsonPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one JsonPath may be specified, and the property name is ignored.")
+            .description("Indicates whether the results of the JsonPath evaluation are written to the FlowFile content or a FlowFile attribute; "
+                    + "if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one JsonPath may be specified, "
+                    + "and the property name is ignored.")
             .required(true)
             .allowableValues(DESTINATION_CONTENT, DESTINATION_ATTRIBUTE)
             .defaultValue(DESTINATION_CONTENT)
             .build();
 
     public static final PropertyDescriptor RETURN_TYPE = new PropertyDescriptor.Builder()
-            .name("Return Type")
-            .description("Indicates the desired return type of the JSON Path expressions.  Selecting 'auto-detect' will set the return type to 'json' for a Destination of 'flowfile-content', and 'string' for a Destination of 'flowfile-attribute'.")
+            .name("Return Type").description("Indicates the desired return type of the JSON Path expressions.  Selecting 'auto-detect' will set the return type to 'json' "
+                    + "for a Destination of 'flowfile-content', and 'string' for a Destination of 'flowfile-attribute'.")
             .required(true)
             .allowableValues(RETURN_TYPE_AUTO, RETURN_TYPE_JSON, RETURN_TYPE_SCALAR)
             .defaultValue(RETURN_TYPE_AUTO)
             .build();
-    
+
     public static final PropertyDescriptor PATH_NOT_FOUND = new PropertyDescriptor.Builder()
             .name("Path Not Found Behavior")
-            .description("Indicates how to handle missing JSON path expressions when destination is set to 'flowfile-attribute'. Selecting 'warn' will generate a warning when a JSON path expression is not found.")
+            .description("Indicates how to handle missing JSON path expressions when destination is set to 'flowfile-attribute'. Selecting 'warn' will "
+                    + "generate a warning when a JSON path expression is not found.")
             .required(true)
             .allowableValues(PATH_NOT_FOUND_WARN, PATH_NOT_FOUND_IGNORE)
             .defaultValue(PATH_NOT_FOUND_IGNORE)
             .build();
 
-    public static final Relationship REL_MATCH = new Relationship.Builder().name("matched").description("FlowFiles are routed to this relationship when the JsonPath is successfully evaluated and the FlowFile is modified as a result").build();
-    public static final Relationship REL_NO_MATCH = new Relationship.Builder().name("unmatched").description("FlowFiles are routed to this relationship when the JsonPath does not match the content of the FlowFile and the Destination is set to flowfile-content").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("FlowFiles are routed to this relationship when the JsonPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid JSON").build();
+    public static final Relationship REL_MATCH = new Relationship.Builder()
+            .name("matched")
+            .description("FlowFiles are routed to this relationship when the JsonPath is successfully evaluated and the FlowFile is modified as a result")
+            .build();
+    public static final Relationship REL_NO_MATCH = new Relationship.Builder()
+            .name("unmatched")
+            .description("FlowFiles are routed to this relationship when the JsonPath does not match the content of the FlowFile and the Destination is set to flowfile-content")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("FlowFiles are routed to this relationship when the JsonPath cannot be evaluated against the content of the "
+                    + "FlowFile; for instance, if the FlowFile is not valid JSON")
+            .build();
 
     private Set<Relationship> relationships;
     private List<PropertyDescriptor> properties;
@@ -129,7 +151,8 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor {
 
     @Override
     protected Collection<ValidationResult> customValidate(final ValidationContext context) {
-        final List<ValidationResult> results = new ArrayList<>(super.customValidate(context));
+        final List<ValidationResult> results = new ArrayList<>(super.
+                customValidate(context));
 
         final String destination = context.getProperty(DESTINATION).getValue();
         if (DESTINATION_CONTENT.equals(destination)) {
@@ -142,7 +165,8 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor {
             }
 
             if (jsonPathCount != 1) {
-                results.add(new ValidationResult.Builder().subject("JsonPaths").valid(false).explanation("Exactly one JsonPath must be set if using destination of " + DESTINATION_CONTENT).build());
+                results.add(new ValidationResult.Builder().subject("JsonPaths").valid(false).
+                        explanation("Exactly one JsonPath must be set if using destination of " + DESTINATION_CONTENT).build());
             }
         }
 
@@ -159,13 +183,10 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor {
         return properties;
     }
 
-
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
-        return new PropertyDescriptor.Builder()
-                .name(propertyDescriptorName)
-                .expressionLanguageSupported(false)
-                .addValidator(new JsonPathValidator() {
+        return new PropertyDescriptor.Builder().name(propertyDescriptorName).expressionLanguageSupported(false).
+                addValidator(new JsonPathValidator() {
                     @Override
                     public void cacheComputedValue(String subject, String input, JsonPath computedJsonPath) {
                         cachedJsonPathMap.put(input, computedJsonPath);
@@ -175,10 +196,7 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor {
                     public boolean isStale(String subject, String input) {
                         return cachedJsonPathMap.get(input) == null;
                     }
-                })
-                .required(false)
-                .dynamic(true)
-                .build();
+                }).required(false).dynamic(true).build();
     }
 
     @Override
@@ -193,9 +211,10 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor {
     }
 
     /**
-     * Provides cleanup of the map for any JsonPath values that may have been created.  This will remove common values
-     * shared between multiple instances, but will be regenerated when the next validation cycle occurs as a result of
-     * isStale()
+     * Provides cleanup of the map for any JsonPath values that may have been created. This will remove common values shared between multiple instances, but will be regenerated when the next
+     * validation cycle occurs as a result of isStale()
+     *
+     * @param processContext context
      */
     @OnRemoved
     public void onRemoved(ProcessContext processContext) {
@@ -216,7 +235,8 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor {
 
         final ProcessorLog logger = getLogger();
 
-        String representationOption = processContext.getProperty(NULL_VALUE_DEFAULT_REPRESENTATION).getValue();
+        String representationOption = processContext.
+                getProperty(NULL_VALUE_DEFAULT_REPRESENTATION).getValue();
         final String nullDefaultValue = NULL_REPRESENTATION_MAP.get(representationOption);
 
         /* Build the JsonPath expressions from attributes */
@@ -264,11 +284,12 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor {
                 }
                 resultHolder.set(result);
             } catch (PathNotFoundException e) {
-            	
-            	if (pathNotFound.equals(PATH_NOT_FOUND_WARN)) {
-                    logger.warn("FlowFile {} could not find path {} for attribute key {}.", new Object[]{flowFile.getId(), jsonPathExp.getPath(), jsonPathAttrKey}, e);
-            	}
-            	
+
+                if (pathNotFound.equals(PATH_NOT_FOUND_WARN)) {
+                    logger.warn("FlowFile {} could not find path {} for attribute key {}.",
+                            new Object[]{flowFile.getId(), jsonPathExp.getPath(), jsonPathAttrKey}, e);
+                }
+
                 if (destination.equals(DESTINATION_ATTRIBUTE)) {
                     jsonPathResults.put(jsonPathAttrKey, StringUtils.EMPTY);
                     continue;
@@ -288,12 +309,12 @@ public class EvaluateJsonPath extends AbstractJsonPathProcessor {
                         @Override
                         public void process(final OutputStream out) throws IOException {
                             try (OutputStream outputStream = new BufferedOutputStream(out)) {
-                                outputStream.write(resultRepresentation.getBytes(StandardCharsets.UTF_8));
+                                outputStream.write(resultRepresentation.
+                                        getBytes(StandardCharsets.UTF_8));
                             }
                         }
                     });
-                    processSession.getProvenanceReporter().modifyContent(flowFile,
-                            "Replaced content with result of expression " + jsonPathExp.getPath());
+                    processSession.getProvenanceReporter().modifyContent(flowFile, "Replaced content with result of expression " + jsonPathExp.getPath());
                     break;
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateRegularExpression.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateRegularExpression.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateRegularExpression.java
index 5d8af9f..50f10f3 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateRegularExpression.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateRegularExpression.java
@@ -54,12 +54,11 @@ import org.apache.nifi.annotation.documentation.SeeAlso;
 @SideEffectFree
 @SupportsBatching
 @Tags({"deprecated"})
-@CapabilityDescription(
-        "WARNING: This has been deprecated and will be removed in 0.2.0.  \n\n"
-        + "Use ExtractText instead.")
+@CapabilityDescription("WARNING: This has been deprecated and will be removed in 0.2.0.  \n\n Use ExtractText instead.")
 @SeeAlso(ExtractText.class)
 @Deprecated
-@DynamicProperty(name = "A FlowFile attribute", value = "A regular expression with exactly one capturing group", description = "Will update the specified FlowFile attribute with the group captured by the regular expression")
+@DynamicProperty(name = "A FlowFile attribute", value = "A regular expression with exactly one capturing group",
+        description = "Will update the specified FlowFile attribute with the group captured by the regular expression")
 public class EvaluateRegularExpression extends AbstractProcessor {
 
     public static final PropertyDescriptor CHARACTER_SET = new PropertyDescriptor.Builder()
@@ -120,7 +119,8 @@ public class EvaluateRegularExpression extends AbstractProcessor {
 
     public static final PropertyDescriptor MULTILINE = new PropertyDescriptor.Builder()
             .name("Enable Multiline Mode")
-            .description("Indicates that '^' and '$' should match just after and just before a line terminator or end of sequence, instead of only the begining or end of the entire input.  Can also be specified via the embeded flag (?m).")
+            .description("Indicates that '^' and '$' should match just after and just before a line terminator or end of sequence, instead "
+                    + "of only the begining or end of the entire input.  Can also be specified via the embeded flag (?m).")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
@@ -128,7 +128,8 @@ public class EvaluateRegularExpression extends AbstractProcessor {
 
     public static final PropertyDescriptor UNICODE_CASE = new PropertyDescriptor.Builder()
             .name("Enable Unicode-aware Case Folding")
-            .description("When used with 'Enable Case-insensitive Matching', matches in a manner consistent with the Unicode Standard.  Can also be specified via the embeded flag (?u).")
+            .description("When used with 'Enable Case-insensitive Matching', matches in a manner consistent with the Unicode Standard.  "
+                    + "Can also be specified via the embeded flag (?u).")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
@@ -136,7 +137,8 @@ public class EvaluateRegularExpression extends AbstractProcessor {
 
     public static final PropertyDescriptor UNICODE_CHARACTER_CLASS = new PropertyDescriptor.Builder()
             .name("Enable Unicode Predefined Character Classes")
-            .description("Specifies conformance with the Unicode Technical Standard #18: Unicode Regular Expression Annex C: Compatibility Properties.  Can also be specified via the embeded flag (?U).")
+            .description("Specifies conformance with the Unicode Technical Standard #18: Unicode Regular Expression Annex C: Compatibility "
+                    + "Properties.  Can also be specified via the embeded flag (?U).")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
@@ -152,15 +154,12 @@ public class EvaluateRegularExpression extends AbstractProcessor {
 
     public static final Relationship REL_MATCH = new Relationship.Builder()
             .name("matched")
-            .description(
-                    "FlowFiles are routed to this relationship when the Regular Expression is successfully evaluated and the FlowFile "
-                    + "is modified as a result")
+            .description("FlowFiles are routed to this relationship when the Regular Expression is successfully evaluated and the FlowFile is modified as a result")
             .build();
 
     public static final Relationship REL_NO_MATCH = new Relationship.Builder()
             .name("unmatched")
-            .description(
-                    "FlowFiles are routed to this relationship when no provided Regular Expression matches the content of the FlowFile")
+            .description("FlowFiles are routed to this relationship when no provided Regular Expression matches the content of the FlowFile")
             .build();
 
     private Set<Relationship> relationships;
@@ -201,12 +200,8 @@ public class EvaluateRegularExpression extends AbstractProcessor {
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
         return new PropertyDescriptor.Builder()
-                .name(propertyDescriptorName)
-                .expressionLanguageSupported(false)
-                .addValidator(StandardValidators.createRegexValidator(1, 1, true))
-                .required(false)
-                .dynamic(true)
-                .build();
+                .name(propertyDescriptorName).expressionLanguageSupported(false)
+                .addValidator(StandardValidators.createRegexValidator(1, 1, true)).required(false).dynamic(true).build();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXPath.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXPath.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXPath.java
index 55f55ff..1ea0748 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXPath.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXPath.java
@@ -93,9 +93,9 @@ import org.xml.sax.InputSource;
         + "evaluate to a Node, the FlowFile will be routed to 'unmatched' without having its contents modified. If Destination is "
         + "flowfile-attribute and the expression matches nothing, attributes will be created with empty strings as the value, and the "
         + "FlowFile will always be routed to 'matched'")
-@WritesAttribute(attribute="user-defined", description="This processor adds user-defined attributes if the <Destination> property is set to flowfile-attribute.")
-@DynamicProperty(name="A FlowFile attribute(if <Destination> is set to 'flowfile-attribute'", value="An XPath expression", description="If <Destination>='flowfile-attribute' " + 
-"then the FlowFile attribute is set to the result of the XPath Expression.  If <Destination>='flowfile-content' then the FlowFile content is set to the result of the XPath Expression.")
+@WritesAttribute(attribute = "user-defined", description = "This processor adds user-defined attributes if the <Destination> property is set to flowfile-attribute.")
+@DynamicProperty(name = "A FlowFile attribute(if <Destination> is set to 'flowfile-attribute'", value = "An XPath expression", description = "If <Destination>='flowfile-attribute' "
+        + "then the FlowFile attribute is set to the result of the XPath Expression.  If <Destination>='flowfile-content' then the FlowFile content is set to the result of the XPath Expression.")
 public class EvaluateXPath extends AbstractProcessor {
 
     public static final String DESTINATION_ATTRIBUTE = "flowfile-attribute";
@@ -106,7 +106,9 @@ public class EvaluateXPath extends AbstractProcessor {
 
     public static final PropertyDescriptor DESTINATION = new PropertyDescriptor.Builder()
             .name("Destination")
-            .description("Indicates whether the results of the XPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one XPath may be specified, and the property name is ignored.")
+            .description("Indicates whether the results of the XPath evaluation are written to the FlowFile content or a FlowFile attribute; "
+                    + "if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one XPath may be specified, "
+                    + "and the property name is ignored.")
             .required(true)
             .allowableValues(DESTINATION_CONTENT, DESTINATION_ATTRIBUTE)
             .defaultValue(DESTINATION_CONTENT)
@@ -114,15 +116,29 @@ public class EvaluateXPath extends AbstractProcessor {
 
     public static final PropertyDescriptor RETURN_TYPE = new PropertyDescriptor.Builder()
             .name("Return Type")
-            .description("Indicates the desired return type of the Xpath expressions.  Selecting 'auto-detect' will set the return type to 'nodeset' for a Destination of 'flowfile-content', and 'string' for a Destination of 'flowfile-attribute'.")
+            .description("Indicates the desired return type of the Xpath expressions.  Selecting 'auto-detect' will set the return type to 'nodeset' "
+                    + "for a Destination of 'flowfile-content', and 'string' for a Destination of 'flowfile-attribute'.")
             .required(true)
             .allowableValues(RETURN_TYPE_AUTO, RETURN_TYPE_NODESET, RETURN_TYPE_STRING)
             .defaultValue(RETURN_TYPE_AUTO)
             .build();
 
-    public static final Relationship REL_MATCH = new Relationship.Builder().name("matched").description("FlowFiles are routed to this relationship when the XPath is successfully evaluated and the FlowFile is modified as a result").build();
-    public static final Relationship REL_NO_MATCH = new Relationship.Builder().name("unmatched").description("FlowFiles are routed to this relationship when the XPath does not match the content of the FlowFile and the Destination is set to flowfile-content").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("FlowFiles are routed to this relationship when the XPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid XML, or if the Return Type is 'nodeset' and the XPath evaluates to multiple nodes").build();
+    public static final Relationship REL_MATCH = new Relationship.Builder()
+            .name("matched")
+            .description("FlowFiles are routed to this relationship "
+                    + "when the XPath is successfully evaluated and the FlowFile is modified as a result")
+            .build();
+    public static final Relationship REL_NO_MATCH = new Relationship.Builder()
+            .name("unmatched")
+            .description("FlowFiles are routed to this relationship "
+                    + "when the XPath does not match the content of the FlowFile and the Destination is set to flowfile-content")
+            .build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder()
+            .name("failure")
+            .description("FlowFiles are routed to this relationship "
+                    + "when the XPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid XML, or if the Return "
+                    + "Type is 'nodeset' and the XPath evaluates to multiple nodes")
+            .build();
 
     private Set<Relationship> relationships;
     private List<PropertyDescriptor> properties;
@@ -130,8 +146,7 @@ public class EvaluateXPath extends AbstractProcessor {
     private final AtomicReference<XPathFactory> factoryRef = new AtomicReference<>();
 
     static {
-        System.setProperty("javax.xml.xpath.XPathFactory:" + NamespaceConstant.OBJECT_MODEL_SAXON,
-                "net.sf.saxon.xpath.XPathFactoryImpl");
+        System.setProperty("javax.xml.xpath.XPathFactory:" + NamespaceConstant.OBJECT_MODEL_SAXON, "net.sf.saxon.xpath.XPathFactoryImpl");
     }
 
     @Override
@@ -150,9 +165,11 @@ public class EvaluateXPath extends AbstractProcessor {
 
     @Override
     protected Collection<ValidationResult> customValidate(final ValidationContext context) {
-        final List<ValidationResult> results = new ArrayList<>(super.customValidate(context));
+        final List<ValidationResult> results = new ArrayList<>(super.
+                customValidate(context));
 
-        final String destination = context.getProperty(DESTINATION).getValue();
+        final String destination = context.getProperty(DESTINATION).
+                getValue();
         if (DESTINATION_CONTENT.equals(destination)) {
             int xpathCount = 0;
 
@@ -163,7 +180,8 @@ public class EvaluateXPath extends AbstractProcessor {
             }
 
             if (xpathCount != 1) {
-                results.add(new ValidationResult.Builder().subject("XPaths").valid(false).explanation("Exactly one XPath must be set if using destination of " + DESTINATION_CONTENT).build());
+                results.add(new ValidationResult.Builder().subject("XPaths").valid(false)
+                        .explanation("Exactly one XPath must be set if using destination of " + DESTINATION_CONTENT).build());
             }
         }
 
@@ -188,12 +206,8 @@ public class EvaluateXPath extends AbstractProcessor {
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
         return new PropertyDescriptor.Builder()
-                .name(propertyDescriptorName)
-                .expressionLanguageSupported(false)
-                .addValidator(new XPathValidator())
-                .required(false)
-                .dynamic(true)
-                .build();
+                .name(propertyDescriptorName).expressionLanguageSupported(false)
+                .addValidator(new XPathValidator()).required(false).dynamic(true).build();
     }
 
     @Override
@@ -272,7 +286,8 @@ public class EvaluateXPath extends AbstractProcessor {
             });
 
             if (error.get() != null) {
-                logger.error("unable to evaluate XPath against {} due to {}; routing to 'failure'", new Object[]{flowFile, error.get()});
+                logger.error("unable to evaluate XPath against {} due to {}; routing to 'failure'",
+                        new Object[]{flowFile, error.get()});
                 session.transfer(flowFile, REL_FAILURE);
                 continue;
             }
@@ -287,7 +302,8 @@ public class EvaluateXPath extends AbstractProcessor {
                         continue;
                     }
                 } catch (final XPathExpressionException e) {
-                    logger.error("failed to evaluate XPath for {} for Property {} due to {}; routing to failure", new Object[]{flowFile, entry.getKey(), e});
+                    logger.error("failed to evaluate XPath for {} for Property {} due to {}; routing to failure",
+                            new Object[]{flowFile, entry.getKey(), e});
                     session.transfer(flowFile, REL_FAILURE);
                     continue flowFileLoop;
                 }
@@ -299,8 +315,8 @@ public class EvaluateXPath extends AbstractProcessor {
                         session.transfer(flowFile, REL_NO_MATCH);
                         continue flowFileLoop;
                     } else if (nodeList.size() > 1) {
-                        logger.error("Routing {} to 'failure' because the XPath evaluated to {} XML nodes", new Object[]{
-                            flowFile, nodeList.size()});
+                        logger.error("Routing {} to 'failure' because the XPath evaluated to {} XML nodes",
+                                new Object[]{flowFile, nodeList.size()});
                         session.transfer(flowFile, REL_FAILURE);
                         continue flowFileLoop;
                     }
@@ -312,7 +328,7 @@ public class EvaluateXPath extends AbstractProcessor {
                             doTransform(sourceNode, baos);
                             xpathResults.put(entry.getKey(), baos.toString("UTF-8"));
                         } catch (UnsupportedEncodingException e) {
-                            throw new ProcessException(e); // this REALLY shouldn't happen						
+                            throw new ProcessException(e);
                         } catch (TransformerException e) {
                             error.set(e);
                         }
@@ -340,7 +356,8 @@ public class EvaluateXPath extends AbstractProcessor {
                             @Override
                             public void process(final OutputStream rawOut) throws IOException {
                                 try (final OutputStream out = new BufferedOutputStream(rawOut)) {
-                                    out.write(resultString.getBytes("UTF-8"));
+                                    out.write(resultString.
+                                            getBytes("UTF-8"));
                                 }
                             }
                         });
@@ -352,8 +369,8 @@ public class EvaluateXPath extends AbstractProcessor {
                 if (DESTINATION_ATTRIBUTE.equals(destination)) {
                     flowFile = session.putAllAttributes(flowFile, xpathResults);
                     final Relationship destRel = xpathResults.isEmpty() ? REL_NO_MATCH : REL_MATCH;
-                    logger.info("Successfully evaluated XPaths against {} and found {} matches; routing to {}", new Object[]{flowFile,
-                        xpathResults.size(), destRel.getName()});
+                    logger.info("Successfully evaluated XPaths against {} and found {} matches; routing to {}",
+                            new Object[]{flowFile, xpathResults.size(), destRel.getName()});
                     session.transfer(flowFile, destRel);
                     session.getProvenanceReporter().modifyAttributes(flowFile);
                 } else if (DESTINATION_CONTENT.equals(destination)) {
@@ -362,7 +379,8 @@ public class EvaluateXPath extends AbstractProcessor {
                     session.getProvenanceReporter().modifyContent(flowFile);
                 }
             } else {
-                logger.error("Failed to write XPath result for {} due to {}; routing original to 'failure'", new Object[]{flowFile, error.get()});
+                logger.error("Failed to write XPath result for {} due to {}; routing original to 'failure'",
+                        new Object[]{flowFile, error.get()});
                 session.transfer(flowFile, REL_FAILURE);
             }
         }
@@ -383,29 +401,29 @@ public class EvaluateXPath extends AbstractProcessor {
         transformer.setOutputProperties(props);
 
         final ProcessorLog logger = getLogger();
-        
+
         final ObjectHolder<TransformerException> error = new ObjectHolder<>(null);
         transformer.setErrorListener(new ErrorListener() {
             @Override
             public void warning(final TransformerException exception) throws TransformerException {
-                logger.warn("Encountered warning from XPath Engine: ", new Object[] {exception.toString(), exception});
+                logger.warn("Encountered warning from XPath Engine: ", new Object[]{exception.toString(), exception});
             }
 
             @Override
             public void error(final TransformerException exception) throws TransformerException {
-                logger.error("Encountered error from XPath Engine: ", new Object[] {exception.toString(), exception});
+                logger.error("Encountered error from XPath Engine: ", new Object[]{exception.toString(), exception});
                 error.set(exception);
             }
 
             @Override
             public void fatalError(final TransformerException exception) throws TransformerException {
-                logger.error("Encountered warning from XPath Engine: ", new Object[] {exception.toString(), exception});
+                logger.error("Encountered warning from XPath Engine: ", new Object[]{exception.toString(), exception});
                 error.set(exception);
             }
         });
-        
+
         transformer.transform(sourceNode, new StreamResult(out));
-        if ( error.get() != null ) {
+        if (error.get() != null) {
             throw error.get();
         }
     }
@@ -427,7 +445,8 @@ public class EvaluateXPath extends AbstractProcessor {
 
                 return new ValidationResult.Builder().input(input).subject(subject).valid(error == null).explanation(error).build();
             } catch (final Exception e) {
-                return new ValidationResult.Builder().input(input).subject(subject).valid(false).explanation("Unable to initialize XPath engine due to " + e.toString()).build();
+                return new ValidationResult.Builder().input(input).subject(subject).valid(false)
+                        .explanation("Unable to initialize XPath engine due to " + e.toString()).build();
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java
index ad1a2e4..c6321ad 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/EvaluateXQuery.java
@@ -94,9 +94,9 @@ import org.xml.sax.InputSource;
         + "'matched'. If no provided XQuery returns a result, the FlowFile will be routed to 'unmatched'.  If the "
         + "Destination is 'flowfile-attribute' and the XQueries matche nothing, no attributes will be applied to the "
         + "FlowFile.")
-@WritesAttribute(attribute="user-defined", description="This processor adds user-defined attributes if the <Destination> property is set to flowfile-attribute .")
-@DynamicProperty(name="A FlowFile attribute(if <Destination> is set to 'flowfile-attribute'", value="An XQuery", description="If <Destination>='flowfile-attribute' " + 
-        "then the FlowFile attribute is set to the result of the XQuery.  If <Destination>='flowfile-content' then the FlowFile content is set to the result of the XQuery.")
+@WritesAttribute(attribute = "user-defined", description = "This processor adds user-defined attributes if the <Destination> property is set to flowfile-attribute .")
+@DynamicProperty(name = "A FlowFile attribute(if <Destination> is set to 'flowfile-attribute'", value = "An XQuery", description = "If <Destination>='flowfile-attribute' "
+        + "then the FlowFile attribute is set to the result of the XQuery.  If <Destination>='flowfile-content' then the FlowFile content is set to the result of the XQuery.")
 public class EvaluateXQuery extends AbstractProcessor {
 
     public static final String DESTINATION_ATTRIBUTE = "flowfile-attribute";
@@ -147,22 +147,19 @@ public class EvaluateXQuery extends AbstractProcessor {
 
     public static final Relationship REL_MATCH = new Relationship.Builder()
             .name("matched")
-            .description(
-                    "FlowFiles are routed to this relationship when the XQuery is successfully evaluated and the FlowFile "
+            .description("FlowFiles are routed to this relationship when the XQuery is successfully evaluated and the FlowFile "
                     + "is modified as a result")
             .build();
 
     public static final Relationship REL_NO_MATCH = new Relationship.Builder()
             .name("unmatched")
-            .description(
-                    "FlowFiles are routed to this relationship when the XQuery does not match the content of the FlowFile "
+            .description("FlowFiles are routed to this relationship when the XQuery does not match the content of the FlowFile "
                     + "and the Destination is set to flowfile-content")
             .build();
 
     public static final Relationship REL_FAILURE = new Relationship.Builder()
             .name("failure")
-            .description(
-                    "FlowFiles are routed to this relationship when the XQuery cannot be evaluated against the content of "
+            .description("FlowFiles are routed to this relationship when the XQuery cannot be evaluated against the content of "
                     + "the FlowFile.")
             .build();
 
@@ -187,7 +184,8 @@ public class EvaluateXQuery extends AbstractProcessor {
 
     @Override
     protected Collection<ValidationResult> customValidate(final ValidationContext context) {
-        final List<ValidationResult> results = new ArrayList<>(super.customValidate(context));
+        final List<ValidationResult> results = new ArrayList<>(super.
+                customValidate(context));
 
         final String destination = context.getProperty(DESTINATION).getValue();
         if (DESTINATION_CONTENT.equals(destination)) {
@@ -198,11 +196,8 @@ public class EvaluateXQuery extends AbstractProcessor {
                 }
             }
             if (xQueryCount != 1) {
-                results.add(new ValidationResult.Builder()
-                        .subject("XQueries")
-                        .valid(false)
-                        .explanation("Exactly one XQuery must be set if using destination of " + DESTINATION_CONTENT)
-                        .build());
+                results.add(new ValidationResult.Builder().subject("XQueries").valid(false)
+                        .explanation("Exactly one XQuery must be set if using destination of " + DESTINATION_CONTENT).build());
             }
         }
         return results;
@@ -220,13 +215,8 @@ public class EvaluateXQuery extends AbstractProcessor {
 
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
-        return new PropertyDescriptor.Builder()
-                .name(propertyDescriptorName)
-                .expressionLanguageSupported(false)
-                .addValidator(new XQueryValidator())
-                .required(false)
-                .dynamic(true)
-                .build();
+        return new PropertyDescriptor.Builder().name(propertyDescriptorName).expressionLanguageSupported(false)
+                .addValidator(new XQueryValidator()).required(false).dynamic(true).build();
     }
 
     @Override
@@ -321,7 +311,8 @@ public class EvaluateXQuery extends AbstractProcessor {
                         }
                     } else { // if (DESTINATION_CONTENT.equals(destination)){
                         if (result.size() == 0) {
-                            logger.info("Routing {} to 'unmatched'", new Object[]{flowFile});
+                            logger.
+                                    info("Routing {} to 'unmatched'", new Object[]{flowFile});
                             session.transfer(flowFile, REL_NO_MATCH);
                             continue flowFileLoop;
                         } else if (result.size() == 1) {
@@ -362,8 +353,8 @@ public class EvaluateXQuery extends AbstractProcessor {
                     session.remove(childrenFlowFiles);
                     continue flowFileLoop;
                 } catch (TransformerFactoryConfigurationError | TransformerException | IOException e) {
-                    logger.error("Failed to write XQuery result for {} due to {}; routing original to 'failure'", new Object[]{
-                        flowFile, error.get()});
+                    logger.error("Failed to write XQuery result for {} due to {}; routing original to 'failure'",
+                            new Object[]{flowFile, error.get()});
                     session.transfer(flowFile, REL_FAILURE);
                     session.remove(childrenFlowFiles);
                     continue flowFileLoop;
@@ -392,15 +383,14 @@ public class EvaluateXQuery extends AbstractProcessor {
         } // end flowFileLoop
     }
 
-    private String formatItem(XdmItem item, ProcessContext context) throws TransformerConfigurationException,
-            TransformerFactoryConfigurationError, TransformerException, IOException {
+    private String formatItem(XdmItem item, ProcessContext context) throws TransformerConfigurationException, TransformerFactoryConfigurationError, TransformerException, IOException {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         writeformattedItem(item, context, baos);
         return baos.toString();
     }
 
-    void writeformattedItem(XdmItem item, ProcessContext context, OutputStream out) throws TransformerConfigurationException,
-            TransformerFactoryConfigurationError, TransformerException, IOException {
+    void writeformattedItem(XdmItem item, ProcessContext context, OutputStream out)
+            throws TransformerConfigurationException, TransformerFactoryConfigurationError, TransformerException, IOException {
 
         if (item.isAtomicValue()) {
             out.write(item.getStringValue().getBytes(UTF8));
@@ -448,19 +438,10 @@ public class EvaluateXQuery extends AbstractProcessor {
                 } catch (final Exception e) {
                     error = e.toString();
                 }
-                return new ValidationResult.Builder()
-                        .input(input)
-                        .subject(subject)
-                        .valid(error == null)
-                        .explanation(error)
-                        .build();
+                return new ValidationResult.Builder().input(input).subject(subject).valid(error == null).explanation(error).build();
             } catch (final Exception e) {
-                return new ValidationResult.Builder()
-                        .input(input)
-                        .subject(subject)
-                        .valid(false)
-                        .explanation("Unable to initialize XQuery engine due to " + e.toString())
-                        .build();
+                return new ValidationResult.Builder().input(input).subject(subject).valid(false)
+                        .explanation("Unable to initialize XQuery engine due to " + e.toString()).build();
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java
index 61cf317..7950c9c 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteProcess.java
@@ -62,7 +62,7 @@ import org.apache.nifi.processor.util.StandardValidators;
 @CapabilityDescription("Runs an operating system command specified by the user and writes the output of that command to a FlowFile. If the command is expected "
         + "to be long-running, the Processor can output the partial data on a specified interval. When this option is used, the output is expected to be in textual "
         + "format, as it typically does not make sense to split binary data on arbitrary time-based intervals.")
-@DynamicProperty(name="An environment variable name", value="An environment variable value", description="These environment variables are passed to the process spawned by this Processor")
+@DynamicProperty(name = "An environment variable name", value = "An environment variable value", description = "These environment variables are passed to the process spawned by this Processor")
 public class ExecuteProcess extends AbstractProcessor {
 
     public static final PropertyDescriptor COMMAND = new PropertyDescriptor.Builder()
@@ -163,7 +163,8 @@ public class ExecuteProcess extends AbstractProcessor {
                     if (inQuotes) {
                         sb.append(c);
                     } else {
-                        final String arg = sb.toString().trim();
+                        final String arg = sb.toString().
+                                trim();
                         if (!arg.isEmpty()) {
                             args.add(arg);
                         }
@@ -313,7 +314,7 @@ public class ExecuteProcess extends AbstractProcessor {
         });
 
         // continue to do this loop until both the process has finished and we have finished copying
-        // the output from the process to the FlowFile. Unfortunately, even after calling Process.exitValue(), 
+        // the output from the process to the FlowFile. Unfortunately, even after calling Process.exitValue(),
         // there can be data buffered on the InputStream; so we will wait until the stream is empty as well.
         int flowFileCount = 0;
         while (!finishedCopying.get() || isAlive(process)) {
@@ -376,11 +377,13 @@ public class ExecuteProcess extends AbstractProcessor {
         }
 
         final int exitCode;
-        final long millis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNanos);
+        final long millis = TimeUnit.NANOSECONDS.
+                toMillis(System.nanoTime() - startNanos);
         try {
             exitCode = process.waitFor();
         } catch (final InterruptedException ie) {
-            getLogger().warn("Process was interrupted before finishing");
+            getLogger().
+                    warn("Process was interrupted before finishing");
             return;
         }
 
@@ -409,9 +412,7 @@ public class ExecuteProcess extends AbstractProcessor {
     }
 
     /**
-     * Output stream that is used to wrap another output stream in a way that
-     * the underlying output stream can be swapped out for a different one when
-     * needed
+     * Output stream that is used to wrap another output stream in a way that the underlying output stream can be swapped out for a different one when needed
      */
     private static class ProxyOutputStream extends OutputStream {
 
@@ -428,7 +429,6 @@ public class ExecuteProcess extends AbstractProcessor {
             lock.lock();
             try {
                 logger.trace("Switching delegate from {} to {}", new Object[]{this.delegate, delegate});
-
                 this.delegate = delegate;
             } finally {
                 lock.unlock();
@@ -470,7 +470,6 @@ public class ExecuteProcess extends AbstractProcessor {
                 while (true) {
                     if (delegate != null) {
                         logger.trace("Writing to {}", new Object[]{delegate});
-
                         delegate.write(b, off, len);
                         return;
                     } else {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteStreamCommand.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteStreamCommand.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteStreamCommand.java
index 4e6fd1b..ddeb51a 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteStreamCommand.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExecuteStreamCommand.java
@@ -61,8 +61,7 @@ import org.apache.nifi.stream.io.StreamUtils;
 
 /**
  * <p>
- * This processor executes an external command on the contents of a flow file,
- * and creates a new flow file with the results of the command.
+ * This processor executes an external command on the contents of a flow file, and creates a new flow file with the results of the command.
  * </p>
  * <p>
  * <strong>Properties:</strong>
@@ -70,26 +69,22 @@ import org.apache.nifi.stream.io.StreamUtils;
  * <ul>
  * <li><strong>Command Path</strong>
  * <ul>
- * <li>Specifies the command to be executed; if just the name of an executable
- * is provided, it must be in the user's environment PATH.</li>
+ * <li>Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.</li>
  * <li>Default value: none</li>
  * <li>Supports expression language: true</li>
  * </ul>
  * </li>
  * <li>Command Arguments
  * <ul>
- * <li>The arguments to supply to the executable delimited by the ';' character.
- * Each argument may be an Expression Language statement.</li>
+ * <li>The arguments to supply to the executable delimited by the ';' character. Each argument may be an Expression Language statement.</li>
  * <li>Default value: none</li>
  * <li>Supports expression language: true</li>
  * </ul>
  * </li>
  * <li>Working Directory
  * <ul>
- * <li>The directory to use as the current working directory when executing the
- * command</li>
- * <li>Default value: none (which means whatever NiFi's current working
- * directory is...probably the root of the NiFi installation directory.)</li>
+ * <li>The directory to use as the current working directory when executing the command</li>
+ * <li>Default value: none (which means whatever NiFi's current working directory is...probably the root of the NiFi installation directory.)</li>
  * <li>Supports expression language: true</li>
  * </ul>
  * </li>
@@ -107,8 +102,7 @@ import org.apache.nifi.stream.io.StreamUtils;
  * </li>
  * <li>output-stream
  * <ul>
- * <li>The destination path for the flow file created from the command's
- * output</li>
+ * <li>The destination path for the flow file created from the command's output</li>
  * </ul>
  * </li>
  * </ul>
@@ -120,16 +114,17 @@ import org.apache.nifi.stream.io.StreamUtils;
 @SupportsBatching
 @Tags({"command execution", "command", "stream", "execute"})
 @CapabilityDescription("Executes an external command on the contents of a flow file, and creates a new flow file with the results of the command.")
-@WritesAttributes({ @WritesAttribute(attribute = "execution.command", description = "The name of the command executed to create the new FlowFile"),
-        @WritesAttribute(attribute = "execution.command.args", description = "The semi-colon delimited list of arguments"),
-        @WritesAttribute(attribute = "execution.status", description = "The exit status code returned from executing the command"),
-        @WritesAttribute(attribute = "execution.error", description = "Any error messages returned from executing the command") })
+@WritesAttributes({
+    @WritesAttribute(attribute = "execution.command", description = "The name of the command executed to create the new FlowFile"),
+    @WritesAttribute(attribute = "execution.command.args", description = "The semi-colon delimited list of arguments"),
+    @WritesAttribute(attribute = "execution.status", description = "The exit status code returned from executing the command"),
+    @WritesAttribute(attribute = "execution.error", description = "Any error messages returned from executing the command")})
 public class ExecuteStreamCommand extends AbstractProcessor {
 
-    public static final Relationship ORIGINAL_RELATIONSHIP = new Relationship.Builder()
-            .name("original")
-            .description("FlowFiles that were successfully processed")
-            .build();
+    public static final Relationship ORIGINAL_RELATIONSHIP = new Relationship.Builder().
+            name("original").
+            description("FlowFiles that were successfully processed").
+            build();
     public static final Relationship OUTPUT_STREAM_RELATIONSHIP = new Relationship.Builder()
             .name("output stream")
             .description("The destination path for the flow file created from the command's output")
@@ -143,12 +138,10 @@ public class ExecuteStreamCommand extends AbstractProcessor {
         RELATIONSHIPS = Collections.unmodifiableSet(rels);
     }
 
-    private static final Validator ATTRIBUTE_EXPRESSION_LANGUAGE_VALIDATOR = StandardValidators.createAttributeExpressionLanguageValidator(
-            ResultType.STRING, true);
-    static final PropertyDescriptor EXECUTION_COMMAND = new PropertyDescriptor.Builder()
-            .name("Command Path")
-            .description(
-                    "Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.")
+    private static final Validator ATTRIBUTE_EXPRESSION_LANGUAGE_VALIDATOR = StandardValidators.createAttributeExpressionLanguageValidator(ResultType.STRING, true);
+    static final PropertyDescriptor EXECUTION_COMMAND = new PropertyDescriptor.Builder().
+            name("Command Path")
+            .description("Specifies the command to be executed; if just the name of an executable is provided, it must be in the user's environment PATH.")
             .expressionLanguageSupported(true)
             .addValidator(ATTRIBUTE_EXPRESSION_LANGUAGE_VALIDATOR)
             .required(true)
@@ -157,19 +150,16 @@ public class ExecuteStreamCommand extends AbstractProcessor {
     static final PropertyDescriptor EXECUTION_ARGUMENTS = new PropertyDescriptor.Builder()
             .name("Command Arguments")
             .description("The arguments to supply to the executable delimited by the ';' character.")
-            .expressionLanguageSupported(true)
-            .addValidator(new Validator() {
+            .expressionLanguageSupported(true).addValidator(new Validator() {
 
                 @Override
                 public ValidationResult validate(String subject, String input, ValidationContext context) {
                     ValidationResult result = new ValidationResult.Builder()
-                    .subject(subject)
-                    .valid(true)
-                    .input(input)
-                    .build();
+                    .subject(subject).valid(true).input(input).build();
                     String[] args = input.split(";");
                     for (String arg : args) {
-                        ValidationResult valResult = ATTRIBUTE_EXPRESSION_LANGUAGE_VALIDATOR.validate(subject, arg, context);
+                        ValidationResult valResult = ATTRIBUTE_EXPRESSION_LANGUAGE_VALIDATOR.
+                        validate(subject, arg, context);
                         if (!valResult.isValid()) {
                             result = valResult;
                             break;
@@ -177,8 +167,7 @@ public class ExecuteStreamCommand extends AbstractProcessor {
                     }
                     return result;
                 }
-            })
-            .build();
+            }).build();
 
     static final PropertyDescriptor WORKING_DIR = new PropertyDescriptor.Builder()
             .name("Working Directory")
@@ -240,8 +229,7 @@ public class ExecuteStreamCommand extends AbstractProcessor {
         if (!StringUtils.isBlank(workingDir)) {
             dir = new File(workingDir);
             if (!dir.exists() && !dir.mkdirs()) {
-                logger.warn("Failed to create working directory {}, using current working directory {}",
-                        new Object[]{workingDir, System.getProperty("user.dir")});
+                logger.warn("Failed to create working directory {}, using current working directory {}", new Object[]{workingDir, System.getProperty("user.dir")});
             }
         }
         builder.command(args);
@@ -267,7 +255,8 @@ public class ExecuteStreamCommand extends AbstractProcessor {
             session.read(flowFile, callback);
             outputStreamFlowFile = callback.outputStreamFlowFile;
             exitCode = callback.exitCode;
-            logger.debug("Execution complete for command: {}.  Exited with code: {}", new Object[]{executeCommand, exitCode});
+            logger.
+                    debug("Execution complete for command: {}.  Exited with code: {}", new Object[]{executeCommand, exitCode});
 
             Map<String, String> attributes = new HashMap<>();
 
@@ -317,8 +306,7 @@ public class ExecuteStreamCommand extends AbstractProcessor {
         FlowFile outputStreamFlowFile;
         int exitCode;
 
-        public StdInWriterCallback(OutputStream stdInWritable, InputStream stdOutReadable, ProcessorLog logger, ProcessSession session,
-                FlowFile outputStreamFlowFile, Process process) {
+        public StdInWriterCallback(OutputStream stdInWritable, InputStream stdOutReadable, ProcessorLog logger, ProcessSession session, FlowFile outputStreamFlowFile, Process process) {
             this.stdInWritable = stdInWritable;
             this.stdOutReadable = stdOutReadable;
             this.logger = logger;
@@ -340,7 +328,8 @@ public class ExecuteStreamCommand extends AbstractProcessor {
                             try {
                                 StreamUtils.copy(incomingFlowFileIS, stdInWritable);
                             } catch (IOException e) {
-                                logger.error("Failed to write flow file to stdIn due to {}", new Object[]{e}, e);
+                                logger.
+                                        error("Failed to write flow file to stdIn due to {}", new Object[]{e}, e);
                             }
                             // MUST close the output stream to the stdIn so that whatever is reading knows
                             // there is no more data

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java
index caf1cda..d413b1a 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ExtractText.java
@@ -67,8 +67,8 @@ import org.apache.nifi.annotation.lifecycle.OnScheduled;
         + "If any provided Regular Expression matches, the FlowFile(s) will be routed to 'matched'. "
         + "If no provided Regular Expression matches, the FlowFile will be routed to 'unmatched' "
         + "and no attributes will be applied to the FlowFile.")
-@DynamicProperty(name="A FlowFile attribute", value="A Regular Expression with one or more capturing group", 
-    description="The first capture group, if any found, will be placed into that attribute name."
+@DynamicProperty(name = "A FlowFile attribute", value = "A Regular Expression with one or more capturing group",
+        description = "The first capture group, if any found, will be placed into that attribute name."
         + "But all catpure groups, including the matching string sequence itself will also be "
         + "provided at that attribute name with an index value provided.")
 public class ExtractText extends AbstractProcessor {
@@ -140,7 +140,8 @@ public class ExtractText extends AbstractProcessor {
 
     public static final PropertyDescriptor MULTILINE = new PropertyDescriptor.Builder()
             .name("Enable Multiline Mode")
-            .description("Indicates that '^' and '$' should match just after and just before a line terminator or end of sequence, instead of only the begining or end of the entire input.  Can also be specified via the embeded flag (?m).")
+            .description("Indicates that '^' and '$' should match just after and just before a line terminator or end of sequence, instead of "
+                    + "only the begining or end of the entire input.  Can also be specified via the embeded flag (?m).")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
@@ -148,7 +149,8 @@ public class ExtractText extends AbstractProcessor {
 
     public static final PropertyDescriptor UNICODE_CASE = new PropertyDescriptor.Builder()
             .name("Enable Unicode-aware Case Folding")
-            .description("When used with 'Enable Case-insensitive Matching', matches in a manner consistent with the Unicode Standard.  Can also be specified via the embeded flag (?u).")
+            .description("When used with 'Enable Case-insensitive Matching', matches in a manner consistent with the Unicode Standard.  Can also "
+                    + "be specified via the embeded flag (?u).")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
@@ -156,7 +158,8 @@ public class ExtractText extends AbstractProcessor {
 
     public static final PropertyDescriptor UNICODE_CHARACTER_CLASS = new PropertyDescriptor.Builder()
             .name("Enable Unicode Predefined Character Classes")
-            .description("Specifies conformance with the Unicode Technical Standard #18: Unicode Regular Expression Annex C: Compatibility Properties.  Can also be specified via the embeded flag (?U).")
+            .description("Specifies conformance with the Unicode Technical Standard #18: Unicode Regular Expression Annex C: Compatibility "
+                    + "Properties.  Can also be specified via the embeded flag (?U).")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
@@ -164,7 +167,8 @@ public class ExtractText extends AbstractProcessor {
 
     public static final PropertyDescriptor UNIX_LINES = new PropertyDescriptor.Builder()
             .name("Enable Unix Lines Mode")
-            .description("Indicates that only the '\n' line terminator is recognized int the behavior of '.', '^', and '$'.  Can also be specified via the embeded flag (?d).")
+            .description("Indicates that only the '\n' line terminator is recognized int the behavior of '.', '^', and '$'.  Can also be specified "
+                    + "via the embeded flag (?d).")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
@@ -172,15 +176,12 @@ public class ExtractText extends AbstractProcessor {
 
     public static final Relationship REL_MATCH = new Relationship.Builder()
             .name("matched")
-            .description(
-                    "FlowFiles are routed to this relationship when the Regular Expression is successfully evaluated and the FlowFile "
-                    + "is modified as a result")
+            .description("FlowFiles are routed to this relationship when the Regular Expression is successfully evaluated and the FlowFile is modified as a result")
             .build();
 
     public static final Relationship REL_NO_MATCH = new Relationship.Builder()
             .name("unmatched")
-            .description(
-                    "FlowFiles are routed to this relationship when no provided Regular Expression matches the content of the FlowFile")
+            .description("FlowFiles are routed to this relationship when no provided Regular Expression matches the content of the FlowFile")
             .build();
 
     private Set<Relationship> relationships;
@@ -271,7 +272,8 @@ public class ExtractText extends AbstractProcessor {
         final Map<String, Pattern> patternMap = compiledPattersMapRef.get();
         for (final Map.Entry<String, Pattern> entry : patternMap.entrySet()) {
 
-            final Matcher matcher = entry.getValue().matcher(contentString);
+            final Matcher matcher = entry.getValue().
+                    matcher(contentString);
 
             if (matcher.find()) {
                 final String baseKey = entry.getKey();

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java
index 0ae4747..ebcca86 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java
@@ -73,13 +73,16 @@ public class GenerateFlowFile extends AbstractProcessor {
             .build();
     public static final PropertyDescriptor UNIQUE_FLOWFILES = new PropertyDescriptor.Builder()
             .name("Unique FlowFiles")
-            .description("If true, each FlowFile that is generated will be unique. If false, a random value will be generated and all FlowFiles will get the same content but this offers much higher throughput")
+            .description("If true, each FlowFile that is generated will be unique. If false, a random value will be generated and all FlowFiles "
+                    + "will get the same content but this offers much higher throughput")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
             .build();
 
-    public static final Relationship SUCCESS = new Relationship.Builder().name("success").build();
+    public static final Relationship SUCCESS = new Relationship.Builder()
+            .name("success")
+            .build();
 
     private List<PropertyDescriptor> descriptors;
     private Set<Relationship> relationships;
@@ -146,7 +149,8 @@ public class GenerateFlowFile extends AbstractProcessor {
             data = this.data.get();
         }
 
-        for (int i = 0; i < context.getProperty(BATCH_SIZE).asInteger(); i++) {
+        for (int i = 0; i < context.getProperty(BATCH_SIZE).
+                asInteger(); i++) {
             FlowFile flowFile = session.create();
             if (data.length > 0) {
                 flowFile = session.write(flowFile, new OutputStreamCallback() {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java
index efce8fd..ac02b9e 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFTP.java
@@ -35,14 +35,20 @@ import org.apache.nifi.processors.standard.util.FileTransfer;
 @SideEffectFree
 @Tags({"FTP", "get", "retrieve", "files", "fetch", "remote", "ingest", "source", "input"})
 @CapabilityDescription("Fetches files from an FTP Server and creates FlowFiles from them")
-@WritesAttributes({ @WritesAttribute(attribute = "filename", description = "The filename is set to the name of the file on the remote server"),
-    @WritesAttribute(attribute = "path", description = "The path is set to the path of the file's directory on the remote server. For example, if the <Remote Path> property is set to /tmp, files picked up from /tmp will have the path attribute set to /tmp. If the <Search Recursively> property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to /tmp/abc/1/2/3"),
+@WritesAttributes({
+    @WritesAttribute(attribute = "filename", description = "The filename is set to the name of the file on the remote server"),
+    @WritesAttribute(attribute = "path", description = "The path is set to the path of the file's directory on the remote server. "
+            + "For example, if the <Remote Path> property is set to /tmp, files picked up from /tmp will have the path attribute set "
+            + "to /tmp. If the <Search Recursively> property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path "
+            + "attribute will be set to /tmp/abc/1/2/3"),
     @WritesAttribute(attribute = "file.lastModifiedTime", description = "The date and time that the source file was last modified"),
-    @WritesAttribute(attribute = "file.lastAccessTime", description = "The date and time that the file was last accessed. May not work on all file systems"),
+    @WritesAttribute(attribute = "file.lastAccessTime", description = "The date and time that the file was last accessed. May not work on "
+            + "all file systems"),
     @WritesAttribute(attribute = "file.owner", description = "The numeric owner id of the source file"),
     @WritesAttribute(attribute = "file.group", description = "The numeric group id of the source file"),
     @WritesAttribute(attribute = "file.permissions", description = "The read/write/execute permissions of the source file"),
-    @WritesAttribute(attribute = "absolute.path", description = "The full/absolute path from where a file was picked up. The current 'path' attribute is still populated, but may be a relative path")})
+    @WritesAttribute(attribute = "absolute.path", description = "The full/absolute path from where a file was picked up. The current 'path' "
+            + "attribute is still populated, but may be a relative path")})
 @SeeAlso(PutFTP.class)
 public class GetFTP extends GetFileTransfer {
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFile.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFile.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFile.java
index f794095..bc2fac2 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFile.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFile.java
@@ -72,15 +72,22 @@ import org.apache.nifi.processor.util.StandardValidators;
 @TriggerWhenEmpty
 @Tags({"local", "files", "filesystem", "ingest", "ingress", "get", "source", "input"})
 @CapabilityDescription("Creates FlowFiles from files in a directory.  NiFi will ignore files it doesn't have at least read permissions for.")
-@WritesAttributes({ @WritesAttribute(attribute = "filename", description = "The filename is set to the name of the file on disk"),
-    @WritesAttribute(attribute = "path", description = "The path is set to the relative path of the file's directory on disk. For example, if the <Input Directory> property is set to /tmp, files picked up from /tmp will have the path attribute set to ./. If the <Recurse Subdirectories> property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will be set to abc/1/2/3"),
+@WritesAttributes({
+    @WritesAttribute(attribute = "filename", description = "The filename is set to the name of the file on disk"),
+    @WritesAttribute(attribute = "path", description = "The path is set to the relative path of the file's directory on disk. For example, "
+            + "if the <Input Directory> property is set to /tmp, files picked up from /tmp will have the path attribute set to ./. If "
+            + "the <Recurse Subdirectories> property is set to true and a file is picked up from /tmp/abc/1/2/3, then the path attribute will "
+            + "be set to abc/1/2/3"),
     @WritesAttribute(attribute = "file.creationTime", description = "The date and time that the file was created. May not work on all file systems"),
-    @WritesAttribute(attribute = "file.lastModifiedTime", description = "The date and time that the file was last modified. May not work on all file systems"),
-    @WritesAttribute(attribute = "file.lastAccessTime", description = "The date and time that the file was last accessed. May not work on all file systems"),
+    @WritesAttribute(attribute = "file.lastModifiedTime", description = "The date and time that the file was last modified. May not work on all "
+            + "file systems"),
+    @WritesAttribute(attribute = "file.lastAccessTime", description = "The date and time that the file was last accessed. May not work on all "
+            + "file systems"),
     @WritesAttribute(attribute = "file.owner", description = "The owner of the file. May not work on all file systems"),
     @WritesAttribute(attribute = "file.group", description = "The group owner of the file. May not work on all file systems"),
     @WritesAttribute(attribute = "file.permissions", description = "The read/write/execute permissions of the file. May not work on all file systems"),
-    @WritesAttribute(attribute = "absolute.path", description = "The full/absolute path from where a file was picked up. The current 'path' attribute is still populated, but may be a relative path")})
+    @WritesAttribute(attribute = "absolute.path", description = "The full/absolute path from where a file was picked up. The current 'path' "
+            + "attribute is still populated, but may be a relative path")})
 @SeeAlso(PutFile.class)
 public class GetFile extends AbstractProcessor {
 
@@ -271,12 +278,12 @@ public class GetFile extends AbstractProcessor {
                     }
                 }
                 //Verify that we have at least read permissions on the file we're considering grabbing
-                if(!Files.isReadable(file.toPath())){
+                if (!Files.isReadable(file.toPath())) {
                     return false;
                 }
-                
+
                 //Verify that if we're not keeping original that we have write permissions on the directory the file is in
-                if(keepOriginal == false && !Files.isWritable(file.toPath().getParent())){
+                if (keepOriginal == false && !Files.isWritable(file.toPath().getParent())) {
                     return false;
                 }
                 return filePattern.matcher(file.getName()).matches();
@@ -337,7 +344,8 @@ public class GetFile extends AbstractProcessor {
             if (store.supportsFileAttributeView("posix")) {
                 try {
                     PosixFileAttributeView view = Files.getFileAttributeView(file, PosixFileAttributeView.class);
-                    attributes.put(FILE_PERMISSIONS_ATTRIBUTE, PosixFilePermissions.toString(view.readAttributes().permissions()));
+                    attributes.
+                            put(FILE_PERMISSIONS_ATTRIBUTE, PosixFilePermissions.toString(view.readAttributes().permissions()));
                     attributes.put(FILE_GROUP_ATTRIBUTE, view.readAttributes().group().getName());
                 } catch (Exception ignore) {
                 } // allow other attributes if these fail
@@ -359,8 +367,7 @@ public class GetFile extends AbstractProcessor {
             final long pollingMillis = context.getProperty(POLLING_INTERVAL).asTimePeriod(TimeUnit.MILLISECONDS);
             if ((queueLastUpdated.get() < System.currentTimeMillis() - pollingMillis) && listingLock.tryLock()) {
                 try {
-                    final Set<File> listing = performListing(directory, fileFilterRef.get(),
-                            context.getProperty(RECURSE).asBoolean().booleanValue());
+                    final Set<File> listing = performListing(directory, fileFilterRef.get(), context.getProperty(RECURSE).asBoolean().booleanValue());
 
                     queueLock.lock();
                     try {
@@ -418,7 +425,8 @@ public class GetFile extends AbstractProcessor {
 
                 flowFile = session.create();
                 final long importStart = System.nanoTime();
-                flowFile = session.importFrom(filePath, keepingSourceFile, flowFile);
+                flowFile = session.
+                        importFrom(filePath, keepingSourceFile, flowFile);
                 final long importNanos = System.nanoTime() - importStart;
                 final long importMillis = TimeUnit.MILLISECONDS.convert(importNanos, TimeUnit.NANOSECONDS);
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java
index 1b2be26..0b06244 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GetFileTransfer.java
@@ -59,8 +59,10 @@ import org.apache.nifi.util.StopWatch;
  */
 public abstract class GetFileTransfer extends AbstractProcessor {
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success")
-            .description("All FlowFiles that are received are routed to success").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("All FlowFiles that are received are routed to success")
+            .build();
     private final Set<Relationship> relationships;
 
     public static final String FILE_LAST_MODIFY_TIME_ATTRIBUTE = "file.lastModifiedTime";
@@ -207,7 +209,8 @@ public abstract class GetFileTransfer extends AbstractProcessor {
                         try {
                             transfer.deleteFile(null, file.getFullPathFileName());
                         } catch (final IOException e) {
-                            logger.error("Failed to remove remote file {} due to {}; deleting local copy", new Object[]{file.getFullPathFileName(), e});
+                            logger.error("Failed to remove remote file {} due to {}; deleting local copy",
+                                    new Object[]{file.getFullPathFileName(), e});
                             session.remove(flowFile);
                             return;
                         }


[13/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java
index c8345d2..8f4286b 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/InvokeHTTP.java
@@ -27,7 +27,6 @@ import java.io.OutputStream;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.nio.charset.Charset;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -72,13 +71,14 @@ import org.joda.time.format.DateTimeFormatter;
 @SupportsBatching
 @Tags({"http", "https", "rest", "client"})
 @CapabilityDescription("An HTTP client processor which converts FlowFile attributes to HTTP headers, with configurable HTTP method, url, etc.")
-@WritesAttributes({ @WritesAttribute(attribute = "invokehttp.status.code", description = "The status code that is returned"),
-        @WritesAttribute(attribute = "invokehttp.status.message", description = "The status message that is returned"),
-        @WritesAttribute(attribute = "invokehttp.response.body", description = "The response body"),
-        @WritesAttribute(attribute = "invokehttp.request.url", description = "The request URL"),
-        @WritesAttribute(attribute = "invokehttp.tx.id", description = "The transaction ID that is returned after reading the response"),
-        @WritesAttribute(attribute = "invokehttp.remote.dn", description = "The DN of the remote server") })
-@DynamicProperty(name="Trusted Hostname", value="A hostname", description="Bypass the normal truststore hostname verifier to allow the specified (single) remote hostname as trusted "
+@WritesAttributes({
+    @WritesAttribute(attribute = "invokehttp.status.code", description = "The status code that is returned"),
+    @WritesAttribute(attribute = "invokehttp.status.message", description = "The status message that is returned"),
+    @WritesAttribute(attribute = "invokehttp.response.body", description = "The response body"),
+    @WritesAttribute(attribute = "invokehttp.request.url", description = "The request URL"),
+    @WritesAttribute(attribute = "invokehttp.tx.id", description = "The transaction ID that is returned after reading the response"),
+    @WritesAttribute(attribute = "invokehttp.remote.dn", description = "The DN of the remote server")})
+@DynamicProperty(name = "Trusted Hostname", value = "A hostname", description = "Bypass the normal truststore hostname verifier to allow the specified (single) remote hostname as trusted "
         + "Enabling this property has MITM security implications, use wisely. Only valid with SSL (HTTPS) connections.")
 public final class InvokeHTTP extends AbstractProcessor {
 
@@ -88,7 +88,7 @@ public final class InvokeHTTP extends AbstractProcessor {
 
         return Config.PROPERTIES;
     }
-    
+
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(String propertyDescriptorName) {
         if (Config.PROP_TRUSTED_HOSTNAME.getName().equalsIgnoreCase(propertyDescriptorName)) {
@@ -118,7 +118,8 @@ public final class InvokeHTTP extends AbstractProcessor {
             } else {
                 SSLContextService svc = (SSLContextService) getControllerServiceLookup().getControllerService(newValue);
                 sslContextRef.set(svc.createSSLContext(ClientAuth.NONE));  // ClientAuth is only useful for servers, not clients.
-                getLogger().info("Loading SSL configuration from keystore={} and truststore={}", new Object[]{svc.getKeyStoreFile(), svc.getTrustStoreFile()});
+                getLogger().info("Loading SSL configuration from keystore={} and truststore={}",
+                        new Object[]{svc.getKeyStoreFile(), svc.getTrustStoreFile()});
             }
         }
 
@@ -143,17 +144,14 @@ public final class InvokeHTTP extends AbstractProcessor {
         }
 
         for (FlowFile flowfile : flowfiles) {
-            Transaction transaction = new Transaction(
-                    getLogger(), sslContextRef, attributesToSendRef, context, session, flowfile
-            );
+            Transaction transaction = new Transaction(getLogger(), sslContextRef, attributesToSendRef, context, session, flowfile);
             transaction.process();
         }
     }
 
     /**
      *
-     * Stores properties, relationships, configuration values, hard coded
-     * strings, magic numbers, etc.
+     * Stores properties, relationships, configuration values, hard coded strings, magic numbers, etc.
      *
      *
      */
@@ -174,13 +172,13 @@ public final class InvokeHTTP extends AbstractProcessor {
         // processing, including when converting http headers, copying attributes, etc.
         // This set includes our strings defined above as well as some standard flowfile
         // attributes.
-        Set<String> IGNORED_ATTRIBUTES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
+        public static final Set<String> IGNORED_ATTRIBUTES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
                 STATUS_CODE, STATUS_MESSAGE, RESPONSE_BODY, REQUEST_URL, TRANSACTION_ID, REMOTE_DN,
                 "uuid", "filename", "path"
         )));
 
         //-- properties --//
-        PropertyDescriptor PROP_METHOD = new PropertyDescriptor.Builder()
+        public static final PropertyDescriptor PROP_METHOD = new PropertyDescriptor.Builder()
                 .name("HTTP Method")
                 .description("HTTP request method (GET, POST, PUT, DELETE, HEAD, OPTIONS).")
                 .required(true)
@@ -189,7 +187,7 @@ public final class InvokeHTTP extends AbstractProcessor {
                 .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
                 .build();
 
-        PropertyDescriptor PROP_URL = new PropertyDescriptor.Builder()
+        public static final PropertyDescriptor PROP_URL = new PropertyDescriptor.Builder()
                 .name("Remote URL")
                 .description("Remote URL which will be connected to, including scheme, host, port, path.")
                 .required(true)
@@ -197,7 +195,7 @@ public final class InvokeHTTP extends AbstractProcessor {
                 .addValidator(StandardValidators.URL_VALIDATOR)
                 .build();
 
-        PropertyDescriptor PROP_CONNECT_TIMEOUT = new PropertyDescriptor.Builder()
+        public static final PropertyDescriptor PROP_CONNECT_TIMEOUT = new PropertyDescriptor.Builder()
                 .name("Connection Timeout")
                 .description("Max wait time for connection to remote service.")
                 .required(true)
@@ -205,7 +203,7 @@ public final class InvokeHTTP extends AbstractProcessor {
                 .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
                 .build();
 
-        PropertyDescriptor PROP_READ_TIMEOUT = new PropertyDescriptor.Builder()
+        public static final PropertyDescriptor PROP_READ_TIMEOUT = new PropertyDescriptor.Builder()
                 .name("Read Timeout")
                 .description("Max wait time for response from remote service.")
                 .required(true)
@@ -213,7 +211,7 @@ public final class InvokeHTTP extends AbstractProcessor {
                 .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
                 .build();
 
-        PropertyDescriptor PROP_DATE_HEADER = new PropertyDescriptor.Builder()
+        public static final PropertyDescriptor PROP_DATE_HEADER = new PropertyDescriptor.Builder()
                 .name("Include Date Header")
                 .description("Include an RFC-2616 Date header in the request.")
                 .required(true)
@@ -222,7 +220,7 @@ public final class InvokeHTTP extends AbstractProcessor {
                 .addValidator(StandardValidators.BOOLEAN_VALIDATOR)
                 .build();
 
-        PropertyDescriptor PROP_FOLLOW_REDIRECTS = new PropertyDescriptor.Builder()
+        public static final PropertyDescriptor PROP_FOLLOW_REDIRECTS = new PropertyDescriptor.Builder()
                 .name("Follow Redirects")
                 .description("Follow HTTP redirects issued by remote server.")
                 .required(true)
@@ -231,7 +229,7 @@ public final class InvokeHTTP extends AbstractProcessor {
                 .addValidator(StandardValidators.BOOLEAN_VALIDATOR)
                 .build();
 
-        PropertyDescriptor PROP_ATTRIBUTES_TO_SEND = new PropertyDescriptor.Builder()
+        public static final PropertyDescriptor PROP_ATTRIBUTES_TO_SEND = new PropertyDescriptor.Builder()
                 .name("Attributes to Send")
                 .description("Regular expression that defines which attributes to send as HTTP headers in the request. "
                         + "If not defined, no attributes are sent as headers.")
@@ -239,27 +237,28 @@ public final class InvokeHTTP extends AbstractProcessor {
                 .addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR)
                 .build();
 
-        PropertyDescriptor PROP_SSL_CONTEXT_SERVICE = new PropertyDescriptor.Builder()
+        public static final PropertyDescriptor PROP_SSL_CONTEXT_SERVICE = new PropertyDescriptor.Builder()
                 .name("SSL Context Service")
                 .description("The SSL Context Service used to provide client certificate information for TLS/SSL (https) connections.")
                 .required(false)
                 .identifiesControllerService(SSLContextService.class)
                 .build();
-        
-        List<PropertyDescriptor> PROPERTIES = Collections.unmodifiableList(Arrays.asList(
-                PROP_METHOD,
-                PROP_URL,
-                PROP_SSL_CONTEXT_SERVICE,
-                PROP_CONNECT_TIMEOUT,
-                PROP_READ_TIMEOUT,
-                PROP_DATE_HEADER,
-                PROP_FOLLOW_REDIRECTS,
-                PROP_ATTRIBUTES_TO_SEND
-        ));
+
+        public static final List<PropertyDescriptor> PROPERTIES = Collections.
+                unmodifiableList(Arrays.asList(
+                                PROP_METHOD,
+                                PROP_URL,
+                                PROP_SSL_CONTEXT_SERVICE,
+                                PROP_CONNECT_TIMEOUT,
+                                PROP_READ_TIMEOUT,
+                                PROP_DATE_HEADER,
+                                PROP_FOLLOW_REDIRECTS,
+                                PROP_ATTRIBUTES_TO_SEND
+                        ));
 
         // property to allow the hostname verifier to be overridden
         // this is a "hidden" property - it's configured using a dynamic user property
-        PropertyDescriptor PROP_TRUSTED_HOSTNAME = new PropertyDescriptor.Builder()
+        public static final PropertyDescriptor PROP_TRUSTED_HOSTNAME = new PropertyDescriptor.Builder()
                 .name("Trusted Hostname")
                 .description("Bypass the normal truststore hostname verifier to allow the specified (single) remote hostname as trusted "
                         + "Enabling this property has MITM security implications, use wisely. Only valid with SSL (HTTPS) connections.")
@@ -268,60 +267,53 @@ public final class InvokeHTTP extends AbstractProcessor {
                 .build();
 
         //-- relationships --//
-        Relationship REL_SUCCESS_REQ = new Relationship.Builder()
+        public static final Relationship REL_SUCCESS_REQ = new Relationship.Builder()
                 .name("Original")
                 .description("Original FlowFile will be routed upon success (2xx status codes).")
                 .build();
 
-        Relationship REL_SUCCESS_RESP = new Relationship.Builder()
+        public static final Relationship REL_SUCCESS_RESP = new Relationship.Builder()
                 .name("Response")
                 .description("Response FlowFile will be routed upon success (2xx status codes).")
                 .build();
 
-        Relationship REL_RETRY = new Relationship.Builder()
+        public static final Relationship REL_RETRY = new Relationship.Builder()
                 .name("Retry")
                 .description("FlowFile will be routed on any status code that can be retried (5xx status codes).")
                 .build();
 
-        Relationship REL_NO_RETRY = new Relationship.Builder()
+        public static final Relationship REL_NO_RETRY = new Relationship.Builder()
                 .name("No Retry")
                 .description("FlowFile will be routed on any status code that should NOT be retried (1xx, 3xx, 4xx status codes).")
                 .build();
 
-        Relationship REL_FAILURE = new Relationship.Builder()
+        public static final Relationship REL_FAILURE = new Relationship.Builder()
                 .name("Failure")
                 .description("FlowFile will be routed on any type of connection failure, timeout or general exception.")
                 .build();
 
-        Set<Relationship> RELATIONSHIPS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
+        public static final Set<Relationship> RELATIONSHIPS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
                 REL_SUCCESS_REQ, REL_SUCCESS_RESP, REL_RETRY, REL_NO_RETRY, REL_FAILURE
         )));
 
     }
 
     /**
-     * A single invocation of an HTTP request/response from the InvokeHTTP
-     * processor. This class encapsulates the entirety of the flowfile
-     * processing.
+     * A single invocation of an HTTP request/response from the InvokeHTTP processor. This class encapsulates the entirety of the flowfile processing.
      * <p>
-     * This class is not thread safe and is created new for every flowfile
-     * processed.
+     * This class is not thread safe and is created new for every flowfile processed.
      */
     private static class Transaction implements Config {
 
         /**
-         * Pattern used to compute RFC 2616 Dates (#sec3.3.1). This format is
-         * used by the HTTP Date header and is optionally sent by the processor.
-         * This date is effectively an RFC 822/1123 date string, but HTTP
-         * requires it to be in GMT (preferring the literal 'GMT' string).
+         * Pattern used to compute RFC 2616 Dates (#sec3.3.1). This format is used by the HTTP Date header and is optionally sent by the processor. This date is effectively an RFC 822/1123 date
+         * string, but HTTP requires it to be in GMT (preferring the literal 'GMT' string).
          */
         private static final String rfc1123 = "EEE, dd MMM yyyy HH:mm:ss 'GMT'";
         private static final DateTimeFormatter dateFormat = DateTimeFormat.forPattern(rfc1123).withLocale(Locale.US).withZoneUTC();
 
         /**
-         * Every request/response cycle from this client has a unique
-         * transaction id which will be stored as a flowfile attribute. This
-         * generator is used to create the id.
+         * Every request/response cycle from this client has a unique transaction id which will be stored as a flowfile attribute. This generator is used to create the id.
          */
         private static final AtomicLong txIdGenerator = new AtomicLong();
 
@@ -507,11 +499,8 @@ public final class InvokeHTTP extends AbstractProcessor {
             }
 
             // log the status codes from the response
-            logger.info("Request to {} returned status code {} for {}", new Object[]{
-                conn.getURL().toExternalForm(),
-                statusCode,
-                request
-            });
+            logger.info("Request to {} returned status code {} for {}",
+                    new Object[]{conn.getURL().toExternalForm(), statusCode, request});
 
             // transfer to the correct relationship
             // 2xx -> SUCCESS
@@ -565,13 +554,13 @@ public final class InvokeHTTP extends AbstractProcessor {
         }
 
         /**
-         * Returns a Map of flowfile attributes from the response http headers.
-         * Multivalue headers are naively converted to comma separated strings.
+         * Returns a Map of flowfile attributes from the response http headers. Multivalue headers are naively converted to comma separated strings.
          */
         private Map<String, String> convertAttributesFromHeaders() throws IOException {
             // create a new hashmap to store the values from the connection
             Map<String, String> map = new HashMap<>();
-            for (Map.Entry<String, List<String>> entry : conn.getHeaderFields().entrySet()) {
+            for (Map.Entry<String, List<String>> entry : conn.getHeaderFields().
+                    entrySet()) {
                 String key = entry.getKey();
                 if (key == null) {
                     continue;
@@ -610,17 +599,13 @@ public final class InvokeHTTP extends AbstractProcessor {
         }
 
         private void logRequest() {
-            logger.debug("\nRequest to remote service:\n\t{}\n{}", new Object[]{
-                conn.getURL().toExternalForm(),
-                getLogString(conn.getRequestProperties())
-            });
+            logger.debug("\nRequest to remote service:\n\t{}\n{}",
+                    new Object[]{conn.getURL().toExternalForm(), getLogString(conn.getRequestProperties())});
         }
 
         private void logResponse() {
-            logger.debug("\nResponse from remote service:\n\t{}\n{}", new Object[]{
-                conn.getURL().toExternalForm(),
-                getLogString(conn.getHeaderFields())
-            });
+            logger.debug("\nResponse from remote service:\n\t{}\n{}",
+                    new Object[]{conn.getURL().toExternalForm(), getLogString(conn.getHeaderFields())});
         }
 
         private String getLogString(Map<String, List<String>> map) {
@@ -644,12 +629,9 @@ public final class InvokeHTTP extends AbstractProcessor {
         }
 
         /**
-         * Convert a collection of string values into a overly simple comma
-         * separated string.
+         * Convert a collection of string values into a overly simple comma separated string.
          *
-         * Does not handle the case where the value contains the delimiter. i.e.
-         * if a value contains a comma, this method does nothing to try and
-         * escape or quote the value, in traditional csv style.
+         * Does not handle the case where the value contains the delimiter. i.e. if a value contains a comma, this method does nothing to try and escape or quote the value, in traditional csv style.
          */
         private String csv(Collection<String> values) {
             if (values == null || values.isEmpty()) {
@@ -674,16 +656,14 @@ public final class InvokeHTTP extends AbstractProcessor {
         }
 
         /**
-         * Return the current datetime as an RFC 1123 formatted string in the
-         * GMT tz.
+         * Return the current datetime as an RFC 1123 formatted string in the GMT tz.
          */
         private String getDateValue() {
             return dateFormat.print(System.currentTimeMillis());
         }
 
         /**
-         * Returns a string from the input stream using the specified character
-         * encoding.
+         * Returns a string from the input stream using the specified character encoding.
          */
         private String toString(InputStream is, Charset charset) throws IOException {
             if (is == null) {
@@ -700,13 +680,9 @@ public final class InvokeHTTP extends AbstractProcessor {
         }
 
         /**
-         * Returns the input stream to use for reading from the remote server.
-         * We're either going to want the inputstream or errorstream,
-         * effectively depending on the status code.
+         * Returns the input stream to use for reading from the remote server. We're either going to want the inputstream or errorstream, effectively depending on the status code.
          * <p>
-         * This method can return null if there is no inputstream to read from.
-         * For example, if the remote server did not send a message body. eg.
-         * 204 No Content or 304 Not Modified
+         * This method can return null if there is no inputstream to read from. For example, if the remote server did not send a message body. eg. 204 No Content or 304 Not Modified
          */
         private InputStream getResponseStream() {
             try {
@@ -723,8 +699,7 @@ public final class InvokeHTTP extends AbstractProcessor {
         }
 
         /**
-         * Writes the status attributes onto the flowfile, returning the
-         * flowfile that was updated.
+         * Writes the status attributes onto the flowfile, returning the flowfile that was updated.
          */
         private FlowFile writeStatusAttributes(FlowFile flowfile) {
             flowfile = session.putAttribute(flowfile, STATUS_CODE, String.valueOf(statusCode));

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JmsConsumer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JmsConsumer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JmsConsumer.java
index e4bbaec..6b3283c 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JmsConsumer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/JmsConsumer.java
@@ -65,9 +65,11 @@ import org.apache.nifi.util.StopWatch;
 public abstract class JmsConsumer extends AbstractProcessor {
 
     public static final String MAP_MESSAGE_PREFIX = "jms.mapmessage.";
-    
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success")
-            .description("All FlowFiles are routed to success").build();
+
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("All FlowFiles are routed to success")
+            .build();
 
     private final Set<Relationship> relationships;
     private final List<PropertyDescriptor> propertyDescriptors;
@@ -112,7 +114,7 @@ public abstract class JmsConsumer extends AbstractProcessor {
         final int batchSize = context.getProperty(BATCH_SIZE).asInteger();
 
         final JmsProcessingSummary processingSummary = new JmsProcessingSummary();
-        
+
         final StopWatch stopWatch = new StopWatch(true);
         for (int i = 0; i < batchSize; i++) {
 
@@ -132,20 +134,20 @@ public abstract class JmsConsumer extends AbstractProcessor {
                 break;
             }
 
-            if (message == null) {    // if no messages, we're done
+            if (message == null) { // if no messages, we're done
                 break;
             }
 
             try {
-				processingSummary.add( map2FlowFile(context, session, message, addAttributes, logger) );
-			} catch (Exception e) {
+                processingSummary.add(map2FlowFile(context, session, message, addAttributes, logger));
+            } catch (Exception e) {
                 logger.error("Failed to receive JMS Message due to {}", e);
                 wrappedConsumer.close(logger);
-                break;				
-			}
+                break;
+            }
         }
-        
-        if (processingSummary.getFlowFilesCreated()==0) {
+
+        if (processingSummary.getFlowFilesCreated() == 0) {
             context.yield();
             return;
         }
@@ -153,11 +155,12 @@ public abstract class JmsConsumer extends AbstractProcessor {
         session.commit();
 
         stopWatch.stop();
-        if (processingSummary.getFlowFilesCreated()>0) {
+        if (processingSummary.getFlowFilesCreated() > 0) {
             final float secs = ((float) stopWatch.getDuration(TimeUnit.MILLISECONDS) / 1000F);
             float messagesPerSec = ((float) processingSummary.getMessagesReceived()) / secs;
             final String dataRate = stopWatch.calculateDataRate(processingSummary.getBytesReceived());
-            logger.info("Received {} messages in {} milliseconds, at a rate of {} messages/sec or {}", new Object[]{processingSummary.getMessagesReceived(), stopWatch.getDuration(TimeUnit.MILLISECONDS), messagesPerSec, dataRate});
+            logger.info("Received {} messages in {} milliseconds, at a rate of {} messages/sec or {}",
+                    new Object[]{processingSummary.getMessagesReceived(), stopWatch.getDuration(TimeUnit.MILLISECONDS), messagesPerSec, dataRate});
         }
 
         // if we need to acknowledge the messages, do so now.
@@ -166,49 +169,51 @@ public abstract class JmsConsumer extends AbstractProcessor {
             try {
                 lastMessage.acknowledge();  // acknowledge all received messages by acknowledging only the last.
             } catch (final JMSException e) {
-                logger.error("Failed to acknowledge {} JMS Message(s). This may result in duplicate messages. Reason for failure: {}", new Object[]{processingSummary.getMessagesReceived(), e});
+                logger.error("Failed to acknowledge {} JMS Message(s). This may result in duplicate messages. Reason for failure: {}",
+                        new Object[]{processingSummary.getMessagesReceived(), e});
             }
         }
     }
-    
+
     public static JmsProcessingSummary map2FlowFile(final ProcessContext context, final ProcessSession session, final Message message, final boolean addAttributes, ProcessorLog logger) throws Exception {
-    	
-    	// Currently not very useful, because always one Message == one FlowFile
+
+        // Currently not very useful, because always one Message == one FlowFile
         final IntegerHolder msgsThisFlowFile = new IntegerHolder(1);
-        
+
         FlowFile flowFile = session.create();
         try {
-        	// MapMessage is exception, add only name-value pairs to FlowFile attributes
+            // MapMessage is exception, add only name-value pairs to FlowFile attributes
             if (message instanceof MapMessage) {
-				MapMessage mapMessage = (MapMessage) message;
-            	flowFile = session.putAllAttributes(flowFile, createMapMessageValues(mapMessage));				
-			}
-            // all other message types, write Message body to FlowFile content 
+                MapMessage mapMessage = (MapMessage) message;
+                flowFile = session.putAllAttributes(flowFile, createMapMessageValues(mapMessage));
+            } // all other message types, write Message body to FlowFile content 
             else {
-	            flowFile = session.write(flowFile, new OutputStreamCallback() {
-	                @Override
-	                public void process(final OutputStream rawOut) throws IOException {
-	                    try (final OutputStream out = new BufferedOutputStream(rawOut, 65536)) {
-	                        final byte[] messageBody = JmsFactory.createByteArray(message);
-	                        out.write(messageBody);
-	                    } catch (final JMSException e) {
-	                        throw new ProcessException("Failed to receive JMS Message due to {}", e);
-	                    }
-	                }
-	            });
+                flowFile = session.write(flowFile, new OutputStreamCallback() {
+                    @Override
+                    public void process(final OutputStream rawOut) throws IOException {
+                        try (final OutputStream out = new BufferedOutputStream(rawOut, 65536)) {
+                            final byte[] messageBody = JmsFactory.createByteArray(message);
+                            out.write(messageBody);
+                        } catch (final JMSException e) {
+                            throw new ProcessException("Failed to receive JMS Message due to {}", e);
+                        }
+                    }
+                });
             }
-            
-            if (addAttributes)
-            	flowFile = session.putAllAttributes(flowFile, JmsFactory.createAttributeMap(message));
-            
+
+            if (addAttributes) {
+                flowFile = session.putAllAttributes(flowFile, JmsFactory.createAttributeMap(message));
+            }
+
             session.getProvenanceReporter().receive(flowFile, context.getProperty(URL).getValue());
             session.transfer(flowFile, REL_SUCCESS);
-            logger.info("Created {} from {} messages received from JMS Server and transferred to 'success'", new Object[]{flowFile, msgsThisFlowFile.get()});
+            logger.info("Created {} from {} messages received from JMS Server and transferred to 'success'",
+                    new Object[]{flowFile, msgsThisFlowFile.get()});
 
             return new JmsProcessingSummary(flowFile.getSize(), message, flowFile);
-            
+
         } catch (Exception e) {
-        	session.remove(flowFile);
+            session.remove(flowFile);
             throw e;
         }
     }
@@ -221,13 +226,14 @@ public abstract class JmsConsumer extends AbstractProcessor {
             final String name = (String) enumeration.nextElement();
 
             final Object value = mapMessage.getObject(name);
-            if (value==null)
-            	valueMap.put(MAP_MESSAGE_PREFIX+name, "");
-            else
-            	valueMap.put(MAP_MESSAGE_PREFIX+name, value.toString());        
+            if (value == null) {
+                valueMap.put(MAP_MESSAGE_PREFIX + name, "");
+            } else {
+                valueMap.put(MAP_MESSAGE_PREFIX + name, value.toString());
+            }
         }
 
         return valueMap;
-    }    
-    
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java
index d9317c4..c7842d9 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenHTTP.java
@@ -107,11 +107,11 @@ public class ListenHTTP extends AbstractSessionFactoryProcessor {
             .identifiesControllerService(SSLContextService.class)
             .build();
     public static final PropertyDescriptor HEADERS_AS_ATTRIBUTES_REGEX = new PropertyDescriptor.Builder()
-		    .name("HTTP Headers to receive as Attributes (Regex)")
-		    .description("Specifies the Regular Expression that determines the names of HTTP Headers that should be passed along as FlowFile attributes")
-		    .addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR)
-		    .required(false)
-		    .build();
+            .name("HTTP Headers to receive as Attributes (Regex)")
+            .description("Specifies the Regular Expression that determines the names of HTTP Headers that should be passed along as FlowFile attributes")
+            .addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR)
+            .required(false)
+            .build();
 
     public static final String URI = "/contentListener";
     public static final String CONTEXT_ATTRIBUTE_PROCESSOR = "processor";
@@ -124,7 +124,7 @@ public class ListenHTTP extends AbstractSessionFactoryProcessor {
     public static final String CONTEXT_ATTRIBUTE_STREAM_THROTTLER = "streamThrottler";
 
     private volatile Server server = null;
-    private final ConcurrentMap<String, FlowFileEntryTimeWrapper> flowFileMap = new ConcurrentHashMap<String, FlowFileEntryTimeWrapper>();
+    private final ConcurrentMap<String, FlowFileEntryTimeWrapper> flowFileMap = new ConcurrentHashMap<>();
     private final AtomicReference<ProcessSessionFactory> sessionFactoryReference = new AtomicReference<>();
 
     @Override
@@ -218,9 +218,7 @@ public class ListenHTTP extends AbstractSessionFactoryProcessor {
             httpConfiguration.addCustomizer(new SecureRequestCustomizer());
 
             // build the connector
-            connector = new ServerConnector(server,
-                    new SslConnectionFactory(contextFactory, "http/1.1"),
-                    new HttpConnectionFactory(httpConfiguration));
+            connector = new ServerConnector(server, new SslConnectionFactory(contextFactory, "http/1.1"), new HttpConnectionFactory(httpConfiguration));
         }
 
         // configure the port
@@ -247,7 +245,7 @@ public class ListenHTTP extends AbstractSessionFactoryProcessor {
         contextHandler.setAttribute(CONTEXT_ATTRIBUTE_STREAM_THROTTLER, streamThrottler);
 
         if (context.getProperty(HEADERS_AS_ATTRIBUTES_REGEX).isSet()) {
-        	contextHandler.setAttribute(CONTEXT_ATTRIBUTE_HEADER_PATTERN, Pattern.compile(context.getProperty(HEADERS_AS_ATTRIBUTES_REGEX).getValue()));
+            contextHandler.setAttribute(CONTEXT_ATTRIBUTE_HEADER_PATTERN, Pattern.compile(context.getProperty(HEADERS_AS_ATTRIBUTES_REGEX).getValue()));
         }
         server.start();
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java
index 561e333..fa17df1 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ListenUDP.java
@@ -73,50 +73,35 @@ import org.apache.commons.lang3.StringUtils;
 
 /**
  * <p>
- * This processor listens for Datagram Packets on a given port and concatenates
- * the contents of those packets together generating flow files roughly as often
- * as the internal buffer fills up or until no more data is currently available.
+ * This processor listens for Datagram Packets on a given port and concatenates the contents of those packets together generating flow files roughly as often as the internal buffer fills up or until
+ * no more data is currently available.
  * </p>
  *
  * <p>
  * This processor has the following required properties:
  * <ul>
- * <li><b>Port</b> - The port to listen on for data packets. Must be known by
- * senders of Datagrams.</li>
- * <li><b>Receive Timeout</b> - The time out period when waiting to receive data
- * from the socket. Specify units. Default is 5 secs.</li>
- * <li><b>Max Buffer Size</b> - Determines the size each receive buffer may be.
- * Specify units. Default is 1 MB.</li>
- * <li><b>FlowFile Size Trigger</b> - Determines the (almost) upper bound size
- * at which a flow file would be generated. A flow file will get made even if
- * this value isn't reached if there is no more data streaming in and this value
- * may be exceeded by the size of a single packet. Specify units. Default is 1
- * MB.</li>
- * <li><b>Max size of UDP Buffer</b> - The maximum UDP buffer size that should
- * be used. This is a suggestion to the Operating System to indicate how big the
- * udp socket buffer should be. Specify units. Default is 1 MB.")</li>
- * <li><b>Receive Buffer Count</b> - Number of receiving buffers to be used to
- * accept data from the socket. Higher numbers means more ram is allocated but
- * can allow better throughput. Default is 4.</li>
- * <li><b>Channel Reader Interval</b> - Scheduling interval for each read
- * channel. Specify units. Default is 50 millisecs.</li>
- * <li><b>FlowFiles Per Session</b> - The number of flow files per session.
- * Higher number is more efficient, but will lose more data if a problem occurs
- * that causes a rollback of a session. Default is 10</li>
+ * <li><b>Port</b> - The port to listen on for data packets. Must be known by senders of Datagrams.</li>
+ * <li><b>Receive Timeout</b> - The time out period when waiting to receive data from the socket. Specify units. Default is 5 secs.</li>
+ * <li><b>Max Buffer Size</b> - Determines the size each receive buffer may be. Specify units. Default is 1 MB.</li>
+ * <li><b>FlowFile Size Trigger</b> - Determines the (almost) upper bound size at which a flow file would be generated. A flow file will get made even if this value isn't reached if there is no more
+ * data streaming in and this value may be exceeded by the size of a single packet. Specify units. Default is 1 MB.</li>
+ * <li><b>Max size of UDP Buffer</b> - The maximum UDP buffer size that should be used. This is a suggestion to the Operating System to indicate how big the udp socket buffer should be. Specify units.
+ * Default is 1 MB.")</li>
+ * <li><b>Receive Buffer Count</b> - Number of receiving buffers to be used to accept data from the socket. Higher numbers means more ram is allocated but can allow better throughput. Default is
+ * 4.</li>
+ * <li><b>Channel Reader Interval</b> - Scheduling interval for each read channel. Specify units. Default is 50 millisecs.</li>
+ * <li><b>FlowFiles Per Session</b> - The number of flow files per session. Higher number is more efficient, but will lose more data if a problem occurs that causes a rollback of a session. Default is
+ * 10</li>
  * </ul>
  * </p>
  *
  * This processor has the following optional properties:
  * <ul>
- * <li><b>Sending Host</b> - IP, or name, of a remote host. Only Datagrams from
- * the specified Sending Host Port and this host will be accepted. Improves
- * Performance. May be a system property or an environment variable.</li>
- * <li><b>Sending Host Port</b> - Port being used by remote host to send
- * Datagrams. Only Datagrams from the specified Sending Host and this port will
- * be accepted. Improves Performance. May be a system property or an environment
- * variable.</li>
+ * <li><b>Sending Host</b> - IP, or name, of a remote host. Only Datagrams from the specified Sending Host Port and this host will be accepted. Improves Performance. May be a system property or an
+ * environment variable.</li>
+ * <li><b>Sending Host Port</b> - Port being used by remote host to send Datagrams. Only Datagrams from the specified Sending Host and this port will be accepted. Improves Performance. May be a system
+ * property or an environment variable.</li>
  * </ul>
- * </p>
  *
  * <p>
  * The following relationships are required:
@@ -142,7 +127,7 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
             .build();
 
     static {
-        Set<Relationship> rels = new HashSet<>();
+        final Set<Relationship> rels = new HashSet<>();
         rels.add(RELATIONSHIP_SUCCESS);
         relationships = Collections.unmodifiableSet(rels);
     }
@@ -233,8 +218,7 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
 
     static {
         try {
-            final Enumeration<NetworkInterface> interfaceEnum
-                    = NetworkInterface.getNetworkInterfaces();
+            final Enumeration<NetworkInterface> interfaceEnum = NetworkInterface.getNetworkInterfaces();
             while (interfaceEnum.hasMoreElements()) {
                 final NetworkInterface ifc = interfaceEnum.nextElement();
                 interfaceSet.add(ifc.getName());
@@ -242,18 +226,15 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
         } catch (SocketException e) {
         }
     }
-    public static final PropertyDescriptor NETWORK_INTF_NAME = new PropertyDescriptor.Builder()
-            .name("Local Network Interface")
-            .description("The name of a local network interface to be used to restrict listening for UDP Datagrams to a specific LAN."
-                    + "May be a system property or an environment variable.")
-            .addValidator(new Validator() {
+    public static final PropertyDescriptor NETWORK_INTF_NAME = new PropertyDescriptor.Builder().
+            name("Local Network Interface").
+            description("The name of a local network interface to be used to restrict listening for UDP Datagrams to a specific LAN."
+                    + "May be a system property or an environment variable.").
+            addValidator(new Validator() {
                 @Override
                 public ValidationResult validate(String subject, String input, ValidationContext context) {
                     ValidationResult result = new ValidationResult.Builder()
-                    .subject("Local Network Interface")
-                    .valid(true)
-                    .input(input)
-                    .build();
+                    .subject("Local Network Interface").valid(true).input(input).build();
                     if (interfaceSet.contains(input.toLowerCase())) {
                         return result;
                     }
@@ -271,18 +252,12 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
                     } catch (IllegalArgumentException e) {
                         message = "Not a valid AttributeExpression: " + e.getMessage();
                     }
-                    result = new ValidationResult.Builder()
-                    .subject("Local Network Interface")
-                    .valid(false)
-                    .input(input)
-                    .explanation(message)
-                    .build();
+                    result = new ValidationResult.Builder().subject("Local Network Interface")
+                    .valid(false).input(input).explanation(message).build();
 
                     return result;
                 }
-            })
-            .expressionLanguageSupported(true)
-            .build();
+            }).expressionLanguageSupported(true).build();
 
     static {
         List<PropertyDescriptor> props = new ArrayList<>();
@@ -326,8 +301,7 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
     }
 
     /**
-     * Create the ChannelListener and a thread that causes the Consumer to
-     * create flow files.
+     * Create the ChannelListener and a thread that causes the Consumer to create flow files.
      *
      * @param context
      * @throws IOException
@@ -336,8 +310,8 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
     public void initializeChannelListenerAndConsumerProcessing(final ProcessContext context) throws IOException {
         getChannelListener(context);
         stopping.set(false);
-        Future<Tuple<ProcessSession, List<FlowFile>>> consumerFuture = consumerExecutorService
-                .submit(new Callable<Tuple<ProcessSession, List<FlowFile>>>() {
+        Future<Tuple<ProcessSession, List<FlowFile>>> consumerFuture = consumerExecutorService.
+                submit(new Callable<Tuple<ProcessSession, List<FlowFile>>>() {
 
                     @Override
                     public Tuple<ProcessSession, List<FlowFile>> call() {
@@ -364,11 +338,10 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
                                         logger.debug("Have waited {} times", new Object[]{numWaits});
                                         numWaits = 0;
                                         if (session != null) {
-                                            Tuple<ProcessSession, List<FlowFile>> flowFilesPerSession = new Tuple<ProcessSession, List<FlowFile>>(
-                                                    session,
-                                                    new ArrayList<>(newFlowFiles));
+                                            Tuple<ProcessSession, List<FlowFile>> flowFilesPerSession = new Tuple<ProcessSession, List<FlowFile>>(session, new ArrayList<>(newFlowFiles));
                                             newFlowFiles.clear();
-                                            flowFilesPerSessionQueue.add(flowFilesPerSession);
+                                            flowFilesPerSessionQueue.
+                                            add(flowFilesPerSession);
                                         }
                                         session = sessionFactoryRef.get().createSession();
                                         consumer.setSession(session);
@@ -422,8 +395,7 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
                                 // if this is blown...consumer.isConsumerFinished will be true
                             }
                         }
-                        Tuple<ProcessSession, List<FlowFile>> flowFilesPerSession = new Tuple<ProcessSession, List<FlowFile>>(session,
-                                new ArrayList<>(newFlowFiles));
+                        Tuple<ProcessSession, List<FlowFile>> flowFilesPerSession = new Tuple<ProcessSession, List<FlowFile>>(session, new ArrayList<>(newFlowFiles));
                         return flowFilesPerSession;
                     }
                 });
@@ -462,7 +434,8 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
 
                     @Override
                     public StreamConsumer newInstance(final String streamId) {
-                        final UDPStreamConsumer consumer = new UDPStreamConsumer(streamId, newFlowFiles, flowFileSizeTrigger.intValue(), getLogger());
+                        final UDPStreamConsumer consumer = new UDPStreamConsumer(streamId, newFlowFiles, flowFileSizeTrigger.
+                                intValue(), getLogger());
                         consumerRef.set(consumer);
                         return consumer;
                     }
@@ -491,17 +464,11 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
         String sendingHost = validationContext.getProperty(SENDING_HOST).getValue();
         String sendingPort = validationContext.getProperty(SENDING_HOST_PORT).getValue();
         if (StringUtils.isBlank(sendingHost) && StringUtils.isNotBlank(sendingPort)) {
-            result.add(new ValidationResult.Builder()
-                    .subject(SENDING_HOST.getName())
-                    .valid(false)
-                    .explanation("Must specify Sending Host when specifying Sending Host Port")
-                    .build());
+            result.add(new ValidationResult.Builder().subject(SENDING_HOST.getName()).valid(false)
+                    .explanation("Must specify Sending Host when specifying Sending Host Port").build());
         } else if (StringUtils.isBlank(sendingPort) && StringUtils.isNotBlank(sendingHost)) {
-            result.add(new ValidationResult.Builder()
-                    .subject(SENDING_HOST_PORT.getName())
-                    .valid(false)
-                    .explanation("Must specify Sending Host Port when specifying Sending Host")
-                    .build());
+            result.add(
+                    new ValidationResult.Builder().subject(SENDING_HOST_PORT.getName()).valid(false).explanation("Must specify Sending Host Port when specifying Sending Host").build());
         }
         return result;
     }
@@ -552,7 +519,8 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
                                 new Object[]{existingFlowFile});
                     } else if (existingFlowFile != null) {
                         session.remove(existingFlowFile);
-                        logger.warn("Found empty flow file in input queue (shouldn't have). Removed flow file {}", new Object[]{existingFlowFile});
+                        logger.warn("Found empty flow file in input queue (shouldn't have). Removed flow file {}",
+                                new Object[]{existingFlowFile});
                     }
                 }
                 session.commit();
@@ -607,18 +575,9 @@ public class ListenUDP extends AbstractSessionFactoryProcessor {
         public ValidationResult validate(String subject, String input, ValidationContext context) {
             try {
                 InetAddress.getByName(input);
-                return new ValidationResult.Builder()
-                        .subject(subject)
-                        .valid(true)
-                        .input(input)
-                        .build();
+                return new ValidationResult.Builder().subject(subject).valid(true).input(input).build();
             } catch (final UnknownHostException e) {
-                return new ValidationResult.Builder()
-                        .subject(subject)
-                        .valid(false)
-                        .input(input)
-                        .explanation("Unknown host: " + e)
-                        .build();
+                return new ValidationResult.Builder().subject(subject).valid(false).input(input).explanation("Unknown host: " + e).build();
             }
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LogAttribute.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LogAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LogAttribute.java
index daf513b..b493c93 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LogAttribute.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/LogAttribute.java
@@ -90,7 +90,10 @@ public class LogAttribute extends AbstractProcessor {
     private Set<Relationship> relationships;
     private List<PropertyDescriptor> supportedDescriptors;
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("All FlowFiles are routed to this relationship").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("All FlowFiles are routed to this relationship")
+            .build();
 
     @Override
     protected void init(final ProcessorInitializationContext context) {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java
index 9ca6470..bd639dd 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MergeContent.java
@@ -74,18 +74,36 @@ import org.apache.nifi.util.ObjectHolder;
 @SideEffectFree
 @TriggerWhenEmpty
 @Tags({"merge", "content", "correlation", "tar", "zip", "stream", "concatenation", "archive", "flowfile-stream", "flowfile-stream-v3"})
-@CapabilityDescription("Merges a Group of FlowFiles together based on a user-defined strategy and packages them into a single FlowFile. It is recommended that the Processor be configured with only a single incoming connection, as Group of FlowFiles will not be created from FlowFiles in different connections. This processor updates the mime.type attribute as appropriate.")
-@ReadsAttributes({ @ReadsAttribute(attribute = "fragment.identifier", description = "Applicable only if the <Merge Strategy> property is set to Defragment. All FlowFiles with the same value for this attribute will be bundled together"),
-    @ReadsAttribute(attribute = "fragment.index", description = "Applicable only if the <Merge Strategy> property is set to Defragment. This attribute must be present on all FlowFiles with the same value for the fragment.identifier attribute and must be a unique integer between 0 and the value of the fragment.count attribute. This attribute indicates the order in which the fragments should be assembled"),
-    @ReadsAttribute(attribute = "fragment.count", description = "Applicable only if the <Merge Strategy> property is set to Defragment. This attribute must be present on all FlowFiles with the same value for the fragment.identifier attribute. All FlowFiles in the same bundle must have the same value for this attribute. The value of this attribute indicates how many FlowFiles should be expected in the given bundle"),
-    @ReadsAttribute(attribute = "segment.original.filename", description = "Applicable only if the <Merge Strategy> property is set to Defragment. This attribute must be present on all FlowFiles with the same value for the fragment.identifier attribute. All FlowFiles in the same bundle must have the same value for this attribute. The value of this attribute will be used for the filename of the completed merged FlowFile"),
-    @ReadsAttribute(attribute = "tar.permissions", description = "Applicable only if the <Merge Format> property is set to TAR. The value of this attribute must be 3 characters; each character must be in the range 0 to 7 (inclusive) and indicates the file permissions that should be used for the FlowFile's TAR entry. If this attribute is missing or has an invalid value, the default value of 644 will be used") })
-@WritesAttributes({ @WritesAttribute(attribute = "filename", description = "When more than 1 file is merged, the filename comes from the segment.original.filename attribute. If that attribute does not exist in the source FlowFiles, then the filename is set to the number of nanoseconds matching system time. Then a filename extension may be applied:"
-+"if Merge Format is TAR, then the filename will be appended with .tar, "
-+"if Merge Format is ZIP, then the filename will be appended with .zip, "
-+"if Merge Format is FlowFileStream, then the filename will be appended with .pkg"),
-        @WritesAttribute(attribute = "merge.count", description = "The number of FlowFiles that were merged into this bundle"),
-        @WritesAttribute(attribute = "merge.bin.age", description = "The age of the bin, in milliseconds, when it was merged and output. Effectively this is the greatest amount of time that any FlowFile in this bundle remained waiting in this processor before it was output") })
+@CapabilityDescription("Merges a Group of FlowFiles together based on a user-defined strategy and packages them into a single FlowFile. "
+        + "It is recommended that the Processor be configured with only a single incoming connection, as Group of FlowFiles will not be "
+        + "created from FlowFiles in different connections. This processor updates the mime.type attribute as appropriate.")
+@ReadsAttributes({
+    @ReadsAttribute(attribute = "fragment.identifier", description = "Applicable only if the <Merge Strategy> property is set to Defragment. "
+            + "All FlowFiles with the same value for this attribute will be bundled together"),
+    @ReadsAttribute(attribute = "fragment.index", description = "Applicable only if the <Merge Strategy> property is set to Defragment. This "
+            + "attribute must be present on all FlowFiles with the same value for the fragment.identifier attribute and must be a unique integer "
+            + "between 0 and the value of the fragment.count attribute. This attribute indicates the order in which the fragments should be assembled"),
+    @ReadsAttribute(attribute = "fragment.count", description = "Applicable only if the <Merge Strategy> property is set to Defragment. This "
+            + "attribute must be present on all FlowFiles with the same value for the fragment.identifier attribute. All FlowFiles in the same "
+            + "bundle must have the same value for this attribute. The value of this attribute indicates how many FlowFiles should be expected "
+            + "in the given bundle"),
+    @ReadsAttribute(attribute = "segment.original.filename", description = "Applicable only if the <Merge Strategy> property is set to Defragment. "
+            + "This attribute must be present on all FlowFiles with the same value for the fragment.identifier attribute. All FlowFiles in the same "
+            + "bundle must have the same value for this attribute. The value of this attribute will be used for the filename of the completed merged "
+            + "FlowFile"),
+    @ReadsAttribute(attribute = "tar.permissions", description = "Applicable only if the <Merge Format> property is set to TAR. The value of this "
+            + "attribute must be 3 characters; each character must be in the range 0 to 7 (inclusive) and indicates the file permissions that should "
+            + "be used for the FlowFile's TAR entry. If this attribute is missing or has an invalid value, the default value of 644 will be used")})
+@WritesAttributes({
+    @WritesAttribute(attribute = "filename", description = "When more than 1 file is merged, the filename comes from the segment.original.filename "
+            + "attribute. If that attribute does not exist in the source FlowFiles, then the filename is set to the number of nanoseconds matching "
+            + "system time. Then a filename extension may be applied:"
+            + "if Merge Format is TAR, then the filename will be appended with .tar, "
+            + "if Merge Format is ZIP, then the filename will be appended with .zip, "
+            + "if Merge Format is FlowFileStream, then the filename will be appended with .pkg"),
+    @WritesAttribute(attribute = "merge.count", description = "The number of FlowFiles that were merged into this bundle"),
+    @WritesAttribute(attribute = "merge.bin.age", description = "The age of the bin, in milliseconds, when it was merged and output. Effectively "
+            + "this is the greatest amount of time that any FlowFile in this bundle remained waiting in this processor before it was output")})
 @SeeAlso(SegmentContent.class)
 public class MergeContent extends BinFiles {
 
@@ -103,11 +121,14 @@ public class MergeContent extends BinFiles {
     public static final AllowableValue MERGE_STRATEGY_BIN_PACK = new AllowableValue(
             "Bin-Packing Algorithm",
             "Bin-Packing Algorithm",
-            "Generates 'bins' of FlowFiles and fills each bin as full as possible. FlowFiles are placed into a bin based on their size and optionally their attributes (if the <Correlation Attribute> property is set)");
+            "Generates 'bins' of FlowFiles and fills each bin as full as possible. FlowFiles are placed into a bin based on their size and optionally "
+            + "their attributes (if the <Correlation Attribute> property is set)");
     public static final AllowableValue MERGE_STRATEGY_DEFRAGMENT = new AllowableValue(
             "Defragment",
             "Defragment",
-            "Combines fragments that are associated by attributes back into a single cohesive FlowFile. If using this strategy, all FlowFiles must have the attributes <fragment.identifier>, <fragment.count>, and <fragment.index> or alternatively (for backward compatibility purposes) <segment.identifier>, <segment.count>, and <segment.index>");
+            "Combines fragments that are associated by attributes back into a single cohesive FlowFile. If using this strategy, all FlowFiles must "
+            + "have the attributes <fragment.identifier>, <fragment.count>, and <fragment.index> or alternatively (for backward compatibility "
+            + "purposes) <segment.identifier>, <segment.count>, and <segment.index>");
 
     public static final String MERGE_FORMAT_TAR_VALUE = "TAR";
     public static final String MERGE_FORMAT_ZIP_VALUE = "ZIP";
@@ -119,11 +140,16 @@ public class MergeContent extends BinFiles {
     public static final AllowableValue MERGE_FORMAT_TAR = new AllowableValue(
             MERGE_FORMAT_TAR_VALUE,
             MERGE_FORMAT_TAR_VALUE,
-            "A bin of FlowFiles will be combined into a single TAR file. The FlowFiles' <path> attribute will be used to create a directory in the TAR file if the <Keep Paths> property is set to true; otherwise, all FlowFiles will be added at the root of the TAR file. If a FlowFile has an attribute named <tar.permissions> that is 3 characters, each between 0-7, that attribute will be used as the TAR entry's 'mode'.");
+            "A bin of FlowFiles will be combined into a single TAR file. The FlowFiles' <path> attribute will be used to create a directory in the "
+            + "TAR file if the <Keep Paths> property is set to true; otherwise, all FlowFiles will be added at the root of the TAR file. "
+            + "If a FlowFile has an attribute named <tar.permissions> that is 3 characters, each between 0-7, that attribute will be used "
+            + "as the TAR entry's 'mode'.");
     public static final AllowableValue MERGE_FORMAT_ZIP = new AllowableValue(
             MERGE_FORMAT_ZIP_VALUE,
             MERGE_FORMAT_ZIP_VALUE,
-            "A bin of FlowFiles will be combined into a single ZIP file. The FlowFiles' <path> attribute will be used to create a directory in the ZIP file if the <Keep Paths> property is set to true; otherwise, all FlowFiles will be added at the root of the ZIP file. The <Compression Level> property indicates the ZIP compression to use.");
+            "A bin of FlowFiles will be combined into a single ZIP file. The FlowFiles' <path> attribute will be used to create a directory in the "
+            + "ZIP file if the <Keep Paths> property is set to true; otherwise, all FlowFiles will be added at the root of the ZIP file. "
+            + "The <Compression Level> property indicates the ZIP compression to use.");
     public static final AllowableValue MERGE_FORMAT_FLOWFILE_STREAM_V3 = new AllowableValue(
             MERGE_FORMAT_FLOWFILE_STREAM_V3_VALUE,
             MERGE_FORMAT_FLOWFILE_STREAM_V3_VALUE,
@@ -150,7 +176,9 @@ public class MergeContent extends BinFiles {
 
     public static final PropertyDescriptor MERGE_STRATEGY = new PropertyDescriptor.Builder()
             .name("Merge Strategy")
-            .description("Specifies the algorithm used to merge content. The 'Defragment' algorithm combines fragments that are associated by attributes back into a single cohesive FlowFile. The 'Bin-Packing Algorithm' generates a FlowFile populated by arbitrarily chosen FlowFiles")
+            .description("Specifies the algorithm used to merge content. The 'Defragment' algorithm combines fragments that are associated by "
+                    + "attributes back into a single cohesive FlowFile. The 'Bin-Packing Algorithm' generates a FlowFile populated by arbitrarily "
+                    + "chosen FlowFiles")
             .required(true)
             .allowableValues(MERGE_STRATEGY_BIN_PACK, MERGE_STRATEGY_DEFRAGMENT)
             .defaultValue(MERGE_STRATEGY_BIN_PACK.getValue())
@@ -165,14 +193,18 @@ public class MergeContent extends BinFiles {
     public static final PropertyDescriptor ATTRIBUTE_STRATEGY = new PropertyDescriptor.Builder()
             .required(true)
             .name("Attribute Strategy")
-            .description("Determines which FlowFile attributes should be added to the bundle. If 'Keep All Unique Attributes' is selected, any attribute on any FlowFile that gets bundled will be kept unless its value conflicts with the value from another FlowFile. If 'Keep Only Common Attributes' is selected, only the attributes that exist on all FlowFiles in the bundle, with the same value, will be preserved.")
+            .description("Determines which FlowFile attributes should be added to the bundle. If 'Keep All Unique Attributes' is selected, any "
+                    + "attribute on any FlowFile that gets bundled will be kept unless its value conflicts with the value from another FlowFile. "
+                    + "If 'Keep Only Common Attributes' is selected, only the attributes that exist on all FlowFiles in the bundle, with the same "
+                    + "value, will be preserved.")
             .allowableValues(ATTRIBUTE_STRATEGY_ALL_COMMON, ATTRIBUTE_STRATEGY_ALL_UNIQUE)
             .defaultValue(ATTRIBUTE_STRATEGY_ALL_COMMON)
             .build();
 
     public static final PropertyDescriptor CORRELATION_ATTRIBUTE_NAME = new PropertyDescriptor.Builder()
             .name("Correlation Attribute Name")
-            .description("If specified, like FlowFiles will be binned together, where 'like FlowFiles' means FlowFiles that have the same value for this Attribute. If not specified, FlowFiles are bundled by the order in which they are pulled from the queue.")
+            .description("If specified, like FlowFiles will be binned together, where 'like FlowFiles' means FlowFiles that have the same value for "
+                    + "this Attribute. If not specified, FlowFiles are bundled by the order in which they are pulled from the queue.")
             .required(false)
             .addValidator(StandardValidators.ATTRIBUTE_KEY_VALIDATOR)
             .defaultValue(null)
@@ -180,32 +212,37 @@ public class MergeContent extends BinFiles {
 
     public static final PropertyDescriptor HEADER = new PropertyDescriptor.Builder()
             .name("Header File")
-            .description("Filename specifying the header to use. If not specified, no header is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.")
+            .description("Filename specifying the header to use. If not specified, no header is supplied. This property is valid only when using the "
+                    + "binary-concatenation merge strategy; otherwise, it is ignored.")
             .required(false)
             .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
             .build();
     public static final PropertyDescriptor FOOTER = new PropertyDescriptor.Builder()
             .name("Footer File")
-            .description("Filename specifying the footer to use. If not specified, no footer is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.")
+            .description("Filename specifying the footer to use. If not specified, no footer is supplied. This property is valid only when using the "
+                    + "binary-concatenation merge strategy; otherwise, it is ignored.")
             .required(false)
             .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
             .build();
     public static final PropertyDescriptor DEMARCATOR = new PropertyDescriptor.Builder()
             .name("Demarcator File")
-            .description("Filename specifying the demarcator to use. If not specified, no demarcator is supplied. This property is valid only when using the binary-concatenation merge strategy; otherwise, it is ignored.")
+            .description("Filename specifying the demarcator to use. If not specified, no demarcator is supplied. This property is valid only when "
+                    + "using the binary-concatenation merge strategy; otherwise, it is ignored.")
             .required(false)
             .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
             .build();
     public static final PropertyDescriptor COMPRESSION_LEVEL = new PropertyDescriptor.Builder()
             .name("Compression Level")
-            .description("Specifies the compression level to use when using the Zip Merge Format; if not using the Zip Merge Format, this value is ignored")
+            .description("Specifies the compression level to use when using the Zip Merge Format; if not using the Zip Merge Format, this value is "
+                    + "ignored")
             .required(true)
             .allowableValues("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
             .defaultValue("1")
             .build();
     public static final PropertyDescriptor KEEP_PATH = new PropertyDescriptor.Builder()
             .name("Keep Path")
-            .description("If using the Zip or Tar Merge Format, specifies whether or not the FlowFiles' paths should be included in their entry names; if using other merge strategy, this value is ignored")
+            .description("If using the Zip or Tar Merge Format, specifies whether or not the FlowFiles' paths should be included in their entry "
+                    + "names; if using other merge strategy, this value is ignored")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
@@ -215,24 +252,22 @@ public class MergeContent extends BinFiles {
 
     public static final Pattern NUMBER_PATTERN = Pattern.compile("\\d+");
 
-
-	@Override
-	public Set<Relationship> getRelationships() {
-	    final Set<Relationship> relationships = new HashSet<>();
+    @Override
+    public Set<Relationship> getRelationships() {
+        final Set<Relationship> relationships = new HashSet<>();
         relationships.add(REL_ORIGINAL);
         relationships.add(REL_FAILURE);
         relationships.add(REL_MERGED);
         return relationships;
-	}
-	
-	
-	@Override
-	protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
-	    final List<PropertyDescriptor> descriptors = new ArrayList<>();
-	    descriptors.add(MERGE_STRATEGY);
-	    descriptors.add(MERGE_FORMAT);
-	    descriptors.add(ATTRIBUTE_STRATEGY);
-	    descriptors.add(CORRELATION_ATTRIBUTE_NAME);
+    }
+
+    @Override
+    protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
+        final List<PropertyDescriptor> descriptors = new ArrayList<>();
+        descriptors.add(MERGE_STRATEGY);
+        descriptors.add(MERGE_FORMAT);
+        descriptors.add(ATTRIBUTE_STRATEGY);
+        descriptors.add(CORRELATION_ATTRIBUTE_NAME);
         descriptors.add(MIN_ENTRIES);
         descriptors.add(MAX_ENTRIES);
         descriptors.add(MIN_SIZE);
@@ -245,16 +280,15 @@ public class MergeContent extends BinFiles {
         descriptors.add(COMPRESSION_LEVEL);
         descriptors.add(KEEP_PATH);
         return descriptors;
-	}
-	
+    }
+
     private byte[] readContent(final String filename) throws IOException {
         return Files.readAllBytes(Paths.get(filename));
     }
 
-
-	@Override
-	protected FlowFile preprocessFlowFile(final ProcessContext context, final ProcessSession session, final FlowFile flowFile) {
-	    FlowFile processed = flowFile;
+    @Override
+    protected FlowFile preprocessFlowFile(final ProcessContext context, final ProcessSession session, final FlowFile flowFile) {
+        FlowFile processed = flowFile;
         // handle backward compatibility with old segment attributes
         if (processed.getAttribute(FRAGMENT_COUNT_ATTRIBUTE) == null && processed.getAttribute(SEGMENT_COUNT_ATTRIBUTE) != null) {
             processed = session.putAttribute(processed, FRAGMENT_COUNT_ATTRIBUTE, processed.getAttribute(SEGMENT_COUNT_ATTRIBUTE));
@@ -265,12 +299,12 @@ public class MergeContent extends BinFiles {
         if (processed.getAttribute(FRAGMENT_ID_ATTRIBUTE) == null && processed.getAttribute(SEGMENT_ID_ATTRIBUTE) != null) {
             processed = session.putAttribute(processed, FRAGMENT_ID_ATTRIBUTE, processed.getAttribute(SEGMENT_ID_ATTRIBUTE));
         }
-        
+
         return processed;
-	}
+    }
 
-	@Override
-	protected String getGroupId(final ProcessContext context, final FlowFile flowFile) {
+    @Override
+    protected String getGroupId(final ProcessContext context, final FlowFile flowFile) {
         final String correlationAttributeName = context.getProperty(CORRELATION_ATTRIBUTE_NAME).getValue();
         String groupId = (correlationAttributeName == null) ? null : flowFile.getAttribute(correlationAttributeName);
 
@@ -280,20 +314,21 @@ public class MergeContent extends BinFiles {
         }
 
         return groupId;
-	}
+    }
 
-	@Override
-	protected void setUpBinManager(final BinManager binManager, final ProcessContext context) {
-		if (MERGE_STRATEGY_DEFRAGMENT.equals(context.getProperty(MERGE_STRATEGY).getValue())) {
+    @Override
+    protected void setUpBinManager(final BinManager binManager, final ProcessContext context) {
+        if (MERGE_STRATEGY_DEFRAGMENT.equals(context.getProperty(MERGE_STRATEGY).getValue())) {
             binManager.setFileCountAttribute(FRAGMENT_COUNT_ATTRIBUTE);
         }
-	}
+    }
 
-	@Override
-	protected boolean processBin(final Bin unmodifiableBin, final List<FlowFileSessionWrapper> binCopy, final ProcessContext context,
-			final ProcessSession session) throws ProcessException {
+    @Override
+    protected boolean processBin(final Bin unmodifiableBin, final List<FlowFileSessionWrapper> binCopy, final ProcessContext context,
+            final ProcessSession session) throws ProcessException {
 
-        final String mergeFormat = context.getProperty(MERGE_FORMAT).getValue();
+        final String mergeFormat = context.getProperty(MERGE_FORMAT).
+                getValue();
         MergeBin merger;
         switch (mergeFormat) {
             case MERGE_FORMAT_TAR_VALUE:
@@ -329,19 +364,18 @@ public class MergeContent extends BinFiles {
                 break;
         }
 
-
         if (MERGE_STRATEGY_DEFRAGMENT.equals(context.getProperty(MERGE_STRATEGY).getValue())) {
             final String error = getDefragmentValidationError(binCopy);
-            
+
             // Fail the flow files and commit them
             if (error != null) {
                 final String binDescription = binCopy.size() <= 10 ? binCopy.toString() : binCopy.size() + " FlowFiles";
                 getLogger().error(error + "; routing {} to failure", new Object[]{binDescription});
-                for ( final FlowFileSessionWrapper wrapper : binCopy ) {
+                for (final FlowFileSessionWrapper wrapper : binCopy) {
                     wrapper.getSession().transfer(wrapper.getFlowFile(), REL_FAILURE);
                     wrapper.getSession().commit();
                 }
-                
+
                 return true;
             }
             Collections.sort(binCopy, new FragmentComparator());
@@ -385,7 +419,7 @@ public class MergeContent extends BinFiles {
             if (!isNumber(fragmentIndex)) {
                 return "Cannot Defragment " + flowFile + " because it does not have an integer value for the " + FRAGMENT_INDEX_ATTRIBUTE + " attribute";
             }
-            
+
             fragmentIdentifier = flowFile.getAttribute(FRAGMENT_ID_ATTRIBUTE);
 
             final String fragmentCount = flowFile.getAttribute(FRAGMENT_COUNT_ATTRIBUTE);
@@ -394,23 +428,26 @@ public class MergeContent extends BinFiles {
             } else if (decidedFragmentCount == null) {
                 decidedFragmentCount = fragmentCount;
             } else if (!decidedFragmentCount.equals(fragmentCount)) {
-                return "Cannot Defragment " + flowFile + " because it is grouped with another FlowFile, and the two have differing values for the " + FRAGMENT_COUNT_ATTRIBUTE + " attribute: " + decidedFragmentCount + " and " + fragmentCount;
+                return "Cannot Defragment " + flowFile + " because it is grouped with another FlowFile, and the two have differing values for the "
+                        + FRAGMENT_COUNT_ATTRIBUTE + " attribute: " + decidedFragmentCount + " and " + fragmentCount;
             }
         }
-        
+
         final int numericFragmentCount;
         try {
             numericFragmentCount = Integer.parseInt(decidedFragmentCount);
         } catch (final NumberFormatException nfe) {
             return "Cannot Defragment FlowFiles with Fragment Identifier " + fragmentIdentifier + " because the " + FRAGMENT_COUNT_ATTRIBUTE + " has a non-integer value of " + decidedFragmentCount;
         }
-        
-        if ( bin.size() < numericFragmentCount ) {
-            return "Cannot Defragment FlowFiles with Fragment Identifier " + fragmentIdentifier + " because the expected number of fragments is " + decidedFragmentCount + " but found only " + bin.size() + " fragments";
+
+        if (bin.size() < numericFragmentCount) {
+            return "Cannot Defragment FlowFiles with Fragment Identifier " + fragmentIdentifier + " because the expected number of fragments is " + decidedFragmentCount + " but found only "
+                    + bin.size() + " fragments";
         }
-        
-        if ( bin.size() > numericFragmentCount ) {
-            return "Cannot Defragment FlowFiles with Fragment Identifier " + fragmentIdentifier + " because the expected number of fragments is " + decidedFragmentCount + " but found " + bin.size() + " fragments for this identifier";
+
+        if (bin.size() > numericFragmentCount) {
+            return "Cannot Defragment FlowFiles with Fragment Identifier " + fragmentIdentifier + " because the expected number of fragments is " + decidedFragmentCount + " but found "
+                    + bin.size() + " fragments for this identifier";
         }
 
         return null;
@@ -421,7 +458,8 @@ public class MergeContent extends BinFiles {
             return false;
         }
 
-        return NUMBER_PATTERN.matcher(value).matches();
+        return NUMBER_PATTERN.matcher(value).
+                matches();
     }
 
     private class BinaryConcatenationMerge implements MergeBin {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ModifyBytes.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ModifyBytes.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ModifyBytes.java
index ccebb46..be21b32 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ModifyBytes.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ModifyBytes.java
@@ -55,9 +55,7 @@ public class ModifyBytes extends AbstractProcessor {
             .name("success")
             .description("Processed flowfiles.")
             .build();
-    //
     private final Set<Relationship> relationships;
-    // Properties
     public static final PropertyDescriptor START_OFFSET = new PropertyDescriptor.Builder()
             .name("Start Offset")
             .description("Number of bytes removed at the beginning of the file.")
@@ -72,7 +70,6 @@ public class ModifyBytes extends AbstractProcessor {
             .addValidator(StandardValidators.DATA_SIZE_VALIDATOR)
             .defaultValue("0 B")
             .build();
-    // 
     private final List<PropertyDescriptor> propDescriptors;
 
     public ModifyBytes() {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MonitorActivity.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MonitorActivity.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MonitorActivity.java
index ddb5330..99a29e5 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MonitorActivity.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/MonitorActivity.java
@@ -56,8 +56,8 @@ import org.apache.nifi.processor.util.StandardValidators;
 @CapabilityDescription("Monitors the flow for activity and sends out an indicator when the flow has not had any data for "
         + "some specified amount of time and again when the flow's activity is restored")
 @WritesAttributes({
-        @WritesAttribute(attribute = "inactivityStartMillis", description = "The time at which Inactivity began, in the form of milliseconds since Epoch"),
-        @WritesAttribute(attribute = "inactivityDurationMillis", description = "The number of milliseconds that the inactivity has spanned") })
+    @WritesAttribute(attribute = "inactivityStartMillis", description = "The time at which Inactivity began, in the form of milliseconds since Epoch"),
+    @WritesAttribute(attribute = "inactivityDurationMillis", description = "The number of milliseconds that the inactivity has spanned")})
 public class MonitorActivity extends AbstractProcessor {
 
     public static final PropertyDescriptor THRESHOLD = new PropertyDescriptor.Builder()
@@ -69,7 +69,8 @@ public class MonitorActivity extends AbstractProcessor {
             .build();
     public static final PropertyDescriptor CONTINUALLY_SEND_MESSAGES = new PropertyDescriptor.Builder()
             .name("Continually Send Messages")
-            .description("If true, will send inactivity indicator continually every Threshold Duration amount of time until activity is restored; if false, will send an indicator only when the flow first becomes inactive")
+            .description("If true, will send inactivity indicator continually every Threshold Duration amount of time until activity is restored; "
+                    + "if false, will send an indicator only when the flow first becomes inactive")
             .required(true)
             .allowableValues("true", "false")
             .defaultValue("false")
@@ -95,11 +96,23 @@ public class MonitorActivity extends AbstractProcessor {
             .description("If true, will copy all flow file attributes from the flow file that resumed activity to the newly created indicator flow file")
             .required(false)
             .allowableValues("true", "false")
-            .defaultValue("false").build();
+            .defaultValue("false")
+            .build();
 
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("All incoming FlowFiles are routed to success").build();
-    public static final Relationship REL_INACTIVE = new Relationship.Builder().name("inactive").description("This relationship is used to transfer an Inactivity indicator when no FlowFiles are routed to 'success' for Threshold Duration amount of time").build();
-    public static final Relationship REL_ACTIVITY_RESTORED = new Relationship.Builder().name("activity.restored").description("This relationship is used to transfer an Activity Restored indicator when FlowFiles are routing to 'success' following a period of inactivity").build();
+    public static final Relationship REL_SUCCESS = new Relationship.Builder()
+            .name("success")
+            .description("All incoming FlowFiles are routed to success")
+            .build();
+    public static final Relationship REL_INACTIVE = new Relationship.Builder()
+            .name("inactive")
+            .description("This relationship is used to transfer an Inactivity indicator when no FlowFiles are routed to 'success' for Threshold "
+                    + "Duration amount of time")
+            .build();
+    public static final Relationship REL_ACTIVITY_RESTORED = new Relationship.Builder()
+            .name("activity.restored")
+            .description("This relationship is used to transfer an Activity Restored indicator when FlowFiles are routing to 'success' following a "
+                    + "period of inactivity")
+            .build();
     public static final Charset UTF8 = Charset.forName("UTF-8");
 
     private List<PropertyDescriptor> properties;


[06/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml
index 7a357d5..78694cc 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/org/apache/tika/mime/custom-mimetypes.xml
@@ -15,83 +15,83 @@
 -->
 <mime-info>
 
-  <mime-type type="application/flowfile-v1">
-    <_comment>NiFi FlowFile V1</_comment>
-    <sub-class-of type="application/x-tar"/>
-    <magic>
-      <match value="flowfile.attributes" type="string" offset="0" />
-    </magic>
-  </mime-type>
+    <mime-type type="application/flowfile-v1">
+        <_comment>NiFi FlowFile V1</_comment>
+        <sub-class-of type="application/x-tar"/>
+        <magic>
+            <match value="flowfile.attributes" type="string" offset="0" />
+        </magic>
+    </mime-type>
 
-  <mime-type type="application/flowfile-v3">
-    <_comment>NiFi FlowFile V3</_comment>
-    <magic>
-      <match value="NiFiFF3" type="string" offset="0" />
-    </magic>
-  </mime-type>
+    <mime-type type="application/flowfile-v3">
+        <_comment>NiFi FlowFile V3</_comment>
+        <magic>
+            <match value="NiFiFF3" type="string" offset="0" />
+        </magic>
+    </mime-type>
 
-  <mime-type type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
-    <_comment>Office Open XML Workbook</_comment>
-    <glob pattern="*.xlsx"/>
-    <sub-class-of type="application/x-tika-ooxml"/>
-    <magic priority="60">
-      <match value="PK\003\004" type="string" offset="0">
-        <match value="[Content_Types].xml" type="string" offset="30">
-          <match value="xl/_rels/workbook.xml.rels" type="string" offset="30:4096"/>
-        </match>
-      </match>
-    </magic>
-  </mime-type>
+    <mime-type type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
+        <_comment>Office Open XML Workbook</_comment>
+        <glob pattern="*.xlsx"/>
+        <sub-class-of type="application/x-tika-ooxml"/>
+        <magic priority="60">
+            <match value="PK\003\004" type="string" offset="0">
+                <match value="[Content_Types].xml" type="string" offset="30">
+                    <match value="xl/_rels/workbook.xml.rels" type="string" offset="30:4096"/>
+                </match>
+            </match>
+        </magic>
+    </mime-type>
 
-  <mime-type type="application/vnd.openxmlformats-officedocument.wordprocessingml.document">
-    <_comment>Office Open XML Document</_comment>
-    <glob pattern="*.docx"/>
-    <sub-class-of type="application/x-tika-ooxml"/>
-    <magic priority="60">
-      <match value="PK\003\004" type="string" offset="0">
-        <match value="[Content_Types].xml" type="string" offset="30">
-          <match value="word/_rels/document.xml.rels" type="string" offset="30:4096"/>
-        </match>
-      </match>
-    </magic>
-  </mime-type>
+    <mime-type type="application/vnd.openxmlformats-officedocument.wordprocessingml.document">
+        <_comment>Office Open XML Document</_comment>
+        <glob pattern="*.docx"/>
+        <sub-class-of type="application/x-tika-ooxml"/>
+        <magic priority="60">
+            <match value="PK\003\004" type="string" offset="0">
+                <match value="[Content_Types].xml" type="string" offset="30">
+                    <match value="word/_rels/document.xml.rels" type="string" offset="30:4096"/>
+                </match>
+            </match>
+        </magic>
+    </mime-type>
 
-  <mime-type type="application/vnd.openxmlformats-officedocument.presentationml.presentation">
-    <_comment>Office Open XML Presentation</_comment>
-    <glob pattern="*.pptx"/>
-    <glob pattern="*.thmx"/>
-    <sub-class-of type="application/x-tika-ooxml"/>
-    <magic priority="60">
-      <match value="PK\003\004" type="string" offset="0">
-        <match value="[Content_Types].xml" type="string" offset="30">
-          <match value="ppt/slides/_rels/slide" type="string" offset="30:4096"/>
-        </match>
-      </match>
-    </magic>
-  </mime-type>
+    <mime-type type="application/vnd.openxmlformats-officedocument.presentationml.presentation">
+        <_comment>Office Open XML Presentation</_comment>
+        <glob pattern="*.pptx"/>
+        <glob pattern="*.thmx"/>
+        <sub-class-of type="application/x-tika-ooxml"/>
+        <magic priority="60">
+            <match value="PK\003\004" type="string" offset="0">
+                <match value="[Content_Types].xml" type="string" offset="30">
+                    <match value="ppt/slides/_rels/slide" type="string" offset="30:4096"/>
+                </match>
+            </match>
+        </magic>
+    </mime-type>
 
-  <mime-type type="application/java-archive">
-    <_comment>Java Archive</_comment>
-    <tika:link>http://en.wikipedia.org/wiki/.jar</tika:link>
-    <tika:uti>com.sun.java-archive</tika:uti>
-    <sub-class-of type="application/zip"/>
-    <glob pattern="*.jar"/>
-    <magic priority="50">
-      <match value="PK\003\004" type="string" offset="0">
-        <match value="META-INF/MANIFEST.MF" type="string" offset="0:1024"/>
-      </match>
-    </magic>
-  </mime-type>
+    <mime-type type="application/java-archive">
+        <_comment>Java Archive</_comment>
+        <tika:link>http://en.wikipedia.org/wiki/.jar</tika:link>
+        <tika:uti>com.sun.java-archive</tika:uti>
+        <sub-class-of type="application/zip"/>
+        <glob pattern="*.jar"/>
+        <magic priority="50">
+            <match value="PK\003\004" type="string" offset="0">
+                <match value="META-INF/MANIFEST.MF" type="string" offset="0:1024"/>
+            </match>
+        </magic>
+    </mime-type>
 
-  <!-- Override tika's default behavior for GNU tar detection because nobody calls
-       a GNU tar a .gtar -->
-  <mime-type type="application/x-tar">
-    <_comment>GNU tar Compressed File Archive (GNU Tape Archive)</_comment>
-    <magic priority="60">
-      <!-- GNU tar archive -->
-      <match value="ustar  \0" type="string" offset="257" />
-    </magic>
-    <glob pattern="*.tar"/>
-  </mime-type>
+    <!-- Override tika's default behavior for GNU tar detection because nobody calls
+    a GNU tar a .gtar -->
+    <mime-type type="application/x-tar">
+        <_comment>GNU tar Compressed File Archive (GNU Tape Archive)</_comment>
+        <magic priority="60">
+            <!-- GNU tar archive -->
+            <match value="ustar  \0" type="string" offset="257" />
+        </magic>
+        <glob pattern="*.tar"/>
+    </mime-type>
 
 </mime-info>

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestIngestAndUpdate.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestIngestAndUpdate.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestIngestAndUpdate.java
index c9ed9f9..70f2579 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestIngestAndUpdate.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/TestIngestAndUpdate.java
@@ -21,7 +21,8 @@ public class TestIngestAndUpdate {
 
     public static void main(String[] args) throws IOException {
         byte[] bytes = new byte[1024];
-        System.out.write(System.getProperty("user.dir").getBytes());
+        System.out.write(System.getProperty("user.dir").
+                getBytes());
         System.out.println(":ModifiedResult");
         int numRead = 0;
         while ((numRead = System.in.read(bytes)) != -1) {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java
index cf4f609..772ca0b 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/CaptureServlet.java
@@ -28,26 +28,28 @@ import org.apache.activemq.util.ByteArrayOutputStream;
 import org.apache.nifi.stream.io.StreamUtils;
 
 public class CaptureServlet extends HttpServlet {
+
     private static final long serialVersionUID = 8402271018449653919L;
 
     private volatile byte[] lastPost;
-    
+
     public byte[] getLastPost() {
         return lastPost;
     }
-    
+
     @Override
     protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
         final ByteArrayOutputStream baos = new ByteArrayOutputStream();
         StreamUtils.copy(request.getInputStream(), baos);
         this.lastPost = baos.toByteArray();
-        
+
         response.setStatus(Status.OK.getStatusCode());
     }
-    
+
     @Override
     protected void doHead(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
-        response.setHeader("Accept", "application/flowfile-v3,application/flowfile-v2");
+        response.
+                setHeader("Accept", "application/flowfile-v3,application/flowfile-v2");
         response.setHeader("x-nifi-transfer-protocol-version", "1");
         response.setHeader("Accept-Encoding", "gzip");
     }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/HelloWorldServlet.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/HelloWorldServlet.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/HelloWorldServlet.java
index 720bb74..7fe12b3 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/HelloWorldServlet.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/HelloWorldServlet.java
@@ -28,6 +28,7 @@ import javax.servlet.http.HttpServletResponse;
 import org.apache.nifi.stream.io.StreamUtils;
 
 public class HelloWorldServlet extends HttpServlet {
+
     private static final long serialVersionUID = -8821242726929583763L;
 
     @Override
@@ -37,5 +38,5 @@ public class HelloWorldServlet extends HttpServlet {
             StreamUtils.copy(fis, out);
         }
     }
-    
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/RESTServiceContentModified.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/RESTServiceContentModified.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/RESTServiceContentModified.java
index ec3211c..580450f 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/RESTServiceContentModified.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/RESTServiceContentModified.java
@@ -47,9 +47,11 @@ public class RESTServiceContentModified extends HttpServlet {
         dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
 
         response.setContentType("application/json");
-        if (ifNoneMatch != null && ifNoneMatch.length() > 0 && !IGNORE_ETAG && Integer.parseInt(ifNoneMatch) == ETAG) {
+        if (ifNoneMatch != null && ifNoneMatch.length() > 0 && !IGNORE_ETAG && Integer.
+                parseInt(ifNoneMatch) == ETAG) {
             response.setStatus(304);
-            response.setHeader("Last-Modified", dateFormat.format(modificationDate));
+            response.setHeader("Last-Modified", dateFormat.
+                    format(modificationDate));
             response.setHeader("ETag", Integer.toString(ETAG));
             return;
         }
@@ -57,14 +59,16 @@ public class RESTServiceContentModified extends HttpServlet {
         long date = -1;
         if (ifModifiedSince != null && ifModifiedSince.length() > 0 && !IGNORE_LAST_MODIFIED) {
             try {
-                date = dateFormat.parse(ifModifiedSince).getTime();
+                date = dateFormat.parse(ifModifiedSince).
+                        getTime();
             } catch (Exception e) {
 
             }
         }
         if (date >= modificationDate) {
             response.setStatus(304);
-            response.setHeader("Last-Modified", dateFormat.format(modificationDate));
+            response.setHeader("Last-Modified", dateFormat.
+                    format(modificationDate));
             response.setHeader("ETag", Integer.toString(ETAG));
             return;
         }
@@ -72,7 +76,8 @@ public class RESTServiceContentModified extends HttpServlet {
         response.setStatus(200);
         response.setHeader("Last-Modified", dateFormat.format(modificationDate));
         response.setHeader("ETag", Integer.toString(ETAG));
-        response.getOutputStream().println(result);
+        response.getOutputStream().
+                println(result);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestBase64EncodeContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestBase64EncodeContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestBase64EncodeContent.java
index 9b632f8..4005db7 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestBase64EncodeContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestBase64EncodeContent.java
@@ -31,53 +31,68 @@ public class TestBase64EncodeContent {
 
     @Test
     public void testRoundTrip() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new Base64EncodeContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new Base64EncodeContent());
 
-        testRunner.setProperty(Base64EncodeContent.MODE, Base64EncodeContent.ENCODE_MODE);
+        testRunner.
+                setProperty(Base64EncodeContent.MODE, Base64EncodeContent.ENCODE_MODE);
 
         testRunner.enqueue(Paths.get("src/test/resources/hello.txt"));
         testRunner.clearTransferState();
         testRunner.run();
 
-        testRunner.assertAllFlowFilesTransferred(Base64EncodeContent.REL_SUCCESS, 1);
+        testRunner.
+                assertAllFlowFilesTransferred(Base64EncodeContent.REL_SUCCESS, 1);
 
-        MockFlowFile flowFile = testRunner.getFlowFilesForRelationship(Base64EncodeContent.REL_SUCCESS).get(0);
+        MockFlowFile flowFile = testRunner.
+                getFlowFilesForRelationship(Base64EncodeContent.REL_SUCCESS).
+                get(0);
         testRunner.assertQueueEmpty();
 
-        testRunner.setProperty(Base64EncodeContent.MODE, Base64EncodeContent.DECODE_MODE);
+        testRunner.
+                setProperty(Base64EncodeContent.MODE, Base64EncodeContent.DECODE_MODE);
         testRunner.enqueue(flowFile);
         testRunner.clearTransferState();
         testRunner.run();
-        testRunner.assertAllFlowFilesTransferred(Base64EncodeContent.REL_SUCCESS, 1);
+        testRunner.
+                assertAllFlowFilesTransferred(Base64EncodeContent.REL_SUCCESS, 1);
 
-        flowFile = testRunner.getFlowFilesForRelationship(Base64EncodeContent.REL_SUCCESS).get(0);
+        flowFile = testRunner.
+                getFlowFilesForRelationship(Base64EncodeContent.REL_SUCCESS).
+                get(0);
         flowFile.assertContentEquals(new File("src/test/resources/hello.txt"));
     }
 
     @Test
     public void testFailDecodeNotBase64() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new Base64EncodeContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new Base64EncodeContent());
 
-        testRunner.setProperty(Base64EncodeContent.MODE, Base64EncodeContent.DECODE_MODE);
+        testRunner.
+                setProperty(Base64EncodeContent.MODE, Base64EncodeContent.DECODE_MODE);
 
         testRunner.enqueue(Paths.get("src/test/resources/hello.txt"));
         testRunner.clearTransferState();
         testRunner.run();
 
-        testRunner.assertAllFlowFilesTransferred(Base64EncodeContent.REL_FAILURE, 1);
+        testRunner.
+                assertAllFlowFilesTransferred(Base64EncodeContent.REL_FAILURE, 1);
     }
 
     @Test
     public void testFailDecodeNotBase64ButIsAMultipleOfFourBytes() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new Base64EncodeContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new Base64EncodeContent());
 
-        testRunner.setProperty(Base64EncodeContent.MODE, Base64EncodeContent.DECODE_MODE);
+        testRunner.
+                setProperty(Base64EncodeContent.MODE, Base64EncodeContent.DECODE_MODE);
 
         testRunner.enqueue("four@@@@multiple".getBytes());
         testRunner.clearTransferState();
         testRunner.run();
 
-        testRunner.assertAllFlowFilesTransferred(Base64EncodeContent.REL_FAILURE, 1);
+        testRunner.
+                assertAllFlowFilesTransferred(Base64EncodeContent.REL_FAILURE, 1);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestCompressContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestCompressContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestCompressContent.java
index df1d506..f5fea2c 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestCompressContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestCompressContent.java
@@ -30,101 +30,133 @@ public class TestCompressContent {
 
     @Test
     public void testBzip2DecompressConcatenated() throws Exception {
-        final TestRunner runner = TestRunners.newTestRunner(CompressContent.class);
+        final TestRunner runner = TestRunners.
+                newTestRunner(CompressContent.class);
         runner.setProperty(CompressContent.MODE, "decompress");
         runner.setProperty(CompressContent.COMPRESSION_FORMAT, "bzip2");
         runner.setProperty(CompressContent.UPDATE_FILENAME, "false");
 
-        runner.enqueue(Paths.get("src/test/resources/CompressedData/SampleFileConcat.txt.bz2"));
+        runner.enqueue(Paths.
+                get("src/test/resources/CompressedData/SampleFileConcat.txt.bz2"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(CompressContent.REL_SUCCESS, 1);
-        MockFlowFile flowFile = runner.getFlowFilesForRelationship(CompressContent.REL_SUCCESS).get(0);
-        flowFile.assertContentEquals(Paths.get("src/test/resources/CompressedData/SampleFileConcat.txt"));
+        MockFlowFile flowFile = runner.
+                getFlowFilesForRelationship(CompressContent.REL_SUCCESS).
+                get(0);
+        flowFile.assertContentEquals(Paths.
+                get("src/test/resources/CompressedData/SampleFileConcat.txt"));
         flowFile.assertAttributeEquals("filename", "SampleFileConcat.txt.bz2"); // not updating filename
     }
 
     @Test
     public void testBzip2Decompress() throws Exception {
-        final TestRunner runner = TestRunners.newTestRunner(CompressContent.class);
+        final TestRunner runner = TestRunners.
+                newTestRunner(CompressContent.class);
         runner.setProperty(CompressContent.MODE, "decompress");
         runner.setProperty(CompressContent.COMPRESSION_FORMAT, "bzip2");
         runner.setProperty(CompressContent.UPDATE_FILENAME, "true");
 
-        runner.enqueue(Paths.get("src/test/resources/CompressedData/SampleFile.txt.bz2"));
+        runner.enqueue(Paths.
+                get("src/test/resources/CompressedData/SampleFile.txt.bz2"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(CompressContent.REL_SUCCESS, 1);
-        MockFlowFile flowFile = runner.getFlowFilesForRelationship(CompressContent.REL_SUCCESS).get(0);
-        flowFile.assertContentEquals(Paths.get("src/test/resources/CompressedData/SampleFile.txt"));
+        MockFlowFile flowFile = runner.
+                getFlowFilesForRelationship(CompressContent.REL_SUCCESS).
+                get(0);
+        flowFile.assertContentEquals(Paths.
+                get("src/test/resources/CompressedData/SampleFile.txt"));
         flowFile.assertAttributeEquals("filename", "SampleFile.txt");
 
         runner.clearTransferState();
-        runner.enqueue(Paths.get("src/test/resources/CompressedData/SampleFile1.txt.bz2"));
+        runner.enqueue(Paths.
+                get("src/test/resources/CompressedData/SampleFile1.txt.bz2"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(CompressContent.REL_SUCCESS, 1);
-        flowFile = runner.getFlowFilesForRelationship(CompressContent.REL_SUCCESS).get(0);
-        flowFile.assertContentEquals(Paths.get("src/test/resources/CompressedData/SampleFile.txt"));
+        flowFile = runner.
+                getFlowFilesForRelationship(CompressContent.REL_SUCCESS).
+                get(0);
+        flowFile.assertContentEquals(Paths.
+                get("src/test/resources/CompressedData/SampleFile.txt"));
         flowFile.assertAttributeEquals("filename", "SampleFile1.txt");
     }
 
     @Test
     public void testGzipDecompress() throws Exception {
-        final TestRunner runner = TestRunners.newTestRunner(CompressContent.class);
+        final TestRunner runner = TestRunners.
+                newTestRunner(CompressContent.class);
         runner.setProperty(CompressContent.MODE, "decompress");
         runner.setProperty(CompressContent.COMPRESSION_FORMAT, "gzip");
-        assertTrue(runner.setProperty(CompressContent.UPDATE_FILENAME, "true").isValid());
+        assertTrue(runner.setProperty(CompressContent.UPDATE_FILENAME, "true").
+                isValid());
 
-        runner.enqueue(Paths.get("src/test/resources/CompressedData/SampleFile.txt.gz"));
+        runner.enqueue(Paths.
+                get("src/test/resources/CompressedData/SampleFile.txt.gz"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(CompressContent.REL_SUCCESS, 1);
-        MockFlowFile flowFile = runner.getFlowFilesForRelationship(CompressContent.REL_SUCCESS).get(0);
-        flowFile.assertContentEquals(Paths.get("src/test/resources/CompressedData/SampleFile.txt"));
+        MockFlowFile flowFile = runner.
+                getFlowFilesForRelationship(CompressContent.REL_SUCCESS).
+                get(0);
+        flowFile.assertContentEquals(Paths.
+                get("src/test/resources/CompressedData/SampleFile.txt"));
         flowFile.assertAttributeEquals("filename", "SampleFile.txt");
 
         runner.clearTransferState();
-        runner.enqueue(Paths.get("src/test/resources/CompressedData/SampleFile1.txt.gz"));
+        runner.enqueue(Paths.
+                get("src/test/resources/CompressedData/SampleFile1.txt.gz"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(CompressContent.REL_SUCCESS, 1);
-        flowFile = runner.getFlowFilesForRelationship(CompressContent.REL_SUCCESS).get(0);
-        flowFile.assertContentEquals(Paths.get("src/test/resources/CompressedData/SampleFile.txt"));
+        flowFile = runner.
+                getFlowFilesForRelationship(CompressContent.REL_SUCCESS).
+                get(0);
+        flowFile.assertContentEquals(Paths.
+                get("src/test/resources/CompressedData/SampleFile.txt"));
         flowFile.assertAttributeEquals("filename", "SampleFile1.txt");
     }
 
     @Test
     public void testFilenameUpdatedOnCompress() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(CompressContent.class);
+        final TestRunner runner = TestRunners.
+                newTestRunner(CompressContent.class);
         runner.setProperty(CompressContent.MODE, "compress");
         runner.setProperty(CompressContent.COMPRESSION_FORMAT, "gzip");
-        assertTrue(runner.setProperty(CompressContent.UPDATE_FILENAME, "true").isValid());
+        assertTrue(runner.setProperty(CompressContent.UPDATE_FILENAME, "true").
+                isValid());
 
-        runner.enqueue(Paths.get("src/test/resources/CompressedData/SampleFile.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/CompressedData/SampleFile.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(CompressContent.REL_SUCCESS, 1);
-        MockFlowFile flowFile = runner.getFlowFilesForRelationship(CompressContent.REL_SUCCESS).get(0);
+        MockFlowFile flowFile = runner.
+                getFlowFilesForRelationship(CompressContent.REL_SUCCESS).
+                get(0);
         flowFile.assertAttributeEquals("filename", "SampleFile.txt.gz");
 
     }
-    
+
     @Test
     public void testDecompressFailure() throws IOException {
-    	final TestRunner runner = TestRunners.newTestRunner(CompressContent.class);
+        final TestRunner runner = TestRunners.
+                newTestRunner(CompressContent.class);
         runner.setProperty(CompressContent.MODE, "decompress");
         runner.setProperty(CompressContent.COMPRESSION_FORMAT, "gzip");
-        
-        byte[] data = new byte[]{1,2,3,4,5,6,7,8,9,10};
+
+        byte[] data = new byte[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
         runner.enqueue(data);
-        
-        
-        assertTrue(runner.setProperty(CompressContent.UPDATE_FILENAME, "true").isValid());
+
+        assertTrue(runner.setProperty(CompressContent.UPDATE_FILENAME, "true").
+                isValid());
         runner.run();
         runner.assertQueueEmpty();
         runner.assertAllFlowFilesTransferred(CompressContent.REL_FAILURE, 1);
-        
-        runner.getFlowFilesForRelationship(CompressContent.REL_FAILURE).get(0).assertContentEquals(data);
+
+        runner.getFlowFilesForRelationship(CompressContent.REL_FAILURE).
+                get(0).
+                assertContentEquals(data);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestControlRate.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestControlRate.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestControlRate.java
index 90f4ed1..dcec7b3 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestControlRate.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestControlRate.java
@@ -16,7 +16,6 @@
  */
 package org.apache.nifi.processors.standard;
 
-import org.apache.nifi.processors.standard.ControlRate;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -30,7 +29,8 @@ public class TestControlRate {
     @Test
     public void testViaAttribute() throws InterruptedException {
         final TestRunner runner = TestRunners.newTestRunner(new ControlRate());
-        runner.setProperty(ControlRate.RATE_CONTROL_CRITERIA, ControlRate.ATTRIBUTE_RATE);
+        runner.
+                setProperty(ControlRate.RATE_CONTROL_CRITERIA, ControlRate.ATTRIBUTE_RATE);
         runner.setProperty(ControlRate.RATE_CONTROL_ATTRIBUTE_NAME, "count");
         runner.setProperty(ControlRate.MAX_RATE, "20000");
         runner.setProperty(ControlRate.TIME_PERIOD, "1 sec");
@@ -51,7 +51,7 @@ public class TestControlRate {
         runner.assertTransferCount(ControlRate.REL_FAILURE, 0);
         runner.assertQueueNotEmpty();
 
-        // at this point, we have sent through 27,000 but our max is 20,000 per second. 
+        // at this point, we have sent through 27,000 but our max is 20,000 per second.
         // After 1 second, we should be able to send another 13,000
         Thread.sleep(1200L);
         runner.run();

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestConvertCharacterSet.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestConvertCharacterSet.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestConvertCharacterSet.java
index 1b057d9..f303019 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestConvertCharacterSet.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestConvertCharacterSet.java
@@ -29,16 +29,21 @@ public class TestConvertCharacterSet {
 
     @Test
     public void test() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new ConvertCharacterSet());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new ConvertCharacterSet());
         runner.setProperty(ConvertCharacterSet.INPUT_CHARSET, "ASCII");
         runner.setProperty(ConvertCharacterSet.OUTPUT_CHARSET, "UTF-32");
 
-        runner.enqueue(Paths.get("src/test/resources/CharacterSetConversionSamples/Original.txt"));
+        runner.enqueue(Paths.
+                get("src/test/resources/CharacterSetConversionSamples/Original.txt"));
         runner.run();
 
         runner.assertAllFlowFilesTransferred(ConvertCharacterSet.REL_SUCCESS, 1);
-        final MockFlowFile output = runner.getFlowFilesForRelationship(ConvertCharacterSet.REL_SUCCESS).get(0);
-        output.assertContentEquals(new File("src/test/resources/CharacterSetConversionSamples/Converted2.txt"));
+        final MockFlowFile output = runner.
+                getFlowFilesForRelationship(ConvertCharacterSet.REL_SUCCESS).
+                get(0);
+        output.
+                assertContentEquals(new File("src/test/resources/CharacterSetConversionSamples/Converted2.txt"));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDetectDuplicate.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDetectDuplicate.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDetectDuplicate.java
index eed0d36..ef69a00 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDetectDuplicate.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDetectDuplicate.java
@@ -50,8 +50,10 @@ public class TestDetectDuplicate {
         System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "info");
         System.setProperty("org.slf4j.simpleLogger.showDateTime", "true");
         System.setProperty("org.slf4j.simpleLogger.log.nifi.io.nio", "debug");
-        System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.DetectDuplicate", "debug");
-        System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.TestDetectDuplicate", "debug");
+        System.
+                setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.DetectDuplicate", "debug");
+        System.
+                setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.TestDetectDuplicate", "debug");
         LOGGER = LoggerFactory.getLogger(TestListenUDP.class);
     }
 
@@ -60,18 +62,21 @@ public class TestDetectDuplicate {
         TestRunner runner = TestRunners.newTestRunner(DetectDuplicate.class);
         final DistributedMapCacheClientImpl client = createClient();
         final Map<String, String> clientProperties = new HashMap<>();
-        clientProperties.put(DistributedMapCacheClientService.HOSTNAME.getName(), "localhost");
+        clientProperties.
+                put(DistributedMapCacheClientService.HOSTNAME.getName(), "localhost");
         runner.addControllerService("client", client, clientProperties);
         runner.setProperty(DetectDuplicate.DISTRIBUTED_CACHE_SERVICE, "client");
-        runner.setProperty(DetectDuplicate.FLOWFILE_DESCRIPTION, "The original flow file");
+        runner.
+                setProperty(DetectDuplicate.FLOWFILE_DESCRIPTION, "The original flow file");
         runner.setProperty(DetectDuplicate.AGE_OFF_DURATION, "48 hours");
         Map<String, String> props = new HashMap<>();
         props.put("hash.value", "1000");
         runner.enqueue(new byte[]{}, props);
         runner.enableControllerService(client);
-        
+
         runner.run();
-        runner.assertAllFlowFilesTransferred(DetectDuplicate.REL_NON_DUPLICATE, 1);
+        runner.
+                assertAllFlowFilesTransferred(DetectDuplicate.REL_NON_DUPLICATE, 1);
         runner.clearTransferState();
         client.exists = true;
         runner.enqueue(new byte[]{}, props);
@@ -87,25 +92,29 @@ public class TestDetectDuplicate {
         TestRunner runner = TestRunners.newTestRunner(DetectDuplicate.class);
         final DistributedMapCacheClientImpl client = createClient();
         final Map<String, String> clientProperties = new HashMap<>();
-        clientProperties.put(DistributedMapCacheClientService.HOSTNAME.getName(), "localhost");
+        clientProperties.
+                put(DistributedMapCacheClientService.HOSTNAME.getName(), "localhost");
         runner.addControllerService("client", client, clientProperties);
         runner.setProperty(DetectDuplicate.DISTRIBUTED_CACHE_SERVICE, "client");
-        runner.setProperty(DetectDuplicate.FLOWFILE_DESCRIPTION, "The original flow file");
+        runner.
+                setProperty(DetectDuplicate.FLOWFILE_DESCRIPTION, "The original flow file");
         runner.setProperty(DetectDuplicate.AGE_OFF_DURATION, "2 secs");
         runner.enableControllerService(client);
-        
+
         Map<String, String> props = new HashMap<>();
         props.put("hash.value", "1000");
         runner.enqueue(new byte[]{}, props);
-        
+
         runner.run();
-        runner.assertAllFlowFilesTransferred(DetectDuplicate.REL_NON_DUPLICATE, 1);
+        runner.
+                assertAllFlowFilesTransferred(DetectDuplicate.REL_NON_DUPLICATE, 1);
         runner.clearTransferState();
         client.exists = true;
         Thread.sleep(3000);
         runner.enqueue(new byte[]{}, props);
         runner.run();
-        runner.assertAllFlowFilesTransferred(DetectDuplicate.REL_NON_DUPLICATE, 1);
+        runner.
+                assertAllFlowFilesTransferred(DetectDuplicate.REL_NON_DUPLICATE, 1);
         runner.assertTransferCount(DetectDuplicate.REL_DUPLICATE, 0);
         runner.assertTransferCount(DetectDuplicate.REL_FAILURE, 0);
     }
@@ -203,7 +212,8 @@ public class TestDetectDuplicate {
                 }
 
                 if (child.exists()) {
-                    throw new IOException("Could not delete " + dataFile.getAbsolutePath());
+                    throw new IOException("Could not delete " + dataFile.
+                            getAbsolutePath());
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDistributeLoad.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDistributeLoad.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDistributeLoad.java
index ab4c978..dfe52bf 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDistributeLoad.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestDistributeLoad.java
@@ -30,12 +30,14 @@ public class TestDistributeLoad {
     public static void before() {
         System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "info");
         System.setProperty("org.slf4j.simpleLogger.showDateTime", "true");
-        System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.DistributeLoad", "debug");
+        System.
+                setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.DistributeLoad", "debug");
     }
 
     @Test
     public void testDefaultRoundRobin() {
-        final TestRunner testRunner = TestRunners.newTestRunner(new DistributeLoad());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new DistributeLoad());
         testRunner.setProperty(DistributeLoad.NUM_RELATIONSHIPS, "100");
 
         for (int i = 0; i < 101; i++) {
@@ -51,7 +53,8 @@ public class TestDistributeLoad {
 
     @Test
     public void testWeightedRoundRobin() {
-        final TestRunner testRunner = TestRunners.newTestRunner(new DistributeLoad());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new DistributeLoad());
         testRunner.setProperty(DistributeLoad.NUM_RELATIONSHIPS, "100");
 
         testRunner.setProperty("1", "5");
@@ -71,7 +74,8 @@ public class TestDistributeLoad {
 
     @Test
     public void testValidationOnAddedProperties() {
-        final TestRunner testRunner = TestRunners.newTestRunner(new DistributeLoad());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new DistributeLoad());
         testRunner.setProperty(DistributeLoad.NUM_RELATIONSHIPS, "100");
 
         testRunner.setProperty("1", "5");
@@ -117,10 +121,13 @@ public class TestDistributeLoad {
 
     @Test
     public void testNextAvailable() {
-        final TestRunner testRunner = TestRunners.newTestRunner(new DistributeLoad());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new DistributeLoad());
 
-        testRunner.setProperty(DistributeLoad.NUM_RELATIONSHIPS.getName(), "100");
-        testRunner.setProperty(DistributeLoad.DISTRIBUTION_STRATEGY.getName(), DistributeLoad.STRATEGY_NEXT_AVAILABLE);
+        testRunner.
+                setProperty(DistributeLoad.NUM_RELATIONSHIPS.getName(), "100");
+        testRunner.
+                setProperty(DistributeLoad.DISTRIBUTION_STRATEGY.getName(), DistributeLoad.STRATEGY_NEXT_AVAILABLE);
 
         for (int i = 0; i < 99; i++) {
             testRunner.enqueue(new byte[0]);

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncodeContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncodeContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncodeContent.java
index fec411d..5f6437a 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncodeContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncodeContent.java
@@ -30,10 +30,12 @@ public class TestEncodeContent {
 
     @Test
     public void testBase64RoundTrip() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EncodeContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EncodeContent());
 
         testRunner.setProperty(EncodeContent.MODE, EncodeContent.ENCODE_MODE);
-        testRunner.setProperty(EncodeContent.ENCODING, EncodeContent.BASE64_ENCODING);
+        testRunner.
+                setProperty(EncodeContent.ENCODING, EncodeContent.BASE64_ENCODING);
 
         testRunner.enqueue(Paths.get("src/test/resources/hello.txt"));
         testRunner.clearTransferState();
@@ -41,7 +43,9 @@ public class TestEncodeContent {
 
         testRunner.assertAllFlowFilesTransferred(EncodeContent.REL_SUCCESS, 1);
 
-        MockFlowFile flowFile = testRunner.getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).get(0);
+        MockFlowFile flowFile = testRunner.
+                getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).
+                get(0);
         testRunner.assertQueueEmpty();
 
         testRunner.setProperty(EncodeContent.MODE, EncodeContent.DECODE_MODE);
@@ -50,16 +54,20 @@ public class TestEncodeContent {
         testRunner.run();
         testRunner.assertAllFlowFilesTransferred(EncodeContent.REL_SUCCESS, 1);
 
-        flowFile = testRunner.getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).get(0);
+        flowFile = testRunner.
+                getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).
+                get(0);
         flowFile.assertContentEquals(new File("src/test/resources/hello.txt"));
     }
 
     @Test
     public void testFailDecodeNotBase64() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EncodeContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EncodeContent());
 
         testRunner.setProperty(EncodeContent.MODE, EncodeContent.DECODE_MODE);
-        testRunner.setProperty(EncodeContent.ENCODING, EncodeContent.BASE64_ENCODING);
+        testRunner.
+                setProperty(EncodeContent.ENCODING, EncodeContent.BASE64_ENCODING);
 
         testRunner.enqueue(Paths.get("src/test/resources/hello.txt"));
         testRunner.clearTransferState();
@@ -70,10 +78,12 @@ public class TestEncodeContent {
 
     @Test
     public void testFailDecodeNotBase64ButIsAMultipleOfFourBytes() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EncodeContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EncodeContent());
 
         testRunner.setProperty(EncodeContent.MODE, EncodeContent.DECODE_MODE);
-        testRunner.setProperty(EncodeContent.ENCODING, EncodeContent.BASE64_ENCODING);
+        testRunner.
+                setProperty(EncodeContent.ENCODING, EncodeContent.BASE64_ENCODING);
 
         testRunner.enqueue("four@@@@multiple".getBytes());
         testRunner.clearTransferState();
@@ -84,10 +94,12 @@ public class TestEncodeContent {
 
     @Test
     public void testBase32RoundTrip() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EncodeContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EncodeContent());
 
         testRunner.setProperty(EncodeContent.MODE, EncodeContent.ENCODE_MODE);
-        testRunner.setProperty(EncodeContent.ENCODING, EncodeContent.BASE32_ENCODING);
+        testRunner.
+                setProperty(EncodeContent.ENCODING, EncodeContent.BASE32_ENCODING);
 
         testRunner.enqueue(Paths.get("src/test/resources/hello.txt"));
         testRunner.clearTransferState();
@@ -95,7 +107,9 @@ public class TestEncodeContent {
 
         testRunner.assertAllFlowFilesTransferred(EncodeContent.REL_SUCCESS, 1);
 
-        MockFlowFile flowFile = testRunner.getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).get(0);
+        MockFlowFile flowFile = testRunner.
+                getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).
+                get(0);
         testRunner.assertQueueEmpty();
 
         testRunner.setProperty(EncodeContent.MODE, EncodeContent.DECODE_MODE);
@@ -104,16 +118,20 @@ public class TestEncodeContent {
         testRunner.run();
         testRunner.assertAllFlowFilesTransferred(EncodeContent.REL_SUCCESS, 1);
 
-        flowFile = testRunner.getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).get(0);
+        flowFile = testRunner.
+                getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).
+                get(0);
         flowFile.assertContentEquals(new File("src/test/resources/hello.txt"));
     }
 
     @Test
     public void testFailDecodeNotBase32() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EncodeContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EncodeContent());
 
         testRunner.setProperty(EncodeContent.MODE, EncodeContent.DECODE_MODE);
-        testRunner.setProperty(EncodeContent.ENCODING, EncodeContent.BASE32_ENCODING);
+        testRunner.
+                setProperty(EncodeContent.ENCODING, EncodeContent.BASE32_ENCODING);
 
         testRunner.enqueue(Paths.get("src/test/resources/hello.txt"));
         testRunner.clearTransferState();
@@ -124,10 +142,12 @@ public class TestEncodeContent {
 
     @Test
     public void testHexRoundTrip() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EncodeContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EncodeContent());
 
         testRunner.setProperty(EncodeContent.MODE, EncodeContent.ENCODE_MODE);
-        testRunner.setProperty(EncodeContent.ENCODING, EncodeContent.HEX_ENCODING);
+        testRunner.
+                setProperty(EncodeContent.ENCODING, EncodeContent.HEX_ENCODING);
 
         testRunner.enqueue(Paths.get("src/test/resources/hello.txt"));
         testRunner.clearTransferState();
@@ -135,7 +155,9 @@ public class TestEncodeContent {
 
         testRunner.assertAllFlowFilesTransferred(EncodeContent.REL_SUCCESS, 1);
 
-        MockFlowFile flowFile = testRunner.getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).get(0);
+        MockFlowFile flowFile = testRunner.
+                getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).
+                get(0);
         testRunner.assertQueueEmpty();
 
         testRunner.setProperty(EncodeContent.MODE, EncodeContent.DECODE_MODE);
@@ -144,16 +166,20 @@ public class TestEncodeContent {
         testRunner.run();
         testRunner.assertAllFlowFilesTransferred(EncodeContent.REL_SUCCESS, 1);
 
-        flowFile = testRunner.getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).get(0);
+        flowFile = testRunner.
+                getFlowFilesForRelationship(EncodeContent.REL_SUCCESS).
+                get(0);
         flowFile.assertContentEquals(new File("src/test/resources/hello.txt"));
     }
 
     @Test
     public void testFailDecodeNotHex() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EncodeContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EncodeContent());
 
         testRunner.setProperty(EncodeContent.MODE, EncodeContent.DECODE_MODE);
-        testRunner.setProperty(EncodeContent.ENCODING, EncodeContent.HEX_ENCODING);
+        testRunner.
+                setProperty(EncodeContent.ENCODING, EncodeContent.HEX_ENCODING);
 
         testRunner.enqueue(Paths.get("src/test/resources/hello.txt"));
         testRunner.clearTransferState();

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java
index 07e0739..1ec1fc9 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEncryptContent.java
@@ -32,33 +32,44 @@ public class TestEncryptContent {
 
     @Test
     public void testRoundTrip() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EncryptContent());
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EncryptContent());
         testRunner.setProperty(EncryptContent.PASSWORD, "Hello, World!");
 
         for (final EncryptionMethod method : EncryptionMethod.values()) {
             if (method.isUnlimitedStrength()) {
                 continue;   // cannot test unlimited strength in unit tests because it's not enabled by the JVM by default.
             }
-            testRunner.setProperty(EncryptContent.ENCRYPTION_ALGORITHM, method.name());
-            testRunner.setProperty(EncryptContent.MODE, EncryptContent.ENCRYPT_MODE);
+            testRunner.setProperty(EncryptContent.ENCRYPTION_ALGORITHM, method.
+                    name());
+            testRunner.
+                    setProperty(EncryptContent.MODE, EncryptContent.ENCRYPT_MODE);
 
             testRunner.enqueue(Paths.get("src/test/resources/hello.txt"));
             testRunner.clearTransferState();
             testRunner.run();
 
-            testRunner.assertAllFlowFilesTransferred(EncryptContent.REL_SUCCESS, 1);
+            testRunner.
+                    assertAllFlowFilesTransferred(EncryptContent.REL_SUCCESS, 1);
 
-            MockFlowFile flowFile = testRunner.getFlowFilesForRelationship(EncryptContent.REL_SUCCESS).get(0);
+            MockFlowFile flowFile = testRunner.
+                    getFlowFilesForRelationship(EncryptContent.REL_SUCCESS).
+                    get(0);
             testRunner.assertQueueEmpty();
 
-            testRunner.setProperty(EncryptContent.MODE, EncryptContent.DECRYPT_MODE);
+            testRunner.
+                    setProperty(EncryptContent.MODE, EncryptContent.DECRYPT_MODE);
             testRunner.enqueue(flowFile);
             testRunner.clearTransferState();
             testRunner.run();
-            testRunner.assertAllFlowFilesTransferred(EncryptContent.REL_SUCCESS, 1);
+            testRunner.
+                    assertAllFlowFilesTransferred(EncryptContent.REL_SUCCESS, 1);
 
-            flowFile = testRunner.getFlowFilesForRelationship(EncryptContent.REL_SUCCESS).get(0);
-            flowFile.assertContentEquals(new File("src/test/resources/hello.txt"));
+            flowFile = testRunner.
+                    getFlowFilesForRelationship(EncryptContent.REL_SUCCESS).
+                    get(0);
+            flowFile.
+                    assertContentEquals(new File("src/test/resources/hello.txt"));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateJsonPath.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateJsonPath.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateJsonPath.java
index 5fa8f4d..25dfc1b 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateJsonPath.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateJsonPath.java
@@ -38,60 +38,77 @@ import static org.junit.Assert.assertEquals;
 
 public class TestEvaluateJsonPath {
 
-    private static final Path JSON_SNIPPET = Paths.get("src/test/resources/TestJson/json-sample.json");
-    private static final Path XML_SNIPPET = Paths.get("src/test/resources/TestXml/xml-snippet.xml");
+    private static final Path JSON_SNIPPET = Paths.
+            get("src/test/resources/TestJson/json-sample.json");
+    private static final Path XML_SNIPPET = Paths.
+            get("src/test/resources/TestXml/xml-snippet.xml");
 
     @Test(expected = AssertionError.class)
     public void testInvalidJsonPath() {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("invalid.jsonPath", "$..");
 
-        Assert.fail("An improper JsonPath expression was not detected as being invalid.");
+        Assert.
+                fail("An improper JsonPath expression was not detected as being invalid.");
     }
 
     @Test
     public void testInvalidJsonDocument() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
-        testRunner.assertAllFlowFilesTransferred(EvaluateJsonPath.REL_FAILURE, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateJsonPath.REL_FAILURE).get(0);
+        testRunner.
+                assertAllFlowFilesTransferred(EvaluateJsonPath.REL_FAILURE, 1);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateJsonPath.REL_FAILURE).
+                get(0);
     }
 
-
     @Test(expected = AssertionError.class)
     public void testInvalidConfiguration_destinationContent_twoPaths() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
         testRunner.setProperty("JsonPath1", "$[0]._id");
         testRunner.setProperty("JsonPath2", "$[0].name");
 
         testRunner.enqueue(JSON_SNIPPET);
         testRunner.run();
 
-        Assert.fail("Processor incorrectly ran with an invalid configuration of multiple paths specified as attributes for a destination of content.");
+        Assert.
+                fail("Processor incorrectly ran with an invalid configuration of multiple paths specified as attributes for a destination of content.");
     }
 
     @Test(expected = AssertionError.class)
     public void testInvalidConfiguration_invalidJsonPath_space() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
         testRunner.setProperty("JsonPath1", "$[0]. _id");
 
         testRunner.enqueue(JSON_SNIPPET);
         testRunner.run();
 
-        Assert.fail("Processor incorrectly ran with an invalid configuration of multiple paths specified as attributes for a destination of content.");
+        Assert.
+                fail("Processor incorrectly ran with an invalid configuration of multiple paths specified as attributes for a destination of content.");
     }
 
     @Test
     public void testConfiguration_destinationAttributes_twoPaths() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("JsonPath1", "$[0]._id");
         testRunner.setProperty("JsonPath2", "$[0].name");
 
@@ -103,8 +120,10 @@ public class TestEvaluateJsonPath {
     public void testExtractPath_destinationAttribute() throws Exception {
         String jsonPathAttrKey = "JsonPath";
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
         testRunner.setProperty(jsonPathAttrKey, "$[0]._id");
 
         testRunner.enqueue(JSON_SNIPPET);
@@ -113,15 +132,22 @@ public class TestEvaluateJsonPath {
         Relationship expectedRel = EvaluateJsonPath.REL_MATCH;
 
         testRunner.assertAllFlowFilesTransferred(expectedRel, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(expectedRel).get(0);
-        Assert.assertEquals("Transferred flow file did not have the correct result", "54df94072d5dbf7dc6340cc5", out.getAttribute(jsonPathAttrKey));
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(expectedRel).
+                get(0);
+        Assert.
+                assertEquals("Transferred flow file did not have the correct result", "54df94072d5dbf7dc6340cc5", out.
+                        getAttribute(jsonPathAttrKey));
     }
 
     @Test
     public void testExtractPath_destinationAttributes_twoPaths() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
-        testRunner.setProperty(EvaluateJsonPath.RETURN_TYPE, EvaluateJsonPath.RETURN_TYPE_JSON);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
+        testRunner.
+                setProperty(EvaluateJsonPath.RETURN_TYPE, EvaluateJsonPath.RETURN_TYPE_JSON);
 
         String jsonPathIdAttrKey = "evaluatejson.id";
         String jsonPathNameAttrKey = "evaluatejson.name";
@@ -135,15 +161,23 @@ public class TestEvaluateJsonPath {
         Relationship expectedRel = EvaluateJsonPath.REL_MATCH;
 
         testRunner.assertAllFlowFilesTransferred(expectedRel, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(expectedRel).get(0);
-        Assert.assertEquals("Transferred flow file did not have the correct result for id attribute", "54df94072d5dbf7dc6340cc5", out.getAttribute(jsonPathIdAttrKey));
-        Assert.assertEquals("Transferred flow file did not have the correct result for name attribute", "{\"first\":\"Shaffer\",\"last\":\"Pearson\"}", out.getAttribute(jsonPathNameAttrKey));
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(expectedRel).
+                get(0);
+        Assert.
+                assertEquals("Transferred flow file did not have the correct result for id attribute", "54df94072d5dbf7dc6340cc5", out.
+                        getAttribute(jsonPathIdAttrKey));
+        Assert.
+                assertEquals("Transferred flow file did not have the correct result for name attribute", "{\"first\":\"Shaffer\",\"last\":\"Pearson\"}", out.
+                        getAttribute(jsonPathNameAttrKey));
     }
 
     @Test
     public void testExtractPath_destinationAttributes_twoPaths_notFound() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
 
         String jsonPathIdAttrKey = "evaluatejson.id";
         String jsonPathNameAttrKey = "evaluatejson.name";
@@ -157,15 +191,23 @@ public class TestEvaluateJsonPath {
         Relationship expectedRel = EvaluateJsonPath.REL_MATCH;
 
         testRunner.assertAllFlowFilesTransferred(expectedRel, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(expectedRel).get(0);
-        Assert.assertEquals("Transferred flow file did not have the correct result for id attribute", "", out.getAttribute(jsonPathIdAttrKey));
-        Assert.assertEquals("Transferred flow file did not have the correct result for name attribute", "", out.getAttribute(jsonPathNameAttrKey));
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(expectedRel).
+                get(0);
+        Assert.
+                assertEquals("Transferred flow file did not have the correct result for id attribute", "", out.
+                        getAttribute(jsonPathIdAttrKey));
+        Assert.
+                assertEquals("Transferred flow file did not have the correct result for name attribute", "", out.
+                        getAttribute(jsonPathNameAttrKey));
     }
 
     @Test
     public void testExtractPath_destinationAttributes_twoPaths_oneFound() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
 
         String jsonPathIdAttrKey = "evaluatejson.id";
         String jsonPathNameAttrKey = "evaluatejson.name";
@@ -179,17 +221,25 @@ public class TestEvaluateJsonPath {
         Relationship expectedRel = EvaluateJsonPath.REL_MATCH;
 
         testRunner.assertAllFlowFilesTransferred(expectedRel, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(expectedRel).get(0);
-        Assert.assertEquals("Transferred flow file did not have the correct result for id attribute", "54df94072d5dbf7dc6340cc5", out.getAttribute(jsonPathIdAttrKey));
-        Assert.assertEquals("Transferred flow file did not have the correct result for name attribute", StringUtils.EMPTY, out.getAttribute(jsonPathNameAttrKey));
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(expectedRel).
+                get(0);
+        Assert.
+                assertEquals("Transferred flow file did not have the correct result for id attribute", "54df94072d5dbf7dc6340cc5", out.
+                        getAttribute(jsonPathIdAttrKey));
+        Assert.
+                assertEquals("Transferred flow file did not have the correct result for name attribute", StringUtils.EMPTY, out.
+                        getAttribute(jsonPathNameAttrKey));
     }
 
     @Test
     public void testExtractPath_destinationContent() throws Exception {
         String jsonPathAttrKey = "JsonPath";
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
         testRunner.setProperty(jsonPathAttrKey, "$[0]._id");
 
         testRunner.enqueue(JSON_SNIPPET);
@@ -198,16 +248,19 @@ public class TestEvaluateJsonPath {
         Relationship expectedRel = EvaluateJsonPath.REL_MATCH;
 
         testRunner.assertAllFlowFilesTransferred(expectedRel, 1);
-        testRunner.getFlowFilesForRelationship(expectedRel).get(0).assertContentEquals("54df94072d5dbf7dc6340cc5");
+        testRunner.getFlowFilesForRelationship(expectedRel).
+                get(0).
+                assertContentEquals("54df94072d5dbf7dc6340cc5");
     }
 
-
     @Test
     public void testExtractPath_destinationContent_indefiniteResult() throws Exception {
         String jsonPathAttrKey = "friends.indefinite.id.list";
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
         testRunner.setProperty(jsonPathAttrKey, "$[0].friends.[*].id");
 
         testRunner.enqueue(JSON_SNIPPET);
@@ -216,15 +269,19 @@ public class TestEvaluateJsonPath {
         Relationship expectedRel = EvaluateJsonPath.REL_MATCH;
 
         testRunner.assertAllFlowFilesTransferred(expectedRel, 1);
-        testRunner.getFlowFilesForRelationship(expectedRel).get(0).assertContentEquals("[0,1,2]");
+        testRunner.getFlowFilesForRelationship(expectedRel).
+                get(0).
+                assertContentEquals("[0,1,2]");
     }
 
     @Test
     public void testExtractPath_destinationContent_indefiniteResult_operators() throws Exception {
         String jsonPathAttrKey = "friends.indefinite.id.list";
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
         testRunner.setProperty(jsonPathAttrKey, "$[0].friends[?(@.id < 3)].id");
 
         testRunner.enqueue(JSON_SNIPPET);
@@ -233,13 +290,17 @@ public class TestEvaluateJsonPath {
         Relationship expectedRel = EvaluateJsonPath.REL_MATCH;
 
         testRunner.assertAllFlowFilesTransferred(expectedRel, 1);
-        testRunner.getFlowFilesForRelationship(expectedRel).get(0).assertContentEquals("[0,1,2]");
+        testRunner.getFlowFilesForRelationship(expectedRel).
+                get(0).
+                assertContentEquals("[0,1,2]");
     }
 
     @Test
     public void testRouteUnmatched_destinationContent_noMatch() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
         testRunner.setProperty("jsonPath", "$[0].nonexistent.key");
 
         testRunner.enqueue(JSON_SNIPPET);
@@ -248,17 +309,21 @@ public class TestEvaluateJsonPath {
         Relationship expectedRel = EvaluateJsonPath.REL_NO_MATCH;
 
         testRunner.assertAllFlowFilesTransferred(expectedRel, 1);
-        testRunner.getFlowFilesForRelationship(expectedRel).get(0).assertContentEquals(JSON_SNIPPET);
+        testRunner.getFlowFilesForRelationship(expectedRel).
+                get(0).
+                assertContentEquals(JSON_SNIPPET);
     }
 
-
     @Test
     public void testRouteFailure_returnTypeScalar_resultArray() throws Exception {
         String jsonPathAttrKey = "friends.indefinite.id.list";
 
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.RETURN_TYPE, EvaluateJsonPath.RETURN_TYPE_SCALAR);
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.RETURN_TYPE, EvaluateJsonPath.RETURN_TYPE_SCALAR);
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_CONTENT);
         testRunner.setProperty(jsonPathAttrKey, "$[0].friends[?(@.id < 3)].id");
 
         testRunner.enqueue(JSON_SNIPPET);
@@ -267,26 +332,34 @@ public class TestEvaluateJsonPath {
         Relationship expectedRel = EvaluateJsonPath.REL_FAILURE;
 
         testRunner.assertAllFlowFilesTransferred(expectedRel, 1);
-        testRunner.getFlowFilesForRelationship(expectedRel).get(0).assertContentEquals(JSON_SNIPPET);
+        testRunner.getFlowFilesForRelationship(expectedRel).
+                get(0).
+                assertContentEquals(JSON_SNIPPET);
     }
 
     @Test
     public void testNullInput() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.RETURN_TYPE, EvaluateJsonPath.RETURN_TYPE_JSON);
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.RETURN_TYPE, EvaluateJsonPath.RETURN_TYPE_JSON);
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("stringField", "$.stringField");
         testRunner.setProperty("missingField", "$.missingField");
         testRunner.setProperty("nullField", "$.nullField");
 
-        ProcessSession session = testRunner.getProcessSessionFactory().createSession();
+        ProcessSession session = testRunner.getProcessSessionFactory().
+                createSession();
         FlowFile ff = session.create();
 
         ff = session.write(ff, new OutputStreamCallback() {
             @Override
             public void process(OutputStream out) throws IOException {
                 try (OutputStream outputStream = new BufferedOutputStream(out)) {
-                    outputStream.write("{\"stringField\": \"String Value\", \"nullField\": null}".getBytes(StandardCharsets.UTF_8));
+                    outputStream.
+                            write("{\"stringField\": \"String Value\", \"nullField\": null}".
+                                    getBytes(StandardCharsets.UTF_8));
                 }
             }
         });
@@ -296,7 +369,9 @@ public class TestEvaluateJsonPath {
 
         testRunner.assertTransferCount(EvaluateJsonPath.REL_MATCH, 1);
 
-        FlowFile output = testRunner.getFlowFilesForRelationship(EvaluateJsonPath.REL_MATCH).get(0);
+        FlowFile output = testRunner.
+                getFlowFilesForRelationship(EvaluateJsonPath.REL_MATCH).
+                get(0);
 
         String validFieldValue = output.getAttribute("stringField");
         assertEquals("String Value", validFieldValue);
@@ -310,22 +385,29 @@ public class TestEvaluateJsonPath {
 
     @Test
     public void testNullInput_nullStringRepresentation() throws Exception {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateJsonPath());
-        testRunner.setProperty(EvaluateJsonPath.RETURN_TYPE, EvaluateJsonPath.RETURN_TYPE_JSON);
-        testRunner.setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
-        testRunner.setProperty(EvaluateJsonPath.NULL_VALUE_DEFAULT_REPRESENTATION, AbstractJsonPathProcessor.NULL_STRING_OPTION);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateJsonPath());
+        testRunner.
+                setProperty(EvaluateJsonPath.RETURN_TYPE, EvaluateJsonPath.RETURN_TYPE_JSON);
+        testRunner.
+                setProperty(EvaluateJsonPath.DESTINATION, EvaluateJsonPath.DESTINATION_ATTRIBUTE);
+        testRunner.
+                setProperty(EvaluateJsonPath.NULL_VALUE_DEFAULT_REPRESENTATION, AbstractJsonPathProcessor.NULL_STRING_OPTION);
         testRunner.setProperty("stringField", "$.stringField");
         testRunner.setProperty("missingField", "$.missingField");
         testRunner.setProperty("nullField", "$.nullField");
 
-        ProcessSession session = testRunner.getProcessSessionFactory().createSession();
+        ProcessSession session = testRunner.getProcessSessionFactory().
+                createSession();
         FlowFile ff = session.create();
 
         ff = session.write(ff, new OutputStreamCallback() {
             @Override
             public void process(OutputStream out) throws IOException {
                 try (OutputStream outputStream = new BufferedOutputStream(out)) {
-                    outputStream.write("{\"stringField\": \"String Value\", \"nullField\": null}".getBytes(StandardCharsets.UTF_8));
+                    outputStream.
+                            write("{\"stringField\": \"String Value\", \"nullField\": null}".
+                                    getBytes(StandardCharsets.UTF_8));
                 }
             }
         });
@@ -335,7 +417,9 @@ public class TestEvaluateJsonPath {
 
         testRunner.assertTransferCount(EvaluateJsonPath.REL_MATCH, 1);
 
-        FlowFile output = testRunner.getFlowFilesForRelationship(EvaluateJsonPath.REL_MATCH).get(0);
+        FlowFile output = testRunner.
+                getFlowFilesForRelationship(EvaluateJsonPath.REL_MATCH).
+                get(0);
 
         String validFieldValue = output.getAttribute("stringField");
         assertEquals("String Value", validFieldValue);

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXPath.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXPath.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXPath.java
index c3e463a..b88b9f9 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXPath.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestEvaluateXPath.java
@@ -33,60 +33,81 @@ import org.junit.Test;
 
 public class TestEvaluateXPath {
 
-    private static final Path XML_SNIPPET = Paths.get("src/test/resources/TestXml/xml-snippet.xml");
+    private static final Path XML_SNIPPET = Paths.
+            get("src/test/resources/TestXml/xml-snippet.xml");
 
     @Test
     public void testAsAttribute() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXPath());
-        testRunner.setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXPath());
+        testRunner.
+                setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("xpath.result1", "/");
-        testRunner.setProperty("xpath.result2", "/*:bundle/node/subNode/value/text()");
+        testRunner.
+                setProperty("xpath.result2", "/*:bundle/node/subNode/value/text()");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXPath.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXPath.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXPath.REL_MATCH).
+                get(0);
         out.assertAttributeEquals("xpath.result2", "Hello");
-        assertTrue(out.getAttribute("xpath.result1").contains("Hello"));
+        assertTrue(out.getAttribute("xpath.result1").
+                contains("Hello"));
     }
 
     @Test
     public void testCheckIfElementExists() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXPath());
-        testRunner.setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_ATTRIBUTE);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXPath());
+        testRunner.
+                setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_ATTRIBUTE);
         testRunner.setProperty("xpath.result1", "/");
-        testRunner.setProperty("xpath.result.exist.1", "boolean(/*:bundle/node)");
-        testRunner.setProperty("xpath.result.exist.2", "boolean(/*:bundle/node2)");
+        testRunner.
+                setProperty("xpath.result.exist.1", "boolean(/*:bundle/node)");
+        testRunner.
+                setProperty("xpath.result.exist.2", "boolean(/*:bundle/node2)");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXPath.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXPath.REL_MATCH).get(0);
-        assertTrue(out.getAttribute("xpath.result1").contains("Hello"));
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXPath.REL_MATCH).
+                get(0);
+        assertTrue(out.getAttribute("xpath.result1").
+                contains("Hello"));
         out.assertAttributeEquals("xpath.result.exist.1", "true");
         out.assertAttributeEquals("xpath.result.exist.2", "false");
     }
 
     @Test
     public void testUnmatched() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXPath());
-        testRunner.setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXPath());
+        testRunner.
+                setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_CONTENT);
         testRunner.setProperty("xpath.result.exist.2", "/*:bundle/node2");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXPath.REL_NO_MATCH, 1);
-        testRunner.getFlowFilesForRelationship(EvaluateXPath.REL_NO_MATCH).get(0).assertContentEquals(XML_SNIPPET);
+        testRunner.getFlowFilesForRelationship(EvaluateXPath.REL_NO_MATCH).
+                get(0).
+                assertContentEquals(XML_SNIPPET);
     }
 
     @Test(expected = java.lang.AssertionError.class)
     public void testMultipleXPathForContent() throws IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXPath());
-        testRunner.setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_CONTENT);
-        testRunner.setProperty(EvaluateXPath.RETURN_TYPE, EvaluateXPath.RETURN_TYPE_AUTO);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXPath());
+        testRunner.
+                setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_CONTENT);
+        testRunner.
+                setProperty(EvaluateXPath.RETURN_TYPE, EvaluateXPath.RETURN_TYPE_AUTO);
         testRunner.setProperty("some.property.1", "/*:bundle/node/subNode[1]");
         testRunner.setProperty("some.property.2", "/*:bundle/node/subNode[2]");
 
@@ -96,15 +117,19 @@ public class TestEvaluateXPath {
 
     @Test
     public void testWriteToContent() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXPath());
-        testRunner.setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXPath());
+        testRunner.
+                setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_CONTENT);
         testRunner.setProperty("some.property", "/*:bundle/node/subNode[1]");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXPath.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXPath.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXPath.REL_MATCH).
+                get(0);
         final byte[] outData = testRunner.getContentAsByteArray(out);
         final String outXml = new String(outData, "UTF-8");
         assertTrue(outXml.contains("subNode"));
@@ -113,8 +138,10 @@ public class TestEvaluateXPath {
 
     @Test
     public void testFailureIfContentMatchesMultipleNodes() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXPath());
-        testRunner.setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_CONTENT);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXPath());
+        testRunner.
+                setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_CONTENT);
         testRunner.setProperty("some.property", "/*:bundle/node/subNode");
 
         testRunner.enqueue(XML_SNIPPET);
@@ -125,33 +152,45 @@ public class TestEvaluateXPath {
 
     @Test
     public void testWriteStringToContent() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXPath());
-        testRunner.setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_CONTENT);
-        testRunner.setProperty(EvaluateXPath.RETURN_TYPE, EvaluateXPath.RETURN_TYPE_STRING);
-        testRunner.setProperty("some.property", "/*:bundle/node/subNode[1]/value/text()");
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXPath());
+        testRunner.
+                setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_CONTENT);
+        testRunner.
+                setProperty(EvaluateXPath.RETURN_TYPE, EvaluateXPath.RETURN_TYPE_STRING);
+        testRunner.
+                setProperty("some.property", "/*:bundle/node/subNode[1]/value/text()");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXPath.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXPath.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXPath.REL_MATCH).
+                get(0);
         final byte[] outData = testRunner.getContentAsByteArray(out);
         final String outXml = new String(outData, "UTF-8");
-        assertTrue(outXml.trim().equals("Hello"));
+        assertTrue(outXml.trim().
+                equals("Hello"));
     }
 
     @Test
     public void testWriteNodeSetToAttribute() throws XPathFactoryConfigurationException, IOException {
-        final TestRunner testRunner = TestRunners.newTestRunner(new EvaluateXPath());
-        testRunner.setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_ATTRIBUTE);
-        testRunner.setProperty(EvaluateXPath.RETURN_TYPE, EvaluateXPath.RETURN_TYPE_NODESET);
+        final TestRunner testRunner = TestRunners.
+                newTestRunner(new EvaluateXPath());
+        testRunner.
+                setProperty(EvaluateXPath.DESTINATION, EvaluateXPath.DESTINATION_ATTRIBUTE);
+        testRunner.
+                setProperty(EvaluateXPath.RETURN_TYPE, EvaluateXPath.RETURN_TYPE_NODESET);
         testRunner.setProperty("some.property", "/*:bundle/node/subNode[1]");
 
         testRunner.enqueue(XML_SNIPPET);
         testRunner.run();
 
         testRunner.assertAllFlowFilesTransferred(EvaluateXPath.REL_MATCH, 1);
-        final MockFlowFile out = testRunner.getFlowFilesForRelationship(EvaluateXPath.REL_MATCH).get(0);
+        final MockFlowFile out = testRunner.
+                getFlowFilesForRelationship(EvaluateXPath.REL_MATCH).
+                get(0);
         final String outXml = out.getAttribute("some.property");
         assertTrue(outXml.contains("subNode"));
         assertTrue(outXml.contains("Hello"));


[10/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnContent.java
index 44d090b..8f1eb4e 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/RouteOnContent.java
@@ -60,9 +60,9 @@ import org.apache.nifi.util.IntegerHolder;
         + "of the property is the name of the relationship and the value is a Regular Expression to match against the FlowFile "
         + "content. User-Defined properties do support the Attribute Expression Language, but the results are interpreted as "
         + "literal values, not Regular Expressions")
-@DynamicProperty(name="Relationship Name", value="A Regular Expression", supportsExpressionLanguage=true, description="Routes FlowFiles whose " + 
-        "content matches the regular expressoin defined by Dynamic Property's value to the Relationship defined by the Dynamic Property's key")
-@DynamicRelationship(name="Name from Dynamic Property", description="FlowFiles that match the Dynamic Property's Regular Expression")
+@DynamicProperty(name = "Relationship Name", value = "A Regular Expression", supportsExpressionLanguage = true, description = "Routes FlowFiles whose "
+        + "content matches the regular expressoin defined by Dynamic Property's value to the Relationship defined by the Dynamic Property's key")
+@DynamicRelationship(name = "Name from Dynamic Property", description = "FlowFiles that match the Dynamic Property's Regular Expression")
 public class RouteOnContent extends AbstractProcessor {
 
     public static final String ROUTE_ATTRIBUTE_KEY = "RouteOnContent.Route";
@@ -70,30 +70,34 @@ public class RouteOnContent extends AbstractProcessor {
     public static final String MATCH_ALL = "content must match exactly";
     public static final String MATCH_SUBSEQUENCE = "content must contain match";
 
-    public static final PropertyDescriptor BUFFER_SIZE = new PropertyDescriptor.Builder()
-            .name("Content Buffer Size")
-            .description("Specifies the maximum amount of data to buffer in order to apply the regular expressions. If the size of the FlowFile exceeds this value, any amount of this value will be ignored")
-            .required(true)
-            .addValidator(StandardValidators.DATA_SIZE_VALIDATOR)
-            .defaultValue("1 MB")
-            .build();
-    public static final PropertyDescriptor MATCH_REQUIREMENT = new PropertyDescriptor.Builder()
-            .name("Match Requirement")
-            .description("Specifies whether the entire content of the file must match the regular expression exactly, or if any part of the file (up to Content Buffer Size) can contain the regular expression in order to be considered a match")
-            .required(true)
-            .allowableValues(MATCH_ALL, MATCH_SUBSEQUENCE)
-            .defaultValue(MATCH_ALL)
-            .build();
-    public static final PropertyDescriptor CHARACTER_SET = new PropertyDescriptor.Builder()
-            .name("Character Set")
-            .description("The Character Set in which the file is encoded")
-            .required(true)
-            .addValidator(StandardValidators.CHARACTER_SET_VALIDATOR)
-            .defaultValue("UTF-8")
-            .build();
-
-    public static final Relationship REL_NO_MATCH = new Relationship.Builder().name("unmatched")
-            .description("FlowFiles that do not match any of the user-supplied regular expressions will be routed to this relationship").build();
+    public static final PropertyDescriptor BUFFER_SIZE = new PropertyDescriptor.Builder().
+            name("Content Buffer Size").
+            description("Specifies the maximum amount of data to buffer in order to apply the regular expressions. If the size of the FlowFile "
+                    + "exceeds this value, any amount of this value will be ignored").
+            required(true).
+            addValidator(StandardValidators.DATA_SIZE_VALIDATOR).
+            defaultValue("1 MB").
+            build();
+    public static final PropertyDescriptor MATCH_REQUIREMENT = new PropertyDescriptor.Builder().
+            name("Match Requirement").
+            description("Specifies whether the entire content of the file must match the regular expression exactly, or if any part of the file "
+                    + "(up to Content Buffer Size) can contain the regular expression in order to be considered a match").
+            required(true).
+            allowableValues(MATCH_ALL, MATCH_SUBSEQUENCE).
+            defaultValue(MATCH_ALL).
+            build();
+    public static final PropertyDescriptor CHARACTER_SET = new PropertyDescriptor.Builder().
+            name("Character Set").
+            description("The Character Set in which the file is encoded").
+            required(true).
+            addValidator(StandardValidators.CHARACTER_SET_VALIDATOR).
+            defaultValue("UTF-8").
+            build();
+
+    public static final Relationship REL_NO_MATCH = new Relationship.Builder().
+            name("unmatched").
+            description("FlowFiles that do not match any of the user-supplied regular expressions will be routed to this relationship").
+            build();
 
     private final AtomicReference<Set<Relationship>> relationships = new AtomicReference<>();
     private List<PropertyDescriptor> properties;
@@ -128,19 +132,23 @@ public class RouteOnContent extends AbstractProcessor {
         }
 
         return new PropertyDescriptor.Builder()
-                .required(false)
-                .name(propertyDescriptorName)
-                .addValidator(StandardValidators.createRegexValidator(0, Integer.MAX_VALUE, true))
-                .dynamic(true)
-                .expressionLanguageSupported(true)
-                .build();
+                .required(false).
+                name(propertyDescriptorName).
+                addValidator(StandardValidators.
+                        createRegexValidator(0, Integer.MAX_VALUE, true)).
+                dynamic(true).
+                expressionLanguageSupported(true).
+                build();
     }
 
     @Override
     public void onPropertyModified(final PropertyDescriptor descriptor, final String oldValue, final String newValue) {
         if (descriptor.isDynamic()) {
-            final Set<Relationship> relationships = new HashSet<>(this.relationships.get());
-            final Relationship relationship = new Relationship.Builder().name(descriptor.getName()).build();
+            final Set<Relationship> relationships = new HashSet<>(this.relationships.
+                    get());
+            final Relationship relationship = new Relationship.Builder().
+                    name(descriptor.getName()).
+                    build();
 
             if (newValue == null) {
                 relationships.remove(relationship);
@@ -162,15 +170,20 @@ public class RouteOnContent extends AbstractProcessor {
         final AttributeValueDecorator quoteDecorator = new AttributeValueDecorator() {
             @Override
             public String decorate(final String attributeValue) {
-                return (attributeValue == null) ? null : Pattern.quote(attributeValue);
+                return (attributeValue == null) ? null : Pattern.
+                        quote(attributeValue);
             }
         };
 
         final Map<FlowFile, Set<Relationship>> flowFileDestinationMap = new HashMap<>();
         final ProcessorLog logger = getLogger();
 
-        final Charset charset = Charset.forName(context.getProperty(CHARACTER_SET).getValue());
-        final byte[] buffer = new byte[context.getProperty(BUFFER_SIZE).asDataSize(DataUnit.B).intValue()];
+        final Charset charset = Charset.forName(context.
+                getProperty(CHARACTER_SET).
+                getValue());
+        final byte[] buffer = new byte[context.getProperty(BUFFER_SIZE).
+                asDataSize(DataUnit.B).
+                intValue()];
         for (final FlowFile flowFile : flowFiles) {
             final Set<Relationship> destinations = new HashSet<>();
             flowFileDestinationMap.put(flowFile, destinations);
@@ -179,58 +192,82 @@ public class RouteOnContent extends AbstractProcessor {
             session.read(flowFile, new InputStreamCallback() {
                 @Override
                 public void process(final InputStream in) throws IOException {
-                    bufferedByteCount.set(StreamUtils.fillBuffer(in, buffer, false));
+                    bufferedByteCount.set(StreamUtils.
+                            fillBuffer(in, buffer, false));
                 }
             });
 
-            final String contentString = new String(buffer, 0, bufferedByteCount.get(), charset);
+            final String contentString = new String(buffer, 0, bufferedByteCount.
+                    get(), charset);
 
-            for (final PropertyDescriptor descriptor : context.getProperties().keySet()) {
+            for (final PropertyDescriptor descriptor : context.getProperties().
+                    keySet()) {
                 if (!descriptor.isDynamic()) {
                     continue;
                 }
 
-                final String regex = context.getProperty(descriptor).evaluateAttributeExpressions(flowFile, quoteDecorator).getValue();
+                final String regex = context.getProperty(descriptor).
+                        evaluateAttributeExpressions(flowFile, quoteDecorator).
+                        getValue();
                 final Pattern pattern = Pattern.compile(regex);
                 final boolean matches;
-                if (context.getProperty(MATCH_REQUIREMENT).getValue().equalsIgnoreCase(MATCH_ALL)) {
-                    matches = pattern.matcher(contentString).matches();
+                if (context.getProperty(MATCH_REQUIREMENT).
+                        getValue().
+                        equalsIgnoreCase(MATCH_ALL)) {
+                    matches = pattern.matcher(contentString).
+                            matches();
                 } else {
-                    matches = pattern.matcher(contentString).find();
+                    matches = pattern.matcher(contentString).
+                            find();
                 }
 
                 if (matches) {
-                    final Relationship relationship = new Relationship.Builder().name(descriptor.getName()).build();
+                    final Relationship relationship = new Relationship.Builder().
+                            name(descriptor.getName()).
+                            build();
                     destinations.add(relationship);
                 }
             }
         }
 
-        for (final Map.Entry<FlowFile, Set<Relationship>> entry : flowFileDestinationMap.entrySet()) {
+        for (final Map.Entry<FlowFile, Set<Relationship>> entry : flowFileDestinationMap.
+                entrySet()) {
             FlowFile flowFile = entry.getKey();
             final Set<Relationship> destinations = entry.getValue();
 
             if (destinations.isEmpty()) {
-                flowFile = session.putAttribute(flowFile, ROUTE_ATTRIBUTE_KEY, REL_NO_MATCH.getName());
+                flowFile = session.
+                        putAttribute(flowFile, ROUTE_ATTRIBUTE_KEY, REL_NO_MATCH.
+                                getName());
                 session.transfer(flowFile, REL_NO_MATCH);
-                session.getProvenanceReporter().route(flowFile, REL_NO_MATCH);
+                session.getProvenanceReporter().
+                        route(flowFile, REL_NO_MATCH);
                 logger.info("Routing {} to 'unmatched'", new Object[]{flowFile});
             } else {
-                final Relationship firstRelationship = destinations.iterator().next();
+                final Relationship firstRelationship = destinations.iterator().
+                        next();
                 destinations.remove(firstRelationship);
 
                 for (final Relationship relationship : destinations) {
                     FlowFile clone = session.clone(flowFile);
-                    clone = session.putAttribute(clone, ROUTE_ATTRIBUTE_KEY, relationship.getName());
-                    session.getProvenanceReporter().route(clone, relationship);
+                    clone = session.
+                            putAttribute(clone, ROUTE_ATTRIBUTE_KEY, relationship.
+                                    getName());
+                    session.getProvenanceReporter().
+                            route(clone, relationship);
                     session.transfer(clone, relationship);
-                    logger.info("Cloning {} to {} and routing clone to {}", new Object[]{flowFile, clone, relationship});
+                    logger.
+                            info("Cloning {} to {} and routing clone to {}", new Object[]{flowFile, clone, relationship});
                 }
 
-                flowFile = session.putAttribute(flowFile, ROUTE_ATTRIBUTE_KEY, firstRelationship.getName());
-                session.getProvenanceReporter().route(flowFile, firstRelationship);
+                flowFile = session.
+                        putAttribute(flowFile, ROUTE_ATTRIBUTE_KEY, firstRelationship.
+                                getName());
+                session.getProvenanceReporter().
+                        route(flowFile, firstRelationship);
                 session.transfer(flowFile, firstRelationship);
-                logger.info("Routing {} to {}", new Object[]{flowFile, firstRelationship});
+                logger.
+                        info("Routing {} to {}", new Object[]{flowFile, firstRelationship});
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java
index 6d48d02..53ed961 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanAttribute.java
@@ -62,35 +62,35 @@ public class ScanAttribute extends AbstractProcessor {
     public static final String MATCH_CRITERIA_ALL = "All Must Match";
     public static final String MATCH_CRITERIA_ANY = "At Least 1 Must Match";
 
-    public static final PropertyDescriptor MATCHING_CRITERIA = new PropertyDescriptor.Builder()
-            .name("Match Criteria")
-            .description("If set to All Must Match, then FlowFiles will be routed to 'matched' only if all specified "
+    public static final PropertyDescriptor MATCHING_CRITERIA = new PropertyDescriptor.Builder().
+            name("Match Criteria").
+            description("If set to All Must Match, then FlowFiles will be routed to 'matched' only if all specified "
                     + "attributes' values are found in the dictionary. If set to At Least 1 Must Match, FlowFiles will "
-                    + "be routed to 'matched' if any attribute specified is found in the dictionary")
-            .required(true)
-            .allowableValues(MATCH_CRITERIA_ANY, MATCH_CRITERIA_ALL)
-            .defaultValue(MATCH_CRITERIA_ANY)
-            .build();
-    public static final PropertyDescriptor ATTRIBUTE_PATTERN = new PropertyDescriptor.Builder()
-            .name("Attribute Pattern")
-            .description("Regular Expression that specifies the names of attributes whose values will be matched against the terms in the dictionary")
-            .required(true)
-            .addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR)
-            .defaultValue(".*")
-            .build();
-    public static final PropertyDescriptor DICTIONARY_FILE = new PropertyDescriptor.Builder()
-            .name("Dictionary File")
-            .description("A new-line-delimited text file that includes the terms that should trigger a match. Empty lines are ignored.")
-            .required(true)
-            .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor DICTIONARY_FILTER = new PropertyDescriptor.Builder()
-            .name("Dictionary Filter Pattern")
-            .description("A Regular Expression that will be applied to each line in the dictionary file. If the regular expression does not match the line, the line will not be included in the list of terms to search for. If a Matching Group is specified, only the portion of the term that matches that Matching Group will be used instead of the entire term. If not specified, all terms in the dictionary will be used and each term will consist of the text of the entire line in the file")
-            .required(false)
-            .addValidator(StandardValidators.createRegexValidator(0, 1, false))
-            .defaultValue(null)
-            .build();
+                    + "be routed to 'matched' if any attribute specified is found in the dictionary").
+            required(true).
+            allowableValues(MATCH_CRITERIA_ANY, MATCH_CRITERIA_ALL).
+            defaultValue(MATCH_CRITERIA_ANY).
+            build();
+    public static final PropertyDescriptor ATTRIBUTE_PATTERN = new PropertyDescriptor.Builder().
+            name("Attribute Pattern").
+            description("Regular Expression that specifies the names of attributes whose values will be matched against the terms in the dictionary").
+            required(true).
+            addValidator(StandardValidators.REGULAR_EXPRESSION_VALIDATOR).
+            defaultValue(".*").
+            build();
+    public static final PropertyDescriptor DICTIONARY_FILE = new PropertyDescriptor.Builder().
+            name("Dictionary File").
+            description("A new-line-delimited text file that includes the terms that should trigger a match. Empty lines are ignored.").
+            required(true).
+            addValidator(StandardValidators.FILE_EXISTS_VALIDATOR).
+            build();
+    public static final PropertyDescriptor DICTIONARY_FILTER = new PropertyDescriptor.Builder().
+            name("Dictionary Filter Pattern").
+            description("A Regular Expression that will be applied to each line in the dictionary file. If the regular expression does not match the line, the line will not be included in the list of terms to search for. If a Matching Group is specified, only the portion of the term that matches that Matching Group will be used instead of the entire term. If not specified, all terms in the dictionary will be used and each term will consist of the text of the entire line in the file").
+            required(false).
+            addValidator(StandardValidators.createRegexValidator(0, 1, false)).
+            defaultValue(null).
+            build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
@@ -100,8 +100,14 @@ public class ScanAttribute extends AbstractProcessor {
     private volatile Set<String> dictionaryTerms = null;
     private volatile SynchronousFileWatcher fileWatcher = null;
 
-    public static final Relationship REL_MATCHED = new Relationship.Builder().name("matched").description("FlowFiles whose attributes are found in the dictionary will be routed to this relationship").build();
-    public static final Relationship REL_UNMATCHED = new Relationship.Builder().name("unmatched").description("FlowFiles whose attributes are not found in the dictionary will be routed to this relationship").build();
+    public static final Relationship REL_MATCHED = new Relationship.Builder().
+            name("matched").
+            description("FlowFiles whose attributes are found in the dictionary will be routed to this relationship").
+            build();
+    public static final Relationship REL_UNMATCHED = new Relationship.Builder().
+            name("unmatched").
+            description("FlowFiles whose attributes are not found in the dictionary will be routed to this relationship").
+            build();
 
     @Override
     protected void init(final ProcessorInitializationContext context) {
@@ -130,32 +136,41 @@ public class ScanAttribute extends AbstractProcessor {
 
     @OnScheduled
     public void onScheduled(final ProcessContext context) throws IOException {
-        final String filterRegex = context.getProperty(DICTIONARY_FILTER).getValue();
-        this.dictionaryFilterPattern = (filterRegex == null) ? null : Pattern.compile(filterRegex);
+        final String filterRegex = context.getProperty(DICTIONARY_FILTER).
+                getValue();
+        this.dictionaryFilterPattern = (filterRegex == null) ? null : Pattern.
+                compile(filterRegex);
 
-        final String attributeRegex = context.getProperty(ATTRIBUTE_PATTERN).getValue();
-        this.attributePattern = (attributeRegex.equals(".*")) ? null : Pattern.compile(attributeRegex);
+        final String attributeRegex = context.getProperty(ATTRIBUTE_PATTERN).
+                getValue();
+        this.attributePattern = (attributeRegex.equals(".*")) ? null : Pattern.
+                compile(attributeRegex);
 
         this.dictionaryTerms = createDictionary(context);
-        this.fileWatcher = new SynchronousFileWatcher(Paths.get(context.getProperty(DICTIONARY_FILE).getValue()), new LastModifiedMonitor(), 1000L);
+        this.fileWatcher = new SynchronousFileWatcher(Paths.get(context.
+                getProperty(DICTIONARY_FILE).
+                getValue()), new LastModifiedMonitor(), 1000L);
     }
 
     private Set<String> createDictionary(final ProcessContext context) throws IOException {
         final Set<String> terms = new HashSet<>();
 
-        final File file = new File(context.getProperty(DICTIONARY_FILE).getValue());
+        final File file = new File(context.getProperty(DICTIONARY_FILE).
+                getValue());
         try (final InputStream fis = new FileInputStream(file);
                 final BufferedReader reader = new BufferedReader(new InputStreamReader(fis))) {
 
             String line;
             while ((line = reader.readLine()) != null) {
-                if (line.trim().isEmpty()) {
+                if (line.trim().
+                        isEmpty()) {
                     continue;
                 }
 
                 String matchingTerm = line;
                 if (dictionaryFilterPattern != null) {
-                    final Matcher matcher = dictionaryFilterPattern.matcher(line);
+                    final Matcher matcher = dictionaryFilterPattern.
+                            matcher(line);
                     if (!matcher.matches()) {
                         continue;
                     }
@@ -192,20 +207,27 @@ public class ScanAttribute extends AbstractProcessor {
             logger.error("Unable to reload dictionary due to {}", e);
         }
 
-        final boolean matchAll = context.getProperty(MATCHING_CRITERIA).getValue().equals(MATCH_CRITERIA_ALL);
+        final boolean matchAll = context.getProperty(MATCHING_CRITERIA).
+                getValue().
+                equals(MATCH_CRITERIA_ALL);
 
         for (final FlowFile flowFile : flowFiles) {
             final boolean matched = matchAll ? allMatch(flowFile, attributePattern, dictionaryTerms) : anyMatch(flowFile, attributePattern, dictionaryTerms);
             final Relationship relationship = matched ? REL_MATCHED : REL_UNMATCHED;
-            session.getProvenanceReporter().route(flowFile, relationship);
+            session.getProvenanceReporter().
+                    route(flowFile, relationship);
             session.transfer(flowFile, relationship);
-            logger.info("Transferred {} to {}", new Object[]{flowFile, relationship});
+            logger.
+                    info("Transferred {} to {}", new Object[]{flowFile, relationship});
         }
     }
 
     private boolean allMatch(final FlowFile flowFile, final Pattern attributePattern, final Set<String> dictionary) {
-        for (final Map.Entry<String, String> entry : flowFile.getAttributes().entrySet()) {
-            if (attributePattern == null || attributePattern.matcher(entry.getKey()).matches()) {
+        for (final Map.Entry<String, String> entry : flowFile.getAttributes().
+                entrySet()) {
+            if (attributePattern == null || attributePattern.matcher(entry.
+                    getKey()).
+                    matches()) {
                 if (!dictionary.contains(entry.getValue())) {
                     return false;
                 }
@@ -216,8 +238,11 @@ public class ScanAttribute extends AbstractProcessor {
     }
 
     private boolean anyMatch(final FlowFile flowFile, final Pattern attributePattern, final Set<String> dictionary) {
-        for (final Map.Entry<String, String> entry : flowFile.getAttributes().entrySet()) {
-            if (attributePattern == null || attributePattern.matcher(entry.getKey()).matches()) {
+        for (final Map.Entry<String, String> entry : flowFile.getAttributes().
+                entrySet()) {
+            if (attributePattern == null || attributePattern.matcher(entry.
+                    getKey()).
+                    matches()) {
                 if (dictionary.contains(entry.getValue())) {
                     return true;
                 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanContent.java
index ea2e6c2..28d48ad 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ScanContent.java
@@ -64,30 +64,41 @@ import org.apache.nifi.util.search.ahocorasick.SearchState;
 @SideEffectFree
 @SupportsBatching
 @Tags({"aho-corasick", "scan", "content", "byte sequence", "search", "find", "dictionary"})
-@CapabilityDescription("Scans the content of FlowFiles for terms that are found in a user-supplied dictionary. If a term is matched, the UTF-8 encoded version of the term will be added to the FlowFile using the 'matching.term' attribute")
-@WritesAttribute(attribute="matching.term", description="The term that caused the Processor to route the FlowFile to the 'matched' relationship; if FlowFile is routed to the 'unmatched' relationship, this attribute is not added")
+@CapabilityDescription("Scans the content of FlowFiles for terms that are found in a user-supplied dictionary. If a term is matched, the UTF-8 "
+        + "encoded version of the term will be added to the FlowFile using the 'matching.term' attribute")
+@WritesAttribute(attribute = "matching.term", description = "The term that caused the Processor to route the FlowFile to the 'matched' relationship; "
+        + "if FlowFile is routed to the 'unmatched' relationship, this attribute is not added")
 public class ScanContent extends AbstractProcessor {
 
     public static final String TEXT_ENCODING = "text";
     public static final String BINARY_ENCODING = "binary";
     public static final String MATCH_ATTRIBUTE_KEY = "matching.term";
 
-    public static final PropertyDescriptor DICTIONARY = new PropertyDescriptor.Builder()
-            .name("Dictionary File")
-            .description("The filename of the terms dictionary")
-            .required(true)
-            .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor DICTIONARY_ENCODING = new PropertyDescriptor.Builder()
-            .name("Dictionary Encoding")
-            .description("Indicates how the dictionary is encoded. If 'text', dictionary terms are new-line delimited and UTF-8 encoded; if 'binary', dictionary terms are denoted by a 4-byte integer indicating the term length followed by the term itself")
-            .required(true)
-            .allowableValues(TEXT_ENCODING, BINARY_ENCODING)
-            .defaultValue(TEXT_ENCODING)
-            .build();
-
-    public static final Relationship REL_MATCH = new Relationship.Builder().name("matched").description("FlowFiles that match at least one term in the dictionary are routed to this relationship").build();
-    public static final Relationship REL_NO_MATCH = new Relationship.Builder().name("unmatched").description("FlowFiles that do not match any term in the dictionary are routed to this relationship").build();
+    public static final PropertyDescriptor DICTIONARY = new PropertyDescriptor.Builder().
+            name("Dictionary File").
+            description("The filename of the terms dictionary").
+            required(true).
+            addValidator(StandardValidators.FILE_EXISTS_VALIDATOR).
+            build();
+    public static final PropertyDescriptor DICTIONARY_ENCODING = new PropertyDescriptor.Builder().
+            name("Dictionary Encoding").
+            description("Indicates how the dictionary is encoded. If 'text', dictionary terms are new-line delimited and UTF-8 encoded; "
+                    + "if 'binary', dictionary terms are denoted by a 4-byte integer indicating the term length followed by the term itself").
+            required(true).
+            allowableValues(TEXT_ENCODING, BINARY_ENCODING).
+            defaultValue(TEXT_ENCODING).
+            build();
+
+    public static final Relationship REL_MATCH = new Relationship.Builder().
+            name("matched").
+            description("FlowFiles that match at least one "
+                    + "term in the dictionary are routed to this relationship").
+            build();
+    public static final Relationship REL_NO_MATCH = new Relationship.Builder().
+            name("unmatched").
+            description("FlowFiles that do not match any "
+                    + "term in the dictionary are routed to this relationship").
+            build();
 
     public static final Charset UTF8 = Charset.forName("UTF-8");
 
@@ -124,7 +135,8 @@ public class ScanContent extends AbstractProcessor {
     @Override
     public void onPropertyModified(final PropertyDescriptor descriptor, final String oldValue, final String newValue) {
         if (descriptor.equals(DICTIONARY)) {
-            fileWatcherRef.set(new SynchronousFileWatcher(Paths.get(newValue), new LastModifiedMonitor(), 60000L));
+            fileWatcherRef.
+                    set(new SynchronousFileWatcher(Paths.get(newValue), new LastModifiedMonitor(), 60000L));
         }
     }
 
@@ -142,10 +154,14 @@ public class ScanContent extends AbstractProcessor {
                 final Search<byte[]> search = new AhoCorasick<>();
                 final Set<SearchTerm<byte[]>> terms = new HashSet<>();
 
-                final InputStream inStream = Files.newInputStream(Paths.get(context.getProperty(DICTIONARY).getValue()), StandardOpenOption.READ);
+                final InputStream inStream = Files.newInputStream(Paths.
+                        get(context.getProperty(DICTIONARY).
+                                getValue()), StandardOpenOption.READ);
 
                 final TermLoader termLoader;
-                if (context.getProperty(DICTIONARY_ENCODING).getValue().equalsIgnoreCase(TEXT_ENCODING)) {
+                if (context.getProperty(DICTIONARY_ENCODING).
+                        getValue().
+                        equalsIgnoreCase(TEXT_ENCODING)) {
                     termLoader = new TextualTermLoader(inStream);
                 } else {
                     termLoader = new BinaryTermLoader(inStream);
@@ -159,7 +175,10 @@ public class ScanContent extends AbstractProcessor {
 
                     search.initializeDictionary(terms);
                     searchRef.set(search);
-                    logger.info("Loaded search dictionary from {}", new Object[]{context.getProperty(DICTIONARY).getValue()});
+                    logger.
+                            info("Loaded search dictionary from {}", new Object[]{context.
+                                getProperty(DICTIONARY).
+                                getValue()});
                     return true;
                 } finally {
                     termLoader.close();
@@ -212,9 +231,13 @@ public class ScanContent extends AbstractProcessor {
             @Override
             public void process(final InputStream rawIn) throws IOException {
                 try (final InputStream in = new BufferedInputStream(rawIn)) {
-                    final SearchState<byte[]> searchResult = finalSearch.search(in, false);
+                    final SearchState<byte[]> searchResult = finalSearch.
+                            search(in, false);
                     if (searchResult.foundMatch()) {
-                        termRef.set(searchResult.getResults().keySet().iterator().next());
+                        termRef.set(searchResult.getResults().
+                                keySet().
+                                iterator().
+                                next());
                     }
                 }
             }
@@ -223,13 +246,17 @@ public class ScanContent extends AbstractProcessor {
         final SearchTerm<byte[]> matchingTerm = termRef.get();
         if (matchingTerm == null) {
             logger.info("Routing {} to 'unmatched'", new Object[]{flowFile});
-            session.getProvenanceReporter().route(flowFile, REL_NO_MATCH);
+            session.getProvenanceReporter().
+                    route(flowFile, REL_NO_MATCH);
             session.transfer(flowFile, REL_NO_MATCH);
         } else {
             final String matchingTermString = matchingTerm.toString(UTF8);
-            logger.info("Routing {} to 'matched' because it matched term {}", new Object[]{flowFile, matchingTermString});
-            flowFile = session.putAttribute(flowFile, MATCH_ATTRIBUTE_KEY, matchingTermString);
-            session.getProvenanceReporter().route(flowFile, REL_MATCH);
+            logger.
+                    info("Routing {} to 'matched' because it matched term {}", new Object[]{flowFile, matchingTermString});
+            flowFile = session.
+                    putAttribute(flowFile, MATCH_ATTRIBUTE_KEY, matchingTermString);
+            session.getProvenanceReporter().
+                    route(flowFile, REL_MATCH);
             session.transfer(flowFile, REL_MATCH);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SegmentContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SegmentContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SegmentContent.java
index 59aece0..071f6fb 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SegmentContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SegmentContent.java
@@ -51,14 +51,26 @@ import org.apache.nifi.processor.util.StandardValidators;
 @CapabilityDescription("Segments a FlowFile into multiple smaller segments on byte boundaries. Each segment is given the following attributes: "
         + "fragment.identifier, fragment.index, fragment.count, segment.original.filename; these attributes can then be used by the "
         + "MergeContent processor in order to reconstitute the original FlowFile")
-@WritesAttributes({ @WritesAttribute(attribute = "segment.identifier", description = "All segments produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute. This attribute is added to maintain backward compatibility, but the fragment.identifier is preferred, as it is designed to work in conjunction with the MergeContent Processor"),
-        @WritesAttribute(attribute = "segment.index", description = "A one-up number that indicates the ordering of the segments that were created from a single parent FlowFile. This attribute is added to maintain backward compatibility, but the fragment.index is preferred, as it is designed to work in conjunction with the MergeContent Processor"),
-        @WritesAttribute(attribute = "segment.count", description = "The number of segments generated from the parent FlowFile. This attribute is added to maintain backward compatibility, but the fragment.count is preferred, as it is designed to work in conjunction with the MergeContent Processor"),
-        @WritesAttribute(attribute = "fragment.identifier", description = "All segments produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute"),
-        @WritesAttribute(attribute = "fragment.index", description = "A one-up number that indicates the ordering of the segments that were created from a single parent FlowFile"),
-        @WritesAttribute(attribute = "fragment.count", description = "The number of segments generated from the parent FlowFile"),
-        @WritesAttribute(attribute = "segment.original.filename ", description = "The filename of the parent FlowFile"),
-        @WritesAttribute(attribute = "segment.original.filename ", description = "The filename will be updated to include the parent's filename, the segment index, and the segment count") })
+@WritesAttributes({
+    @WritesAttribute(attribute = "segment.identifier",
+            description = "All segments produced from the same parent FlowFile will have the same randomly generated UUID added for this "
+            + "attribute. This attribute is added to maintain backward compatibility, but the fragment.identifier is preferred, as "
+            + "it is designed to work in conjunction with the MergeContent Processor"),
+    @WritesAttribute(attribute = "segment.index",
+            description = "A one-up number that indicates the ordering of the segments that were created from a single parent FlowFile. "
+            + "This attribute is added to maintain backward compatibility, but the fragment.index is preferred, as it is designed "
+            + "to work in conjunction with the MergeContent Processor"),
+    @WritesAttribute(attribute = "segment.count",
+            description = "The number of segments generated from the parent FlowFile. This attribute is added to maintain backward compatibility, "
+            + "but the fragment.count is preferred, as it is designed to work in conjunction with the MergeContent Processor"),
+    @WritesAttribute(attribute = "fragment.identifier",
+            description = "All segments produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute"),
+    @WritesAttribute(attribute = "fragment.index",
+            description = "A one-up number that indicates the ordering of the segments that were created from a single parent FlowFile"),
+    @WritesAttribute(attribute = "fragment.count", description = "The number of segments generated from the parent FlowFile"),
+    @WritesAttribute(attribute = "segment.original.filename ", description = "The filename of the parent FlowFile"),
+    @WritesAttribute(attribute = "segment.original.filename ",
+            description = "The filename will be updated to include the parent's filename, the segment index, and the segment count")})
 @SeeAlso(MergeContent.class)
 public class SegmentContent extends AbstractProcessor {
 
@@ -71,15 +83,22 @@ public class SegmentContent extends AbstractProcessor {
     public static final String FRAGMENT_INDEX = "fragment.index";
     public static final String FRAGMENT_COUNT = "fragment.count";
 
-    public static final PropertyDescriptor SIZE = new PropertyDescriptor.Builder()
-            .name("Segment Size")
-            .description("The maximum data size for each segment")
-            .addValidator(StandardValidators.DATA_SIZE_VALIDATOR)
-            .required(true)
-            .build();
-
-    public static final Relationship REL_SEGMENTS = new Relationship.Builder().name("segments").description("All segments will be sent to this relationship. If the file was small enough that it was not segmented, a copy of the original is sent to this relationship as well as original").build();
-    public static final Relationship REL_ORIGINAL = new Relationship.Builder().name("original").description("The original FlowFile will be sent to this relationship").build();
+    public static final PropertyDescriptor SIZE = new PropertyDescriptor.Builder().
+            name("Segment Size").
+            description("The maximum data size for each segment").
+            addValidator(StandardValidators.DATA_SIZE_VALIDATOR).
+            required(true).
+            build();
+
+    public static final Relationship REL_SEGMENTS = new Relationship.Builder().
+            name("segments").
+            description("All segments will be sent to this relationship. If the file was small enough that it was not segmented, "
+                    + "a copy of the original is sent to this relationship as well as original").
+            build();
+    public static final Relationship REL_ORIGINAL = new Relationship.Builder().
+            name("original").
+            description("The original FlowFile will be sent to this relationship").
+            build();
 
     private Set<Relationship> relationships;
     private List<PropertyDescriptor> propertyDescriptors;
@@ -113,16 +132,21 @@ public class SegmentContent extends AbstractProcessor {
             return;
         }
 
-        final String segmentId = UUID.randomUUID().toString();
-        final long segmentSize = context.getProperty(SIZE).asDataSize(DataUnit.B).longValue();
+        final String segmentId = UUID.randomUUID().
+                toString();
+        final long segmentSize = context.getProperty(SIZE).
+                asDataSize(DataUnit.B).
+                longValue();
 
-        final String originalFileName = flowFile.getAttribute(CoreAttributes.FILENAME.key());
+        final String originalFileName = flowFile.
+                getAttribute(CoreAttributes.FILENAME.key());
 
         if (flowFile.getSize() <= segmentSize) {
             flowFile = session.putAttribute(flowFile, SEGMENT_ID, segmentId);
             flowFile = session.putAttribute(flowFile, SEGMENT_INDEX, "1");
             flowFile = session.putAttribute(flowFile, SEGMENT_COUNT, "1");
-            flowFile = session.putAttribute(flowFile, SEGMENT_ORIGINAL_FILENAME, originalFileName);
+            flowFile = session.
+                    putAttribute(flowFile, SEGMENT_ORIGINAL_FILENAME, originalFileName);
 
             flowFile = session.putAttribute(flowFile, FRAGMENT_ID, segmentId);
             flowFile = session.putAttribute(flowFile, FRAGMENT_INDEX, "1");
@@ -150,7 +174,8 @@ public class SegmentContent extends AbstractProcessor {
         final Set<FlowFile> segmentSet = new HashSet<>();
         for (int i = 1; i <= totalSegments; i++) {
             final long segmentOffset = segmentSize * (i - 1);
-            FlowFile segment = session.clone(flowFile, segmentOffset, Math.min(segmentSize, flowFile.getSize() - segmentOffset));
+            FlowFile segment = session.clone(flowFile, segmentOffset, Math.
+                    min(segmentSize, flowFile.getSize() - segmentOffset));
             segmentAttributes.put(SEGMENT_INDEX, String.valueOf(i));
             segmentAttributes.put(FRAGMENT_INDEX, String.valueOf(i));
             segment = session.putAllAttributes(segment, segmentAttributes);
@@ -161,9 +186,11 @@ public class SegmentContent extends AbstractProcessor {
         session.transfer(flowFile, REL_ORIGINAL);
 
         if (totalSegments <= 10) {
-            getLogger().info("Segmented {} into {} segments: {}", new Object[]{flowFile, totalSegments, segmentSet});
+            getLogger().
+                    info("Segmented {} into {} segments: {}", new Object[]{flowFile, totalSegments, segmentSet});
         } else {
-            getLogger().info("Segmented {} into {} segments", new Object[]{flowFile, totalSegments});
+            getLogger().
+                    info("Segmented {} into {} segments", new Object[]{flowFile, totalSegments});
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitContent.java
index 419e12d..1c9a8c5 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitContent.java
@@ -65,10 +65,11 @@ import org.apache.nifi.util.Tuple;
 @SupportsBatching
 @Tags({"content", "split", "binary"})
 @CapabilityDescription("Splits incoming FlowFiles by a specified byte sequence")
-@WritesAttributes({ @WritesAttribute(attribute = "fragment.identifier", description = "All split FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute"),
-        @WritesAttribute(attribute = "fragment.index", description = "A one-up number that indicates the ordering of the split FlowFiles that were created from a single parent FlowFile"),
-        @WritesAttribute(attribute = "fragment.count", description = "The number of split FlowFiles generated from the parent FlowFile"),
-        @WritesAttribute(attribute = "segment.original.filename ", description = "The filename of the parent FlowFile") })
+@WritesAttributes({
+    @WritesAttribute(attribute = "fragment.identifier", description = "All split FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute"),
+    @WritesAttribute(attribute = "fragment.index", description = "A one-up number that indicates the ordering of the split FlowFiles that were created from a single parent FlowFile"),
+    @WritesAttribute(attribute = "fragment.count", description = "The number of split FlowFiles generated from the parent FlowFile"),
+    @WritesAttribute(attribute = "segment.original.filename ", description = "The filename of the parent FlowFile")})
 @SeeAlso(MergeContent.class)
 public class SplitContent extends AbstractProcessor {
 
@@ -80,46 +81,47 @@ public class SplitContent extends AbstractProcessor {
 
     static final AllowableValue HEX_FORMAT = new AllowableValue("Hexadecimal", "Hexadecimal", "The Byte Sequence will be interpreted as a hexadecimal representation of bytes");
     static final AllowableValue UTF8_FORMAT = new AllowableValue("Text", "Text", "The Byte Sequence will be interpreted as UTF-8 Encoded text");
-    
+
     static final AllowableValue TRAILING_POSITION = new AllowableValue("Trailing", "Trailing", "Keep the Byte Sequence at the end of the first split if <Keep Byte Sequence> is true");
     static final AllowableValue LEADING_POSITION = new AllowableValue("Leading", "Leading", "Keep the Byte Sequence at the beginning of the second split if <Keep Byte Sequence> is true");
-    
-    public static final PropertyDescriptor FORMAT = new PropertyDescriptor.Builder()
-            .name("Byte Sequence Format")
-            .description("Specifies how the <Byte Sequence> property should be interpreted")
-            .required(true)
-            .allowableValues(HEX_FORMAT, UTF8_FORMAT)
-            .defaultValue(HEX_FORMAT.getValue())
-            .build();
-    public static final PropertyDescriptor BYTE_SEQUENCE = new PropertyDescriptor.Builder()
-            .name("Byte Sequence")
-            .description("A representation of bytes to look for and upon which to split the source file into separate files")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .required(true)
-            .build();
-    public static final PropertyDescriptor KEEP_SEQUENCE = new PropertyDescriptor.Builder()
-            .name("Keep Byte Sequence")
-            .description("Determines whether or not the Byte Sequence should be included with each Split")
-            .required(true)
-            .allowableValues("true", "false")
-            .defaultValue("false")
-            .build();
-    public static final PropertyDescriptor BYTE_SEQUENCE_LOCATION = new PropertyDescriptor.Builder()
-            .name("Byte Sequence Location")
-            .description("If <Keep Byte Sequence> is set to true, specifies whether the byte sequence should be added to the end of the first split or the beginning of the second; if <Keep Byte Sequence> is false, this property is ignored.")
-            .required(true)
-            .allowableValues(TRAILING_POSITION, LEADING_POSITION)
-            .defaultValue(TRAILING_POSITION.getValue())
-            .build();
+
+    public static final PropertyDescriptor FORMAT = new PropertyDescriptor.Builder().
+            name("Byte Sequence Format").
+            description("Specifies how the <Byte Sequence> property should be interpreted").
+            required(true).
+            allowableValues(HEX_FORMAT, UTF8_FORMAT).
+            defaultValue(HEX_FORMAT.getValue()).
+            build();
+    public static final PropertyDescriptor BYTE_SEQUENCE = new PropertyDescriptor.Builder().
+            name("Byte Sequence").
+            description("A representation of bytes to look for and upon which to split the source file into separate files").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            required(true).
+            build();
+    public static final PropertyDescriptor KEEP_SEQUENCE = new PropertyDescriptor.Builder().
+            name("Keep Byte Sequence").
+            description("Determines whether or not the Byte Sequence should be included with each Split").
+            required(true).
+            allowableValues("true", "false").
+            defaultValue("false").
+            build();
+    public static final PropertyDescriptor BYTE_SEQUENCE_LOCATION = new PropertyDescriptor.Builder().
+            name("Byte Sequence Location").
+            description("If <Keep Byte Sequence> is set to true, specifies whether the byte sequence should be added to the end of the first "
+                    + "split or the beginning of the second; if <Keep Byte Sequence> is false, this property is ignored.").
+            required(true).
+            allowableValues(TRAILING_POSITION, LEADING_POSITION).
+            defaultValue(TRAILING_POSITION.getValue()).
+            build();
 
     public static final Relationship REL_SPLITS = new Relationship.Builder()
-            .name("splits")
-            .description("All Splits will be routed to the splits relationship")
-            .build();
+            .name("splits").
+            description("All Splits will be routed to the splits relationship").
+            build();
     public static final Relationship REL_ORIGINAL = new Relationship.Builder()
-            .name("original")
-            .description("The original file")
-            .build();
+            .name("original").
+            description("The original file").
+            build();
 
     private Set<Relationship> relationships;
     private List<PropertyDescriptor> properties;
@@ -154,22 +156,29 @@ public class SplitContent extends AbstractProcessor {
     @Override
     protected Collection<ValidationResult> customValidate(final ValidationContext validationContext) {
         final List<ValidationResult> results = new ArrayList<>(1);
-        final String format = validationContext.getProperty(FORMAT).getValue();
-        if ( HEX_FORMAT.getValue().equals(format) ) {
-            final String byteSequence = validationContext.getProperty(BYTE_SEQUENCE).getValue();
-            final ValidationResult result = new HexStringPropertyValidator().validate(BYTE_SEQUENCE.getName(), byteSequence, validationContext);
+        final String format = validationContext.getProperty(FORMAT).
+                getValue();
+        if (HEX_FORMAT.getValue().
+                equals(format)) {
+            final String byteSequence = validationContext.
+                    getProperty(BYTE_SEQUENCE).
+                    getValue();
+            final ValidationResult result = new HexStringPropertyValidator().
+                    validate(BYTE_SEQUENCE.getName(), byteSequence, validationContext);
             results.add(result);
         }
         return results;
     }
-    
 
     @OnScheduled
     public void initializeByteSequence(final ProcessContext context) throws DecoderException {
-        final String bytePattern = context.getProperty(BYTE_SEQUENCE).getValue();
-        
-        final String format = context.getProperty(FORMAT).getValue();
-        if ( HEX_FORMAT.getValue().equals(format) ) {
+        final String bytePattern = context.getProperty(BYTE_SEQUENCE).
+                getValue();
+
+        final String format = context.getProperty(FORMAT).
+                getValue();
+        if (HEX_FORMAT.getValue().
+                equals(format)) {
             this.byteSequence.set(Hex.decodeHex(bytePattern.toCharArray()));
         } else {
             this.byteSequence.set(bytePattern.getBytes(StandardCharsets.UTF_8));
@@ -184,11 +193,14 @@ public class SplitContent extends AbstractProcessor {
         }
 
         final ProcessorLog logger = getLogger();
-        final boolean keepSequence = context.getProperty(KEEP_SEQUENCE).asBoolean();
+        final boolean keepSequence = context.getProperty(KEEP_SEQUENCE).
+                asBoolean();
         final boolean keepTrailingSequence;
         final boolean keepLeadingSequence;
-        if ( keepSequence ) {
-            if ( context.getProperty(BYTE_SEQUENCE_LOCATION).getValue().equals(TRAILING_POSITION.getValue()) ) {
+        if (keepSequence) {
+            if (context.getProperty(BYTE_SEQUENCE_LOCATION).
+                    getValue().
+                    equals(TRAILING_POSITION.getValue())) {
                 keepTrailingSequence = true;
                 keepLeadingSequence = false;
             } else {
@@ -199,10 +211,11 @@ public class SplitContent extends AbstractProcessor {
             keepTrailingSequence = false;
             keepLeadingSequence = false;
         }
-        
+
         final byte[] byteSequence = this.byteSequence.get();
         if (byteSequence == null) {   // should never happen. But just in case...
-            logger.error("{} Unable to obtain Byte Sequence", new Object[]{this});
+            logger.
+                    error("{} Unable to obtain Byte Sequence", new Object[]{this});
             session.rollback();
             return;
         }
@@ -224,7 +237,8 @@ public class SplitContent extends AbstractProcessor {
                         }
 
                         bytesRead++;
-                        boolean matched = buffer.addAndCompare((byte) (nextByte & 0xFF));
+                        boolean matched = buffer.
+                                addAndCompare((byte) (nextByte & 0xFF));
                         if (matched) {
                             long splitLength;
 
@@ -234,10 +248,10 @@ public class SplitContent extends AbstractProcessor {
                                 splitLength = bytesRead - startOffset - byteSequence.length;
                             }
 
-                            if ( keepLeadingSequence && startOffset > 0 ) {
+                            if (keepLeadingSequence && startOffset > 0) {
                                 splitLength += byteSequence.length;
                             }
-                            
+
                             final long splitStart = (keepLeadingSequence && startOffset > 0) ? startOffset - byteSequence.length : startOffset;
                             splits.add(new Tuple<>(splitStart, splitLength));
                             startOffset = bytesRead;
@@ -253,7 +267,8 @@ public class SplitContent extends AbstractProcessor {
             FlowFile clone = session.clone(flowFile);
             session.transfer(flowFile, REL_ORIGINAL);
             session.transfer(clone, REL_SPLITS);
-            logger.info("Found no match for {}; transferring original 'original' and transferring clone {} to 'splits'", new Object[]{flowFile, clone});
+            logger.
+                    info("Found no match for {}; transferring original 'original' and transferring clone {} to 'splits'", new Object[]{flowFile, clone});
             return;
         }
 
@@ -277,7 +292,8 @@ public class SplitContent extends AbstractProcessor {
             finalSplitOffset += byteSequence.length;
         }
         if (finalSplitOffset > -1L && finalSplitOffset < flowFile.getSize()) {
-            FlowFile finalSplit = session.clone(flowFile, finalSplitOffset, flowFile.getSize() - finalSplitOffset);
+            FlowFile finalSplit = session.
+                    clone(flowFile, finalSplitOffset, flowFile.getSize() - finalSplitOffset);
             splitList.add(finalSplit);
         }
 
@@ -286,23 +302,29 @@ public class SplitContent extends AbstractProcessor {
         session.transfer(flowFile, REL_ORIGINAL);
 
         if (splitList.size() > 10) {
-            logger.info("Split {} into {} files", new Object[]{flowFile, splitList.size()});
+            logger.
+                    info("Split {} into {} files", new Object[]{flowFile, splitList.
+                        size()});
         } else {
-            logger.info("Split {} into {} files: {}", new Object[]{flowFile, splitList.size(), splitList});
+            logger.
+                    info("Split {} into {} files: {}", new Object[]{flowFile, splitList.
+                        size(), splitList});
         }
     }
 
     /**
      * Apply split index, count and other attributes.
      *
-     * @param session
-     * @param source
-     * @param unpacked
+     * @param session session
+     * @param source source
+     * @param splits splits
      */
     private void finishFragmentAttributes(final ProcessSession session, final FlowFile source, final List<FlowFile> splits) {
-        final String originalFilename = source.getAttribute(CoreAttributes.FILENAME.key());
+        final String originalFilename = source.
+                getAttribute(CoreAttributes.FILENAME.key());
 
-        final String fragmentId = UUID.randomUUID().toString();
+        final String fragmentId = UUID.randomUUID().
+                toString();
         final ArrayList<FlowFile> newList = new ArrayList<>(splits);
         splits.clear();
         for (int i = 1; i <= newList.size(); i++) {
@@ -323,9 +345,16 @@ public class SplitContent extends AbstractProcessor {
         public ValidationResult validate(final String subject, final String input, final ValidationContext validationContext) {
             try {
                 Hex.decodeHex(input.toCharArray());
-                return new ValidationResult.Builder().valid(true).input(input).subject(subject).build();
+                return new ValidationResult.Builder().valid(true).
+                        input(input).
+                        subject(subject).
+                        build();
             } catch (final Exception e) {
-                return new ValidationResult.Builder().valid(false).explanation("Not a valid Hex String").input(input).subject(subject).build();
+                return new ValidationResult.Builder().valid(false).
+                        explanation("Not a valid Hex String").
+                        input(input).
+                        subject(subject).
+                        build();
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitJson.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitJson.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitJson.java
index bba770a..2ffebd5 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitJson.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitJson.java
@@ -41,7 +41,12 @@ import org.apache.nifi.processor.util.StandardValidators;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 import java.util.concurrent.atomic.AtomicReference;
 
 @EventDriven
@@ -54,16 +59,28 @@ import java.util.concurrent.atomic.AtomicReference;
         + "does not evaluate to an array element, the original file is routed to 'failure' and no files are generated.")
 public class SplitJson extends AbstractJsonPathProcessor {
 
-    public static final PropertyDescriptor ARRAY_JSON_PATH_EXPRESSION = new PropertyDescriptor.Builder()
-            .name("JsonPath Expression")
-            .description("A JsonPath expression that indicates the array element to split into JSON/scalar fragments.")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) // Full validation/caching occurs in #customValidate
-            .required(true)
-            .build();
-
-    public static final Relationship REL_ORIGINAL = new Relationship.Builder().name("original").description("The original FlowFile that was split into segments. If the FlowFile fails processing, nothing will be sent to this relationship").build();
-    public static final Relationship REL_SPLIT = new Relationship.Builder().name("split").description("All segments of the original FlowFile will be routed to this relationship").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("If a FlowFile fails processing for any reason (for example, the FlowFile is not valid JSON or the specified path does not exist), it will be routed to this relationship").build();
+    public static final PropertyDescriptor ARRAY_JSON_PATH_EXPRESSION = new PropertyDescriptor.Builder().
+            name("JsonPath Expression").
+            description("A JsonPath expression that indicates the array element to split into JSON/scalar fragments.").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR) // Full validation/caching occurs in #customValidate
+            .
+            required(true).
+            build();
+
+    public static final Relationship REL_ORIGINAL = new Relationship.Builder().
+            name("original").
+            description("The original FlowFile that was split into segments. If the FlowFile fails processing, nothing will be sent to "
+                    + "this relationship").
+            build();
+    public static final Relationship REL_SPLIT = new Relationship.Builder().
+            name("split").
+            description("All segments of the original FlowFile will be routed to this relationship").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("If a FlowFile fails processing for any reason (for example, the FlowFile is not valid JSON or the specified "
+                    + "path does not exist), it will be routed to this relationship").
+            build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
@@ -120,8 +137,10 @@ public class SplitJson extends AbstractJsonPathProcessor {
             }
         };
 
-        String value = validationContext.getProperty(ARRAY_JSON_PATH_EXPRESSION).getValue();
-        return Collections.singleton(validator.validate(ARRAY_JSON_PATH_EXPRESSION.getName(), value, validationContext));
+        String value = validationContext.getProperty(ARRAY_JSON_PATH_EXPRESSION).
+                getValue();
+        return Collections.singleton(validator.
+                validate(ARRAY_JSON_PATH_EXPRESSION.getName(), value, validationContext));
     }
 
     @Override
@@ -137,14 +156,18 @@ public class SplitJson extends AbstractJsonPathProcessor {
         try {
             documentContext = validateAndEstablishJsonContext(processSession, original);
         } catch (InvalidJsonException e) {
-            logger.error("FlowFile {} did not have valid JSON content.", new Object[]{original});
+            logger.
+                    error("FlowFile {} did not have valid JSON content.", new Object[]{original});
             processSession.transfer(original, REL_FAILURE);
             return;
         }
 
         final JsonPath jsonPath = JSON_PATH_REF.get();
-        String representationOption = processContext.getProperty(NULL_VALUE_DEFAULT_REPRESENTATION).getValue();
-        final String nullDefaultValue = NULL_REPRESENTATION_MAP.get(representationOption);
+        String representationOption = processContext.
+                getProperty(NULL_VALUE_DEFAULT_REPRESENTATION).
+                getValue();
+        final String nullDefaultValue = NULL_REPRESENTATION_MAP.
+                get(representationOption);
 
         final List<FlowFile> segments = new ArrayList<>();
 
@@ -152,14 +175,17 @@ public class SplitJson extends AbstractJsonPathProcessor {
         try {
             jsonPathResult = documentContext.read(jsonPath);
         } catch (PathNotFoundException e) {
-            logger.warn("JsonPath {} could not be found for FlowFile {}", new Object[]{jsonPath.getPath(), original});
+            logger.
+                    warn("JsonPath {} could not be found for FlowFile {}", new Object[]{jsonPath.
+                        getPath(), original});
             processSession.transfer(original, REL_FAILURE);
             return;
         }
 
         if (!(jsonPathResult instanceof List)) {
-            logger.error("The evaluated value {} of {} was not a JSON Array compatible type and cannot be split.",
-                    new Object[]{jsonPathResult, jsonPath.getPath()});
+            logger.
+                    error("The evaluated value {} of {} was not a JSON Array compatible type and cannot be split.",
+                            new Object[]{jsonPathResult, jsonPath.getPath()});
             processSession.transfer(original, REL_FAILURE);
             return;
         }
@@ -172,16 +198,20 @@ public class SplitJson extends AbstractJsonPathProcessor {
                 @Override
                 public void process(OutputStream out) throws IOException {
                     String resultSegmentContent = getResultRepresentation(resultSegment, nullDefaultValue);
-                    out.write(resultSegmentContent.getBytes(StandardCharsets.UTF_8));
+                    out.write(resultSegmentContent.
+                            getBytes(StandardCharsets.UTF_8));
                 }
             });
             segments.add(split);
         }
 
-        processSession.getProvenanceReporter().fork(original, segments);
+        processSession.getProvenanceReporter().
+                fork(original, segments);
 
         processSession.transfer(segments, REL_SPLIT);
         processSession.transfer(original, REL_ORIGINAL);
-        logger.info("Split {} into {} FlowFiles", new Object[]{original, segments.size()});
+        logger.
+                info("Split {} into {} FlowFiles", new Object[]{original, segments.
+                    size()});
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java
index d8f7400..f68ef4e 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitText.java
@@ -62,11 +62,11 @@ import java.util.UUID;
 @Tags({"split", "text"})
 @CapabilityDescription("Splits a text file into multiple smaller text files on line boundaries, each having up to a configured number of lines")
 @WritesAttributes({
-        @WritesAttribute(attribute = "text.line.count", description = "The number of lines of text from the original FlowFile that were copied to this FlowFile"),
-        @WritesAttribute(attribute = "fragment.identifier", description = "All split FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute"),
-        @WritesAttribute(attribute = "fragment.index", description = "A one-up number that indicates the ordering of the split FlowFiles that were created from a single parent FlowFile"),
-        @WritesAttribute(attribute = "fragment.count", description = "The number of split FlowFiles generated from the parent FlowFile"),
-    @WritesAttribute(attribute = "segment.original.filename ", description = "The filename of the parent FlowFile") })
+    @WritesAttribute(attribute = "text.line.count", description = "The number of lines of text from the original FlowFile that were copied to this FlowFile"),
+    @WritesAttribute(attribute = "fragment.identifier", description = "All split FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute"),
+    @WritesAttribute(attribute = "fragment.index", description = "A one-up number that indicates the ordering of the split FlowFiles that were created from a single parent FlowFile"),
+    @WritesAttribute(attribute = "fragment.count", description = "The number of split FlowFiles generated from the parent FlowFile"),
+    @WritesAttribute(attribute = "segment.original.filename ", description = "The filename of the parent FlowFile")})
 @SeeAlso(MergeContent.class)
 public class SplitText extends AbstractProcessor {
 
@@ -77,32 +77,41 @@ public class SplitText extends AbstractProcessor {
     public static final String FRAGMENT_COUNT = "fragment.count";
     public static final String SEGMENT_ORIGINAL_FILENAME = "segment.original.filename";
 
-    public static final PropertyDescriptor LINE_SPLIT_COUNT = new PropertyDescriptor.Builder()
-            .name("Line Split Count")
-            .description("The number of lines that will be added to each split file")
-            .required(true)
-            .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor HEADER_LINE_COUNT = new PropertyDescriptor.Builder()
-            .name("Header Line Count")
-            .description("The number of lines that should be considered part of the header; the header lines will be duplicated to all split files")
-            .required(true)
-            .addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR)
-            .defaultValue("0")
-            .build();
-    public static final PropertyDescriptor REMOVE_TRAILING_NEWLINES = new PropertyDescriptor.Builder()
-            .name("Remove Trailing Newlines")
-            .description(
-                    "Whether to remove newlines at the end of each split file. This should be false if you intend to merge the split files later")
-            .required(true)
-            .addValidator(StandardValidators.BOOLEAN_VALIDATOR)
-            .allowableValues("true", "false")
-            .defaultValue("true")
-            .build();
-
-    public static final Relationship REL_ORIGINAL = new Relationship.Builder().name("original").description("The original input file will be routed to this destination when it has been successfully split into 1 or more files").build();
-    public static final Relationship REL_SPLITS = new Relationship.Builder().name("splits").description("The split files will be routed to this destination when an input file is successfully split into 1 or more split files").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("If a file cannot be split for some reason, the original file will be routed to this destination and nothing will be routed elsewhere").build();
+    public static final PropertyDescriptor LINE_SPLIT_COUNT = new PropertyDescriptor.Builder().
+            name("Line Split Count").
+            description("The number of lines that will be added to each split file").
+            required(true).
+            addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR).
+            build();
+    public static final PropertyDescriptor HEADER_LINE_COUNT = new PropertyDescriptor.Builder().
+            name("Header Line Count").
+            description("The number of lines that should be considered part of the header; the header lines will be duplicated to all split files").
+            required(true).
+            addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR).
+            defaultValue("0").
+            build();
+    public static final PropertyDescriptor REMOVE_TRAILING_NEWLINES = new PropertyDescriptor.Builder().
+            name("Remove Trailing Newlines").
+            description(
+                    "Whether to remove newlines at the end of each split file. This should be false if you intend to merge the split files later").
+            required(true).
+            addValidator(StandardValidators.BOOLEAN_VALIDATOR).
+            allowableValues("true", "false").
+            defaultValue("true").
+            build();
+
+    public static final Relationship REL_ORIGINAL = new Relationship.Builder().
+            name("original").
+            description("The original input file will be routed to this destination when it has been successfully split into 1 or more files").
+            build();
+    public static final Relationship REL_SPLITS = new Relationship.Builder().
+            name("splits").
+            description("The split files will be routed to this destination when an input file is successfully split into 1 or more split files").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("If a file cannot be split for some reason, the original file will be routed to this destination and nothing will be routed elsewhere").
+            build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
@@ -226,9 +235,13 @@ public class SplitText extends AbstractProcessor {
         }
 
         final ProcessorLog logger = getLogger();
-        final int headerCount = context.getProperty(HEADER_LINE_COUNT).asInteger();
-        final int splitCount = context.getProperty(LINE_SPLIT_COUNT).asInteger();
-        final boolean removeTrailingNewlines = context.getProperty(REMOVE_TRAILING_NEWLINES).asBoolean();
+        final int headerCount = context.getProperty(HEADER_LINE_COUNT).
+                asInteger();
+        final int splitCount = context.getProperty(LINE_SPLIT_COUNT).
+                asInteger();
+        final boolean removeTrailingNewlines = context.
+                getProperty(REMOVE_TRAILING_NEWLINES).
+                asBoolean();
 
         final ObjectHolder<String> errorMessage = new ObjectHolder<>(null);
         final ArrayList<SplitInfo> splitInfos = new ArrayList<>();
@@ -245,7 +258,8 @@ public class SplitText extends AbstractProcessor {
                     final ByteArrayOutputStream headerStream = new ByteArrayOutputStream();
                     final int headerLinesCopied = readLines(in, headerCount, headerStream, true);
                     if (headerLinesCopied < headerCount) {
-                        errorMessage.set("Header Line Count is set to " + headerCount + " but file had only " + headerLinesCopied + " lines");
+                        errorMessage.
+                                set("Header Line Count is set to " + headerCount + " but file had only " + headerLinesCopied + " lines");
                         return;
                     }
 
@@ -256,17 +270,23 @@ public class SplitText extends AbstractProcessor {
                             final IntegerHolder linesCopied = new IntegerHolder(0);
                             FlowFile splitFile = session.create(flowFile);
                             try {
-                                splitFile = session.write(splitFile, new OutputStreamCallback() {
-                                    @Override
-                                    public void process(final OutputStream rawOut) throws IOException {
-                                        try (final BufferedOutputStream out = new BufferedOutputStream(rawOut)) {
-                                            headerStream.writeTo(out);
-                                            linesCopied.set(readLines(in, splitCount, out, !removeTrailingNewlines));
-                                        }
-                                    }
-                                });
-                                splitFile = session.putAttribute(splitFile, SPLIT_LINE_COUNT, String.valueOf(linesCopied.get()));
-                                logger.debug("Created Split File {} with {} lines", new Object[]{splitFile, linesCopied.get()});
+                                splitFile = session.
+                                        write(splitFile, new OutputStreamCallback() {
+                                            @Override
+                                            public void process(final OutputStream rawOut) throws IOException {
+                                                try (final BufferedOutputStream out = new BufferedOutputStream(rawOut)) {
+                                                    headerStream.writeTo(out);
+                                                    linesCopied.
+                                                    set(readLines(in, splitCount, out, !removeTrailingNewlines));
+                                                }
+                                            }
+                                        });
+                                splitFile = session.
+                                        putAttribute(splitFile, SPLIT_LINE_COUNT, String.
+                                                valueOf(linesCopied.get()));
+                                logger.
+                                        debug("Created Split File {} with {} lines", new Object[]{splitFile, linesCopied.
+                                            get()});
                             } finally {
                                 if (linesCopied.get() > 0) {
                                     splits.add(splitFile);
@@ -293,8 +313,11 @@ public class SplitText extends AbstractProcessor {
                                 info.offsetBytes = beforeReadingLines;
                                 splitInfos.add(info);
                                 final long procNanos = System.nanoTime() - startNanos;
-                                final long procMillis = TimeUnit.MILLISECONDS.convert(procNanos, TimeUnit.NANOSECONDS);
-                                logger.debug("Detected start of Split File in {} at byte offset {} with a length of {} bytes; total splits = {}; total processing time = {} ms", new Object[]{flowFile, beforeReadingLines, info.lengthBytes, splitInfos.size(), procMillis});
+                                final long procMillis = TimeUnit.MILLISECONDS.
+                                        convert(procNanos, TimeUnit.NANOSECONDS);
+                                logger.
+                                        debug("Detected start of Split File in {} at byte offset {} with a length of {} bytes; total splits = {}; total processing time = {} ms", new Object[]{flowFile, beforeReadingLines, info.lengthBytes, splitInfos.
+                                            size(), procMillis});
                             }
                         }
                     }
@@ -303,7 +326,9 @@ public class SplitText extends AbstractProcessor {
         });
 
         if (errorMessage.get() != null) {
-            logger.error("Unable to split {} due to {}; routing to failure", new Object[]{flowFile, errorMessage.get()});
+            logger.
+                    error("Unable to split {} due to {}; routing to failure", new Object[]{flowFile, errorMessage.
+                        get()});
             session.transfer(flowFile, REL_FAILURE);
             if (splits != null && !splits.isEmpty()) {
                 session.remove(splits);
@@ -314,17 +339,22 @@ public class SplitText extends AbstractProcessor {
         if (!splitInfos.isEmpty()) {
             // Create the splits
             for (final SplitInfo info : splitInfos) {
-                FlowFile split = session.clone(flowFile, info.offsetBytes, info.lengthBytes);
-                split = session.putAttribute(split, SPLIT_LINE_COUNT, String.valueOf(info.lengthLines));
+                FlowFile split = session.
+                        clone(flowFile, info.offsetBytes, info.lengthBytes);
+                split = session.putAttribute(split, SPLIT_LINE_COUNT, String.
+                        valueOf(info.lengthLines));
                 splits.add(split);
             }
         }
         finishFragmentAttributes(session, flowFile, splits);
 
         if (splits.size() > 10) {
-            logger.info("Split {} into {} files", new Object[]{flowFile, splits.size()});
+            logger.info("Split {} into {} files", new Object[]{flowFile, splits.
+                size()});
         } else {
-            logger.info("Split {} into {} files: {}", new Object[]{flowFile, splits.size(), splits});
+            logger.
+                    info("Split {} into {} files: {}", new Object[]{flowFile, splits.
+                        size(), splits});
         }
 
         session.transfer(flowFile, REL_ORIGINAL);
@@ -339,9 +369,11 @@ public class SplitText extends AbstractProcessor {
      * @param unpacked
      */
     private void finishFragmentAttributes(final ProcessSession session, final FlowFile source, final List<FlowFile> splits) {
-        final String originalFilename = source.getAttribute(CoreAttributes.FILENAME.key());
+        final String originalFilename = source.
+                getAttribute(CoreAttributes.FILENAME.key());
 
-        final String fragmentId = UUID.randomUUID().toString();
+        final String fragmentId = UUID.randomUUID().
+                toString();
         final ArrayList<FlowFile> newList = new ArrayList<>(splits);
         splits.clear();
         for (int i = 1; i <= newList.size(); i++) {


[07/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProperties.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProperties.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProperties.java
index 3a5695e..8332082 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProperties.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JmsProperties.java
@@ -37,141 +37,144 @@ public class JmsProperties {
     public static final String MSG_TYPE_EMPTY = "empty";
 
     // Standard JMS Properties
-    public static final PropertyDescriptor JMS_PROVIDER = new PropertyDescriptor.Builder()
-            .name("JMS Provider")
-            .description("The Provider used for the JMS Server")
-            .required(true)
-            .allowableValues(ACTIVEMQ_PROVIDER)
-            .defaultValue(ACTIVEMQ_PROVIDER)
-            .build();
-    public static final PropertyDescriptor URL = new PropertyDescriptor.Builder()
-            .name("URL")
-            .description("The URL of the JMS Server")
-            .addValidator(StandardValidators.URI_VALIDATOR)
-            .required(true)
-            .build();
-    public static final PropertyDescriptor TIMEOUT = new PropertyDescriptor.Builder()
-            .name("Communications Timeout")
-            .description("The amount of time to wait when attempting to receive a message before giving up and assuming failure")
-            .required(true)
-            .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .defaultValue("30 sec")
-            .build();
-    public static final PropertyDescriptor USERNAME = new PropertyDescriptor.Builder()
-            .name("Username")
-            .description("Username used for authentication and authorization")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor PASSWORD = new PropertyDescriptor.Builder()
-            .name("Password")
-            .description("Password used for authentication and authorization")
-            .required(false)
-            .addValidator(Validator.VALID)
-            .sensitive(true)
-            .build();
-    public static final PropertyDescriptor CLIENT_ID_PREFIX = new PropertyDescriptor.Builder()
-            .name("Client ID Prefix")
-            .description("A human-readable ID that can be used to associate connections with yourself so that the maintainers of the JMS Server know who to contact if problems arise")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
+    public static final PropertyDescriptor JMS_PROVIDER = new PropertyDescriptor.Builder().
+            name("JMS Provider").
+            description("The Provider used for the JMS Server").
+            required(true).
+            allowableValues(ACTIVEMQ_PROVIDER).
+            defaultValue(ACTIVEMQ_PROVIDER).
+            build();
+    public static final PropertyDescriptor URL = new PropertyDescriptor.Builder().
+            name("URL").
+            description("The URL of the JMS Server").
+            addValidator(StandardValidators.URI_VALIDATOR).
+            required(true).
+            build();
+    public static final PropertyDescriptor TIMEOUT = new PropertyDescriptor.Builder().
+            name("Communications Timeout").
+            description("The amount of time to wait when attempting to receive a message before giving up and assuming failure").
+            required(true).
+            addValidator(StandardValidators.TIME_PERIOD_VALIDATOR).
+            defaultValue("30 sec").
+            build();
+    public static final PropertyDescriptor USERNAME = new PropertyDescriptor.Builder().
+            name("Username").
+            description("Username used for authentication and authorization").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
+    public static final PropertyDescriptor PASSWORD = new PropertyDescriptor.Builder().
+            name("Password").
+            description("Password used for authentication and authorization").
+            required(false).
+            addValidator(Validator.VALID).
+            sensitive(true).
+            build();
+    public static final PropertyDescriptor CLIENT_ID_PREFIX = new PropertyDescriptor.Builder().
+            name("Client ID Prefix").
+            description("A human-readable ID that can be used to associate connections with yourself so that the maintainers of the JMS Server know who to contact if problems arise").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
 
     // Topic/Queue determination Properties
-    public static final PropertyDescriptor DESTINATION_NAME = new PropertyDescriptor.Builder()
-            .name("Destination Name")
-            .description("The name of the JMS Topic or queue to use")
-            .required(true)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor DESTINATION_TYPE = new PropertyDescriptor.Builder()
-            .name("Destination Type")
-            .description("The type of the JMS Destination to use")
-            .required(true)
-            .allowableValues(DESTINATION_TYPE_QUEUE, DESTINATION_TYPE_TOPIC)
-            .defaultValue(DESTINATION_TYPE_QUEUE)
-            .build();
+    public static final PropertyDescriptor DESTINATION_NAME = new PropertyDescriptor.Builder().
+            name("Destination Name").
+            description("The name of the JMS Topic or queue to use").
+            required(true).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
+    public static final PropertyDescriptor DESTINATION_TYPE = new PropertyDescriptor.Builder().
+            name("Destination Type").
+            description("The type of the JMS Destination to use").
+            required(true).
+            allowableValues(DESTINATION_TYPE_QUEUE, DESTINATION_TYPE_TOPIC).
+            defaultValue(DESTINATION_TYPE_QUEUE).
+            build();
 
-    public static final PropertyDescriptor DURABLE_SUBSCRIPTION = new PropertyDescriptor.Builder()
-            .name("Use Durable Subscription")
-            .description("If true, connections to the specified topic will use Durable Subscription so that messages are queued when we are not pulling them")
-            .required(true)
-            .allowableValues("true", "false")
-            .defaultValue("false")
-            .build();
+    public static final PropertyDescriptor DURABLE_SUBSCRIPTION = new PropertyDescriptor.Builder().
+            name("Use Durable Subscription").
+            description("If true, connections to the specified topic will use Durable Subscription so that messages are queued when we are not pulling them").
+            required(true).
+            allowableValues("true", "false").
+            defaultValue("false").
+            build();
 
     // JMS Publisher Properties
-    public static final PropertyDescriptor ATTRIBUTES_TO_JMS_PROPS = new PropertyDescriptor.Builder()
-            .name("Copy Attributes to JMS Properties")
-            .description("Whether or not FlowFile Attributes should be translated into JMS Message Properties. If true, all attributes starting with 'jms.' will be set as Properties on the JMS Message (without the 'jms.' prefix). If an attribute exists that starts with the same value but ends in '.type', that attribute will be used to determine the JMS Message Property type.")
-            .required(true)
-            .allowableValues("true", "false")
-            .defaultValue("true")
-            .build();
+    public static final PropertyDescriptor ATTRIBUTES_TO_JMS_PROPS = new PropertyDescriptor.Builder().
+            name("Copy Attributes to JMS Properties").
+            description("Whether or not FlowFile Attributes should be translated into JMS Message Properties. If true, all "
+                    + "attributes starting with 'jms.' will be set as Properties on the JMS Message (without the 'jms.' prefix). "
+                    + "If an attribute exists that starts with the same value but ends in '.type', that attribute will be used "
+                    + "to determine the JMS Message Property type.").
+            required(true).
+            allowableValues("true", "false").
+            defaultValue("true").
+            build();
 
     // JMS Listener Properties
-    public static final PropertyDescriptor BATCH_SIZE = new PropertyDescriptor.Builder()
-            .name("Message Batch Size")
-            .description("The number of messages to pull/push in a single iteration of the processor")
-            .required(true)
-            .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
-            .defaultValue("10")
-            .build();
-    public static final PropertyDescriptor ACKNOWLEDGEMENT_MODE = new PropertyDescriptor.Builder()
-            .name("Acknowledgement Mode")
-            .description("The JMS Acknowledgement Mode. Using Auto Acknowledge can cause messages to be lost on restart of NiFi but may provide better performance than Client Acknowledge.")
-            .required(true)
-            .allowableValues(ACK_MODE_CLIENT, ACK_MODE_AUTO)
-            .defaultValue(ACK_MODE_CLIENT)
-            .build();
-    public static final PropertyDescriptor JMS_PROPS_TO_ATTRIBUTES = new PropertyDescriptor.Builder()
-            .name("Copy JMS Properties to Attributes")
-            .description("Whether or not the JMS Message Properties should be copied to the FlowFile Attributes; if so, the attribute name will be jms.XXX, where XXX is the JMS Property name")
-            .required(true)
-            .allowableValues("true", "false")
-            .defaultValue("true")
-            .build();
-    public static final PropertyDescriptor MESSAGE_SELECTOR = new PropertyDescriptor.Builder()
-            .name("Message Selector")
-            .description("The JMS Message Selector to use in order to narrow the messages that are pulled")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .build();
+    public static final PropertyDescriptor BATCH_SIZE = new PropertyDescriptor.Builder().
+            name("Message Batch Size").
+            description("The number of messages to pull/push in a single iteration of the processor").
+            required(true).
+            addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR).
+            defaultValue("10").
+            build();
+    public static final PropertyDescriptor ACKNOWLEDGEMENT_MODE = new PropertyDescriptor.Builder().
+            name("Acknowledgement Mode").
+            description("The JMS Acknowledgement Mode. Using Auto Acknowledge can cause messages to be lost on restart of NiFi but may provide better performance than Client Acknowledge.").
+            required(true).
+            allowableValues(ACK_MODE_CLIENT, ACK_MODE_AUTO).
+            defaultValue(ACK_MODE_CLIENT).
+            build();
+    public static final PropertyDescriptor JMS_PROPS_TO_ATTRIBUTES = new PropertyDescriptor.Builder().
+            name("Copy JMS Properties to Attributes").
+            description("Whether or not the JMS Message Properties should be copied to the FlowFile Attributes; if so, the attribute name will be jms.XXX, where XXX is the JMS Property name").
+            required(true).
+            allowableValues("true", "false").
+            defaultValue("true").
+            build();
+    public static final PropertyDescriptor MESSAGE_SELECTOR = new PropertyDescriptor.Builder().
+            name("Message Selector").
+            description("The JMS Message Selector to use in order to narrow the messages that are pulled").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            build();
 
     // JMS Producer Properties
-    public static final PropertyDescriptor MESSAGE_TYPE = new PropertyDescriptor.Builder()
-            .name("Message Type")
-            .description("The Type of JMS Message to Construct")
-            .required(true)
-            .allowableValues(MSG_TYPE_BYTE, MSG_TYPE_STREAM, MSG_TYPE_TEXT, MSG_TYPE_MAP, MSG_TYPE_EMPTY)
-            .defaultValue(MSG_TYPE_BYTE)
-            .build();
-    public static final PropertyDescriptor MESSAGE_PRIORITY = new PropertyDescriptor.Builder()
-            .name("Message Priority")
-            .description("The Priority of the Message")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor REPLY_TO_QUEUE = new PropertyDescriptor.Builder()
-            .name("Reply-To Queue")
-            .description("The name of the queue to which a reply to should be added")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .expressionLanguageSupported(true)
-            .build();
-    public static final PropertyDescriptor MESSAGE_TTL = new PropertyDescriptor.Builder()
-            .name("Message Time to Live")
-            .description("The amount of time that the message should live on the destination before being removed; if not specified, the message will never expire.")
-            .required(false)
-            .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor MAX_BUFFER_SIZE = new PropertyDescriptor.Builder()
-            .name("Max Buffer Size")
-            .description("The maximum amount of data that can be buffered for a JMS Message. If a FlowFile's size exceeds this value, the FlowFile will be routed to failure.")
-            .required(true)
-            .addValidator(StandardValidators.DATA_SIZE_VALIDATOR)
-            .defaultValue("1 MB")
-            .build();
+    public static final PropertyDescriptor MESSAGE_TYPE = new PropertyDescriptor.Builder().
+            name("Message Type").
+            description("The Type of JMS Message to Construct").
+            required(true).
+            allowableValues(MSG_TYPE_BYTE, MSG_TYPE_STREAM, MSG_TYPE_TEXT, MSG_TYPE_MAP, MSG_TYPE_EMPTY).
+            defaultValue(MSG_TYPE_BYTE).
+            build();
+    public static final PropertyDescriptor MESSAGE_PRIORITY = new PropertyDescriptor.Builder().
+            name("Message Priority").
+            description("The Priority of the Message").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor REPLY_TO_QUEUE = new PropertyDescriptor.Builder().
+            name("Reply-To Queue").
+            description("The name of the queue to which a reply to should be added").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            expressionLanguageSupported(true).
+            build();
+    public static final PropertyDescriptor MESSAGE_TTL = new PropertyDescriptor.Builder().
+            name("Message Time to Live").
+            description("The amount of time that the message should live on the destination before being removed; if not specified, the message will never expire.").
+            required(false).
+            addValidator(StandardValidators.TIME_PERIOD_VALIDATOR).
+            build();
+    public static final PropertyDescriptor MAX_BUFFER_SIZE = new PropertyDescriptor.Builder().
+            name("Max Buffer Size").
+            description("The maximum amount of data that can be buffered for a JMS Message. If a FlowFile's size exceeds this value, the FlowFile will be routed to failure.").
+            required(true).
+            addValidator(StandardValidators.DATA_SIZE_VALIDATOR).
+            defaultValue("1 MB").
+            build();
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JsonPathExpressionValidator.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JsonPathExpressionValidator.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JsonPathExpressionValidator.java
index 61f9bbe..8a1a056 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JsonPathExpressionValidator.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/JsonPathExpressionValidator.java
@@ -19,7 +19,13 @@ package org.apache.nifi.processors.standard.util;
 import com.jayway.jsonpath.Filter;
 import com.jayway.jsonpath.Predicate;
 import com.jayway.jsonpath.internal.Utils;
-import com.jayway.jsonpath.internal.token.*;
+import com.jayway.jsonpath.internal.token.ArrayPathToken;
+import com.jayway.jsonpath.internal.token.PathToken;
+import com.jayway.jsonpath.internal.token.PredicatePathToken;
+import com.jayway.jsonpath.internal.token.PropertyPathToken;
+import com.jayway.jsonpath.internal.token.RootPathToken;
+import com.jayway.jsonpath.internal.token.ScanPathToken;
+import com.jayway.jsonpath.internal.token.WildcardPathToken;
 import org.apache.nifi.util.StringUtils;
 
 import java.util.ArrayList;
@@ -30,11 +36,13 @@ import java.util.regex.Pattern;
 import static java.util.Arrays.asList;
 
 /**
- * JsonPathExpressionValidator performs the same execution as com.jayway.jsonpath.internal.PathCompiler, but does not throw
- * exceptions when an invalid path segment is found.
- * Limited access to create JsonPath objects requires a separate flow of execution in avoiding exceptions.
+ * JsonPathExpressionValidator performs the same execution as
+ * com.jayway.jsonpath.internal.PathCompiler, but does not throw exceptions when
+ * an invalid path segment is found. Limited access to create JsonPath objects
+ * requires a separate flow of execution in avoiding exceptions.
  *
- * @see <a href="https://github.com/jayway/JsonPath">https://github.com/jayway/JsonPath</a>
+ * @see
+ * <a href="https://github.com/jayway/JsonPath">https://github.com/jayway/JsonPath</a>
  */
 public class JsonPathExpressionValidator {
 
@@ -47,7 +55,6 @@ public class JsonPathExpressionValidator {
     private static final char BRACKET_CLOSE = ']';
     private static final char SPACE = ' ';
 
-
     /**
      * Performs a validation of a provided JsonPath expression.
      * <p/>
@@ -64,8 +71,9 @@ public class JsonPathExpressionValidator {
      * </pre>
      * </code>
      *
-     * @param path    to evaluate for validity
-     * @param filters applied to path expression; this is typically unused in the context of Processors
+     * @param path to evaluate for validity
+     * @param filters applied to path expression; this is typically unused in
+     * the context of Processors
      * @return true if the specified path is valid; false otherwise
      */
     public static boolean isValidExpression(String path, Predicate... filters) {
@@ -79,7 +87,7 @@ public class JsonPathExpressionValidator {
             return false;
         }
 
-        LinkedList<Predicate> filterList = new LinkedList<Predicate>(asList(filters));
+        LinkedList<Predicate> filterList = new LinkedList<>(asList(filters));
 
         if (path.charAt(0) != '$' && path.charAt(0) != '@') {
             path = "$." + path;
@@ -128,15 +136,16 @@ public class JsonPathExpressionValidator {
                             continue;
 
                         } else if (positions == 1 && path.charAt(i) == '*') {
-                            fragment = new String("[*]");
+                            fragment = "[*]";
                         } else {
-                            fragment = PROPERTY_OPEN + path.substring(i, i + positions) + PROPERTY_CLOSE;
+                            fragment = PROPERTY_OPEN + path.
+                                    substring(i, i + positions) + PROPERTY_CLOSE;
                         }
                         i += positions;
                     }
                     break;
                 case ANY:
-                    fragment = new String("[*]");
+                    fragment = "[*]";
                     i++;
                     break;
                 default:
@@ -151,7 +160,8 @@ public class JsonPathExpressionValidator {
              * Analyze each component represented by a fragment.  If there is a failure to properly evaluate,
              * a null result is returned
              */
-            PathToken analyzedComponent = PathComponentAnalyzer.analyze(fragment, filterList);
+            PathToken analyzedComponent = PathComponentAnalyzer.
+                    analyze(fragment, filterList);
             if (analyzedComponent == null) {
                 return false;
             }
@@ -162,7 +172,6 @@ public class JsonPathExpressionValidator {
                 root.append(analyzedComponent);
             }
 
-
         } while (i < path.length());
 
         return true;
@@ -210,7 +219,8 @@ public class JsonPathExpressionValidator {
 
     static class PathComponentAnalyzer {
 
-        private static final Pattern FILTER_PATTERN = Pattern.compile("^\\[\\s*\\?\\s*[,\\s*\\?]*?\\s*]$"); //[?] or [?, ?, ...]
+        private static final Pattern FILTER_PATTERN = Pattern.
+                compile("^\\[\\s*\\?\\s*[,\\s*\\?]*?\\s*]$"); //[?] or [?, ?, ...]
         private int i;
         private char current;
 
@@ -228,13 +238,18 @@ public class JsonPathExpressionValidator {
 
         public PathToken analyze() {
 
-            if ("$".equals(pathFragment)) return new RootPathToken();
-            else if ("..".equals(pathFragment)) return new ScanPathToken();
-            else if ("[*]".equals(pathFragment)) return new WildcardPathToken();
-            else if (".*".equals(pathFragment)) return new WildcardPathToken();
-            else if ("[?]".equals(pathFragment)) return new PredicatePathToken(filterList.poll());
-
-            else if (FILTER_PATTERN.matcher(pathFragment).matches()) {
+            if ("$".equals(pathFragment)) {
+                return new RootPathToken();
+            } else if ("..".equals(pathFragment)) {
+                return new ScanPathToken();
+            } else if ("[*]".equals(pathFragment)) {
+                return new WildcardPathToken();
+            } else if (".*".equals(pathFragment)) {
+                return new WildcardPathToken();
+            } else if ("[?]".equals(pathFragment)) {
+                return new PredicatePathToken(filterList.poll());
+            } else if (FILTER_PATTERN.matcher(pathFragment).
+                    matches()) {
                 final int criteriaCount = Utils.countMatches(pathFragment, "?");
                 List<Predicate> filters = new ArrayList<>(criteriaCount);
                 for (int i = 0; i < criteriaCount; i++) {
@@ -260,14 +275,12 @@ public class JsonPathExpressionValidator {
                         break;
                 }
 
-
             } while (i < pathFragment.length());
 
             //"Could not analyze path component: " + pathFragment
             return null;
         }
 
-
         public PathToken analyzeCriteriaSequence4() {
             int[] bounds = findFilterBounds();
             if (bounds == null) {
@@ -275,7 +288,8 @@ public class JsonPathExpressionValidator {
             }
             i = bounds[1];
 
-            return new PredicatePathToken(Filter.parse(pathFragment.substring(bounds[0], bounds[1])));
+            return new PredicatePathToken(Filter.parse(pathFragment.
+                    substring(bounds[0], bounds[1])));
         }
 
         int[] findFilterBounds() {
@@ -295,13 +309,19 @@ public class JsonPathExpressionValidator {
                 char c = pathFragment.charAt(curr);
                 switch (c) {
                     case '(':
-                        if (!inProp) openBrackets++;
+                        if (!inProp) {
+                            openBrackets++;
+                        }
                         break;
                     case ')':
-                        if (!inProp) openBrackets--;
+                        if (!inProp) {
+                            openBrackets--;
+                        }
                         break;
                     case '[':
-                        if (!inProp) openSquareBracket++;
+                        if (!inProp) {
+                            openSquareBracket++;
+                        }
                         break;
                     case ']':
                         if (!inProp) {
@@ -330,10 +350,9 @@ public class JsonPathExpressionValidator {
             return new int[]{start, end};
         }
 
-
         //"['foo']"
         private PathToken analyzeProperty() {
-            List<String> properties = new ArrayList<String>();
+            List<String> properties = new ArrayList<>();
             StringBuilder buffer = new StringBuilder();
 
             boolean propertyIsOpen = false;
@@ -360,7 +379,6 @@ public class JsonPathExpressionValidator {
             return new PropertyPathToken(properties);
         }
 
-
         //"[-1:]"  sliceFrom
         //"[:1]"   sliceTo
         //"[0:5]"  sliceBetween
@@ -369,7 +387,7 @@ public class JsonPathExpressionValidator {
         //"[(@.length - 1)]"
         private PathToken analyzeArraySequence() {
             StringBuilder buffer = new StringBuilder();
-            List<Integer> numbers = new ArrayList<Integer>();
+            List<Integer> numbers = new ArrayList<>();
 
             boolean contextSize = (current == '@');
             boolean sliceTo = false;
@@ -407,7 +425,6 @@ public class JsonPathExpressionValidator {
 
             } else {
 
-
                 while (Character.isDigit(current) || current == ',' || current == ' ' || current == ':' || current == '-') {
 
                     switch (current) {
@@ -444,7 +461,8 @@ public class JsonPathExpressionValidator {
                                     sliceFrom = true;
                                 } else {
                                     sliceBetween = true;
-                                    numbers.add(Integer.parseInt(buffer.toString()));
+                                    numbers.add(Integer.parseInt(buffer.
+                                            toString()));
                                     buffer.setLength(0);
                                 }
                             }
@@ -471,12 +489,19 @@ public class JsonPathExpressionValidator {
 
             ArrayPathToken.Operation operation = null;
 
-            if (singleIndex) operation = ArrayPathToken.Operation.SINGLE_INDEX;
-            else if (indexSequence) operation = ArrayPathToken.Operation.INDEX_SEQUENCE;
-            else if (sliceFrom) operation = ArrayPathToken.Operation.SLICE_FROM;
-            else if (sliceTo) operation = ArrayPathToken.Operation.SLICE_TO;
-            else if (sliceBetween) operation = ArrayPathToken.Operation.SLICE_BETWEEN;
-            else if (contextSize) operation = ArrayPathToken.Operation.CONTEXT_SIZE;
+            if (singleIndex) {
+                operation = ArrayPathToken.Operation.SINGLE_INDEX;
+            } else if (indexSequence) {
+                operation = ArrayPathToken.Operation.INDEX_SEQUENCE;
+            } else if (sliceFrom) {
+                operation = ArrayPathToken.Operation.SLICE_FROM;
+            } else if (sliceTo) {
+                operation = ArrayPathToken.Operation.SLICE_TO;
+            } else if (sliceBetween) {
+                operation = ArrayPathToken.Operation.SLICE_BETWEEN;
+            } else if (contextSize) {
+                operation = ArrayPathToken.Operation.CONTEXT_SIZE;
+            }
 
             assert operation != null;
 
@@ -484,4 +509,4 @@ public class JsonPathExpressionValidator {
 
         }
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPConnection.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPConnection.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPConnection.java
index ad0b54e..b07c320 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPConnection.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPConnection.java
@@ -23,10 +23,6 @@ import java.io.IOException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-/**
- *
- * @author
- */
 public final class SFTPConnection implements Closeable {
 
     private static final Log logger = LogFactory.getLog(SFTPConnection.class);
@@ -46,11 +42,6 @@ public final class SFTPConnection implements Closeable {
         return sftp;
     }
 
-    /**
-     * Call this method to release the connection properly.
-     *
-     * @throws IOException
-     */
     @Override
     public void close() throws IOException {
         if (null == sftp) {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
index a294aa4..c8e7b78 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPTransfer.java
@@ -50,46 +50,46 @@ import com.jcraft.jsch.SftpException;
 
 public class SFTPTransfer implements FileTransfer {
 
-    public static final PropertyDescriptor PRIVATE_KEY_PATH = new PropertyDescriptor.Builder()
-            .name("Private Key Path")
-            .description("The fully qualified path to the Private Key file")
-            .required(false)
-            .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
-            .build();
-    public static final PropertyDescriptor PRIVATE_KEY_PASSPHRASE = new PropertyDescriptor.Builder()
-            .name("Private Key Passphrase")
-            .description("Password for the private key")
-            .required(false)
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .sensitive(true)
-            .build();
-    public static final PropertyDescriptor HOST_KEY_FILE = new PropertyDescriptor.Builder()
-            .name("Host Key File")
-            .description("If supplied, the given file will be used as the Host Key; otherwise, no use host key file will be used")
-            .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
-            .required(false)
-            .build();
-    public static final PropertyDescriptor STRICT_HOST_KEY_CHECKING = new PropertyDescriptor.Builder()
-            .name("Strict Host Key Checking")
-            .description("Indicates whether or not strict enforcement of hosts keys should be applied")
-            .allowableValues("true", "false")
-            .defaultValue("false")
-            .required(true)
-            .build();
-    public static final PropertyDescriptor PORT = new PropertyDescriptor.Builder()
-            .name("Port")
-            .description("The port that the remote system is listening on for file transfers")
-            .addValidator(StandardValidators.PORT_VALIDATOR)
-            .required(true)
-            .defaultValue("22")
-            .build();
-    public static final PropertyDescriptor USE_KEEPALIVE_ON_TIMEOUT = new PropertyDescriptor.Builder()
-            .name("Send Keep Alive On Timeout")
-            .description("Indicates whether or not to send a single Keep Alive message when SSH socket times out")
-            .allowableValues("true", "false")
-            .defaultValue("true")
-            .required(true)
-            .build();
+    public static final PropertyDescriptor PRIVATE_KEY_PATH = new PropertyDescriptor.Builder().
+            name("Private Key Path").
+            description("The fully qualified path to the Private Key file").
+            required(false).
+            addValidator(StandardValidators.FILE_EXISTS_VALIDATOR).
+            build();
+    public static final PropertyDescriptor PRIVATE_KEY_PASSPHRASE = new PropertyDescriptor.Builder().
+            name("Private Key Passphrase").
+            description("Password for the private key").
+            required(false).
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            sensitive(true).
+            build();
+    public static final PropertyDescriptor HOST_KEY_FILE = new PropertyDescriptor.Builder().
+            name("Host Key File").
+            description("If supplied, the given file will be used as the Host Key; otherwise, no use host key file will be used").
+            addValidator(StandardValidators.FILE_EXISTS_VALIDATOR).
+            required(false).
+            build();
+    public static final PropertyDescriptor STRICT_HOST_KEY_CHECKING = new PropertyDescriptor.Builder().
+            name("Strict Host Key Checking").
+            description("Indicates whether or not strict enforcement of hosts keys should be applied").
+            allowableValues("true", "false").
+            defaultValue("false").
+            required(true).
+            build();
+    public static final PropertyDescriptor PORT = new PropertyDescriptor.Builder().
+            name("Port").
+            description("The port that the remote system is listening on for file transfers").
+            addValidator(StandardValidators.PORT_VALIDATOR).
+            required(true).
+            defaultValue("22").
+            build();
+    public static final PropertyDescriptor USE_KEEPALIVE_ON_TIMEOUT = new PropertyDescriptor.Builder().
+            name("Send Keep Alive On Timeout").
+            description("Indicates whether or not to send a single Keep Alive message when SSH socket times out").
+            allowableValues("true", "false").
+            defaultValue("true").
+            required(true).
+            build();
 
     /**
      * Dynamic property which is used to decide if the
@@ -101,13 +101,13 @@ public class SFTPTransfer implements FileTransfer {
      * <p>
      * This property is dynamic until deemed a worthy inclusion as proper.
      */
-    public static final PropertyDescriptor DISABLE_DIRECTORY_LISTING = new PropertyDescriptor.Builder()
-            .name("Disable Directory Listing")
-            .description("Disables directory listings before operations which might fail, such as configurations which create directory structures.")
-            .addValidator(StandardValidators.BOOLEAN_VALIDATOR)
-            .dynamic(true)
-            .defaultValue("false")
-            .build();
+    public static final PropertyDescriptor DISABLE_DIRECTORY_LISTING = new PropertyDescriptor.Builder().
+            name("Disable Directory Listing").
+            description("Disables directory listings before operations which might fail, such as configurations which create directory structures.").
+            addValidator(StandardValidators.BOOLEAN_VALIDATOR).
+            dynamic(true).
+            defaultValue("false").
+            build();
 
     private final ProcessorLog logger;
 
@@ -123,8 +123,10 @@ public class SFTPTransfer implements FileTransfer {
         this.ctx = processContext;
         this.logger = logger;
 
-        final PropertyValue disableListing = processContext.getProperty(DISABLE_DIRECTORY_LISTING);
-        disableDirectoryListing = disableListing == null ? false : Boolean.TRUE.equals(disableListing.asBoolean());
+        final PropertyValue disableListing = processContext.
+                getProperty(DISABLE_DIRECTORY_LISTING);
+        disableDirectoryListing = disableListing == null ? false : Boolean.TRUE.
+                equals(disableListing.asBoolean());
     }
 
     @Override
@@ -134,9 +136,13 @@ public class SFTPTransfer implements FileTransfer {
 
     @Override
     public List<FileInfo> getListing() throws IOException {
-        final String path = ctx.getProperty(FileTransfer.REMOTE_PATH).evaluateAttributeExpressions().getValue();
+        final String path = ctx.getProperty(FileTransfer.REMOTE_PATH).
+                evaluateAttributeExpressions().
+                getValue();
         final int depth = 0;
-        final int maxResults = ctx.getProperty(FileTransfer.REMOTE_POLL_BATCH_SIZE).asInteger();
+        final int maxResults = ctx.
+                getProperty(FileTransfer.REMOTE_POLL_BATCH_SIZE).
+                asInteger();
         final List<FileInfo> listing = new ArrayList<>(1000);
         getListing(path, depth, maxResults, listing);
         return listing;
@@ -148,27 +154,43 @@ public class SFTPTransfer implements FileTransfer {
         }
 
         if (depth >= 100) {
-            logger.warn(this + " had to stop recursively searching directories at a recursive depth of " + depth + " to avoid memory issues");
+            logger.
+                    warn(this + " had to stop recursively searching directories at a recursive depth of " + depth + " to avoid memory issues");
             return;
         }
 
-        final boolean ignoreDottedFiles = ctx.getProperty(FileTransfer.IGNORE_DOTTED_FILES).asBoolean();
-        final boolean recurse = ctx.getProperty(FileTransfer.RECURSIVE_SEARCH).asBoolean();
-        final String fileFilterRegex = ctx.getProperty(FileTransfer.FILE_FILTER_REGEX).getValue();
-        final Pattern pattern = (fileFilterRegex == null) ? null : Pattern.compile(fileFilterRegex);
-        final String pathFilterRegex = ctx.getProperty(FileTransfer.PATH_FILTER_REGEX).getValue();
-        final Pattern pathPattern = (!recurse || pathFilterRegex == null) ? null : Pattern.compile(pathFilterRegex);
-        final String remotePath = ctx.getProperty(FileTransfer.REMOTE_PATH).evaluateAttributeExpressions().getValue();
+        final boolean ignoreDottedFiles = ctx.
+                getProperty(FileTransfer.IGNORE_DOTTED_FILES).
+                asBoolean();
+        final boolean recurse = ctx.getProperty(FileTransfer.RECURSIVE_SEARCH).
+                asBoolean();
+        final String fileFilterRegex = ctx.
+                getProperty(FileTransfer.FILE_FILTER_REGEX).
+                getValue();
+        final Pattern pattern = (fileFilterRegex == null) ? null : Pattern.
+                compile(fileFilterRegex);
+        final String pathFilterRegex = ctx.
+                getProperty(FileTransfer.PATH_FILTER_REGEX).
+                getValue();
+        final Pattern pathPattern = (!recurse || pathFilterRegex == null) ? null : Pattern.
+                compile(pathFilterRegex);
+        final String remotePath = ctx.getProperty(FileTransfer.REMOTE_PATH).
+                evaluateAttributeExpressions().
+                getValue();
 
         // check if this directory path matches the PATH_FILTER_REGEX
         boolean pathFilterMatches = true;
         if (pathPattern != null) {
             Path reldir = path == null ? Paths.get(".") : Paths.get(path);
             if (remotePath != null) {
-                reldir = Paths.get(remotePath).relativize(reldir);
-            }
-            if (reldir != null && !reldir.toString().isEmpty()) {
-                if (!pathPattern.matcher(reldir.toString().replace("\\", "/")).matches()) {
+                reldir = Paths.get(remotePath).
+                        relativize(reldir);
+            }
+            if (reldir != null && !reldir.toString().
+                    isEmpty()) {
+                if (!pathPattern.matcher(reldir.toString().
+                        replace("\\", "/")).
+                        matches()) {
                     pathFilterMatches = false;
                 }
             }
@@ -197,15 +219,19 @@ public class SFTPTransfer implements FileTransfer {
                     }
 
                     // if is a directory and we're supposed to recurse
-                    if (recurse && entry.getAttrs().isDir()) {
+                    if (recurse && entry.getAttrs().
+                            isDir()) {
                         subDirs.add(entry);
                         return LsEntrySelector.CONTINUE;
                     }
 
                     // if is not a directory and is not a link and it matches
                     // FILE_FILTER_REGEX - then let's add it
-                    if (!entry.getAttrs().isDir() && !entry.getAttrs().isLink() && isPathMatch) {
-                        if (pattern == null || pattern.matcher(entryFilename).matches()) {
+                    if (!entry.getAttrs().
+                            isDir() && !entry.getAttrs().
+                            isLink() && isPathMatch) {
+                        if (pattern == null || pattern.matcher(entryFilename).
+                                matches()) {
                             listing.add(newFileInfo(entry, path));
                         }
                     }
@@ -219,7 +245,8 @@ public class SFTPTransfer implements FileTransfer {
 
             };
 
-            if (path == null || path.trim().isEmpty()) {
+            if (path == null || path.trim().
+                    isEmpty()) {
                 sftp.ls(".", filter);
             } else {
                 sftp.ls(path, filter);
@@ -231,12 +258,14 @@ public class SFTPTransfer implements FileTransfer {
         for (final LsEntry entry : subDirs) {
             final String entryFilename = entry.getFilename();
             final File newFullPath = new File(path, entryFilename);
-            final String newFullForwardPath = newFullPath.getPath().replace("\\", "/");
+            final String newFullForwardPath = newFullPath.getPath().
+                    replace("\\", "/");
 
             try {
                 getListing(newFullForwardPath, depth + 1, maxResults, listing);
             } catch (final IOException e) {
-                logger.error("Unable to get listing from " + newFullForwardPath + "; skipping this subdirectory");
+                logger.
+                        error("Unable to get listing from " + newFullForwardPath + "; skipping this subdirectory");
             }
         }
     }
@@ -246,22 +275,29 @@ public class SFTPTransfer implements FileTransfer {
             return null;
         }
         final File newFullPath = new File(path, entry.getFilename());
-        final String newFullForwardPath = newFullPath.getPath().replace("\\", "/");
+        final String newFullForwardPath = newFullPath.getPath().
+                replace("\\", "/");
 
-        String perms = entry.getAttrs().getPermissionsString();
+        String perms = entry.getAttrs().
+                getPermissionsString();
         if (perms.length() > 9) {
             perms = perms.substring(perms.length() - 9);
         }
 
         FileInfo.Builder builder = new FileInfo.Builder()
-                .filename(entry.getFilename())
-                .fullPathFileName(newFullForwardPath)
-                .directory(entry.getAttrs().isDir())
-                .size(entry.getAttrs().getSize())
-                .lastModifiedTime(entry.getAttrs().getMTime() * 1000L)
-                .permissions(perms)
-                .owner(Integer.toString(entry.getAttrs().getUId()))
-                .group(Integer.toString(entry.getAttrs().getGId()));
+                .filename(entry.getFilename()).
+                fullPathFileName(newFullForwardPath).
+                directory(entry.getAttrs().
+                        isDir()).
+                size(entry.getAttrs().
+                        getSize()).
+                lastModifiedTime(entry.getAttrs().
+                        getMTime() * 1000L).
+                permissions(perms).
+                owner(Integer.toString(entry.getAttrs().
+                                getUId())).
+                group(Integer.toString(entry.getAttrs().
+                                getGId()));
         return builder.build();
     }
 
@@ -304,7 +340,9 @@ public class SFTPTransfer implements FileTransfer {
     @Override
     public void ensureDirectoryExists(final FlowFile flowFile, final File directoryName) throws IOException {
         final ChannelSftp channel = getChannel(flowFile);
-        final String remoteDirectory = directoryName.getAbsolutePath().replace("\\", "/").replaceAll("^.\\:", "");
+        final String remoteDirectory = directoryName.getAbsolutePath().
+                replace("\\", "/").
+                replaceAll("^.\\:", "");
 
         // if we disable the directory listing, we just want to blindly perform the mkdir command,
         // eating any exceptions thrown (like if the directory already exists).
@@ -313,7 +351,8 @@ public class SFTPTransfer implements FileTransfer {
                 channel.mkdir(remoteDirectory);
             } catch (SftpException e) {
                 if (e.id != ChannelSftp.SSH_FX_FAILURE) {
-                    throw new IOException("Could not blindly create remote directory due to " + e.getMessage(), e);
+                    throw new IOException("Could not blindly create remote directory due to " + e.
+                            getMessage(), e);
                 }
             }
             return;
@@ -335,10 +374,13 @@ public class SFTPTransfer implements FileTransfer {
 
         if (!exists) {
             // first ensure parent directories exist before creating this one
-            if (directoryName.getParent() != null && !directoryName.getParentFile().equals(new File(File.separator))) {
+            if (directoryName.getParent() != null && !directoryName.
+                    getParentFile().
+                    equals(new File(File.separator))) {
                 ensureDirectoryExists(flowFile, directoryName.getParentFile());
             }
-            logger.debug("Remote Directory {} does not exist; creating it", new Object[]{remoteDirectory});
+            logger.
+                    debug("Remote Directory {} does not exist; creating it", new Object[]{remoteDirectory});
             try {
                 channel.mkdir(remoteDirectory);
                 logger.debug("Created {}", new Object[]{remoteDirectory});
@@ -351,7 +393,9 @@ public class SFTPTransfer implements FileTransfer {
     private ChannelSftp getChannel(final FlowFile flowFile) throws IOException {
         if (sftp != null) {
             String sessionhost = session.getHost();
-            String desthost = ctx.getProperty(HOSTNAME).evaluateAttributeExpressions(flowFile).getValue();
+            String desthost = ctx.getProperty(HOSTNAME).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue();
             if (sessionhost.equals(desthost)) {
                 // destination matches so we can keep our current session
                 return sftp;
@@ -363,22 +407,35 @@ public class SFTPTransfer implements FileTransfer {
 
         final JSch jsch = new JSch();
         try {
-            final Session session = jsch.getSession(ctx.getProperty(USERNAME).getValue(),
-                    ctx.getProperty(HOSTNAME).evaluateAttributeExpressions(flowFile).getValue(),
-                    ctx.getProperty(PORT).evaluateAttributeExpressions(flowFile).asInteger().intValue());
-
-            final String hostKeyVal = ctx.getProperty(HOST_KEY_FILE).getValue();
+            final Session session = jsch.getSession(ctx.getProperty(USERNAME).
+                    getValue(),
+                    ctx.getProperty(HOSTNAME).
+                    evaluateAttributeExpressions(flowFile).
+                    getValue(),
+                    ctx.getProperty(PORT).
+                    evaluateAttributeExpressions(flowFile).
+                    asInteger().
+                    intValue());
+
+            final String hostKeyVal = ctx.getProperty(HOST_KEY_FILE).
+                    getValue();
             if (hostKeyVal != null) {
                 jsch.setKnownHosts(hostKeyVal);
             }
 
             final Properties properties = new Properties();
-            properties.setProperty("StrictHostKeyChecking", ctx.getProperty(STRICT_HOST_KEY_CHECKING).asBoolean() ? "yes" : "no");
-            properties.setProperty("PreferredAuthentications", "publickey,password");
-
-            if (ctx.getProperty(FileTransfer.USE_COMPRESSION).asBoolean()) {
-                properties.setProperty("compression.s2c", "zlib@openssh.com,zlib,none");
-                properties.setProperty("compression.c2s", "zlib@openssh.com,zlib,none");
+            properties.setProperty("StrictHostKeyChecking", ctx.
+                    getProperty(STRICT_HOST_KEY_CHECKING).
+                    asBoolean() ? "yes" : "no");
+            properties.
+                    setProperty("PreferredAuthentications", "publickey,password");
+
+            if (ctx.getProperty(FileTransfer.USE_COMPRESSION).
+                    asBoolean()) {
+                properties.
+                        setProperty("compression.s2c", "zlib@openssh.com,zlib,none");
+                properties.
+                        setProperty("compression.c2s", "zlib@openssh.com,zlib,none");
             } else {
                 properties.setProperty("compression.s2c", "none");
                 properties.setProperty("compression.c2s", "none");
@@ -386,32 +443,42 @@ public class SFTPTransfer implements FileTransfer {
 
             session.setConfig(properties);
 
-            final String privateKeyFile = ctx.getProperty(PRIVATE_KEY_PATH).getValue();
+            final String privateKeyFile = ctx.getProperty(PRIVATE_KEY_PATH).
+                    getValue();
             if (privateKeyFile != null) {
-                jsch.addIdentity(privateKeyFile, ctx.getProperty(PRIVATE_KEY_PASSPHRASE).getValue());
+                jsch.addIdentity(privateKeyFile, ctx.
+                        getProperty(PRIVATE_KEY_PASSPHRASE).
+                        getValue());
             }
 
-            final String password = ctx.getProperty(FileTransfer.PASSWORD).getValue();
+            final String password = ctx.getProperty(FileTransfer.PASSWORD).
+                    getValue();
             if (password != null) {
                 session.setPassword(password);
             }
 
-            session.setTimeout(ctx.getProperty(FileTransfer.CONNECTION_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue());
+            session.setTimeout(ctx.getProperty(FileTransfer.CONNECTION_TIMEOUT).
+                    asTimePeriod(TimeUnit.MILLISECONDS).
+                    intValue());
             session.connect();
             this.session = session;
             this.closed = false;
 
             sftp = (ChannelSftp) session.openChannel("sftp");
             sftp.connect();
-            session.setTimeout(ctx.getProperty(FileTransfer.DATA_TIMEOUT).asTimePeriod(TimeUnit.MILLISECONDS).intValue());
-            if (!ctx.getProperty(USE_KEEPALIVE_ON_TIMEOUT).asBoolean()) {
+            session.setTimeout(ctx.getProperty(FileTransfer.DATA_TIMEOUT).
+                    asTimePeriod(TimeUnit.MILLISECONDS).
+                    intValue());
+            if (!ctx.getProperty(USE_KEEPALIVE_ON_TIMEOUT).
+                    asBoolean()) {
                 session.setServerAliveCountMax(0); // do not send keepalive message on SocketTimeoutException
             }
             this.homeDir = sftp.getHome();
             return sftp;
 
         } catch (final SftpException | JSchException e) {
-            throw new IOException("Failed to obtain connection to remote host due to " + e.toString(), e);
+            throw new IOException("Failed to obtain connection to remote host due to " + e.
+                    toString(), e);
         }
     }
 
@@ -421,11 +488,6 @@ public class SFTPTransfer implements FileTransfer {
         return this.homeDir;
     }
 
-    /**
-     * Call this method to release the connection properly.
-     *
-     * @throws IOException
-     */
     @Override
     public void close() throws IOException {
         if (closed) {
@@ -438,7 +500,9 @@ public class SFTPTransfer implements FileTransfer {
                 sftp.exit();
             }
         } catch (final Exception ex) {
-            logger.warn("Failed to close ChannelSftp due to {}", new Object[]{ex.toString()}, ex);
+            logger.
+                    warn("Failed to close ChannelSftp due to {}", new Object[]{ex.
+                        toString()}, ex);
         }
         sftp = null;
 
@@ -447,7 +511,8 @@ public class SFTPTransfer implements FileTransfer {
                 session.disconnect();
             }
         } catch (final Exception ex) {
-            logger.warn("Failed to close session due to {}", new Object[]{ex.toString()}, ex);
+            logger.warn("Failed to close session due to {}", new Object[]{ex.
+                toString()}, ex);
         }
         session = null;
     }
@@ -487,7 +552,8 @@ public class SFTPTransfer implements FileTransfer {
 
         LsEntry matchingEntry = null;
         for (final LsEntry entry : vector) {
-            if (entry.getFilename().equalsIgnoreCase(filename)) {
+            if (entry.getFilename().
+                    equalsIgnoreCase(filename)) {
                 matchingEntry = entry;
                 break;
             }
@@ -506,9 +572,12 @@ public class SFTPTransfer implements FileTransfer {
                 : (path.endsWith("/")) ? path + filename : path + "/" + filename;
 
         // temporary path + filename
-        String tempFilename = ctx.getProperty(TEMP_FILENAME).evaluateAttributeExpressions(flowFile).getValue();
+        String tempFilename = ctx.getProperty(TEMP_FILENAME).
+                evaluateAttributeExpressions(flowFile).
+                getValue();
         if (tempFilename == null) {
-            final boolean dotRename = ctx.getProperty(DOT_RENAME).asBoolean();
+            final boolean dotRename = ctx.getProperty(DOT_RENAME).
+                    asBoolean();
             tempFilename = dotRename ? "." + filename : filename;
         }
         final String tempPath = (path == null)
@@ -521,45 +590,61 @@ public class SFTPTransfer implements FileTransfer {
             throw new IOException("Unable to put content to " + fullPath + " due to " + e, e);
         }
 
-        final String lastModifiedTime = ctx.getProperty(LAST_MODIFIED_TIME).evaluateAttributeExpressions(flowFile).getValue();
-        if (lastModifiedTime != null && !lastModifiedTime.trim().isEmpty()) {
+        final String lastModifiedTime = ctx.getProperty(LAST_MODIFIED_TIME).
+                evaluateAttributeExpressions(flowFile).
+                getValue();
+        if (lastModifiedTime != null && !lastModifiedTime.trim().
+                isEmpty()) {
             try {
                 final DateFormat formatter = new SimpleDateFormat(FILE_MODIFY_DATE_ATTR_FORMAT, Locale.US);
                 final Date fileModifyTime = formatter.parse(lastModifiedTime);
                 int time = (int) (fileModifyTime.getTime() / 1000L);
                 sftp.setMtime(tempPath, time);
             } catch (final Exception e) {
-                logger.error("Failed to set lastModifiedTime on {} to {} due to {}", new Object[]{tempPath, lastModifiedTime, e});
+                logger.
+                        error("Failed to set lastModifiedTime on {} to {} due to {}", new Object[]{tempPath, lastModifiedTime, e});
             }
         }
 
-        final String permissions = ctx.getProperty(PERMISSIONS).evaluateAttributeExpressions(flowFile).getValue();
-        if (permissions != null && !permissions.trim().isEmpty()) {
+        final String permissions = ctx.getProperty(PERMISSIONS).
+                evaluateAttributeExpressions(flowFile).
+                getValue();
+        if (permissions != null && !permissions.trim().
+                isEmpty()) {
             try {
                 int perms = numberPermissions(permissions);
                 if (perms >= 0) {
                     sftp.chmod(perms, tempPath);
                 }
             } catch (final Exception e) {
-                logger.error("Failed to set permission on {} to {} due to {}", new Object[]{tempPath, permissions, e});
+                logger.
+                        error("Failed to set permission on {} to {} due to {}", new Object[]{tempPath, permissions, e});
             }
         }
 
-        final String owner = ctx.getProperty(REMOTE_OWNER).evaluateAttributeExpressions(flowFile).getValue();
-        if (owner != null && !owner.trim().isEmpty()) {
+        final String owner = ctx.getProperty(REMOTE_OWNER).
+                evaluateAttributeExpressions(flowFile).
+                getValue();
+        if (owner != null && !owner.trim().
+                isEmpty()) {
             try {
                 sftp.chown(Integer.parseInt(owner), tempPath);
             } catch (final Exception e) {
-                logger.error("Failed to set owner on {} to {} due to {}", new Object[]{tempPath, owner, e});
+                logger.
+                        error("Failed to set owner on {} to {} due to {}", new Object[]{tempPath, owner, e});
             }
         }
 
-        final String group = ctx.getProperty(REMOTE_GROUP).evaluateAttributeExpressions(flowFile).getValue();
-        if (group != null && !group.trim().isEmpty()) {
+        final String group = ctx.getProperty(REMOTE_GROUP).
+                evaluateAttributeExpressions(flowFile).
+                getValue();
+        if (group != null && !group.trim().
+                isEmpty()) {
             try {
                 sftp.chgrp(Integer.parseInt(group), tempPath);
             } catch (final Exception e) {
-                logger.error("Failed to set group on {} to {} due to {}", new Object[]{tempPath, group, e});
+                logger.
+                        error("Failed to set group on {} to {} due to {}", new Object[]{tempPath, group, e});
             }
         }
 
@@ -583,7 +668,8 @@ public class SFTPTransfer implements FileTransfer {
         int number = -1;
         final Pattern rwxPattern = Pattern.compile("^[rwx-]{9}$");
         final Pattern numPattern = Pattern.compile("\\d+");
-        if (rwxPattern.matcher(perms).matches()) {
+        if (rwxPattern.matcher(perms).
+                matches()) {
             number = 0;
             if (perms.charAt(0) == 'r') {
                 number |= 0x100;
@@ -612,7 +698,8 @@ public class SFTPTransfer implements FileTransfer {
             if (perms.charAt(8) == 'x') {
                 number |= 0x1;
             }
-        } else if (numPattern.matcher(perms).matches()) {
+        } else if (numPattern.matcher(perms).
+                matches()) {
             try {
                 number = Integer.parseInt(perms, 8);
             } catch (NumberFormatException ignore) {
@@ -630,7 +717,8 @@ public class SFTPTransfer implements FileTransfer {
 
             @Override
             public void log(int level, String message) {
-                LoggerFactory.getLogger(SFTPTransfer.class).debug("SFTP Log: {}", message);
+                LoggerFactory.getLogger(SFTPTransfer.class).
+                        debug("SFTP Log: {}", message);
             }
         });
     }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPUtils.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPUtils.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPUtils.java
index ea59232..9121089 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPUtils.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/SFTPUtils.java
@@ -38,86 +38,82 @@ import com.jcraft.jsch.JSchException;
 import com.jcraft.jsch.Session;
 import com.jcraft.jsch.SftpException;
 
-/**
- *
- * @author developer
- */
 public class SFTPUtils {
 
-    public static final PropertyDescriptor SFTP_PRIVATEKEY_PATH = new PropertyDescriptor.Builder()
-            .required(false)
-            .description("sftp.privatekey.path")
-            .defaultValue(null)
-            .name("sftp.privatekey.path")
-            .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
-            .sensitive(false)
-            .build();
-    public static final PropertyDescriptor REMOTE_PASSWORD = new PropertyDescriptor.Builder()
-            .required(false)
-            .description("remote.password")
-            .defaultValue(null)
-            .name("remote.password")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .sensitive(true)
-            .build();
-    public static final PropertyDescriptor SFTP_PRIVATEKEY_PASSPHRASE = new PropertyDescriptor.Builder()
-            .required(false)
-            .description("sftp.privatekey.passphrase")
-            .defaultValue(null)
-            .name("sftp.privatekey.passphrase")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .sensitive(true)
-            .build();
-    public static final PropertyDescriptor SFTP_PORT = new PropertyDescriptor.Builder()
-            .required(false)
-            .description("sftp.port")
-            .defaultValue(null)
-            .name("sftp.port")
-            .addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR)
-            .sensitive(false)
-            .build();
-    public static final PropertyDescriptor NETWORK_DATA_TIMEOUT = new PropertyDescriptor.Builder()
-            .required(false)
-            .description("network.data.timeout")
-            .defaultValue(null)
-            .name("network.data.timeout")
-            .addValidator(StandardValidators.INTEGER_VALIDATOR)
-            .sensitive(false)
-            .build();
-    public static final PropertyDescriptor SFTP_HOSTKEY_FILENAME = new PropertyDescriptor.Builder()
-            .required(false)
-            .description("sftp.hostkey.filename")
-            .defaultValue(null)
-            .name("sftp.hostkey.filename")
-            .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
-            .sensitive(false)
-            .build();
-    public static final PropertyDescriptor NETWORK_CONNECTION_TIMEOUT = new PropertyDescriptor.Builder()
-            .required(false)
-            .description("network.connection.timeout")
-            .defaultValue(null)
-            .name("network.connection.timeout")
-            .addValidator(StandardValidators.INTEGER_VALIDATOR)
-            .sensitive(false)
-            .build();
+    public static final PropertyDescriptor SFTP_PRIVATEKEY_PATH = new PropertyDescriptor.Builder().
+            required(false).
+            description("sftp.privatekey.path").
+            defaultValue(null).
+            name("sftp.privatekey.path").
+            addValidator(StandardValidators.FILE_EXISTS_VALIDATOR).
+            sensitive(false).
+            build();
+    public static final PropertyDescriptor REMOTE_PASSWORD = new PropertyDescriptor.Builder().
+            required(false).
+            description("remote.password").
+            defaultValue(null).
+            name("remote.password").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            sensitive(true).
+            build();
+    public static final PropertyDescriptor SFTP_PRIVATEKEY_PASSPHRASE = new PropertyDescriptor.Builder().
+            required(false).
+            description("sftp.privatekey.passphrase").
+            defaultValue(null).
+            name("sftp.privatekey.passphrase").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            sensitive(true).
+            build();
+    public static final PropertyDescriptor SFTP_PORT = new PropertyDescriptor.Builder().
+            required(false).
+            description("sftp.port").
+            defaultValue(null).
+            name("sftp.port").
+            addValidator(StandardValidators.NON_NEGATIVE_INTEGER_VALIDATOR).
+            sensitive(false).
+            build();
+    public static final PropertyDescriptor NETWORK_DATA_TIMEOUT = new PropertyDescriptor.Builder().
+            required(false).
+            description("network.data.timeout").
+            defaultValue(null).
+            name("network.data.timeout").
+            addValidator(StandardValidators.INTEGER_VALIDATOR).
+            sensitive(false).
+            build();
+    public static final PropertyDescriptor SFTP_HOSTKEY_FILENAME = new PropertyDescriptor.Builder().
+            required(false).
+            description("sftp.hostkey.filename").
+            defaultValue(null).
+            name("sftp.hostkey.filename").
+            addValidator(StandardValidators.FILE_EXISTS_VALIDATOR).
+            sensitive(false).
+            build();
+    public static final PropertyDescriptor NETWORK_CONNECTION_TIMEOUT = new PropertyDescriptor.Builder().
+            required(false).
+            description("network.connection.timeout").
+            defaultValue(null).
+            name("network.connection.timeout").
+            addValidator(StandardValidators.INTEGER_VALIDATOR).
+            sensitive(false).
+            build();
 
     // required properties
-    public static final PropertyDescriptor REMOTE_HOSTNAME = new PropertyDescriptor.Builder()
-            .required(true)
-            .description("remote.hostname")
-            .defaultValue(null)
-            .name("remote.hostname")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .sensitive(false)
-            .build();
-    public static final PropertyDescriptor REMOTE_USERNAME = new PropertyDescriptor.Builder()
-            .required(true)
-            .description("remote.username")
-            .defaultValue(null)
-            .name("remote.username")
-            .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
-            .sensitive(false)
-            .build();
+    public static final PropertyDescriptor REMOTE_HOSTNAME = new PropertyDescriptor.Builder().
+            required(true).
+            description("remote.hostname").
+            defaultValue(null).
+            name("remote.hostname").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            sensitive(false).
+            build();
+    public static final PropertyDescriptor REMOTE_USERNAME = new PropertyDescriptor.Builder().
+            required(true).
+            description("remote.username").
+            defaultValue(null).
+            name("remote.username").
+            addValidator(StandardValidators.NON_EMPTY_VALIDATOR).
+            sensitive(false).
+            build();
 
     private static final List<PropertyDescriptor> propertyDescriptors = new ArrayList<>();
 
@@ -140,14 +136,6 @@ public class SFTPUtils {
         return propertyDescriptors;
     }
 
-    /**
-     *
-     * @param conf
-     * @return
-     * @throws JSchException
-     * @throws SftpException
-     * @throws IOException
-     */
     public static SFTPConnection connectSftp(final SFTPConfiguration conf) throws JSchException, SftpException, IOException {
         final JSch jsch = new JSch();
         final Session session = SFTPUtils.createSession(conf, jsch);
@@ -161,16 +149,22 @@ public class SFTPUtils {
         File dir = new File(dirPath);
         String currentWorkingDirectory = null;
         boolean dirExists = false;
-        final String forwardPaths = dir.getPath().replaceAll(Matcher.quoteReplacement("\\"), Matcher.quoteReplacement("/"));
+        final String forwardPaths = dir.getPath().
+                replaceAll(Matcher.quoteReplacement("\\"), Matcher.
+                        quoteReplacement("/"));
         try {
             currentWorkingDirectory = sftp.pwd();
-            logger.debug(proc + " attempting to change directory from " + currentWorkingDirectory + " to " + dir.getPath());
+            logger.
+                    debug(proc + " attempting to change directory from " + currentWorkingDirectory + " to " + dir.
+                            getPath());
             //always use forward paths for long string attempt
             sftp.cd(forwardPaths);
             dirExists = true;
-            logger.debug(proc + " changed working directory to '" + forwardPaths + "' from '" + currentWorkingDirectory + "'");
+            logger.
+                    debug(proc + " changed working directory to '" + forwardPaths + "' from '" + currentWorkingDirectory + "'");
         } catch (final SftpException sftpe) {
-            logger.debug(proc + " could not change directory to '" + forwardPaths + "' from '" + currentWorkingDirectory + "' so trying the hard way.");
+            logger.
+                    debug(proc + " could not change directory to '" + forwardPaths + "' from '" + currentWorkingDirectory + "' so trying the hard way.");
         }
         if (dirExists) {
             return;
@@ -191,12 +185,14 @@ public class SFTPUtils {
             try {
                 sftp.cd(dirName);
             } catch (final SftpException sftpe) {
-                logger.debug(proc + " creating new directory and changing to it " + dirName);
+                logger.
+                        debug(proc + " creating new directory and changing to it " + dirName);
                 try {
                     sftp.mkdir(dirName);
                     sftp.cd(dirName);
                 } catch (final SftpException e) {
-                    throw new IOException(proc + " could not make/change directory to [" + dirName + "] [" + e.getLocalizedMessage() + "]", e);
+                    throw new IOException(proc + " could not make/change directory to [" + dirName + "] [" + e.
+                            getLocalizedMessage() + "]", e);
                 }
             }
         }
@@ -209,7 +205,8 @@ public class SFTPUtils {
 
         final Hashtable<String, String> newOptions = new Hashtable<>();
 
-        Session session = jsch.getSession(conf.username, conf.hostname, conf.port);
+        Session session = jsch.
+                getSession(conf.username, conf.hostname, conf.port);
 
         final String hostKeyVal = conf.hostkeyFile;
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java
index ad2cca5..84f431d 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/UDPStreamConsumer.java
@@ -109,7 +109,8 @@ public class UDPStreamConsumer implements StreamConsumer {
             }
             // time to make a new flow file
             newFlowFile = session.create();
-            newFlowFile = session.putAttribute(newFlowFile, "source.stream.identifier", uniqueId);
+            newFlowFile = session.
+                    putAttribute(newFlowFile, "source.stream.identifier", uniqueId);
             newFlowFile = session.write(newFlowFile, udpCallback);
             if (newFlowFile.getSize() == 0) {
                 session.remove(newFlowFile);
@@ -122,7 +123,8 @@ public class UDPStreamConsumer implements StreamConsumer {
                 try {
                     session.remove(newFlowFile);
                 } catch (final Exception ex2) {
-                    logger.warn("Unable to delete partial flow file due to: ", ex2);
+                    logger.
+                            warn("Unable to delete partial flow file due to: ", ex2);
                 }
             }
             throw new IOException("Problem while processing data stream", ex);
@@ -156,17 +158,21 @@ public class UDPStreamConsumer implements StreamConsumer {
             return false;
         }
         UDPStreamConsumer rhs = (UDPStreamConsumer) obj;
-        return new EqualsBuilder().appendSuper(super.equals(obj)).append(uniqueId, rhs.uniqueId).isEquals();
+        return new EqualsBuilder().appendSuper(super.equals(obj)).
+                append(uniqueId, rhs.uniqueId).
+                isEquals();
     }
 
     @Override
     public final int hashCode() {
-        return new HashCodeBuilder(17, 37).append(uniqueId).toHashCode();
+        return new HashCodeBuilder(17, 37).append(uniqueId).
+                toHashCode();
     }
 
     @Override
     public final String toString() {
-        return new ToStringBuilder(this).append(uniqueId).toString();
+        return new ToStringBuilder(this).append(uniqueId).
+                toString();
     }
 
     public static final class UDPConsumerCallback implements OutputStreamCallback {
@@ -188,9 +194,11 @@ public class UDPStreamConsumer implements StreamConsumer {
         public void process(final OutputStream out) throws IOException {
             try {
                 long totalBytes = 0L;
-                try (WritableByteChannel wbc = Channels.newChannel(new BufferedOutputStream(out))) {
+                try (WritableByteChannel wbc = Channels.
+                        newChannel(new BufferedOutputStream(out))) {
                     ByteBuffer buffer = null;
-                    while ((buffer = filledBuffers.poll(50, TimeUnit.MILLISECONDS)) != null) {
+                    while ((buffer = filledBuffers.
+                            poll(50, TimeUnit.MILLISECONDS)) != null) {
                         int bytesWrittenThisPass = 0;
                         try {
                             while (buffer.hasRemaining()) {
@@ -201,7 +209,8 @@ public class UDPStreamConsumer implements StreamConsumer {
                                 break;// this is enough data
                             }
                         } finally {
-                            bufferPool.returnBuffer(buffer, bytesWrittenThisPass);
+                            bufferPool.
+                                    returnBuffer(buffer, bytesWrittenThisPass);
                         }
                     }
                 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase32InputStream.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase32InputStream.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase32InputStream.java
index f7ebeab..692947d 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase32InputStream.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/ValidatingBase32InputStream.java
@@ -22,7 +22,6 @@ import java.io.InputStream;
 import java.util.Arrays;
 import org.apache.commons.codec.binary.Base32;
 
-
 /**
  * An InputStream that throws an IOException if any byte is read that is not a
  * valid Base32 character. Whitespace is considered valid.

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageConsumer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageConsumer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageConsumer.java
index fca6a70..7d16b73 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageConsumer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageConsumer.java
@@ -55,19 +55,22 @@ public class WrappedMessageConsumer {
         try {
             connection.close();
         } catch (final JMSException e) {
-            logger.warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
+            logger.
+                    warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
         }
 
         try {
             session.close();
         } catch (final JMSException e) {
-            logger.warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
+            logger.
+                    warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
         }
 
         try {
             consumer.close();
         } catch (final JMSException e) {
-            logger.warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
+            logger.
+                    warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageProducer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageProducer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageProducer.java
index fc01b02..a2d7459 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageProducer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/WrappedMessageProducer.java
@@ -55,19 +55,22 @@ public class WrappedMessageProducer {
         try {
             connection.close();
         } catch (final JMSException e) {
-            logger.warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
+            logger.
+                    warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
         }
 
         try {
             session.close();
         } catch (final JMSException e) {
-            logger.warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
+            logger.
+                    warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
         }
 
         try {
             producer.close();
         } catch (final JMSException e) {
-            logger.warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
+            logger.
+                    warn("unable to close connection to JMS Server due to {}; resources may not be cleaned up appropriately", e);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlSplitterSaxParser.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlSplitterSaxParser.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlSplitterSaxParser.java
index d012ae0..d053f14 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlSplitterSaxParser.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/XmlSplitterSaxParser.java
@@ -71,7 +71,9 @@ public class XmlSplitterSaxParser extends DefaultHandler {
     @Override
     public void endElement(final String uri, final String localName, final String qName) throws SAXException {
         // Add the element end tag.
-        sb.append("</").append(qName).append(">");
+        sb.append("</").
+                append(qName).
+                append(">");
 
         // We have finished processing this element. Decrement the depth.
         int newDepth = depth.decrementAndGet();
@@ -102,7 +104,12 @@ public class XmlSplitterSaxParser extends DefaultHandler {
             for (int i = 0; i < attCount; i++) {
                 String attName = atts.getQName(i);
                 String attValue = atts.getValue(i);
-                sb.append(" ").append(attName).append("=").append("\"").append(attValue).append("\"");
+                sb.append(" ").
+                        append(attName).
+                        append("=").
+                        append("\"").
+                        append(attValue).
+                        append("\"");
             }
 
             sb.append(">");

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateXQuery/additionalDetails.html
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateXQuery/additionalDetails.html b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateXQuery/additionalDetails.html
index 99c530e..e67923f 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateXQuery/additionalDetails.html
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.EvaluateXQuery/additionalDetails.html
@@ -27,9 +27,9 @@
         <!-- Processor Documentation ================================================== -->
 
 
-	<p>
-		<strong>Examples:</strong>
-	</p>
+        <p>
+            <strong>Examples:</strong>
+        </p>
 
         <p>This processor produces one attribute or FlowFile per
             XQueryResult. If only one attribute or FlowFile is desired, the

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.IdentifyMimeType/additionalDetails.html
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.IdentifyMimeType/additionalDetails.html b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.IdentifyMimeType/additionalDetails.html
index ec3179a..7166777 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.IdentifyMimeType/additionalDetails.html
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/resources/docs/org.apache.nifi.processors.standard.IdentifyMimeType/additionalDetails.html
@@ -55,5 +55,5 @@
             <li>application/zip</li>
             <li>application/x-lzh</li>
         </ul>
-</body>
+    </body>
 </html>


[04/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetJMSQueue.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetJMSQueue.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetJMSQueue.java
index 9c833f5..b6c79d5 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetJMSQueue.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGetJMSQueue.java
@@ -36,12 +36,16 @@ public class TestGetJMSQueue {
     @org.junit.Ignore
     public void testSendTextToQueue() throws Exception {
         final TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
-        runner.setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER);
+        runner.
+                setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER);
         runner.setProperty(JmsProperties.URL, "tcp://localhost:61616");
-        runner.setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE);
+        runner.
+                setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE);
         runner.setProperty(JmsProperties.DESTINATION_NAME, "queue.testing");
-        runner.setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO);
-        WrappedMessageProducer wrappedProducer = JmsFactory.createMessageProducer(runner.getProcessContext(), true);
+        runner.
+                setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO);
+        WrappedMessageProducer wrappedProducer = JmsFactory.
+                createMessageProducer(runner.getProcessContext(), true);
         final Session jmsSession = wrappedProducer.getSession();
         final MessageProducer producer = wrappedProducer.getProducer();
 
@@ -56,12 +60,16 @@ public class TestGetJMSQueue {
     @org.junit.Ignore
     public void testSendBytesToQueue() throws Exception {
         final TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
-        runner.setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER);
+        runner.
+                setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER);
         runner.setProperty(JmsProperties.URL, "tcp://localhost:61616");
-        runner.setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE);
+        runner.
+                setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE);
         runner.setProperty(JmsProperties.DESTINATION_NAME, "queue.testing");
-        runner.setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO);
-        WrappedMessageProducer wrappedProducer = JmsFactory.createMessageProducer(runner.getProcessContext(), true);
+        runner.
+                setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO);
+        WrappedMessageProducer wrappedProducer = JmsFactory.
+                createMessageProducer(runner.getProcessContext(), true);
         final Session jmsSession = wrappedProducer.getSession();
         final MessageProducer producer = wrappedProducer.getProducer();
 
@@ -77,12 +85,16 @@ public class TestGetJMSQueue {
     @org.junit.Ignore
     public void testSendStreamToQueue() throws Exception {
         final TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
-        runner.setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER);
+        runner.
+                setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER);
         runner.setProperty(JmsProperties.URL, "tcp://localhost:61616");
-        runner.setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE);
+        runner.
+                setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE);
         runner.setProperty(JmsProperties.DESTINATION_NAME, "queue.testing");
-        runner.setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO);
-        WrappedMessageProducer wrappedProducer = JmsFactory.createMessageProducer(runner.getProcessContext(), true);
+        runner.
+                setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO);
+        WrappedMessageProducer wrappedProducer = JmsFactory.
+                createMessageProducer(runner.getProcessContext(), true);
         final Session jmsSession = wrappedProducer.getSession();
         final MessageProducer producer = wrappedProducer.getProducer();
 
@@ -98,12 +110,16 @@ public class TestGetJMSQueue {
     @org.junit.Ignore
     public void testSendMapToQueue() throws Exception {
         final TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
-        runner.setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER);
+        runner.
+                setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER);
         runner.setProperty(JmsProperties.URL, "tcp://localhost:61616");
-        runner.setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE);
+        runner.
+                setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE);
         runner.setProperty(JmsProperties.DESTINATION_NAME, "queue.testing");
-        runner.setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO);
-        WrappedMessageProducer wrappedProducer = JmsFactory.createMessageProducer(runner.getProcessContext(), true);
+        runner.
+                setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO);
+        WrappedMessageProducer wrappedProducer = JmsFactory.
+                createMessageProducer(runner.getProcessContext(), true);
         final Session jmsSession = wrappedProducer.getSession();
         final MessageProducer producer = wrappedProducer.getProducer();
 
@@ -120,17 +136,22 @@ public class TestGetJMSQueue {
     @org.junit.Ignore
     public void testSendObjectToQueue() throws Exception {
         final TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
-        runner.setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER);
+        runner.
+                setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER);
         runner.setProperty(JmsProperties.URL, "tcp://localhost:61616");
-        runner.setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE);
+        runner.
+                setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE);
         runner.setProperty(JmsProperties.DESTINATION_NAME, "queue.testing");
-        runner.setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO);
-        WrappedMessageProducer wrappedProducer = JmsFactory.createMessageProducer(runner.getProcessContext(), true);
+        runner.
+                setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO);
+        WrappedMessageProducer wrappedProducer = JmsFactory.
+                createMessageProducer(runner.getProcessContext(), true);
         final Session jmsSession = wrappedProducer.getSession();
         final MessageProducer producer = wrappedProducer.getProducer();
 
         // Revision class is used because test just needs any Serializable class in core NiFi
-        final ObjectMessage message = jmsSession.createObjectMessage(new Revision(1L, "ID"));
+        final ObjectMessage message = jmsSession.
+                createObjectMessage(new Revision(1L, "ID"));
 
         producer.send(message);
         jmsSession.commit();

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpRequest.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpRequest.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpRequest.java
index 363fc0f..8b9b2ac 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpRequest.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpRequest.java
@@ -44,14 +44,16 @@ public class TestHandleHttpRequest {
 
     @Test
     public void testRequestAddedToService() throws InitializationException, MalformedURLException, IOException {
-        final TestRunner runner = TestRunners.newTestRunner(HandleHttpRequest.class);
+        final TestRunner runner = TestRunners.
+                newTestRunner(HandleHttpRequest.class);
         runner.setProperty(HandleHttpRequest.PORT, "0");
-        
+
         final MockHttpContextMap contextMap = new MockHttpContextMap();
         runner.addControllerService("http-context-map", contextMap);
         runner.enableControllerService(contextMap);
-        runner.setProperty(HandleHttpRequest.HTTP_CONTEXT_MAP, "http-context-map");
-        
+        runner.
+                setProperty(HandleHttpRequest.HTTP_CONTEXT_MAP, "http-context-map");
+
         // trigger processor to stop but not shutdown.
         runner.run(1, false);
         try {
@@ -59,8 +61,10 @@ public class TestHandleHttpRequest {
                 @Override
                 public void run() {
                     try {
-                        final int port = ((HandleHttpRequest) runner.getProcessor()).getPort();
-                        final HttpURLConnection connection = (HttpURLConnection) new URL("http://localhost:" + port + "/my/path?query=true&value1=value1&value2=&value3&value4=apple=orange").openConnection();
+                        final int port = ((HandleHttpRequest) runner.
+                                getProcessor()).getPort();
+                        final HttpURLConnection connection = (HttpURLConnection) new URL("http://localhost:" + port + "/my/path?query=true&value1=value1&value2=&value3&value4=apple=orange").
+                                openConnection();
                         connection.setDoOutput(false);
                         connection.setRequestMethod("GET");
                         connection.setRequestProperty("header1", "value1");
@@ -68,8 +72,9 @@ public class TestHandleHttpRequest {
                         connection.setRequestProperty("header3", "apple=orange");
                         connection.setConnectTimeout(3000);
                         connection.setReadTimeout(3000);
-                        
-                        StreamUtils.copy(connection.getInputStream(), new NullOutputStream());
+
+                        StreamUtils.
+                                copy(connection.getInputStream(), new NullOutputStream());
                     } catch (final Throwable t) {
                         t.printStackTrace();
                         Assert.fail(t.toString());
@@ -77,17 +82,23 @@ public class TestHandleHttpRequest {
                 }
             });
             httpThread.start();
-            
+
             // give processor a bit to handle the http request
-            try { Thread.sleep(1000L); } catch (final InterruptedException ie) {}
-            
+            try {
+                Thread.sleep(1000L);
+            } catch (final InterruptedException ie) {
+            }
+
             // process the request.
             runner.run(1, false);
-            
-            runner.assertAllFlowFilesTransferred(HandleHttpRequest.REL_SUCCESS, 1);
+
+            runner.
+                    assertAllFlowFilesTransferred(HandleHttpRequest.REL_SUCCESS, 1);
             assertEquals(1, contextMap.size());
-            
-            final MockFlowFile mff = runner.getFlowFilesForRelationship(HandleHttpRequest.REL_SUCCESS).get(0);
+
+            final MockFlowFile mff = runner.
+                    getFlowFilesForRelationship(HandleHttpRequest.REL_SUCCESS).
+                    get(0);
             mff.assertAttributeEquals("http.query.param.query", "true");
             mff.assertAttributeEquals("http.query.param.value1", "value1");
             mff.assertAttributeEquals("http.query.param.value2", "");
@@ -100,11 +111,11 @@ public class TestHandleHttpRequest {
             runner.run(1, true);
         }
     }
-    
-    
+
     private static class MockHttpContextMap extends AbstractControllerService implements HttpContextMap {
+
         private final ConcurrentMap<String, HttpServletResponse> responseMap = new ConcurrentHashMap<>();
-        
+
         @Override
         public boolean register(String identifier, HttpServletRequest request, HttpServletResponse response, AsyncContext context) {
             responseMap.put(identifier, response);
@@ -120,7 +131,7 @@ public class TestHandleHttpRequest {
         public void complete(String identifier) {
             responseMap.remove(identifier);
         }
-        
+
         public int size() {
             return responseMap.size();
         }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java
index 7b41809..40683ae 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHandleHttpResponse.java
@@ -51,27 +51,29 @@ public class TestHandleHttpResponse {
 
     @Test
     public void testEnsureCompleted() throws InitializationException {
-        final TestRunner runner = TestRunners.newTestRunner(HandleHttpResponse.class);
-        
+        final TestRunner runner = TestRunners.
+                newTestRunner(HandleHttpResponse.class);
+
         final MockHttpContextMap contextMap = new MockHttpContextMap("my-id");
         runner.addControllerService("http-context-map", contextMap);
         runner.enableControllerService(contextMap);
-        runner.setProperty(HandleHttpResponse.HTTP_CONTEXT_MAP, "http-context-map");
+        runner.
+                setProperty(HandleHttpResponse.HTTP_CONTEXT_MAP, "http-context-map");
         runner.setProperty(HandleHttpResponse.STATUS_CODE, "${status.code}");
         runner.setProperty("my-attr", "${my-attr}");
         runner.setProperty("no-valid-attr", "${no-valid-attr}");
-        
+
         final Map<String, String> attributes = new HashMap<>();
         attributes.put(HandleHttpResponse.HTTP_CONTEXT_ID, "my-id");
         attributes.put("my-attr", "hello");
         attributes.put("status.code", "201");
-        
+
         runner.enqueue("hello".getBytes(), attributes);
-        
+
         runner.run();
 
         runner.assertAllFlowFilesTransferred(HandleHttpResponse.REL_SUCCESS, 1);
-        
+
         assertEquals("hello", contextMap.baos.toString());
         assertEquals("hello", contextMap.headersSent.get("my-attr"));
         assertNull(contextMap.headersSent.get("no-valid-attr"));
@@ -79,21 +81,21 @@ public class TestHandleHttpResponse {
         assertEquals(1, contextMap.getCompletionCount());
         assertTrue(contextMap.headersWithNoValue.isEmpty());
     }
-    
-    
+
     private static class MockHttpContextMap extends AbstractControllerService implements HttpContextMap {
+
         private final String id;
         private final AtomicInteger completedCount = new AtomicInteger(0);
         private final ByteArrayOutputStream baos = new ByteArrayOutputStream();
         private final ConcurrentMap<String, String> headersSent = new ConcurrentHashMap<>();
         private volatile int statusCode = -1;
-        
+
         private final List<String> headersWithNoValue = new CopyOnWriteArrayList<>();
-        
+
         public MockHttpContextMap(final String expectedIdentifier) {
             this.id = expectedIdentifier;
         }
-        
+
         @Override
         public boolean register(String identifier, HttpServletRequest request, HttpServletResponse response, AsyncContext context) {
             return true;
@@ -101,53 +103,71 @@ public class TestHandleHttpResponse {
 
         @Override
         public HttpServletResponse getResponse(final String identifier) {
-            if ( !id.equals(identifier) ) {
-                Assert.fail("attempting to respond to wrong request; should have been " + id + " but was " + identifier);
+            if (!id.equals(identifier)) {
+                Assert.
+                        fail("attempting to respond to wrong request; should have been " + id + " but was " + identifier);
             }
-            
+
             try {
-                final HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
-                Mockito.when(response.getOutputStream()).thenReturn(new ServletOutputStream() {
-                    @Override
-                    public boolean isReady() { return true; }
+                final HttpServletResponse response = Mockito.
+                        mock(HttpServletResponse.class);
+                Mockito.when(response.getOutputStream()).
+                        thenReturn(new ServletOutputStream() {
+                            @Override
+                            public boolean isReady() {
+                                return true;
+                            }
 
-                    @Override
-                    public void setWriteListener(WriteListener writeListener) {}
+                            @Override
+                            public void setWriteListener(WriteListener writeListener) {
+                            }
+
+                            @Override
+                            public void write(int b) throws IOException {
+                                baos.write(b);
+                            }
+
+                            @Override
+                            public void write(byte[] b) throws IOException {
+                                baos.write(b);
+                            }
+
+                            @Override
+                            public void write(byte[] b, int off, int len) throws IOException {
+                                baos.write(b, off, len);
+                            }
+                        });
 
-                    @Override
-                    public void write(int b) throws IOException { baos.write(b); }
-                    
-                    @Override
-                    public void write(byte[] b) throws IOException { baos.write(b); }
-                    
-                    @Override
-                    public void write(byte[] b, int off, int len) throws IOException { baos.write(b, off, len); }
-                });
-                
-                
                 Mockito.doAnswer(new Answer<Object>() {
                     @Override
                     public Object answer(final InvocationOnMock invocation) throws Throwable {
-                        final String key = invocation.getArgumentAt(0, String.class);
-                        final String value = invocation.getArgumentAt(1, String.class);
-                        if ( value == null ) {
+                        final String key = invocation.
+                                getArgumentAt(0, String.class);
+                        final String value = invocation.
+                                getArgumentAt(1, String.class);
+                        if (value == null) {
                             headersWithNoValue.add(key);
                         } else {
                             headersSent.put(key, value);
                         }
-                        
+
                         return null;
                     }
-                }).when(response).setHeader(Mockito.any(String.class), Mockito.any(String.class));
-                
+                }).
+                        when(response).
+                        setHeader(Mockito.any(String.class), Mockito.
+                                any(String.class));
+
                 Mockito.doAnswer(new Answer<Object>() {
                     @Override
                     public Object answer(final InvocationOnMock invocation) throws Throwable {
                         statusCode = invocation.getArgumentAt(0, int.class);
                         return null;
                     }
-                }).when(response).setStatus(Mockito.anyInt());
-                
+                }).
+                        when(response).
+                        setStatus(Mockito.anyInt());
+
                 return response;
             } catch (final Exception e) {
                 e.printStackTrace();
@@ -158,13 +178,14 @@ public class TestHandleHttpResponse {
 
         @Override
         public void complete(final String identifier) {
-            if ( !id.equals(identifier) ) {
-                Assert.fail("attempting to respond to wrong request; should have been " + id + " but was " + identifier);
+            if (!id.equals(identifier)) {
+                Assert.
+                        fail("attempting to respond to wrong request; should have been " + id + " but was " + identifier);
             }
-            
+
             completedCount.incrementAndGet();
         }
-        
+
         public int getCompletionCount() {
             return completedCount.get();
         }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashAttribute.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashAttribute.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashAttribute.java
index 778a78c..a57f6cf 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashAttribute.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashAttribute.java
@@ -36,7 +36,8 @@ public class TestHashAttribute {
     @Test
     public void test() {
         final TestRunner runner = TestRunners.newTestRunner(new HashAttribute());
-        runner.setProperty(HashAttribute.HASH_VALUE_ATTRIBUTE.getName(), "hashValue");
+        runner.
+                setProperty(HashAttribute.HASH_VALUE_ATTRIBUTE.getName(), "hashValue");
         runner.setProperty("MDKey1", ".*");
         runner.setProperty("MDKey2", "(.).*");
 
@@ -66,7 +67,8 @@ public class TestHashAttribute {
         runner.assertTransferCount(HashAttribute.REL_FAILURE, 1);
         runner.assertTransferCount(HashAttribute.REL_SUCCESS, 4);
 
-        final List<MockFlowFile> success = runner.getFlowFilesForRelationship(HashAttribute.REL_SUCCESS);
+        final List<MockFlowFile> success = runner.
+                getFlowFilesForRelationship(HashAttribute.REL_SUCCESS);
         final Map<String, Integer> correlationCount = new HashMap<String, Integer>();
         for (final MockFlowFile flowFile : success) {
             final String correlationId = flowFile.getAttribute("hashValue");

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashContent.java
index db3bcad..8f6f5f4 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestHashContent.java
@@ -59,7 +59,9 @@ public class TestHashContent {
         runner.assertQueueEmpty();
         runner.assertAllFlowFilesTransferred(HashContent.REL_SUCCESS, 1);
 
-        final MockFlowFile outFile = runner.getFlowFilesForRelationship(HashContent.REL_SUCCESS).get(0);
+        final MockFlowFile outFile = runner.
+                getFlowFilesForRelationship(HashContent.REL_SUCCESS).
+                get(0);
         final String hashValue = outFile.getAttribute("hash");
 
         assertEquals(expectedHash, hashValue);

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java
index 1bf4585..9f49476 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java
@@ -36,7 +36,8 @@ public class TestIdentifyMimeType {
 
     @Test
     public void testFiles() throws IOException {
-        final TestRunner runner = TestRunners.newTestRunner(new IdentifyMimeType());
+        final TestRunner runner = TestRunners.
+                newTestRunner(new IdentifyMimeType());
 
         final File dir = new File("src/test/resources/TestIdentifyMimeType");
         final File[] files = dir.listFiles();
@@ -53,7 +54,8 @@ public class TestIdentifyMimeType {
         runner.setThreadCount(1);
         runner.run(fileCount);
 
-        runner.assertAllFlowFilesTransferred(IdentifyMimeType.REL_SUCCESS, fileCount);
+        runner.
+                assertAllFlowFilesTransferred(IdentifyMimeType.REL_SUCCESS, fileCount);
 
         final Map<String, String> expectedMimeTypes = new HashMap<>();
         expectedMimeTypes.put("1.7z", "application/x-7z-compressed");
@@ -91,10 +93,13 @@ public class TestIdentifyMimeType {
         expectedExtensions.put("flowfilev3", "");
         expectedExtensions.put("flowfilev1.tar", "");
 
-        final List<MockFlowFile> filesOut = runner.getFlowFilesForRelationship(IdentifyMimeType.REL_SUCCESS);
+        final List<MockFlowFile> filesOut = runner.
+                getFlowFilesForRelationship(IdentifyMimeType.REL_SUCCESS);
         for (final MockFlowFile file : filesOut) {
-            final String filename = file.getAttribute(CoreAttributes.FILENAME.key());
-            final String mimeType = file.getAttribute(CoreAttributes.MIME_TYPE.key());
+            final String filename = file.getAttribute(CoreAttributes.FILENAME.
+                    key());
+            final String mimeType = file.getAttribute(CoreAttributes.MIME_TYPE.
+                    key());
             final String expected = expectedMimeTypes.get(filename);
 
             final String extension = file.getAttribute("mime.extension");

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java
index e5950cd..03fd14b 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestInvokeHTTP.java
@@ -16,9 +16,6 @@
  */
 package org.apache.nifi.processors.standard;
 
-
-import static org.junit.Assert.*;
-
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.UnsupportedEncodingException;
@@ -45,6 +42,8 @@ import org.eclipse.jetty.server.handler.AbstractHandler;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Assert;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -61,7 +60,7 @@ public class TestInvokeHTTP {
     public static void beforeClass() throws Exception {
         // useful for verbose logging output
         // don't commit this with this property enabled, or any 'mvn test' will be really verbose
-        //		System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard", "debug");
+        // System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard", "debug");
 
         // create the SSL properties, which basically store keystore / trustore information
         // this is used by the StandardSSLContextService and the Jetty Server
@@ -146,7 +145,9 @@ public class TestInvokeHTTP {
 
         //expected in request status.code and status.message
         //original flow file (+attributes)??????????
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_SUCCESS_REQ).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_SUCCESS_REQ).
+                get(0);
         bundle.assertAttributeEquals(Config.STATUS_CODE, "200");
         bundle.assertAttributeEquals(Config.STATUS_MESSAGE, "OK");
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
@@ -158,12 +159,15 @@ public class TestInvokeHTTP {
         //status code, status message, all headers from server response --> ff attributes
         //server response message body into payload of ff
         //should not contain any original ff attributes
-        final MockFlowFile bundle1 = runner.getFlowFilesForRelationship(Config.REL_SUCCESS_RESP).get(0);
+        final MockFlowFile bundle1 = runner.
+                getFlowFilesForRelationship(Config.REL_SUCCESS_RESP).
+                get(0);
         bundle1.assertContentEquals("/status/200".getBytes("UTF-8"));
         bundle1.assertAttributeEquals(Config.STATUS_CODE, "200");
         bundle1.assertAttributeEquals(Config.STATUS_MESSAGE, "OK");
         bundle1.assertAttributeEquals("Foo", "Bar");
-        bundle1.assertAttributeEquals("Content-Type", "text/plain; charset=ISO-8859-1");
+        bundle1.
+                assertAttributeEquals("Content-Type", "text/plain; charset=ISO-8859-1");
         final String actual1 = new String(bundle1.toByteArray(), StandardCharsets.UTF_8);
         final String expected1 = "/status/200";
         Assert.assertEquals(expected1, actual1);
@@ -186,7 +190,9 @@ public class TestInvokeHTTP {
         runner.assertTransferCount(Config.REL_FAILURE, 0);
 
         //expected in response
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_RETRY).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_RETRY).
+                get(0);
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
         bundle.assertAttributeEquals(Config.STATUS_CODE, "500");
         bundle.assertAttributeEquals(Config.STATUS_MESSAGE, "Server Error");
@@ -214,7 +220,9 @@ public class TestInvokeHTTP {
         runner.assertTransferCount(Config.REL_FAILURE, 0);
         //getMyFlowFiles();
         //expected in response
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_NO_RETRY).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_NO_RETRY).
+                get(0);
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
 
         bundle.assertAttributeEquals(Config.STATUS_CODE, "302");
@@ -241,7 +249,9 @@ public class TestInvokeHTTP {
         runner.assertTransferCount(Config.REL_FAILURE, 0);
         //getMyFlowFiles();
         //expected in response
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_NO_RETRY).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_NO_RETRY).
+                get(0);
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
 
         bundle.assertAttributeEquals(Config.STATUS_CODE, "304");
@@ -268,7 +278,9 @@ public class TestInvokeHTTP {
         runner.assertTransferCount(Config.REL_FAILURE, 0);
         //getMyFlowFiles();
         //expected in response
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_NO_RETRY).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_NO_RETRY).
+                get(0);
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
 
         bundle.assertAttributeEquals(Config.STATUS_CODE, "400");
@@ -297,11 +309,14 @@ public class TestInvokeHTTP {
         runner.assertTransferCount(Config.REL_FAILURE, 0);
 
         //expected in response
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_NO_RETRY).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_NO_RETRY).
+                get(0);
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
 
         bundle.assertAttributeEquals(Config.STATUS_CODE, "412");
-        bundle.assertAttributeEquals(Config.STATUS_MESSAGE, "Precondition Failed");
+        bundle.
+                assertAttributeEquals(Config.STATUS_MESSAGE, "Precondition Failed");
         bundle.assertAttributeEquals(Config.RESPONSE_BODY, "/status/412");
         final String expected = "Hello";
         Assert.assertEquals(expected, actual);
@@ -325,7 +340,9 @@ public class TestInvokeHTTP {
         runner.assertTransferCount(Config.REL_NO_RETRY, 0);
         runner.assertTransferCount(Config.REL_FAILURE, 0);
 
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_SUCCESS_REQ).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_SUCCESS_REQ).
+                get(0);
         bundle.assertAttributeEquals(Config.STATUS_CODE, "200");
         bundle.assertAttributeEquals(Config.STATUS_MESSAGE, "OK");
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
@@ -333,7 +350,9 @@ public class TestInvokeHTTP {
         Assert.assertEquals(expected, actual);
         bundle.assertAttributeEquals("Foo", "Bar");
 
-        final MockFlowFile bundle1 = runner.getFlowFilesForRelationship(Config.REL_SUCCESS_RESP).get(0);
+        final MockFlowFile bundle1 = runner.
+                getFlowFilesForRelationship(Config.REL_SUCCESS_RESP).
+                get(0);
         bundle1.assertContentEquals("".getBytes("UTF-8"));
         bundle1.assertAttributeEquals(Config.STATUS_CODE, "200");
         bundle1.assertAttributeEquals(Config.STATUS_MESSAGE, "OK");
@@ -360,7 +379,9 @@ public class TestInvokeHTTP {
         runner.assertTransferCount(Config.REL_NO_RETRY, 0);
         runner.assertTransferCount(Config.REL_FAILURE, 0);
 
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_SUCCESS_REQ).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_SUCCESS_REQ).
+                get(0);
         bundle.assertAttributeEquals(Config.STATUS_CODE, "200");
         bundle.assertAttributeEquals(Config.STATUS_MESSAGE, "OK");
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
@@ -368,7 +389,9 @@ public class TestInvokeHTTP {
         Assert.assertEquals(expected, actual);
         bundle.assertAttributeEquals("Foo", "Bar");
 
-        final MockFlowFile bundle1 = runner.getFlowFilesForRelationship(Config.REL_SUCCESS_RESP).get(0);
+        final MockFlowFile bundle1 = runner.
+                getFlowFilesForRelationship(Config.REL_SUCCESS_RESP).
+                get(0);
         bundle1.assertContentEquals("".getBytes("UTF-8"));
         bundle1.assertAttributeEquals(Config.STATUS_CODE, "200");
         bundle1.assertAttributeEquals(Config.STATUS_MESSAGE, "OK");
@@ -396,7 +419,9 @@ public class TestInvokeHTTP {
         runner.assertTransferCount(Config.REL_NO_RETRY, 0);
         runner.assertTransferCount(Config.REL_FAILURE, 0);
 
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_SUCCESS_REQ).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_SUCCESS_REQ).
+                get(0);
         bundle.assertAttributeEquals(Config.STATUS_CODE, "200");
         bundle.assertAttributeEquals(Config.STATUS_MESSAGE, "OK");
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
@@ -404,7 +429,9 @@ public class TestInvokeHTTP {
         Assert.assertEquals(expected, actual);
         bundle.assertAttributeEquals("Foo", "Bar");
 
-        final MockFlowFile bundle1 = runner.getFlowFilesForRelationship(Config.REL_SUCCESS_RESP).get(0);
+        final MockFlowFile bundle1 = runner.
+                getFlowFilesForRelationship(Config.REL_SUCCESS_RESP).
+                get(0);
         bundle1.assertContentEquals("".getBytes("UTF-8"));
         bundle1.assertAttributeEquals(Config.STATUS_CODE, "200");
         bundle1.assertAttributeEquals(Config.STATUS_MESSAGE, "OK");
@@ -433,7 +460,9 @@ public class TestInvokeHTTP {
         runner.assertTransferCount(Config.REL_NO_RETRY, 0);
         runner.assertTransferCount(Config.REL_FAILURE, 1);
 
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_FAILURE).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_FAILURE).
+                get(0);
 
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
         final String expected = "Hello";
@@ -505,7 +534,9 @@ public class TestInvokeHTTP {
         runner.assertTransferCount(Config.REL_NO_RETRY, 0);
         runner.assertTransferCount(Config.REL_FAILURE, 1);
 
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(Config.REL_FAILURE).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(Config.REL_FAILURE).
+                get(0);
 
         final String actual = new String(bundle.toByteArray(), StandardCharsets.UTF_8);
         final String expected = "Hello";
@@ -515,11 +546,15 @@ public class TestInvokeHTTP {
 
     private static Map<String, String> createSslProperties() {
         Map<String, String> map = new HashMap<String, String>();
-        map.put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
-        map.put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
+        map.
+                put(StandardSSLContextService.KEYSTORE.getName(), "src/test/resources/localhost-ks.jks");
+        map.
+                put(StandardSSLContextService.KEYSTORE_PASSWORD.getName(), "localtest");
         map.put(StandardSSLContextService.KEYSTORE_TYPE.getName(), "JKS");
-        map.put(StandardSSLContextService.TRUSTSTORE.getName(), "src/test/resources/localhost-ts.jks");
-        map.put(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName(), "localtest");
+        map.
+                put(StandardSSLContextService.TRUSTSTORE.getName(), "src/test/resources/localhost-ts.jks");
+        map.
+                put(StandardSSLContextService.TRUSTSTORE_PASSWORD.getName(), "localtest");
         map.put(StandardSSLContextService.TRUSTSTORE_TYPE.getName(), "JKS");
         return map;
     }
@@ -547,7 +582,8 @@ public class TestInvokeHTTP {
 
             assertEquals("/post", target);
 
-            String body = request.getReader().readLine();
+            String body = request.getReader().
+                    readLine();
             assertEquals("Hello", body);
 
         }
@@ -559,7 +595,8 @@ public class TestInvokeHTTP {
         public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
             baseRequest.setHandled(true);
 
-            int status = Integer.valueOf(target.substring("/status".length() + 1));
+            int status = Integer.valueOf(target.
+                    substring("/status".length() + 1));
             response.setStatus(status);
 
             response.setContentType("text/plain");
@@ -588,7 +625,8 @@ public class TestInvokeHTTP {
 
             response.setStatus(200);
             response.setContentType("text/plain");
-            response.getWriter().println("Way to go!");
+            response.getWriter().
+                    println("Way to go!");
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestJmsConsumer.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestJmsConsumer.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestJmsConsumer.java
index 1777a89..8511b50 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestJmsConsumer.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestJmsConsumer.java
@@ -16,8 +16,6 @@
  */
 package org.apache.nifi.processors.standard;
 
-import static org.junit.Assert.*;
-
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Map;
@@ -40,88 +38,110 @@ import org.apache.nifi.util.MockProcessContext;
 import org.apache.nifi.util.MockProcessorInitializationContext;
 import org.apache.nifi.util.TestRunner;
 import org.apache.nifi.util.TestRunners;
+import static org.junit.Assert.assertEquals;
 import org.junit.Test;
 
 /**
- * 
+ *
  */
 public class TestJmsConsumer {
 
-	static protected MapMessage createMapMessage() throws JMSException {
-		MapMessage mapMessage = new ActiveMQMapMessage();
-		mapMessage.setString("name", 	"Arnold");
-		mapMessage.setInt	("age", 	97);
-		mapMessage.setDouble("xyz",		89686.564);
-		mapMessage.setBoolean("good", 	true);
-		return mapMessage;
-	}
-	
-	/**
-	 * Test method for {@link org.apache.nifi.processors.standard.JmsConsumer#createMapMessageAttrs(javax.jms.MapMessage)}.
-	 * @throws JMSException 
-	 */
-	@Test
-	public void testCreateMapMessageValues() throws JMSException {
-		
-		MapMessage mapMessage = createMapMessage();
-
-		Map<String, String> mapMessageValues = JmsConsumer.createMapMessageValues(mapMessage);
-		assertEquals("", 4, mapMessageValues.size());
-		assertEquals("", "Arnold", 		mapMessageValues.get(JmsConsumer.MAP_MESSAGE_PREFIX+"name"));
-		assertEquals("", "97", 			mapMessageValues.get(JmsConsumer.MAP_MESSAGE_PREFIX+"age"));
-		assertEquals("", "89686.564", 	mapMessageValues.get(JmsConsumer.MAP_MESSAGE_PREFIX+"xyz"));
-		assertEquals("", "true", 		mapMessageValues.get(JmsConsumer.MAP_MESSAGE_PREFIX+"good"));	
-	}
-
-	/**
-	 * Test MapMessage to FlowFile conversion
-	 */
-	@Test
-	public void testMap2FlowFileMapMessage() throws Exception {
-
-		TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
-		MapMessage mapMessage = createMapMessage();
-
-		ProcessContext context = runner.getProcessContext();
-		ProcessSession session = runner.getProcessSessionFactory().createSession();
-        ProcessorInitializationContext pic = new MockProcessorInitializationContext(runner.getProcessor(),
+    static protected MapMessage createMapMessage() throws JMSException {
+        MapMessage mapMessage = new ActiveMQMapMessage();
+        mapMessage.setString("name", "Arnold");
+        mapMessage.setInt("age", 97);
+        mapMessage.setDouble("xyz", 89686.564);
+        mapMessage.setBoolean("good", true);
+        return mapMessage;
+    }
+
+    /**
+     * Test method for
+     * {@link org.apache.nifi.processors.standard.JmsConsumer#createMapMessageAttrs(javax.jms.MapMessage)}.
+     *
+     * @throws JMSException jms
+     */
+    @Test
+    public void testCreateMapMessageValues() throws JMSException {
+
+        MapMessage mapMessage = createMapMessage();
+
+        Map<String, String> mapMessageValues = JmsConsumer.
+                createMapMessageValues(mapMessage);
+        assertEquals("", 4, mapMessageValues.size());
+        assertEquals("", "Arnold", mapMessageValues.
+                get(JmsConsumer.MAP_MESSAGE_PREFIX + "name"));
+        assertEquals("", "97", mapMessageValues.
+                get(JmsConsumer.MAP_MESSAGE_PREFIX + "age"));
+        assertEquals("", "89686.564", mapMessageValues.
+                get(JmsConsumer.MAP_MESSAGE_PREFIX + "xyz"));
+        assertEquals("", "true", mapMessageValues.
+                get(JmsConsumer.MAP_MESSAGE_PREFIX + "good"));
+    }
+
+    /**
+     * Test MapMessage to FlowFile conversion
+     *
+     * @throws java.lang.Exception ex
+     */
+    @Test
+    public void testMap2FlowFileMapMessage() throws Exception {
+
+        TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
+        MapMessage mapMessage = createMapMessage();
+
+        ProcessContext context = runner.getProcessContext();
+        ProcessSession session = runner.getProcessSessionFactory().
+                createSession();
+        ProcessorInitializationContext pic = new MockProcessorInitializationContext(runner.
+                getProcessor(),
                 (MockProcessContext) runner.getProcessContext());
-		
-        JmsProcessingSummary summary = JmsConsumer.map2FlowFile(context, session, mapMessage, true, pic.getLogger());
-		
-		assertEquals("MapMessage should not create FlowFile content", 0, summary.getBytesReceived());
-
-        Map<String, String> attributes = summary.getLastFlowFile().getAttributes();
-		assertEquals("", "Arnold", 		attributes.get(JmsConsumer.MAP_MESSAGE_PREFIX+"name"));
-		assertEquals("", "97", 			attributes.get(JmsConsumer.MAP_MESSAGE_PREFIX+"age"));
-		assertEquals("", "89686.564", 	attributes.get(JmsConsumer.MAP_MESSAGE_PREFIX+"xyz"));
-		assertEquals("", "true", 		attributes.get(JmsConsumer.MAP_MESSAGE_PREFIX+"good"));
-	}
-
-	/**
-	 * Test TextMessage to FlowFile conversion
-	 */
-	@Test
-	public void testMap2FlowFileTextMessage() throws Exception {
-
-		TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
-		TextMessage textMessage = new ActiveMQTextMessage();
-		
-		String payload = "Hello world!";
-		textMessage.setText(payload);
-
-		ProcessContext context = runner.getProcessContext();
-		ProcessSession session = runner.getProcessSessionFactory().createSession();
-        ProcessorInitializationContext pic = new MockProcessorInitializationContext(runner.getProcessor(),
+
+        JmsProcessingSummary summary = JmsConsumer.
+                map2FlowFile(context, session, mapMessage, true, pic.getLogger());
+
+        assertEquals("MapMessage should not create FlowFile content", 0, summary.
+                getBytesReceived());
+
+        Map<String, String> attributes = summary.getLastFlowFile().
+                getAttributes();
+        assertEquals("", "Arnold", attributes.
+                get(JmsConsumer.MAP_MESSAGE_PREFIX + "name"));
+        assertEquals("", "97", attributes.
+                get(JmsConsumer.MAP_MESSAGE_PREFIX + "age"));
+        assertEquals("", "89686.564", attributes.
+                get(JmsConsumer.MAP_MESSAGE_PREFIX + "xyz"));
+        assertEquals("", "true", attributes.
+                get(JmsConsumer.MAP_MESSAGE_PREFIX + "good"));
+    }
+
+    @Test
+    public void testMap2FlowFileTextMessage() throws Exception {
+
+        TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
+        TextMessage textMessage = new ActiveMQTextMessage();
+
+        String payload = "Hello world!";
+        textMessage.setText(payload);
+
+        ProcessContext context = runner.getProcessContext();
+        ProcessSession session = runner.getProcessSessionFactory().
+                createSession();
+        ProcessorInitializationContext pic = new MockProcessorInitializationContext(runner.
+                getProcessor(),
                 (MockProcessContext) runner.getProcessContext());
-		
-        JmsProcessingSummary summary = JmsConsumer.map2FlowFile(context, session, textMessage, true, pic.getLogger());
-		
-		assertEquals("TextMessage content length should equal to FlowFile content size", payload.length(), summary.getLastFlowFile().getSize());
+
+        JmsProcessingSummary summary = JmsConsumer.
+                map2FlowFile(context, session, textMessage, true, pic.
+                        getLogger());
+
+        assertEquals("TextMessage content length should equal to FlowFile content size", payload.
+                length(), summary.getLastFlowFile().
+                getSize());
 
         final byte[] buffer = new byte[payload.length()];
         runner.clearTransferState();
-        
+
         session.read(summary.getLastFlowFile(), new InputStreamCallback() {
             @Override
             public void process(InputStream in) throws IOException {
@@ -129,36 +149,42 @@ public class TestJmsConsumer {
             }
         });
 
-        String contentString = new String(buffer,"UTF-8");
+        String contentString = new String(buffer, "UTF-8");
         assertEquals("", payload, contentString);
-	}
-
-	/**
-	 * Test BytesMessage to FlowFile conversion
-	 */
-	@Test
-	public void testMap2FlowFileBytesMessage() throws Exception {
-
-		TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
-		BytesMessage bytesMessage = new ActiveMQBytesMessage();
-		
-		String sourceString = "Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data.!";
-		byte[] payload = sourceString.getBytes("UTF-8");
-		bytesMessage.writeBytes(payload);
-		bytesMessage.reset();
-
-		ProcessContext context = runner.getProcessContext();
-		ProcessSession session = runner.getProcessSessionFactory().createSession();
-        ProcessorInitializationContext pic = new MockProcessorInitializationContext(runner.getProcessor(),
+    }
+
+    /**
+     * Test BytesMessage to FlowFile conversion
+     */
+    @Test
+    public void testMap2FlowFileBytesMessage() throws Exception {
+
+        TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class);
+        BytesMessage bytesMessage = new ActiveMQBytesMessage();
+
+        String sourceString = "Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data.!";
+        byte[] payload = sourceString.getBytes("UTF-8");
+        bytesMessage.writeBytes(payload);
+        bytesMessage.reset();
+
+        ProcessContext context = runner.getProcessContext();
+        ProcessSession session = runner.getProcessSessionFactory().
+                createSession();
+        ProcessorInitializationContext pic = new MockProcessorInitializationContext(runner.
+                getProcessor(),
                 (MockProcessContext) runner.getProcessContext());
-		
-        JmsProcessingSummary summary = JmsConsumer.map2FlowFile(context, session, bytesMessage, true, pic.getLogger());
 
-		assertEquals("BytesMessage content length should equal to FlowFile content size", payload.length, summary.getLastFlowFile().getSize());
+        JmsProcessingSummary summary = JmsConsumer.
+                map2FlowFile(context, session, bytesMessage, true, pic.
+                        getLogger());
+
+        assertEquals("BytesMessage content length should equal to FlowFile content size", payload.length, summary.
+                getLastFlowFile().
+                getSize());
 
         final byte[] buffer = new byte[payload.length];
         runner.clearTransferState();
-        
+
         session.read(summary.getLastFlowFile(), new InputStreamCallback() {
             @Override
             public void process(InputStream in) throws IOException {
@@ -166,8 +192,8 @@ public class TestJmsConsumer {
             }
         });
 
-        String contentString = new String(buffer,"UTF-8");
+        String contentString = new String(buffer, "UTF-8");
         assertEquals("", sourceString, contentString);
-	}
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListenUDP.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListenUDP.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListenUDP.java
index 0ee3539..d4d5524 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListenUDP.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestListenUDP.java
@@ -51,8 +51,10 @@ public class TestListenUDP {
         System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "info");
         System.setProperty("org.slf4j.simpleLogger.showDateTime", "true");
         System.setProperty("org.slf4j.simpleLogger.log.nifi.io.nio", "debug");
-        System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.ListenUDP", "debug");
-        System.setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.TestListenUDP", "debug");
+        System.
+                setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.ListenUDP", "debug");
+        System.
+                setProperty("org.slf4j.simpleLogger.log.nifi.processors.standard.TestListenUDP", "debug");
         LOGGER = LoggerFactory.getLogger(TestListenUDP.class);
     }
 
@@ -86,7 +88,8 @@ public class TestListenUDP {
 
         ProcessContext context = runner.getProcessContext();
         ListenUDP processor = (ListenUDP) runner.getProcessor();
-        ProcessSessionFactory processSessionFactory = runner.getProcessSessionFactory();
+        ProcessSessionFactory processSessionFactory = runner.
+                getProcessSessionFactory();
         processor.initializeChannelListenerAndConsumerProcessing(context);
         udpSender.start();
         boolean transferred = false;
@@ -94,14 +97,18 @@ public class TestListenUDP {
         while (!transferred && System.currentTimeMillis() < timeOut) {
             Thread.sleep(200);
             processor.onTrigger(context, processSessionFactory);
-            transferred = runner.getFlowFilesForRelationship(ListenUDP.RELATIONSHIP_SUCCESS).size() > 0;
+            transferred = runner.
+                    getFlowFilesForRelationship(ListenUDP.RELATIONSHIP_SUCCESS).
+                    size() > 0;
         }
         assertTrue("Didn't process the datagrams", transferred);
         Thread.sleep(7000);
         processor.stopping();
         processor.stopped();
         socket.close();
-        assertTrue(runner.getFlowFilesForRelationship(ListenUDP.RELATIONSHIP_SUCCESS).size() >= 60);
+        assertTrue(runner.
+                getFlowFilesForRelationship(ListenUDP.RELATIONSHIP_SUCCESS).
+                size() >= 60);
     }
 
     @Test
@@ -122,7 +129,8 @@ public class TestListenUDP {
 
         ProcessContext context = runner.getProcessContext();
         ListenUDP processor = (ListenUDP) runner.getProcessor();
-        ProcessSessionFactory processSessionFactory = runner.getProcessSessionFactory();
+        ProcessSessionFactory processSessionFactory = runner.
+                getProcessSessionFactory();
         processor.initializeChannelListenerAndConsumerProcessing(context);
         udpSender.start();
         boolean transferred = false;
@@ -130,14 +138,18 @@ public class TestListenUDP {
         while (!transferred && System.currentTimeMillis() < timeOut) {
             Thread.sleep(1000);
             processor.onTrigger(context, processSessionFactory);
-            transferred = runner.getFlowFilesForRelationship(ListenUDP.RELATIONSHIP_SUCCESS).size() > 0;
+            transferred = runner.
+                    getFlowFilesForRelationship(ListenUDP.RELATIONSHIP_SUCCESS).
+                    size() > 0;
         }
         assertTrue("Didn't process the datagrams", transferred);
         Thread.sleep(7000);
         processor.stopping();
         processor.stopped();
         socket.close();
-        assertTrue(runner.getFlowFilesForRelationship(ListenUDP.RELATIONSHIP_SUCCESS).size() >= 2);
+        assertTrue(runner.
+                getFlowFilesForRelationship(ListenUDP.RELATIONSHIP_SUCCESS).
+                size() >= 2);
     }
 
     @Test
@@ -154,7 +166,8 @@ public class TestListenUDP {
 
         ProcessContext context = runner.getProcessContext();
         ListenUDP processor = (ListenUDP) runner.getProcessor();
-        ProcessSessionFactory processSessionFactory = runner.getProcessSessionFactory();
+        ProcessSessionFactory processSessionFactory = runner.
+                getProcessSessionFactory();
         processor.initializeChannelListenerAndConsumerProcessing(context);
         udpSender.start();
         int numTransfered = 0;
@@ -162,7 +175,9 @@ public class TestListenUDP {
         while (numTransfered <= 80 && System.currentTimeMillis() < timeout) {
             Thread.sleep(200);
             processor.onTrigger(context, processSessionFactory);
-            numTransfered = runner.getFlowFilesForRelationship(ListenUDP.RELATIONSHIP_SUCCESS).size();
+            numTransfered = runner.
+                    getFlowFilesForRelationship(ListenUDP.RELATIONSHIP_SUCCESS).
+                    size();
         }
         assertFalse("Did not process all the datagrams", numTransfered < 80);
         processor.stopping();
@@ -200,7 +215,8 @@ public class TestListenUDP {
                 }
                 final long endTime = System.nanoTime();
                 final long durationMillis = (endTime - startTime) / 1000000;
-                LOGGER.info("Sent all UDP packets without any obvious errors | duration ms= " + durationMillis);
+                LOGGER.
+                        info("Sent all UDP packets without any obvious errors | duration ms= " + durationMillis);
             } catch (IOException e) {
                 LOGGER.error("", e);
             } finally {

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java
index d19e4ea..48ed8c6 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestMergeContent.java
@@ -47,14 +47,16 @@ public class TestMergeContent {
 
     @BeforeClass
     public static void setup() {
-        System.setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.processors.standard", "DEBUG");
+        System.
+                setProperty("org.slf4j.simpleLogger.log.org.apache.nifi.processors.standard", "DEBUG");
     }
-    
+
     @Test
     public void testSimpleBinaryConcat() throws IOException, InterruptedException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 sec");
-        runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
+        runner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
 
         createFlowFiles(runner);
         runner.run();
@@ -64,16 +66,20 @@ public class TestMergeContent {
         runner.assertTransferCount(MergeContent.REL_FAILURE, 0);
         runner.assertTransferCount(MergeContent.REL_ORIGINAL, 3);
 
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
         bundle.assertContentEquals("Hello, World!".getBytes("UTF-8"));
-        bundle.assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/plain-text");
+        bundle.
+                assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/plain-text");
     }
 
     @Test
     public void testMimeTypeIsOctetStreamIfConflictingWithBinaryConcat() throws IOException, InterruptedException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 sec");
-        runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
+        runner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
 
         createFlowFiles(runner);
 
@@ -87,9 +93,12 @@ public class TestMergeContent {
         runner.assertTransferCount(MergeContent.REL_FAILURE, 0);
         runner.assertTransferCount(MergeContent.REL_ORIGINAL, 4);
 
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
         bundle.assertContentEquals("Hello, World!".getBytes("UTF-8"));
-        bundle.assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/octet-stream");
+        bundle.
+                assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/octet-stream");
     }
 
     @Test
@@ -99,8 +108,10 @@ public class TestMergeContent {
         runner.setProperty(MergeContent.MAX_BIN_COUNT, "50");
         runner.setProperty(MergeContent.MIN_ENTRIES, "10");
         runner.setProperty(MergeContent.MAX_ENTRIES, "10");
-        runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
-        runner.setProperty(MergeContent.CORRELATION_ATTRIBUTE_NAME, "correlationId");
+        runner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
+        runner.
+                setProperty(MergeContent.CORRELATION_ATTRIBUTE_NAME, "correlationId");
 
         final Map<String, String> attrs = new HashMap<>();
         for (int i = 0; i < 49; i++) {
@@ -132,7 +143,8 @@ public class TestMergeContent {
     @Test
     public void testSimpleBinaryConcatWaitsForMin() throws IOException, InterruptedException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
+        runner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
         runner.setProperty(MergeContent.MIN_SIZE, "20 KB");
 
         createFlowFiles(runner);
@@ -147,7 +159,8 @@ public class TestMergeContent {
     public void testZip() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 sec");
-        runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_ZIP);
+        runner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_ZIP);
 
         createFlowFiles(runner);
         runner.run();
@@ -157,8 +170,11 @@ public class TestMergeContent {
         runner.assertTransferCount(MergeContent.REL_FAILURE, 0);
         runner.assertTransferCount(MergeContent.REL_ORIGINAL, 3);
 
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
-        try (final InputStream rawIn = new ByteArrayInputStream(runner.getContentAsByteArray(bundle));
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
+        try (final InputStream rawIn = new ByteArrayInputStream(runner.
+                getContentAsByteArray(bundle));
                 final ZipInputStream in = new ZipInputStream(rawIn)) {
             Assert.assertNotNull(in.getNextEntry());
             final byte[] part1 = IOUtils.toByteArray(in);
@@ -172,14 +188,16 @@ public class TestMergeContent {
             final byte[] part3 = IOUtils.toByteArray(in);
             Assert.assertTrue(Arrays.equals("World!".getBytes("UTF-8"), part3));
         }
-        bundle.assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/zip");
+        bundle.
+                assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/zip");
     }
 
     @Test
     public void testTar() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 sec");
-        runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_TAR);
+        runner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_TAR);
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put(CoreAttributes.MIME_TYPE.key(), "application/plain-text");
@@ -199,8 +217,11 @@ public class TestMergeContent {
         runner.assertTransferCount(MergeContent.REL_FAILURE, 0);
         runner.assertTransferCount(MergeContent.REL_ORIGINAL, 3);
 
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
-        try (final InputStream rawIn = new ByteArrayInputStream(runner.getContentAsByteArray(bundle));
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
+        try (final InputStream rawIn = new ByteArrayInputStream(runner.
+                getContentAsByteArray(bundle));
                 final TarArchiveInputStream in = new TarArchiveInputStream(rawIn)) {
             ArchiveEntry entry = in.getNextEntry();
             Assert.assertNotNull(entry);
@@ -214,11 +235,13 @@ public class TestMergeContent {
             Assert.assertTrue(Arrays.equals(", ".getBytes("UTF-8"), part2));
 
             entry = in.getNextEntry();
-            assertEquals("AReallyLongggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggFileName", entry.getName());
+            assertEquals("AReallyLongggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggFileName", entry.
+                    getName());
             final byte[] part3 = IOUtils.toByteArray(in);
             Assert.assertTrue(Arrays.equals("World!".getBytes("UTF-8"), part3));
         }
-        bundle.assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/tar");
+        bundle.
+                assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/tar");
     }
 
     @Test
@@ -227,26 +250,33 @@ public class TestMergeContent {
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 sec");
         runner.setProperty(MergeContent.MIN_ENTRIES, "2");
         runner.setProperty(MergeContent.MAX_ENTRIES, "2");
-        runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_FLOWFILE_STREAM_V3);
+        runner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_FLOWFILE_STREAM_V3);
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put("path", "folder");
-        runner.enqueue(Paths.get("src/test/resources/TestUnpackContent/folder/cal.txt"), attributes);
-        runner.enqueue(Paths.get("src/test/resources/TestUnpackContent/folder/date.txt"), attributes);
+        runner.enqueue(Paths.
+                get("src/test/resources/TestUnpackContent/folder/cal.txt"), attributes);
+        runner.enqueue(Paths.
+                get("src/test/resources/TestUnpackContent/folder/date.txt"), attributes);
         runner.run();
 
         runner.assertTransferCount(MergeContent.REL_MERGED, 1);
         runner.assertTransferCount(MergeContent.REL_FAILURE, 0);
         runner.assertTransferCount(MergeContent.REL_ORIGINAL, 2);
 
-        final MockFlowFile merged = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
-        merged.assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/flowfile-v3");
+        final MockFlowFile merged = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
+        merged.
+                assertAttributeEquals(CoreAttributes.MIME_TYPE.key(), "application/flowfile-v3");
     }
 
     @Test
     public void testDefragment() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
+        runner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 min");
 
         final Map<String, String> attributes = new HashMap<>();
@@ -265,14 +295,18 @@ public class TestMergeContent {
         runner.run();
 
         runner.assertTransferCount(MergeContent.REL_MERGED, 1);
-        final MockFlowFile assembled = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
-        assembled.assertContentEquals("A Man A Plan A Canal Panama".getBytes("UTF-8"));
+        final MockFlowFile assembled = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
+        assembled.assertContentEquals("A Man A Plan A Canal Panama".
+                getBytes("UTF-8"));
     }
-    
+
     @Test
     public void testDefragmentWithTooFewFragments() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
+        runner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
         runner.setProperty(MergeContent.MAX_BIN_AGE, "2 secs");
 
         final Map<String, String> attributes = new HashMap<>();
@@ -294,18 +328,19 @@ public class TestMergeContent {
             try {
                 Thread.sleep(3000L);
                 break;
-            } catch (final InterruptedException ie) {}
+            } catch (final InterruptedException ie) {
+            }
         }
         runner.run(1);
-        
+
         runner.assertTransferCount(MergeContent.REL_FAILURE, 4);
     }
-    
 
     @Test
     public void testDefragmentOutOfOrder() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
+        runner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 min");
 
         final Map<String, String> attributes = new HashMap<>();
@@ -324,15 +359,19 @@ public class TestMergeContent {
         runner.run();
 
         runner.assertTransferCount(MergeContent.REL_MERGED, 1);
-        final MockFlowFile assembled = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
-        assembled.assertContentEquals("A Man A Plan A Canal Panama".getBytes("UTF-8"));
+        final MockFlowFile assembled = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
+        assembled.assertContentEquals("A Man A Plan A Canal Panama".
+                getBytes("UTF-8"));
     }
 
     @Ignore("this test appears to be faulty")
     @Test
     public void testDefragmentMultipleMingledSegments() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
+        runner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 min");
 
         final Map<String, String> attributes = new HashMap<>();
@@ -361,16 +400,22 @@ public class TestMergeContent {
         runner.run(2);
 
         runner.assertTransferCount(MergeContent.REL_MERGED, 2);
-        final MockFlowFile assembled = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
-        assembled.assertContentEquals("A Man A Plan A Canal Panama".getBytes("UTF-8"));
-        final MockFlowFile assembledTwo = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(1);
+        final MockFlowFile assembled = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
+        assembled.assertContentEquals("A Man A Plan A Canal Panama".
+                getBytes("UTF-8"));
+        final MockFlowFile assembledTwo = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(1);
         assembledTwo.assertContentEquals("No x in Nixon".getBytes("UTF-8"));
     }
 
     @Test
     public void testDefragmentOldStyleAttributes() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
+        runner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 min");
 
         final Map<String, String> attributes = new HashMap<>();
@@ -390,15 +435,20 @@ public class TestMergeContent {
         runner.run();
 
         runner.assertTransferCount(MergeContent.REL_MERGED, 1);
-        final MockFlowFile assembled = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
-        assembled.assertContentEquals("A Man A Plan A Canal Panama".getBytes("UTF-8"));
-        assembled.assertAttributeEquals(CoreAttributes.FILENAME.key(), "originalfilename");
+        final MockFlowFile assembled = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
+        assembled.assertContentEquals("A Man A Plan A Canal Panama".
+                getBytes("UTF-8"));
+        assembled.
+                assertAttributeEquals(CoreAttributes.FILENAME.key(), "originalfilename");
     }
 
     @Test
     public void testDefragmentMultipleOnTriggers() throws IOException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
+        runner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_DEFRAGMENT);
 
         final Map<String, String> attributes = new HashMap<>();
         attributes.put(MergeContent.FRAGMENT_ID_ATTRIBUTE, "1");
@@ -420,15 +470,19 @@ public class TestMergeContent {
         runner.run();
 
         runner.assertTransferCount(MergeContent.REL_MERGED, 1);
-        final MockFlowFile assembled = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
-        assembled.assertContentEquals("A Man A Plan A Canal Panama".getBytes("UTF-8"));
+        final MockFlowFile assembled = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
+        assembled.assertContentEquals("A Man A Plan A Canal Panama".
+                getBytes("UTF-8"));
     }
 
     @Ignore("This test appears to be a fail...is retuning 1 instead of 2...needs work")
     @Test
     public void testMergeBasedOnCorrelation() throws IOException, InterruptedException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_BIN_PACK);
+        runner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_BIN_PACK);
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 min");
         runner.setProperty(MergeContent.CORRELATION_ATTRIBUTE_NAME, "attr");
         runner.setProperty(MergeContent.MAX_ENTRIES, "3");
@@ -449,7 +503,8 @@ public class TestMergeContent {
 
         runner.assertTransferCount(MergeContent.REL_MERGED, 2);
 
-        final List<MockFlowFile> mergedFiles = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED);
+        final List<MockFlowFile> mergedFiles = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED);
         final MockFlowFile merged1 = mergedFiles.get(0);
         final MockFlowFile merged2 = mergedFiles.get(1);
 
@@ -471,7 +526,8 @@ public class TestMergeContent {
     @Test
     public void testMaxBinAge() throws InterruptedException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_BIN_PACK);
+        runner.
+                setProperty(MergeContent.MERGE_STRATEGY, MergeContent.MERGE_STRATEGY_BIN_PACK);
         runner.setProperty(MergeContent.MAX_BIN_AGE, "2 sec");
         runner.setProperty(MergeContent.CORRELATION_ATTRIBUTE_NAME, "attr");
         runner.setProperty(MergeContent.MAX_ENTRIES, "500");
@@ -496,7 +552,8 @@ public class TestMergeContent {
     @Test
     public void testUniqueAttributes() {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.ATTRIBUTE_STRATEGY, MergeContent.ATTRIBUTE_STRATEGY_ALL_UNIQUE);
+        runner.
+                setProperty(MergeContent.ATTRIBUTE_STRATEGY, MergeContent.ATTRIBUTE_STRATEGY_ALL_UNIQUE);
         runner.setProperty(MergeContent.MAX_SIZE, "2 B");
         runner.setProperty(MergeContent.MIN_SIZE, "2 B");
 
@@ -515,7 +572,9 @@ public class TestMergeContent {
         runner.run();
 
         runner.assertTransferCount(MergeContent.REL_MERGED, 1);
-        final MockFlowFile outFile = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
+        final MockFlowFile outFile = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
 
         outFile.assertAttributeEquals("abc", "xyz");
         outFile.assertAttributeEquals("hello", "good-bye");
@@ -526,7 +585,8 @@ public class TestMergeContent {
     @Test
     public void testCommonAttributesOnly() {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
-        runner.setProperty(MergeContent.ATTRIBUTE_STRATEGY, MergeContent.ATTRIBUTE_STRATEGY_ALL_COMMON);
+        runner.
+                setProperty(MergeContent.ATTRIBUTE_STRATEGY, MergeContent.ATTRIBUTE_STRATEGY_ALL_COMMON);
         runner.setProperty(MergeContent.MAX_SIZE, "2 B");
         runner.setProperty(MergeContent.MIN_SIZE, "2 B");
 
@@ -545,7 +605,9 @@ public class TestMergeContent {
         runner.run();
 
         runner.assertTransferCount(MergeContent.REL_MERGED, 1);
-        final MockFlowFile outFile = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
+        final MockFlowFile outFile = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
 
         outFile.assertAttributeEquals("abc", "xyz");
         outFile.assertAttributeNotExists("hello");
@@ -553,7 +615,8 @@ public class TestMergeContent {
         outFile.assertAttributeNotExists("xyz");
 
         final Set<String> uuids = new HashSet<>();
-        for (final MockFlowFile mff : runner.getFlowFilesForRelationship(MergeContent.REL_ORIGINAL)) {
+        for (final MockFlowFile mff : runner.
+                getFlowFilesForRelationship(MergeContent.REL_ORIGINAL)) {
             uuids.add(mff.getAttribute(CoreAttributes.UUID.key()));
         }
         uuids.add(outFile.getAttribute(CoreAttributes.UUID.key()));
@@ -565,7 +628,8 @@ public class TestMergeContent {
     public void testCountAttribute() throws IOException, InterruptedException {
         final TestRunner runner = TestRunners.newTestRunner(new MergeContent());
         runner.setProperty(MergeContent.MAX_BIN_AGE, "1 sec");
-        runner.setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
+        runner.
+                setProperty(MergeContent.MERGE_FORMAT, MergeContent.MERGE_FORMAT_CONCAT);
 
         createFlowFiles(runner);
         runner.run();
@@ -575,7 +639,9 @@ public class TestMergeContent {
         runner.assertTransferCount(MergeContent.REL_FAILURE, 0);
         runner.assertTransferCount(MergeContent.REL_ORIGINAL, 3);
 
-        final MockFlowFile bundle = runner.getFlowFilesForRelationship(MergeContent.REL_MERGED).get(0);
+        final MockFlowFile bundle = runner.
+                getFlowFilesForRelationship(MergeContent.REL_MERGED).
+                get(0);
         bundle.assertContentEquals("Hello, World!".getBytes("UTF-8"));
         bundle.assertAttributeEquals(MergeContent.MERGE_COUNT_ATTRIBUTE, "3");
         bundle.assertAttributeExists(MergeContent.MERGE_BIN_AGE_ATTRIBUTE);


[09/16] incubator-nifi git commit: NIFI-271 chipping away - more work left in standard bundle

Posted by jo...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitXml.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitXml.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitXml.java
index 1220b7c..8e80e91 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitXml.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/SplitXml.java
@@ -66,17 +66,26 @@ import org.xml.sax.XMLReader;
 @CapabilityDescription("Splits an XML File into multiple separate FlowFiles, each comprising a child or descendant of the original root element")
 public class SplitXml extends AbstractProcessor {
 
-    public static final PropertyDescriptor SPLIT_DEPTH = new PropertyDescriptor.Builder()
-            .name("Split Depth")
-            .description("Indicates the XML-nesting depth to start splitting XML fragments. A depth of 1 means split the root's children, whereas a depth of 2 means split the root's children's children and so forth.")
-            .required(true)
-            .addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR)
-            .defaultValue("1")
-            .build();
-
-    public static final Relationship REL_ORIGINAL = new Relationship.Builder().name("original").description("The original FlowFile that was split into segments. If the FlowFile fails processing, nothing will be sent to this relationship").build();
-    public static final Relationship REL_SPLIT = new Relationship.Builder().name("split").description("All segments of the original FlowFile will be routed to this relationship").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("If a FlowFile fails processing for any reason (for example, the FlowFile is not valid XML), it will be routed to this relationship").build();
+    public static final PropertyDescriptor SPLIT_DEPTH = new PropertyDescriptor.Builder().
+            name("Split Depth").
+            description("Indicates the XML-nesting depth to start splitting XML fragments. A depth of 1 means split the root's children, whereas a depth of 2 means split the root's children's children and so forth.").
+            required(true).
+            addValidator(StandardValidators.POSITIVE_INTEGER_VALIDATOR).
+            defaultValue("1").
+            build();
+
+    public static final Relationship REL_ORIGINAL = new Relationship.Builder().
+            name("original").
+            description("The original FlowFile that was split into segments. If the FlowFile fails processing, nothing will be sent to this relationship").
+            build();
+    public static final Relationship REL_SPLIT = new Relationship.Builder().
+            name("split").
+            description("All segments of the original FlowFile will be routed to this relationship").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("If a FlowFile fails processing for any reason (for example, the FlowFile is not valid XML), it will be routed to this relationship").
+            build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
@@ -84,7 +93,8 @@ public class SplitXml extends AbstractProcessor {
     private static final String FEATURE_PREFIX = "http://xml.org/sax/features/";
     public static final String ENABLE_NAMESPACES_FEATURE = FEATURE_PREFIX + "namespaces";
     public static final String ENABLE_NAMESPACE_PREFIXES_FEATURE = FEATURE_PREFIX + "namespace-prefixes";
-    private static final SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
+    private static final SAXParserFactory saxParserFactory = SAXParserFactory.
+            newInstance();
 
     static {
         saxParserFactory.setNamespaceAware(true);
@@ -93,7 +103,8 @@ public class SplitXml extends AbstractProcessor {
             saxParserFactory.setFeature(ENABLE_NAMESPACE_PREFIXES_FEATURE, true);
         } catch (Exception e) {
             final Logger staticLogger = LoggerFactory.getLogger(SplitXml.class);
-            staticLogger.warn("Unable to configure SAX Parser to make namespaces available", e);
+            staticLogger.
+                    warn("Unable to configure SAX Parser to make namespaces available", e);
         }
     }
 
@@ -127,7 +138,8 @@ public class SplitXml extends AbstractProcessor {
             return;
         }
 
-        final int depth = context.getProperty(SPLIT_DEPTH).asInteger();
+        final int depth = context.getProperty(SPLIT_DEPTH).
+                asInteger();
         final ProcessorLog logger = getLogger();
 
         final List<FlowFile> splits = new ArrayList<>();
@@ -157,7 +169,8 @@ public class SplitXml extends AbstractProcessor {
                         reader.setContentHandler(parser);
                         reader.parse(new InputSource(in));
                     } catch (final ParserConfigurationException | SAXException e) {
-                        logger.error("Unable to parse {} due to {}", new Object[]{original, e});
+                        logger.
+                                error("Unable to parse {} due to {}", new Object[]{original, e});
                         failed.set(true);
                     }
                 }
@@ -170,7 +183,9 @@ public class SplitXml extends AbstractProcessor {
         } else {
             session.transfer(splits, REL_SPLIT);
             session.transfer(original, REL_ORIGINAL);
-            logger.info("Split {} into {} FlowFiles", new Object[]{original, splits.size()});
+            logger.
+                    info("Split {} into {} FlowFiles", new Object[]{original, splits.
+                        size()});
         }
     }
 
@@ -232,7 +247,9 @@ public class SplitXml extends AbstractProcessor {
             // if we're at a level where we care about capturing text, then add the closing element
             if (newDepth >= splitDepth) {
                 // Add the element end tag.
-                sb.append("</").append(qName).append(">");
+                sb.append("</").
+                        append(qName).
+                        append(">");
             }
 
             // If we have now returned to level 1, we have finished processing
@@ -284,8 +301,14 @@ public class SplitXml extends AbstractProcessor {
                 int attCount = atts.getLength();
                 for (int i = 0; i < attCount; i++) {
                     String attName = atts.getQName(i);
-                    String attValue = StringEscapeUtils.escapeXml10(atts.getValue(i));
-                    sb.append(" ").append(attName).append("=").append("\"").append(attValue).append("\"");
+                    String attValue = StringEscapeUtils.escapeXml10(atts.
+                            getValue(i));
+                    sb.append(" ").
+                            append(attName).
+                            append("=").
+                            append("\"").
+                            append(attValue).
+                            append("\"");
                 }
 
                 sb.append(">");

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TransformXml.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TransformXml.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TransformXml.java
index ff37902..3451516 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TransformXml.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/TransformXml.java
@@ -65,19 +65,25 @@ import org.apache.nifi.util.Tuple;
 @CapabilityDescription("Applies the provided XSLT file to the flowfile XML payload. A new FlowFile is created "
         + "with transformed content and is routed to the 'success' relationship. If the XSL transform "
         + "fails, the original FlowFile is routed to the 'failure' relationship")
-@DynamicProperty(name="An XSLT transform parameter name", value="An XSLT transform parameter value", supportsExpressionLanguage=true, 
-description="These XSLT parameters are passed to the transformer")
+@DynamicProperty(name = "An XSLT transform parameter name", value = "An XSLT transform parameter value", supportsExpressionLanguage = true,
+        description = "These XSLT parameters are passed to the transformer")
 public class TransformXml extends AbstractProcessor {
 
-    public static final PropertyDescriptor XSLT_FILE_NAME = new PropertyDescriptor.Builder()
-            .name("XSLT file name")
-            .description("Provides the name (including full path) of the XSLT file to apply to the flowfile XML content.")
-            .required(true)
-            .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
-            .build();
-
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("The FlowFile with transformed content will be routed to this relationship").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("If a FlowFile fails processing for any reason (for example, the FlowFile is not valid XML), it will be routed to this relationship").build();
+    public static final PropertyDescriptor XSLT_FILE_NAME = new PropertyDescriptor.Builder().
+            name("XSLT file name").
+            description("Provides the name (including full path) of the XSLT file to apply to the flowfile XML content.").
+            required(true).
+            addValidator(StandardValidators.FILE_EXISTS_VALIDATOR).
+            build();
+
+    public static final Relationship REL_SUCCESS = new Relationship.Builder().
+            name("success").
+            description("The FlowFile with transformed content will be routed to this relationship").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("If a FlowFile fails processing for any reason (for example, the FlowFile is not valid XML), it will be routed to this relationship").
+            build();
 
     private List<PropertyDescriptor> properties;
     private Set<Relationship> relationships;
@@ -107,12 +113,13 @@ public class TransformXml extends AbstractProcessor {
     @Override
     protected PropertyDescriptor getSupportedDynamicPropertyDescriptor(final String propertyDescriptorName) {
         return new PropertyDescriptor.Builder()
-                .name(propertyDescriptorName)
-                .expressionLanguageSupported(true)
-                .addValidator(StandardValidators.createAttributeExpressionLanguageValidator(AttributeExpression.ResultType.STRING, true))
-                .required(false)
-                .dynamic(true)
-                .build();
+                .name(propertyDescriptorName).
+                expressionLanguageSupported(true).
+                addValidator(StandardValidators.
+                        createAttributeExpressionLanguageValidator(AttributeExpression.ResultType.STRING, true)).
+                required(false).
+                dynamic(true).
+                build();
     }
 
     @Override
@@ -126,38 +133,52 @@ public class TransformXml extends AbstractProcessor {
         final StopWatch stopWatch = new StopWatch(true);
 
         try {
-            FlowFile transformed = session.write(original, new StreamCallback() {
-                @Override
-                public void process(final InputStream rawIn, final OutputStream out) throws IOException {
-                    try (final InputStream in = new BufferedInputStream(rawIn)) {
-
-                        File stylesheet = new File(context.getProperty(XSLT_FILE_NAME).getValue());
-                        StreamSource styleSource = new StreamSource(stylesheet);
-                        TransformerFactory tfactory = new net.sf.saxon.TransformerFactoryImpl();
-                        Transformer transformer = tfactory.newTransformer(styleSource);
-
-                        // pass all dynamic properties to the transformer
-                        for (final Map.Entry<PropertyDescriptor, String> entry : context.getProperties().entrySet()) {
-                            if (entry.getKey().isDynamic()) {
-                                String value = context.newPropertyValue(entry.getValue()).evaluateAttributeExpressions(original).getValue();
-                                transformer.setParameter(entry.getKey().getName(), value);
+            FlowFile transformed = session.
+                    write(original, new StreamCallback() {
+                        @Override
+                        public void process(final InputStream rawIn, final OutputStream out) throws IOException {
+                            try (final InputStream in = new BufferedInputStream(rawIn)) {
+
+                                File stylesheet = new File(context.
+                                        getProperty(XSLT_FILE_NAME).
+                                        getValue());
+                                StreamSource styleSource = new StreamSource(stylesheet);
+                                TransformerFactory tfactory = new net.sf.saxon.TransformerFactoryImpl();
+                                Transformer transformer = tfactory.
+                                newTransformer(styleSource);
+
+                                // pass all dynamic properties to the transformer
+                                for (final Map.Entry<PropertyDescriptor, String> entry : context.
+                                getProperties().
+                                entrySet()) {
+                                    if (entry.getKey().
+                                    isDynamic()) {
+                                        String value = context.
+                                        newPropertyValue(entry.getValue()).
+                                        evaluateAttributeExpressions(original).
+                                        getValue();
+                                        transformer.setParameter(entry.getKey().
+                                                getName(), value);
+                                    }
+                                }
+
+                                // use a StreamSource with Saxon
+                                StreamSource source = new StreamSource(in);
+                                StreamResult result = new StreamResult(out);
+                                transformer.transform(source, result);
+                            } catch (final Exception e) {
+                                throw new IOException(e);
                             }
                         }
-
-                        // use a StreamSource with Saxon
-                        StreamSource source = new StreamSource(in);
-                        StreamResult result = new StreamResult(out);
-                        transformer.transform(source, result);
-                    } catch (final Exception e) {
-                        throw new IOException(e);
-                    }
-                }
-            });
+                    });
             session.transfer(transformed, REL_SUCCESS);
-            session.getProvenanceReporter().modifyContent(transformed, stopWatch.getElapsed(TimeUnit.MILLISECONDS));
+            session.getProvenanceReporter().
+                    modifyContent(transformed, stopWatch.
+                            getElapsed(TimeUnit.MILLISECONDS));
             logger.info("Transformed {}", new Object[]{original});
         } catch (ProcessException e) {
-            logger.error("Unable to transform {} due to {}", new Object[]{original, e});
+            logger.
+                    error("Unable to transform {} due to {}", new Object[]{original, e});
             session.transfer(original, REL_FAILURE);
         }
     }
@@ -170,7 +191,8 @@ public class TransformXml extends AbstractProcessor {
         @Override
         public ValidationResult validate(final String subject, final String input, final ValidationContext validationContext) {
             final Tuple<String, ValidationResult> lastResult = this.cachedResult;
-            if (lastResult != null && lastResult.getKey().equals(input)) {
+            if (lastResult != null && lastResult.getKey().
+                    equals(input)) {
                 return lastResult.getValue();
             } else {
                 String error = null;
@@ -186,10 +208,11 @@ public class TransformXml extends AbstractProcessor {
 
                 this.cachedResult = new Tuple<>(input,
                         new ValidationResult.Builder()
-                        .input(input)
-                        .subject(subject)
-                        .valid(error == null)
-                        .explanation(error).build());
+                        .input(input).
+                        subject(subject).
+                        valid(error == null).
+                        explanation(error).
+                        build());
                 return this.cachedResult.getValue();
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UnpackContent.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UnpackContent.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UnpackContent.java
index 34b0693..451ba57 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UnpackContent.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/UnpackContent.java
@@ -71,11 +71,11 @@ import org.apache.nifi.util.ObjectHolder;
 @CapabilityDescription("Unpacks the content of FlowFiles that have been packaged with one of several different Packaging Formats, emitting one to many FlowFiles for each input FlowFile")
 @ReadsAttribute(attribute = "mime.type", description = "If the <Packaging Format> property is set to use mime.type attribute, this attribute is used to determine the FlowFile's MIME Type. In this case, if the attribute is set to application/tar, the TAR Packaging Format will be used. If the attribute is set to application/zip, the ZIP Packaging Format will be used. If the attribute is set to application/flowfile-v3 or application/flowfile-v2 or application/flowfile-v1, the appropriate FlowFile Packaging Format will be used. If this attribute is missing, the FlowFile will be routed to 'failure'. Otherwise, if the attribute's value is not one of those mentioned above, the FlowFile will be routed to 'success' without being unpacked")
 @WritesAttributes({
-        @WritesAttribute(attribute = "mime.type", description = "If the FlowFile is successfully unpacked, its MIME Type is no longer known, so the mime.type attribute is set to application/octet-stream."),
-        @WritesAttribute(attribute = "fragment.identifier", description = "All unpacked FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute"),
-        @WritesAttribute(attribute = "fragment.index", description = "A one-up number that indicates the ordering of the unpacked FlowFiles that were created from a single parent FlowFile"),
-        @WritesAttribute(attribute = "fragment.count", description = "The number of unpacked FlowFiles generated from the parent FlowFile"),
-        @WritesAttribute(attribute = "segment.original.filename ", description = "The filename of the parent FlowFile. Extensions of .tar, .zip or .pkg are removed because the MergeContent processor automatically adds those extensions if it is used to rebuild the original FlowFile") })
+    @WritesAttribute(attribute = "mime.type", description = "If the FlowFile is successfully unpacked, its MIME Type is no longer known, so the mime.type attribute is set to application/octet-stream."),
+    @WritesAttribute(attribute = "fragment.identifier", description = "All unpacked FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute"),
+    @WritesAttribute(attribute = "fragment.index", description = "A one-up number that indicates the ordering of the unpacked FlowFiles that were created from a single parent FlowFile"),
+    @WritesAttribute(attribute = "fragment.count", description = "The number of unpacked FlowFiles generated from the parent FlowFile"),
+    @WritesAttribute(attribute = "segment.original.filename ", description = "The filename of the parent FlowFile. Extensions of .tar, .zip or .pkg are removed because the MergeContent processor automatically adds those extensions if it is used to rebuild the original FlowFile")})
 @SeeAlso(MergeContent.class)
 public class UnpackContent extends AbstractProcessor {
 
@@ -94,17 +94,26 @@ public class UnpackContent extends AbstractProcessor {
 
     public static final String OCTET_STREAM = "application/octet-stream";
 
-    public static final PropertyDescriptor PACKAGING_FORMAT = new PropertyDescriptor.Builder()
-            .name("Packaging Format")
-            .description("The Packaging Format used to create the file")
-            .required(true)
-            .allowableValues(AUTO_DETECT_FORMAT, TAR_FORMAT, ZIP_FORMAT, FLOWFILE_STREAM_FORMAT_V3, FLOWFILE_STREAM_FORMAT_V2, FLOWFILE_TAR_FORMAT)
-            .defaultValue(AUTO_DETECT_FORMAT)
-            .build();
-
-    public static final Relationship REL_SUCCESS = new Relationship.Builder().name("success").description("Unpacked FlowFiles are sent to this relationship").build();
-    public static final Relationship REL_ORIGINAL = new Relationship.Builder().name("original").description("The original FlowFile is sent to this relationship after it has been successfully unpacked").build();
-    public static final Relationship REL_FAILURE = new Relationship.Builder().name("failure").description("The original FlowFile is sent to this relationship when it cannot be unpacked for some reason").build();
+    public static final PropertyDescriptor PACKAGING_FORMAT = new PropertyDescriptor.Builder().
+            name("Packaging Format").
+            description("The Packaging Format used to create the file").
+            required(true).
+            allowableValues(AUTO_DETECT_FORMAT, TAR_FORMAT, ZIP_FORMAT, FLOWFILE_STREAM_FORMAT_V3, FLOWFILE_STREAM_FORMAT_V2, FLOWFILE_TAR_FORMAT).
+            defaultValue(AUTO_DETECT_FORMAT).
+            build();
+
+    public static final Relationship REL_SUCCESS = new Relationship.Builder().
+            name("success").
+            description("Unpacked FlowFiles are sent to this relationship").
+            build();
+    public static final Relationship REL_ORIGINAL = new Relationship.Builder().
+            name("original").
+            description("The original FlowFile is sent to this relationship after it has been successfully unpacked").
+            build();
+    public static final Relationship REL_FAILURE = new Relationship.Builder().
+            name("failure").
+            description("The original FlowFile is sent to this relationship when it cannot be unpacked for some reason").
+            build();
 
     private Set<Relationship> relationships;
     private List<PropertyDescriptor> properties;
@@ -140,11 +149,15 @@ public class UnpackContent extends AbstractProcessor {
         }
 
         final ProcessorLog logger = getLogger();
-        String packagingFormat = context.getProperty(PACKAGING_FORMAT).getValue().toLowerCase();
+        String packagingFormat = context.getProperty(PACKAGING_FORMAT).
+                getValue().
+                toLowerCase();
         if (AUTO_DETECT_FORMAT.equals(packagingFormat)) {
-            final String mimeType = flowFile.getAttribute(CoreAttributes.MIME_TYPE.key());
+            final String mimeType = flowFile.
+                    getAttribute(CoreAttributes.MIME_TYPE.key());
             if (mimeType == null) {
-                logger.error("No mime.type attribute set for {}; routing to failure", new Object[]{flowFile});
+                logger.
+                        error("No mime.type attribute set for {}; routing to failure", new Object[]{flowFile});
                 session.transfer(flowFile, REL_FAILURE);
                 return;
             }
@@ -166,7 +179,8 @@ public class UnpackContent extends AbstractProcessor {
                     packagingFormat = FLOWFILE_TAR_FORMAT;
                     break;
                 default: {
-                    logger.info("Cannot unpack {} because its mime.type attribute is set to '{}', which is not a format that can be unpacked; routing to 'success'", new Object[]{flowFile, mimeType});
+                    logger.
+                            info("Cannot unpack {} because its mime.type attribute is set to '{}', which is not a format that can be unpacked; routing to 'success'", new Object[]{flowFile, mimeType});
                     session.transfer(flowFile, REL_SUCCESS);
                     return;
                 }
@@ -197,14 +211,17 @@ public class UnpackContent extends AbstractProcessor {
                 addFragmentAttrs = false;
                 break;
             default:
-                throw new AssertionError("Packaging Format was " + context.getProperty(PACKAGING_FORMAT).getValue());
+                throw new AssertionError("Packaging Format was " + context.
+                        getProperty(PACKAGING_FORMAT).
+                        getValue());
         }
 
         final List<FlowFile> unpacked = new ArrayList<>();
         try {
             unpacker.unpack(session, flowFile, unpacked);
             if (unpacked.isEmpty()) {
-                logger.error("Unable to unpack {} because it does not appear to have any entries; routing to failure", new Object[]{flowFile});
+                logger.
+                        error("Unable to unpack {} because it does not appear to have any entries; routing to failure", new Object[]{flowFile});
                 session.transfer(flowFile, REL_FAILURE);
                 return;
             }
@@ -214,10 +231,13 @@ public class UnpackContent extends AbstractProcessor {
             }
             session.transfer(unpacked, REL_SUCCESS);
             session.transfer(flowFile, REL_ORIGINAL);
-            session.getProvenanceReporter().fork(flowFile, unpacked);
-            logger.info("Unpacked {} into {} and transferred to success", new Object[]{flowFile, unpacked});
+            session.getProvenanceReporter().
+                    fork(flowFile, unpacked);
+            logger.
+                    info("Unpacked {} into {} and transferred to success", new Object[]{flowFile, unpacked});
         } catch (final ProcessException e) {
-            logger.error("Unable to unpack {} due to {}; routing to failure", new Object[]{flowFile, e});
+            logger.
+                    error("Unable to unpack {} due to {}; routing to failure", new Object[]{flowFile, e});
             session.transfer(flowFile, REL_FAILURE);
             session.remove(unpacked);
         }
@@ -232,7 +252,8 @@ public class UnpackContent extends AbstractProcessor {
 
         @Override
         public void unpack(final ProcessSession session, final FlowFile source, final List<FlowFile> unpacked) {
-            final String fragmentId = UUID.randomUUID().toString();
+            final String fragmentId = UUID.randomUUID().
+                    toString();
             session.read(source, new InputStreamCallback() {
                 @Override
                 public void process(final InputStream in) throws IOException {
@@ -247,28 +268,38 @@ public class UnpackContent extends AbstractProcessor {
                             final Path filePath = file.toPath();
                             final String filePathString = filePath.getParent() + "/";
                             final Path absPath = filePath.toAbsolutePath();
-                            final String absPathString = absPath.getParent().toString() + "/";
+                            final String absPathString = absPath.getParent().
+                                    toString() + "/";
 
                             FlowFile unpackedFile = session.create(source);
                             try {
                                 final Map<String, String> attributes = new HashMap<>();
-                                attributes.put(CoreAttributes.FILENAME.key(), file.getName());
-                                attributes.put(CoreAttributes.PATH.key(), filePathString);
-                                attributes.put(CoreAttributes.ABSOLUTE_PATH.key(), absPathString);
-                                attributes.put(CoreAttributes.MIME_TYPE.key(), OCTET_STREAM);
+                                attributes.
+                                        put(CoreAttributes.FILENAME.key(), file.
+                                                getName());
+                                attributes.
+                                        put(CoreAttributes.PATH.key(), filePathString);
+                                attributes.put(CoreAttributes.ABSOLUTE_PATH.
+                                        key(), absPathString);
+                                attributes.
+                                        put(CoreAttributes.MIME_TYPE.key(), OCTET_STREAM);
 
                                 attributes.put(FRAGMENT_ID, fragmentId);
-                                attributes.put(FRAGMENT_INDEX, String.valueOf(++fragmentCount));
+                                attributes.put(FRAGMENT_INDEX, String.
+                                        valueOf(++fragmentCount));
 
-                                unpackedFile = session.putAllAttributes(unpackedFile, attributes);
+                                unpackedFile = session.
+                                        putAllAttributes(unpackedFile, attributes);
 
                                 final long fileSize = tarEntry.getSize();
-                                unpackedFile = session.write(unpackedFile, new OutputStreamCallback() {
-                                    @Override
-                                    public void process(final OutputStream out) throws IOException {
-                                        StreamUtils.copy(tarIn, out, fileSize);
-                                    }
-                                });
+                                unpackedFile = session.
+                                        write(unpackedFile, new OutputStreamCallback() {
+                                            @Override
+                                            public void process(final OutputStream out) throws IOException {
+                                                StreamUtils.
+                                                copy(tarIn, out, fileSize);
+                                            }
+                                        });
                             } finally {
                                 unpacked.add(unpackedFile);
                             }
@@ -283,7 +314,8 @@ public class UnpackContent extends AbstractProcessor {
 
         @Override
         public void unpack(final ProcessSession session, final FlowFile source, final List<FlowFile> unpacked) {
-            final String fragmentId = UUID.randomUUID().toString();
+            final String fragmentId = UUID.randomUUID().
+                    toString();
             session.read(source, new InputStreamCallback() {
                 @Override
                 public void process(final InputStream in) throws IOException {
@@ -295,28 +327,39 @@ public class UnpackContent extends AbstractProcessor {
                                 continue;
                             }
                             final File file = new File(zipEntry.getName());
-                            final String parentDirectory = (file.getParent() == null) ? "/" : file.getParent();
-                            final Path absPath = file.toPath().toAbsolutePath();
-                            final String absPathString = absPath.getParent().toString() + "/";
+                            final String parentDirectory = (file.getParent() == null) ? "/" : file.
+                                    getParent();
+                            final Path absPath = file.toPath().
+                                    toAbsolutePath();
+                            final String absPathString = absPath.getParent().
+                                    toString() + "/";
 
                             FlowFile unpackedFile = session.create(source);
                             try {
                                 final Map<String, String> attributes = new HashMap<>();
-                                attributes.put(CoreAttributes.FILENAME.key(), file.getName());
-                                attributes.put(CoreAttributes.PATH.key(), parentDirectory);
-                                attributes.put(CoreAttributes.ABSOLUTE_PATH.key(), absPathString);
-                                attributes.put(CoreAttributes.MIME_TYPE.key(), OCTET_STREAM);
+                                attributes.
+                                        put(CoreAttributes.FILENAME.key(), file.
+                                                getName());
+                                attributes.
+                                        put(CoreAttributes.PATH.key(), parentDirectory);
+                                attributes.put(CoreAttributes.ABSOLUTE_PATH.
+                                        key(), absPathString);
+                                attributes.
+                                        put(CoreAttributes.MIME_TYPE.key(), OCTET_STREAM);
 
                                 attributes.put(FRAGMENT_ID, fragmentId);
-                                attributes.put(FRAGMENT_INDEX, String.valueOf(++fragmentCount));
-
-                                unpackedFile = session.putAllAttributes(unpackedFile, attributes);
-                                unpackedFile = session.write(unpackedFile, new OutputStreamCallback() {
-                                    @Override
-                                    public void process(final OutputStream out) throws IOException {
-                                        StreamUtils.copy(zipIn, out);
-                                    }
-                                });
+                                attributes.put(FRAGMENT_INDEX, String.
+                                        valueOf(++fragmentCount));
+
+                                unpackedFile = session.
+                                        putAllAttributes(unpackedFile, attributes);
+                                unpackedFile = session.
+                                        write(unpackedFile, new OutputStreamCallback() {
+                                            @Override
+                                            public void process(final OutputStream out) throws IOException {
+                                                StreamUtils.copy(zipIn, out);
+                                            }
+                                        });
                             } finally {
                                 unpacked.add(unpackedFile);
                             }
@@ -345,20 +388,24 @@ public class UnpackContent extends AbstractProcessor {
                             final ObjectHolder<Map<String, String>> attributesRef = new ObjectHolder<>(null);
                             FlowFile unpackedFile = session.create(source);
                             try {
-                                unpackedFile = session.write(unpackedFile, new OutputStreamCallback() {
-                                    @Override
-                                    public void process(final OutputStream rawOut) throws IOException {
-                                        try (final OutputStream out = new BufferedOutputStream(rawOut)) {
-                                            final Map<String, String> attributes = unpackager.unpackageFlowFile(in, out);
-                                            if (attributes == null) {
-                                                throw new IOException("Failed to unpack " + source + ": stream had no Attributes");
+                                unpackedFile = session.
+                                        write(unpackedFile, new OutputStreamCallback() {
+                                            @Override
+                                            public void process(final OutputStream rawOut) throws IOException {
+                                                try (final OutputStream out = new BufferedOutputStream(rawOut)) {
+                                                    final Map<String, String> attributes = unpackager.
+                                                    unpackageFlowFile(in, out);
+                                                    if (attributes == null) {
+                                                        throw new IOException("Failed to unpack " + source + ": stream had no Attributes");
+                                                    }
+                                                    attributesRef.
+                                                    set(attributes);
+                                                }
                                             }
-                                            attributesRef.set(attributes);
-                                        }
-                                    }
-                                });
+                                        });
 
-                                final Map<String, String> attributes = attributesRef.get();
+                                final Map<String, String> attributes = attributesRef.
+                                        get();
 
                                 // Remove the UUID from the attributes because we don't want to use the same UUID for this FlowFile.
                                 // If we do, then we get into a weird situation if we use MergeContent to create a FlowFile Package
@@ -366,16 +413,24 @@ public class UnpackContent extends AbstractProcessor {
                                 attributes.remove(CoreAttributes.UUID.key());
 
                                 // maintain backward compatibility with legacy NiFi attribute names
-                                mapAttributes(attributes, "nf.file.name", CoreAttributes.FILENAME.key());
-                                mapAttributes(attributes, "nf.file.path", CoreAttributes.PATH.key());
-                                mapAttributes(attributes, "content-encoding", CoreAttributes.MIME_TYPE.key());
-                                mapAttributes(attributes, "content-type", CoreAttributes.MIME_TYPE.key());
-
-                                if (!attributes.containsKey(CoreAttributes.MIME_TYPE.key())) {
-                                    attributes.put(CoreAttributes.MIME_TYPE.key(), OCTET_STREAM);
+                                mapAttributes(attributes, "nf.file.name", CoreAttributes.FILENAME.
+                                        key());
+                                mapAttributes(attributes, "nf.file.path", CoreAttributes.PATH.
+                                        key());
+                                mapAttributes(attributes, "content-encoding", CoreAttributes.MIME_TYPE.
+                                        key());
+                                mapAttributes(attributes, "content-type", CoreAttributes.MIME_TYPE.
+                                        key());
+
+                                if (!attributes.
+                                        containsKey(CoreAttributes.MIME_TYPE.
+                                                key())) {
+                                    attributes.put(CoreAttributes.MIME_TYPE.
+                                            key(), OCTET_STREAM);
                                 }
 
-                                unpackedFile = session.putAllAttributes(unpackedFile, attributes);
+                                unpackedFile = session.
+                                        putAllAttributes(unpackedFile, attributes);
                             } finally {
                                 unpacked.add(unpackedFile);
                             }
@@ -419,9 +474,12 @@ public class UnpackContent extends AbstractProcessor {
             }
         }
 
-        String originalFilename = source.getAttribute(CoreAttributes.FILENAME.key());
-        if (originalFilename.endsWith(".tar") || originalFilename.endsWith(".zip") || originalFilename.endsWith(".pkg")) {
-            originalFilename = originalFilename.substring(0, originalFilename.length() - 4);
+        String originalFilename = source.getAttribute(CoreAttributes.FILENAME.
+                key());
+        if (originalFilename.endsWith(".tar") || originalFilename.
+                endsWith(".zip") || originalFilename.endsWith(".pkg")) {
+            originalFilename = originalFilename.substring(0, originalFilename.
+                    length() - 4);
         }
 
         // second pass adds fragment attributes

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateXml.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateXml.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateXml.java
index 4808a59..3f761d1 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateXml.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/ValidateXml.java
@@ -58,15 +58,21 @@ import org.xml.sax.SAXException;
 @CapabilityDescription("Validates the contents of FlowFiles against a user-specified XML Schema file")
 public class ValidateXml extends AbstractProcessor {
 
-    public static final PropertyDescriptor SCHEMA_FILE = new PropertyDescriptor.Builder()
-            .name("Schema File")
-            .description("The path to the Schema file that is to be used for validation")
-            .required(true)
-            .addValidator(StandardValidators.FILE_EXISTS_VALIDATOR)
-            .build();
-
-    public static final Relationship REL_VALID = new Relationship.Builder().name("valid").description("FlowFiles that are successfully validated against the schema are routed to this relationship").build();
-    public static final Relationship REL_INVALID = new Relationship.Builder().name("invalid").description("FlowFiles that are not valid according to the specified schema are routed to this relationship").build();
+    public static final PropertyDescriptor SCHEMA_FILE = new PropertyDescriptor.Builder().
+            name("Schema File").
+            description("The path to the Schema file that is to be used for validation").
+            required(true).
+            addValidator(StandardValidators.FILE_EXISTS_VALIDATOR).
+            build();
+
+    public static final Relationship REL_VALID = new Relationship.Builder().
+            name("valid").
+            description("FlowFiles that are successfully validated against the schema are routed to this relationship").
+            build();
+    public static final Relationship REL_INVALID = new Relationship.Builder().
+            name("invalid").
+            description("FlowFiles that are not valid according to the specified schema are routed to this relationship").
+            build();
 
     private static final String SCHEMA_LANGUAGE = "http://www.w3.org/2001/XMLSchema";
 
@@ -99,8 +105,10 @@ public class ValidateXml extends AbstractProcessor {
     @OnScheduled
     public void parseSchema(final ProcessContext context) throws IOException, SAXException {
         try {
-            final File file = new File(context.getProperty(SCHEMA_FILE).getValue());
-            final SchemaFactory schemaFactory = SchemaFactory.newInstance(SCHEMA_LANGUAGE);
+            final File file = new File(context.getProperty(SCHEMA_FILE).
+                    getValue());
+            final SchemaFactory schemaFactory = SchemaFactory.
+                    newInstance(SCHEMA_LANGUAGE);
             final Schema schema = schemaFactory.newSchema(file);
             this.schemaRef.set(schema);
         } catch (final SAXException e) {
@@ -128,18 +136,23 @@ public class ValidateXml extends AbstractProcessor {
                         validator.validate(new StreamSource(in));
                     } catch (final IllegalArgumentException | SAXException e) {
                         valid.set(false);
-                        logger.debug("Failed to validate {} against schema due to {}", new Object[]{flowFile, e});
+                        logger.
+                                debug("Failed to validate {} against schema due to {}", new Object[]{flowFile, e});
                     }
                 }
             });
 
             if (valid.get()) {
-                logger.info("Successfully validated {} against schema; routing to 'valid'", new Object[]{flowFile});
-                session.getProvenanceReporter().route(flowFile, REL_VALID);
+                logger.
+                        info("Successfully validated {} against schema; routing to 'valid'", new Object[]{flowFile});
+                session.getProvenanceReporter().
+                        route(flowFile, REL_VALID);
                 session.transfer(flowFile, REL_VALID);
             } else {
-                logger.info("Failed to validate {} against schema; routing to 'invalid'", new Object[]{flowFile});
-                session.getProvenanceReporter().route(flowFile, REL_INVALID);
+                logger.
+                        info("Failed to validate {} against schema; routing to 'invalid'", new Object[]{flowFile});
+                session.getProvenanceReporter().
+                        route(flowFile, REL_INVALID);
                 session.transfer(flowFile, REL_INVALID);
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java
index 51fcbc2..40c7e65 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ContentAcknowledgmentServlet.java
@@ -59,24 +59,33 @@ public class ContentAcknowledgmentServlet extends HttpServlet {
     @Override
     public void init(final ServletConfig config) throws ServletException {
         final ServletContext context = config.getServletContext();
-        this.processor = (Processor) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_PROCESSOR);
-        this.logger = (ProcessorLog) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_LOGGER);
-        this.authorizedPattern = (Pattern) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_AUTHORITY_PATTERN);
-        this.flowFileMap = (ConcurrentMap<String, FlowFileEntryTimeWrapper>) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_FLOWFILE_MAP);
+        this.processor = (Processor) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_PROCESSOR);
+        this.logger = (ProcessorLog) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_LOGGER);
+        this.authorizedPattern = (Pattern) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_AUTHORITY_PATTERN);
+        this.flowFileMap = (ConcurrentMap<String, FlowFileEntryTimeWrapper>) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_FLOWFILE_MAP);
     }
 
     @Override
     protected void doDelete(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
-        final X509Certificate[] certs = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
+        final X509Certificate[] certs = (X509Certificate[]) request.
+                getAttribute("javax.servlet.request.X509Certificate");
         String foundSubject = DEFAULT_FOUND_SUBJECT;
         if (certs != null && certs.length > 0) {
             for (final X509Certificate cert : certs) {
-                foundSubject = cert.getSubjectDN().getName();
-                if (authorizedPattern.matcher(foundSubject).matches()) {
+                foundSubject = cert.getSubjectDN().
+                        getName();
+                if (authorizedPattern.matcher(foundSubject).
+                        matches()) {
                     break;
                 } else {
-                    logger.warn(processor + " rejecting transfer attempt from " + foundSubject + " because the DN is not authorized");
-                    response.sendError(HttpServletResponse.SC_FORBIDDEN, "not allowed based on dn");
+                    logger.
+                            warn(processor + " rejecting transfer attempt from " + foundSubject + " because the DN is not authorized");
+                    response.
+                            sendError(HttpServletResponse.SC_FORBIDDEN, "not allowed based on dn");
                     return;
                 }
             }
@@ -92,7 +101,10 @@ public class ContentAcknowledgmentServlet extends HttpServlet {
         final String uuid = uri.substring(slashIndex + 1, questionIndex);
         final FlowFileEntryTimeWrapper timeWrapper = flowFileMap.remove(uuid);
         if (timeWrapper == null) {
-            logger.warn("received DELETE for HOLD with ID " + uuid + " from Remote Host: [" + request.getRemoteHost() + "] Port [" + request.getRemotePort() + "] SubjectDN [" + foundSubject + "], but no HOLD exists with that ID; sending response with Status Code 404");
+            logger.
+                    warn("received DELETE for HOLD with ID " + uuid + " from Remote Host: [" + request.
+                            getRemoteHost() + "] Port [" + request.
+                            getRemotePort() + "] SubjectDN [" + foundSubject + "], but no HOLD exists with that ID; sending response with Status Code 404");
             response.sendError(HttpServletResponse.SC_NOT_FOUND);
             return;
         }
@@ -100,7 +112,8 @@ public class ContentAcknowledgmentServlet extends HttpServlet {
         try {
             final Set<FlowFile> flowFiles = timeWrapper.getFlowFiles();
 
-            final long transferTime = System.currentTimeMillis() - timeWrapper.getEntryTime();
+            final long transferTime = System.currentTimeMillis() - timeWrapper.
+                    getEntryTime();
             long totalFlowFileSize = 0;
             for (final FlowFile flowFile : flowFiles) {
                 totalFlowFileSize += flowFile.getSize();
@@ -111,10 +124,13 @@ public class ContentAcknowledgmentServlet extends HttpServlet {
                 seconds = .00000001D;
             }
             final double bytesPerSecond = ((double) totalFlowFileSize / seconds);
-            final String transferRate = FormatUtils.formatDataSize(bytesPerSecond) + "/sec";
+            final String transferRate = FormatUtils.
+                    formatDataSize(bytesPerSecond) + "/sec";
 
-            logger.info("received {} files/{} bytes from Remote Host: [{}] Port [{}] SubjectDN [{}] in {} milliseconds at a rate of {}; transferring to 'success': {}",
-                    new Object[]{flowFiles.size(), totalFlowFileSize, request.getRemoteHost(), request.getRemotePort(), foundSubject, transferTime, transferRate, flowFiles});
+            logger.
+                    info("received {} files/{} bytes from Remote Host: [{}] Port [{}] SubjectDN [{}] in {} milliseconds at a rate of {}; transferring to 'success': {}",
+                            new Object[]{flowFiles.size(), totalFlowFileSize, request.
+                                getRemoteHost(), request.getRemotePort(), foundSubject, transferTime, transferRate, flowFiles});
 
             final ProcessSession session = timeWrapper.getSession();
             session.transfer(flowFiles, ListenHTTP.RELATIONSHIP_SUCCESS);
@@ -123,9 +139,12 @@ public class ContentAcknowledgmentServlet extends HttpServlet {
             response.setStatus(HttpServletResponse.SC_OK);
             response.flushBuffer();
         } catch (final Throwable t) {
-            timeWrapper.getSession().rollback();
-            logger.error("received DELETE for HOLD with ID {} from Remote Host: [{}] Port [{}] SubjectDN [{}], but failed to process the request due to {}",
-                    new Object[]{uuid, request.getRemoteHost(), request.getRemotePort(), foundSubject, t.toString()});
+            timeWrapper.getSession().
+                    rollback();
+            logger.
+                    error("received DELETE for HOLD with ID {} from Remote Host: [{}] Port [{}] SubjectDN [{}], but failed to process the request due to {}",
+                            new Object[]{uuid, request.getRemoteHost(), request.
+                                getRemotePort(), foundSubject, t.toString()});
             if (logger.isDebugEnabled()) {
                 logger.error("", t);
             }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
index 1cf5f1f..7e2338a 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/servlets/ListenHTTPServlet.java
@@ -103,13 +103,20 @@ public class ListenHTTPServlet extends HttpServlet {
     @Override
     public void init(final ServletConfig config) throws ServletException {
         final ServletContext context = config.getServletContext();
-        this.logger = (ProcessorLog) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_LOGGER);
-        this.sessionFactoryHolder = (AtomicReference<ProcessSessionFactory>) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_SESSION_FACTORY_HOLDER);
-        this.processContext = (ProcessContext) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_PROCESS_CONTEXT_HOLDER);
-        this.authorizedPattern = (Pattern) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_AUTHORITY_PATTERN);
-        this.headerPattern = (Pattern) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_HEADER_PATTERN);
-        this.flowFileMap = (ConcurrentMap<String, FlowFileEntryTimeWrapper>) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_FLOWFILE_MAP);
-        this.streamThrottler = (StreamThrottler) context.getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_STREAM_THROTTLER);
+        this.logger = (ProcessorLog) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_LOGGER);
+        this.sessionFactoryHolder = (AtomicReference<ProcessSessionFactory>) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_SESSION_FACTORY_HOLDER);
+        this.processContext = (ProcessContext) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_PROCESS_CONTEXT_HOLDER);
+        this.authorizedPattern = (Pattern) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_AUTHORITY_PATTERN);
+        this.headerPattern = (Pattern) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_HEADER_PATTERN);
+        this.flowFileMap = (ConcurrentMap<String, FlowFileEntryTimeWrapper>) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_FLOWFILE_MAP);
+        this.streamThrottler = (StreamThrottler) context.
+                getAttribute(ListenHTTP.CONTEXT_ATTRIBUTE_STREAM_THROTTLER);
     }
 
     @Override
@@ -122,7 +129,7 @@ public class ListenHTTPServlet extends HttpServlet {
     @Override
     protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
         final ProcessContext context = processContext;
-        
+
         ProcessSessionFactory sessionFactory;
         do {
             sessionFactory = sessionFactoryHolder.get();
@@ -141,12 +148,15 @@ public class ListenHTTPServlet extends HttpServlet {
         try {
             final long n = filesReceived.getAndIncrement() % FILES_BEFORE_CHECKING_DESTINATION_SPACE;
             if (n == 0 || !spaceAvailable.get()) {
-                if (context.getAvailableRelationships().isEmpty()) {
+                if (context.getAvailableRelationships().
+                        isEmpty()) {
                     spaceAvailable.set(false);
                     if (logger.isDebugEnabled()) {
-                        logger.debug("Received request from " + request.getRemoteHost() + " but no space available; Indicating Service Unavailable");
+                        logger.debug("Received request from " + request.
+                                getRemoteHost() + " but no space available; Indicating Service Unavailable");
                     }
-                    response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
+                    response.
+                            sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
                     return;
                 } else {
                     spaceAvailable.set(true);
@@ -154,24 +164,32 @@ public class ListenHTTPServlet extends HttpServlet {
             }
             response.setHeader("Content-Type", MediaType.TEXT_PLAIN);
 
-            final boolean contentGzipped = Boolean.parseBoolean(request.getHeader(GZIPPED_HEADER));
+            final boolean contentGzipped = Boolean.parseBoolean(request.
+                    getHeader(GZIPPED_HEADER));
 
-            final X509Certificate[] certs = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
+            final X509Certificate[] certs = (X509Certificate[]) request.
+                    getAttribute("javax.servlet.request.X509Certificate");
             foundSubject = DEFAULT_FOUND_SUBJECT;
             if (certs != null && certs.length > 0) {
                 for (final X509Certificate cert : certs) {
-                    foundSubject = cert.getSubjectDN().getName();
-                    if (authorizedPattern.matcher(foundSubject).matches()) {
+                    foundSubject = cert.getSubjectDN().
+                            getName();
+                    if (authorizedPattern.matcher(foundSubject).
+                            matches()) {
                         break;
                     } else {
-                        logger.warn("Rejecting transfer attempt from " + foundSubject + " because the DN is not authorized, host=" + request.getRemoteHost());
-                        response.sendError(HttpServletResponse.SC_FORBIDDEN, "not allowed based on dn");
+                        logger.
+                                warn("Rejecting transfer attempt from " + foundSubject + " because the DN is not authorized, host=" + request.
+                                        getRemoteHost());
+                        response.
+                                sendError(HttpServletResponse.SC_FORBIDDEN, "not allowed based on dn");
                         return;
                     }
                 }
             }
 
-            final String destinationVersion = request.getHeader(PROTOCOL_VERSION_HEADER);
+            final String destinationVersion = request.
+                    getHeader(PROTOCOL_VERSION_HEADER);
             Integer protocolVersion = null;
             if (destinationVersion != null) {
                 try {
@@ -182,15 +200,19 @@ public class ListenHTTPServlet extends HttpServlet {
             }
 
             final boolean destinationIsLegacyNiFi = (protocolVersion == null);
-            final boolean createHold = Boolean.parseBoolean(request.getHeader(FLOWFILE_CONFIRMATION_HEADER));
+            final boolean createHold = Boolean.parseBoolean(request.
+                    getHeader(FLOWFILE_CONFIRMATION_HEADER));
             final String contentType = request.getContentType();
 
-            final InputStream unthrottled = contentGzipped ? new GZIPInputStream(request.getInputStream()) : request.getInputStream();
+            final InputStream unthrottled = contentGzipped ? new GZIPInputStream(request.
+                    getInputStream()) : request.getInputStream();
 
-            final InputStream in = (streamThrottler == null) ? unthrottled : streamThrottler.newThrottledInputStream(unthrottled);
+            final InputStream in = (streamThrottler == null) ? unthrottled : streamThrottler.
+                    newThrottledInputStream(unthrottled);
 
             if (logger.isDebugEnabled()) {
-                logger.debug("Received request from " + request.getRemoteHost() + ", createHold=" + createHold + ", content-type=" + contentType + ", gzip=" + contentGzipped);
+                logger.
+                        debug("Received request from " + request.getRemoteHost() + ", createHold=" + createHold + ", content-type=" + contentType + ", gzip=" + contentGzipped);
             }
 
             final AtomicBoolean hasMoreData = new AtomicBoolean(false);
@@ -219,16 +241,21 @@ public class ListenHTTPServlet extends HttpServlet {
                                 IOUtils.copy(in, bos);
                                 hasMoreData.set(false);
                             } else {
-                                attributes.putAll(unpackager.unpackageFlowFile(in, bos));
+                                attributes.putAll(unpackager.
+                                        unpackageFlowFile(in, bos));
 
                                 if (destinationIsLegacyNiFi) {
                                     if (attributes.containsKey("nf.file.name")) {
                                         // for backward compatibility with old nifi...
-                                        attributes.put(CoreAttributes.FILENAME.key(), attributes.remove("nf.file.name"));
+                                        attributes.put(CoreAttributes.FILENAME.
+                                                key(), attributes.
+                                                remove("nf.file.name"));
                                     }
 
                                     if (attributes.containsKey("nf.file.path")) {
-                                        attributes.put(CoreAttributes.PATH.key(), attributes.remove("nf.file.path"));
+                                        attributes.
+                                                put(CoreAttributes.PATH.key(), attributes.
+                                                        remove("nf.file.path"));
                                     }
                                 }
 
@@ -242,36 +269,45 @@ public class ListenHTTPServlet extends HttpServlet {
                 });
 
                 final long transferNanos = System.nanoTime() - startNanos;
-                final long transferMillis = TimeUnit.MILLISECONDS.convert(transferNanos, TimeUnit.NANOSECONDS);
+                final long transferMillis = TimeUnit.MILLISECONDS.
+                        convert(transferNanos, TimeUnit.NANOSECONDS);
 
                 // put metadata on flowfile
-                final String nameVal = request.getHeader(CoreAttributes.FILENAME.key());
+                final String nameVal = request.
+                        getHeader(CoreAttributes.FILENAME.key());
                 if (StringUtils.isNotBlank(nameVal)) {
                     attributes.put(CoreAttributes.FILENAME.key(), nameVal);
                 }
-                
+
                 // put arbitrary headers on flow file
-                for(Enumeration<String> headerEnum = request.getHeaderNames(); 
-                		headerEnum.hasMoreElements(); ) {
-                	String headerName = headerEnum.nextElement();
-                	if (headerPattern != null && headerPattern.matcher(headerName).matches()) {
-	                	String headerValue = request.getHeader(headerName);
-	                	attributes.put(headerName, headerValue);
-	                }
+                for (Enumeration<String> headerEnum = request.getHeaderNames();
+                        headerEnum.hasMoreElements();) {
+                    String headerName = headerEnum.nextElement();
+                    if (headerPattern != null && headerPattern.
+                            matcher(headerName).
+                            matches()) {
+                        String headerValue = request.getHeader(headerName);
+                        attributes.put(headerName, headerValue);
+                    }
                 }
 
-                String sourceSystemFlowFileIdentifier = attributes.get(CoreAttributes.UUID.key());
+                String sourceSystemFlowFileIdentifier = attributes.
+                        get(CoreAttributes.UUID.key());
                 if (sourceSystemFlowFileIdentifier != null) {
                     sourceSystemFlowFileIdentifier = "urn:nifi:" + sourceSystemFlowFileIdentifier;
 
                     // If we receveied a UUID, we want to give the FlowFile a new UUID and register the sending system's
                     // identifier as the SourceSystemFlowFileIdentifier field in the Provenance RECEIVE event
-                    attributes.put(CoreAttributes.UUID.key(), UUID.randomUUID().toString());
+                    attributes.put(CoreAttributes.UUID.key(), UUID.randomUUID().
+                            toString());
                 }
 
                 flowFile = session.putAllAttributes(flowFile, attributes);
-                session.getProvenanceReporter().receive(flowFile, request.getRequestURL().toString(), sourceSystemFlowFileIdentifier, "Remote DN=" + foundSubject, transferMillis);
-                flowFile = session.putAttribute(flowFile, "restlistener.remote.user.dn", foundSubject);
+                session.getProvenanceReporter().
+                        receive(flowFile, request.getRequestURL().
+                                toString(), sourceSystemFlowFileIdentifier, "Remote DN=" + foundSubject, transferMillis);
+                flowFile = session.
+                        putAttribute(flowFile, "restlistener.remote.user.dn", foundSubject);
                 flowFileSet.add(flowFile);
 
                 if (holdUuid == null) {
@@ -280,34 +316,45 @@ public class ListenHTTPServlet extends HttpServlet {
             } while (hasMoreData.get());
 
             if (createHold) {
-                String uuid = (holdUuid == null) ? UUID.randomUUID().toString() : holdUuid;
+                String uuid = (holdUuid == null) ? UUID.randomUUID().
+                        toString() : holdUuid;
 
                 if (flowFileMap.containsKey(uuid)) {
-                    uuid = UUID.randomUUID().toString();
+                    uuid = UUID.randomUUID().
+                            toString();
                 }
 
-                final FlowFileEntryTimeWrapper wrapper = new FlowFileEntryTimeWrapper(session, flowFileSet, System.currentTimeMillis());
+                final FlowFileEntryTimeWrapper wrapper = new FlowFileEntryTimeWrapper(session, flowFileSet, System.
+                        currentTimeMillis());
                 FlowFileEntryTimeWrapper previousWrapper;
                 do {
                     previousWrapper = flowFileMap.putIfAbsent(uuid, wrapper);
                     if (previousWrapper != null) {
-                        uuid = UUID.randomUUID().toString();
+                        uuid = UUID.randomUUID().
+                                toString();
                     }
                 } while (previousWrapper != null);
 
                 response.setStatus(HttpServletResponse.SC_SEE_OTHER);
                 final String ackUri = ListenHTTP.URI + "/holds/" + uuid;
                 response.addHeader(LOCATION_HEADER_NAME, ackUri);
-                response.addHeader(LOCATION_URI_INTENT_NAME, LOCATION_URI_INTENT_VALUE);
-                response.getOutputStream().write(ackUri.getBytes("UTF-8"));
+                response.
+                        addHeader(LOCATION_URI_INTENT_NAME, LOCATION_URI_INTENT_VALUE);
+                response.getOutputStream().
+                        write(ackUri.getBytes("UTF-8"));
                 if (logger.isDebugEnabled()) {
-                    logger.debug("Ingested {} from Remote Host: [{}] Port [{}] SubjectDN [{}]; placed hold on these {} files with ID {}",
-                            new Object[]{flowFileSet, request.getRemoteHost(), request.getRemotePort(), foundSubject, flowFileSet.size(), uuid});
+                    logger.
+                            debug("Ingested {} from Remote Host: [{}] Port [{}] SubjectDN [{}]; placed hold on these {} files with ID {}",
+                                    new Object[]{flowFileSet, request.
+                                        getRemoteHost(), request.getRemotePort(), foundSubject, flowFileSet.
+                                        size(), uuid});
                 }
             } else {
                 response.setStatus(HttpServletResponse.SC_OK);
-                logger.info("Received from Remote Host: [{}] Port [{}] SubjectDN [{}]; transferring to 'success' {}",
-                        new Object[]{request.getRemoteHost(), request.getRemotePort(), foundSubject, flowFile});
+                logger.
+                        info("Received from Remote Host: [{}] Port [{}] SubjectDN [{}]; transferring to 'success' {}",
+                                new Object[]{request.getRemoteHost(), request.
+                                    getRemotePort(), foundSubject, flowFile});
 
                 session.transfer(flowFileSet, ListenHTTP.RELATIONSHIP_SUCCESS);
                 session.commit();
@@ -315,11 +362,16 @@ public class ListenHTTPServlet extends HttpServlet {
         } catch (final Throwable t) {
             session.rollback();
             if (flowFile == null) {
-                logger.error("Unable to receive file from Remote Host: [{}] SubjectDN [{}] due to {}", new Object[]{request.getRemoteHost(), foundSubject, t});
+                logger.
+                        error("Unable to receive file from Remote Host: [{}] SubjectDN [{}] due to {}", new Object[]{request.
+                            getRemoteHost(), foundSubject, t});
             } else {
-                logger.error("Unable to receive file {} from Remote Host: [{}] SubjectDN [{}] due to {}", new Object[]{flowFile, request.getRemoteHost(), foundSubject, t});
+                logger.
+                        error("Unable to receive file {} from Remote Host: [{}] SubjectDN [{}] due to {}", new Object[]{flowFile, request.
+                            getRemoteHost(), foundSubject, t});
             }
-            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, t.toString());
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, t.
+                    toString());
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java
index 45bd8ed..aa5cdc3 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/Bin.java
@@ -117,7 +117,8 @@ public class Bin {
      * @return true if added; false otherwise
      */
     public boolean offer(final FlowFile flowFile, final ProcessSession session) {
-        if (((size + flowFile.getSize()) > maximumSizeBytes) || (binContents.size() >= maximumEntries)) {
+        if (((size + flowFile.getSize()) > maximumSizeBytes) || (binContents.
+                size() >= maximumEntries)) {
             successiveFailedOfferings++;
             return false;
         }
@@ -143,7 +144,8 @@ public class Bin {
         if (value == null) {
             return null;
         }
-        if (!intPattern.matcher(value).matches()) {
+        if (!intPattern.matcher(value).
+                matches()) {
             return null;
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/BinManager.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/BinManager.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/BinManager.java
index 722efae..eeadfa6 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/BinManager.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/BinManager.java
@@ -60,8 +60,10 @@ public class BinManager {
         try {
             for (final List<Bin> binList : groupBinMap.values()) {
                 for (final Bin bin : binList) {
-                    for (final FlowFileSessionWrapper wrapper : bin.getContents()) {
-                        wrapper.getSession().rollback();
+                    for (final FlowFileSessionWrapper wrapper : bin.
+                            getContents()) {
+                        wrapper.getSession().
+                                rollback();
                     }
                 }
             }
@@ -126,7 +128,8 @@ public class BinManager {
             final List<Bin> currentBins = groupBinMap.get(groupIdentifier);
             if (currentBins == null) { // this is a new group we need to register
                 final List<Bin> bins = new ArrayList<>();
-                final Bin bin = new Bin(minSizeBytes.get(), currentMaxSizeBytes, minEntries.get(), maxEntries.get(), fileCountAttribute.get());
+                final Bin bin = new Bin(minSizeBytes.get(), currentMaxSizeBytes, minEntries.
+                        get(), maxEntries.get(), fileCountAttribute.get());
                 bins.add(bin);
                 groupBinMap.put(groupIdentifier, bins);
                 binCount++;
@@ -140,7 +143,8 @@ public class BinManager {
                 }
 
                 //if we've reached this point then we couldn't fit it into any existing bins - gotta make a new one
-                final Bin bin = new Bin(minSizeBytes.get(), currentMaxSizeBytes, minEntries.get(), maxEntries.get(), fileCountAttribute.get());
+                final Bin bin = new Bin(minSizeBytes.get(), currentMaxSizeBytes, minEntries.
+                        get(), maxEntries.get(), fileCountAttribute.get());
                 currentBins.add(bin);
                 binCount++;
                 return bin.offer(flowFile, session);
@@ -157,7 +161,7 @@ public class BinManager {
      * @param relaxFullnessConstraint if false will require bins to be full
      * before considered ready; if true bins only have to meet their minimum
      * size criteria or be 'old' and then they'll be considered ready
-     * @return 
+     * @return
      */
     public Collection<Bin> removeReadyBins(boolean relaxFullnessConstraint) {
         final Map<String, List<Bin>> newGroupMap = new HashMap<>();
@@ -165,10 +169,12 @@ public class BinManager {
 
         wLock.lock();
         try {
-            for (final Map.Entry<String, List<Bin>> group : groupBinMap.entrySet()) {
+            for (final Map.Entry<String, List<Bin>> group : groupBinMap.
+                    entrySet()) {
                 final List<Bin> remainingBins = new ArrayList<>();
                 for (final Bin bin : group.getValue()) {
-                    if (relaxFullnessConstraint && (bin.isFullEnough() || bin.isOlderThan(maxBinAgeSeconds.get(), TimeUnit.SECONDS))) { //relaxed check
+                    if (relaxFullnessConstraint && (bin.isFullEnough() || bin.
+                            isOlderThan(maxBinAgeSeconds.get(), TimeUnit.SECONDS))) { //relaxed check
                         readyBins.add(bin);
                     } else if (!relaxFullnessConstraint && bin.isFull()) { //strict check
                         readyBins.add(bin);
@@ -195,7 +201,8 @@ public class BinManager {
             Bin oldestBin = null;
             String oldestBinGroup = null;
 
-            for (final Map.Entry<String, List<Bin>> group : groupBinMap.entrySet()) {
+            for (final Map.Entry<String, List<Bin>> group : groupBinMap.
+                    entrySet()) {
                 for (final Bin bin : group.getValue()) {
                     if (oldestBin == null || bin.isOlderThan(oldestBin)) {
                         oldestBin = bin;
@@ -228,7 +235,8 @@ public class BinManager {
         try {
             for (final List<Bin> bins : groupBinMap.values()) {
                 for (final Bin bin : bins) {
-                    if (bin.isOlderThan(maxBinAgeSeconds.get(), TimeUnit.SECONDS)) {
+                    if (bin.
+                            isOlderThan(maxBinAgeSeconds.get(), TimeUnit.SECONDS)) {
                         return true;
                     }
                 }

http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/54818893/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/DocumentReaderCallback.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/DocumentReaderCallback.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/DocumentReaderCallback.java
index bf28003..3131f40 100644
--- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/DocumentReaderCallback.java
+++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/util/DocumentReaderCallback.java
@@ -52,7 +52,8 @@ public class DocumentReaderCallback implements InputStreamCallback {
     @Override
     public void process(final InputStream stream) throws IOException {
         try {
-            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+            DocumentBuilderFactory factory = DocumentBuilderFactory.
+                    newInstance();
             factory.setNamespaceAware(isNamespaceAware);
             DocumentBuilder builder = factory.newDocumentBuilder();
             document = builder.parse(stream);