You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2017/06/04 08:02:16 UTC
[2/6] jena git commit: Add StreamManager support.
Add StreamManager support.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/fb95291a
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/fb95291a
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/fb95291a
Branch: refs/heads/master
Commit: fb95291ad471ae1e7fb4c1f3eb77fbe832b57e51
Parents: cc8810d
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Jun 3 22:50:19 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Jun 3 22:50:19 2017 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/riot/RDFParser.java | 12 +++++++-----
.../org/apache/jena/riot/RDFParserBuilder.java | 20 ++++++++++++++++++--
.../org/apache/jena/riot/TestRDFParser.java | 12 ++++++++++++
3 files changed, 37 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/fb95291a/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
index f1c07d3..977789b 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFParser.java
@@ -75,6 +75,8 @@ public class RDFParser {
private final String content;
private final InputStream inputStream;
private final Reader javaReader;
+ private final StreamManager streamManager;
+
private final HttpClient httpClient;
private final Lang hintLang;
private final Lang forceLang;
@@ -159,8 +161,9 @@ public class RDFParser {
return RDFParserBuilder.create().source(input);
}
- /* package */ RDFParser(String uri, Path path, String content, InputStream inputStream, Reader javaReader, HttpClient httpClient, Lang hintLang,
- Lang forceLang, String baseUri, boolean strict, Optional<Boolean> checking, boolean resolveURIs, boolean canonicalLiterals, IRIResolver resolver, FactoryRDF factory,
+ /* package */ RDFParser(String uri, Path path, String content, InputStream inputStream, Reader javaReader, StreamManager streamManager,
+ HttpClient httpClient, Lang hintLang, Lang forceLang, String baseUri, boolean strict,
+ Optional<Boolean> checking, boolean resolveURIs, boolean canonicalLiterals, IRIResolver resolver, FactoryRDF factory,
ErrorHandler errorHandler, Context context) {
int x = countNonNull(uri, path, content, inputStream, javaReader);
if ( x >= 2 )
@@ -176,6 +179,7 @@ public class RDFParser {
this.content = content;
this.inputStream = inputStream;
this.javaReader = javaReader;
+ this.streamManager = streamManager;
this.httpClient = httpClient;
this.hintLang = hintLang;
this.forceLang = forceLang;
@@ -324,9 +328,7 @@ public class RDFParser {
urlStr = StreamManager.get(context).mapURI(urlStr);
in = HttpOp.execHttpGet(urlStr, null, httpClient, null);
} else {
- // StreamManager and Locators, based on urlStr.
- StreamManager sMgr = StreamManager.get(context);
- in = sMgr.open(urlStr);
+ in = streamManager.open(urlStr);
}
if ( in == null )
throw new RiotNotFoundException("Not found: "+urlStr);
http://git-wip-us.apache.org/repos/asf/jena/blob/fb95291a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
index 4824387..ed1ca7b 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFParserBuilder.java
@@ -33,6 +33,7 @@ import org.apache.jena.graph.BlankNodeId;
import org.apache.jena.graph.Graph;
import org.apache.jena.riot.lang.LabelToNode;
import org.apache.jena.riot.system.*;
+import org.apache.jena.riot.system.stream.StreamManager;
import org.apache.jena.riot.web.HttpNames;
import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.util.Context;
@@ -69,6 +70,7 @@ public class RDFParserBuilder {
// The not reusable sources.
private InputStream inputStream;
private Reader javaReader = null;
+ private StreamManager streamManager = null;
// HTTP
private Map<String, String> httpHeaders = new HashMap<>();
@@ -198,6 +200,16 @@ public class RDFParserBuilder {
this.javaReader = reader;
return this;
}
+
+ /**
+ * Set the StreamManager to use when opening a URI (including files by name, but not by {@code Path}).
+ * @param streamManager
+ * @return this
+ */
+ public RDFParserBuilder streamManager(StreamManager streamManager) {
+ this.streamManager = streamManager;
+ return this;
+ }
private void clearSource() {
this.uri = null;
@@ -458,9 +470,13 @@ public class RDFParserBuilder {
if ( path == null && baseUri == null && uri != null )
baseUri = uri;
+ StreamManager sMgr = streamManager;
+ if ( sMgr == null )
+ sMgr = StreamManager.get(context);
+
// Can't build the profile here as it is Lang/conneg dependent.
- return new RDFParser(uri, path, content, inputStream, javaReader, client,
- hintLang, forceLang,
+ return new RDFParser(uri, path, content, inputStream, javaReader, sMgr,
+ client, hintLang, forceLang,
baseUri, strict, checking, resolveURIs, canonicalLiterals,
resolver, factory$, errorHandler$, context);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/fb95291a/jena-arq/src/test/java/org/apache/jena/riot/TestRDFParser.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/TestRDFParser.java b/jena-arq/src/test/java/org/apache/jena/riot/TestRDFParser.java
index 52f74c6..24f5d47 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/TestRDFParser.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/TestRDFParser.java
@@ -33,6 +33,8 @@ import org.apache.jena.graph.Node;
import org.apache.jena.riot.lang.LabelToNode;
import org.apache.jena.riot.system.ErrorHandlerFactory;
import org.apache.jena.riot.system.FactoryRDFStd;
+import org.apache.jena.riot.system.stream.LocatorFile;
+import org.apache.jena.riot.system.stream.StreamManager;
import org.apache.jena.sparql.graph.GraphFactory;
import org.junit.Test;
@@ -157,6 +159,16 @@ public class TestRDFParser {
assertEquals(3, graph.size());
}
+ @Test
+ public void source_streamManager() {
+ StreamManager sMgr = new StreamManager();
+ sMgr.addLocator(new LocatorFile(DIR)) ;
+ Graph graph = GraphFactory.createGraphMem();
+ RDFParser.create().streamManager(sMgr).source("file:data.rdf").forceLang(Lang.TTL).parse(graph);
+ assertEquals(3, graph.size());
+ }
+
+
private static class TestingFactoryRDF extends FactoryRDFStd {
int counter = 0;
@Override