From bb499f84aca9c3ddd07971da6ded2030e32d6b42 Mon Sep 17 00:00:00 2001 From: Thorsten Vitt <thorsten.vitt@uni-wuerzburg.de> Date: Mon, 27 May 2013 12:01:25 +0000 Subject: [PATCH] Improved mime.types parser RE. Previously, lines containing a comment at the end and lines starting with whitespace were not recognized. git-svn-id: https://develop.sub.uni-goettingen.de/repos/textgrid/trunk/services/aggregator@14095 7c539038-3410-0410-b1ec-0f2a7bf1c452 --- .../services/aggregator/tree/FileExtensionMap.java | 7 ++++++- .../services/aggregator/tree/FileExtensionMapTest.java | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/info/textgrid/services/aggregator/tree/FileExtensionMap.java b/src/main/java/info/textgrid/services/aggregator/tree/FileExtensionMap.java index 6c48449..89a852c 100644 --- a/src/main/java/info/textgrid/services/aggregator/tree/FileExtensionMap.java +++ b/src/main/java/info/textgrid/services/aggregator/tree/FileExtensionMap.java @@ -27,7 +27,12 @@ public class FileExtensionMap { private static Logger logger = Logger.getLogger(FileExtensionMap.class); protected FileExtensionMap() throws IOException { - final Pattern mapLine = Pattern.compile("^([^# \t]+)[ \t]*([^#]+)$"); + + // Comments start with # and reach to the end of line. + // A matching line contains of a mime type and one or more extensions + // comments are stripped + // <whitespace>? <mimetype>¹ <whitespace> <extensions>² <whitespace>? <comment>? + final Pattern mapLine = Pattern.compile("^[ \t]*([^# \t]+)[ \t]*([^#]+)[ \t]*(#.*)?$"); final Pattern space = Pattern.compile("[ \t]+"); final LineNumberReader reader = new LineNumberReader( new InputStreamReader(getClass().getClassLoader() diff --git a/src/test/java/info/textgrid/services/aggregator/tree/FileExtensionMapTest.java b/src/test/java/info/textgrid/services/aggregator/tree/FileExtensionMapTest.java index 8e2f0c1..dc7d245 100644 --- a/src/test/java/info/textgrid/services/aggregator/tree/FileExtensionMapTest.java +++ b/src/test/java/info/textgrid/services/aggregator/tree/FileExtensionMapTest.java @@ -25,6 +25,11 @@ public void testGetExtensions() { Assert.assertEquals("Wrong extensions for XHTML", ImmutableList.of("xhtml", "xht"), xhtml); } + + @Test + public void testTextGridTypes() { + Assert.assertEquals("aggregation", ext.getFirstExtension("text/tg.aggregation+xml").orNull()); + } @Test public void testGetFirstExtension() { -- GitLab