Repository: jena Updated Branches: refs/heads/master c8427ba75 -> 123cf4cb3
JENA-1012 : Deprecate createIterator operations (moved to RDFDataMgr) Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/123cf4cb Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/123cf4cb Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/123cf4cb Branch: refs/heads/master Commit: 123cf4cb390dcc0d182d942a0806fa9d2d1294d3 Parents: c8427ba Author: Andy Seaborne <[email protected]> Authored: Fri Aug 21 16:20:10 2015 +0100 Committer: Andy Seaborne <[email protected]> Committed: Fri Aug 21 16:20:10 2015 +0100 ---------------------------------------------------------------------- .../java/org/apache/jena/riot/RDFDataMgr.java | 47 ++++++++++++++- .../java/org/apache/jena/riot/RiotReader.java | 61 ++++---------------- .../sparql/engine/http/QueryEngineHTTP.java | 2 +- .../org/apache/jena/riot/TestRiotReader.java | 8 +-- 4 files changed, 61 insertions(+), 57 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/123cf4cb/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java index 851ff5b..395119e 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java @@ -23,6 +23,7 @@ import java.util.Iterator ; import java.util.Objects ; import org.apache.jena.atlas.io.IO ; +import org.apache.jena.atlas.iterator.IteratorResourceClosing ; import org.apache.jena.atlas.lib.Lib ; import org.apache.jena.atlas.web.ContentType ; import org.apache.jena.atlas.web.TypedInputStream ; @@ -32,6 +33,10 @@ import org.apache.jena.query.Dataset ; import org.apache.jena.query.DatasetFactory ; import org.apache.jena.rdf.model.Model ; import org.apache.jena.rdf.model.ModelFactory ; +import org.apache.jena.riot.lang.PipedQuadsStream ; +import org.apache.jena.riot.lang.PipedRDFIterator ; +import org.apache.jena.riot.lang.PipedTriplesStream ; +import org.apache.jena.riot.lang.RiotParsers ; import org.apache.jena.riot.system.RiotLib ; import org.apache.jena.riot.system.StreamRDF ; import org.apache.jena.riot.system.StreamRDFLib ; @@ -1207,5 +1212,45 @@ public class RDFDataMgr WriterDatasetRIOT w = createDatasetWriter$(serialization); w.write(out, dataset, RiotLib.prefixMap(dataset), null, null); } -} + /** + * Create an iterator over parsing of triples + * @param input Input Stream + * @param lang Language + * @param baseIRI Base IRI + * @return Iterator over the triples + */ + public static Iterator<Triple> createIteratorTriples(InputStream input, Lang lang, String baseIRI) + { + // Special case N-Triples, because the RIOT reader has a pull interface + if ( RDFLanguages.sameLang(RDFLanguages.NTRIPLES, lang) ) + return new IteratorResourceClosing<>(RiotParsers.createParserNTriples(input, null), input); + // Otherwise, we have to spin up a thread to deal with it + PipedRDFIterator<Triple> it = new PipedRDFIterator<>(); + PipedTriplesStream out = new PipedTriplesStream(it); + Thread t = new Thread(()->parse(out, input, baseIRI, lang)) ; + t.start(); + return it; + } + + /** + * Creates an iterator over parsing of quads + * @param input Input Stream + * @param lang Language + * @param baseIRI Base IRI + * @return Iterator over the quads + */ + public static Iterator<Quad> createIteratorQuads(InputStream input, Lang lang, String baseIRI) + { + // Special case N-Quads, because the RIOT reader has a pull interface + if ( RDFLanguages.sameLang(RDFLanguages.NQUADS, lang) ) + return new IteratorResourceClosing<>(RiotParsers.createParserNQuads(input, null), input); + // Otherwise, we have to spin up a thread to deal with it + final PipedRDFIterator<Quad> it = new PipedRDFIterator<>(); + final PipedQuadsStream out = new PipedQuadsStream(it); + + Thread t = new Thread(()->parse(out, input, baseIRI, lang)) ; + t.start(); + return it; + } +} http://git-wip-us.apache.org/repos/asf/jena/blob/123cf4cb/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java b/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java index be35fd5..d23c66e 100644 --- a/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java +++ b/jena-arq/src/main/java/org/apache/jena/riot/RiotReader.java @@ -25,18 +25,17 @@ import java.io.InputStream ; import java.util.Iterator ; import org.apache.jena.atlas.io.IO ; -import org.apache.jena.atlas.iterator.IteratorResourceClosing ; import org.apache.jena.atlas.lib.Sink ; import org.apache.jena.graph.Triple ; -import org.apache.jena.riot.lang.* ; import org.apache.jena.riot.system.StreamRDF ; import org.apache.jena.riot.system.StreamRDFLib ; import org.apache.jena.sparql.core.Quad ; /** Operations to access RIOT parsers and send the output to * a StreamRDF (triples or quads as appropriate). - * This class is probably not what you want to use. - * It is public to give maximum compatibility. + * <p> + * <b>This class is probably not what you want to use.</b> + * <p> * * @see RDFDataMgr for reading from a location, including web access and content negotation. */ @@ -196,32 +195,12 @@ public class RiotReader * @param lang Language * @param baseIRI Base IRI * @return Iterator over the triples + * @deprecated Use {@link RDFDataMgr#createIteratorTriples(InputStream,Lang,String)} instead */ + @Deprecated public static Iterator<Triple> createIteratorTriples(final InputStream input, final Lang lang, final String baseIRI) { - // Special case N-Triples, because the RIOT reader has a pull interface - if ( RDFLanguages.sameLang(RDFLanguages.NTRIPLES, lang) ) - { - return new IteratorResourceClosing<>(RiotParsers.createParserNTriples(input, null), input); - } - else - { - // Otherwise, we have to spin up a thread to deal with it - final PipedRDFIterator<Triple> it = new PipedRDFIterator<>(); - final PipedTriplesStream out = new PipedTriplesStream(it); - - Thread t = new Thread(new Runnable() - { - @Override - public void run() - { - RDFDataMgr.parse(out, input, baseIRI, lang); - } - }); - t.start(); - - return it; - } + return RDFDataMgr.createIteratorTriples(input, lang, baseIRI); } /** @@ -230,31 +209,11 @@ public class RiotReader * @param lang Language * @param baseIRI Base IRI * @return Iterator over the quads + * @deprecated Use {@link RDFDataMgr#createIteratorQuads(InputStream,Lang,String)} instead */ - public static Iterator<Quad> createIteratorQuads(final InputStream input, final Lang lang, final String baseIRI) + @Deprecated + public static Iterator<Quad> createIteratorQuads(final InputStream input, final Lang lang, final String baseIRI) { - // Special case N-Quads, because the RIOT reader has a pull interface - if ( RDFLanguages.sameLang(RDFLanguages.NQUADS, lang) ) - { - return new IteratorResourceClosing<>(RiotParsers.createParserNQuads(input, null), input); - } - else - { - // Otherwise, we have to spin up a thread to deal with it - final PipedRDFIterator<Quad> it = new PipedRDFIterator<>(); - final PipedQuadsStream out = new PipedQuadsStream(it); - - Thread t = new Thread(new Runnable() - { - @Override - public void run() - { - RDFDataMgr.parse(out, input, baseIRI, lang); - } - }); - t.start(); - - return it; - } + return RDFDataMgr.createIteratorQuads(input, lang, baseIRI); } } http://git-wip-us.apache.org/repos/asf/jena/blob/123cf4cb/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java index ef9b8f1..e20efd2 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/QueryEngineHTTP.java @@ -456,7 +456,7 @@ public class QueryEngineHTTP implements QueryExecution { throw new QueryException("Endpoint returned Content Type: " + actualContentType + " which is not a valid RDF Graph syntax"); - return RiotReader.createIteratorTriples(in, lang, null); + return RDFDataMgr.createIteratorTriples(in, lang, null); } @Override http://git-wip-us.apache.org/repos/asf/jena/blob/123cf4cb/jena-arq/src/test/java/org/apache/jena/riot/TestRiotReader.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/test/java/org/apache/jena/riot/TestRiotReader.java b/jena-arq/src/test/java/org/apache/jena/riot/TestRiotReader.java index e516e65..b54df07 100644 --- a/jena-arq/src/test/java/org/apache/jena/riot/TestRiotReader.java +++ b/jena-arq/src/test/java/org/apache/jena/riot/TestRiotReader.java @@ -36,7 +36,7 @@ public class TestRiotReader @Test public void testCreateIteratorTriples_01() { - Iterator<Triple> it = RiotReader.createIteratorTriples(new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)), RDFLanguages.NTRIPLES, "http://example/"); + Iterator<Triple> it = RDFDataMgr.createIteratorTriples(new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)), RDFLanguages.NTRIPLES, "http://example/"); assertFalse(it.hasNext()); } @@ -44,7 +44,7 @@ public class TestRiotReader @Test public void testEncodedUTF8() { - Iterator<Triple> it = RiotReader.createIteratorTriples(new ByteArrayInputStream("<a> <b> \"\\u263A\" .".getBytes(StandardCharsets.UTF_8)), RDFLanguages.NTRIPLES, null); + Iterator<Triple> it = RDFDataMgr.createIteratorTriples(new ByteArrayInputStream("<a> <b> \"\\u263A\" .".getBytes(StandardCharsets.UTF_8)), RDFLanguages.NTRIPLES, null); assertTrue(it.hasNext()); assertEquals("âº", it.next().getObject().getLiteralLexicalForm()); @@ -53,7 +53,7 @@ public class TestRiotReader @Test public void testRawUTF8() { - Iterator<Triple> it = RiotReader.createIteratorTriples(new ByteArrayInputStream("<a> <b> \"âº\" .".getBytes(StandardCharsets.UTF_8)), RDFLanguages.NTRIPLES, null); + Iterator<Triple> it = RDFDataMgr.createIteratorTriples(new ByteArrayInputStream("<a> <b> \"âº\" .".getBytes(StandardCharsets.UTF_8)), RDFLanguages.NTRIPLES, null); assertTrue(it.hasNext()); assertEquals("âº", it.next().getObject().getLiteralLexicalForm()); @@ -71,7 +71,7 @@ public class TestRiotReader " </rdf:Description>" , "</rdf:RDF>") ; - Iterator<Triple> it = RiotReader.createIteratorTriples(new ByteArrayInputStream(x.getBytes()), RDFLanguages.RDFXML, "http://example/"); + Iterator<Triple> it = RDFDataMgr.createIteratorTriples(new ByteArrayInputStream(x.getBytes()), RDFLanguages.RDFXML, "http://example/"); assertTrue(it.hasNext()); Triple t = it.next();
