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 2026/01/29 11:46:47 UTC
(tika) 01/02: TIKA-4638 -- unify sax style configuration
This is an automated email from the ASF dual-hosted git repository.
tallison pushed a commit to branch TIKA-4638
in repository https://gitbox.apache.org/repos/asf/tika.git
commit 492183218d3acddd427bb271489fb7a09f25ba31
Author: tallison <ta...@apache.org>
AuthorDate: Thu Jan 29 06:44:44 2026 -0500
TIKA-4638 -- unify sax style configuration
---
.../ParsingEmbeddedDocumentExtractor.java | 18 +--
.../ParsingEmbeddedDocumentExtractorFactory.java | 11 +-
.../tika/extractor/RUnpackExtractorFactory.java | 9 --
.../java/org/apache/tika/parser/EmptyParser.java | 2 +-
.../tika/parser/external/ExternalParser.java | 2 +-
.../tika/parser/external2/ExternalParser.java | 2 +-
.../java/org/apache/tika/sax/SAXOutputConfig.java | 76 +++++++++++++
.../org/apache/tika/sax/XHTMLContentHandler.java | 87 +++++++++++----
.../apache/tika/sax/XHTMLContentHandlerTest.java | 123 +++++++++++++++++++++
.../org/apache/tika/example/RollbackSoftware.java | 2 +-
.../org/apache/custom/parser/MyCustomParser.java | 2 +-
.../apache/tika/parser/envi/EnviHeaderParser.java | 2 +-
.../org/apache/tika/parser/gdal/GDALParser.java | 8 +-
.../geoinfo/GeographicInformationParser.java | 2 +-
.../org/apache/tika/parser/grib/GribParser.java | 2 +-
.../java/org/apache/tika/parser/hdf/HDFParser.java | 2 +-
.../apache/tika/parser/isatab/ISArchiveParser.java | 2 +-
.../apache/tika/parser/netcdf/NetCDFParser.java | 2 +-
.../apache/tika/parser/ner/NamedEntityParser.java | 2 +-
.../parser/transcribe/aws/AmazonTranscribe.java | 2 +-
.../tika/parser/apple/AppleSingleFileParser.java | 2 +-
.../org/apache/tika/parser/apple/PListParser.java | 2 +-
.../tika/parser/iwork/IWorkPackageParser.java | 2 +-
.../parser/iwork/iwana/IWork13PackageParser.java | 2 +-
.../org/apache/tika/parser/audio/AudioParser.java | 2 +-
.../org/apache/tika/parser/audio/MidiParser.java | 2 +-
.../java/org/apache/tika/parser/mp3/Mp3Parser.java | 2 +-
.../java/org/apache/tika/parser/mp4/MP4Parser.java | 2 +-
.../org/apache/tika/parser/ogg/FlacParser.java | 2 +-
.../java/org/apache/tika/parser/ogg/OggParser.java | 2 +-
.../org/apache/tika/parser/ogg/OpusParser.java | 2 +-
.../org/apache/tika/parser/ogg/SpeexParser.java | 2 +-
.../org/apache/tika/parser/ogg/TheoraParser.java | 2 +-
.../org/apache/tika/parser/ogg/VorbisParser.java | 2 +-
.../org/apache/tika/parser/video/FLVParser.java | 2 +-
.../org/apache/tika/parser/dgn/DGN8Parser.java | 2 +-
.../java/org/apache/tika/parser/dwg/DWGParser.java | 2 +-
.../org/apache/tika/parser/dwg/DWGReadParser.java | 2 +-
.../java/org/apache/tika/parser/prt/PRTParser.java | 2 +-
.../org/apache/tika/parser/asm/ClassParser.java | 2 +-
.../apache/tika/parser/asm/XHTMLClassVisitor.java | 5 +-
.../apache/tika/parser/code/SourceCodeParser.java | 2 +-
.../tika/parser/executable/ExecutableParser.java | 2 +-
.../executable/UniversalExecutableParser.java | 2 +-
.../java/org/apache/tika/parser/mat/MatParser.java | 2 +-
.../org/apache/tika/parser/sas/SAS7BDATParser.java | 2 +-
.../org/apache/tika/parser/crypto/TSDParser.java | 2 +-
.../tika/parser/font/AdobeFontMetricParser.java | 2 +-
.../apache/tika/parser/font/TrueTypeParser.java | 2 +-
.../org/apache/tika/parser/html/HtmlHandler.java | 2 +-
.../tika/parser/image/AbstractImageParser.java | 4 +-
.../org/apache/tika/parser/image/ICNSParser.java | 2 +-
.../org/apache/tika/parser/image/PSDParser.java | 2 +-
.../org/apache/tika/parser/image/WebPParser.java | 2 +-
.../apache/tika/parser/jdbc/AbstractDBParser.java | 2 +-
.../org/apache/tika/parser/mail/RFC822Parser.java | 2 +-
.../org/apache/tika/parser/mbox/MboxParser.java | 2 +-
.../apache/tika/parser/microsoft/EMFParser.java | 2 +-
.../tika/parser/microsoft/JackcessParser.java | 2 +-
.../tika/parser/microsoft/MSOwnerFileParser.java | 2 +-
.../apache/tika/parser/microsoft/OfficeParser.java | 2 +-
.../tika/parser/microsoft/OldExcelParser.java | 2 +-
.../apache/tika/parser/microsoft/TNEFParser.java | 2 +-
.../apache/tika/parser/microsoft/WMFParser.java | 2 +-
.../microsoft/activemime/ActiveMimeParser.java | 2 +-
.../tika/parser/microsoft/chm/ChmParser.java | 2 +-
.../tika/parser/microsoft/libpst/LibPstParser.java | 2 +-
.../parser/microsoft/onenote/OneNoteParser.java | 2 +-
.../microsoft/ooxml/AbstractOOXMLExtractor.java | 2 +-
.../ooxml/xwpf/ml2006/Word2006MLParser.java | 2 +-
.../parser/microsoft/pst/OutlookPSTParser.java | 2 +-
.../parser/microsoft/pst/PSTMailItemParser.java | 2 +-
.../tika/parser/microsoft/rtf/RTFParser.java | 2 +-
.../microsoft/xml/AbstractXML2003Parser.java | 2 +-
.../java/org/apache/tika/parser/dbf/DBFParser.java | 2 +-
.../java/org/apache/tika/parser/dif/DIFParser.java | 2 +-
.../org/apache/tika/parser/epub/EpubParser.java | 2 +-
.../org/apache/tika/parser/hwp/HwpV5Parser.java | 2 +-
.../apache/tika/parser/indesign/IDMLParser.java | 2 +-
.../java/org/apache/tika/parser/mif/MIFParser.java | 2 +-
.../tika/parser/odf/FlatOpenDocumentParser.java | 2 +-
.../tika/parser/odf/OpenDocumentContentParser.java | 2 +-
.../apache/tika/parser/odf/OpenDocumentParser.java | 2 +-
.../tika/parser/wordperfect/QuattroProParser.java | 2 +-
.../tika/parser/wordperfect/WordPerfectParser.java | 2 +-
.../org/apache/tika/parser/feed/FeedParser.java | 2 +-
.../apache/tika/parser/iptc/IptcAnpaParser.java | 2 +-
.../apache/tika/parser/ocr/TesseractOCRParser.java | 2 +-
.../apache/tika/parser/pdf/AbstractPDF2XHTML.java | 2 +-
.../java/org/apache/tika/parser/pdf/PDFParser.java | 2 +-
.../apache/tika/parser/pkg/CompressorParser.java | 2 +-
.../org/apache/tika/parser/pkg/PackageParser.java | 2 +-
.../java/org/apache/tika/parser/pkg/RarParser.java | 2 +-
.../org/apache/tika/parser/pkg/UnrarParser.java | 2 +-
.../apache/tika/parser/csv/TextAndCSVParser.java | 8 +-
.../tika/parser/strings/Latin1StringsParser.java | 2 +-
.../apache/tika/parser/strings/StringsParser.java | 2 +-
.../java/org/apache/tika/parser/txt/TXTParser.java | 2 +-
.../org/apache/tika/parser/http/HttpParser.java | 2 +-
.../org/apache/tika/parser/wacz/WACZParser.java | 2 +-
.../org/apache/tika/parser/warc/WARCParser.java | 2 +-
.../java/org/apache/tika/parser/tmx/TMXParser.java | 2 +-
.../apache/tika/parser/xliff/XLIFF12Parser.java | 2 +-
.../org/apache/tika/parser/xliff/XLZParser.java | 2 +-
.../java/org/apache/tika/parser/xml/XMLParser.java | 2 +-
.../tika/parser/AutoDetectReaderParserTest.java | 2 +-
.../resources/configs/tika-config-no-names.json | 1 -
...a-config-upcasing-custom-handler-decorator.json | 1 -
.../resources/configs/tika-config-with-names.json | 1 -
.../resources/configs/tika-config-truncate.json | 1 -
.../org/apache/tika/config/loader/TikaLoader.java | 7 ++
.../configs/TIKA-4207-embedded-bytes-config.json | 1 -
112 files changed, 389 insertions(+), 164 deletions(-)
diff --git a/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java b/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java
index 4b1e406183..8639d04594 100644
--- a/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java
+++ b/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractor.java
@@ -38,6 +38,7 @@ import org.apache.tika.parser.ParseRecord;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;
import org.apache.tika.sax.EmbeddedContentHandler;
+import org.apache.tika.sax.SAXOutputConfig;
/**
* Helper class for parsers of package archives or other compound document
@@ -51,8 +52,6 @@ public class ParsingEmbeddedDocumentExtractor implements EmbeddedDocumentExtract
private static final Parser DELEGATING_PARSER = new DelegatingParser();
- private boolean writeFileNameToContent = true;
-
protected final ParseContext context;
public ParsingEmbeddedDocumentExtractor(ParseContext context) {
@@ -102,7 +101,7 @@ public class ParsingEmbeddedDocumentExtractor implements EmbeddedDocumentExtract
}
String name = metadata.get(TikaCoreProperties.RESOURCE_NAME_KEY);
- if (writeFileNameToContent && name != null && name.length() > 0 && outputHtml) {
+ if (isWriteFileNameToContent() && name != null && name.length() > 0 && outputHtml) {
handler.startElement(XHTML, "h1", "h1", new AttributesImpl());
char[] chars = name.toCharArray();
handler.characters(chars, 0, chars.length);
@@ -143,11 +142,14 @@ public class ParsingEmbeddedDocumentExtractor implements EmbeddedDocumentExtract
return DELEGATING_PARSER;
}
- public void setWriteFileNameToContent(boolean writeFileNameToContent) {
- this.writeFileNameToContent = writeFileNameToContent;
- }
-
+ /**
+ * Returns whether to write file names to content based on {@link SAXOutputConfig}
+ * in the ParseContext. Defaults to {@code true} if no config is present.
+ *
+ * @return true if file names should be written to content
+ */
public boolean isWriteFileNameToContent() {
- return writeFileNameToContent;
+ SAXOutputConfig config = context.get(SAXOutputConfig.class);
+ return config == null || config.isWriteFileNameToContent();
}
}
diff --git a/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractorFactory.java b/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractorFactory.java
index 4dabadcd18..1cc53da2df 100644
--- a/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractorFactory.java
+++ b/tika-core/src/main/java/org/apache/tika/extractor/ParsingEmbeddedDocumentExtractorFactory.java
@@ -24,17 +24,8 @@ import org.apache.tika.parser.ParseContext;
public class ParsingEmbeddedDocumentExtractorFactory
implements EmbeddedDocumentExtractorFactory {
- private boolean writeFileNameToContent = true;
-
- public void setWriteFileNameToContent(boolean writeFileNameToContent) {
- this.writeFileNameToContent = writeFileNameToContent;
- }
-
@Override
public EmbeddedDocumentExtractor newInstance(Metadata metadata, ParseContext parseContext) {
- ParsingEmbeddedDocumentExtractor ex =
- new ParsingEmbeddedDocumentExtractor(parseContext);
- ex.setWriteFileNameToContent(writeFileNameToContent);
- return ex;
+ return new ParsingEmbeddedDocumentExtractor(parseContext);
}
}
diff --git a/tika-core/src/main/java/org/apache/tika/extractor/RUnpackExtractorFactory.java b/tika-core/src/main/java/org/apache/tika/extractor/RUnpackExtractorFactory.java
index fb68f183ab..858e8e61f7 100644
--- a/tika-core/src/main/java/org/apache/tika/extractor/RUnpackExtractorFactory.java
+++ b/tika-core/src/main/java/org/apache/tika/extractor/RUnpackExtractorFactory.java
@@ -29,16 +29,12 @@ public class RUnpackExtractorFactory implements EmbeddedDocumentByteStoreExtract
public static long DEFAULT_MAX_EMBEDDED_BYTES_FOR_EXTRACTION = 10l * 1024l * 1024l * 1024l;
- private boolean writeFileNameToContent = true;
private Set<String> embeddedBytesIncludeMimeTypes = new HashSet<>();
private Set<String> embeddedBytesExcludeMimeTypes = new HashSet<>();
private Set<String> embeddedBytesIncludeEmbeddedResourceTypes = new HashSet<>();
private Set<String> embeddedBytesExcludeEmbeddedResourceTypes = new HashSet<>();
private long maxEmbeddedBytesForExtraction = DEFAULT_MAX_EMBEDDED_BYTES_FOR_EXTRACTION;
- public void setWriteFileNameToContent(boolean writeFileNameToContent) {
- this.writeFileNameToContent = writeFileNameToContent;
- }
public void setEmbeddedBytesIncludeMimeTypes(Set<String> includeMimeTypes) {
embeddedBytesIncludeMimeTypes = new HashSet<>(includeMimeTypes);
@@ -72,10 +68,6 @@ public class RUnpackExtractorFactory implements EmbeddedDocumentByteStoreExtract
this.maxEmbeddedBytesForExtraction = maxEmbeddedBytesForExtraction;
}
- public boolean isWriteFileNameToContent() {
- return writeFileNameToContent;
- }
-
public Set<String> getEmbeddedBytesIncludeMimeTypes() {
return embeddedBytesIncludeMimeTypes;
}
@@ -101,7 +93,6 @@ public class RUnpackExtractorFactory implements EmbeddedDocumentByteStoreExtract
RUnpackExtractor ex =
new RUnpackExtractor(parseContext,
maxEmbeddedBytesForExtraction);
- ex.setWriteFileNameToContent(writeFileNameToContent);
ex.setEmbeddedBytesSelector(createEmbeddedBytesSelector());
return ex;
}
diff --git a/tika-core/src/main/java/org/apache/tika/parser/EmptyParser.java b/tika-core/src/main/java/org/apache/tika/parser/EmptyParser.java
index 1da391f2bd..412dde5d54 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/EmptyParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/EmptyParser.java
@@ -50,7 +50,7 @@ public class EmptyParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws SAXException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.endDocument();
}
diff --git a/tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java b/tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java
index 00e04c1542..38d4f61563 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/external/ExternalParser.java
@@ -267,7 +267,7 @@ public class ExternalParser implements Parser {
*/
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
TemporaryResources tmp = new TemporaryResources();
try {
diff --git a/tika-core/src/main/java/org/apache/tika/parser/external2/ExternalParser.java b/tika-core/src/main/java/org/apache/tika/parser/external2/ExternalParser.java
index 536da8dd41..25abd588d3 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/external2/ExternalParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/external2/ExternalParser.java
@@ -164,7 +164,7 @@ public class ExternalParser implements Parser {
if (config.isReturnStderr()) {
metadata.set(ExternalProcess.STD_ERR, result.getStderr());
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
handleOutput(result, outFile, xhtml, metadata, context);
xhtml.endDocument();
diff --git a/tika-core/src/main/java/org/apache/tika/sax/SAXOutputConfig.java b/tika-core/src/main/java/org/apache/tika/sax/SAXOutputConfig.java
new file mode 100644
index 0000000000..b85e1b1fd8
--- /dev/null
+++ b/tika-core/src/main/java/org/apache/tika/sax/SAXOutputConfig.java
@@ -0,0 +1,76 @@
+/*
+ * 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.
+ */
+package org.apache.tika.sax;
+
+import java.io.Serializable;
+
+/**
+ * Configuration for SAX output behavior.
+ * <p>
+ * This can be stored in a {@link org.apache.tika.parser.ParseContext} to control
+ * how content handlers and embedded document extractors generate output.
+ * </p>
+ */
+public class SAXOutputConfig implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Whether to write metadata as <meta> elements in the XHTML head.
+ * Default is {@code true} for backward compatibility.
+ */
+ private boolean writeMetadataToHead = true;
+
+ /**
+ * Whether to include the <title> element in the XHTML head.
+ * Default is {@code true} for backward compatibility.
+ */
+ private boolean includeTitle = true;
+
+ /**
+ * Whether to write embedded file names to content (e.g., as <h1> elements).
+ * Default is {@code true} for backward compatibility.
+ */
+ private boolean writeFileNameToContent = true;
+
+ public SAXOutputConfig() {
+ }
+
+ public boolean isWriteMetadataToHead() {
+ return writeMetadataToHead;
+ }
+
+ public void setWriteMetadataToHead(boolean writeMetadataToHead) {
+ this.writeMetadataToHead = writeMetadataToHead;
+ }
+
+ public boolean isIncludeTitle() {
+ return includeTitle;
+ }
+
+ public void setIncludeTitle(boolean includeTitle) {
+ this.includeTitle = includeTitle;
+ }
+
+ public boolean isWriteFileNameToContent() {
+ return writeFileNameToContent;
+ }
+
+ public void setWriteFileNameToContent(boolean writeFileNameToContent) {
+ this.writeFileNameToContent = writeFileNameToContent;
+ }
+}
diff --git a/tika-core/src/main/java/org/apache/tika/sax/XHTMLContentHandler.java b/tika-core/src/main/java/org/apache/tika/sax/XHTMLContentHandler.java
index 6ba4232205..bae8c4b885 100644
--- a/tika-core/src/main/java/org/apache/tika/sax/XHTMLContentHandler.java
+++ b/tika-core/src/main/java/org/apache/tika/sax/XHTMLContentHandler.java
@@ -28,6 +28,7 @@ import org.xml.sax.helpers.AttributesImpl;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.metadata.TikaCoreProperties;
+import org.apache.tika.parser.ParseContext;
/**
* Content handler decorator that simplifies the task of producing XHTML
@@ -75,6 +76,14 @@ public class XHTMLContentHandler extends SafeContentHandler {
* <head/> section.
*/
private final Metadata metadata;
+ /**
+ * Whether to write metadata as meta elements in the head.
+ */
+ private final boolean writeMetadataToHead;
+ /**
+ * Whether to include the title element in the head.
+ */
+ private final boolean includeTitle;
/**
* Flag to indicate whether the document has been started.
*/
@@ -85,9 +94,35 @@ public class XHTMLContentHandler extends SafeContentHandler {
private boolean headStarted = false;
private boolean headEnded = false;
private boolean useFrameset = false;
+
public XHTMLContentHandler(ContentHandler handler, Metadata metadata) {
+ this(handler, metadata, null);
+ }
+
+ /**
+ * Creates a new XHTMLContentHandler with configuration from ParseContext.
+ * <p>
+ * If a {@link SAXOutputConfig} is present in the ParseContext,
+ * its settings will be used to control output behavior.
+ *
+ * @param handler the content handler to wrap
+ * @param metadata metadata associated with the document
+ * @param parseContext parse context containing optional configuration
+ */
+ public XHTMLContentHandler(ContentHandler handler, Metadata metadata,
+ ParseContext parseContext) {
super(handler);
this.metadata = metadata;
+ SAXOutputConfig config = parseContext != null
+ ? parseContext.get(SAXOutputConfig.class)
+ : null;
+ if (config != null) {
+ this.writeMetadataToHead = config.isWriteMetadataToHead();
+ this.includeTitle = config.isIncludeTitle();
+ } else {
+ this.writeMetadataToHead = true;
+ this.includeTitle = true;
+ }
}
private static Set<String> unmodifiableSet(String... elements) {
@@ -156,36 +191,40 @@ public class XHTMLContentHandler extends SafeContentHandler {
// TIKA-478: Emit all metadata values (other than title). We have to call
// startElement() and characters() directly to avoid recursive problems.
- for (String name : metadata.names()) {
- if (name.equals("title")) {
- continue;
- }
+ if (writeMetadataToHead) {
+ for (String name : metadata.names()) {
+ if (name.equals("title")) {
+ continue;
+ }
- for (String value : metadata.getValues(name)) {
- // Putting null values into attributes causes problems, but is
- // allowed by Metadata, so guard against that.
- if (value != null) {
- AttributesImpl attributes = new AttributesImpl();
- attributes.addAttribute("", "name", "name", "CDATA", name);
- attributes.addAttribute("", "content", "content", "CDATA", value);
- super.startElement(XHTML, "meta", "meta", attributes);
- super.endElement(XHTML, "meta", "meta");
- newline();
+ for (String value : metadata.getValues(name)) {
+ // Putting null values into attributes causes problems, but is
+ // allowed by Metadata, so guard against that.
+ if (value != null) {
+ AttributesImpl attributes = new AttributesImpl();
+ attributes.addAttribute("", "name", "name", "CDATA", name);
+ attributes.addAttribute("", "content", "content", "CDATA", value);
+ super.startElement(XHTML, "meta", "meta", attributes);
+ super.endElement(XHTML, "meta", "meta");
+ newline();
+ }
}
}
}
- super.startElement(XHTML, "title", "title", EMPTY_ATTRIBUTES);
- String title = metadata.get(TikaCoreProperties.TITLE);
- if (title != null && title.length() > 0) {
- char[] titleChars = title.toCharArray();
- super.characters(titleChars, 0, titleChars.length);
- } else {
- // TIKA-725: Prefer <title></title> over <title/>
- super.characters(new char[0], 0, 0);
+ if (includeTitle) {
+ super.startElement(XHTML, "title", "title", EMPTY_ATTRIBUTES);
+ String title = metadata.get(TikaCoreProperties.TITLE);
+ if (title != null && title.length() > 0) {
+ char[] titleChars = title.toCharArray();
+ super.characters(titleChars, 0, titleChars.length);
+ } else {
+ // TIKA-725: Prefer <title></title> over <title/>
+ super.characters(new char[0], 0, 0);
+ }
+ super.endElement(XHTML, "title", "title");
+ newline();
}
- super.endElement(XHTML, "title", "title");
- newline();
super.endElement(XHTML, "head", "head");
newline();
diff --git a/tika-core/src/test/java/org/apache/tika/sax/XHTMLContentHandlerTest.java b/tika-core/src/test/java/org/apache/tika/sax/XHTMLContentHandlerTest.java
index 136c62b0c0..4812bfd719 100644
--- a/tika-core/src/test/java/org/apache/tika/sax/XHTMLContentHandlerTest.java
+++ b/tika-core/src/test/java/org/apache/tika/sax/XHTMLContentHandlerTest.java
@@ -29,6 +29,8 @@ import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
import org.apache.tika.metadata.Metadata;
+import org.apache.tika.metadata.TikaCoreProperties;
+import org.apache.tika.parser.ParseContext;
/**
* Unit tests for the {@link XHTMLContentHandler} class.
@@ -218,4 +220,125 @@ public class XHTMLContentHandlerTest {
assertEquals("a\ufffdz", words[0]);
}
+ @Test
+ public void testDefaultConfigIncludesMetadataAndTitle() throws Exception {
+ Metadata metadata = new Metadata();
+ metadata.set(TikaCoreProperties.TITLE, "Test Title");
+ metadata.set("author", "Test Author");
+
+ ToHTMLContentHandler toHTMLContentHandler = new ToHTMLContentHandler();
+ XHTMLContentHandler xhtmlHandler = new XHTMLContentHandler(toHTMLContentHandler, metadata);
+
+ xhtmlHandler.startDocument();
+ xhtmlHandler.element("p", "content");
+ xhtmlHandler.endDocument();
+
+ String result = toHTMLContentHandler.toString();
+ assertTrue(result.contains("<title>Test Title</title>"), "Should contain title");
+ assertTrue(result.contains("<meta name=\"author\" content=\"Test Author\""),
+ "Should contain metadata");
+ }
+
+ @Test
+ public void testConfigSkipMetadataInHead() throws Exception {
+ Metadata metadata = new Metadata();
+ metadata.set(TikaCoreProperties.TITLE, "Test Title");
+ metadata.set("author", "Test Author");
+
+ SAXOutputConfig config = new SAXOutputConfig();
+ config.setWriteMetadataToHead(false);
+
+ ParseContext context = new ParseContext();
+ context.set(SAXOutputConfig.class, config);
+
+ ToHTMLContentHandler toHTMLContentHandler = new ToHTMLContentHandler();
+ XHTMLContentHandler xhtmlHandler =
+ new XHTMLContentHandler(toHTMLContentHandler, metadata, context);
+
+ xhtmlHandler.startDocument();
+ xhtmlHandler.element("p", "content");
+ xhtmlHandler.endDocument();
+
+ String result = toHTMLContentHandler.toString();
+ assertTrue(result.contains("<title>Test Title</title>"), "Should still contain title");
+ assertTrue(!result.contains("<meta name=\"author\""),
+ "Should NOT contain metadata");
+ }
+
+ @Test
+ public void testConfigSkipTitle() throws Exception {
+ Metadata metadata = new Metadata();
+ metadata.set(TikaCoreProperties.TITLE, "Test Title");
+ metadata.set("author", "Test Author");
+
+ SAXOutputConfig config = new SAXOutputConfig();
+ config.setIncludeTitle(false);
+
+ ParseContext context = new ParseContext();
+ context.set(SAXOutputConfig.class, config);
+
+ ToHTMLContentHandler toHTMLContentHandler = new ToHTMLContentHandler();
+ XHTMLContentHandler xhtmlHandler =
+ new XHTMLContentHandler(toHTMLContentHandler, metadata, context);
+
+ xhtmlHandler.startDocument();
+ xhtmlHandler.element("p", "content");
+ xhtmlHandler.endDocument();
+
+ String result = toHTMLContentHandler.toString();
+ assertTrue(!result.contains("<title>"), "Should NOT contain title");
+ assertTrue(result.contains("<meta name=\"author\" content=\"Test Author\""),
+ "Should still contain metadata");
+ }
+
+ @Test
+ public void testConfigSkipBothMetadataAndTitle() throws Exception {
+ Metadata metadata = new Metadata();
+ metadata.set(TikaCoreProperties.TITLE, "Test Title");
+ metadata.set("author", "Test Author");
+
+ SAXOutputConfig config = new SAXOutputConfig();
+ config.setWriteMetadataToHead(false);
+ config.setIncludeTitle(false);
+
+ ParseContext context = new ParseContext();
+ context.set(SAXOutputConfig.class, config);
+
+ ToHTMLContentHandler toHTMLContentHandler = new ToHTMLContentHandler();
+ XHTMLContentHandler xhtmlHandler =
+ new XHTMLContentHandler(toHTMLContentHandler, metadata, context);
+
+ xhtmlHandler.startDocument();
+ xhtmlHandler.element("p", "content");
+ xhtmlHandler.endDocument();
+
+ String result = toHTMLContentHandler.toString();
+ assertTrue(!result.contains("<title>"), "Should NOT contain title");
+ assertTrue(!result.contains("<meta name=\"author\""),
+ "Should NOT contain metadata");
+ assertTrue(result.contains("<head>") && result.contains("</head>"),
+ "Should still have head element");
+ assertTrue(result.contains("content"), "Should have body content");
+ }
+
+ @Test
+ public void testNullParseContextUsesDefaults() throws Exception {
+ Metadata metadata = new Metadata();
+ metadata.set(TikaCoreProperties.TITLE, "Test Title");
+ metadata.set("author", "Test Author");
+
+ ToHTMLContentHandler toHTMLContentHandler = new ToHTMLContentHandler();
+ XHTMLContentHandler xhtmlHandler =
+ new XHTMLContentHandler(toHTMLContentHandler, metadata, null);
+
+ xhtmlHandler.startDocument();
+ xhtmlHandler.element("p", "content");
+ xhtmlHandler.endDocument();
+
+ String result = toHTMLContentHandler.toString();
+ assertTrue(result.contains("<title>Test Title</title>"), "Should contain title");
+ assertTrue(result.contains("<meta name=\"author\" content=\"Test Author\""),
+ "Should contain metadata");
+ }
+
}
diff --git a/tika-example/src/main/java/org/apache/tika/example/RollbackSoftware.java b/tika-example/src/main/java/org/apache/tika/example/RollbackSoftware.java
index 2ff8eddcee..cc9aef8f47 100755
--- a/tika-example/src/main/java/org/apache/tika/example/RollbackSoftware.java
+++ b/tika-example/src/main/java/org/apache/tika/example/RollbackSoftware.java
@@ -114,7 +114,7 @@ public class RollbackSoftware {
.getName()
.startsWith("current"));
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
for (File v : versions) {
if (isSymlink(v)) {
diff --git a/tika-integration-tests/tika-resource-loading-tests/src/test/java/org/apache/custom/parser/MyCustomParser.java b/tika-integration-tests/tika-resource-loading-tests/src/test/java/org/apache/custom/parser/MyCustomParser.java
index 1bb9bb0ba8..72c7bb5c89 100644
--- a/tika-integration-tests/tika-resource-loading-tests/src/test/java/org/apache/custom/parser/MyCustomParser.java
+++ b/tika-integration-tests/tika-resource-loading-tests/src/test/java/org/apache/custom/parser/MyCustomParser.java
@@ -41,7 +41,7 @@ public class MyCustomParser implements Parser {
@Override
public void parse(TikaInputStream stream, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.startElement("p");
xhtml.characters("my custom parser");
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/envi/EnviHeaderParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/envi/EnviHeaderParser.java
index 6561f946c6..e718a74b8b 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/envi/EnviHeaderParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/envi/EnviHeaderParser.java
@@ -80,7 +80,7 @@ public class EnviHeaderParser extends AbstractEncodingDetectorParser {
Charset charset = reader.getCharset();
// deprecated, see TIKA-431
metadata.set(Metadata.CONTENT_ENCODING, charset.name());
- xhtml = new XHTMLContentHandler(handler, metadata);
+ xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
readLines(reader, metadata);
xhtml.endDocument();
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/gdal/GDALParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
index 8d964e0cce..12a9d9799a 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/gdal/GDALParser.java
@@ -225,7 +225,7 @@ public class GDALParser implements Parser {
// make the content handler and provide output there
// now that we have metadata
- processOutput(handler, metadata, output);
+ processOutput(handler, metadata, output, context);
}
private Map<Pattern, String> getPatterns() {
@@ -313,9 +313,9 @@ public class GDALParser implements Parser {
}
}
- private void processOutput(ContentHandler handler, Metadata metadata, String output)
- throws SAXException, IOException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ private void processOutput(ContentHandler handler, Metadata metadata, String output,
+ ParseContext context) throws SAXException, IOException {
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
try (Reader reader = new StringReader(output)) {
xhtml.startDocument();
xhtml.startElement("p");
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java
index 66064e7eb7..b9892775ff 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/geoinfo/GeographicInformationParser.java
@@ -88,7 +88,7 @@ public class GeographicInformationParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler contentHandler, Metadata metadata,
ParseContext parseContext) throws IOException, SAXException, TikaException {
metadata.set(Metadata.CONTENT_TYPE, geoInfoType);
- XHTMLContentHandler xhtmlContentHandler = new XHTMLContentHandler(contentHandler, metadata);
+ XHTMLContentHandler xhtmlContentHandler = new XHTMLContentHandler(contentHandler, metadata, parseContext);
TemporaryResources tmp = null;
try (tis) {
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/grib/GribParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/grib/GribParser.java
index ea5dd14442..efad705f66 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/grib/GribParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/grib/GribParser.java
@@ -83,7 +83,7 @@ public class GribParser implements Parser {
}
}
- xhtml = new XHTMLContentHandler(handler, metadata);
+ xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/hdf/HDFParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/hdf/HDFParser.java
index a98f743a67..7adc349e59 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/hdf/HDFParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/hdf/HDFParser.java
@@ -94,7 +94,7 @@ public class HDFParser implements Parser {
throw new TikaException("HDF parse error", e);
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.endDocument();
}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/isatab/ISArchiveParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/isatab/ISArchiveParser.java
index e0d5f25e45..85baa72d03 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/isatab/ISArchiveParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/isatab/ISArchiveParser.java
@@ -91,7 +91,7 @@ public class ISArchiveParser implements Parser {
File locationFile = new File(location);
String[] investigationList = locationFile.list((dir, name) -> name.matches("i_.+\\.txt"));
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
parseInvestigation(investigationList, xhtml, metadata, context);
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
index 306d196848..f19caee923 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-module/src/main/java/org/apache/tika/parser/netcdf/NetCDFParser.java
@@ -94,7 +94,7 @@ public class NetCDFParser implements Parser {
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.newline();
xhtml.element("h1", "dimensions");
diff --git a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/NamedEntityParser.java b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/NamedEntityParser.java
index 5f951eba7f..9aa75462e6 100644
--- a/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/NamedEntityParser.java
+++ b/tika-parsers/tika-parsers-ml/tika-parser-nlp-module/src/main/java/org/apache/tika/parser/ner/NamedEntityParser.java
@@ -143,7 +143,7 @@ public class NamedEntityParser implements Parser {
}
}
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(contentHandler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(contentHandler, metadata, parseContext);
extractOutput(text.trim(), xhtml);
}
diff --git a/tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/main/java/org/apache/tika/parser/transcribe/aws/AmazonTranscribe.java b/tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/main/java/org/apache/tika/parser/transcribe/aws/AmazonTranscribe.java
index b741fb6b86..b69ebc7035 100644
--- a/tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/main/java/org/apache/tika/parser/transcribe/aws/AmazonTranscribe.java
+++ b/tika-parsers/tika-parsers-ml/tika-transcribe-aws/src/main/java/org/apache/tika/parser/transcribe/aws/AmazonTranscribe.java
@@ -153,7 +153,7 @@ public class AmazonTranscribe implements Parser, Initializable {
startTranscriptionJobRequest = startTranscriptionJobRequest.toBuilder().identifyLanguage(true).build();
}
amazonTranscribeAsync.startTranscriptionJob(startTranscriptionJobRequest);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
String text = getTranscriptText(jobName);
xhtml.startElement("p");
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/AppleSingleFileParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/AppleSingleFileParser.java
index d01e452e83..28a83569ab 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/AppleSingleFileParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/AppleSingleFileParser.java
@@ -93,7 +93,7 @@ public class AppleSingleFileParser implements Parser {
Metadata embeddedMetadata = context.newMetadata();
bytesRead = processFieldEntries(tis, fieldInfoList, embeddedMetadata, bytesRead);
FieldInfo contentFieldInfo = getContentFieldInfo(fieldInfoList);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
if (contentFieldInfo != null) {
long diff = contentFieldInfo.offset - bytesRead;
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/PListParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/PListParser.java
index 05af800ac2..d6a0b1e9c7 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/PListParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/apple/PListParser.java
@@ -119,7 +119,7 @@ public class PListParser implements Parser {
metadata.set(Metadata.CONTENT_TYPE, subtype.toString());
}
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
State state = new State(xhtml, metadata, embeddedDocumentExtractor, df, context);
xhtml.startDocument();
xhtml.startElement(PLIST);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
index 1591ad2fb2..7c1e2be25b 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/IWorkPackageParser.java
@@ -103,7 +103,7 @@ public class IWorkPackageParser implements Parser {
entryStream.reset(); // 4096 fails on github
if (type != null) {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
ContentHandler contentHandler;
switch (type) {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/iwana/IWork13PackageParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/iwana/IWork13PackageParser.java
index ed1de8f3bc..bf0f151b6c 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/iwana/IWork13PackageParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-apple-module/src/main/java/org/apache/tika/parser/iwork/iwana/IWork13PackageParser.java
@@ -94,7 +94,7 @@ public class IWork13PackageParser implements Parser {
} else {
zipStream = new ZipInputStream(tis);
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
MediaType type = null;
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/AudioParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/AudioParser.java
index 1fc9a7c53b..de9b3f212e 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/AudioParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/AudioParser.java
@@ -130,7 +130,7 @@ public class AudioParser implements Parser {
UNSUPPORTED_AUDIO_FILE_EXCEPTION);
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.endDocument();
}
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/MidiParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/MidiParser.java
index 4480146481..e4c7cbb50b 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/MidiParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/audio/MidiParser.java
@@ -63,7 +63,7 @@ public class MidiParser implements Parser {
ParseContext context) throws IOException, SAXException, TikaException {
metadata.set(Metadata.CONTENT_TYPE, "audio/midi");
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// TikaInputStream always supports mark
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java
index 948dba2ebc..127f473e87 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java
@@ -146,7 +146,7 @@ public class Mp3Parser implements Parser {
metadata.set(Metadata.CONTENT_TYPE, "audio/mpeg");
metadata.set(XMPDM.AUDIO_COMPRESSOR, "MP3");
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
// Create handlers for the various kinds of ID3 tags
ID3TagsAndAudio audioAndTags = getAllTagHandlers(tis, handler);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
index 687276f6c5..a8cfd9af24 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/mp4/MP4Parser.java
@@ -97,7 +97,7 @@ public class MP4Parser implements Parser {
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
com.drew.metadata.Metadata mp4Metadata = new com.drew.metadata.Metadata();
Mp4BoxHandler boxHandler = new TikaMp4BoxHandler(mp4Metadata, metadata, xhtml);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/FlacParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/FlacParser.java
index 23ff660fe6..1c70315499 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/FlacParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/FlacParser.java
@@ -68,7 +68,7 @@ public class FlacParser extends AbstractParser {
FlacFile flac = FlacFile.open(tis);
// Start
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// Extract the common FLAC info
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/OggParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/OggParser.java
index 9d03be1fe7..48013dc93f 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/OggParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/OggParser.java
@@ -106,7 +106,7 @@ public class OggParser extends AbstractParser {
int totalStreams = 0;
// Start
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// Check the streams in turn
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/OpusParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/OpusParser.java
index 184184629d..46e808d549 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/OpusParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/OpusParser.java
@@ -69,7 +69,7 @@ public class OpusParser extends OggAudioParser {
OpusFile opus = new OpusFile(ogg);
// Start
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// Extract the common Opus info
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/SpeexParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/SpeexParser.java
index cc15b235e0..877898f308 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/SpeexParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/SpeexParser.java
@@ -69,7 +69,7 @@ public class SpeexParser extends OggAudioParser {
SpeexFile speex = new SpeexFile(ogg);
// Start
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// Extract the common Speex info
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/TheoraParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/TheoraParser.java
index 0838ba34cb..61f20f6c18 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/TheoraParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/TheoraParser.java
@@ -70,7 +70,7 @@ public class TheoraParser extends AbstractParser {
TheoraFile theora = new TheoraFile(ogg);
// Start
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// Extract the common Theora info
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/VorbisParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/VorbisParser.java
index 2daee53341..3fb0789796 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/VorbisParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/ogg/VorbisParser.java
@@ -67,7 +67,7 @@ public class VorbisParser extends OggAudioParser {
VorbisFile vorbis = new VorbisFile(ogg);
// Start
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// Extract the common Vorbis info
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/video/FLVParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/video/FLVParser.java
index 9cae569a8c..d438872b72 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/video/FLVParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-audiovideo-module/src/main/java/org/apache/tika/parser/video/FLVParser.java
@@ -198,7 +198,7 @@ public class FLVParser implements Parser {
metadata.set("hasVideo", Boolean.toString((typeFlags & MASK_VIDEO) != 0));
metadata.set("hasAudio", Boolean.toString((typeFlags & MASK_AUDIO) != 0));
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// flv tag stream follows...
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dgn/DGN8Parser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dgn/DGN8Parser.java
index b235335687..fa7597137d 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dgn/DGN8Parser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dgn/DGN8Parser.java
@@ -51,7 +51,7 @@ public class DGN8Parser implements Parser {
@Override
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
SummaryExtractor summaryExtractor = new SummaryExtractor(metadata);
final DirectoryNode root;
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGParser.java
index d8e085bf55..925c7fcb49 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGParser.java
@@ -105,7 +105,7 @@ public class DWGParser extends AbstractDWGParser {
IOUtils.readFully(tis, header);
String version = new String(header, 0, 6, "US-ASCII");
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
switch (version) {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGReadParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGReadParser.java
index 2ad4196090..098969c7c9 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGReadParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/dwg/DWGReadParser.java
@@ -101,7 +101,7 @@ public class DWGReadParser extends AbstractDWGParser {
configure(context);
DWGParserConfig dwgc = context.get(DWGParserConfig.class);
- final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// create unique files so we avoid overwriting out files if multithreaded
UUID uuid = UUID.randomUUID();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/prt/PRTParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/prt/PRTParser.java
index 8fd33eea63..676575ce40 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/prt/PRTParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-cad-module/src/main/java/org/apache/tika/parser/prt/PRTParser.java
@@ -76,7 +76,7 @@ public class PRTParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
Last5 l5 = new Last5();
int read;
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/ClassParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/ClassParser.java
index d06f3dcd5d..bb42da272b 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/ClassParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/ClassParser.java
@@ -51,7 +51,7 @@ public class ClassParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- new XHTMLClassVisitor(handler, metadata).parse(tis);
+ new XHTMLClassVisitor(handler, metadata, context).parse(tis);
}
}
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
index b78d753863..375331b036 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/asm/XHTMLClassVisitor.java
@@ -35,6 +35,7 @@ import org.apache.tika.exception.TikaException;
import org.apache.tika.exception.WriteLimitReachedException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.metadata.TikaCoreProperties;
+import org.apache.tika.parser.ParseContext;
import org.apache.tika.sax.XHTMLContentHandler;
/**
@@ -51,9 +52,9 @@ class XHTMLClassVisitor extends ClassVisitor {
private String packageName;
- public XHTMLClassVisitor(ContentHandler handler, Metadata metadata) {
+ public XHTMLClassVisitor(ContentHandler handler, Metadata metadata, ParseContext context) {
super(Opcodes.ASM9);
- this.xhtml = new XHTMLContentHandler(handler, metadata);
+ this.xhtml = new XHTMLContentHandler(handler, metadata, context);
this.metadata = metadata;
}
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/code/SourceCodeParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/code/SourceCodeParser.java
index 6fc2ad7aa3..e5ef13da29 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/code/SourceCodeParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/code/SourceCodeParser.java
@@ -129,7 +129,7 @@ public class SourceCodeParser extends AbstractEncodingDetectorParser {
String codeAsHtml = renderer.highlight(name, out.toString(), charset.name(), false);
Document document = Jsoup.parse(codeAsHtml);
document.quirksMode(Document.QuirksMode.quirks);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
try {
NodeTraversor.filter(new TikaNodeFilter(xhtml), document);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/executable/ExecutableParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/executable/ExecutableParser.java
index 6ef0baa876..b68cadfd9a 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/executable/ExecutableParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/executable/ExecutableParser.java
@@ -85,7 +85,7 @@ public class ExecutableParser implements Parser, MachineMetadata {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
// We only do metadata, for now
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// What kind is it?
byte[] first4 = new byte[4];
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/executable/UniversalExecutableParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/executable/UniversalExecutableParser.java
index 896a45130a..560f1ab8f0 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/executable/UniversalExecutableParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/executable/UniversalExecutableParser.java
@@ -63,7 +63,7 @@ public class UniversalExecutableParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
EmbeddedDocumentExtractor extractor =
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/mat/MatParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/mat/MatParser.java
index 9438e59f0d..730d0138de 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/mat/MatParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/mat/MatParser.java
@@ -100,7 +100,7 @@ public class MatParser implements Parser {
metadata.set("endian", endianCode);
//Text output
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.newline();
//Loop through each variable
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/sas/SAS7BDATParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/sas/SAS7BDATParser.java
index 246702d9e3..1dcc26c74a 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/sas/SAS7BDATParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-code-module/src/main/java/org/apache/tika/parser/sas/SAS7BDATParser.java
@@ -67,7 +67,7 @@ public class SAS7BDATParser implements Parser {
ParseContext context) throws IOException, SAXException, TikaException {
metadata.set(Metadata.CONTENT_TYPE, TYPE_SAS7BDAT.toString());
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
SasFileReader sas = new SasFileReaderImpl(tis);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/src/main/java/org/apache/tika/parser/crypto/TSDParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/src/main/java/org/apache/tika/parser/crypto/TSDParser.java
index e5690b295c..2cbf91c66f 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/src/main/java/org/apache/tika/parser/crypto/TSDParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-crypto-module/src/main/java/org/apache/tika/parser/crypto/TSDParser.java
@@ -107,7 +107,7 @@ public class TSDParser implements Parser {
this.buildMetas(tsdMetasList,
metadata != null && metadata.size() > 0 ? TSDAndEmbeddedMetadata : metadata);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
tis.rewind();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-font-module/src/main/java/org/apache/tika/parser/font/AdobeFontMetricParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-font-module/src/main/java/org/apache/tika/parser/font/AdobeFontMetricParser.java
index d35d49cbaa..96a8a22e56 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-font-module/src/main/java/org/apache/tika/parser/font/AdobeFontMetricParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-font-module/src/main/java/org/apache/tika/parser/font/AdobeFontMetricParser.java
@@ -98,7 +98,7 @@ public class AdobeFontMetricParser implements Parser {
Float.toString(fontMetrics.getUnderlineThickness()));
// Output the remaining comments as text
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// Display the comments
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-font-module/src/main/java/org/apache/tika/parser/font/TrueTypeParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-font-module/src/main/java/org/apache/tika/parser/font/TrueTypeParser.java
index 625a215632..7d04d3d35e 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-font-module/src/main/java/org/apache/tika/parser/font/TrueTypeParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-font-module/src/main/java/org/apache/tika/parser/font/TrueTypeParser.java
@@ -116,7 +116,7 @@ public class TrueTypeParser implements Parser {
}
// For now, we only output metadata, no textual contents
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.endDocument();
}
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlHandler.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlHandler.java
index b52d934bba..3ce7f7d179 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlHandler.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-html-module/src/main/java/org/apache/tika/parser/html/HtmlHandler.java
@@ -107,7 +107,7 @@ class HtmlHandler extends TextContentHandler {
public HtmlHandler(HtmlMapper mapper, ContentHandler handler, Metadata metadata,
ParseContext context, boolean extractScripts) {
- this(mapper, new XHTMLContentHandler(handler, metadata), metadata, context, extractScripts);
+ this(mapper, new XHTMLContentHandler(handler, metadata, context), metadata, context, extractScripts);
}
@Override
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/AbstractImageParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/AbstractImageParser.java
index 6c74614400..b97371bfe2 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/AbstractImageParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/AbstractImageParser.java
@@ -76,7 +76,7 @@ public abstract class AbstractImageParser implements Parser {
if (ocrMediaType == null ||
ocrParser == null || !ocrParser.getSupportedTypes(context).contains(ocrMediaType)) {
extractMetadata(tis, handler, metadata, context);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.endDocument();
return;
@@ -85,7 +85,7 @@ public abstract class AbstractImageParser implements Parser {
TemporaryResources tmpResources = new TemporaryResources();
Exception metadataException = null;
try {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
Path path = tis.getPath();
try (InputStream pathStream = Files.newInputStream(path)) {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/ICNSParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/ICNSParser.java
index c98a61fa98..e42422144b 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/ICNSParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/ICNSParser.java
@@ -139,7 +139,7 @@ public class ICNSParser implements Parser {
iconmask_details = new StringBuilder(iconmask_details.substring(2));
metadata.set("Masked icon details", iconmask_details.toString());
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.endDocument();
}
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/PSDParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/PSDParser.java
index dc4e6072e9..b807d1d5b3 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/PSDParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/PSDParser.java
@@ -169,7 +169,7 @@ public class PSDParser implements Parser {
// We can't do anything with these parts
// We don't have any helpful text, sorry...
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.endDocument();
}
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/WebPParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/WebPParser.java
index a155c16e12..b16fe51015 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/WebPParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-image-module/src/main/java/org/apache/tika/parser/image/WebPParser.java
@@ -51,7 +51,7 @@ public class WebPParser implements Parser {
ParseContext context) throws IOException, SAXException, TikaException {
new ImageMetadataExtractor(metadata).parseWebP(tis.getFile());
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.endDocument();
}
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-jdbc-commons/src/main/java/org/apache/tika/parser/jdbc/AbstractDBParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-jdbc-commons/src/main/java/org/apache/tika/parser/jdbc/AbstractDBParser.java
index e4b2be3d0a..50e5ca61cf 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-jdbc-commons/src/main/java/org/apache/tika/parser/jdbc/AbstractDBParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-jdbc-commons/src/main/java/org/apache/tika/parser/jdbc/AbstractDBParser.java
@@ -81,7 +81,7 @@ public abstract class AbstractDBParser implements Parser {
extractMetadata(connection, metadata);
- xHandler = new XHTMLContentHandler(handler, metadata);
+ xHandler = new XHTMLContentHandler(handler, metadata, context);
xHandler.startDocument();
try {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mail/RFC822Parser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mail/RFC822Parser.java
index 6ca78095fb..6c9d48e24f 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mail/RFC822Parser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mail/RFC822Parser.java
@@ -117,7 +117,7 @@ public class RFC822Parser implements Parser {
}
MimeStreamParser parser =
new MimeStreamParser(config, null, new DefaultBodyDescriptorBuilder());
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
MailContentHandler mch = new MailContentHandler(xhtml, localDetector, metadata, context,
config.isStrictParsing(), extractAllAlternatives);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mbox/MboxParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
index 13c388fdb2..42d92f8b65 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-mail-module/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
@@ -93,7 +93,7 @@ public class MboxParser implements Parser {
metadata.set(Metadata.CONTENT_TYPE, MBOX_MIME_TYPE);
metadata.set(Metadata.CONTENT_ENCODING, charsetName);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
InputStreamReader isr = new InputStreamReader(tis, charsetName);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/EMFParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/EMFParser.java
index 6a6d02bfe4..64e7f0de1b 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/EMFParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/EMFParser.java
@@ -98,7 +98,7 @@ public class EMFParser implements Parser {
ParseContext context) throws IOException, SAXException, TikaException {
EmbeddedDocumentExtractor embeddedDocumentExtractor = null;
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
try {
HemfPicture ex = new HemfPicture(tis);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/JackcessParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/JackcessParser.java
index 081f8df372..fd609fe1f0 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/JackcessParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/JackcessParser.java
@@ -78,7 +78,7 @@ public class JackcessParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
Database db = null;
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
String password = null;
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/MSOwnerFileParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/MSOwnerFileParser.java
index c5ad542cf3..941b7e8bbc 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/MSOwnerFileParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/MSOwnerFileParser.java
@@ -61,7 +61,7 @@ public class MSOwnerFileParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
byte[] asciiNameBytes = new byte[ASCII_CHUNK_LENGTH];
IOUtils.readFully(tis, asciiNameBytes);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
index 10e7dfec30..d87de80d29 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
@@ -162,7 +162,7 @@ public class OfficeParser extends AbstractOfficeParser {
ParseContext context) throws IOException, SAXException, TikaException {
configure(context);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
final DirectoryNode root;
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OldExcelParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OldExcelParser.java
index 0d43c1ec3e..fa76bf529b 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OldExcelParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/OldExcelParser.java
@@ -85,7 +85,7 @@ public class OldExcelParser implements Parser {
// TODO Get the version and type, to set as the Content Type
// Have the text extracted and given to our Content Handler
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
parse(extractor, xhtml);
xhtml.endDocument();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java
index cda7a6e1b5..9a528e8f61 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/TNEFParser.java
@@ -78,7 +78,7 @@ public class TNEFParser implements Parser {
metadata.set(TikaCoreProperties.TITLE, subject);
metadata.set(TikaCoreProperties.SUBJECT, subject);
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// Recurse into the message body RTF
MAPIAttribute attr = msg.getMessageMAPIAttribute(MAPIProperty.RTF_COMPRESSED);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/WMFParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/WMFParser.java
index 05665857a2..fe6c622dd9 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/WMFParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/WMFParser.java
@@ -59,7 +59,7 @@ public class WMFParser implements Parser {
@Override
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
tis.setCloseShield();
try {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/activemime/ActiveMimeParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/activemime/ActiveMimeParser.java
index 9edc648ec5..d9ea0ef21e 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/activemime/ActiveMimeParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/activemime/ActiveMimeParser.java
@@ -73,7 +73,7 @@ public class ActiveMimeParser implements Parser {
IOUtils.skipFully(tis, 4);//don't know
IOUtils.skipFully(tis, zlibOffset);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
EmbeddedDocumentExtractor ex = EmbeddedDocumentUtil.getEmbeddedDocumentExtractor(context);
try (InputStream payload = new DeflateCompressorInputStream(tis)) {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmParser.java
index 9e05f8dbd4..11dcbfc322 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/chm/ChmParser.java
@@ -64,7 +64,7 @@ public class ChmParser implements Parser {
metadata.set(Metadata.CONTENT_TYPE, "application/vnd.ms-htmlhelp");
// content
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
Parser htmlParser =
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/libpst/LibPstParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/libpst/LibPstParser.java
index 95904cc77d..ed56c0bf31 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/libpst/LibPstParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/libpst/LibPstParser.java
@@ -82,7 +82,7 @@ public class LibPstParser implements Parser, Initializable {
Path debugFile = activeConfig.isDebug() ? Files.createTempFile("tika-libpst-debug", ".txt") : null;
try {
ProcessBuilder pb = getProcessBuilder(pst, activeConfig, outDir, debugFile);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(contentHandler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(contentHandler, metadata, parseContext);
FileProcessResult fileProcessResult = ProcessUtils.execute(pb, activeConfig.getTimeoutSeconds() * 1000l, MAX_STDOUT, MAX_STDERR);
xhtml.startDocument();
processContents(outDir, activeConfig, xhtml, metadata, parseContext);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteParser.java
index e4018be077..208ecdede1 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/onenote/OneNoteParser.java
@@ -80,7 +80,7 @@ public class OneNoteParser implements Parser {
try (OneNoteDirectFileResource oneNoteDirectFileResource = new OneNoteDirectFileResource(
tis.getFile())) {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
OneNoteDocument oneNoteDocument =
createOneNoteDocumentFromDirectFileResource(oneNoteDirectFileResource);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
index 58683a0f40..2503a0c8f9 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/AbstractOOXMLExtractor.java
@@ -141,7 +141,7 @@ public abstract class AbstractOOXMLExtractor implements OOXMLExtractor {
*/
public void getXHTML(ContentHandler handler, Metadata metadata, ParseContext context)
throws SAXException, XmlException, IOException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
buildXHTML(xhtml);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/Word2006MLParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/Word2006MLParser.java
index 597624a589..1da2750f46 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/Word2006MLParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/ooxml/xwpf/ml2006/Word2006MLParser.java
@@ -51,7 +51,7 @@ public class Word2006MLParser extends AbstractOfficeParser {
//set OfficeParserConfig if the user hasn't specified one
configure(context);
- final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
tis.setCloseShield();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/pst/OutlookPSTParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/pst/OutlookPSTParser.java
index 5e8c2880ad..be7c7f9855 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/pst/OutlookPSTParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/pst/OutlookPSTParser.java
@@ -74,7 +74,7 @@ public class OutlookPSTParser implements Parser {
metadata.set(Metadata.CONTENT_TYPE, MS_OUTLOOK_PST_MIMETYPE.toString());
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
PSTFile pstFile = null;
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/pst/PSTMailItemParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/pst/PSTMailItemParser.java
index 9b638386f9..4cfb641612 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/pst/PSTMailItemParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/pst/PSTMailItemParser.java
@@ -77,7 +77,7 @@ public class PSTMailItemParser implements Parser {
}
PSTMessage pstMsg = (PSTMessage) openContainerObj;
EmbeddedDocumentExtractor ex = EmbeddedDocumentUtil.getEmbeddedDocumentExtractor(context);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
parseMailAndAttachments(pstMsg, xhtml, metadata, context, ex);
xhtml.endDocument();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFParser.java
index b45cdea8d1..5e8dca35bc 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/rtf/RTFParser.java
@@ -88,7 +88,7 @@ public class RTFParser implements Parser {
ParseContext context) throws IOException, SAXException, TikaException {
metadata.set(Metadata.CONTENT_TYPE, "application/rtf");
TaggedInputStream tagged = new TaggedInputStream(tis);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
try {
parseInline(tis, xhtml, metadata, context);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/AbstractXML2003Parser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/AbstractXML2003Parser.java
index 37b743165d..6d7e4ef8b9 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/AbstractXML2003Parser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/xml/AbstractXML2003Parser.java
@@ -85,7 +85,7 @@ public abstract class AbstractXML2003Parser implements Parser {
ParseContext context) throws IOException, SAXException, TikaException {
setContentType(metadata);
- final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
TaggedContentHandler tagged = new TaggedContentHandler(xhtml);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dbf/DBFParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dbf/DBFParser.java
index eceec3d224..153574f432 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dbf/DBFParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dbf/DBFParser.java
@@ -89,7 +89,7 @@ public class DBFParser implements Parser {
Charset charset = getCharset(firstRows, header, context);
metadata.set(Metadata.CONTENT_ENCODING, charset.toString());
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.startElement("table");
xhtml.startElement("thead");
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dif/DIFParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dif/DIFParser.java
index c8059f7c73..edb304fca3 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dif/DIFParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/dif/DIFParser.java
@@ -57,7 +57,7 @@ public class DIFParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
// TODO Auto-generated method stub
- final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.startElement("p");
TaggedContentHandler tagged = new TaggedContentHandler(handler);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubParser.java
index a7b0211ca6..a07d764052 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/epub/EpubParser.java
@@ -114,7 +114,7 @@ public class EpubParser implements Parser {
ParseContext context) throws IOException, SAXException, TikaException {
// Because an EPub file is often made up of multiple XHTML files,
// we need explicit control over the start and end of the document
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
IOException caughtException = null;
ContentHandler childHandler = new EmbeddedContentHandler(
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/hwp/HwpV5Parser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/hwp/HwpV5Parser.java
index 37ab5ac646..95b238645d 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/hwp/HwpV5Parser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/hwp/HwpV5Parser.java
@@ -56,7 +56,7 @@ public class HwpV5Parser implements Parser {
metadata.set(Metadata.CONTENT_TYPE, HWP_MIME_TYPE);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
try {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/indesign/IDMLParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/indesign/IDMLParser.java
index d7deb5faa8..3caa086135 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/indesign/IDMLParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/indesign/IDMLParser.java
@@ -95,7 +95,7 @@ public class IDMLParser implements Parser {
zipStream = new ZipInputStream(tis);
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(baseHandler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(baseHandler, metadata, context);
xhtml.startDocument();
EndDocumentShieldingContentHandler handler = new EndDocumentShieldingContentHandler(xhtml);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/mif/MIFParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/mif/MIFParser.java
index beacc72506..084495d471 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/mif/MIFParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/mif/MIFParser.java
@@ -72,7 +72,7 @@ public class MIFParser extends AbstractEncodingDetectorParser {
Optional<MediaType> firstElement = SUPPORTED_TYPES.stream().findFirst();
metadata.set(Metadata.CONTENT_TYPE, firstElement.get().toString());
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
EndDocumentShieldingContentHandler parseHandler =
new EndDocumentShieldingContentHandler(xhtml);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/FlatOpenDocumentParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/FlatOpenDocumentParser.java
index bd841f8461..30eae3d8f5 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/FlatOpenDocumentParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/FlatOpenDocumentParser.java
@@ -97,7 +97,7 @@ public class FlatOpenDocumentParser implements Parser {
@Override
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
tis.setCloseShield();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentContentParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentContentParser.java
index 7128167e63..a9646265e0 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentContentParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentContentParser.java
@@ -44,7 +44,7 @@ public class OpenDocumentContentParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- parseInternal(tis, new XHTMLContentHandler(handler, metadata), metadata, context);
+ parseInternal(tis, new XHTMLContentHandler(handler, metadata, context), metadata, context);
}
void parseInternal(TikaInputStream tis, final ContentHandler handler, Metadata metadata,
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java
index bfbe84e05c..02dfd9e374 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java
@@ -169,7 +169,7 @@ public class OpenDocumentParser implements Parser {
tis.setOpenContainer(zipFile);
}
// Prepare to handle the content
- XHTMLContentHandler xhtml = new XHTMLContentHandler(baseHandler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(baseHandler, metadata, context);
xhtml.startDocument();
// As we don't know which of the metadata or the content
// we'll hit first, catch the endDocument call initially
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/QuattroProParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/QuattroProParser.java
index d0593da913..d1e14d826d 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/QuattroProParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/QuattroProParser.java
@@ -65,7 +65,7 @@ public class QuattroProParser implements Parser {
metadata.set(Metadata.CONTENT_TYPE, QP_9.toString());
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
QPWTextExtractor extractor = new QPWTextExtractor();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WordPerfectParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WordPerfectParser.java
index 695df67fce..8ef47ebfba 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WordPerfectParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-miscoffice-module/src/main/java/org/apache/tika/parser/wordperfect/WordPerfectParser.java
@@ -73,7 +73,7 @@ public class WordPerfectParser implements Parser {
applyMetadata(prefixArea, metadata);
- extractDocumentArea(prefixArea, wpStream, new XHTMLContentHandler(handler, metadata));
+ extractDocumentArea(prefixArea, wpStream, new XHTMLContentHandler(handler, metadata, context));
}
private void extractDocumentArea(WPPrefixArea prefixArea, WPInputStream in,
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/feed/FeedParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/feed/FeedParser.java
index c29b13d850..4cd25e794e 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/feed/FeedParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/feed/FeedParser.java
@@ -99,7 +99,7 @@ public class FeedParser implements Parser {
metadata.set(TikaCoreProperties.DESCRIPTION, description);
// store the other fields in the metadata
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.element("h1", title);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java
index 124f2626c8..53917df38d 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-news-module/src/main/java/org/apache/tika/parser/iptc/IptcAnpaParser.java
@@ -104,7 +104,7 @@ public class IptcAnpaParser implements Parser {
HashMap<String, String> properties = this.loadProperties(tis);
this.setMetadata(metadata, properties);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// TODO: put body content here
xhtml.startElement("p");
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
index ecc5c8962b..c7aedcc495 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-ocr-module/src/main/java/org/apache/tika/parser/ocr/TesseractOCRParser.java
@@ -290,7 +290,7 @@ public class TesseractOCRParser extends AbstractExternalProcessParser implements
//commandline. The actual output file name will have a suffix added.
File tmpOCROutputFile = tmp.createTemporaryFile();
ContentHandler baseHandler = getContentHandler(config.isInlineContent(), handler, metadata, parseContext);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(baseHandler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(baseHandler, metadata, parseContext);
xhtml.startDocument();
parse(tikaStream, tmpOCROutputFile, xhtml, metadata, parseContext, config);
xhtml.endDocument();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java
index 248a25c85e..a0cac9381c 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/AbstractPDF2XHTML.java
@@ -202,7 +202,7 @@ class AbstractPDF2XHTML extends PDFTextStripper {
AbstractPDF2XHTML(PDDocument pdDocument, ContentHandler handler, ParseContext context,
Metadata metadata, PDFParserConfig config, Renderer renderer) throws IOException {
this.pdDocument = pdDocument;
- this.xhtml = new XHTMLContentHandler(handler, metadata);
+ this.xhtml = new XHTMLContentHandler(handler, metadata, context);
this.context = context;
this.metadata = metadata;
this.config = config;
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
index 8cb51df207..26a38f46f4 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pdf-module/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
@@ -727,7 +727,7 @@ public class PDFParser implements Parser, RenderingParser {
ParseContext context)
throws SAXException, IOException, TikaException {
XFAExtractor ex = new XFAExtractor();
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
try (InputStream is =
UnsynchronizedByteArrayInputStream.builder().setByteArray(pdDocument.getDocumentCatalog().getAcroForm(null).getXFA().getBytes()).get()) {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParser.java
index f140922e90..7f9c051412 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/CompressorParser.java
@@ -236,7 +236,7 @@ public class CompressorParser implements Parser {
}
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
try {
Metadata entrydata = context.newMetadata();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
index ad0737212c..e0b645bf0c 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
@@ -317,7 +317,7 @@ public class PackageParser extends AbstractEncodingDetectorParser {
EmbeddedDocumentExtractor extractor =
EmbeddedDocumentUtil.getEmbeddedDocumentExtractor(context);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
// mark before we start parsing entries for potential reset
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/RarParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/RarParser.java
index 62e568ae03..96785a7b5d 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/RarParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/RarParser.java
@@ -59,7 +59,7 @@ public class RarParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
EmbeddedDocumentExtractor extractor =
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/UnrarParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/UnrarParser.java
index d1b98aecc3..6525b2cc15 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/UnrarParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-pkg-module/src/main/java/org/apache/tika/parser/pkg/UnrarParser.java
@@ -69,7 +69,7 @@ public class UnrarParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
EmbeddedDocumentExtractor extractor =
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/TextAndCSVParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/TextAndCSVParser.java
index 66396adf2c..e7a203a28f 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/TextAndCSVParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/csv/TextAndCSVParser.java
@@ -186,14 +186,14 @@ public class TextAndCSVParser extends AbstractEncodingDetectorParser {
//TODO -- if it was detected as a non-csv subtype of text
if (!params.getMediaType().getBaseType().equals(CSV) &&
!params.getMediaType().getBaseType().equals(TSV)) {
- handleText(reader, charset, handler, metadata);
+ handleText(reader, charset, handler, metadata, context);
return;
}
CSVFormat csvFormat = CSVFormat.EXCEL.builder().setDelimiter(params.getDelimiter()).get();
metadata.set(DELIMITER_PROPERTY, textAndCSVConfig.getDelimiterToNameMap().get(csvFormat.getDelimiterString().charAt(0)));
- XHTMLContentHandler xhtmlContentHandler = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtmlContentHandler = new XHTMLContentHandler(handler, metadata, context);
int totalRows = 0;
try (CSVParser commonsParser = CSVParser.builder().setReader(reader).setFormat(csvFormat).get()) {
xhtmlContentHandler.startDocument();
@@ -246,7 +246,7 @@ public class TextAndCSVParser extends AbstractEncodingDetectorParser {
}
private void handleText(Reader reader, Charset charset, ContentHandler handler,
- Metadata metadata) throws SAXException, IOException, TikaException {
+ Metadata metadata, ParseContext context) throws SAXException, IOException, TikaException {
// Automatically detect the character encoding
//try to get detected content type; could be a subclass of text/plain
//such as vcal, etc.
@@ -263,7 +263,7 @@ public class TextAndCSVParser extends AbstractEncodingDetectorParser {
// deprecated, see TIKA-431
metadata.set(Metadata.CONTENT_ENCODING, charset.name());
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
handleText(reader, xhtml);
xhtml.endDocument();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/Latin1StringsParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/Latin1StringsParser.java
index d646ce6611..5c5d0a651b 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/Latin1StringsParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/Latin1StringsParser.java
@@ -226,7 +226,7 @@ public class Latin1StringsParser implements Parser {
tmpPos = 0;
outPos = 0;
- xhtml = new XHTMLContentHandler(handler, metadata);
+ xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
int i = 0;
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java
index aac74f624e..fae77f02d6 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/strings/StringsParser.java
@@ -116,7 +116,7 @@ public class StringsParser implements Parser, Initializable {
int totalBytes = 0;
// Content
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/TXTParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/TXTParser.java
index 849fa3a495..4244d62280 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/TXTParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-text-module/src/main/java/org/apache/tika/parser/txt/TXTParser.java
@@ -95,7 +95,7 @@ public class TXTParser extends AbstractEncodingDetectorParser {
// deprecated, see TIKA-431
metadata.set(Metadata.CONTENT_ENCODING, charset.name());
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.startElement("p");
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/http/HttpParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/http/HttpParser.java
index a27783637d..89dc7836d0 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/http/HttpParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/http/HttpParser.java
@@ -58,7 +58,7 @@ public class HttpParser implements Parser {
parser.lenientRequest();
parser.lenientResponse();
ByteBuffer buffer = ByteBuffer.allocate(1024);
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
tis.setCloseShield();
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/wacz/WACZParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/wacz/WACZParser.java
index e914299a36..1809e5371e 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/wacz/WACZParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/wacz/WACZParser.java
@@ -60,7 +60,7 @@ public class WACZParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
EmbeddedDocumentExtractor embeddedDocumentExtractor =
EmbeddedDocumentUtil.getEmbeddedDocumentExtractor(context);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/warc/WARCParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/warc/WARCParser.java
index ad0d33b479..4892854b49 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/warc/WARCParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-webarchive-module/src/main/java/org/apache/tika/parser/warc/WARCParser.java
@@ -80,7 +80,7 @@ public class WARCParser implements Parser {
public void parse(TikaInputStream tis, ContentHandler handler, Metadata metadata,
ParseContext context) throws IOException, SAXException, TikaException {
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
EmbeddedDocumentExtractor embeddedDocumentExtractor =
EmbeddedDocumentUtil.getEmbeddedDocumentExtractor(context);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/tmx/TMXParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/tmx/TMXParser.java
index a524e5496a..2a1224171b 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/tmx/TMXParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/tmx/TMXParser.java
@@ -65,7 +65,7 @@ public class TMXParser implements Parser {
metadata.set(Metadata.CONTENT_TYPE, TMX_CONTENT_TYPE.toString());
- final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
tis.setCloseShield();
try {
XMLReaderUtils.parseSAX(tis, new TMXContentHandler(xhtml, metadata), context);
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLIFF12Parser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLIFF12Parser.java
index 0f4c77288f..476388370d 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLIFF12Parser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLIFF12Parser.java
@@ -65,7 +65,7 @@ public class XLIFF12Parser implements Parser {
metadata.set(Metadata.CONTENT_TYPE, XLF_CONTENT_TYPE.toString());
- final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
tis.setCloseShield();
try {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLZParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLZParser.java
index 05384abfb4..f72198c36f 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLZParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xliff/XLZParser.java
@@ -88,7 +88,7 @@ public class XLZParser implements Parser {
}
// Prepare to handle the content
- XHTMLContentHandler xhtml = new XHTMLContentHandler(baseHandler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(baseHandler, metadata, context);
EndDocumentShieldingContentHandler handler = new EndDocumentShieldingContentHandler(xhtml);
if (zipFile != null) {
try {
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/XMLParser.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/XMLParser.java
index f7b972dd2b..3fca827da8 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/XMLParser.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-xml-module/src/main/java/org/apache/tika/parser/xml/XMLParser.java
@@ -63,7 +63,7 @@ public class XMLParser implements Parser {
metadata.set(Metadata.CONTENT_TYPE, "application/xml");
}
- final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ final XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.startElement("p");
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/AutoDetectReaderParserTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/AutoDetectReaderParserTest.java
index 767e10c1d2..f90f83022d 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/AutoDetectReaderParserTest.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/parser/AutoDetectReaderParserTest.java
@@ -70,7 +70,7 @@ public class AutoDetectReaderParserTest extends MultiThreadedTikaTest {
Charset charset = reader.getCharset();
MediaType type = new MediaType(MediaType.parse("text/plhtml"), charset);
metadata.set(Metadata.CONTENT_TYPE, type.toString());
- XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
+ XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata, context);
xhtml.startDocument();
xhtml.startElement("p");
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-no-names.json b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-no-names.json
index b56a7d5d2d..25f0d5dce1 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-no-names.json
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-no-names.json
@@ -3,7 +3,6 @@
"outputThreshold": 678900,
"embeddedDocumentExtractorFactory": {
"runpack-extractor-factory": {
- "writeFileNameToContent": false
}
}
}
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-upcasing-custom-handler-decorator.json b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-upcasing-custom-handler-decorator.json
index 28c5763f0b..0c812d63b2 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-upcasing-custom-handler-decorator.json
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-upcasing-custom-handler-decorator.json
@@ -6,7 +6,6 @@
"maximumPackageEntryDepth": 1000,
"embeddedDocumentExtractorFactory": {
"runpack-extractor-factory": {
- "writeFileNameToContent": true,
"embeddedBytesIncludeMimeTypes": [
"text/pdf"
],
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-with-names.json b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-with-names.json
index 17811c8dec..3edd26dedb 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-with-names.json
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/resources/configs/tika-config-with-names.json
@@ -3,7 +3,6 @@
"outputThreshold": 678900,
"embeddedDocumentExtractorFactory": {
"runpack-extractor-factory": {
- "writeFileNameToContent": true
}
}
}
diff --git a/tika-pipes/tika-pipes-integration-tests/src/test/resources/configs/tika-config-truncate.json b/tika-pipes/tika-pipes-integration-tests/src/test/resources/configs/tika-config-truncate.json
index f8d5d3464b..90141d91af 100644
--- a/tika-pipes/tika-pipes-integration-tests/src/test/resources/configs/tika-config-truncate.json
+++ b/tika-pipes/tika-pipes-integration-tests/src/test/resources/configs/tika-config-truncate.json
@@ -48,7 +48,6 @@
"outputThreshold": 1000000,
"embeddedDocumentExtractorFactory": {
"runpack-extractor-factory": {
- "writeFileNameToContent": false,
"maxEmbeddedBytesForExtraction": 10
}
},
diff --git a/tika-serialization/src/main/java/org/apache/tika/config/loader/TikaLoader.java b/tika-serialization/src/main/java/org/apache/tika/config/loader/TikaLoader.java
index 55f6ff0993..7183d69962 100644
--- a/tika-serialization/src/main/java/org/apache/tika/config/loader/TikaLoader.java
+++ b/tika-serialization/src/main/java/org/apache/tika/config/loader/TikaLoader.java
@@ -55,6 +55,7 @@ import org.apache.tika.renderer.CompositeRenderer;
import org.apache.tika.renderer.Renderer;
import org.apache.tika.sax.BasicContentHandlerFactory;
import org.apache.tika.sax.ContentHandlerFactory;
+import org.apache.tika.sax.SAXOutputConfig;
import org.apache.tika.serialization.ComponentConfig;
import org.apache.tika.serialization.ComponentNameResolver;
import org.apache.tika.serialization.JsonMetadata;
@@ -416,6 +417,12 @@ public class TikaLoader {
context.set(MetadataWriteLimiterFactory.class, metadataWriteLimiterFactory);
}
+ // Load SAXOutputConfig from other-configs if present
+ SAXOutputConfig saxOutputConfig = configs().load(SAXOutputConfig.class);
+ if (saxOutputConfig != null) {
+ context.set(SAXOutputConfig.class, saxOutputConfig);
+ }
+
return context;
}
diff --git a/tika-serialization/src/test/resources/configs/TIKA-4207-embedded-bytes-config.json b/tika-serialization/src/test/resources/configs/TIKA-4207-embedded-bytes-config.json
index b014152172..0a0ef6e845 100644
--- a/tika-serialization/src/test/resources/configs/TIKA-4207-embedded-bytes-config.json
+++ b/tika-serialization/src/test/resources/configs/TIKA-4207-embedded-bytes-config.json
@@ -6,7 +6,6 @@
"outputThreshold": 678900,
"embeddedDocumentExtractorFactory": {
"runpack-extractor-factory": {
- "writeFileNameToContent": false,
"embeddedBytesIncludeMimeTypes": ["application/pdf", "application/rtf", "text/plain"],
"embeddedBytesIncludeEmbeddedResourceTypes": ["ATTACHMENT", "INLINE"]
}