You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ni...@apache.org on 2018/04/08 12:14:24 UTC

[tika] branch multiple-parsers updated (d909b77 -> 26391d2)

This is an automated email from the ASF dual-hosted git repository.

nick pushed a change to branch multiple-parsers
in repository https://gitbox.apache.org/repos/asf/tika.git.


    from d909b77  Preseve old fallback decorator behaviour with explicit mime types override
     new 4665561  Support loading well known enum params
     new be246f1  Pass the params to the composite parser constructors
     new dda50b6  MultipleParser constructor that accepts Params
     new f412d56  TikaConfig loading of Multiple Parsers with Policy
     new 26391d2  Ignore expected warnings, mark TODOs done

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../main/java/org/apache/tika/config/Param.java    | 22 ++++++++++++++++-
 .../java/org/apache/tika/config/TikaConfig.java    | 28 +++++++++++++++-------
 .../parser/multiple/AbstractMultipleParser.java    | 25 +++++++++++++++----
 .../tika/parser/multiple/FallbackParser.java       |  8 ++++++-
 .../tika/parser/multiple/SupplementingParser.java  |  8 ++++++-
 .../org/apache/tika/config/TikaConfigTest.java     | 20 +++++++++++++++-
 .../tika/config/TIKA-1509-multiple-fallback.xml    |  2 +-
 7 files changed, 94 insertions(+), 19 deletions(-)

-- 
To stop receiving notification emails like this one, please contact
nick@apache.org.

[tika] 04/05: TikaConfig loading of Multiple Parsers with Policy

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nick pushed a commit to branch multiple-parsers
in repository https://gitbox.apache.org/repos/asf/tika.git

commit f412d56218ffe21f65be4640aaf435c9896b3d16
Author: Nick Burch <ni...@gagravarr.org>
AuthorDate: Sun Apr 8 13:08:19 2018 +0100

    TikaConfig loading of Multiple Parsers with Policy
---
 .../main/java/org/apache/tika/config/TikaConfig.java |  6 ++++++
 .../tika/parser/multiple/AbstractMultipleParser.java |  6 +++++-
 .../java/org/apache/tika/config/TikaConfigTest.java  | 20 +++++++++++++++++++-
 3 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java b/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java
index ab6e23f..466d2bc 100644
--- a/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java
+++ b/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java
@@ -789,6 +789,12 @@ public class TikaConfig {
             }
             if (parser == null) {
                 try {
+                    c = parserClass.getConstructor(MediaTypeRegistry.class, Collection.class, Map.class);
+                    parser = c.newInstance(registry, childParsers, params);
+                } catch (NoSuchMethodException me) {}
+            }
+            if (parser == null) {
+                try {
                     c = parserClass.getConstructor(MediaTypeRegistry.class, List.class);
                     parser = c.newInstance(registry, childParsers);
                 } catch (NoSuchMethodException me) {}
diff --git a/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java b/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
index 793b3f4..56ba7f4 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
@@ -146,7 +146,7 @@ public abstract class AbstractMultipleParser extends AbstractParser {
     public AbstractMultipleParser(MediaTypeRegistry registry, 
                                   Collection<? extends Parser> parsers,
                                   Map<String, Param> params) {
-        
+        this(registry, getMetadataPolicy(params), parsers);
     }
     public AbstractMultipleParser(MediaTypeRegistry registry, MetadataPolicy policy,
                                   Parser... parsers) {
@@ -173,6 +173,10 @@ public abstract class AbstractMultipleParser extends AbstractParser {
         return offeredTypes;
     }
     
+    public MetadataPolicy getMetadataPolicy() {
+        return policy;
+    }
+    
     /**
      * Used to allow implementations to prepare or change things
      *  before parsing occurs
diff --git a/tika-core/src/test/java/org/apache/tika/config/TikaConfigTest.java b/tika-core/src/test/java/org/apache/tika/config/TikaConfigTest.java
index aa10923..2c0f14c 100644
--- a/tika-core/src/test/java/org/apache/tika/config/TikaConfigTest.java
+++ b/tika-core/src/test/java/org/apache/tika/config/TikaConfigTest.java
@@ -37,6 +37,7 @@ import org.apache.tika.parser.EmptyParser;
 import org.apache.tika.parser.ErrorParser;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.parser.ParserDecorator;
+import org.apache.tika.parser.multiple.FallbackParser;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -285,11 +286,28 @@ public class TikaConfigTest extends AbstractTikaConfigTest {
         TikaConfig config = getConfig("TIKA-2389-throw-default-overridden.xml");
     }
 
-
     @Test
     public void testInitializerPerParserWarn() throws Exception {
         //TODO: test that this was logged at WARN level
         TikaConfig config = getConfig("TIKA-2389-warn-per-parser.xml");
     }
 
+    @Test
+    public void testMultipleWithFallback() throws Exception {
+        TikaConfig config = getConfig("TIKA-1509-multiple-fallback.xml");
+        CompositeParser parser = (CompositeParser)config.getParser();
+        assertEquals(2, parser.getAllComponentParsers().size());
+        Parser p;
+
+        p = parser.getAllComponentParsers().get(0);
+        assertTrue(p.toString(), p instanceof ParserDecorator);
+        assertEquals(DefaultParser.class, ((ParserDecorator)p).getWrappedParser().getClass());
+
+        p = parser.getAllComponentParsers().get(1);
+        assertTrue(p.toString(), p instanceof ParserDecorator);
+        assertEquals(FallbackParser.class, ((ParserDecorator)p).getWrappedParser().getClass());
+        
+        FallbackParser fbp = (FallbackParser)((ParserDecorator)p).getWrappedParser();
+        assertEquals("DISCARD_ALL", fbp.getMetadataPolicy().toString());
+    }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
nick@apache.org.

[tika] 03/05: MultipleParser constructor that accepts Params

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nick pushed a commit to branch multiple-parsers
in repository https://gitbox.apache.org/repos/asf/tika.git

commit dda50b6a82dcf45d38dc5a89cb60cc5ca82a01f6
Author: Nick Burch <ni...@gagravarr.org>
AuthorDate: Sun Apr 8 13:00:23 2018 +0100

    MultipleParser constructor that accepts Params
---
 .../tika/parser/multiple/AbstractMultipleParser.java       | 14 ++++++++++++++
 .../org/apache/tika/parser/multiple/FallbackParser.java    |  6 ++++++
 .../apache/tika/parser/multiple/SupplementingParser.java   |  6 ++++++
 3 files changed, 26 insertions(+)

diff --git a/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java b/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
index 6d168eb..793b3f4 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
@@ -27,8 +27,10 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
+import org.apache.tika.config.Param;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.io.TemporaryResources;
 import org.apache.tika.metadata.Metadata;
@@ -88,6 +90,7 @@ public abstract class AbstractMultipleParser extends AbstractParser {
          */
         KEEP_ALL
     };
+    protected static final String METADATA_POLICY_CONFIG_KEY = "metadataPolicy";
     
     /**
      * Media type registry.
@@ -134,6 +137,17 @@ public abstract class AbstractMultipleParser extends AbstractParser {
     }
 
     
+    protected static MetadataPolicy getMetadataPolicy(Map<String, Param> params) {
+        if (params.containsKey(METADATA_POLICY_CONFIG_KEY)) {
+            return (MetadataPolicy)params.get(METADATA_POLICY_CONFIG_KEY).getValue();
+        }
+        throw new IllegalArgumentException("Required parameter '"+METADATA_POLICY_CONFIG_KEY+"' not supplied");
+    }
+    public AbstractMultipleParser(MediaTypeRegistry registry, 
+                                  Collection<? extends Parser> parsers,
+                                  Map<String, Param> params) {
+        
+    }
     public AbstractMultipleParser(MediaTypeRegistry registry, MetadataPolicy policy,
                                   Parser... parsers) {
         this(registry, policy, Arrays.asList(parsers));
diff --git a/tika-core/src/main/java/org/apache/tika/parser/multiple/FallbackParser.java b/tika-core/src/main/java/org/apache/tika/parser/multiple/FallbackParser.java
index 8dbc14e..983f792 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/multiple/FallbackParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/multiple/FallbackParser.java
@@ -19,7 +19,9 @@ package org.apache.tika.parser.multiple;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
+import org.apache.tika.config.Param;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.mime.MediaTypeRegistry;
 import org.apache.tika.parser.ParseContext;
@@ -48,6 +50,10 @@ public class FallbackParser extends AbstractMultipleParser {
             Arrays.asList(MetadataPolicy.values());
 
 
+    public FallbackParser(MediaTypeRegistry registry,
+                          Collection<? extends Parser> parsers, Map<String, Param> params) {
+        super(registry, parsers, params);
+    }
     public FallbackParser(MediaTypeRegistry registry, MetadataPolicy policy,
                           Collection<? extends Parser> parsers) {
         super(registry, policy, parsers);
diff --git a/tika-core/src/main/java/org/apache/tika/parser/multiple/SupplementingParser.java b/tika-core/src/main/java/org/apache/tika/parser/multiple/SupplementingParser.java
index a24170d..3b9cb1d 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/multiple/SupplementingParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/multiple/SupplementingParser.java
@@ -19,7 +19,9 @@ package org.apache.tika.parser.multiple;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
+import org.apache.tika.config.Param;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.mime.MediaTypeRegistry;
 import org.apache.tika.parser.ParseContext;
@@ -53,6 +55,10 @@ public class SupplementingParser extends AbstractMultipleParser {
                           MetadataPolicy.KEEP_ALL);
 
 
+    public SupplementingParser(MediaTypeRegistry registry,
+                               Collection<? extends Parser> parsers, Map<String, Param> params) {
+        super(registry, parsers, params);
+    }
     public SupplementingParser(MediaTypeRegistry registry, MetadataPolicy policy,
                                Parser... parsers) {
         this(registry, policy, Arrays.asList(parsers));

-- 
To stop receiving notification emails like this one, please contact
nick@apache.org.

[tika] 01/05: Support loading well known enum params

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nick pushed a commit to branch multiple-parsers
in repository https://gitbox.apache.org/repos/asf/tika.git

commit 4665561c883d3eab2a34d55edab64bb97977b4e1
Author: Nick Burch <ni...@gagravarr.org>
AuthorDate: Sun Apr 8 10:37:21 2018 +0100

    Support loading well known enum params
---
 .../main/java/org/apache/tika/config/Param.java    | 22 +++++++++++++++++++++-
 .../tika/config/TIKA-1509-multiple-fallback.xml    |  2 +-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/tika-core/src/main/java/org/apache/tika/config/Param.java b/tika-core/src/main/java/org/apache/tika/config/Param.java
index 112955b..232521d 100644
--- a/tika-core/src/main/java/org/apache/tika/config/Param.java
+++ b/tika-core/src/main/java/org/apache/tika/config/Param.java
@@ -17,6 +17,7 @@
 package org.apache.tika.config;
 
 import org.apache.tika.exception.TikaException;
+import org.apache.tika.parser.multiple.AbstractMultipleParser;
 import org.apache.tika.utils.XMLReaderUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -53,6 +54,7 @@ public class Param<T> implements Serializable {
 
     private static final Map<Class<?>, String> map = new HashMap<>();
     private static final Map<String, Class<?>> reverseMap = new HashMap<>();
+    private static final Map<String, Class<?>> wellKnownMap = new HashMap<>();
 
     static {
         map.put(Boolean.class, "bool");
@@ -70,6 +72,7 @@ public class Param<T> implements Serializable {
         for (Map.Entry<Class<?>, String> entry : map.entrySet()) {
             reverseMap.put(entry.getValue(), entry.getKey());
         }
+        wellKnownMap.put("metadataPolicy", AbstractMultipleParser.MetadataPolicy.class);
     }
 
     private Class<T> type;
@@ -87,6 +90,10 @@ public class Param<T> implements Serializable {
         this.name = name;
         this.type = type;
         this.value = value.toString();
+        
+        if (this.type == null) {
+            this.type = (Class<T>)wellKnownMap.get(name);
+        }
     }
 
     public Param(String name, T value){
@@ -183,11 +190,19 @@ public class Param<T> implements Serializable {
         
         Node nameAttr = node.getAttributes().getNamedItem("name");
         Node typeAttr = node.getAttributes().getNamedItem("type");
+        Node valueAttr = node.getAttributes().getNamedItem("value");
         Node value = node.getFirstChild();
+        if (valueAttr != null && (value == null || value.getTextContent() == null)) {
+            value = valueAttr;
+        }
         
         Param<T> ret = new Param<T>();
         ret.name  = nameAttr.getTextContent();
-        ret.setTypeString(typeAttr.getTextContent());
+        if (typeAttr != null) {
+            ret.setTypeString(typeAttr.getTextContent());
+        } else {
+            ret.type = (Class<T>)wellKnownMap.get(ret.name);
+        }
         ret.value = value.getTextContent();
         
         return ret;
@@ -205,6 +220,11 @@ public class Param<T> implements Serializable {
     
     private static <T> T getTypedValue(Class<T> type, String value) {
         try {
+            if (type.isEnum()) {
+                Object val = Enum.valueOf((Class)type, value);
+                return (T)val;
+            }
+            
             Constructor<T> constructor = type.getConstructor(String.class);
             constructor.setAccessible(true);
             return constructor.newInstance(value);
diff --git a/tika-core/src/test/resources/org/apache/tika/config/TIKA-1509-multiple-fallback.xml b/tika-core/src/test/resources/org/apache/tika/config/TIKA-1509-multiple-fallback.xml
index 77aba07..e0bc083 100644
--- a/tika-core/src/test/resources/org/apache/tika/config/TIKA-1509-multiple-fallback.xml
+++ b/tika-core/src/test/resources/org/apache/tika/config/TIKA-1509-multiple-fallback.xml
@@ -27,7 +27,7 @@
     <!--  if the first parser fails (as it will!) -->
     <parser class="org.apache.tika.parser.multiple.FallbackParser">
        <params>
-          <param name="metadataPolicy" value="DISCARD" />
+          <param name="metadataPolicy" value="DISCARD_ALL" />
        </params>
        <parser class="org.apache.tika.parser.ErrorParser"/>
        <parser class="org.apache.tika.parser.EmptyParser"/>

-- 
To stop receiving notification emails like this one, please contact
nick@apache.org.

[tika] 05/05: Ignore expected warnings, mark TODOs done

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nick pushed a commit to branch multiple-parsers
in repository https://gitbox.apache.org/repos/asf/tika.git

commit 26391d292df6ac001f812ab252659de30114bf8c
Author: Nick Burch <ni...@gagravarr.org>
AuthorDate: Sun Apr 8 13:09:49 2018 +0100

    Ignore expected warnings, mark TODOs done
---
 .../org/apache/tika/parser/multiple/AbstractMultipleParser.java    | 7 ++-----
 .../main/java/org/apache/tika/parser/multiple/FallbackParser.java  | 2 +-
 .../java/org/apache/tika/parser/multiple/SupplementingParser.java  | 2 +-
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java b/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
index 56ba7f4..d687e41 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/multiple/AbstractMultipleParser.java
@@ -114,10 +114,6 @@ public abstract class AbstractMultipleParser extends AbstractParser {
      */
     private Set<MediaType> offeredTypes;
     
-    // TODO Tika Config XML Support for these parsers and their
-    //  metadata policies + parsers + mimetypes
-    // See https://wiki.apache.org/tika/CompositeParserDiscussion
-    
     /**
      * Returns the media type registry used to infer type relationships.
      *
@@ -136,13 +132,14 @@ public abstract class AbstractMultipleParser extends AbstractParser {
         this.registry = registry;
     }
 
-    
+    @SuppressWarnings("rawtypes")
     protected static MetadataPolicy getMetadataPolicy(Map<String, Param> params) {
         if (params.containsKey(METADATA_POLICY_CONFIG_KEY)) {
             return (MetadataPolicy)params.get(METADATA_POLICY_CONFIG_KEY).getValue();
         }
         throw new IllegalArgumentException("Required parameter '"+METADATA_POLICY_CONFIG_KEY+"' not supplied");
     }
+    @SuppressWarnings("rawtypes")
     public AbstractMultipleParser(MediaTypeRegistry registry, 
                                   Collection<? extends Parser> parsers,
                                   Map<String, Param> params) {
diff --git a/tika-core/src/main/java/org/apache/tika/parser/multiple/FallbackParser.java b/tika-core/src/main/java/org/apache/tika/parser/multiple/FallbackParser.java
index 983f792..0bb1a53 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/multiple/FallbackParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/multiple/FallbackParser.java
@@ -49,7 +49,7 @@ public class FallbackParser extends AbstractMultipleParser {
     public static final List<MetadataPolicy> allowedPolicies =
             Arrays.asList(MetadataPolicy.values());
 
-
+    @SuppressWarnings("rawtypes")
     public FallbackParser(MediaTypeRegistry registry,
                           Collection<? extends Parser> parsers, Map<String, Param> params) {
         super(registry, parsers, params);
diff --git a/tika-core/src/main/java/org/apache/tika/parser/multiple/SupplementingParser.java b/tika-core/src/main/java/org/apache/tika/parser/multiple/SupplementingParser.java
index 3b9cb1d..67766da 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/multiple/SupplementingParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/multiple/SupplementingParser.java
@@ -54,7 +54,7 @@ public class SupplementingParser extends AbstractMultipleParser {
                           MetadataPolicy.LAST_WINS,
                           MetadataPolicy.KEEP_ALL);
 
-
+    @SuppressWarnings("rawtypes")
     public SupplementingParser(MediaTypeRegistry registry,
                                Collection<? extends Parser> parsers, Map<String, Param> params) {
         super(registry, parsers, params);

-- 
To stop receiving notification emails like this one, please contact
nick@apache.org.

[tika] 02/05: Pass the params to the composite parser constructors

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nick pushed a commit to branch multiple-parsers
in repository https://gitbox.apache.org/repos/asf/tika.git

commit be246f1d395007efc26e6e1648ed6dc2912c2efa
Author: Nick Burch <ni...@gagravarr.org>
AuthorDate: Sun Apr 8 10:43:05 2018 +0100

    Pass the params to the composite parser constructors
---
 .../java/org/apache/tika/config/TikaConfig.java    | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java b/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java
index 5b1b1ab..ab6e23f 100644
--- a/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java
+++ b/tika-core/src/main/java/org/apache/tika/config/TikaConfig.java
@@ -63,6 +63,7 @@ import org.apache.tika.parser.DefaultParser;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
 import org.apache.tika.parser.ParserDecorator;
+import org.apache.tika.parser.multiple.AbstractMultipleParser;
 import org.apache.tika.utils.AnnotationUtils;
 import org.apache.tika.utils.XMLReaderUtils;
 import org.w3c.dom.Document;
@@ -537,8 +538,8 @@ public class TikaConfig {
         abstract CT createDefault(MimeTypes mimeTypes, ServiceLoader loader);
         abstract CT createComposite(List<T> loaded, MimeTypes mimeTypes, ServiceLoader loader);
         abstract T createComposite(Class<? extends T> compositeClass, 
-                List<T> children, Set<Class<? extends T>> excludeChildren, 
-                MimeTypes mimeTypes, ServiceLoader loader) 
+                List<T> children, Set<Class<? extends T>> excludeChildren,
+                Map<String, Param> params, MimeTypes mimeTypes, ServiceLoader loader) 
                 throws InvocationTargetException, IllegalAccessException, InstantiationException;
         abstract T decorate(T created, Element element) 
                 throws IOException, TikaException; // eg explicit mime types 
@@ -596,6 +597,9 @@ public class TikaConfig {
                 loaded = preLoadOne(loadedClass, name, mimeTypes);
                 if (loaded != null) return loaded;
                 
+                // Get any parameters / settings for the parser
+                Map<String, Param> params = getParams(element);
+                
                 // Is this a composite or decorated class? If so, support recursion
                 if (isComposite(loadedClass)) {
                     // Get the child objects for it
@@ -621,7 +625,7 @@ public class TikaConfig {
                     }
                     
                     // Create the Composite
-                    loaded = createComposite(loadedClass, children, excludeChildren, mimeTypes, loader);
+                    loaded = createComposite(loadedClass, children, excludeChildren, params, mimeTypes, loader);
 
                     // Default constructor fallback
                     if (loaded == null) {
@@ -634,7 +638,6 @@ public class TikaConfig {
                     // See the thread "Configuring parsers and translators" for details 
                 }
 
-                Map<String, Param> params = getParams(element);
                 //Assigning the params to bean fields/setters
                 AnnotationUtils.assignFieldParams(loaded, params);
                 if (loaded instanceof Initializable) {
@@ -738,6 +741,7 @@ public class TikaConfig {
         @Override
         boolean isComposite(Class<? extends Parser> loadedClass) {
             if (CompositeParser.class.isAssignableFrom(loadedClass) ||
+                AbstractMultipleParser.class.isAssignableFrom(loadedClass) ||
                 ParserDecorator.class.isAssignableFrom(loadedClass)) {
                 return true;
             }
@@ -755,7 +759,7 @@ public class TikaConfig {
         @Override
         Parser createComposite(Class<? extends Parser> parserClass,
                 List<Parser> childParsers, Set<Class<? extends Parser>> excludeParsers,
-                MimeTypes mimeTypes, ServiceLoader loader) 
+                Map<String, Param> params, MimeTypes mimeTypes, ServiceLoader loader) 
                 throws InvocationTargetException, IllegalAccessException, InstantiationException {
             Parser parser = null;
             Constructor<? extends Parser> c = null;
@@ -878,7 +882,7 @@ public class TikaConfig {
         Detector createComposite(Class<? extends Detector> detectorClass,
                 List<Detector> childDetectors,
                 Set<Class<? extends Detector>> excludeDetectors,
-                MimeTypes mimeTypes, ServiceLoader loader)
+                Map<String, Param> params, MimeTypes mimeTypes, ServiceLoader loader)
                 throws InvocationTargetException, IllegalAccessException,
                 InstantiationException {
             Detector detector = null;
@@ -951,7 +955,7 @@ public class TikaConfig {
         Translator createComposite(Class<? extends Translator> compositeClass,
                 List<Translator> children,
                 Set<Class<? extends Translator>> excludeChildren,
-                MimeTypes mimeTypes, ServiceLoader loader)
+                Map<String, Param> params, MimeTypes mimeTypes, ServiceLoader loader)
                 throws InvocationTargetException, IllegalAccessException,
                 InstantiationException {
             throw new InstantiationException("Only one translator supported");
@@ -968,7 +972,7 @@ public class TikaConfig {
                 Class<? extends ConfigurableThreadPoolExecutor> compositeClass,
                 List<ConfigurableThreadPoolExecutor> children,
                 Set<Class<? extends ConfigurableThreadPoolExecutor>> excludeChildren,
-                MimeTypes mimeTypes, ServiceLoader loader)
+                Map<String, Param> params, MimeTypes mimeTypes, ServiceLoader loader)
                 throws InvocationTargetException, IllegalAccessException,
                 InstantiationException {
             throw new InstantiationException("Only one executor service supported");
@@ -1090,7 +1094,7 @@ public class TikaConfig {
         EncodingDetector createComposite(Class<? extends EncodingDetector> encodingDetectorClass,
                                          List<EncodingDetector> childEncodingDetectors,
                                          Set<Class<? extends EncodingDetector>> excludeDetectors,
-                                         MimeTypes mimeTypes, ServiceLoader loader)
+                                         Map<String, Param> params, MimeTypes mimeTypes, ServiceLoader loader)
                 throws InvocationTargetException, IllegalAccessException,
                 InstantiationException {
             EncodingDetector encodingDetector = null;

-- 
To stop receiving notification emails like this one, please contact
nick@apache.org.