Repository: nifi Updated Branches: refs/heads/master 8f40d2b18 -> 3a4546c08
NIFI-1617 Add source filename metadata to IdentifyMimeType Signed-off-by: Matt Burgess <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/3a4546c0 Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/3a4546c0 Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/3a4546c0 Branch: refs/heads/master Commit: 3a4546c08a2804433627f0a9190c37ae657a139e Parents: 8f40d2b Author: Joey Frazee <[email protected]> Authored: Thu Mar 10 16:49:59 2016 -0600 Committer: Matt Burgess <[email protected]> Committed: Fri Mar 18 00:23:16 2016 -0400 ---------------------------------------------------------------------- .../nifi-standard-processors/pom.xml | 21 ++++++++++---------- .../processors/standard/IdentifyMimeType.java | 6 ++++++ .../standard/TestIdentifyMimeType.java | 2 ++ .../test/resources/TestIdentifyMimeType/1.csv | 2 ++ 4 files changed, 21 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/3a4546c0/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml index 5494206..dac907c 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/pom.xml @@ -1,13 +1,13 @@ <?xml version="1.0"?> -<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor -license agreements. See the NOTICE file distributed with this work for additional -information regarding copyright ownership. The ASF licenses this file to -You under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of -the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required -by applicable law or agreed to in writing, software distributed under the -License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS -OF ANY KIND, either express or implied. See the License for the specific +<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor +license agreements. See the NOTICE file distributed with this work for additional +information regarding copyright ownership. The ASF licenses this file to +You under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of +the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required +by applicable law or agreed to in writing, software distributed under the +License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS +OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> @@ -222,7 +222,7 @@ language governing permissions and limitations under the License. --> <scope>test</scope> </dependency> </dependencies> - + <build> <plugins> <plugin> @@ -244,6 +244,7 @@ language governing permissions and limitations under the License. --> <exclude>src/test/resources/TestEncryptContent/text.txt</exclude> <exclude>src/test/resources/TestEncryptContent/text.txt.asc</exclude> <exclude>src/test/resources/TestIdentifyMimeType/1.txt</exclude> + <exclude>src/test/resources/TestIdentifyMimeType/1.csv</exclude> <exclude>src/test/resources/TestJson/json-sample.json</exclude> <exclude>src/test/resources/TestJson/control-characters.json</exclude> <exclude>src/test/resources/TestMergeContent/demarcate</exclude> http://git-wip-us.apache.org/repos/asf/nifi/blob/3a4546c0/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java index d09117d..d514722 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/IdentifyMimeType.java @@ -45,6 +45,7 @@ import org.apache.tika.config.TikaConfig; import org.apache.tika.detect.Detector; import org.apache.tika.io.TikaInputStream; import org.apache.tika.metadata.Metadata; +import org.apache.tika.metadata.TikaMetadataKeys; import org.apache.tika.mime.MediaType; import org.apache.tika.mime.MimeType; import org.apache.tika.mime.MimeTypeException; @@ -117,6 +118,7 @@ public class IdentifyMimeType extends AbstractProcessor { final ProcessorLog logger = getLogger(); final ObjectHolder<String> mimeTypeRef = new ObjectHolder<>(null); + final String filename = flowFile.getAttribute(CoreAttributes.FILENAME.key()); session.read(flowFile, new InputStreamCallback() { @Override @@ -124,6 +126,10 @@ public class IdentifyMimeType extends AbstractProcessor { try (final InputStream in = new BufferedInputStream(stream)) { TikaInputStream tikaStream = TikaInputStream.get(in); Metadata metadata = new Metadata(); + // Add filename if it exists + if (filename != null) { + metadata.add(TikaMetadataKeys.RESOURCE_NAME_KEY, filename); + } // Get mime type MediaType mediatype = detector.detect(tikaStream, metadata); mimeTypeRef.set(mediatype.toString()); http://git-wip-us.apache.org/repos/asf/nifi/blob/3a4546c0/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java index 0094cb0..871d0f6 100644 --- a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/java/org/apache/nifi/processors/standard/TestIdentifyMimeType.java @@ -58,6 +58,7 @@ public class TestIdentifyMimeType { expectedMimeTypes.put("1.7z", "application/x-7z-compressed"); expectedMimeTypes.put("1.mdb", "application/x-msaccess"); expectedMimeTypes.put("1.txt", "text/plain"); + expectedMimeTypes.put("1.csv", "text/csv"); expectedMimeTypes.put("1.txt.bz2", "application/x-bzip2"); expectedMimeTypes.put("1.txt.gz", "application/gzip"); expectedMimeTypes.put("1.zip", "application/zip"); @@ -76,6 +77,7 @@ public class TestIdentifyMimeType { expectedExtensions.put("1.7z", ".7z"); expectedExtensions.put("1.mdb", ".mdb"); expectedExtensions.put("1.txt", ".txt"); + expectedExtensions.put("1.csv", ".csv"); expectedExtensions.put("1.txt.bz2", ".bz2"); expectedExtensions.put("1.txt.gz", ".gz"); expectedExtensions.put("1.zip", ".zip"); http://git-wip-us.apache.org/repos/asf/nifi/blob/3a4546c0/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.csv ---------------------------------------------------------------------- diff --git a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.csv b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.csv new file mode 100644 index 0000000..d5a29fe --- /dev/null +++ b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/test/resources/TestIdentifyMimeType/1.csv @@ -0,0 +1,2 @@ +id,name +1,"Jane Smith"
