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 2011/01/17 19:57:03 UTC

svn commit: r1060044 - /tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java

Author: jukka
Date: Mon Jan 17 18:57:03 2011
New Revision: 1060044

URL: http://svn.apache.org/viewvc?rev=1060044&view=rev
Log:
TIKA-416: Out-of-process text extraction

Add a --fork (or -f) option to Tika CLI for testing the fork mode.

Modified:
    tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java

Modified: tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java?rev=1060044&r1=1060043&r2=1060044&view=diff
==============================================================================
--- tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java (original)
+++ tika/trunk/tika-app/src/main/java/org/apache/tika/cli/TikaCLI.java Mon Jan 17 18:57:03 2011
@@ -43,6 +43,7 @@ import org.apache.tika.detect.DefaultDet
 import org.apache.tika.detect.Detector;
 import org.apache.tika.exception.TikaException;
 import org.apache.tika.extractor.EmbeddedDocumentExtractor;
+import org.apache.tika.fork.ForkParser;
 import org.apache.tika.gui.TikaGUI;
 import org.apache.tika.io.CloseShieldInputStream;
 import org.apache.tika.io.IOUtils;
@@ -86,7 +87,11 @@ public class TikaCLI {
     private class OutputType {
 
         public void process(InputStream stream) throws Exception {
-            parser.parse(stream, getContentHandler(), metadata, context);
+            Parser p = parser;
+            if (fork) {
+                p = new ForkParser(TikaCLI.class.getClassLoader(), p);
+            }
+            p.parse(stream, getContentHandler(), metadata, context);
         }
 
         protected ContentHandler getContentHandler() throws Exception {
@@ -188,6 +193,8 @@ public class TikaCLI {
 
     private boolean pipeMode = true;
 
+    private boolean fork = false;
+
     public TikaCLI() throws TransformerConfigurationException, IOException, TikaException, SAXException {
         context = new ParseContext();
         detector = new DefaultDetector();
@@ -219,6 +226,8 @@ public class TikaCLI {
         } else if (arg.equals("--container-aware")
                 || arg.equals("--container-aware-detector")) {
             // ignore, as container-aware detectors are now always used
+        } else if (arg.equals("-f") || arg.equals("--fork")) {
+            fork = true;
         } else if (arg.startsWith("-e")) {
             encoding = arg.substring("-e".length());
         } else if (arg.startsWith("--encoding=")) {