You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ju...@apache.org on 2009/11/14 00:20:33 UTC

svn commit: r836057 - in /lucene/tika/trunk: tika-app/src/main/java/org/apache/tika/cli/ tika-app/src/main/java/org/apache/tika/gui/ tika-core/src/main/java/org/apache/tika/ tika-core/src/main/java/org/apache/tika/parser/ tika-parsers/src/main/java/org...

Author: jukka
Date: Fri Nov 13 23:20:32 2009
New Revision: 836057

URL: http://svn.apache.org/viewvc?rev=836057&view=rev
Log:
TIKA-275: Parse context

Replace the context Map with an explicit ParseContext object.

Added:
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParseContext.java
Modified:
    lucene/tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
    lucene/tika/trunk/tika-app/src/main/java/org/apache/tika/gui/TikaGUI.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/Tika.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/AutoDetectParser.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/CompositeParser.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/DelegatingParser.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/EmptyParser.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ErrorParser.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ExternalParser.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/Parser.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserDecorator.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserPostProcessor.java
    lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParsingReader.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/ClassParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/audio/AudioParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/audio/MidiParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/epub/EpubContentParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/epub/EpubParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/jpeg/JpegParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentContentParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/ArParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/Bzip2Parser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/CpioParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/GzipParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/TarParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/ZipParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/rtf/RTFParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/txt/TXTParser.java
    lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/XMLParser.java
    lucene/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java
    lucene/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java

Modified: lucene/tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java (original)
+++ lucene/tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java Fri Nov 13 23:20:32 2009
@@ -26,8 +26,6 @@
 import java.io.Writer;
 import java.net.URL;
 import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.TransformerConfigurationException;
@@ -43,6 +41,7 @@
 import org.apache.tika.gui.TikaGUI;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.BodyContentHandler;
 import org.xml.sax.ContentHandler;
@@ -107,7 +106,7 @@
         }
     };
 
-    private Map<String, Object> context;
+    private ParseContext context;
 
     private Parser parser;
 
@@ -123,9 +122,9 @@
     private boolean pipeMode = true;
 
     public TikaCLI() throws TransformerConfigurationException {
-        context = new HashMap<String, Object>();
+        context = new ParseContext();
         parser = new AutoDetectParser();
-        context.put(Parser.class.getName(), parser);
+        context.set(Parser.class, parser);
     }
 
     public void process(String arg) throws Exception {

Modified: lucene/tika/trunk/tika-app/src/main/java/org/apache/tika/gui/TikaGUI.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-app/src/main/java/org/apache/tika/gui/TikaGUI.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-app/src/main/java/org/apache/tika/gui/TikaGUI.java (original)
+++ lucene/tika/trunk/tika-app/src/main/java/org/apache/tika/gui/TikaGUI.java Fri Nov 13 23:20:32 2009
@@ -23,8 +23,6 @@
 import java.io.StringWriter;
 import java.io.Writer;
 import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.swing.JEditorPane;
 import javax.swing.JFrame;
@@ -42,6 +40,7 @@
 
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.BodyContentHandler;
 import org.apache.tika.sax.ContentHandlerDecorator;
@@ -77,7 +76,7 @@
     /**
      * Parsing context.
      */
-    private final Map<String, Object> context;
+    private final ParseContext context;
 
     /**
      * Configured parser instance.
@@ -130,9 +129,9 @@
         setPreferredSize(new Dimension(500, 400));
         pack();
 
-        this.context = new HashMap<String, Object>();
+        this.context = new ParseContext();
         this.parser = parser;
-        this.context.put(Parser.class.getName(), parser);
+        this.context.set(Parser.class, parser);
     }
 
    public void importStream(InputStream input) throws IOException {

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/Tika.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/Tika.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/Tika.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/Tika.java Fri Nov 13 23:20:32 2009
@@ -24,14 +24,13 @@
 import java.io.InputStream;
 import java.io.Reader;
 import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
 
 import org.apache.tika.config.TikaConfig;
 import org.apache.tika.detect.Detector;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.parser.ParsingReader;
 import org.apache.tika.sax.BodyContentHandler;
@@ -201,8 +200,8 @@
      */
     public Reader parse(InputStream stream, Metadata metadata)
             throws IOException {
-        Map<String, Object> context = new HashMap<String, Object>();
-        context.put(Parser.class.getName(), parser);
+        ParseContext context = new ParseContext();
+        context.set(Parser.class, parser);
         return new ParsingReader(parser, stream, metadata, context);
     }
 
@@ -255,8 +254,8 @@
             throws IOException, TikaException {
         try {
             ContentHandler handler = new BodyContentHandler();
-            Map<String, Object> context = new HashMap<String, Object>();
-            context.put(Parser.class.getName(), parser);
+            ParseContext context = new ParseContext();
+            context.set(Parser.class, parser);
             parser.parse(stream, handler, metadata, context);
             return handler.toString();
         } catch (SAXException e) {

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/AutoDetectParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/AutoDetectParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/AutoDetectParser.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/AutoDetectParser.java Fri Nov 13 23:20:32 2009
@@ -19,8 +19,6 @@
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
 
 import org.apache.tika.config.TikaConfig;
 import org.apache.tika.detect.Detector;
@@ -83,7 +81,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         // We need buffering to enable MIME magic detection before parsing
         if (!stream.markSupported()) {
@@ -111,8 +109,8 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = new HashMap<String, Object>();
-        context.put(Parser.class.getName(), this);
+        ParseContext context = new ParseContext();
+        context.set(Parser.class, this);
         parse(stream, handler, metadata, context);
     }
 

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/CompositeParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/CompositeParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/CompositeParser.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/CompositeParser.java Fri Nov 13 23:20:32 2009
@@ -18,7 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -112,7 +111,7 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         Parser parser = getParser(metadata);
         TaggedInputStream taggedStream = new TaggedInputStream(stream);
@@ -139,8 +138,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/DelegatingParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/DelegatingParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/DelegatingParser.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/DelegatingParser.java Fri Nov 13 23:20:32 2009
@@ -18,8 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
@@ -29,15 +27,8 @@
 /**
  * Base class for parser implementations that want to delegate parts of the
  * task of parsing an input document to another parser. The delegate parser
- * is looked up from the parsing context.
- * <p>
- * This class uses the following parsing context:
- * <dl>
- *   <dt>org.apache.tika.parser.Parser</dt>
- *   <dd>
- *     The delegate parser ({@link Parser} instance).
- *   </dd>
- * </dl>
+ * is looked up from the parsing context using the {@link Parser} class as
+ * the key.
  *
  * @since Apache Tika 0.4, major changes in Tika 0.5
  */
@@ -55,14 +46,10 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws SAXException, IOException, TikaException {
-        Object parser = context.get(Parser.class.getName());
-        if (parser instanceof Parser) {
-            ((Parser) parser).parse(stream, handler, metadata, context);
-        } else {
-            new EmptyParser().parse(stream, handler, metadata, context);
-        }
+        Parser parser =  context.get(Parser.class, EmptyParser.INSTANCE);
+        parser.parse(stream, handler, metadata, context);
     }
 
     /**
@@ -71,8 +58,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/EmptyParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/EmptyParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/EmptyParser.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/EmptyParser.java Fri Nov 13 23:20:32 2009
@@ -18,8 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
@@ -34,9 +32,14 @@
  */
 public class EmptyParser implements Parser {
 
+    /**
+     * Singleton instance of this class.
+     */
+    public static EmptyParser INSTANCE = new EmptyParser();
+
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws SAXException {
         XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
         xhtml.startDocument();
@@ -49,8 +52,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ErrorParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ErrorParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ErrorParser.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ErrorParser.java Fri Nov 13 23:20:32 2009
@@ -18,8 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
@@ -33,9 +31,14 @@
  */
 public class ErrorParser implements Parser {
 
+    /**
+     * Singleton instance of this class.
+     */
+    public static final ErrorParser INSTANCE = new ErrorParser();
+
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws TikaException {
         throw new TikaException("Parse error");
     }
@@ -46,8 +49,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ExternalParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ExternalParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ExternalParser.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ExternalParser.java Fri Nov 13 23:20:32 2009
@@ -21,8 +21,6 @@
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.Reader;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.IOUtils;
@@ -51,7 +49,7 @@
      */
     public void parse(
             final InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         XHTMLContentHandler xhtml =
             new XHTMLContentHandler(handler, metadata);
@@ -75,8 +73,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
     /**

Added: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParseContext.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParseContext.java?rev=836057&view=auto
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParseContext.java (added)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParseContext.java Fri Nov 13 23:20:32 2009
@@ -0,0 +1,51 @@
+/**
+ * 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.parser;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Parse context. Used to pass context information to Tika parsers.
+ *
+ * @since Apache Tika 0.5
+ * @see <a href="https://issues.apache.org/jira/browse/TIKA-275">TIKA-275</a>
+ */
+public class ParseContext {
+
+    private final Map<Class<?>, Object> context =
+        new HashMap<Class<?>, Object>();
+ 
+    public <T> void set(Class<T> key, T value) {
+        context.put(key, value);
+    }
+
+    @SuppressWarnings("unchecked")
+    public <T> T get(Class<T> key) {
+        return (T) context.get(key);
+    }
+
+    public <T> T get(Class<T> key, T defaultValue) {
+        T value = get(key);
+        if (value != null) {
+            return value;
+        } else {
+            return defaultValue;
+        }
+    }
+
+}

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/Parser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/Parser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/Parser.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/Parser.java Fri Nov 13 23:20:32 2009
@@ -52,7 +52,7 @@
      */
     void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException;
 
     /**

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserDecorator.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserDecorator.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserDecorator.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserDecorator.java Fri Nov 13 23:20:32 2009
@@ -18,8 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
@@ -55,7 +53,7 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         parser.parse(stream, handler, metadata, context);
     }
@@ -66,8 +64,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserPostProcessor.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserPostProcessor.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserPostProcessor.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParserPostProcessor.java Fri Nov 13 23:20:32 2009
@@ -18,7 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
@@ -51,7 +50,7 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         ContentHandler body = new BodyContentHandler();
         ContentHandler tee = new TeeContentHandler(handler, body);

Modified: lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParsingReader.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParsingReader.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParsingReader.java (original)
+++ lucene/tika/trunk/tika-core/src/main/java/org/apache/tika/parser/ParsingReader.java Fri Nov 13 23:20:32 2009
@@ -26,8 +26,6 @@
 import java.io.PipedWriter;
 import java.io.Reader;
 import java.io.Writer;
-import java.util.HashMap;
-import java.util.Map;
 import java.util.concurrent.Executor;
 
 import org.apache.tika.metadata.Metadata;
@@ -71,7 +69,10 @@
      */
     private final Metadata metadata;
 
-    private final Map<String, Object> context;
+    /**
+     * The parse context.
+     */
+    private final ParseContext context;
 
     /**
      * An exception (if any) thrown by the parsing thread.
@@ -138,7 +139,7 @@
      */
     public ParsingReader(
             Parser parser, InputStream stream, final Metadata metadata,
-            Map<String, Object> context) throws IOException {
+            ParseContext context) throws IOException {
         this(parser, stream, metadata, context, new Executor() {
             public void execute(Runnable command) {
                 String name = metadata.get(Metadata.RESOURCE_NAME_KEY);
@@ -172,7 +173,7 @@
      */
     public ParsingReader(
             Parser parser, InputStream stream, Metadata metadata,
-            Map<String, Object> context, Executor executor) throws IOException {
+            ParseContext context, Executor executor) throws IOException {
         this.parser = parser;
         PipedReader pipedReader = new PipedReader();
         this.reader = new BufferedReader(pipedReader);
@@ -199,8 +200,8 @@
      */
     public ParsingReader(Parser parser, InputStream stream, Metadata metadata)
             throws IOException {
-        this(parser, stream, metadata, new HashMap<String, Object>());
-        context.put(Parser.class.getName(), parser);
+        this(parser, stream, metadata, new ParseContext());
+        context.set(Parser.class, parser);
     }
 
     /**
@@ -210,8 +211,8 @@
     public ParsingReader(
             Parser parser, InputStream stream, Metadata metadata,
             Executor executor) throws IOException {
-        this(parser, stream, metadata, new HashMap<String, Object>(), executor);
-        context.put(Parser.class.getName(), parser);
+        this(parser, stream, metadata, new ParseContext(), executor);
+        context.set(Parser.class, parser);
     }
 
     /**

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/ClassParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/ClassParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/ClassParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/asm/ClassParser.java Fri Nov 13 23:20:32 2009
@@ -18,11 +18,10 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassVisitor;
@@ -36,7 +35,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         try {
             ClassVisitor visitor = new XHTMLClassVisitor(handler, metadata);
@@ -57,8 +56,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/audio/AudioParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/audio/AudioParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/audio/AudioParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/audio/AudioParser.java Fri Nov 13 23:20:32 2009
@@ -19,8 +19,6 @@
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 import java.util.Map.Entry;
 
 import javax.sound.sampled.AudioFormat;
@@ -29,6 +27,7 @@
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.ContentHandler;
@@ -38,7 +37,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
         xhtml.startDocument();
@@ -94,8 +93,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/audio/MidiParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/audio/MidiParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/audio/MidiParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/audio/MidiParser.java Fri Nov 13 23:20:32 2009
@@ -19,8 +19,6 @@
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 
 import javax.sound.midi.InvalidMidiDataException;
 import javax.sound.midi.MetaMessage;
@@ -32,6 +30,7 @@
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.ContentHandler;
@@ -41,7 +40,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
         xhtml.startDocument();
@@ -103,8 +102,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/epub/EpubContentParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/epub/EpubContentParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/epub/EpubContentParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/epub/EpubContentParser.java Fri Nov 13 23:20:32 2009
@@ -18,8 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
-import java.util.Collections;
 
 import javax.xml.XMLConstants;
 import javax.xml.parsers.ParserConfigurationException;
@@ -29,6 +27,7 @@
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.OfflineContentHandler;
 import org.apache.tika.sax.XHTMLContentHandler;
@@ -44,7 +43,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         final XHTMLContentHandler xhtml =
             new XHTMLContentHandler(handler,metadata);
@@ -69,8 +68,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/epub/EpubParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/epub/EpubParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/epub/EpubParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/epub/EpubParser.java Fri Nov 13 23:20:32 2009
@@ -18,14 +18,13 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.IOUtils;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.parser.xml.DcXMLParser;
 import org.xml.sax.ContentHandler;
@@ -59,7 +58,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         ZipInputStream zip = new ZipInputStream(stream);
         ZipEntry entry = zip.getNextEntry();
@@ -84,7 +83,6 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java Fri Nov 13 23:20:32 2009
@@ -19,12 +19,11 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.Charset;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.InputSource;
@@ -39,7 +38,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         // Protect the stream from being closed by CyberNeko
         stream = new CloseShieldInputStream(stream);
@@ -65,8 +64,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
     /**

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/image/ImageParser.java Fri Nov 13 23:20:32 2009
@@ -18,9 +18,7 @@
 
  import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
 import java.util.Iterator;
-import java.util.Map;
 
 import javax.imageio.ImageIO;
 import javax.imageio.ImageReader;
@@ -28,6 +26,7 @@
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.ContentHandler;
@@ -37,7 +36,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         String type = metadata.get(Metadata.CONTENT_TYPE);
         if (type != null) {
@@ -64,8 +63,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/jpeg/JpegParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/jpeg/JpegParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/jpeg/JpegParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/jpeg/JpegParser.java Fri Nov 13 23:20:32 2009
@@ -16,24 +16,23 @@
  */
 package org.apache.tika.parser.jpeg;
 
-import org.apache.tika.parser.Parser;
-import org.apache.tika.metadata.Metadata;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Iterator;
+
 import org.apache.tika.exception.TikaException;
+import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
+import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
-import java.io.InputStream;
-import java.io.IOException;
-import java.util.Map;
-import java.util.Collections;
-import java.util.Iterator;
-
 import com.drew.imaging.jpeg.JpegMetadataReader;
 import com.drew.imaging.jpeg.JpegProcessingException;
 import com.drew.metadata.Directory;
-import com.drew.metadata.Tag;
 import com.drew.metadata.MetadataException;
+import com.drew.metadata.Tag;
 
 public class JpegParser implements Parser {
     /**
@@ -42,13 +41,12 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         try {
             com.drew.metadata.Metadata jpegMetadata = JpegMetadataReader.readMetadata(stream);

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mbox/MboxParser.java Fri Nov 13 23:20:32 2009
@@ -21,14 +21,13 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.UnsupportedEncodingException;
-import java.util.Collections;
-import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.log4j.Logger;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.ContentHandler;
@@ -54,7 +53,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, TikaException, SAXException {
 
         InputStreamReader isr;
@@ -207,9 +206,10 @@
         }
     }
 
-    @SuppressWarnings("unchecked")
-    public void parse(InputStream stream, ContentHandler handler, Metadata metadata) throws IOException, SAXException, TikaException {
-        parse(stream, handler, metadata, Collections.EMPTY_MAP);
+    public void parse(
+            InputStream stream, ContentHandler handler, Metadata metadata)
+            throws IOException, SAXException, TikaException {
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/OfficeParser.java Fri Nov 13 23:20:32 2009
@@ -19,10 +19,8 @@
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
 import java.util.Date;
 import java.util.Iterator;
-import java.util.Map;
 
 import org.apache.poi.hdgf.extractor.VisioTextExtractor;
 import org.apache.poi.hpsf.CustomProperties;
@@ -40,6 +38,7 @@
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.ContentHandler;
@@ -61,7 +60,7 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
         xhtml.startDocument();
@@ -137,8 +136,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
     private void parseSummaryEntryIfExists(

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParser.java Fri Nov 13 23:20:32 2009
@@ -18,8 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.poi.POIXMLTextExtractor;
 import org.apache.poi.extractor.ExtractorFactory;
@@ -27,6 +25,7 @@
 import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.xmlbeans.XmlException;
 import org.xml.sax.ContentHandler;
@@ -40,7 +39,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         try {
             OOXMLExtractor extractor = OOXMLExtractorFactory
@@ -63,8 +62,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/mp3/Mp3Parser.java Fri Nov 13 23:20:32 2009
@@ -19,11 +19,10 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.ContentHandler;
@@ -174,7 +173,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         metadata.set(Metadata.CONTENT_TYPE, "audio/mpeg");
 
@@ -219,8 +218,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
     /**

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentContentParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentContentParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentContentParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentContentParser.java Fri Nov 13 23:20:32 2009
@@ -16,34 +16,33 @@
  */
 package org.apache.tika.parser.odf;
 
+import static org.apache.tika.sax.XHTMLContentHandler.XHTML;
+
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
-import java.util.Stack;
-import java.util.HashMap;
-import java.util.Collections;
 import java.util.BitSet;
+import java.util.HashMap;
+import java.util.Stack;
 
 import javax.xml.XMLConstants;
+import javax.xml.namespace.QName;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
-import javax.xml.namespace.QName;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.ElementMappingContentHandler;
 import org.apache.tika.sax.OfflineContentHandler;
-import org.apache.tika.sax.ElementMappingContentHandler.TargetElement;
 import org.apache.tika.sax.XHTMLContentHandler;
+import org.apache.tika.sax.ElementMappingContentHandler.TargetElement;
+import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.Attributes;
-
-import static org.apache.tika.sax.XHTMLContentHandler.XHTML;
 
 /**
  * Parser for ODF <code>content.xml</code> files.
@@ -165,7 +164,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         final XHTMLContentHandler xhtml =
             new XHTMLContentHandler(handler,metadata);
@@ -334,8 +333,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/odf/OpenDocumentParser.java Fri Nov 13 23:20:32 2009
@@ -18,14 +18,13 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.IOUtils;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
@@ -58,7 +57,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         ZipInputStream zip = new ZipInputStream(stream);
         ZipEntry entry = zip.getNextEntry();
@@ -81,8 +80,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pdf/PDFParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pdf/PDFParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pdf/PDFParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pdf/PDFParser.java Fri Nov 13 23:20:32 2009
@@ -19,13 +19,12 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Calendar;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDDocumentInformation;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
@@ -49,7 +48,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         PDDocument pdfDocument = PDDocument.load(stream);
         try {
@@ -79,8 +78,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
     private void extractMetadata(PDDocument document, Metadata metadata)

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/ArParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/ArParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/ArParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/ArParser.java Fri Nov 13 23:20:32 2009
@@ -18,12 +18,12 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
 
 import org.apache.commons.compress.archivers.ar.ArArchiveInputStream;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
@@ -37,7 +37,7 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, TikaException, SAXException {
         // At the end we want to close the ar stream to release any associated
         // resources, but the underlying document stream should not be closed

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/Bzip2Parser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/Bzip2Parser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/Bzip2Parser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/Bzip2Parser.java Fri Nov 13 23:20:32 2009
@@ -18,13 +18,13 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
 
 import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.parser.DelegatingParser;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.sax.BodyContentHandler;
 import org.apache.tika.sax.EmbeddedContentHandler;
 import org.apache.tika.sax.XHTMLContentHandler;
@@ -41,7 +41,7 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         metadata.set(Metadata.CONTENT_TYPE, "application/x-bzip");
 

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/CpioParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/CpioParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/CpioParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/CpioParser.java Fri Nov 13 23:20:32 2009
@@ -18,12 +18,12 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
 
 import org.apache.commons.compress.archivers.cpio.CpioArchiveInputStream;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
@@ -37,7 +37,7 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, TikaException, SAXException {
         // At the end we want to close the cpio stream to release any associated
         // resources, but the underlying document stream should not be closed

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/GzipParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/GzipParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/GzipParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/GzipParser.java Fri Nov 13 23:20:32 2009
@@ -18,7 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
 import java.util.zip.GZIPInputStream;
 
 import org.apache.commons.compress.compressors.gzip.GzipUtils;
@@ -26,6 +25,7 @@
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.parser.DelegatingParser;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.sax.BodyContentHandler;
 import org.apache.tika.sax.EmbeddedContentHandler;
 import org.apache.tika.sax.XHTMLContentHandler;
@@ -42,7 +42,7 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         metadata.set(Metadata.CONTENT_TYPE, "application/x-gzip");
 

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java Fri Nov 13 23:20:32 2009
@@ -18,7 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
 
 import org.apache.commons.compress.archivers.ArchiveEntry;
 import org.apache.commons.compress.archivers.ArchiveInputStream;
@@ -26,6 +25,7 @@
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.parser.DelegatingParser;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.sax.BodyContentHandler;
 import org.apache.tika.sax.EmbeddedContentHandler;
 import org.apache.tika.sax.XHTMLContentHandler;
@@ -58,7 +58,7 @@
      */
     protected void parseArchive(
             ArchiveInputStream archive, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException {
         XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
         xhtml.startDocument();

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/TarParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/TarParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/TarParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/TarParser.java Fri Nov 13 23:20:32 2009
@@ -18,12 +18,12 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
 
 import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
@@ -37,7 +37,7 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, TikaException, SAXException {
         metadata.set(Metadata.CONTENT_TYPE, "application/x-tar");
 

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/ZipParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/ZipParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/ZipParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/pkg/ZipParser.java Fri Nov 13 23:20:32 2009
@@ -18,12 +18,12 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Map;
 
 import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
@@ -37,7 +37,7 @@
      */
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, TikaException, SAXException {
         metadata.set(Metadata.CONTENT_TYPE, "application/zip");
 

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/rtf/RTFParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/rtf/RTFParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/rtf/RTFParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/rtf/RTFParser.java Fri Nov 13 23:20:32 2009
@@ -18,8 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 
 import javax.swing.text.BadLocationException;
 import javax.swing.text.DefaultStyledDocument;
@@ -27,6 +25,7 @@
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.ContentHandler;
@@ -39,7 +38,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         try {
             DefaultStyledDocument sd = new DefaultStyledDocument();
@@ -61,8 +60,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/txt/TXTParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/txt/TXTParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/txt/TXTParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/txt/TXTParser.java Fri Nov 13 23:20:32 2009
@@ -24,13 +24,12 @@
 import java.io.Reader;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
-import java.util.Collections;
-import java.util.Map;
 
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.DublinCore;
 import org.apache.tika.metadata.HttpHeaders;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.XHTMLContentHandler;
 import org.xml.sax.ContentHandler;
@@ -63,7 +62,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         metadata.set(Metadata.CONTENT_TYPE, "text/plain");
 
@@ -135,8 +134,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
 }

Modified: lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/XMLParser.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/XMLParser.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/XMLParser.java (original)
+++ lucene/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/xml/XMLParser.java Fri Nov 13 23:20:32 2009
@@ -18,8 +18,6 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
 
 import javax.xml.XMLConstants;
 import javax.xml.parsers.ParserConfigurationException;
@@ -29,6 +27,7 @@
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.OfflineContentHandler;
 import org.apache.tika.sax.TextContentHandler;
@@ -59,7 +58,7 @@
 
     public void parse(
             InputStream stream, ContentHandler handler,
-            Metadata metadata, Map<String, Object> context)
+            Metadata metadata, ParseContext context)
             throws IOException, SAXException, TikaException {
         if (metadata.get(Metadata.CONTENT_TYPE) == null) {
             metadata.set(Metadata.CONTENT_TYPE, "application/xml");
@@ -85,8 +84,7 @@
     public void parse(
             InputStream stream, ContentHandler handler, Metadata metadata)
             throws IOException, SAXException, TikaException {
-        Map<String, Object> context = Collections.emptyMap();
-        parse(stream, handler, metadata, context);
+        parse(stream, handler, metadata, new ParseContext());
     }
 
     protected ContentHandler getContentHandler(
@@ -104,11 +102,11 @@
      * @return SAX parser
      * @throws TikaException if a SAX parser could not be created
      */
-    private SAXParser getSAXParser(Map<String, Object> context)
+    private SAXParser getSAXParser(ParseContext context)
             throws TikaException {
-        Object parser = context.get(SAXParser.class.getName());
+        SAXParser parser = context.get(SAXParser.class);
         if (parser instanceof SAXParser) {
-            return (SAXParser) parser;
+            return parser;
         } else {
             try {
                 return getSAXParserFactory(context).newSAXParser();
@@ -129,10 +127,10 @@
      * @param context parsing context
      * @return SAX parser factory
      */
-    private SAXParserFactory getSAXParserFactory(Map<String, Object> context) {
-        Object factory = context.get(SAXParserFactory.class.getName());
-        if (factory instanceof SAXParserFactory) {
-            return (SAXParserFactory) factory;
+    private SAXParserFactory getSAXParserFactory(ParseContext context) {
+        SAXParserFactory factory = context.get(SAXParserFactory.class);
+        if (factory != null) {
+            return factory;
         } else {
             return getDefaultSAXParserFactory();
         }

Modified: lucene/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java (original)
+++ lucene/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java Fri Nov 13 23:20:32 2009
@@ -21,7 +21,6 @@
 import java.io.InputStream;
 import java.io.StringWriter;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 
 import junit.framework.TestCase;
@@ -29,6 +28,7 @@
 import org.apache.tika.Tika;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.sax.BodyContentHandler;
 import org.apache.tika.sax.TeeContentHandler;
 import org.xml.sax.Attributes;
@@ -62,7 +62,7 @@
             };
             new HtmlParser().parse(
                     stream, new TeeContentHandler(body, link),
-                    metadata, new HashMap<String, Object>());
+                    metadata, new ParseContext());
         } finally {
             stream.close();
         }
@@ -122,7 +122,7 @@
         ContentHandler handler = new BodyContentHandler();
         new HtmlParser().parse(
                 new ByteArrayInputStream(new byte[0]),
-                handler,  new Metadata(), new HashMap<String, Object>());
+                handler,  new Metadata(), new ParseContext());
         assertEquals("", handler.toString());
     }
 
@@ -200,7 +200,7 @@
                     }
                 },
                 new Metadata(),
-                new HashMap<String, Object>());
+                new ParseContext());
         assertEquals(1, links.size());
         assertEquals(url, links.get(0));
     }

Modified: lucene/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java
URL: http://svn.apache.org/viewvc/lucene/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java?rev=836057&r1=836056&r2=836057&view=diff
==============================================================================
--- lucene/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java (original)
+++ lucene/tika/trunk/tika-parsers/src/test/java/org/apache/tika/parser/mbox/MboxParserTest.java Fri Nov 13 23:20:32 2009
@@ -29,6 +29,7 @@
 import junit.framework.TestCase;
 
 import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.sax.XHTMLContentHandler;
 
@@ -43,10 +44,9 @@
         Metadata metadata = new Metadata();
         InputStream stream = getStream("test-documents/simple.mbox");
         ContentHandler handler = mock(DefaultHandler.class);
-        Map<String, Object> context = new HashMap<String, Object>();
 
         try {
-            parser.parse(stream, handler, metadata, context);
+            parser.parse(stream, handler, metadata, new ParseContext());
             verify(handler).startDocument();
             verify(handler, times(2)).startElement(eq(XHTMLContentHandler.XHTML), eq("p"), eq("p"), any(Attributes.class));
             verify(handler, times(2)).endElement(XHTMLContentHandler.XHTML, "p", "p");
@@ -63,10 +63,9 @@
         Metadata metadata = new Metadata();
         InputStream stream = getStream("test-documents/headers.mbox");
         ContentHandler handler = mock(DefaultHandler.class);
-        Map<String, Object> context = new HashMap<String, Object>();
 
         try {
-            parser.parse(stream, handler, metadata, context);
+            parser.parse(stream, handler, metadata, new ParseContext());
 
             verify(handler).startDocument();
             verify(handler).startElement(eq(XHTMLContentHandler.XHTML), eq("p"), eq("p"), any(Attributes.class));
@@ -89,10 +88,9 @@
         Metadata metadata = new Metadata();
         InputStream stream = getStream("test-documents/multiline.mbox");
         ContentHandler handler = mock(DefaultHandler.class);
-        Map<String, Object> context = new HashMap<String, Object>();
 
         try {
-            parser.parse(stream, handler, metadata, context);
+            parser.parse(stream, handler, metadata, new ParseContext());
 
             verify(handler).startDocument();
             verify(handler).startElement(eq(XHTMLContentHandler.XHTML), eq("p"), eq("p"), any(Attributes.class));
@@ -110,10 +108,9 @@
         Metadata metadata = new Metadata();
         InputStream stream = getStream("test-documents/quoted.mbox");
         ContentHandler handler = mock(DefaultHandler.class);
-        Map<String, Object> context = new HashMap<String, Object>();
 
         try {
-            parser.parse(stream, handler, metadata, context);
+            parser.parse(stream, handler, metadata, new ParseContext());
 
             verify(handler).startDocument();
             verify(handler).startElement(eq(XHTMLContentHandler.XHTML), eq("p"), eq("p"), any(Attributes.class));
@@ -133,10 +130,9 @@
         Metadata metadata = new Metadata();
         InputStream stream = getStream("test-documents/complex.mbox");
         ContentHandler handler = mock(DefaultHandler.class);
-        Map<String, Object> context = new HashMap<String, Object>();
 
         try {
-            parser.parse(stream, handler, metadata, context);
+            parser.parse(stream, handler, metadata, new ParseContext());
 
             verify(handler).startDocument();
             verify(handler, times(3)).startElement(eq(XHTMLContentHandler.XHTML), eq("p"), eq("p"), any(Attributes.class));