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 bf98f985b2 GH-3148: Set HTTP header User-Agent when calling from
SERVICE
bf98f985b2 is described below
commit bf98f985b27d30a59d7078737ca63ebaa89c737e
Author: Andy Seaborne <[email protected]>
AuthorDate: Thu May 1 13:19:24 2025 +0100
GH-3148: Set HTTP header User-Agent when calling from SERVICE
---
jena-arq/src/main/java/org/apache/jena/http/HttpEnv.java | 3 +++
jena-arq/src/main/java/org/apache/jena/riot/web/HttpNames.java | 1 +
jena-arq/src/main/java/org/apache/jena/sparql/exec/http/Service.java | 2 ++
3 files changed, 6 insertions(+)
diff --git a/jena-arq/src/main/java/org/apache/jena/http/HttpEnv.java
b/jena-arq/src/main/java/org/apache/jena/http/HttpEnv.java
index d95b666f0a..507c050982 100644
--- a/jena-arq/src/main/java/org/apache/jena/http/HttpEnv.java
+++ b/jena-arq/src/main/java/org/apache/jena/http/HttpEnv.java
@@ -23,6 +23,7 @@ import java.net.http.HttpClient.Redirect;
import java.time.Duration;
import org.apache.jena.http.sys.RegistryRequestModifier;
+import org.apache.jena.query.ARQ;
import org.apache.jena.riot.RDFFormat;
/**
@@ -60,6 +61,8 @@ public class HttpEnv {
return httpClientBuilder().build();
}
+ public static final String UserAgent = ARQ.VERSION.contains("devel") ?
"ApacheJena" : "ApacheJena/"+ARQ.VERSION;
+
public static HttpClient.Builder httpClientBuilder() {
return HttpClient.newBuilder()
// By default, the client has polling and connection-caching.
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/web/HttpNames.java
b/jena-arq/src/main/java/org/apache/jena/riot/web/HttpNames.java
index c8460ae1c9..6ba08475f8 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/web/HttpNames.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/web/HttpNames.java
@@ -42,6 +42,7 @@ public class HttpNames
public static final String hServer = "Server" ;
public static final String hLocation = "Location" ;
public static final String hVary = "Vary" ;
+ public static final String hUserAgent = "User-Agent" ;
public static final String charset = "charset" ;
// CORS:
diff --git
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/http/Service.java
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/http/Service.java
index bc316cbad8..2b6150c719 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/exec/http/Service.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/exec/http/Service.java
@@ -33,6 +33,7 @@ import org.apache.jena.atlas.web.HttpException;
import org.apache.jena.http.HttpEnv;
import org.apache.jena.http.RegistryHttpClient;
import org.apache.jena.query.*;
+import org.apache.jena.riot.web.HttpNames;
import org.apache.jena.sparql.SystemARQ ;
import org.apache.jena.sparql.algebra.Op ;
import org.apache.jena.sparql.algebra.OpAsQuery ;
@@ -229,6 +230,7 @@ public class Service {
QueryExecHTTP qExec = QueryExecHTTP.newBuilder()
.endpoint(serviceURL)
.timeout(timeoutMillis, TimeUnit.MILLISECONDS)
+ .httpHeader(HttpNames.hUserAgent, HttpEnv.UserAgent)
.query(query)
.params(serviceParams)
.context(context)