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);
