You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2019/05/07 14:43:50 UTC
[tika] branch master updated: TIKA-2864 -- fix regression in rfc822
parsing speed
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/master by this push:
new 2593a50 TIKA-2864 -- fix regression in rfc822 parsing speed
2593a50 is described below
commit 2593a50e66a7a8543105158a27ad8e680634db27
Author: TALLISON <ta...@apache.org>
AuthorDate: Tue May 7 10:43:32 2019 -0400
TIKA-2864 -- fix regression in rfc822 parsing speed
---
.../tika/extractor/EmbeddedDocumentUtil.java | 4 +-
.../org/apache/tika/parser/crypto/Pkcs7Parser.java | 5 +-
.../org/apache/tika/parser/gdal/GDALParser.java | 255 +++++++++++----------
.../apache/tika/parser/xml/FictionBookParser.java | 6 +-
4 files changed, 140 insertions(+), 130 deletions(-)
diff --git a/tika-core/src/main/java/org/apache/tika/extractor/EmbeddedDocumentUtil.java b/tika-core/src/main/java/org/apache/tika/extractor/EmbeddedDocumentUtil.java
index 1fc7308..1463bb3 100644
--- a/tika-core/src/main/java/org/apache/tika/extractor/EmbeddedDocumentUtil.java
+++ b/tika-core/src/main/java/org/apache/tika/extractor/EmbeddedDocumentUtil.java
@@ -269,9 +269,7 @@ public class EmbeddedDocumentUtil implements Serializable {
}
private static Parser findInComposite(CompositeParser p, Class clazz, ParseContext context) {
- Map<MediaType, Parser> map = p.getParsers(context);
- for (Map.Entry<MediaType, Parser> e : map.entrySet()) {
- Parser candidate = e.getValue();
+ for (Parser candidate : p.getAllComponentParsers()) {
if (equals(candidate, clazz)) {
return candidate;
}
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/crypto/Pkcs7Parser.java b/tika-parsers/src/main/java/org/apache/tika/parser/crypto/Pkcs7Parser.java
index e84023c..372c015 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/crypto/Pkcs7Parser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/crypto/Pkcs7Parser.java
@@ -51,8 +51,11 @@ public class Pkcs7Parser extends AbstractParser {
private static final MediaType PKCS7_SIGNATURE =
MediaType.application("pkcs7-signature");
+ private static final Set<MediaType> SUPPORTED_TYPES =
+ MediaType.set(PKCS7_MIME, PKCS7_SIGNATURE);
+
public Set<MediaType> getSupportedTypes(ParseContext context) {
- return MediaType.set(PKCS7_MIME, PKCS7_SIGNATURE);
+ return SUPPORTED_TYPES;
}
public void parse(
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/gdal/GDALParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
index 66d1c5f..e325460 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
@@ -23,6 +23,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -71,6 +73,134 @@ public class GDALParser extends AbstractParser {
private static final long serialVersionUID = -3869130527323941401L;
private static final Logger LOG = LoggerFactory.getLogger(GDALParser.class);
+ private static final Set<MediaType> SUPPORTED_TYPES =
+ Collections.unmodifiableSet(new HashSet<>(
+ Arrays.asList(
+ MediaType.application("x-netcdf"),
+ MediaType.application("vrt"),
+ MediaType.image("geotiff"),
+ MediaType.image("nitf"),
+ MediaType.application("x-rpf-toc"),
+ MediaType.application("x-ecrg-toc"),
+ MediaType.image("hfa"),
+ MediaType.image("sar-ceos"),
+ MediaType.image("ceos"),
+ MediaType.application("jaxa-pal-sar"),
+ MediaType.application("gff"),
+ MediaType.application("elas"),
+ MediaType.application("aig"),
+ MediaType.application("aaigrid"),
+ MediaType.application("grass-ascii-grid"),
+ MediaType.application("sdts-raster"),
+ MediaType.application("dted"),
+ MediaType.image("png"),
+ MediaType.image("jpeg"),
+ MediaType.image("raster"),
+ MediaType.application("jdem"),
+ MediaType.image("gif"),
+ MediaType.image("big-gif"),
+ MediaType.image("envisat"),
+ MediaType.image("fits"),
+ MediaType.application("fits"),
+ MediaType.image("bsb"),
+ MediaType.application("xpm"),
+ MediaType.image("bmp"),
+ MediaType.image("x-dimap"),
+ MediaType.image("x-airsar"),
+ MediaType.application("x-rs2"),
+ MediaType.application("x-pcidsk"),
+ MediaType.application("pcisdk"),
+ MediaType.image("x-pcraster"),
+ MediaType.image("ilwis"),
+ MediaType.image("sgi"),
+ MediaType.application("x-srtmhgt"),
+ MediaType.application("leveller"),
+ MediaType.application("terragen"),
+ MediaType.application("x-gmt"),
+ MediaType.application("x-isis3"),
+ MediaType.application("x-isis2"),
+ MediaType.application("x-pds"),
+ MediaType.application("x-til"),
+ MediaType.application("x-ers"),
+ MediaType.application("x-l1b"),
+ MediaType.image("fit"),
+ MediaType.application("x-grib"),
+ MediaType.image("jp2"),
+ MediaType.application("x-rmf"),
+ MediaType.application("x-wcs"),
+ MediaType.application("x-wms"),
+ MediaType.application("x-msgn"),
+ MediaType.application("x-wms"),
+ MediaType.application("x-wms"),
+ MediaType.application("x-rst"),
+ MediaType.application("x-ingr"),
+ MediaType.application("x-gsag"),
+ MediaType.application("x-gsbg"),
+ MediaType.application("x-gs7bg"),
+ MediaType.application("x-cosar"),
+ MediaType.application("x-tsx"),
+ MediaType.application("x-coasp"),
+ MediaType.application("x-r"),
+ MediaType.application("x-map"),
+ MediaType.application("x-pnm"),
+ MediaType.application("x-doq1"),
+ MediaType.application("x-doq2"),
+ MediaType.application("x-envi"),
+ MediaType.application("x-envi-hdr"),
+ MediaType.application("x-generic-bin"),
+ MediaType.application("x-p-aux"),
+ MediaType.image("x-mff"),
+ MediaType.image("x-mff2"),
+ MediaType.image("x-fujibas"),
+ MediaType.application("x-gsc"),
+ MediaType.application("x-fast"),
+ MediaType.application("x-bt"),
+ MediaType.application("x-lan"),
+ MediaType.application("x-cpg"),
+ MediaType.image("ida"),
+ MediaType.application("x-ndf"),
+ MediaType.image("eir"),
+ MediaType.application("x-dipex"),
+ MediaType.application("x-lcp"),
+ MediaType.application("x-gtx"),
+ MediaType.application("x-los-las"),
+ MediaType.application("x-ntv2"),
+ MediaType.application("x-ctable2"),
+ MediaType.application("x-ace2"),
+ MediaType.application("x-snodas"),
+ MediaType.application("x-kro"),
+ MediaType.image("arg"),
+ MediaType.application("x-rik"),
+ MediaType.application("x-usgs-dem"),
+ MediaType.application("x-gxf"),
+ MediaType.application("x-dods"),
+ MediaType.application("x-http"),
+ MediaType.application("x-bag"),
+ MediaType.application("x-hdf"),
+ MediaType.image("x-hdf5-image"),
+ MediaType.application("x-nwt-grd"),
+ MediaType.application("x-nwt-grc"),
+ MediaType.image("adrg"),
+ MediaType.image("x-srp"),
+ MediaType.application("x-blx"),
+ MediaType.application("x-rasterlite"),
+ MediaType.application("x-epsilon"),
+ MediaType.application("x-sdat"),
+ MediaType.application("x-kml"),
+ MediaType.application("x-xyz"),
+ MediaType.application("x-geo-pdf"),
+ MediaType.image("x-ozi"),
+ MediaType.application("x-ctg"),
+ MediaType.application("x-e00-grid"),
+ MediaType.application("x-zmap"),
+ MediaType.application("x-webp"),
+ MediaType.application("x-ngs-geoid"),
+ MediaType.application("x-mbtiles"),
+ MediaType.application("x-ppi"),
+ MediaType.application("x-cappi"))));
+
+
+
private String command;
public GDALParser() {
@@ -102,130 +232,7 @@ public class GDALParser extends AbstractParser {
@Override
public Set<MediaType> getSupportedTypes(ParseContext context) {
- Set<MediaType> types = new HashSet<MediaType>();
- types.add(MediaType.application("x-netcdf"));
- types.add(MediaType.application("vrt"));
- types.add(MediaType.image("geotiff"));
- types.add(MediaType.image("nitf"));
- types.add(MediaType.application("x-rpf-toc"));
- types.add(MediaType.application("x-ecrg-toc"));
- types.add(MediaType.image("hfa"));
- types.add(MediaType.image("sar-ceos"));
- types.add(MediaType.image("ceos"));
- types.add(MediaType.application("jaxa-pal-sar"));
- types.add(MediaType.application("gff"));
- types.add(MediaType.application("elas"));
- types.add(MediaType.application("aig"));
- types.add(MediaType.application("aaigrid"));
- types.add(MediaType.application("grass-ascii-grid"));
- types.add(MediaType.application("sdts-raster"));
- types.add(MediaType.application("dted"));
- types.add(MediaType.image("png"));
- types.add(MediaType.image("jpeg"));
- types.add(MediaType.image("raster"));
- types.add(MediaType.application("jdem"));
- types.add(MediaType.image("gif"));
- types.add(MediaType.image("big-gif"));
- types.add(MediaType.image("envisat"));
- types.add(MediaType.image("fits"));
- types.add(MediaType.application("fits"));
- types.add(MediaType.image("bsb"));
- types.add(MediaType.application("xpm"));
- types.add(MediaType.image("bmp"));
- types.add(MediaType.image("x-dimap"));
- types.add(MediaType.image("x-airsar"));
- types.add(MediaType.application("x-rs2"));
- types.add(MediaType.application("x-pcidsk"));
- types.add(MediaType.application("pcisdk"));
- types.add(MediaType.image("x-pcraster"));
- types.add(MediaType.image("ilwis"));
- types.add(MediaType.image("sgi"));
- types.add(MediaType.application("x-srtmhgt"));
- types.add(MediaType.application("leveller"));
- types.add(MediaType.application("terragen"));
- types.add(MediaType.application("x-gmt"));
- types.add(MediaType.application("x-isis3"));
- types.add(MediaType.application("x-isis2"));
- types.add(MediaType.application("x-pds"));
- types.add(MediaType.application("x-til"));
- types.add(MediaType.application("x-ers"));
- types.add(MediaType.application("x-l1b"));
- types.add(MediaType.image("fit"));
- types.add(MediaType.application("x-grib"));
- types.add(MediaType.image("jp2"));
- types.add(MediaType.application("x-rmf"));
- types.add(MediaType.application("x-wcs"));
- types.add(MediaType.application("x-wms"));
- types.add(MediaType.application("x-msgn"));
- types.add(MediaType.application("x-wms"));
- types.add(MediaType.application("x-wms"));
- types.add(MediaType.application("x-rst"));
- types.add(MediaType.application("x-ingr"));
- types.add(MediaType.application("x-gsag"));
- types.add(MediaType.application("x-gsbg"));
- types.add(MediaType.application("x-gs7bg"));
- types.add(MediaType.application("x-cosar"));
- types.add(MediaType.application("x-tsx"));
- types.add(MediaType.application("x-coasp"));
- types.add(MediaType.application("x-r"));
- types.add(MediaType.application("x-map"));
- types.add(MediaType.application("x-pnm"));
- types.add(MediaType.application("x-doq1"));
- types.add(MediaType.application("x-doq2"));
- types.add(MediaType.application("x-envi"));
- types.add(MediaType.application("x-envi-hdr"));
- types.add(MediaType.application("x-generic-bin"));
- types.add(MediaType.application("x-p-aux"));
- types.add(MediaType.image("x-mff"));
- types.add(MediaType.image("x-mff2"));
- types.add(MediaType.image("x-fujibas"));
- types.add(MediaType.application("x-gsc"));
- types.add(MediaType.application("x-fast"));
- types.add(MediaType.application("x-bt"));
- types.add(MediaType.application("x-lan"));
- types.add(MediaType.application("x-cpg"));
- types.add(MediaType.image("ida"));
- types.add(MediaType.application("x-ndf"));
- types.add(MediaType.image("eir"));
- types.add(MediaType.application("x-dipex"));
- types.add(MediaType.application("x-lcp"));
- types.add(MediaType.application("x-gtx"));
- types.add(MediaType.application("x-los-las"));
- types.add(MediaType.application("x-ntv2"));
- types.add(MediaType.application("x-ctable2"));
- types.add(MediaType.application("x-ace2"));
- types.add(MediaType.application("x-snodas"));
- types.add(MediaType.application("x-kro"));
- types.add(MediaType.image("arg"));
- types.add(MediaType.application("x-rik"));
- types.add(MediaType.application("x-usgs-dem"));
- types.add(MediaType.application("x-gxf"));
- types.add(MediaType.application("x-dods"));
- types.add(MediaType.application("x-http"));
- types.add(MediaType.application("x-bag"));
- types.add(MediaType.application("x-hdf"));
- types.add(MediaType.image("x-hdf5-image"));
- types.add(MediaType.application("x-nwt-grd"));
- types.add(MediaType.application("x-nwt-grc"));
- types.add(MediaType.image("adrg"));
- types.add(MediaType.image("x-srp"));
- types.add(MediaType.application("x-blx"));
- types.add(MediaType.application("x-rasterlite"));
- types.add(MediaType.application("x-epsilon"));
- types.add(MediaType.application("x-sdat"));
- types.add(MediaType.application("x-kml"));
- types.add(MediaType.application("x-xyz"));
- types.add(MediaType.application("x-geo-pdf"));
- types.add(MediaType.image("x-ozi"));
- types.add(MediaType.application("x-ctg"));
- types.add(MediaType.application("x-e00-grid"));
- types.add(MediaType.application("x-zmap"));
- types.add(MediaType.application("x-webp"));
- types.add(MediaType.application("x-ngs-geoid"));
- types.add(MediaType.application("x-mbtiles"));
- types.add(MediaType.application("x-ppi"));
- types.add(MediaType.application("x-cappi"));
- return types;
+ return SUPPORTED_TYPES;
}
@Override
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/xml/FictionBookParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/xml/FictionBookParser.java
index 0f3659b..0786252 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/xml/FictionBookParser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/xml/FictionBookParser.java
@@ -35,10 +35,12 @@ import org.xml.sax.helpers.DefaultHandler;
public class FictionBookParser extends XMLParser {
private static final long serialVersionUID = 4195954546491524374L;
-
+
+ private static final Set<MediaType> SUPPORTED_TYPES =
+ Collections.singleton(MediaType.application("x-fictionbook+xml"));
@Override
public Set<MediaType> getSupportedTypes(ParseContext context) {
- return Collections.singleton(MediaType.application("x-fictionbook+xml"));
+ return SUPPORTED_TYPES;
}
@Override