Modified: 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/RecursiveMetadataResource.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/RecursiveMetadataResource.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/RecursiveMetadataResource.java
 (original)
+++ 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/RecursiveMetadataResource.java
 Sun Jun 28 01:57:30 2015
@@ -27,32 +27,23 @@ import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
-
 import java.io.InputStream;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.cxf.jaxrs.ext.multipart.Attachment;
-import org.apache.tika.config.TikaConfig;
 import org.apache.tika.language.ProfilingHandler;
 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.RecursiveParserWrapper;
 import org.apache.tika.sax.BasicContentHandlerFactory;
 import org.apache.tika.server.MetadataList;
-import org.xml.sax.helpers.DefaultHandler;
 
 @Path("/rmeta")
 public class RecursiveMetadataResource {
     private static final Log logger = 
LogFactory.getLog(RecursiveMetadataResource.class);
 
-    private TikaConfig tikaConfig;
-
-    public RecursiveMetadataResource(TikaConfig tikaConfig) {
-        this.tikaConfig = tikaConfig;
-    }
-
     @POST
     @Consumes("multipart/form-data")
     @Produces({"text/csv", "application/json"})
@@ -65,6 +56,7 @@ public class RecursiveMetadataResource {
     @PUT
     @Produces("application/json")
     public Response getMetadata(InputStream is, @Context HttpHeaders 
httpHeaders, @Context UriInfo info) throws Exception {
+               is = TikaUtils.getInputSteam(is, httpHeaders);
         return Response.ok(
                 parseMetadata(is, httpHeaders.getRequestHeaders(), 
info)).build();
     }
@@ -74,7 +66,7 @@ public class RecursiveMetadataResource {
                        throws Exception {
                final Metadata metadata = new Metadata();
                final ParseContext context = new ParseContext();
-               AutoDetectParser parser = TikaResource.createParser(tikaConfig);
+               Parser parser = TikaResource.createParser();
                // TODO: parameterize choice of handler and max chars?
                BasicContentHandlerFactory.HANDLER_TYPE type = 
BasicContentHandlerFactory.HANDLER_TYPE.TEXT;
                RecursiveParserWrapper wrapper = new 
RecursiveParserWrapper(parser,

Modified: 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaDetectors.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaDetectors.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaDetectors.java
 (original)
+++ 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaDetectors.java
 Sun Jun 28 01:57:30 2015
@@ -19,13 +19,11 @@ package org.apache.tika.server.resource;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.tika.config.TikaConfig;
 import org.apache.tika.detect.CompositeDetector;
 import org.apache.tika.detect.Detector;
 import org.apache.tika.server.HTMLHelper;
@@ -37,11 +35,9 @@ import org.eclipse.jetty.util.ajax.JSON;
  */
 @Path("/detectors")
 public class TikaDetectors {
-    private TikaConfig tika;
     private HTMLHelper html;
 
-    public TikaDetectors(TikaConfig tika) {
-        this.tika = tika;
+    public TikaDetectors() {
         this.html = new HTMLHelper();
     }
 
@@ -50,7 +46,7 @@ public class TikaDetectors {
     public String getDectorsHTML() {
         StringBuffer h = new StringBuffer();
         html.generateHeader(h, "Detectors available to Apache Tika");
-        detectorAsHTML(tika.getDetector(), h, 2);
+        detectorAsHTML(TikaResource.getConfig().getDetector(), h, 2);
         html.generateFooter(h);
         return h.toString();
     }
@@ -79,7 +75,7 @@ public class TikaDetectors {
     @Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)
     public String getDetectorsJSON() {
         Map<String, Object> details = new HashMap<String, Object>();
-        detectorAsMap(tika.getDetector(), details);
+        detectorAsMap(TikaResource.getConfig().getDetector(), details);
         return JSON.toString(details);
     }
 
@@ -103,10 +99,9 @@ public class TikaDetectors {
     @Produces("text/plain")
     public String getDetectorsPlain() {
         StringBuffer text = new StringBuffer();
-        renderDetector(tika.getDetector(), text, 0);
+        renderDetector(TikaResource.getConfig().getDetector(), text, 0);
         return text.toString();
     }
-
     private void renderDetector(Detector d, StringBuffer text, int indent) {
         boolean isComposite = (d instanceof CompositeDetector);
         String name = d.getClass().getName();

Modified: 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaMimeTypes.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaMimeTypes.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaMimeTypes.java
 (original)
+++ 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaMimeTypes.java
 Sun Jun 28 01:57:30 2015
@@ -19,7 +19,6 @@ package org.apache.tika.server.resource;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
-
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -27,7 +26,6 @@ import java.util.Map;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
-import org.apache.tika.config.TikaConfig;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.mime.MediaTypeRegistry;
 import org.apache.tika.parser.CompositeParser;
@@ -41,11 +39,9 @@ import org.eclipse.jetty.util.ajax.JSON;
  */
 @Path("/mime-types")
 public class TikaMimeTypes {
-    private TikaConfig tika;
     private HTMLHelper html;
 
-    public TikaMimeTypes(TikaConfig tika) {
-        this.tika = tika;
+    public TikaMimeTypes() {
         this.html = new HTMLHelper();
     }
 
@@ -139,8 +135,8 @@ public class TikaMimeTypes {
     }
 
     protected List<MediaTypeDetails> getMediaTypes() {
-        MediaTypeRegistry registry = tika.getMediaTypeRegistry();
-        Map<MediaType, Parser> parsers = ((CompositeParser) 
tika.getParser()).getParsers();
+        MediaTypeRegistry registry = 
TikaResource.getConfig().getMediaTypeRegistry();
+        Map<MediaType, Parser> parsers = ((CompositeParser) 
TikaResource.getConfig().getParser()).getParsers();
         List<MediaTypeDetails> types =
                 new 
ArrayList<TikaMimeTypes.MediaTypeDetails>(registry.getTypes().size());
 

Modified: 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaParsers.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaParsers.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaParsers.java
 (original)
+++ 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaParsers.java
 Sun Jun 28 01:57:30 2015
@@ -19,7 +19,6 @@ package org.apache.tika.server.resource;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
-
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -29,7 +28,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.tika.config.TikaConfig;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.CompositeParser;
 import org.apache.tika.parser.ParseContext;
@@ -46,11 +44,9 @@ import org.eclipse.jetty.util.ajax.JSON;
 @Path("/parsers")
 public class TikaParsers {
     private static final ParseContext EMPTY_PC = new ParseContext();
-    private TikaConfig tika;
     private HTMLHelper html;
 
-    public TikaParsers(TikaConfig tika) {
-        this.tika = tika;
+    public TikaParsers() {
         this.html = new HTMLHelper();
     }
 
@@ -68,7 +64,7 @@ public class TikaParsers {
     }
 
     protected String getParsersHTML(boolean withMimeTypes) {
-        ParserDetails p = new ParserDetails(tika.getParser());
+        ParserDetails p = new 
ParserDetails(TikaResource.getConfig().getParser());
 
         StringBuffer h = new StringBuffer();
         html.generateHeader(h, "Parsers available to Apache Tika");
@@ -130,7 +126,7 @@ public class TikaParsers {
 
     protected String getParsersJSON(boolean withMimeTypes) {
         Map<String, Object> details = new HashMap<String, Object>();
-        parserAsMap(new ParserDetails(tika.getParser()), withMimeTypes, 
details);
+        parserAsMap(new ParserDetails(TikaResource.getConfig().getParser()), 
withMimeTypes, details);
         return JSON.toString(details);
     }
 
@@ -171,10 +167,9 @@ public class TikaParsers {
 
     protected String getParsersPlain(boolean withMimeTypes) {
         StringBuffer text = new StringBuffer();
-        renderParser(new ParserDetails(tika.getParser()), withMimeTypes, text, 
"");
+        renderParser(new ParserDetails(TikaResource.getConfig().getParser()), 
withMimeTypes, text, "");
         return text.toString();
     }
-
     private void renderParser(ParserDetails p, boolean withMimeTypes, 
StringBuffer text, String indent) {
         String nextIndent = indent + "  ";
 

Modified: 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java
 (original)
+++ 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaResource.java
 Sun Jun 28 01:57:30 2015
@@ -62,8 +62,10 @@ import org.apache.tika.metadata.Metadata
 import org.apache.tika.metadata.TikaMetadataKeys;
 import org.apache.tika.mime.MediaType;
 import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.DigestingParser;
 import org.apache.tika.parser.ParseContext;
 import org.apache.tika.parser.Parser;
+import org.apache.tika.parser.ParserDecorator;
 import org.apache.tika.parser.PasswordProvider;
 import org.apache.tika.parser.html.HtmlParser;
 import org.apache.tika.parser.ocr.TesseractOCRConfig;
@@ -84,10 +86,12 @@ public class TikaResource {
 
     private static final Log logger = LogFactory.getLog(TikaResource.class);
 
-    private TikaConfig tikaConfig;
+    private static TikaConfig tikaConfig;
+    private static DigestingParser.Digester digester = null;
 
-    public TikaResource(TikaConfig tikaConfig) {
-        this.tikaConfig = tikaConfig;
+    public static void init(TikaConfig config, DigestingParser.Digester 
digestr) {
+        tikaConfig = config;
+        digester = digestr;
     }
 
     static {
@@ -95,14 +99,14 @@ public class TikaResource {
     }
 
     @SuppressWarnings("serial")
-    public static AutoDetectParser createParser(TikaConfig tikaConfig) {
-        final AutoDetectParser parser = new AutoDetectParser(tikaConfig);
+    public static Parser createParser() {
+        final Parser parser = new AutoDetectParser(tikaConfig);
 
-        Map<MediaType, Parser> parsers = parser.getParsers();
+        Map<MediaType, Parser> parsers = 
((AutoDetectParser)parser).getParsers();
         parsers.put(MediaType.APPLICATION_XML, new HtmlParser());
-        parser.setParsers(parsers);
+        ((AutoDetectParser)parser).setParsers(parsers);
 
-        parser.setFallback(new Parser() {
+        ((AutoDetectParser)parser).setFallback(new Parser() {
             public Set<MediaType> getSupportedTypes(ParseContext parseContext) 
{
                 return parser.getSupportedTypes(parseContext);
             }
@@ -111,10 +115,16 @@ public class TikaResource {
                 throw new 
WebApplicationException(Response.Status.UNSUPPORTED_MEDIA_TYPE);
             }
         });
-
+        if (digester != null) {
+            return new DigestingParser(parser, digester);
+        }
         return parser;
     }
 
+    public static TikaConfig getConfig() {
+        return tikaConfig;
+    }
+
     public static String detectFilename(MultivaluedMap<String, String> 
httpHeaders) {
 
         String disposition = httpHeaders.getFirst("Content-Disposition");
@@ -192,7 +202,7 @@ public class TikaResource {
     }
 
     @SuppressWarnings("serial")
-    public static void fillMetadata(AutoDetectParser parser, Metadata 
metadata, ParseContext context, MultivaluedMap<String, String> httpHeaders) {
+    public static void fillMetadata(Parser parser, Metadata metadata, 
ParseContext context, MultivaluedMap<String, String> httpHeaders) {
         String fileName = detectFilename(httpHeaders);
         if (fileName != null) {
             metadata.set(TikaMetadataKeys.RESOURCE_NAME_KEY, fileName);
@@ -212,9 +222,9 @@ public class TikaResource {
         if (mediaType != null) {
             metadata.add(org.apache.tika.metadata.HttpHeaders.CONTENT_TYPE, 
mediaType.toString());
 
-            final Detector detector = parser.getDetector();
+            final Detector detector = getDetector(parser);
 
-            parser.setDetector(new Detector() {
+            setDetector(parser, new Detector() {
                 public MediaType detect(InputStream inputStream, Metadata 
metadata) throws IOException {
                     String ct = 
metadata.get(org.apache.tika.metadata.HttpHeaders.CONTENT_TYPE);
 
@@ -238,8 +248,35 @@ public class TikaResource {
         }
     }
 
+    public static void setDetector(Parser p, Detector detector) {
+        AutoDetectParser adp = getAutoDetectParser(p);
+        adp.setDetector(detector);
+    }
+
+    public static Detector getDetector(Parser p) {
+        AutoDetectParser adp = getAutoDetectParser(p);
+        return adp.getDetector();
+    }
+
+    private static AutoDetectParser getAutoDetectParser(Parser p) {
+        //bit stinky
+        if (p instanceof AutoDetectParser) {
+            return (AutoDetectParser)p;
+        } else if (p instanceof ParserDecorator) {
+            Parser wrapped = ((ParserDecorator)p).getWrappedParser();
+            if (wrapped instanceof AutoDetectParser) {
+                return (AutoDetectParser)wrapped;
+            }
+            throw new RuntimeException("Couldn't find AutoDetectParser within: 
"+wrapped.getClass());
+
+        }
+        throw new RuntimeException("Couldn't find AutoDetectParser within: 
"+p.getClass());
+
+    }
+
     public static void parse(Parser parser, Log logger, String path, 
InputStream inputStream,
                              ContentHandler handler, Metadata metadata, 
ParseContext parseContext) throws IOException {
+        inputStream = TikaInputStream.get(inputStream);
         try {
             parser.parse(inputStream, handler, metadata, parseContext);
         } catch (SAXException e) {
@@ -258,6 +295,8 @@ public class TikaResource {
                     path
             ), e);
             throw new TikaServerParseException(e);
+        } finally {
+            inputStream.close();
         }
     }
 
@@ -300,7 +339,7 @@ public class TikaResource {
     }
 
     public StreamingOutput produceText(final InputStream is, 
MultivaluedMap<String, String> httpHeaders, final UriInfo info) {
-        final AutoDetectParser parser = createParser(tikaConfig);
+        final Parser parser = createParser();
         final Metadata metadata = new Metadata();
         final ParseContext context = new ParseContext();
 
@@ -315,12 +354,10 @@ public class TikaResource {
 
                 BodyContentHandler body = new BodyContentHandler(new 
RichTextContentHandler(writer));
 
-                TikaInputStream tis = TikaInputStream.get(is);
-
                 try {
-                    parse(parser, logger, info.getPath(), tis, body, metadata, 
context);
+                    parse(parser, logger, info.getPath(), is, body, metadata, 
context);
                 } finally {
-                    tis.close();
+                    is.close();
                 }
             }
         };
@@ -358,7 +395,7 @@ public class TikaResource {
 
     private StreamingOutput produceOutput(final InputStream is, final 
MultivaluedMap<String, String> httpHeaders,
                                           final UriInfo info, final String 
format) {
-        final AutoDetectParser parser = createParser(tikaConfig);
+        final Parser parser = createParser();
         final Metadata metadata = new Metadata();
         final ParseContext context = new ParseContext();
 
@@ -386,13 +423,7 @@ public class TikaResource {
                     throw new WebApplicationException(e);
                 }
 
-                TikaInputStream tis = TikaInputStream.get(is);
-
-                try {
-                    parse(parser, logger, info.getPath(), tis, content, 
metadata, context);
-                } finally {
-                    tis.close();
-                }
+                parse(parser, logger, info.getPath(), is, content, metadata, 
context);
             }
         };
     }

Modified: 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaUtils.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaUtils.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaUtils.java
 (original)
+++ 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaUtils.java
 Sun Jun 28 01:57:30 2015
@@ -17,15 +17,15 @@
 
 package org.apache.tika.server.resource;
 
-import org.apache.tika.io.TikaInputStream;
-import org.apache.tika.metadata.Metadata;
-
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.HttpHeaders;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 
+import org.apache.tika.io.TikaInputStream;
+import org.apache.tika.metadata.Metadata;
+
 public class TikaUtils {
 
     public static InputStream getInputSteam(InputStream is, @Context 
HttpHeaders httpHeaders) throws IOException {
@@ -34,6 +34,6 @@ public class TikaUtils {
             Metadata metadata = new Metadata();
             return TikaInputStream.get(new URL(fileUrl), metadata);
         }
-        return is;
+        return TikaInputStream.get(is);
     }
 }

Modified: 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaVersion.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaVersion.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaVersion.java
 (original)
+++ 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaVersion.java
 Sun Jun 28 01:57:30 2015
@@ -21,14 +21,13 @@ import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 
 import org.apache.tika.Tika;
-import org.apache.tika.config.TikaConfig;
 
 @Path("/version")
 public class TikaVersion {
     private Tika tika;
 
-    public TikaVersion(TikaConfig tika) {
-        this.tika = new Tika(tika);
+    public TikaVersion() {
+        this.tika = new Tika(TikaResource.getConfig());
     }
 
     @GET

Modified: 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaWelcome.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaWelcome.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaWelcome.java
 (original)
+++ 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TikaWelcome.java
 Sun Jun 28 01:57:30 2015
@@ -24,7 +24,6 @@ import javax.ws.rs.POST;
 import javax.ws.rs.PUT;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
-
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -40,7 +39,6 @@ import java.util.regex.Pattern;
 
 import org.apache.cxf.jaxrs.lifecycle.ResourceProvider;
 import org.apache.tika.Tika;
-import org.apache.tika.config.TikaConfig;
 import org.apache.tika.server.HTMLHelper;
 
 /**
@@ -66,8 +64,8 @@ public class TikaWelcome {
     private HTMLHelper html;
     private List<Class<?>> endpoints = new LinkedList<Class<?>>();
 
-    public TikaWelcome(TikaConfig tika, List<ResourceProvider> rCoreProviders) 
{
-        this.tika = new Tika(tika);
+    public TikaWelcome(List<ResourceProvider> rCoreProviders) {
+        this.tika = new Tika(TikaResource.getConfig());
         this.html = new HTMLHelper();
         for (ResourceProvider rp : rCoreProviders) {
             this.endpoints.add(rp.getResourceClass());

Modified: 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TranslateResource.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TranslateResource.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TranslateResource.java
 (original)
+++ 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/TranslateResource.java
 Sun Jun 28 01:57:30 2015
@@ -17,23 +17,21 @@
 
 package org.apache.tika.server.resource;
 
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.List;
-
 import javax.ws.rs.Consumes;
 import javax.ws.rs.POST;
 import javax.ws.rs.PUT;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.tika.config.LoadErrorHandler;
 import org.apache.tika.config.ServiceLoader;
-import org.apache.tika.config.TikaConfig;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.language.LanguageIdentifier;
 import org.apache.tika.language.LanguageProfile;
@@ -49,13 +47,10 @@ public class TranslateResource {
        private static final Log logger = 
LogFactory.getLog(TranslateResource.class
                        .getName());
 
-       private TikaConfig config;
-
-       public TranslateResource(TikaConfig config) {
-               this.config = config;
+       public TranslateResource() {
                this.loader = new 
ServiceLoader(ServiceLoader.class.getClassLoader(),
                                LoadErrorHandler.WARN);
-               this.defaultTranslator = this.config.getTranslator();
+               this.defaultTranslator = 
TikaResource.getConfig().getTranslator();
        }
 
        @PUT

Modified: 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/UnpackerResource.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/UnpackerResource.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/UnpackerResource.java
 (original)
+++ 
tika/trunk/tika-server/src/main/java/org/apache/tika/server/resource/UnpackerResource.java
 Sun Jun 28 01:57:30 2015
@@ -25,7 +25,6 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
-
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
@@ -49,14 +48,14 @@ import org.apache.poi.poifs.filesystem.O
 import org.apache.poi.poifs.filesystem.Ole10NativeException;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.util.IOUtils;
-import org.apache.tika.config.TikaConfig;
 import org.apache.tika.extractor.EmbeddedDocumentExtractor;
 import org.apache.tika.io.TikaInputStream;
 import org.apache.tika.metadata.Metadata;
 import org.apache.tika.metadata.TikaMetadataKeys;
 import org.apache.tika.mime.MimeTypeException;
-import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.DigestingParser;
 import org.apache.tika.parser.ParseContext;
+import org.apache.tika.parser.Parser;
 import org.apache.tika.parser.microsoft.OfficeParser;
 import org.apache.tika.sax.BodyContentHandler;
 import org.apache.tika.server.RichTextContentHandler;
@@ -70,12 +69,6 @@ public class UnpackerResource {
     private static final Log logger = 
LogFactory.getLog(UnpackerResource.class);
     private static final String META_FILENAME = "__METADATA__";
 
-    private TikaConfig tikaConfig;
-
-    public UnpackerResource(TikaConfig tikaConfig) {
-        this.tikaConfig = tikaConfig;
-    }
-
     public static void metadataToCsv(Metadata metadata, OutputStream 
outputStream) throws IOException {
         CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputStream, 
org.apache.tika.io.IOUtils.UTF_8));
 
@@ -121,7 +114,11 @@ public class UnpackerResource {
         Metadata metadata = new Metadata();
         ParseContext pc = new ParseContext();
 
-        AutoDetectParser parser = TikaResource.createParser(tikaConfig);
+        Parser parser = TikaResource.createParser();
+        if (parser instanceof DigestingParser) {
+            //no need to digest for unwrapping
+            parser = ((DigestingParser)parser).getWrappedParser();
+        }
 
         TikaResource.fillMetadata(parser, metadata, pc, 
httpHeaders.getRequestHeaders());
         TikaResource.logRequest(logger, info, metadata);
@@ -139,6 +136,7 @@ public class UnpackerResource {
         MutableInt count = new MutableInt();
 
         pc.set(EmbeddedDocumentExtractor.class, new 
MyEmbeddedDocumentExtractor(count, files));
+        is = TikaUtils.getInputSteam(is, httpHeaders);
         TikaResource.parse(parser, logger, info.getPath(), is, ch, metadata, 
pc);
 
         if (count.intValue() == 0 && !saveAll) {
@@ -184,7 +182,7 @@ public class UnpackerResource {
 
             if (!name.contains(".") && contentType != null) {
                 try {
-                    String ext = 
tikaConfig.getMimeRepository().forName(contentType).getExtension();
+                    String ext = 
TikaResource.getConfig().getMimeRepository().forName(contentType).getExtension();
 
                     if (ext != null) {
                         name += ext;

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java 
(original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/CXFTestBase.java 
Sun Jun 28 01:57:30 2015
@@ -41,15 +41,19 @@ import org.apache.cxf.jaxrs.JAXRSBinding
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
 import org.apache.tika.config.TikaConfig;
 import org.apache.tika.io.IOUtils;
+import org.apache.tika.parser.utils.CommonsDigester;
+import org.apache.tika.server.resource.TikaResource;
 import org.apache.tika.server.resource.UnpackerResource;
 import org.junit.After;
 import org.junit.Before;
 
 public abstract class CXFTestBase {
+    private final static int DIGESTER_READ_LIMIT = 20*1024*1024;
+
     protected static final String endPoint =
             "http://localhost:"; + TikaServerCli.DEFAULT_PORT;
     protected Server server;
-    protected TikaConfig tika;
+    private TikaConfig tika;
 
     public static void assertContains(String needle, String haystack) {
         assertTrue(needle + " not found in:\n" + haystack, 
haystack.contains(needle));
@@ -76,7 +80,7 @@ public abstract class CXFTestBase {
     @Before
     public void setUp() {
         this.tika = TikaConfig.getDefaultConfig();
-
+        TikaResource.init(tika, new CommonsDigester(DIGESTER_READ_LIMIT, 
CommonsDigester.DigestAlgorithm.MD5));
         JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
         setUpResources(sf);
         setUpProviders(sf);

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/DetectorResourceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/DetectorResourceTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/DetectorResourceTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/DetectorResourceTest.java
 Sun Jun 28 01:57:30 2015
@@ -45,7 +45,7 @@ public class DetectorResourceTest extend
     protected void setUpResources(JAXRSServerFactoryBean sf) {
         sf.setResourceClasses(DetectorResource.class);
         sf.setResourceProvider(DetectorResource.class,
-                new SingletonResourceProvider(new DetectorResource(tika)));
+                new SingletonResourceProvider(new DetectorResource()));
 
     }
 

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/LanguageResourceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/LanguageResourceTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/LanguageResourceTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/LanguageResourceTest.java
 Sun Jun 28 01:57:30 2015
@@ -46,7 +46,7 @@ public class LanguageResourceTest extend
        protected void setUpResources(JAXRSServerFactoryBean sf) {
                sf.setResourceClasses(LanguageResource.class);
                sf.setResourceProvider(LanguageResource.class,
-                               new SingletonResourceProvider(new 
LanguageResource(tika)));
+                               new SingletonResourceProvider(new 
LanguageResource()));
 
        }
 

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/MetadataResourceTest.java
 Sun Jun 28 01:57:30 2015
@@ -53,7 +53,7 @@ public class MetadataResourceTest extend
     protected void setUpResources(JAXRSServerFactoryBean sf) {
         sf.setResourceClasses(MetadataResource.class);
         sf.setResourceProvider(MetadataResource.class,
-                new SingletonResourceProvider(new MetadataResource(tika)));
+                new SingletonResourceProvider(new MetadataResource()));
     }
 
     @Override
@@ -89,6 +89,8 @@ public class MetadataResourceTest extend
 
         assertNotNull(metadata.get("Author"));
         assertEquals("Maxim Valyanskiy", metadata.get("Author"));
+        assertEquals("X-TIKA:digest:MD5", "f8be45c34e8919eedba48cc8d207fbf0",
+                metadata.get("X-TIKA:digest:MD5"));
     }
 
     @Test

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/RecursiveMetadataResourceTest.java
 Sun Jun 28 01:57:30 2015
@@ -46,7 +46,7 @@ public class RecursiveMetadataResourceTe
     protected void setUpResources(JAXRSServerFactoryBean sf) {
         sf.setResourceClasses(RecursiveMetadataResource.class);
         sf.setResourceProvider(RecursiveMetadataResource.class,
-                new SingletonResourceProvider(new 
RecursiveMetadataResource(tika)));
+                new SingletonResourceProvider(new 
RecursiveMetadataResource()));
     }
 
     @Override
@@ -70,6 +70,8 @@ public class RecursiveMetadataResourceTe
         assertEquals(12, metadataList.size());
         assertEquals("Microsoft Office Word", 
metadataList.get(0).get("Application-Name"));
         assertContains("plundered our seas", 
metadataList.get(6).get("X-TIKA:content"));
+
+        assertEquals("a38e6c7b38541af87148dee9634cb811", 
metadataList.get(10).get("X-TIKA:digest:MD5"));
     }
 
     @Test

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/StackTraceOffTest.java
 Sun Jun 28 01:57:30 2015
@@ -63,11 +63,11 @@ public class StackTraceOffTest extends C
     @Override
     protected void setUpResources(JAXRSServerFactoryBean sf) {
         List<ResourceProvider> rCoreProviders = new 
ArrayList<ResourceProvider>();
-        rCoreProviders.add(new SingletonResourceProvider(new 
MetadataResource(tika)));
-        rCoreProviders.add(new SingletonResourceProvider(new 
RecursiveMetadataResource(tika)));
-        rCoreProviders.add(new SingletonResourceProvider(new 
DetectorResource(tika)));
-        rCoreProviders.add(new SingletonResourceProvider(new 
TikaResource(tika)));
-        rCoreProviders.add(new SingletonResourceProvider(new 
UnpackerResource(tika)));
+        rCoreProviders.add(new SingletonResourceProvider(new 
MetadataResource()));
+        rCoreProviders.add(new SingletonResourceProvider(new 
RecursiveMetadataResource()));
+        rCoreProviders.add(new SingletonResourceProvider(new 
DetectorResource()));
+        rCoreProviders.add(new SingletonResourceProvider(new TikaResource()));
+        rCoreProviders.add(new SingletonResourceProvider(new 
UnpackerResource()));
         sf.setResourceProviders(rCoreProviders);
     }
 

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java 
(original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/StackTraceTest.java 
Sun Jun 28 01:57:30 2015
@@ -57,11 +57,11 @@ public class StackTraceTest extends CXFT
     @Override
     protected void setUpResources(JAXRSServerFactoryBean sf) {
         List<ResourceProvider> rCoreProviders = new 
ArrayList<ResourceProvider>();
-        rCoreProviders.add(new SingletonResourceProvider(new 
MetadataResource(tika)));
-        rCoreProviders.add(new SingletonResourceProvider(new 
RecursiveMetadataResource(tika)));
-        rCoreProviders.add(new SingletonResourceProvider(new 
DetectorResource(tika)));
-        rCoreProviders.add(new SingletonResourceProvider(new 
TikaResource(tika)));
-        rCoreProviders.add(new SingletonResourceProvider(new 
UnpackerResource(tika)));
+        rCoreProviders.add(new SingletonResourceProvider(new 
MetadataResource()));
+        rCoreProviders.add(new SingletonResourceProvider(new 
RecursiveMetadataResource()));
+        rCoreProviders.add(new SingletonResourceProvider(new 
DetectorResource()));
+        rCoreProviders.add(new SingletonResourceProvider(new TikaResource()));
+        rCoreProviders.add(new SingletonResourceProvider(new 
UnpackerResource()));
         sf.setResourceProviders(rCoreProviders);
     }
 

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaDetectorsTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaDetectorsTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaDetectorsTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaDetectorsTest.java
 Sun Jun 28 01:57:30 2015
@@ -44,7 +44,7 @@ public class TikaDetectorsTest extends C
         sf.setResourceClasses(TikaDetectors.class);
         sf.setResourceProvider(
                 TikaDetectors.class,
-                new SingletonResourceProvider(new TikaDetectors(tika))
+                new SingletonResourceProvider(new TikaDetectors())
         );
     }
 

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaMimeTypesTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaMimeTypesTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaMimeTypesTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaMimeTypesTest.java
 Sun Jun 28 01:57:30 2015
@@ -40,7 +40,7 @@ public class TikaMimeTypesTest extends C
         sf.setResourceClasses(TikaMimeTypes.class);
         sf.setResourceProvider(
                 TikaMimeTypes.class,
-                new SingletonResourceProvider(new TikaMimeTypes(tika))
+                new SingletonResourceProvider(new TikaMimeTypes())
         );
     }
 

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaParsersTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaParsersTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaParsersTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaParsersTest.java
 Sun Jun 28 01:57:30 2015
@@ -45,7 +45,7 @@ public class TikaParsersTest extends CXF
         sf.setResourceClasses(TikaParsers.class);
         sf.setResourceProvider(
                 TikaParsers.class,
-                new SingletonResourceProvider(new TikaParsers(tika))
+                new SingletonResourceProvider(new TikaParsers())
         );
     }
 

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaResourceTest.java
 Sun Jun 28 01:57:30 2015
@@ -46,7 +46,7 @@ public class TikaResourceTest extends CX
     protected void setUpResources(JAXRSServerFactoryBean sf) {
         sf.setResourceClasses(TikaResource.class);
         sf.setResourceProvider(TikaResource.class,
-                new SingletonResourceProvider(new TikaResource(tika)));
+                new SingletonResourceProvider(new TikaResource()));
     }
 
     @Override
@@ -104,6 +104,8 @@ public class TikaResourceTest extends CX
         String responseMsg = getStringFromInputStream((InputStream) response
                 .getEntity());
         assertTrue(responseMsg.contains("test"));
+        assertContains("<meta name=\"X-TIKA:digest:MD5\" 
content=\"f8be45c34e8919eedba48cc8d207fbf0\"/>",
+                responseMsg);
     }
 
     @Test
@@ -149,6 +151,9 @@ public class TikaResourceTest extends CX
         String responseMsg = getStringFromInputStream((InputStream) response
                 .getEntity());
         assertTrue(responseMsg.contains("test"));
+        assertContains("<meta name=\"X-TIKA:digest:MD5\" 
content=\"f8be45c34e8919eedba48cc8d207fbf0\"/>",
+                responseMsg);
+
     }
 
     @Test
@@ -168,6 +173,9 @@ public class TikaResourceTest extends CX
         responseMsg = getStringFromInputStream((InputStream) response
                 .getEntity());
         assertTrue(responseMsg.contains("Course of human events"));
+        assertContains("<meta name=\"X-TIKA:digest:MD5\" 
content=\"59f626e09a8c16ab6dbc2800c685f772\"/>",
+                responseMsg);
+
     }
 
 }

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaVersionTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaVersionTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaVersionTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaVersionTest.java
 Sun Jun 28 01:57:30 2015
@@ -38,7 +38,7 @@ public class TikaVersionTest extends CXF
         sf.setResourceClasses(TikaVersion.class);
         sf.setResourceProvider(
                 TikaVersion.class,
-                new SingletonResourceProvider(new TikaVersion(tika))
+                new SingletonResourceProvider(new TikaVersion())
         );
     }
 

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaWelcomeTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaWelcomeTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaWelcomeTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TikaWelcomeTest.java
 Sun Jun 28 01:57:30 2015
@@ -44,11 +44,11 @@ public class TikaWelcomeTest extends CXF
     protected void setUpResources(JAXRSServerFactoryBean sf) {
         List<ResourceProvider> rpsCore =
            new ArrayList<ResourceProvider>();
-       rpsCore.add(new SingletonResourceProvider(new TikaVersion(tika)));
-       rpsCore.add(new SingletonResourceProvider(new DetectorResource(tika)));
-       rpsCore.add(new SingletonResourceProvider(new MetadataResource(tika)));
+       rpsCore.add(new SingletonResourceProvider(new TikaVersion()));
+       rpsCore.add(new SingletonResourceProvider(new DetectorResource()));
+       rpsCore.add(new SingletonResourceProvider(new MetadataResource()));
         List<ResourceProvider> all = new ArrayList<ResourceProvider>(rpsCore);
-        all.add(new SingletonResourceProvider(new TikaWelcome(tika, rpsCore)));
+        all.add(new SingletonResourceProvider(new TikaWelcome(rpsCore)));
         sf.setResourceProviders(all);
     }
 

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TranslateResourceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/TranslateResourceTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TranslateResourceTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/TranslateResourceTest.java
 Sun Jun 28 01:57:30 2015
@@ -47,7 +47,7 @@ public class TranslateResourceTest exten
        protected void setUpResources(JAXRSServerFactoryBean sf) {
                sf.setResourceClasses(TranslateResource.class);
                sf.setResourceProvider(TranslateResource.class,
-                               new SingletonResourceProvider(new 
TranslateResource(tika)));
+                               new SingletonResourceProvider(new 
TranslateResource()));
 
        }
 

Modified: 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java
URL: 
http://svn.apache.org/viewvc/tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java?rev=1687981&r1=1687980&r2=1687981&view=diff
==============================================================================
--- 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java
 (original)
+++ 
tika/trunk/tika-server/src/test/java/org/apache/tika/server/UnpackerResourceTest.java
 Sun Jun 28 01:57:30 2015
@@ -71,7 +71,7 @@ public class UnpackerResourceTest extend
     protected void setUpResources(JAXRSServerFactoryBean sf) {
         sf.setResourceClasses(UnpackerResource.class);
         sf.setResourceProvider(UnpackerResource.class,
-                new SingletonResourceProvider(new UnpackerResource(tika)));
+                new SingletonResourceProvider(new UnpackerResource()));
     }
 
     @Override


Reply via email to