diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java index 1d7ed35010..73f607daf6 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateFlowFile.java @@ -43,6 +43,7 @@ import org.apache.nifi.components.ValidationResult; import org.apache.nifi.expression.AttributeExpression; import org.apache.nifi.expression.ExpressionLanguageScope; import org.apache.nifi.flowfile.FlowFile; +import org.apache.nifi.flowfile.attributes.CoreAttributes; import org.apache.nifi.processor.AbstractProcessor; import org.apache.nifi.processor.DataUnit; import org.apache.nifi.processor.ProcessContext; @@ -115,6 +116,13 @@ public class GenerateFlowFile extends AbstractProcessor { .defaultValue("UTF-8") .addValidator(StandardValidators.CHARACTER_SET_VALIDATOR) .build(); + public static final PropertyDescriptor MIME_TYPE = new PropertyDescriptor.Builder() + .name("mime-type") + .displayName("Mime Type") + .description("Specifies the value to set for the \"mime.type\" attribute.") + .required(false) + .addValidator(StandardValidators.NON_EMPTY_VALIDATOR) + .build(); public static final Relationship SUCCESS = new Relationship.Builder() .name("success") @@ -134,6 +142,7 @@ public class GenerateFlowFile extends AbstractProcessor { descriptors.add(UNIQUE_FLOWFILES); descriptors.add(CUSTOM_TEXT); descriptors.add(CHARSET); + descriptors.add(MIME_TYPE); this.descriptors = Collections.unmodifiableList(descriptors); final Set relationships = new HashSet<>(); @@ -226,6 +235,10 @@ public class GenerateFlowFile extends AbstractProcessor { } } + if(context.getProperty(MIME_TYPE).isSet()) { + generatedAttributes.put(CoreAttributes.MIME_TYPE.key(), context.getProperty(MIME_TYPE).getValue()); + } + for (int i = 0; i < context.getProperty(BATCH_SIZE).asInteger(); i++) { FlowFile flowFile = session.create(); if (data.length > 0) { diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGenerateFlowFile.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGenerateFlowFile.java index ca7de0c786..9a22d61d3e 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGenerateFlowFile.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestGenerateFlowFile.java @@ -38,7 +38,9 @@ public class TestGenerateFlowFile { runner.run(); runner.assertTransferCount(GenerateFlowFile.SUCCESS, 1); - runner.getFlowFilesForRelationship(GenerateFlowFile.SUCCESS).get(0).assertContentEquals("This is my custom text!"); + MockFlowFile generatedFlowFile = runner.getFlowFilesForRelationship(GenerateFlowFile.SUCCESS).get(0); + generatedFlowFile.assertContentEquals("This is my custom text!"); + generatedFlowFile.assertAttributeNotExists("mime.type"); } @Test @@ -59,6 +61,7 @@ public class TestGenerateFlowFile { TestRunner runner = TestRunners.newTestRunner(new GenerateFlowFile()); runner.setProperty(GenerateFlowFile.FILE_SIZE, "1B"); runner.setProperty(GenerateFlowFile.DATA_FORMAT, GenerateFlowFile.DATA_FORMAT_TEXT); + runner.setProperty(GenerateFlowFile.MIME_TYPE, "application/text"); runner.setProperty("plain.dynamic.property", "Plain Value"); runner.setProperty("expression.dynamic.property", "${literal('Expression Value')}"); runner.assertValid(); @@ -69,6 +72,7 @@ public class TestGenerateFlowFile { MockFlowFile generatedFlowFile = runner.getFlowFilesForRelationship(GenerateFlowFile.SUCCESS).get(0); generatedFlowFile.assertAttributeEquals("plain.dynamic.property", "Plain Value"); generatedFlowFile.assertAttributeEquals("expression.dynamic.property", "Expression Value"); + generatedFlowFile.assertAttributeEquals("mime.type", "application/text"); } } \ No newline at end of file