Repository: tika Updated Branches: refs/heads/2.x a33ff9a08 -> 60c150a4e
TIKA-1921 -- note: need to set default timezone to UTC both programmatically and in surefire plugin at least with Java 8. Project: http://git-wip-us.apache.org/repos/asf/tika/repo Commit: http://git-wip-us.apache.org/repos/asf/tika/commit/60c150a4 Tree: http://git-wip-us.apache.org/repos/asf/tika/tree/60c150a4 Diff: http://git-wip-us.apache.org/repos/asf/tika/diff/60c150a4 Branch: refs/heads/2.x Commit: 60c150a4edff9eac4923fdc36a85f54f00b27bfb Parents: a33ff9a Author: tballison <[email protected]> Authored: Thu Mar 31 14:51:53 2016 -0400 Committer: tballison <[email protected]> Committed: Thu Mar 31 14:51:53 2016 -0400 ---------------------------------------------------------------------- tika-parent/pom.xml | 2 +- .../tika-parser-multimedia-module/pom.xml | 2 +- .../parser/image/ImageMetadataExtractor.java | 2 ++ .../apache/tika/parser/jpeg/JpegParserTest.java | 22 ++++++++++++++++++-- 4 files changed, 24 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tika/blob/60c150a4/tika-parent/pom.xml ---------------------------------------------------------------------- diff --git a/tika-parent/pom.xml b/tika-parent/pom.xml index 08b955e..7f593eb 100644 --- a/tika-parent/pom.xml +++ b/tika-parent/pom.xml @@ -410,7 +410,7 @@ <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> - <argLine>-Xmx2048m</argLine> + <argLine>-Xmx2048m -Duser.timezone=UTC</argLine> </configuration> </plugin> <plugin> http://git-wip-us.apache.org/repos/asf/tika/blob/60c150a4/tika-parser-modules/tika-parser-multimedia-module/pom.xml ---------------------------------------------------------------------- diff --git a/tika-parser-modules/tika-parser-multimedia-module/pom.xml b/tika-parser-modules/tika-parser-multimedia-module/pom.xml index ca601c7..5ee5220 100644 --- a/tika-parser-modules/tika-parser-multimedia-module/pom.xml +++ b/tika-parser-modules/tika-parser-multimedia-module/pom.xml @@ -24,7 +24,7 @@ <url>http://tika.apache.org/</url> <properties> - <metadata.extractor.version>2.8.0</metadata.extractor.version> + <metadata.extractor.version>2.8.1</metadata.extractor.version> <isoparser.version>1.0.2</isoparser.version> <commons.logging.version>1.1.3</commons.logging.version> </properties> http://git-wip-us.apache.org/repos/asf/tika/blob/60c150a4/tika-parser-modules/tika-parser-multimedia-module/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java ---------------------------------------------------------------------- diff --git a/tika-parser-modules/tika-parser-multimedia-module/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java b/tika-parser-modules/tika-parser-multimedia-module/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java index 447da73..6c0781d 100644 --- a/tika-parser-modules/tika-parser-multimedia-module/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java +++ b/tika-parser-modules/tika-parser-multimedia-module/src/main/java/org/apache/tika/parser/image/ImageMetadataExtractor.java @@ -467,6 +467,8 @@ public class ImageMetadataExtractor { */ public void handleDateTags(Directory directory, Metadata metadata) throws MetadataException { + //TODO: should we try to process ExifSubIFDDirectory.TAG_TIME_ZONE_OFFSET + //if it exists? // Date/Time Original overrides value from ExifDirectory.TAG_DATETIME Date original = null; if (directory.containsTag(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL)) { http://git-wip-us.apache.org/repos/asf/tika/blob/60c150a4/tika-parser-modules/tika-parser-multimedia-module/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java ---------------------------------------------------------------------- diff --git a/tika-parser-modules/tika-parser-multimedia-module/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java b/tika-parser-modules/tika-parser-multimedia-module/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java index 1f08476..f65c797 100644 --- a/tika-parser-modules/tika-parser-multimedia-module/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java +++ b/tika-parser-modules/tika-parser-multimedia-module/src/test/java/org/apache/tika/parser/jpeg/JpegParserTest.java @@ -23,6 +23,7 @@ import static org.junit.Assert.assertTrue; import java.io.InputStream; import java.util.Arrays; import java.util.List; +import java.util.TimeZone; import org.apache.tika.metadata.Metadata; import org.apache.tika.metadata.TIFF; @@ -30,13 +31,30 @@ import org.apache.tika.metadata.TikaCoreProperties; import org.apache.tika.metadata.XMPMM; import org.apache.tika.parser.ParseContext; import org.apache.tika.parser.Parser; +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.Test; import org.xml.sax.helpers.DefaultHandler; public class JpegParserTest { private final Parser parser = new JpegParser(); - + static TimeZone CURR_TIME_ZONE = TimeZone.getDefault(); + + //As of Drew Noakes' metadata-extractor 2.8.1, + //unspecified timezones appear to be set to + //TimeZone.getDefault(). We need to normalize this + //for testing across different time zones. + //We also appear to have to specify it in the surefire config: + //<argLine>-Duser.timezone=UTC</argLine> + @BeforeClass + public static void setDefaultTimeZone() { + TimeZone.setDefault(TimeZone.getTimeZone("UTC")); + } + @AfterClass + public static void resetDefaultTimeZone() { + TimeZone.setDefault(CURR_TIME_ZONE); + } @Test public void testJPEG() throws Exception { Metadata metadata = new Metadata(); @@ -70,7 +88,7 @@ public class JpegParserTest { assertEquals("Canon EOS 40D", metadata.get("Model")); // Common tags - //assertEquals("2009-10-02T23:02:49", metadata.get(Metadata.LAST_MODIFIED)); + assertEquals("2009-10-02T23:02:49", metadata.get(Metadata.LAST_MODIFIED)); assertEquals("Date/Time Original for when the photo was taken, unspecified time zone", "2009-08-11T09:09:45", metadata.get(TikaCoreProperties.CREATED)); List<String> keywords = Arrays.asList(metadata.getValues(TikaCoreProperties.KEYWORDS));
