You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@any23.apache.org by ha...@apache.org on 2018/08/02 18:15:24 UTC

[2/3] any23 git commit: cleaned up annoying logging/console output

cleaned up annoying logging/console output


Project: http://git-wip-us.apache.org/repos/asf/any23/repo
Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/159aeb48
Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/159aeb48
Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/159aeb48

Branch: refs/heads/master
Commit: 159aeb489473f600213142a746d39a49e3d3548b
Parents: 4e3011a
Author: Hans <fi...@gmail.com>
Authored: Thu Aug 2 12:46:44 2018 -0500
Committer: Hans <fi...@gmail.com>
Committed: Thu Aug 2 12:46:44 2018 -0500

----------------------------------------------------------------------
 .../java/org/apache/any23/cli/BaseTool.java     | 83 ++++++++++++++++++++
 .../any23/cli/ExtractorDocumentation.java       | 44 +++++++----
 .../org/apache/any23/cli/MicrodataParser.java   | 17 +++-
 .../java/org/apache/any23/cli/MimeDetector.java | 17 +++-
 .../org/apache/any23/cli/PluginVerifier.java    | 18 ++++-
 .../main/java/org/apache/any23/cli/Rover.java   | 12 ++-
 .../java/org/apache/any23/cli/ToolRunner.java   | 13 ++-
 .../java/org/apache/any23/cli/VocabPrinter.java | 18 ++++-
 .../apache/any23/cli/MicrodataParserTest.java   |  2 +-
 .../org/apache/any23/cli/MimeDetectorTest.java  |  4 +-
 .../java/org/apache/any23/cli/RoverTest.java    |  2 -
 .../org/apache/any23/cli/SimpleRoverTest.java   | 38 ++++-----
 .../java/org/apache/any23/cli/ToolTestBase.java |  7 +-
 .../org/apache/any23/cli/YAMLRoverTest.java     |  9 ++-
 .../extractor/SingleDocumentExtraction.java     |  4 +-
 .../html/AbstractExtractorTestCase.java         | 11 ++-
 .../extractor/rdfa/RDFa11ExtractorTest.java     |  4 +-
 .../apache/any23/vocab/RDFSchemaUtilsTest.java  | 12 +--
 .../officescraper/ExcelExtractorTest.java       |  2 +-
 19 files changed, 245 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/main/java/org/apache/any23/cli/BaseTool.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/any23/cli/BaseTool.java b/cli/src/main/java/org/apache/any23/cli/BaseTool.java
new file mode 100644
index 0000000..d9a82f5
--- /dev/null
+++ b/cli/src/main/java/org/apache/any23/cli/BaseTool.java
@@ -0,0 +1,83 @@
+package org.apache.any23.cli;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+
+abstract class BaseTool implements Tool {
+
+    abstract PrintStream getOut();
+    abstract void setOut(PrintStream out);
+
+    void run(boolean concise) throws Exception {
+        PrintStream out = concise(getOut(), concise);
+        setOut(out);
+        try {
+            run();
+        } finally {
+            close(out);
+        }
+    }
+
+    private static void close(PrintStream stream) {
+        if (stream != null && stream != System.out && stream != System.err) {
+            try {
+                stream.close();
+            } catch (Throwable th) {
+                //ignore
+            }
+        }
+    }
+
+    private static PrintStream concise(PrintStream out, boolean concise) {
+        return (concise && (out == System.out || out == System.err)) ? new ConcisePrintStream(out)
+                : (out instanceof ConcisePrintStream ? ((ConcisePrintStream) out).out : out);
+    }
+
+    private static final class ConcisePrintStream extends PrintStream {
+
+        private PrintStream out;
+
+        private ConcisePrintStream(PrintStream out) {
+            super(new OutputStream() {
+                StringBuilder sb = new StringBuilder();
+                int lineCount;
+                boolean truncated = false;
+                @Override
+                public void write(int b) throws IOException {
+                    if (sb == null) {
+                        throw new IOException("stream closed");
+                    }
+                    if (b == '\n') {
+                        lineCount++;
+                    }
+                    if (lineCount == 0 && sb.length() < 200) {
+                        sb.append((char)b);
+                    } else if (!Character.isWhitespace(b)) {
+                        truncated = true;
+                    }
+                }
+
+                @Override
+                public void close() {
+                    if (sb == null) {
+                        return;
+                    }
+                    if (truncated) {
+                        sb.append("...");
+                    }
+                    if (lineCount > 1) {
+                        sb.append("\n...\n[Suppressed ").append(lineCount).append(" lines of output.]");
+                    }
+
+                    out.println(sb);
+                    sb = null;
+                    BaseTool.close(out);
+                }
+            }, true);
+            this.out = out;
+        }
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/main/java/org/apache/any23/cli/ExtractorDocumentation.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/any23/cli/ExtractorDocumentation.java b/cli/src/main/java/org/apache/any23/cli/ExtractorDocumentation.java
index f0fbeea..d531c2d 100644
--- a/cli/src/main/java/org/apache/any23/cli/ExtractorDocumentation.java
+++ b/cli/src/main/java/org/apache/any23/cli/ExtractorDocumentation.java
@@ -30,13 +30,14 @@ import org.apache.any23.extractor.ExtractorFactory;
 import org.apache.any23.extractor.ExtractorRegistry;
 
 import java.io.IOException;
+import java.io.PrintStream;
 
 /**
  * This class provides some command-line documentation
  * about available extractors and their usage.
  */
 @Parameters( commandNames = { "extractor" }, commandDescription= "Utility for obtaining documentation about metadata extractors.")
-public class ExtractorDocumentation implements Tool {
+public class ExtractorDocumentation extends BaseTool {
 
     @Parameter( names = { "-l", "--list" }, description = "shows the names of all available extractors" )
     private boolean showList;
@@ -50,6 +51,19 @@ public class ExtractorDocumentation implements Tool {
     @Parameter( names = { "-a", "--all" }, description = "shows a report about all available extractors" )
     private boolean showAll;
 
+    private PrintStream out = System.out;
+
+    @Override
+    PrintStream getOut() {
+        return out;
+    }
+
+    @Override
+    void setOut(PrintStream out) {
+        this.out = out;
+    }
+
+    @Override
     public void run() throws Exception {
         if (showList) {
             printExtractorList(ExtractorRegistryImpl.getInstance());
@@ -78,7 +92,7 @@ public class ExtractorDocumentation implements Tool {
      */
     public void printExtractorList(ExtractorRegistry registry) {
         for (ExtractorFactory factory : registry.getExtractorGroup()) {
-            System.out.println( String.format("%25s [%15s]", factory.getExtractorName(), factory.getExtractorLabel()));
+            out.println(String.format("%25s [%15s]", factory.getExtractorName(), factory.getExtractorLabel()));
         }
     }
 
@@ -97,7 +111,7 @@ public class ExtractorDocumentation implements Tool {
         if (input == null) {
             throw new IllegalArgumentException("Extractor " + extractorName + " provides no example input");
         }
-        System.out.println(input);
+        out.println(input);
     }
 
     /**
@@ -116,7 +130,7 @@ public class ExtractorDocumentation implements Tool {
         if (output == null) {
             throw new IllegalArgumentException("Extractor " + extractorName + " provides no example output");
         }
-        System.out.println(output);
+        out.println(output);
     }
 
     /**
@@ -131,21 +145,21 @@ public class ExtractorDocumentation implements Tool {
         for (String extractorName : registry.getAllNames()) {
             ExtractorFactory<?> factory = registry.getFactory(extractorName);
             ExampleInputOutput example = new ExampleInputOutput(factory);
-            System.out.println("Extractor: " + extractorName);
-            System.out.println("\ttype: " + getType(factory));
-            System.out.println();
+            out.println("Extractor: " + extractorName);
+            out.println("\ttype: " + getType(factory));
+            out.println();
             final String exampleInput = example.getExampleInput();
-            if(exampleInput == null) {
-                System.out.println("(No Example Available)");
+            if (exampleInput == null) {
+                out.println("(No Example Available)");
             } else {
-                System.out.println("-------- Example Input  --------");
-                System.out.println(exampleInput);
-                System.out.println("-------- Example Output --------");
+                out.println("-------- Example Input  --------");
+                out.println(exampleInput);
+                out.println("-------- Example Output --------");
                 String output = example.getExampleOutput();
-                System.out.println(output == null || output.trim().length() == 0 ? "(No Output Generated)" : output);
+                out.println(output == null || output.trim().length() == 0 ? "(No Output Generated)" : output);
             }
-            System.out.println("================================");
-            System.out.println();
+            out.println("================================");
+            out.println();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/main/java/org/apache/any23/cli/MicrodataParser.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/any23/cli/MicrodataParser.java b/cli/src/main/java/org/apache/any23/cli/MicrodataParser.java
index 19c59bf..8655c5a 100644
--- a/cli/src/main/java/org/apache/any23/cli/MicrodataParser.java
+++ b/cli/src/main/java/org/apache/any23/cli/MicrodataParser.java
@@ -30,6 +30,7 @@ import org.apache.any23.util.StreamUtils;
 
 import java.io.File;
 import java.io.InputStream;
+import java.io.PrintStream;
 import java.net.URISyntaxException;
 import java.util.LinkedList;
 import java.util.List;
@@ -44,7 +45,7 @@ import java.util.regex.Pattern;
  * @author Michele Mostarda (mostarda@fbk.eu)
  */
 @Parameters( commandNames = { "microdata" },  commandDescription = "Commandline Tool for extracting Microdata from file/HTTP source.")
-public class MicrodataParser implements Tool {
+public class MicrodataParser extends BaseTool {
 
     private static final Pattern HTTP_DOCUMENT_PATTERN = Pattern.compile("^https?://.*");
 
@@ -57,6 +58,18 @@ public class MicrodataParser implements Tool {
     )
     private List<DocumentSource> document = new LinkedList<DocumentSource>();
 
+    private PrintStream out = System.out;
+
+    @Override
+    PrintStream getOut() {
+        return out;
+    }
+
+    @Override
+    void setOut(PrintStream out) {
+        this.out = out;
+    }
+
     public void run() throws Exception {
         if (document.isEmpty()) {
             throw new IllegalArgumentException("No input document URL specified");
@@ -69,7 +82,7 @@ public class MicrodataParser implements Tool {
                     documentInputInputStream,
                     documentSource.getDocumentIRI()
             );
-            org.apache.any23.extractor.microdata.MicrodataParser.getMicrodataAsJSON(tagSoupParser.getDOM(), System.out);
+            org.apache.any23.extractor.microdata.MicrodataParser.getMicrodataAsJSON(tagSoupParser.getDOM(), out);
         } finally {
             if (documentInputInputStream != null) StreamUtils.closeGracefully(documentInputInputStream);
         }

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/main/java/org/apache/any23/cli/MimeDetector.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/any23/cli/MimeDetector.java b/cli/src/main/java/org/apache/any23/cli/MimeDetector.java
index c9072cb..d4ec916 100644
--- a/cli/src/main/java/org/apache/any23/cli/MimeDetector.java
+++ b/cli/src/main/java/org/apache/any23/cli/MimeDetector.java
@@ -32,6 +32,7 @@ import org.apache.any23.source.HTTPDocumentSource;
 import org.apache.any23.source.StringDocumentSource;
 
 import java.io.File;
+import java.io.PrintStream;
 import java.net.URISyntaxException;
 import java.util.LinkedList;
 import java.util.List;
@@ -44,7 +45,7 @@ import java.util.List;
  * @author Michele Mostarda (mostarda@fbk.eu)
  */
 @Parameters(commandNames = { "mimes" }, commandDescription = "MIME Type Detector Tool.")
-public class MimeDetector implements Tool{
+public class MimeDetector extends BaseTool {
 
     public static final String FILE_DOCUMENT_PREFIX   = "file://";
 
@@ -59,6 +60,18 @@ public class MimeDetector implements Tool{
     )
     private List<DocumentSource> document = new LinkedList<DocumentSource>();
 
+    private PrintStream out = System.out;
+
+    @Override
+    PrintStream getOut() {
+        return out;
+    }
+
+    @Override
+    void setOut(PrintStream out) {
+        this.out = out;
+    }
+
     public void run() throws Exception {
         if (document.isEmpty()) {
             throw new IllegalArgumentException("No input document URL specified");
@@ -71,7 +84,7 @@ public class MimeDetector implements Tool{
                 documentSource.openInputStream(),
                 MIMEType.parse(documentSource.getContentType())
         );
-        System.out.println(mimeType);
+        out.println(mimeType);
     }
 
     public static final class MimeDetectorDocumentSourceConverter implements IStringConverter<DocumentSource> {

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/main/java/org/apache/any23/cli/PluginVerifier.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/any23/cli/PluginVerifier.java b/cli/src/main/java/org/apache/any23/cli/PluginVerifier.java
index a43065d..ae0868b 100644
--- a/cli/src/main/java/org/apache/any23/cli/PluginVerifier.java
+++ b/cli/src/main/java/org/apache/any23/cli/PluginVerifier.java
@@ -38,7 +38,7 @@ import java.util.List;
  * @author Michele Mostarda (mostarda@fbk.eu)
  */
 @Parameters(commandNames = { "verify" }, commandDescription = "Utility for plugin management verification.")
-public class PluginVerifier implements Tool {
+public class PluginVerifier extends BaseTool {
 
     private Any23PluginManager pluginManager = Any23PluginManager.getInstance();
 
@@ -48,6 +48,18 @@ public class PluginVerifier implements Tool {
     )
     private List<File> pluginsDirs = new LinkedList<>();
 
+    private PrintStream out = System.out;
+
+    @Override
+    PrintStream getOut() {
+        return out;
+    }
+
+    @Override
+    void setOut(PrintStream out) {
+        this.out = out;
+    }
+
     public void run() throws Exception {
         if (pluginsDirs.isEmpty()) {
             throw new IllegalArgumentException("No plugin directory specified.");
@@ -63,8 +75,8 @@ public class PluginVerifier implements Tool {
         final Iterator<ExtractorFactory> plugins = pluginManager.getExtractors();
 
         while (plugins.hasNext()) {
-            printPluginData(plugins.next(), System.out);
-            System.out.println("------------------------------------------------------------------------");
+            printPluginData(plugins.next(), out);
+            out.println("------------------------------------------------------------------------");
         }
     }
 

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/main/java/org/apache/any23/cli/Rover.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/any23/cli/Rover.java b/cli/src/main/java/org/apache/any23/cli/Rover.java
index 18f0c06..5b49b39 100644
--- a/cli/src/main/java/org/apache/any23/cli/Rover.java
+++ b/cli/src/main/java/org/apache/any23/cli/Rover.java
@@ -59,7 +59,7 @@ import static java.lang.String.format;
  * @author Gabriele Renzi
  */
 @Parameters(commandNames = { "rover" }, commandDescription = "Any23 Command Line Tool.")
-public class Rover implements Tool {
+public class Rover extends BaseTool {
 
     private static final List<String> FORMATS = WriterFactoryRegistry.getInstance().getIdentifiers();
 
@@ -117,6 +117,16 @@ public class Rover implements Tool {
 
     private ExtractionParameters extractionParameters;
 
+    @Override
+    PrintStream getOut() {
+        return outputStream;
+    }
+
+    @Override
+    void setOut(PrintStream out) {
+        outputStream = out;
+    }
+
     protected void configure() {
         try {
             tripleHandler = WriterFactoryRegistry.getInstance().getWriterInstanceByIdentifier(format, outputStream);

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/main/java/org/apache/any23/cli/ToolRunner.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/any23/cli/ToolRunner.java b/cli/src/main/java/org/apache/any23/cli/ToolRunner.java
index b875ec7..a19ecf1 100644
--- a/cli/src/main/java/org/apache/any23/cli/ToolRunner.java
+++ b/cli/src/main/java/org/apache/any23/cli/ToolRunner.java
@@ -69,7 +69,11 @@ public final class ToolRunner {
         exit( new ToolRunner().execute( args ) );
     }
 
-    public int execute(String...args) throws Exception {
+    public int execute(String... args) throws Exception {
+        return execute(false, args);
+    }
+
+    int execute(boolean concise, String... args) throws Exception {
         JCommander commander = new JCommander(this);
         commander.setProgramName(System.getProperty("app.name"));
 
@@ -133,7 +137,12 @@ public final class ToolRunner {
         infoStream.println();
 
         try {
-            Tool.class.cast( commands.get( parsedCommand ).getObjects().get( 0 ) ).run();
+            Tool tool = Tool.class.cast(commands.get(parsedCommand).getObjects().get(0));
+            if (tool instanceof BaseTool) {
+                ((BaseTool) tool).run(concise);
+            } else {
+                tool.run();
+            }
         } catch (Throwable t) {
             exit = 1;
             error = t;

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/main/java/org/apache/any23/cli/VocabPrinter.java
----------------------------------------------------------------------
diff --git a/cli/src/main/java/org/apache/any23/cli/VocabPrinter.java b/cli/src/main/java/org/apache/any23/cli/VocabPrinter.java
index 7fde887..f3126af 100644
--- a/cli/src/main/java/org/apache/any23/cli/VocabPrinter.java
+++ b/cli/src/main/java/org/apache/any23/cli/VocabPrinter.java
@@ -26,19 +26,33 @@ import com.beust.jcommander.IStringConverter;
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
 
+import java.io.PrintStream;
+
 /**
  * Prints out the vocabulary <i>RDFSchema</i> as <i>NQuads</i>.
  * 
  * @author Michele Mostarda (mostarda@fbk.eu)
  */
 @Parameters(commandNames = { "vocab" }, commandDescription = "Prints out the RDF Schema of the vocabularies used by Any23.")
-public class VocabPrinter implements Tool {
+public class VocabPrinter extends BaseTool {
 
     @Parameter(names = { "-f", "--format" }, description = "Vocabulary output format", converter = RDFFormatConverter.class)
     private RDFFormat format = RDFFormat.NQUADS;
 
+    private PrintStream out = System.out;
+
+    @Override
+    PrintStream getOut() {
+        return out;
+    }
+
+    @Override
+    void setOut(PrintStream out) {
+        this.out = out;
+    }
+
     public void run() throws Exception {
-        RDFSchemaUtils.serializeVocabularies(format, System.out);
+        RDFSchemaUtils.serializeVocabularies(format, out);
     }
 
     public static final class RDFFormatConverter implements

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/test/java/org/apache/any23/cli/MicrodataParserTest.java
----------------------------------------------------------------------
diff --git a/cli/src/test/java/org/apache/any23/cli/MicrodataParserTest.java b/cli/src/test/java/org/apache/any23/cli/MicrodataParserTest.java
index 2f46aaa..e0a1123 100644
--- a/cli/src/test/java/org/apache/any23/cli/MicrodataParserTest.java
+++ b/cli/src/test/java/org/apache/any23/cli/MicrodataParserTest.java
@@ -32,7 +32,7 @@ public class MicrodataParserTest extends ToolTestBase {
 
     @Test
     public void testRunOnFile() throws Exception {
-        runToolCheckExit0("file:"+copyResourceToTempFile("/microdata/microdata-nested.html").getAbsolutePath());
+        runToolCheckExit0("file:" + copyResourceToTempFile("/microdata/microdata-nested.html").getAbsolutePath());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/test/java/org/apache/any23/cli/MimeDetectorTest.java
----------------------------------------------------------------------
diff --git a/cli/src/test/java/org/apache/any23/cli/MimeDetectorTest.java b/cli/src/test/java/org/apache/any23/cli/MimeDetectorTest.java
index 3894d32..46b65da 100644
--- a/cli/src/test/java/org/apache/any23/cli/MimeDetectorTest.java
+++ b/cli/src/test/java/org/apache/any23/cli/MimeDetectorTest.java
@@ -39,13 +39,13 @@ public class MimeDetectorTest extends ToolTestBase {
     @Test
     public void testDetectFile() throws Exception {
         assumeOnlineAllowed();
-        runToolCheckExit0("file://"+copyResourceToTempFile("/application/trix/test1.trx").getAbsolutePath());
+        runToolCheckExit0("file://" + copyResourceToTempFile("/application/trix/test1.trx").getAbsolutePath());
     }
 
     @Test
     public void testDetectInline() throws Exception {
         assumeOnlineAllowed();
-        runToolCheckExit0( new String[] {"inline://<http://s> <http://p> <http://o> ."} );
+        runToolCheckExit0("inline://<http://s> <http://p> <http://o> .");
     }
 
 }

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/test/java/org/apache/any23/cli/RoverTest.java
----------------------------------------------------------------------
diff --git a/cli/src/test/java/org/apache/any23/cli/RoverTest.java b/cli/src/test/java/org/apache/any23/cli/RoverTest.java
index 7bab314..15054e4 100644
--- a/cli/src/test/java/org/apache/any23/cli/RoverTest.java
+++ b/cli/src/test/java/org/apache/any23/cli/RoverTest.java
@@ -28,7 +28,6 @@ import org.eclipse.rdf4j.model.Statement;
 import org.eclipse.rdf4j.rio.RDFFormat;
 
 import java.io.File;
-import java.util.Arrays;
 
 /**
  * Test case for {@link Rover}.
@@ -130,7 +129,6 @@ public class RoverTest extends ToolTestBase {
 
         final String outNQuads = FileUtils.readFileContent(outFile);
         final Statement[] statements = RDFUtils.parseRDF(RDFFormat.NQUADS, outNQuads);
-        System.out.println(Arrays.toString(statements));
         Assert.assertTrue("Unexpected number of statements.", statements.length > 9);
     }
 

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/test/java/org/apache/any23/cli/SimpleRoverTest.java
----------------------------------------------------------------------
diff --git a/cli/src/test/java/org/apache/any23/cli/SimpleRoverTest.java b/cli/src/test/java/org/apache/any23/cli/SimpleRoverTest.java
index ec75022..587dda7 100644
--- a/cli/src/test/java/org/apache/any23/cli/SimpleRoverTest.java
+++ b/cli/src/test/java/org/apache/any23/cli/SimpleRoverTest.java
@@ -16,12 +16,13 @@
  */
 package org.apache.any23.cli;
 
-import com.google.common.io.Files;
 import java.io.File;
+import java.lang.invoke.MethodHandles;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.Collection;
-import org.apache.any23.util.FileUtils;
-import org.apache.pdfbox.util.Charsets;
+
+import org.apache.commons.io.FileUtils;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -38,7 +39,7 @@ import org.slf4j.LoggerFactory;
 public class SimpleRoverTest extends ToolTestBase {
     
     private static final String baseUri = "urn:test";
-    private static final Logger log = LoggerFactory.getLogger(SimpleRoverTest.class);
+    private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
     
     private String filePath;
     
@@ -57,8 +58,7 @@ public class SimpleRoverTest extends ToolTestBase {
     }
 
     /**
-     * Ref {@link https://issues.apache.org/jira/browse/ANY23-310} unit test.
-     * @throws Exception 
+     * Ref <a href="https://issues.apache.org/jira/browse/ANY23-310">ANY23-310</a> unit test.
      */
     @Test
     public void ref310Test()
@@ -75,20 +75,23 @@ public class SimpleRoverTest extends ToolTestBase {
         Assert.assertTrue(logfile.exists());
         Assert.assertTrue(outputFile.exists());
         // check if output file is longer than 10 chracters
-        String outputFileContent = FileUtils.readFileContent(outputFile);
+        String outputFileContent = FileUtils.readFileToString(outputFile, StandardCharsets.UTF_8);
         Assert.assertTrue(outputFileContent.length() > 10);
         
-        String[] logFileContent = FileUtils.readFileLines(logfile);
-        Assert.assertTrue(logFileContent.length == 2);
+        String[] logFileContent = FileUtils.readLines(logfile, StandardCharsets.UTF_8).toArray(new String[0]);
+        Assert.assertEquals(2, logFileContent.length);
         //Assert.assertTrue(logFileContent[1].split("\\W*")[1] == );
         int contentSize = Integer.valueOf(logFileContent[1].split("\\t")[1]);
-        log.info("Content: '{}'", contentSize);
         String extractors = logFileContent[1].split("\\t")[4].replaceAll("[\\[\\]\\s:\\d]", "");
-        log.info("Extractors: '{}'", extractors);
-        
-        
-        log.debug("Log file location: {}", logfile.getAbsolutePath());
-        log.trace("Log file content: \n{}\n", Files.toString(logfile, Charsets.UTF_8));
+
+        if (log.isDebugEnabled()) {
+            log.debug("Content: '{}'", contentSize);
+            log.debug("Extractors: '{}'", extractors);
+            log.debug("Log file location: {}", logfile.getAbsolutePath());
+        }
+        if (log.isTraceEnabled()) {
+            log.trace("Log file content: \n{}\n", FileUtils.readFileToString(logfile, StandardCharsets.UTF_8));
+        }
 
         Assert.assertTrue("Content size should be greated than 0", contentSize > 0);
         Assert.assertFalse(extractors.isEmpty());
@@ -96,12 +99,11 @@ public class SimpleRoverTest extends ToolTestBase {
     }
     
     /**
-     * Ref {@link https://issues.apache.org/jira/browse/ANY23-310} unit test.
+     * Ref <a href="https://issues.apache.org/jira/browse/ANY23-310">ANY23-310</a> unit test.
      * 
      * Example without the logging file.
      * 
      * By default that test is not active. It might be useful for debugging.
-     * @throws Exception 
      */
     @Test
     public void ref310ExtendedTest()
@@ -115,7 +117,7 @@ public class SimpleRoverTest extends ToolTestBase {
         
         Assert.assertTrue(outputFile.exists());
         // check if output file is longer than 10 chracters
-        String outputFileContent = FileUtils.readFileContent(outputFile);
+        String outputFileContent = FileUtils.readFileToString(outputFile, StandardCharsets.UTF_8);
         Assert.assertTrue(outputFileContent.length() > 10);
         
         

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/test/java/org/apache/any23/cli/ToolTestBase.java
----------------------------------------------------------------------
diff --git a/cli/src/test/java/org/apache/any23/cli/ToolTestBase.java b/cli/src/test/java/org/apache/any23/cli/ToolTestBase.java
index fef49cd..a815315 100644
--- a/cli/src/test/java/org/apache/any23/cli/ToolTestBase.java
+++ b/cli/src/test/java/org/apache/any23/cli/ToolTestBase.java
@@ -21,6 +21,7 @@ import com.beust.jcommander.Parameters;
 import org.apache.any23.Any23OnlineTestBase;
 
 import java.util.Arrays;
+import java.util.Objects;
 
 import static java.lang.String.format;
 import static org.junit.Assert.assertEquals;
@@ -30,7 +31,6 @@ import static org.junit.Assert.assertEquals;
  *
  * @author Michele Mostarda (mostarda@fbk.eu)
  */
-// TODO: improve support for Tool testing, intercept i/o streams.
 public abstract class ToolTestBase extends Any23OnlineTestBase {
 
     public static final String TOOL_RUN_METHOD = "run";
@@ -38,8 +38,7 @@ public abstract class ToolTestBase extends Any23OnlineTestBase {
     private final Class<? extends Tool> toolClazz;
 
     protected ToolTestBase(Class<? extends Tool> tool) {
-        if (tool == null) throw new NullPointerException();
-        toolClazz = tool;
+        toolClazz = Objects.requireNonNull(tool, "Tool class cannot be null.");
     }
 
     /**
@@ -56,7 +55,7 @@ public abstract class ToolTestBase extends Any23OnlineTestBase {
         enhancedArgs[0] = commandName;
         System.arraycopy( args, 0, enhancedArgs, 1, args.length );
 
-        return new ToolRunner().execute( enhancedArgs );
+        return new ToolRunner().execute(true, enhancedArgs);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/cli/src/test/java/org/apache/any23/cli/YAMLRoverTest.java
----------------------------------------------------------------------
diff --git a/cli/src/test/java/org/apache/any23/cli/YAMLRoverTest.java b/cli/src/test/java/org/apache/any23/cli/YAMLRoverTest.java
index f559f67..6024110 100644
--- a/cli/src/test/java/org/apache/any23/cli/YAMLRoverTest.java
+++ b/cli/src/test/java/org/apache/any23/cli/YAMLRoverTest.java
@@ -16,10 +16,11 @@
  */
 package org.apache.any23.cli;
 
-import com.google.common.io.Files;
 import java.io.File;
 import java.io.IOException;
-import org.apache.pdfbox.util.Charsets;
+import java.nio.charset.StandardCharsets;
+
+import org.apache.commons.io.FileUtils;
 import org.junit.Assert;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -56,7 +57,7 @@ public class YAMLRoverTest extends ToolTestBase {
 
         Assert.assertTrue(logfile.exists());
         log.debug("Log file location: {}", logfile.getAbsolutePath());
-        log.info("Log file content: \n{}\n", Files.toString(logfile, Charsets.UTF_8));
+        log.debug("Log file content: \n{}\n", FileUtils.readFileToString(logfile, StandardCharsets.UTF_8));
 
         Assert.assertEquals("Unexpected exit code.", 0, exitCode);
         assertFileContainsString(outputFile, baseUri);
@@ -72,7 +73,7 @@ public class YAMLRoverTest extends ToolTestBase {
      * @return
      */
     public void assertFileContainsString(File f, String s) throws IOException {
-        String fileContent = Files.toString(f, Charsets.UTF_8);
+        String fileContent = FileUtils.readFileToString(f, StandardCharsets.UTF_8);
         log.trace("File content: \n{}\n", fileContent);
         Assert.assertTrue(fileContent.contains(s));
     }

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/core/src/main/java/org/apache/any23/extractor/SingleDocumentExtraction.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/any23/extractor/SingleDocumentExtraction.java b/core/src/main/java/org/apache/any23/extractor/SingleDocumentExtraction.java
index 028b518..77ed28c 100644
--- a/core/src/main/java/org/apache/any23/extractor/SingleDocumentExtraction.java
+++ b/core/src/main/java/org/apache/any23/extractor/SingleDocumentExtraction.java
@@ -218,8 +218,8 @@ public class SingleDocumentExtraction {
         } catch (Exception ex) {
             throw new IllegalArgumentException("Invalid IRI: " + in.getDocumentIRI(), ex);
         }
-        if(log.isInfoEnabled()) {
-            log.info("Processing " + this.documentIRI);
+        if (log.isDebugEnabled()) {
+            log.debug("Processing " + this.documentIRI);
         }
         filterExtractorsByMIMEType();
 

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/core/src/test/java/org/apache/any23/extractor/html/AbstractExtractorTestCase.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/html/AbstractExtractorTestCase.java b/core/src/test/java/org/apache/any23/extractor/html/AbstractExtractorTestCase.java
index f04d59f..d9e0fe5 100644
--- a/core/src/test/java/org/apache/any23/extractor/html/AbstractExtractorTestCase.java
+++ b/core/src/test/java/org/apache/any23/extractor/html/AbstractExtractorTestCase.java
@@ -48,9 +48,12 @@ import org.eclipse.rdf4j.rio.RDFParseException;
 import org.eclipse.rdf4j.rio.Rio;
 import org.eclipse.rdf4j.sail.Sail;
 import org.eclipse.rdf4j.sail.memory.MemoryStore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.io.StringWriter;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -63,6 +66,8 @@ import java.util.Map;
  */
 public abstract class AbstractExtractorTestCase extends AbstractAny23TestBase {
 
+  private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   /**
    * Base test document.
    */
@@ -363,11 +368,11 @@ public abstract class AbstractExtractorTestCase extends AbstractAny23TestBase {
     for (Map.Entry<String, Collection<IssueReport.Issue>> entry : report
             .getExtractorToIssues().entrySet()) {
       if (entry.getValue().size() > 0) {
-        System.out.println("Unexpected issue for extractor " + entry.getKey()
+        log.debug("Unexpected issue for extractor " + entry.getKey()
         + " : " + entry.getValue());
       }
-      for(Issue nextIssue : entry.getValue()) {
-        if(nextIssue.getLevel() == IssueLevel.ERROR || nextIssue.getLevel() == IssueLevel.FATAL) {
+      for (Issue nextIssue : entry.getValue()) {
+        if (nextIssue.getLevel() == IssueLevel.ERROR || nextIssue.getLevel() == IssueLevel.FATAL) {
           Assert.fail("Unexpected issue for extractor " + entry.getKey()
           + " : " + entry.getValue());
         }

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/core/src/test/java/org/apache/any23/extractor/rdfa/RDFa11ExtractorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/rdfa/RDFa11ExtractorTest.java b/core/src/test/java/org/apache/any23/extractor/rdfa/RDFa11ExtractorTest.java
index c3d7fd5..1bc63d4 100644
--- a/core/src/test/java/org/apache/any23/extractor/rdfa/RDFa11ExtractorTest.java
+++ b/core/src/test/java/org/apache/any23/extractor/rdfa/RDFa11ExtractorTest.java
@@ -292,7 +292,7 @@ public class RDFa11ExtractorTest extends AbstractRDFaExtractorTestCase {
     @Test
     public void testOpenGraphStructuredProperties() throws IOException, ExtractionException, RepositoryException {
         assertExtract("/html/rdfa/opengraph-structured-properties.html");
-        logger.info( dumpHumanReadableTriples() );
+        logger.debug(dumpHumanReadableTriples());
 
         Assert.assertEquals(31, getStatementsSize(null, null, null) );
         final OGP vOGP = OGP.getInstance();
@@ -328,7 +328,7 @@ public class RDFa11ExtractorTest extends AbstractRDFaExtractorTestCase {
     @Test
     public void testOpenGraphAlternateObjectTypes() throws IOException, ExtractionException, RepositoryException {
         assertExtract("/html/rdfa/opengraph-music-song-object-type.html");
-        logger.info( dumpHumanReadableTriples() );
+        logger.debug(dumpHumanReadableTriples());
 
         Assert.assertEquals(9, getStatementsSize(null, null, null) );
         final OGPMusic vOGPMusic = OGPMusic.getInstance();

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java b/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
index c56641a..d8fd8d5 100644
--- a/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
+++ b/core/src/test/java/org/apache/any23/vocab/RDFSchemaUtilsTest.java
@@ -39,7 +39,7 @@ public class RDFSchemaUtilsTest {
     /**
      * Test case for
      * {@link RDFSchemaUtils#serializeVocabularies(
-     * org.apache.any23.vocab.RDFSchemaUtils.VocabularyFormat, java.io.PrintStream)} with <i>NTriples</i> format.
+     * org.eclipse.rdf4j.rio.RDFFormat, java.io.PrintStream)} with <i>NTriples</i> format.
      */
     @Test
     public void testSerializeVocabulariesNTriples() {
@@ -49,7 +49,7 @@ public class RDFSchemaUtilsTest {
     /**
      * Test case for
      * {@link RDFSchemaUtils#serializeVocabularies(
-     * org.apache.any23.vocab.RDFSchemaUtils.VocabularyFormat, java.io.PrintStream)} with <i>RDFXML</i> format.
+     * org.eclipse.rdf4j.rio.RDFFormat, java.io.PrintStream)} with <i>RDFXML</i> format.
      */
     @Test
     public void testSerializeVocabulariesRDFXML() {
@@ -58,12 +58,12 @@ public class RDFSchemaUtilsTest {
 
     private void serializeVocabularies(RDFFormat format, int expectedLines) {
         final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        final PrintStream ps = new PrintStream(baos);
-        RDFSchemaUtils.serializeVocabularies(format, ps);
-        ps.close();
+        try (PrintStream ps = new PrintStream(baos)) {
+            RDFSchemaUtils.serializeVocabularies(format, ps);
+        }
         final String output = baos.toString();
         logger.debug(output);
-        final int occurrences= StringUtils.countOccurrences(output, "\n");
+        final int occurrences = StringUtils.countOccurrences(output, "\n");
         Assert.assertEquals(expectedLines, occurrences);
     }
 

http://git-wip-us.apache.org/repos/asf/any23/blob/159aeb48/plugins/office-scraper/src/test/java/org/apache/any23/plugin/officescraper/ExcelExtractorTest.java
----------------------------------------------------------------------
diff --git a/plugins/office-scraper/src/test/java/org/apache/any23/plugin/officescraper/ExcelExtractorTest.java b/plugins/office-scraper/src/test/java/org/apache/any23/plugin/officescraper/ExcelExtractorTest.java
index 86a16fe..3edebbf 100644
--- a/plugins/office-scraper/src/test/java/org/apache/any23/plugin/officescraper/ExcelExtractorTest.java
+++ b/plugins/office-scraper/src/test/java/org/apache/any23/plugin/officescraper/ExcelExtractorTest.java
@@ -94,7 +94,7 @@ public class ExcelExtractorTest {
         );
         extractor.run(extractionParameters, extractionContext, is, extractionResult);
         compositeTripleHandler.close();
-        logger.info(out.toString());
+        logger.debug(out.toString());
 
         verifyPredicateOccurrence(verifierTripleHandler, Excel.getInstance().containsSheet, 2 );
         verifyPredicateOccurrence(verifierTripleHandler, Excel.getInstance().containsRow  , 6 );