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 <[email protected]> Authored: Thu Aug 2 12:46:44 2018 -0500 Committer: Hans <[email protected]> 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 ([email protected]) */ @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 ([email protected]) */ @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 ([email protected]) */ @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 ([email protected]) */ @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 ([email protected]) */ -// 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 );
