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
commit 5348ce16ce70226f0a3b7b65e116ed421914f127 Author: Andy Seaborne <[email protected]> AuthorDate: Wed May 28 17:53:13 2025 +0100 Tidy ExecutionContext.create --- .../jena/sparql/engine/ExecutionContext.java | 35 +++++++++++++++++++--- .../sparql/engine/iterator/TestCancelDistinct.java | 4 +-- .../iterator/TestDistinctDataBagLimited.java | 2 +- .../sparql/engine/iterator/TestQueryIterSort.java | 2 +- .../org/apache/jena/sparql/expr/TestCastXSD.java | 2 +- 5 files changed, 35 insertions(+), 10 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/ExecutionContext.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/ExecutionContext.java index ee35044470..001f8c4abe 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/ExecutionContext.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/ExecutionContext.java @@ -21,6 +21,7 @@ package org.apache.jena.sparql.engine; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; +import java.util.Objects; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.jena.atlas.iterator.Iter; @@ -107,14 +108,40 @@ public class ExecutionContext implements FunctionEnv return create(dataset, cxt); } + /** + * ExecutionContext for normal execution over a dataset, + * with default for {@link OpExecutorFactory}. + */ + public static ExecutionContext create(DatasetGraph dataset, Context context) { + Objects.requireNonNull(dataset, "dataset is null in call to ExecutionContext create(DatasetGraph dataset, Context context)"); + Graph dftGraph = dataset.getDefaultGraph(); + return create(dataset, dftGraph, context); + } + + /** + * ExecutionContext for execution without a dataset, + * with default for {@link OpExecutorFactory}. + */ + public static ExecutionContext create(Context context) { + return create(null, null, context); + } + + /** * ExecutionContext for normal execution over a dataset, with defaults for * {@link Context} and {@link OpExecutorFactory}. */ - public static ExecutionContext create(DatasetGraph dataset, Context context) { - Graph dftGraph = (dataset == null) ? null : dataset.getDefaultGraph(); + public static ExecutionContext create(DatasetGraph dataset, Graph activeGraph) { + Context cxt = ARQ.getContext().copy(); + return create(dataset, activeGraph, cxt); + } + + /** + * ExecutionContext for normal execution over a dataset. + */ + public static ExecutionContext create(DatasetGraph dataset, Graph activeGraph, Context context) { return new ExecutionContext(context, - dftGraph, dataset, + activeGraph, dataset, QC.getFactory(context), Context.getCancelSignal(context)); } @@ -133,7 +160,7 @@ public class ExecutionContext implements FunctionEnv */ public static ExecutionContext createForGraph(Graph graph, Context cxt) { DatasetGraph dsg = (graph == null) ? null : DatasetGraphFactory.wrap(graph); - return create(dsg, cxt); + return create(dsg, graph, cxt); } // ---- Previous generation - constructors diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestCancelDistinct.java b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestCancelDistinct.java index ae929eba85..d6bcfa19bc 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestCancelDistinct.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestCancelDistinct.java @@ -32,7 +32,6 @@ import org.junit.Test; import org.apache.jena.atlas.data.DistinctDataBag; import org.apache.jena.atlas.io.IndentedWriter; import org.apache.jena.query.ARQ; -import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.engine.ExecutionContext; import org.apache.jena.sparql.engine.binding.Binding; import org.apache.jena.sparql.engine.binding.BindingFactory; @@ -100,8 +99,7 @@ public class TestCancelDistinct { } final Context params = new Context(); - final DatasetGraph dataset = null; - final ExecutionContext cxt = ExecutionContext.create(dataset, params); + final ExecutionContext cxt = ExecutionContext.create(params); /** test that of a QueryIterDistinct with an active databag is diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestDistinctDataBagLimited.java b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestDistinctDataBagLimited.java index 9309f2f384..01d56d772d 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestDistinctDataBagLimited.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestDistinctDataBagLimited.java @@ -33,7 +33,7 @@ public class TestDistinctDataBagLimited extends AbstractTestDistinctReduced { QueryIterator qIter = QueryIterPlainWrapper.create(data.iterator()) ; Context cxt = new Context() ; cxt.set(ARQ.spillToDiskThreshold, 2L); - return new QueryIterDistinct(qIter, null, ExecutionContext.create(null, cxt)); + return new QueryIterDistinct(qIter, null, ExecutionContext.create(cxt)); } } diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestQueryIterSort.java b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestQueryIterSort.java index 406b536d31..37cd734f62 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestQueryIterSort.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestQueryIterSort.java @@ -85,7 +85,7 @@ public class TestQueryIterSort { } private static ExecutionContext createExecutionContext(Context context) { - return ExecutionContext.create(null, context); + return ExecutionContext.create(context); } @Test diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestCastXSD.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestCastXSD.java index fcde65b616..e851aaa0fb 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestCastXSD.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestCastXSD.java @@ -151,7 +151,7 @@ public class TestCastXSD { private NodeValue cast(String input$) { Expr input = ExprUtils.parse(input$) ; Context cxt = ARQ.getContext().copy().set(ARQConstants.sysCurrentTime, NodeFactoryExtra.nowAsDateTime()) ; - FunctionEnv env = ExecutionContext.create(null, cxt); + FunctionEnv env = ExecutionContext.create(cxt); return input.eval(null, env) ; } }
