From b58180cf96ad93a0e5b6584f9fd1bf2ce40fbd07 Mon Sep 17 00:00:00 2001 From: Pierre Villard Date: Wed, 28 Feb 2018 18:22:14 +0100 Subject: [PATCH] NIFI-4916 - ConvertExcelToCSVProcessor inherit parent attributes --- .../nifi/processors/poi/ConvertExcelToCSVProcessor.java | 2 +- .../processors/poi/ConvertExcelToCSVProcessorTest.java | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/nifi-nar-bundles/nifi-poi-bundle/nifi-poi-processors/src/main/java/org/apache/nifi/processors/poi/ConvertExcelToCSVProcessor.java b/nifi-nar-bundles/nifi-poi-bundle/nifi-poi-processors/src/main/java/org/apache/nifi/processors/poi/ConvertExcelToCSVProcessor.java index 1e0df8845227..f05312b46a82 100644 --- a/nifi-nar-bundles/nifi-poi-bundle/nifi-poi-processors/src/main/java/org/apache/nifi/processors/poi/ConvertExcelToCSVProcessor.java +++ b/nifi-nar-bundles/nifi-poi-bundle/nifi-poi-processors/src/main/java/org/apache/nifi/processors/poi/ConvertExcelToCSVProcessor.java @@ -292,7 +292,7 @@ public void process(InputStream inputStream) throws IOException { private void handleExcelSheet(ProcessSession session, FlowFile originalParentFF, final InputStream sheetInputStream, ExcelSheetReadConfig readConfig, CSVFormat csvFormat) throws IOException { - FlowFile ff = session.create(); + FlowFile ff = session.create(originalParentFF); try { final DataFormatter formatter = new DataFormatter(); final InputSource sheetSource = new InputSource(sheetInputStream); diff --git a/nifi-nar-bundles/nifi-poi-bundle/nifi-poi-processors/src/test/java/org/apache/nifi/processors/poi/ConvertExcelToCSVProcessorTest.java b/nifi-nar-bundles/nifi-poi-bundle/nifi-poi-processors/src/test/java/org/apache/nifi/processors/poi/ConvertExcelToCSVProcessorTest.java index 9e9131fe74b6..193b5668ffb3 100644 --- a/nifi-nar-bundles/nifi-poi-bundle/nifi-poi-processors/src/test/java/org/apache/nifi/processors/poi/ConvertExcelToCSVProcessorTest.java +++ b/nifi-nar-bundles/nifi-poi-bundle/nifi-poi-processors/src/test/java/org/apache/nifi/processors/poi/ConvertExcelToCSVProcessorTest.java @@ -20,7 +20,9 @@ import static org.junit.Assert.assertTrue; import java.io.File; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.nifi.csv.CSVUtils; import org.apache.nifi.flowfile.attributes.CoreAttributes; @@ -44,7 +46,10 @@ public void init() { @Test public void testMultipleSheetsGeneratesMultipleFlowFiles() throws Exception { - testRunner.enqueue(new File("src/test/resources/TwoSheets.xlsx").toPath()); + Map attributes = new HashMap(); + attributes.put("test", "attribute"); + + testRunner.enqueue(new File("src/test/resources/TwoSheets.xlsx").toPath(), attributes); testRunner.run(); testRunner.assertTransferCount(ConvertExcelToCSVProcessor.SUCCESS, 2); @@ -59,6 +64,7 @@ public void testMultipleSheetsGeneratesMultipleFlowFiles() throws Exception { //Since TestRunner.run() will create a random filename even if the attribute is set in enqueue manually we just check that "_{SHEETNAME}.csv is present assertTrue(ffSheetA.getAttribute(CoreAttributes.FILENAME.key()).endsWith("_TestSheetA.csv")); + assertTrue(ffSheetA.getAttribute("test").equals("attribute")); MockFlowFile ffSheetB = testRunner.getFlowFilesForRelationship(ConvertExcelToCSVProcessor.SUCCESS).get(1); Long rowsSheetB = new Long(ffSheetB.getAttribute(ConvertExcelToCSVProcessor.ROW_NUM)); @@ -68,6 +74,7 @@ public void testMultipleSheetsGeneratesMultipleFlowFiles() throws Exception { //Since TestRunner.run() will create a random filename even if the attribute is set in enqueue manually we just check that "_{SHEETNAME}.csv is present assertTrue(ffSheetB.getAttribute(CoreAttributes.FILENAME.key()).endsWith("_TestSheetB.csv")); + assertTrue(ffSheetB.getAttribute("test").equals("attribute")); }