[
https://issues.apache.org/jira/browse/JENA-1267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15754891#comment-15754891
]
ASF GitHub Bot commented on JENA-1267:
--------------------------------------
Github user rvesse commented on a diff in the pull request:
https://github.com/apache/jena/pull/197#discussion_r92841987
--- Diff:
jena-rdfconnection/src/main/java/org/apache/jena/rdfconnection/RDFConnectionRemote.java
---
@@ -0,0 +1,478 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.rdfconnection;
+
+import static java.util.Objects.requireNonNull ;
+
+import java.io.File ;
+import java.io.InputStream ;
+import java.util.concurrent.locks.ReentrantLock ;
+import java.util.function.Supplier ;
+
+import org.apache.http.HttpEntity ;
+import org.apache.http.client.HttpClient ;
+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 ;
+import org.apache.jena.rdf.model.ModelFactory ;
+import org.apache.jena.riot.* ;
+import org.apache.jena.riot.web.HttpCaptureResponse ;
+import org.apache.jena.riot.web.HttpOp ;
+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 ;
+import org.apache.jena.web.HttpSC ;
+
+/**
+ *
+ */
+public class RDFConnectionRemote implements RDFConnection {
+ private static final String fusekiDftSrvQuery = "sparql" ;
+ private static final String fusekiDftSrvUpdate = "update" ;
+ private static final String fusekiDftSrvGSP = "data" ;
+
+ private boolean isOpen = true ;
+ private final String destination ;
+ private final String svcQuery ;
+ private final String svcUpdate ;
+ private final String svcGraphStore ;
+ private HttpClient httpClient ;
+ private HttpContext httpContext = null ;
+
+ // Builder?
+ // HttpContext, HttpClient.
+ // Statics for "query", "query+update" : SparqlQueryConnectionRemote >
SparqlUpdateConnectionRemote > RDFConnectionRemote
+ // XXX Very long "HttpOp.execHttpPost"
+
+ /** Create connection that wil use the {@link HttpClient} using URL of
the dataset and default service names */
+ public RDFConnectionRemote(HttpClient httpClient, String destination) {
+ this(httpClient,
+ requireNonNull(destination),
+ fusekiDftSrvQuery,
+ fusekiDftSrvUpdate,
+ fusekiDftSrvGSP) ;
+ }
+
+
+ /** Create connection, using URL of the dataset and default service
names */
+ public RDFConnectionRemote(String destination) {
+ this(requireNonNull(destination),
+ fusekiDftSrvQuery,
+ fusekiDftSrvUpdate,
+ fusekiDftSrvGSP) ;
+ }
+
+ // ??
+ /** Create connection, using full URLs for services. Pass a null for
"no service endpoint". */
+ public RDFConnectionRemote(String sQuery, String sUpdate, String sGSP)
{
+ this(null, sQuery, sUpdate, sGSP) ;
+ }
+
+ /** Create connection, using URL of the dataset and short names for
the services */
+ public RDFConnectionRemote(String destination, String sQuery, String
sUpdate, String sGSP) {
+ this(null, destination, sQuery, sUpdate, sGSP) ;
+ }
+
+ /** Create connection, using URL of the dataset and short names for
the services */
+ public RDFConnectionRemote(HttpClient httpClient, String destination,
String sQuery, String sUpdate, String sGSP) {
+ this.destination = destination ;
+ this.svcQuery = formServiceURL(destination,sQuery) ;
+ this.svcUpdate = formServiceURL(destination,sUpdate) ;
+ this.svcGraphStore = formServiceURL(destination,sGSP) ;
+// if ( httpClient == null )
--- End diff --
I am guessing that the null check is unnecessary because passing a null
client to `HttpOp` causes the default client to be used?
> RDFConnection
> -------------
>
> Key: JENA-1267
> URL: https://issues.apache.org/jira/browse/JENA-1267
> Project: Apache Jena
> Issue Type: New Feature
> Affects Versions: Jena 3.1.1
> Reporter: Andy Seaborne
> Assignee: Andy Seaborne
> Fix For: Jena 3.2.0
>
>
> RDFConnection is an API to bring together the 3 parts of SPARQL : Query,
> Update and Graph Store Protocol.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)