You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@any23.apache.org by an...@apache.org on 2017/01/13 22:25:56 UTC
[17/25] any23 git commit: ANY23-302 : Autoclose JSONWriter rather
than relying on endDocument being called
ANY23-302 : Autoclose JSONWriter rather than relying on endDocument being called
Signed-off-by: Peter Ansell <p_...@yahoo.com>
Project: http://git-wip-us.apache.org/repos/asf/any23/repo
Commit: http://git-wip-us.apache.org/repos/asf/any23/commit/b5b8b585
Tree: http://git-wip-us.apache.org/repos/asf/any23/tree/b5b8b585
Diff: http://git-wip-us.apache.org/repos/asf/any23/diff/b5b8b585
Branch: refs/heads/master
Commit: b5b8b5859b94a8a73c68aab0011668be3ff76958
Parents: 8ccf456
Author: Peter Ansell <p_...@yahoo.com>
Authored: Thu Jan 12 10:03:54 2017 +1100
Committer: Peter Ansell <p_...@yahoo.com>
Committed: Thu Jan 12 10:03:54 2017 +1100
----------------------------------------------------------------------
.../org/apache/any23/writer/TripleHandler.java | 2 +-
.../extractor/microdata/MicrodataParser.java | 8 +--
.../org/apache/any23/writer/JSONWriter.java | 11 ++++
.../microdata/MicrodataParserTest.java | 1 -
.../org/apache/any23/writer/JSONWriterTest.java | 54 ++++++++++----------
5 files changed, 42 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/any23/blob/b5b8b585/api/src/main/java/org/apache/any23/writer/TripleHandler.java
----------------------------------------------------------------------
diff --git a/api/src/main/java/org/apache/any23/writer/TripleHandler.java b/api/src/main/java/org/apache/any23/writer/TripleHandler.java
index 6d88ed3..e74436f 100644
--- a/api/src/main/java/org/apache/any23/writer/TripleHandler.java
+++ b/api/src/main/java/org/apache/any23/writer/TripleHandler.java
@@ -25,7 +25,7 @@ import org.eclipse.rdf4j.model.Value;
/**
* Defines a document based triple handler.
*/
-public interface TripleHandler {
+public interface TripleHandler extends AutoCloseable {
void startDocument(IRI documentIRI) throws TripleHandlerException;
http://git-wip-us.apache.org/repos/asf/any23/blob/b5b8b585/core/src/main/java/org/apache/any23/extractor/microdata/MicrodataParser.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/any23/extractor/microdata/MicrodataParser.java b/core/src/main/java/org/apache/any23/extractor/microdata/MicrodataParser.java
index 7bb3ea0..8ee1cc6 100644
--- a/core/src/main/java/org/apache/any23/extractor/microdata/MicrodataParser.java
+++ b/core/src/main/java/org/apache/any23/extractor/microdata/MicrodataParser.java
@@ -226,10 +226,10 @@ public class MicrodataParser {
// Results.
ps.append("\"result\" : [");
for(int i = 0; i < itemScopes.length; i++) {
- ps.print( itemScopes[i].toJSON() );
- if( i < itemScopes.length - 1 ) {
+ if (i > 0) {
ps.print(", ");
}
+ ps.print( itemScopes[i].toJSON() );
}
ps.append("] ");
@@ -238,10 +238,10 @@ public class MicrodataParser {
ps.append(", ");
ps.append("\"errors\" : [");
for (int i = 0; i < errors.length; i++) {
- ps.print( errors[i].toJSON() );
- if (i < itemScopes.length - 1) {
+ if (i > 0) {
ps.print(", ");
}
+ ps.print( errors[i].toJSON() );
}
ps.append("] ");
}
http://git-wip-us.apache.org/repos/asf/any23/blob/b5b8b585/core/src/main/java/org/apache/any23/writer/JSONWriter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/any23/writer/JSONWriter.java b/core/src/main/java/org/apache/any23/writer/JSONWriter.java
index b4a11da..331a65b 100644
--- a/core/src/main/java/org/apache/any23/writer/JSONWriter.java
+++ b/core/src/main/java/org/apache/any23/writer/JSONWriter.java
@@ -50,6 +50,7 @@ public class JSONWriter implements FormatWriter {
this.ps = new PrintStream(new BufferedOutputStream(os));
}
+ @Override
public void startDocument(IRI documentIRI) throws TripleHandlerException {
if(documentStarted) {
throw new IllegalStateException("Document already started.");
@@ -60,10 +61,12 @@ public class JSONWriter implements FormatWriter {
ps.print("{ \"quads\" : [");
}
+ @Override
public void openContext(ExtractionContext context) throws TripleHandlerException {
// Empty.
}
+ @Override
public void receiveTriple(Resource s, IRI p, Value o, IRI g, ExtractionContext context)
throws TripleHandlerException {
validateDocumentStarted();
@@ -98,26 +101,34 @@ public class JSONWriter implements FormatWriter {
ps.print(']');
}
+ @Override
public void receiveNamespace(String prefix, String uri, ExtractionContext context)
throws TripleHandlerException {
// Empty.
}
+ @Override
public void closeContext(ExtractionContext context) throws TripleHandlerException {
// Empty.
}
+ @Override
public void endDocument(IRI documentIRI) throws TripleHandlerException {
validateDocumentStarted();
ps.print("]}");
documentStarted = false;
}
+ @Override
public void setContentLength(long contentLength) {
// Empty.
}
+ @Override
public void close() throws TripleHandlerException {
+ if(documentStarted) {
+ endDocument(null);
+ }
ps.close();
}
http://git-wip-us.apache.org/repos/asf/any23/blob/b5b8b585/core/src/test/java/org/apache/any23/extractor/microdata/MicrodataParserTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/microdata/MicrodataParserTest.java b/core/src/test/java/org/apache/any23/extractor/microdata/MicrodataParserTest.java
index ffd4e26..74ad67d 100644
--- a/core/src/test/java/org/apache/any23/extractor/microdata/MicrodataParserTest.java
+++ b/core/src/test/java/org/apache/any23/extractor/microdata/MicrodataParserTest.java
@@ -59,7 +59,6 @@ public class MicrodataParserTest {
private static final Logger logger = LoggerFactory.getLogger(MicrodataParserTest.class);
- @Ignore("TODO: Determine the cause of this")
@Test
public void testBasicFeatures() throws IOException {
extractItemsAndVerifyJSONSerialization(
http://git-wip-us.apache.org/repos/asf/any23/blob/b5b8b585/core/src/test/java/org/apache/any23/writer/JSONWriterTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/writer/JSONWriterTest.java b/core/src/test/java/org/apache/any23/writer/JSONWriterTest.java
index 1c52228..ebe6ba3 100644
--- a/core/src/test/java/org/apache/any23/writer/JSONWriterTest.java
+++ b/core/src/test/java/org/apache/any23/writer/JSONWriterTest.java
@@ -34,37 +34,35 @@ import java.io.ByteArrayOutputStream;
*/
public class JSONWriterTest {
- private JSONWriter jsonWriter;
-
@Test
public void testWriting() throws TripleHandlerException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- jsonWriter = new JSONWriter(baos);
- final IRI documentIRI = SimpleValueFactory.getInstance().createIRI("http://fake/uri");
- jsonWriter.startDocument(documentIRI);
- jsonWriter.receiveTriple(
- SimpleValueFactory.getInstance().createBNode("bn1"),
- SimpleValueFactory.getInstance().createIRI("http://pred/1"),
- SimpleValueFactory.getInstance().createIRI("http://value/1"),
- SimpleValueFactory.getInstance().createIRI("http://graph/1"),
- null
- );
- jsonWriter.receiveTriple(
- SimpleValueFactory.getInstance().createIRI("http://sub/2"),
- SimpleValueFactory.getInstance().createIRI("http://pred/2"),
- SimpleValueFactory.getInstance().createLiteral("language literal", "en"),
- SimpleValueFactory.getInstance().createIRI("http://graph/2"),
- null
- );
- jsonWriter.receiveTriple(
- SimpleValueFactory.getInstance().createIRI("http://sub/3"),
- SimpleValueFactory.getInstance().createIRI("http://pred/3"),
- SimpleValueFactory.getInstance().createLiteral("123", SimpleValueFactory.getInstance().createIRI("http://datatype")),
- null,
- null
- );
- jsonWriter.endDocument(documentIRI);
- jsonWriter.close();
+ try(JSONWriter jsonWriter = new JSONWriter(baos);) {
+ final IRI documentIRI = SimpleValueFactory.getInstance().createIRI("http://fake/uri");
+ jsonWriter.startDocument(documentIRI);
+ jsonWriter.receiveTriple(
+ SimpleValueFactory.getInstance().createBNode("bn1"),
+ SimpleValueFactory.getInstance().createIRI("http://pred/1"),
+ SimpleValueFactory.getInstance().createIRI("http://value/1"),
+ SimpleValueFactory.getInstance().createIRI("http://graph/1"),
+ null
+ );
+ jsonWriter.receiveTriple(
+ SimpleValueFactory.getInstance().createIRI("http://sub/2"),
+ SimpleValueFactory.getInstance().createIRI("http://pred/2"),
+ SimpleValueFactory.getInstance().createLiteral("language literal", "en"),
+ SimpleValueFactory.getInstance().createIRI("http://graph/2"),
+ null
+ );
+ jsonWriter.receiveTriple(
+ SimpleValueFactory.getInstance().createIRI("http://sub/3"),
+ SimpleValueFactory.getInstance().createIRI("http://pred/3"),
+ SimpleValueFactory.getInstance().createLiteral("123", SimpleValueFactory.getInstance().createIRI("http://datatype")),
+ null,
+ null
+ );
+ jsonWriter.endDocument(documentIRI);
+ }
final String expected =
"{ " +