This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git


The following commit(s) were added to refs/heads/main by this push:
     new 9c3ee47031 Support CONSTRUCT_JSON query type in RDFLinkHTTP.
9c3ee47031 is described below

commit 9c3ee470310d160eaba517a0dd658e00aab59e75
Author: Claus Stadler <[email protected]>
AuthorDate: Sun Aug 31 15:53:28 2025 +0200

    Support CONSTRUCT_JSON query type in RDFLinkHTTP.
---
 .../java/org/apache/jena/rdflink/RDFLinkHTTP.java  |  6 +++++-
 .../apache/jena/rdflink/AbstractTestRDFLink.java   | 22 ++++++++++++++++++----
 2 files changed, 23 insertions(+), 5 deletions(-)

diff --git 
a/jena-rdfconnection/src/main/java/org/apache/jena/rdflink/RDFLinkHTTP.java 
b/jena-rdfconnection/src/main/java/org/apache/jena/rdflink/RDFLinkHTTP.java
index df90a00883..2a7006dc8f 100644
--- a/jena-rdfconnection/src/main/java/org/apache/jena/rdflink/RDFLinkHTTP.java
+++ b/jena-rdfconnection/src/main/java/org/apache/jena/rdflink/RDFLinkHTTP.java
@@ -29,6 +29,7 @@ import org.apache.jena.http.HttpEnv;
 import org.apache.jena.query.*;
 import org.apache.jena.rdfconnection.JenaConnectionException;
 import org.apache.jena.riot.RDFFormat;
+import org.apache.jena.riot.WebContent;
 import org.apache.jena.sparql.ARQException;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.Transactional;
@@ -341,7 +342,10 @@ public class RDFLinkHTTP implements RDFLink {
                                 requestAcceptHeader = 
RDFLinkHTTP.this.acceptGraph;
                         }
                         break;
-                    case UNKNOWN:
+                    case CONSTRUCT_JSON :
+                        requestAcceptHeader = WebContent.contentTypeJSON;
+                        break;
+                    case UNKNOWN :
                         // All-purpose content type.
                         if ( acceptSparqlResults != null ) {
                             requestAcceptHeader = 
RDFLinkHTTP.this.acceptSparqlResults;
diff --git 
a/jena-rdfconnection/src/test/java/org/apache/jena/rdflink/AbstractTestRDFLink.java
 
b/jena-rdfconnection/src/test/java/org/apache/jena/rdflink/AbstractTestRDFLink.java
index 0a13e49f30..d12e86957c 100644
--- 
a/jena-rdfconnection/src/test/java/org/apache/jena/rdflink/AbstractTestRDFLink.java
+++ 
b/jena-rdfconnection/src/test/java/org/apache/jena/rdflink/AbstractTestRDFLink.java
@@ -33,6 +33,8 @@ import org.apache.jena.graph.Graph;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.NodeFactory;
 import org.apache.jena.graph.compose.Union;
+import org.apache.jena.query.Query;
+import org.apache.jena.query.QueryFactory;
 import org.apache.jena.query.ReadWrite;
 import org.apache.jena.riot.RDFDataMgr;
 import org.apache.jena.sparql.JenaTransactionException;
@@ -433,6 +435,18 @@ public abstract class AbstractTestRDFLink {
         }
     }
 
+    @Test public void query_json_01() {
+        try ( RDFLink link = link() ) {
+            Txn.executeWrite(link, ()->link.loadDataset(DIR+"data.trig"));
+            int actual = Txn.calculateRead(link, ()-> {
+                try (QueryExec qe = link.query("JSON { 's': ?s } { ?s ?p ?o 
}")) {
+                    return qe.execJson().size();
+                }
+            });
+            assertEquals(2, actual);
+        }
+    }
+
     @Test public void update_01() {
         try ( RDFLink link = link() ) {
             link.update("INSERT DATA { <urn:x:s> <urn:x:p> <urn:x:o>}");
@@ -446,16 +460,16 @@ public abstract class AbstractTestRDFLink {
     }
 
     @Test public void update_03() {
-       UpdateRequest update = new UpdateRequest();
-       update.add("INSERT DATA { <urn:x:s> <urn:x:p> <urn:x:o>}");
+        UpdateRequest update = new UpdateRequest();
+        update.add("INSERT DATA { <urn:x:s> <urn:x:p> <urn:x:o>}");
         try ( RDFLink link = link() ) {
             link.update(update);
         }
     }
 
     @Test public void update_04() {
-       UpdateRequest update = new UpdateRequest();
-       update.add("INSERT DATA { <urn:x:s> <urn:x:p> <urn:x:o>}");
+        UpdateRequest update = new UpdateRequest();
+        update.add("INSERT DATA { <urn:x:s> <urn:x:p> <urn:x:o>}");
         try ( RDFLink link = link() ) {
             Txn.executeWrite(link, ()->link.update(update));
         }

Reply via email to