You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2015/03/23 17:09:12 UTC

svn commit: r1668673 [5/6] - in /tika/trunk: ./ tika-app/ tika-app/src/main/java/org/apache/tika/cli/ tika-app/src/main/resources/ tika-app/src/test/java/org/apache/tika/cli/ tika-batch/ tika-batch/src/ tika-batch/src/main/ tika-batch/src/main/examples...

Added: tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/FSBatchTestBase.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/FSBatchTestBase.java?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/FSBatchTestBase.java (added)
+++ tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/FSBatchTestBase.java Mon Mar 23 16:09:10 2015
@@ -0,0 +1,220 @@
+package org.apache.tika.batch.fs;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.tika.TikaTest;
+import org.apache.tika.batch.BatchProcess;
+import org.apache.tika.batch.BatchProcessDriverCLI;
+import org.apache.tika.batch.ParallelFileProcessingResult;
+import org.apache.tika.batch.builders.BatchProcessBuilder;
+import org.apache.tika.io.IOUtils;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+
+/**
+ * This is the base class for file-system batch tests.
+ * <p/>
+ * There are a few areas for improvement in this test suite.
+ * <ol>
+ *     <li>For the heavy load tests, the test cases leave behind files that
+ *     cannot be deleted from within the same jvm.  A thread is still actively writing to an
+ *     OutputStream when tearDown() is called.  The current solution is to create
+ *     the temp dir within the target/tika-batch/test-classes so that they will at least
+ *     be removed during each maven &quot;clean&quot;</li>
+ *     <li>The &quot;mock&quot; tests are time-based.  This is not
+ *     extremely reliable across different machines with different number/power of cpus.
+ *     </li>
+ * </ol>
+ */
+public abstract class FSBatchTestBase extends TikaTest {
+
+    private static File outputRoot = null;
+
+    @BeforeClass
+    public static void setUp() throws Exception {
+
+        File testOutput = new File("target/test-classes/test-output");
+        testOutput.mkdirs();
+        outputRoot = File.createTempFile("tika-batch-output-root-", "", testOutput);
+        outputRoot.delete();
+        outputRoot.mkdirs();
+
+    }
+
+    @AfterClass
+    public static void tearDown() throws Exception {
+        //not ideal, but should be ok for testing
+        //see caveat in TikaCLITest's textExtract
+
+        try {
+            FileUtils.deleteDirectory(outputRoot);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    protected void destroyProcess(Process p) {
+        if (p == null)
+            return;
+
+        try {
+            p.exitValue();
+        } catch (IllegalThreadStateException e) {
+            p.destroy();
+        }
+    }
+
+    File getNewOutputDir(String subdirPrefix) throws IOException {
+        File outputDir = File.createTempFile(subdirPrefix, "", outputRoot);
+        outputDir.delete();
+        outputDir.mkdirs();
+        return outputDir;
+    }
+
+    Map<String, String> getDefaultArgs(String inputSubDir, File outputDir) throws Exception {
+        Map<String, String> args = new HashMap<String, String>();
+        args.put("inputDir", "\""+getInputRoot(inputSubDir).getAbsolutePath()+"\"");
+        if (outputDir != null) {
+            args.put("outputDir", "\""+outputDir.getAbsolutePath()+"\"");
+        }
+        return args;
+    }
+
+    public String[] getDefaultCommandLineArgsArr(String inputSubDir, File outputDir, Map<String, String> commandLine) throws Exception {
+        List<String> args = new ArrayList<String>();
+        //need to include "-" because these are going to the commandline!
+        if (inputSubDir != null) {
+            args.add("-inputDir");
+            args.add(getInputRoot(inputSubDir).getAbsolutePath());
+        }
+        if (outputDir != null) {
+            args.add("-outputDir");
+            args.add(outputDir.getAbsolutePath());
+        }
+        if (commandLine != null) {
+            for (Map.Entry<String, String> e : commandLine.entrySet()) {
+                args.add(e.getKey());
+                args.add(e.getValue());
+            }
+        }
+        return args.toArray(new String[args.size()]);
+    }
+
+
+    public File getInputRoot(String subdir) throws Exception {
+        String path = (subdir == null || subdir.length() == 0) ? "/test-input" : "/test-input/"+subdir;
+        return new File(this.getClass().getResource(path).toURI());
+    }
+
+    BatchProcess getNewBatchRunner(String testConfig,
+                                  Map<String, String> args) throws IOException {
+        InputStream is = this.getClass().getResourceAsStream(testConfig);
+        BatchProcessBuilder b = new BatchProcessBuilder();
+        BatchProcess runner = b.build(is, args);
+
+        IOUtils.closeQuietly(is);
+        return runner;
+    }
+
+    public ProcessBuilder getNewBatchRunnerProcess(String testConfig, Map<String, String> args) {
+        List<String> argList = new ArrayList<String>();
+        for (Map.Entry<String, String> e : args.entrySet()) {
+            argList.add("-"+e.getKey());
+            argList.add(e.getValue());
+        }
+
+        String[] fullCommandLine = commandLine(testConfig, argList.toArray(new String[argList.size()]));
+        return new ProcessBuilder(fullCommandLine);
+    }
+
+    private String[] commandLine(String testConfig, String[] args) {
+        List<String> commandLine = new ArrayList<String>();
+        commandLine.add("java");
+        commandLine.add("-Dlog4j.configuration=file:"+
+            this.getClass().getResource("/log4j_process.properties").getFile());
+        commandLine.add("-Xmx128m");
+        commandLine.add("-cp");
+        String cp = System.getProperty("java.class.path");
+        //need to test for " " on *nix, can't just add double quotes
+        //across platforms.
+        if (cp.contains(" ")){
+            cp = "\""+cp+"\"";
+        }
+        commandLine.add(cp);
+        commandLine.add("org.apache.tika.batch.fs.FSBatchProcessCLI");
+
+        String configFile = this.getClass().getResource(testConfig).getFile();
+        commandLine.add("-bc");
+
+        commandLine.add(configFile);
+
+        for (String s : args) {
+            commandLine.add(s);
+        }
+        return commandLine.toArray(new String[commandLine.size()]);
+    }
+
+    public BatchProcessDriverCLI getNewDriver(String testConfig,
+                                              String[] args) throws Exception {
+        List<String> commandLine = new ArrayList<String>();
+        commandLine.add("java");
+        commandLine.add("-Xmx128m");
+        commandLine.add("-cp");
+        String cp = System.getProperty("java.class.path");
+        //need to test for " " on *nix, can't just add double quotes
+        //across platforms.
+        if (cp.contains(" ")){
+            cp = "\""+cp+"\"";
+        }
+        commandLine.add(cp);
+        commandLine.add("org.apache.tika.batch.fs.FSBatchProcessCLI");
+
+        String configFile = this.getClass().getResource(testConfig).getFile();
+        commandLine.add("-bc");
+
+        commandLine.add(configFile);
+
+        for (String s : args) {
+            commandLine.add(s);
+        }
+
+        BatchProcessDriverCLI driver = new BatchProcessDriverCLI(
+          commandLine.toArray(new String[commandLine.size()]));
+        driver.setRedirectChildProcessToStdOut(false);
+        return driver;
+    }
+
+    protected ParallelFileProcessingResult run(BatchProcess process) throws Exception {
+        ExecutorService executor = Executors.newSingleThreadExecutor();
+        Future<ParallelFileProcessingResult> futureResult = executor.submit(process);
+        return futureResult.get(10, TimeUnit.SECONDS);
+    }
+}

Added: tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/HandlerBuilderTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/HandlerBuilderTest.java?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/HandlerBuilderTest.java (added)
+++ tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/HandlerBuilderTest.java Mon Mar 23 16:09:10 2015
@@ -0,0 +1,121 @@
+package org.apache.tika.batch.fs;
+
+/*
+ * 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.
+ */
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.util.Map;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.tika.batch.BatchProcess;
+import org.apache.tika.batch.ParallelFileProcessingResult;
+import org.apache.tika.io.IOUtils;
+import org.junit.Test;
+
+public class HandlerBuilderTest extends FSBatchTestBase {
+
+    @Test
+    public void testXML() throws Exception {
+
+        File outputDir = getNewOutputDir("handler-xml-");
+        Map<String, String> args = getDefaultArgs("basic", outputDir);
+        args.put("basicHandlerType", "xml");
+        args.put("outputSuffix", "xml");
+
+        BatchProcess runner = getNewBatchRunner("/tika-batch-config-test.xml", args);
+        ParallelFileProcessingResult result = run(runner);
+        File outputFile = new File(outputDir, "test0.xml.xml");
+        String resultString = FileUtils.readFileToString(outputFile, IOUtils.UTF_8.toString());
+        assertTrue(resultString.contains("<html xmlns=\"http://www.w3.org/1999/xhtml\">"));
+        assertTrue(resultString.contains("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"));
+        assertTrue(resultString.contains("This is tika-batch's first test file"));
+    }
+
+
+    @Test
+    public void testHTML() throws Exception {
+        File outputDir = getNewOutputDir("handler-html-");
+
+        Map<String, String> args = getDefaultArgs("basic", outputDir);
+        args.put("basicHandlerType", "html");
+        args.put("outputSuffix", "html");
+        BatchProcess runner = getNewBatchRunner("/tika-batch-config-test.xml", args);
+        ParallelFileProcessingResult result = run(runner);
+        File outputFile = new File(outputDir, "test0.xml.html");
+        String resultString = FileUtils.readFileToString(outputFile, IOUtils.UTF_8.toString());
+        assertTrue(resultString.contains("<html xmlns=\"http://www.w3.org/1999/xhtml\">"));
+        assertFalse(resultString.contains("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"));
+        assertTrue(resultString.contains("This is tika-batch's first test file"));
+    }
+
+    @Test
+    public void testText() throws Exception {
+        File outputDir = getNewOutputDir("handler-txt-");
+
+        Map<String, String> args = getDefaultArgs("basic", outputDir);
+        args.put("basicHandlerType", "txt");
+        args.put("outputSuffix", "txt");
+
+        BatchProcess runner = getNewBatchRunner("/tika-batch-config-test.xml", args);
+        ParallelFileProcessingResult result = run(runner);
+        File outputFile = new File(outputDir, "test0.xml.txt");
+        String resultString = FileUtils.readFileToString(outputFile, IOUtils.UTF_8.toString());
+        assertFalse(resultString.contains("<html xmlns=\"http://www.w3.org/1999/xhtml\">"));
+        assertFalse(resultString.contains("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"));
+        assertTrue(resultString.contains("This is tika-batch's first test file"));
+    }
+
+
+    @Test
+    public void testXMLWithWriteLimit() throws Exception {
+        File outputDir = getNewOutputDir("handler-xml-write-limit-");
+
+        Map<String, String> args = getDefaultArgs("basic", outputDir);
+        args.put("writeLimit", "5");
+
+        BatchProcess runner = getNewBatchRunner("/tika-batch-config-test.xml", args);
+        ParallelFileProcessingResult result = run(runner);
+
+        File outputFile = new File(outputDir, "test0.xml.xml");
+        String resultString = FileUtils.readFileToString(outputFile, IOUtils.UTF_8.toString());
+        //this is not ideal. How can we change handlers to writeout whatever
+        //they've gotten so far, up to the writeLimit?
+        assertTrue(resultString.equals(""));
+    }
+
+    @Test
+    public void testRecursiveParserWrapper() throws Exception {
+        File outputDir = getNewOutputDir("handler-recursive-parser");
+
+        Map<String, String> args = getDefaultArgs("basic", outputDir);
+        args.put("basicHandlerType", "txt");
+        args.put("outputSuffix", "json");
+        args.put("recursiveParserWrapper", "true");
+
+        BatchProcess runner = getNewBatchRunner("/tika-batch-config-test.xml", args);
+        ParallelFileProcessingResult result = run(runner);
+        File outputFile = new File(outputDir, "test0.xml.json");
+        String resultString = FileUtils.readFileToString(outputFile, IOUtils.UTF_8.toString());
+        assertTrue(resultString.contains("\"author\":\"Nikolai Lobachevsky\""));
+        assertTrue(resultString.contains("tika-batch\\u0027s first test file"));
+    }
+
+
+}

Added: tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/OutputStreamFactoryTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/OutputStreamFactoryTest.java?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/OutputStreamFactoryTest.java (added)
+++ tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/OutputStreamFactoryTest.java Mon Mar 23 16:09:10 2015
@@ -0,0 +1,101 @@
+package org.apache.tika.batch.fs;
+
+/*
+ * 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.
+ */
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+
+import org.apache.tika.batch.BatchProcess;
+import org.apache.tika.batch.ParallelFileProcessingResult;
+import org.junit.Test;
+
+public class OutputStreamFactoryTest extends FSBatchTestBase {
+
+
+    @Test
+    public void testIllegalState() throws Exception {
+        File outputDir = getNewOutputDir("os-factory-illegal-state-");
+        Map<String, String> args = getDefaultArgs("basic", outputDir);
+        BatchProcess runner = getNewBatchRunner("/tika-batch-config-test.xml", args);
+        run(runner);
+        assertEquals(1, outputDir.listFiles().length);
+
+        boolean illegalState = false;
+        try {
+            ParallelFileProcessingResult result = run(runner);
+        } catch (ExecutionException e) {
+            if (e.getCause() instanceof IllegalStateException) {
+                illegalState = true;
+            }
+        }
+        assertTrue("Should have been an illegal state exception", illegalState);
+    }
+
+    @Test
+    public void testSkip() throws Exception {
+        File outputDir = getNewOutputDir("os-factory-skip-");
+        Map<String, String> args = getDefaultArgs("basic", outputDir);
+        args.put("handleExisting", "skip");
+        BatchProcess runner = getNewBatchRunner("/tika-batch-config-test.xml", args);
+        ParallelFileProcessingResult result = run(runner);
+        assertEquals(1, outputDir.listFiles().length);
+
+        runner = getNewBatchRunner("/tika-batch-config-test.xml", args);
+        result = run(runner);
+        assertEquals(1, outputDir.listFiles().length);
+    }
+
+    /* turn this back on if there is any need to add "handleExisting"
+    @Test
+    public void testRename() throws Exception {
+        File outputDir = getNewOutputDir("os-factory-rename-");
+        Map<String, String> args = getDefaultArgs("basic", outputDir);
+
+        args.put("handleExisting", "rename");
+        BatchProcess runner = getNewBatchRunner("/tika-batch-config-basic-test.xml", args);
+        ParallelFileProcessingResult result = runner.execute();
+        assertEquals(1, outputDir.listFiles().length);
+
+        runner = getNewBatchRunner("/tika-batch-config-basic-test.xml", args);
+        result = runner.execute();
+        assertEquals(2, outputDir.listFiles().length);
+
+        runner = getNewBatchRunner("/tika-batch-config-basic-test.xml", args);
+        result = runner.execute();
+        assertEquals(3, outputDir.listFiles().length);
+
+        int hits = 0;
+        for (File f : outputDir.listFiles()){
+            String name = f.getName();
+            if (name.equals("test2_ok.xml.xml")) {
+                hits++;
+            } else if (name.equals("test1(1).txt.xml")) {
+                hits++;
+            } else if (name.equals("test1(2).txt.xml")) {
+                hits++;
+            }
+        }
+        assertEquals(3, hits);
+    }
+    */
+
+}

Added: tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/StringStreamGobbler.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/StringStreamGobbler.java?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/StringStreamGobbler.java (added)
+++ tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/StringStreamGobbler.java Mon Mar 23 16:09:10 2015
@@ -0,0 +1,63 @@
+package org.apache.tika.batch.fs;
+
+/*
+ * 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.
+ */
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import org.apache.tika.io.IOUtils;
+
+public class StringStreamGobbler implements Runnable {
+
+        //plagiarized from org.apache.oodt's StreamGobbler
+        private final BufferedReader reader;
+        private volatile boolean running = true;
+        private final StringBuilder sb = new StringBuilder();
+
+        public StringStreamGobbler(InputStream is) {
+            this.reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(is),
+                    IOUtils.UTF_8));
+        }
+
+        @Override
+        public void run() {
+            String line = null;
+            try {
+                while ((line = reader.readLine()) != null && this.running) {
+                    sb.append(line);
+                    sb.append("\n");
+                }
+            } catch (IOException e) {
+                //swallow ioe
+            }
+        }
+
+        public void stopGobblingAndDie() {
+            running = false;
+            IOUtils.closeQuietly(reader);
+        }
+
+        @Override
+        public String toString() {
+            return sb.toString();
+    }
+
+}

Added: tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/strawman/StrawmanTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/strawman/StrawmanTest.java?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/strawman/StrawmanTest.java (added)
+++ tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/fs/strawman/StrawmanTest.java Mon Mar 23 16:09:10 2015
@@ -0,0 +1,26 @@
+package org.apache.tika.batch.fs.strawman;
+/*
+ * 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.
+ */
+import org.junit.Test;
+
+public class StrawmanTest {
+    //TODO: actually write some tests!!!
+    @Test
+    public void basicTest() {
+
+    }
+}

Added: tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/mock/MockConsumersBuilder.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/mock/MockConsumersBuilder.java?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/mock/MockConsumersBuilder.java (added)
+++ tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/mock/MockConsumersBuilder.java Mon Mar 23 16:09:10 2015
@@ -0,0 +1,38 @@
+package org.apache.tika.batch.mock;
+
+/*
+ * 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.
+ */
+import java.util.Map;
+import java.util.concurrent.ArrayBlockingQueue;
+
+import org.apache.tika.batch.ConsumersManager;
+import org.apache.tika.batch.FileResource;
+import org.apache.tika.batch.fs.builders.BasicTikaFSConsumersBuilder;
+import org.w3c.dom.Node;
+
+public class MockConsumersBuilder extends BasicTikaFSConsumersBuilder {
+
+    @Override
+    public ConsumersManager build(Node node, Map<String, String> runtimeAttributes,
+                                  ArrayBlockingQueue<FileResource> queue) {
+        ConsumersManager manager = super.build(node, runtimeAttributes, queue);
+
+        boolean hangOnInit = runtimeAttributes.containsKey("hangOnInit");
+        boolean hangOnShutdown = runtimeAttributes.containsKey("hangOnShutdown");
+        return new MockConsumersManager(manager, hangOnInit, hangOnShutdown);
+    }
+}

Added: tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/mock/MockConsumersManager.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/mock/MockConsumersManager.java?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/mock/MockConsumersManager.java (added)
+++ tika/trunk/tika-batch/src/test/java/org/apache/tika/batch/mock/MockConsumersManager.java Mon Mar 23 16:09:10 2015
@@ -0,0 +1,77 @@
+package org.apache.tika.batch.mock;
+
+import org.apache.tika.batch.ConsumersManager;
+
+/*
+ * 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.
+ */
+
+public class MockConsumersManager extends ConsumersManager {
+
+    private final long HANG_MS = 30000;
+
+    private final ConsumersManager wrapped;
+    private final boolean hangOnInit;
+    private final boolean hangOnClose;
+
+    public MockConsumersManager(ConsumersManager wrapped, boolean hangOnInit,
+                                boolean hangOnClose) {
+        super(wrapped.getConsumers());
+        this.wrapped = wrapped;
+        this.hangOnInit = hangOnInit;
+        this.hangOnClose = hangOnClose;
+    }
+
+
+    @Override
+    public void init() {
+        if (hangOnInit) {
+            //interruptible light hang
+            try {
+                Thread.sleep(HANG_MS);
+            } catch (InterruptedException e) {
+                return;
+            }
+            return;
+        }
+        super.init();
+    }
+
+    @Override
+    public void shutdown() {
+        if (hangOnClose) {
+            //interruptible light hang
+            try {
+                Thread.sleep(HANG_MS);
+            } catch (InterruptedException e) {
+                return;
+            }
+            return;
+        }
+        super.shutdown();
+    }
+
+    @Override
+    public long getConsumersManagerMaxMillis() {
+        return wrapped.getConsumersManagerMaxMillis();
+    }
+
+    @Override
+    public void setConsumersManagerMaxMillis(long millis) {
+        wrapped.setConsumersManagerMaxMillis(millis);
+    }
+
+}

Added: tika/trunk/tika-batch/src/test/java/org/apache/tika/parser/mock/MockParserFactory.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/java/org/apache/tika/parser/mock/MockParserFactory.java?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/java/org/apache/tika/parser/mock/MockParserFactory.java (added)
+++ tika/trunk/tika-batch/src/test/java/org/apache/tika/parser/mock/MockParserFactory.java Mon Mar 23 16:09:10 2015
@@ -0,0 +1,29 @@
+package org.apache.tika.parser.mock;
+
+/*
+ * 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.
+ */
+
+import org.apache.tika.batch.ParserFactory;
+import org.apache.tika.config.TikaConfig;
+import org.apache.tika.parser.Parser;
+
+public class MockParserFactory implements ParserFactory {
+    @Override
+    public Parser getParser(TikaConfig config) {
+        return new MockParser();
+    }
+}

Added: tika/trunk/tika-batch/src/test/java/org/apache/tika/util/TikaExceptionFilterTest.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/java/org/apache/tika/util/TikaExceptionFilterTest.java?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/java/org/apache/tika/util/TikaExceptionFilterTest.java (added)
+++ tika/trunk/tika-batch/src/test/java/org/apache/tika/util/TikaExceptionFilterTest.java Mon Mar 23 16:09:10 2015
@@ -0,0 +1,39 @@
+package org.apache.tika.util;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.tika.TikaTest;
+import org.junit.Test;
+
+/*
+ * 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.
+ */
+public class TikaExceptionFilterTest extends TikaTest {
+
+    @Test
+    public void simpleNPETest() {
+        TikaExceptionFilter filter = new TikaExceptionFilter();
+        Throwable t = null;
+        try {
+            getXML("null_pointer.xml");
+        } catch (Throwable t2) {
+            assertContains("Unexpected RuntimeException", t2.getMessage());
+            t = filter.filter(t2);
+        }
+        assertEquals("another null pointer exception", t.getMessage());
+    }
+
+}

Added: tika/trunk/tika-batch/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/log4j.properties?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/log4j.properties (added)
+++ tika/trunk/tika-batch/src/test/resources/log4j.properties Mon Mar 23 16:09:10 2015
@@ -0,0 +1,11 @@
+
+log4j.rootLogger=OFF,A1
+
+#for debugging
+#log4j.rootLogger=TRACE,A1
+
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

Added: tika/trunk/tika-batch/src/test/resources/log4j_process.properties
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/log4j_process.properties?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/log4j_process.properties (added)
+++ tika/trunk/tika-batch/src/test/resources/log4j_process.properties Mon Mar 23 16:09:10 2015
@@ -0,0 +1,11 @@
+
+log4j.rootLogger=OFF,A1
+
+#for debugging
+#log4j.rootLogger=TRACE,A1
+
+log4j.appender.A1=org.apache.log4j.ConsoleAppender
+
+# A1 uses PatternLayout.
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

Added: tika/trunk/tika-batch/src/test/resources/test-documents/null_pointer.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-documents/null_pointer.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-documents/null_pointer.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-documents/null_pointer.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <throw class="java.lang.NullPointerException">another null pointer exception</throw>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/basic/test0.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/basic/test0.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/basic/test0.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/basic/test0.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test0_heavy_hang.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test0_heavy_hang.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test0_heavy_hang.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test0_heavy_hang.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="60000" heavy="true" pulse_millis="10000" interruptible="false" />
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test1_heavy_hang.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test1_heavy_hang.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test1_heavy_hang.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test1_heavy_hang.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="60000" heavy="true" pulse_millis="10000" interruptible="false"  />
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test2_heavy_hang.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test2_heavy_hang.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test2_heavy_hang.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test2_heavy_hang.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="60000" heavy="true" pulse_millis="10000" interruptible="false" />
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test3_heavy_hang.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test3_heavy_hang.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test3_heavy_hang.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test3_heavy_hang.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="60000" heavy="true" pulse_millis="10000" interruptible="false" />
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test4_heavy_hang.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test4_heavy_hang.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test4_heavy_hang.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test4_heavy_hang.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="60000" heavy="true" pulse_millis="10000" interruptible="false" />
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test5_heavy_hang.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test5_heavy_hang.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test5_heavy_hang.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test5_heavy_hang.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="60000" heavy="true" pulse_millis="10000" interruptible="false" />
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test6_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test6_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test6_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/heavy_heavy_hangs/test6_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test0_oom.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test0_oom.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test0_oom.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test0_oom.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+
+<mock>
+    <throw class="java.lang.OutOfMemoryError"/>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test1_oom.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test1_oom.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test1_oom.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test1_oom.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+
+<mock>
+    <throw class="java.lang.OutOfMemoryError"/>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test2_oom.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test2_oom.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test2_oom.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test2_oom.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+
+<mock>
+    <throw class="java.lang.OutOfMemoryError"/>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test3_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test3_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test3_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/max_restarts/test3_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+
+<mock>
+    <write element="p">this is a tika test</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test1_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test1_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test1_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test1_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test2_norestart.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test2_norestart.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test2_norestart.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test2_norestart.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <throw class="org.apache.tika.batch.BatchNoRestartError">batch no restart</throw>
+</mock>

Added: tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test3_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test3_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test3_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/no_restart/test3_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/noisy_parsers/test0.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/noisy_parsers/test0.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/noisy_parsers/test0.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/noisy_parsers/test0.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!--
+  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.
+-->
+
+<mock>
+    <!-- this file offers all of the options as documentation
+    Parsing should stop at an IOException, of course
+    -->
+
+    <write element="p">some content</write>
+    <!-- write something to System.out -->
+    <print_out>writing something to System.out</print_out>
+    <!-- write something to System.err -->
+    <print_err>writing something to System.err</print_err>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test0_heavy_hang.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test0_heavy_hang.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test0_heavy_hang.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test0_heavy_hang.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="60000" heavy="true" pulse_millis="10000" interruptible="false"/>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test1_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test1_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test1_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test1_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test2_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test2_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test2_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test2_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test3_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test3_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test3_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test3_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test4_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test4_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test4_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/one_heavy_hang/test4_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/oom/test0_sleep.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/oom/test0_sleep.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/oom/test0_sleep.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/oom/test0_sleep.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="10000" heavy="false" interruptible="false" />
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/oom/test1_heavy_hang.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/oom/test1_heavy_hang.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/oom/test1_heavy_hang.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/oom/test1_heavy_hang.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="60000" heavy="true" pulse_millis="10000" interruptible="false"/>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/oom/test2_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/oom/test2_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/oom/test2_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/oom/test2_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/oom/test3_oom.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/oom/test3_oom.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/oom/test3_oom.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/oom/test3_oom.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <oom/>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/oom/test4_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/oom/test4_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/oom/test4_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/oom/test4_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/oom/test5_ok.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/oom/test5_ok.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/oom/test5_ok.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/oom/test5_ok.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">This is tika-batch's first test file.</write>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/timeout_after_early_termination/test0_sleep.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/timeout_after_early_termination/test0_sleep.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/timeout_after_early_termination/test0_sleep.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/timeout_after_early_termination/test0_sleep.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="60000" heavy="true" pulse_millis="10000" interruptible="false"/>
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/test-input/wait_after_early_termination/test0_sleep.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/test-input/wait_after_early_termination/test0_sleep.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/test-input/wait_after_early_termination/test0_sleep.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/test-input/wait_after_early_termination/test0_sleep.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<mock>
+    <metadata action="add" name="author">Nikolai Lobachevsky</metadata>
+    <write element="p">some content</write>
+    <hang millis="10000" heavy="false" interruptible="false" />
+</mock>
\ No newline at end of file

Added: tika/trunk/tika-batch/src/test/resources/tika-batch-config-MockConsumersBuilder.xml
URL: http://svn.apache.org/viewvc/tika/trunk/tika-batch/src/test/resources/tika-batch-config-MockConsumersBuilder.xml?rev=1668673&view=auto
==============================================================================
--- tika/trunk/tika-batch/src/test/resources/tika-batch-config-MockConsumersBuilder.xml (added)
+++ tika/trunk/tika-batch/src/test/resources/tika-batch-config-MockConsumersBuilder.xml Mon Mar 23 16:09:10 2015
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<!--
+  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.
+-->
+<!-- NOTE: tika-batch is still an experimental feature.
+    The configuration file will likely change and be backward incompatible
+    with new versions of Tika.  Please stay tuned.
+    -->
+<tika-batch-config
+        maxAliveTimeSeconds="-1"
+        pauseOnEarlyTerminationMillis="500"
+        timeoutThresholdMillis="3000"
+        timeoutCheckPulseMillis="1000"
+        maxQueueSize="10000"
+        numConsumers="3">
+    <!-- options to allow on the commandline -->
+    <commandline>
+        <option opt="hangOnInit" hasArg="true" description="for mock consumersbuilder in testing only"/>
+        <option opt="hangOnShutdown" hasArg="true" description="for mock consumersbuilder in testing only"/>
+        <option opt="c" longOpt="tika-config" hasArg="true"
+                description="TikaConfig file"/>
+        <option opt="bc" longOpt="batch-config" hasArg="true"
+                description="xml batch config file" required="true"/>
+        <!-- We needed sorted for testing.  We added random for performance.
+             Where crawling a directory is slow, it might be beneficial to
+             go randomly so that the parsers are triggered earlier.  The
+             default is operating system's choice ("os") which means whatever order
+             the os returns files in .listFiles(). -->
+        <option opt="crawlOrder" hasArg="true"
+                description="how does the crawler sort the directories and files:
+                                (random|sorted|os)"/>
+        <option opt="numConsumers" hasArg="true"
+                description="number of fileConsumers threads"/>
+        <option opt="minFileSizeBytes" hasArg="true"
+                description="minimum file size to process; do not process files smaller than this"/>
+        <option opt="maxFileSizeBytes" hasArg="true"
+                description="maximum file size to process; do not process files larger than this"/>
+        <option opt="maxQueueSize" hasArg="true"
+                description="maximum queue size for FileResources"/>
+        <option opt="fileList" hasArg="true"
+                description="file that contains a list of files (relative to inputDir) to process"/>
+        <option opt="fileListEncoding" hasArg="true"
+                description="encoding for fileList"/>
+        <option opt="inputDir" hasArg="true"
+                description="root directory for the files to be processed"
+                required="true"/>
+        <option opt="startDir" hasArg="true"
+                description="directory (under inputDir) at which to start crawling"/>
+        <option opt="outputDir" hasArg="true"
+                description="output directory"
+                required="true"/>
+        <option opt="recursiveParserWrapper"
+                description="use the RecursiveParserWrapper or not (default = false)"/>
+        <option opt="handleExisting" hasArg="true"
+                description="if an output file already exists, do you want to: overwrite, rename or skip"/>
+        <option opt="basicHandlerType" hasArg="true"
+                description="what type of content handler: xml, text, html, body"/>
+        <option opt="outputSuffix" hasArg="true"
+                description="suffix to add to the end of the output file name"/>
+        <option opt="timeoutThresholdMillis" hasArg="true"
+                description="how long to wait before determining that a consumer should be timed out"/>
+        <option opt="pauseOnEarlyTerminationMillis" hasArg="true"
+                description="how long to wait for parsers to finish if there is an early termination from the main loop."/>
+        <!-- in long running process, might be good to restart every hour or so to avoid memory leaks-->
+        <option opt="maxAliveTimeSeconds" hasArg="true"
+                description="how long should this process run in seconds."/>
+    </commandline>
+    <!--
+        Can also add startDir: this tells the crawler to start indexing a
+        child directory of the inputDir directory.
+    -->
+	<crawler builderClass="org.apache.tika.batch.fs.builders.FSCrawlerBuilder"
+        crawlOrder="sorted"
+        maxConsecWaitMillis="5000"
+        maxFilesToAdd="-1"
+		maxFilesToConsider="-1" 
+		includeFilePat=""
+		excludeFilePat=""
+		maxFileSizeBytes="-1"
+        />
+
+	<consumers builderClass="org.apache.tika.batch.mock.MockConsumersBuilder"
+               recursiveParserWrapper="false" consumersManagerMaxMillis="1000">
+		<parser class="org.apache.tika.parser.mock.MockParserFactory" parseRecursively="true"/>
+		<contenthandler builderClass="org.apache.tika.batch.builders.DefaultContentHandlerFactoryBuilder"
+                        basicHandlerType="xml" writeLimit="-1"/>
+
+
+		<outputstream class="FSOutputStreamFactory"
+                encoding="UTF-8" outputSuffix="xml"/>
+	</consumers>
+	
+	<!-- reporter and interrupter are optional -->
+	<reporter builderClass="org.apache.tika.batch.builders.SimpleLogReporterBuilder" sleepMillis="1000"
+              reporterStaleThresholdMillis="500000"/>
+	<interrupter builderClass="org.apache.tika.batch.builders.InterrupterBuilder"/>
+</tika-batch-config>
\ No newline at end of file