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/07/05 22:22:42 UTC
jena git commit: Use same idiom as "fetch" for "fetchDataset".
Repository: jena
Updated Branches:
refs/heads/master d857b6950 -> 97dd1fde5
Use same idiom as "fetch" for "fetchDataset".
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/97dd1fde
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/97dd1fde
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/97dd1fde
Branch: refs/heads/master
Commit: 97dd1fde5c072ea3e9a5077b0b4c0ec485e410b2
Parents: d857b69
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Jul 5 18:09:53 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Jul 5 18:09:53 2017 +0100
----------------------------------------------------------------------
.../apache/jena/riot/web/HttpResponseLib.java | 37 +++++++++++++++++++-
.../jena/rdfconnection/RDFConnectionRemote.java | 28 +++++++--------
2 files changed, 48 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/97dd1fde/jena-arq/src/main/java/org/apache/jena/riot/web/HttpResponseLib.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/web/HttpResponseLib.java b/jena-arq/src/main/java/org/apache/jena/riot/web/HttpResponseLib.java
index 9a9c83b..e545808 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/web/HttpResponseLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/web/HttpResponseLib.java
@@ -31,9 +31,14 @@ import org.apache.jena.atlas.io.IO ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.query.ResultSet ;
import org.apache.jena.query.ResultSetFactory ;
-import org.apache.jena.riot.* ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFLanguages ;
+import org.apache.jena.riot.RDFParser ;
+import org.apache.jena.riot.WebContent ;
import org.apache.jena.riot.system.StreamRDF ;
import org.apache.jena.riot.system.StreamRDFLib ;
+import org.apache.jena.sparql.core.DatasetGraph ;
+import org.apache.jena.sparql.core.DatasetGraphFactory ;
import org.apache.jena.sparql.graph.GraphFactory ;
import org.apache.jena.sparql.resultset.ResultsFormat ;
@@ -42,6 +47,7 @@ import org.apache.jena.sparql.resultset.ResultsFormat ;
*/
public class HttpResponseLib
{
+ /** Handle a Graph response */
public static HttpCaptureResponse<Graph> graphHandler() { return new GraphReader() ; }
static class GraphReader implements HttpCaptureResponse<Graph>
{
@@ -67,6 +73,34 @@ public class HttpResponseLib
public Graph get() { return graph ; }
}
+ /** Handle a DatasetGraph response */
+ public static HttpCaptureResponse<DatasetGraph> datasetHandler() { return new DatasetGraphReader() ; }
+ static class DatasetGraphReader implements HttpCaptureResponse<DatasetGraph>
+ {
+ private DatasetGraph dsg = null ;
+ @Override
+ final public void handle(String baseIRI, HttpResponse response)
+ {
+ try {
+ DatasetGraph dsg = DatasetGraphFactory.createTxnMem();
+ HttpEntity entity = response.getEntity() ;
+ // org.apache.http.entity.ContentType ;
+ String ct = contentType(response) ;
+ Lang lang = RDFLanguages.contentTypeToLang(ct) ;
+ StreamRDF dest = StreamRDFLib.dataset(dsg);
+ try(InputStream in = entity.getContent()) {
+ RDFParser.source(in).lang(lang).base(baseIRI).parse(dest);
+ }
+ this.dsg = dsg ;
+ } catch (IOException ex) { IO.exception(ex) ; }
+ }
+
+ @Override
+ public DatasetGraph get() { return dsg ; }
+ }
+
+
+ /** Dump, to System.out, a response */
public static HttpResponseHandler httpDumpResponse = new HttpResponseHandler()
{
@Override
@@ -91,6 +125,7 @@ public class HttpResponseLib
}
} ;
+ /** Consume a response quietly. */
public static HttpResponseHandler nullResponse = new HttpResponseHandler() {
@Override
public void handle(String baseIRI , HttpResponse response ) {
http://git-wip-us.apache.org/repos/asf/jena/blob/97dd1fde/jena-rdfconnection/src/main/java/org/apache/jena/rdfconnection/RDFConnectionRemote.java
----------------------------------------------------------------------
diff --git a/jena-rdfconnection/src/main/java/org/apache/jena/rdfconnection/RDFConnectionRemote.java b/jena-rdfconnection/src/main/java/org/apache/jena/rdfconnection/RDFConnectionRemote.java
index d0efcd7..0a67930 100644
--- a/jena-rdfconnection/src/main/java/org/apache/jena/rdfconnection/RDFConnectionRemote.java
+++ b/jena-rdfconnection/src/main/java/org/apache/jena/rdfconnection/RDFConnectionRemote.java
@@ -31,7 +31,6 @@ import org.apache.http.entity.EntityTemplate;
import org.apache.http.protocol.HttpContext;
import org.apache.jena.atlas.io.IO;
import org.apache.jena.atlas.web.HttpException;
-import org.apache.jena.atlas.web.TypedInputStream;
import org.apache.jena.graph.Graph;
import org.apache.jena.query.*;
import org.apache.jena.rdf.model.Model;
@@ -43,7 +42,6 @@ import org.apache.jena.riot.web.HttpResponseLib;
import org.apache.jena.sparql.ARQException;
import org.apache.jena.sparql.core.DatasetGraph;
import org.apache.jena.sparql.core.Transactional;
-import org.apache.jena.system.Txn;
import org.apache.jena.update.UpdateExecutionFactory;
import org.apache.jena.update.UpdateProcessor;
import org.apache.jena.update.UpdateRequest;
@@ -261,31 +259,29 @@ public class RDFConnectionRemote implements RDFConnection {
checkGSP();
delete(null);
}
-
+
@Override
public Dataset fetchDataset() {
- if ( destination == null )
- throw new ARQException("Dataset operations not available - no dataset URL provided");
- Dataset ds = DatasetFactory.createTxnMem();
- Txn.executeWrite(ds, ()->{
- TypedInputStream s = exec(()->HttpOp.execHttpGet(destination, WebContent.defaultDatasetAcceptHeader));
- Lang lang = RDFLanguages.contentTypeToLang(s.getContentType());
- RDFDataMgr.read(ds, s, lang);
- });
- return ds;
+ checkDataset();
+ DatasetGraph dsg = fetchDataset$();
+ return DatasetFactory.wrap(dsg);
}
+ private DatasetGraph fetchDataset$() {
+ HttpCaptureResponse<DatasetGraph> dsg = HttpResponseLib.datasetHandler();
+ exec(()->HttpOp.execHttpGet(destination, WebContent.defaultDatasetAcceptHeader, dsg, this.httpClient, this.httpContext));
+ return dsg.get();
+ }
+
@Override
public void loadDataset(String file) {
- if ( destination == null )
- throw new ARQException("Dataset operations not available - no dataset URl provided");
+ checkDataset();
doPutPostDataset(file, false);
}
@Override
public void loadDataset(Dataset dataset) {
- if ( destination == null )
- throw new ARQException("Dataset operations not available - no dataset URl provided");
+ checkDataset();
doPutPostDataset(dataset, false);
}