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 c000674c73cd0bc10444f25693bedbc3d1843dd5
Author: Andy Seaborne <[email protected]>
AuthorDate: Sat Dec 14 14:41:09 2024 +0000

    Tidy up dataset assembler code
---
 .../jena/sparql/core/assembler/AssemblerUtils.java |  4 ++--
 .../core/assembler/DatasetAssemblerGeneral.java    |  6 -----
 .../sparql/core/assembler/DatasetOneAssembler.java |  6 -----
 ...ullAssembler.java => DatasetSinkAssembler.java} | 26 +++++-----------------
 ...setAssembler.java => DatasetZeroAssembler.java} | 25 +++++++--------------
 .../core/assembler/InMemDatasetAssembler.java      |  7 ------
 .../core/assembler/NamedDatasetAssembler.java      |  9 ++++++--
 .../core/assembler/ViewDatasetAssembler.java       |  7 ------
 .../org/apache/jena/fuseki/build/FusekiConfig.java | 20 +++++++----------
 9 files changed, 30 insertions(+), 80 deletions(-)

diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
index e67baddb97..c409626aa1 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
@@ -65,8 +65,8 @@ public class AssemblerUtils
         initialized = true ;
         registerDataset(tDataset,         new DatasetAssemblerGeneral());
         registerDataset(tDatasetOne,      new DatasetOneAssembler());
-        registerDataset(tDatasetZero,     new 
DatasetNullAssembler(tDatasetZero));
-        registerDataset(tDatasetSink,     new 
DatasetNullAssembler(tDatasetSink));
+        registerDataset(tDatasetZero,     new DatasetZeroAssembler());
+        registerDataset(tDatasetSink,     new DatasetSinkAssembler());
         registerDataset(tMemoryDataset,   new InMemDatasetAssembler());
         registerDataset(tDatasetTxnMem,   new InMemDatasetAssembler());
         registerDataset(tDatasetView,     new ViewDatasetAssembler());
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssemblerGeneral.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssemblerGeneral.java
index 4fa6653bfd..399e6a34e0 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssemblerGeneral.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetAssemblerGeneral.java
@@ -19,7 +19,6 @@
 package org.apache.jena.sparql.core.assembler ;
 
 import java.util.List ;
-import java.util.Map;
 
 import org.apache.jena.assembler.Assembler ;
 import org.apache.jena.atlas.logging.Log ;
@@ -41,11 +40,6 @@ public class DatasetAssemblerGeneral extends 
NamedDatasetAssembler {
 
     public DatasetAssemblerGeneral() {}
 
-    @Override
-    public Map<String, DatasetGraph> pool() {
-        return sharedDatasetPool;
-    }
-
     @Override
     public DatasetGraph createDataset(Assembler a, Resource root) {
         // -------- Default graph
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetOneAssembler.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetOneAssembler.java
index a9462e3a7c..9b0dd68d72 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetOneAssembler.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetOneAssembler.java
@@ -19,7 +19,6 @@
 package org.apache.jena.sparql.core.assembler;
 
 import java.util.List;
-import java.util.Map;
 
 import org.apache.jena.assembler.Assembler;
 import org.apache.jena.assembler.exceptions.AssemblerException;
@@ -51,11 +50,6 @@ public class DatasetOneAssembler extends 
NamedDatasetAssembler  {
 
     public DatasetOneAssembler() {}
 
-    @Override
-    public Map<String, DatasetGraph> pool() {
-        return sharedDatasetPool;
-    }
-
     @Override
     public DatasetGraph createDataset(Assembler a, Resource root) {
         // Can use ja:graph or ja:defaultGraph but not both.
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetNullAssembler.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetSinkAssembler.java
similarity index 66%
rename from 
jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetNullAssembler.java
rename to 
jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetSinkAssembler.java
index 4c0f099929..86fe6f4a31 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetNullAssembler.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetSinkAssembler.java
@@ -18,45 +18,29 @@
 
 package org.apache.jena.sparql.core.assembler;
 
-import java.util.Map;
-
 import org.apache.jena.assembler.Assembler;
-import org.apache.jena.atlas.lib.InternalErrorException;
 import org.apache.jena.rdf.model.Resource;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.DatasetGraphSink;
 import org.apache.jena.sparql.core.DatasetGraphZero;
 
 /**
- * An assembler that creates datasets that do nothing, either a sink or a 
always empty one.
+ * An assembler that creates datasets that do nothing, either a sink or an 
always empty one.
 
  * @see DatasetGraphSink
  * @see DatasetGraphZero
  */
 
-public class DatasetNullAssembler extends NamedDatasetAssembler {
+public class DatasetSinkAssembler extends NamedDatasetAssembler {
 
-    private final Resource tDataset;
+    public static Resource getType() { return 
DatasetAssemblerVocab.tDatasetSink; }
 
-    public DatasetNullAssembler(Resource tDataset) {
-        this.tDataset = tDataset;
-    }
+    public DatasetSinkAssembler() {}
 
     @Override
     public DatasetGraph createDataset(Assembler a, Resource root) {
-        DatasetGraph dsg;
-        if ( DatasetAssemblerVocab.tDatasetSink.equals(tDataset) )
-            dsg = DatasetGraphSink.create();
-        else if ( DatasetAssemblerVocab.tDatasetZero.equals(tDataset) )
-            dsg = DatasetGraphZero.create();
-        else
-            throw new InternalErrorException();
+        DatasetGraph dsg = DatasetGraphSink.create();
         AssemblerUtils.mergeContext(root, dsg.getContext());
         return dsg;
     }
-
-    @Override
-    public Map<String, DatasetGraph> pool() {
-        return sharedDatasetPool;
-    }
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/ViewDatasetAssembler.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetZeroAssembler.java
similarity index 64%
copy from 
jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/ViewDatasetAssembler.java
copy to 
jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetZeroAssembler.java
index 32bd497966..5421d8cf8a 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/ViewDatasetAssembler.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/DatasetZeroAssembler.java
@@ -18,35 +18,26 @@
 
 package org.apache.jena.sparql.core.assembler;
 
-import java.util.Map;
-
 import org.apache.jena.assembler.Assembler;
 import org.apache.jena.rdf.model.Resource;
 import org.apache.jena.sparql.core.DatasetGraph;
-import org.apache.jena.sparql.core.DatasetGraphWrapper;
+import org.apache.jena.sparql.core.DatasetGraphZero;
 
 /**
- * An assembler that layers on top of another dataset given by {@code 
ja:dataset}.
- * <p>
- * It enables adding extra context settings.
- * <p>
- * It can be used as a super class, where the subclass overrides {@link 
#createBaseDataset}.
+ * An assembler that creates datasets that do nothing, either a sink or an 
always empty one.
+ *
+ * @see DatasetGraphZero
  */
-public class ViewDatasetAssembler extends NamedDatasetAssembler  {
 
-    public static Resource getType() { return 
DatasetAssemblerVocab.tDatasetView; }
+public class DatasetZeroAssembler extends NamedDatasetAssembler {
 
-    public ViewDatasetAssembler() {}
+    public static Resource getType() { return 
DatasetAssemblerVocab.tDatasetZero; }
 
-    @Override
-    public Map<String, DatasetGraph> pool() {
-        return sharedDatasetPool;
-    }
+    public DatasetZeroAssembler() {}
 
     @Override
     public DatasetGraph createDataset(Assembler a, Resource root) {
-        DatasetGraph sub = createBaseDataset(root, 
DatasetAssemblerVocab.pDataset);
-        DatasetGraph dsg = new DatasetGraphWrapper(sub);
+        DatasetGraph dsg = DatasetGraphZero.create();
         AssemblerUtils.mergeContext(root, dsg.getContext());
         return dsg;
     }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/InMemDatasetAssembler.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/InMemDatasetAssembler.java
index 21e80dc27f..cdeb0d01ca 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/InMemDatasetAssembler.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/InMemDatasetAssembler.java
@@ -21,8 +21,6 @@ package org.apache.jena.sparql.core.assembler;
 import static org.apache.jena.sparql.core.assembler.AssemblerUtils.loadData;
 import static 
org.apache.jena.sparql.core.assembler.AssemblerUtils.mergeContext;
 
-import java.util.Map;
-
 import org.apache.jena.assembler.Assembler;
 import org.apache.jena.query.Dataset;
 import org.apache.jena.rdf.model.Resource;
@@ -39,11 +37,6 @@ public class InMemDatasetAssembler extends 
NamedDatasetAssembler {
 
     public InMemDatasetAssembler() {}
 
-    @Override
-    public Map<String, DatasetGraph> pool() {
-        return sharedDatasetPool;
-    }
-
     public static Resource getType() {
         return DatasetAssemblerVocab.tMemoryDataset ;
     }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/NamedDatasetAssembler.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/NamedDatasetAssembler.java
index 3b412ce6ce..0547695f57 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/NamedDatasetAssembler.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/NamedDatasetAssembler.java
@@ -49,6 +49,11 @@ public abstract class NamedDatasetAssembler extends 
DatasetAssembler {
         return createDataset(a, root);
     }
 
-    /** Shared {@link DatasetGraph} objects */
-    public abstract Map<String, DatasetGraph> pool();
+    /**
+     * Shared {@link DatasetGraph} objects.
+     * Subclasses may override for a different policy, or return null for 
"don't pool".
+     * Pools only affect {@link #createNamedDataset} and then only when {@code 
ja:name}
+     * ({@code DatasetAssemblerVocab.pDatasetName}) is present.
+     */
+    public Map<String, DatasetGraph> pool() { return sharedDatasetPool; }
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/ViewDatasetAssembler.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/ViewDatasetAssembler.java
index 32bd497966..2a74868b5d 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/ViewDatasetAssembler.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/ViewDatasetAssembler.java
@@ -18,8 +18,6 @@
 
 package org.apache.jena.sparql.core.assembler;
 
-import java.util.Map;
-
 import org.apache.jena.assembler.Assembler;
 import org.apache.jena.rdf.model.Resource;
 import org.apache.jena.sparql.core.DatasetGraph;
@@ -38,11 +36,6 @@ public class ViewDatasetAssembler extends 
NamedDatasetAssembler  {
 
     public ViewDatasetAssembler() {}
 
-    @Override
-    public Map<String, DatasetGraph> pool() {
-        return sharedDatasetPool;
-    }
-
     @Override
     public DatasetGraph createDataset(Assembler a, Resource root) {
         DatasetGraph sub = createBaseDataset(root, 
DatasetAssemblerVocab.pDataset);
diff --git 
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
 
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
index db6de6c5de..fe295857fc 100644
--- 
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
+++ 
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/build/FusekiConfig.java
@@ -20,9 +20,9 @@ package org.apache.jena.fuseki.build;
 
 import static java.lang.String.format;
 import static java.util.stream.Collectors.toList;
+import static org.apache.jena.fuseki.build.BuildLib.displayStr;
 import static org.apache.jena.fuseki.build.BuildLib.getZeroOrOne;
 import static org.apache.jena.fuseki.server.FusekiVocabG.*;
-import static org.apache.jena.fuseki.build.BuildLib.displayStr;
 import static org.apache.jena.riot.RDFLanguages.filenameToLang;
 import static org.apache.jena.riot.RDFParserRegistry.isRegistered;
 import static org.apache.jena.system.G.isResource;
@@ -52,14 +52,16 @@ import org.apache.jena.graph.Graph;
 import org.apache.jena.graph.Node;
 import org.apache.jena.query.Dataset;
 import org.apache.jena.query.DatasetFactory;
-import org.apache.jena.rdf.model.*;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.rdf.model.Resource;
 import org.apache.jena.rdf.model.impl.Util;
 import org.apache.jena.riot.Lang;
 import org.apache.jena.shared.JenaException;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.assembler.AssemblerUtils;
 import org.apache.jena.sparql.core.assembler.NamedDatasetAssembler;
-import org.apache.jena.sparql.engine.binding.Binding;
 import org.apache.jena.sparql.exec.RowSet;
 import org.apache.jena.sparql.util.Context;
 import org.apache.jena.system.G;
@@ -323,21 +325,15 @@ public class FusekiConfig {
         // Server to services.
         RowSet rs = BuildLib.query("SELECT * { ?s fu:services [ list:member 
?service ] }", configuration, "s", server);
 
-        List<Node> services = rs.stream().map(b->b.get("service")).toList();
-
-        List<DataAccessPoint> accessPoints = new ArrayList<>();
-
         // If none, look for services by type.
         if ( ! rs.hasNext() )
             // No "fu:services ( .... )" so try looking for services directly.
             // This means Fuseki2, service configuration files (no server 
section) work for --conf.
             rs = BuildLib.query("SELECT ?service { ?service a fu:Service }", 
configuration);
 
-        // rs is a result set of services to process.
-        for (; rs.hasNext(); ) {
-            Binding soln = rs.next();
-            Node svc = soln.get("service");
-
+        List<Node> services = rs.stream().map(b->b.get("service")).toList();
+        List<DataAccessPoint> accessPoints = new ArrayList<>();
+        for (Node svc : services ) {
             DataAccessPoint acc = buildDataAccessPoint(configuration, svc, 
dsDescMap);
             if ( acc != null )
                 accessPoints.add(acc);

Reply via email to